From e72977fc25f90aa28ea5dfae3656622a4981ec6e Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 19 Jun 2023 19:16:05 +0400 Subject: [PATCH 01/73] wip --- .../ModalContainer/UpdateApp/UpdateApp.tsx | 68 +++++++++++++++++++ .../mobile/src/hooks/useCheckForUpdates.ts | 10 +++ .../MainStack/TabStack/TabStack.tsx | 2 + .../mobile/src/store/zustand/updates/types.ts | 11 +++ .../store/zustand/updates/useUpdatesStore.ts | 34 ++++++++++ 5 files changed, 125 insertions(+) create mode 100644 packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx create mode 100644 packages/mobile/src/hooks/useCheckForUpdates.ts create mode 100644 packages/mobile/src/store/zustand/updates/types.ts create mode 100644 packages/mobile/src/store/zustand/updates/useUpdatesStore.ts diff --git a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx new file mode 100644 index 000000000..c50f9e51a --- /dev/null +++ b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx @@ -0,0 +1,68 @@ +import React, { memo, useCallback } from 'react'; +import { t } from '$translation'; +import { Modal, useNavigation } from '$libs/navigation'; +import { push } from '$navigation'; +import { SheetActions } from '$libs/navigation/components/Modal/Sheet/SheetsProvider'; +import { Button, Icon, Text, View } from '$uikit'; +import { Linking, Platform } from 'react-native'; +import { Base64, delay } from '$utils'; +import { Steezy } from '$styles'; + +export const UpdateAppModal = memo(() => { + const nav = useNavigation(); + + const handleOpenSettings = useCallback(async () => { + nav.goBack(); + await delay(400); + if (Platform.OS === 'ios') { + return Linking.openURL(Base64.decodeToStr('QXBwLXByZWZzOnJvb3Q=')); + } + Linking.sendIntent('android.settings.DATE_SETTINGS'); + }, []); + + return ( + + + + + + + {t('txActions.signRaw.wrongTime.title')} + + + {t('txActions.signRaw.wrongTime.description')} + + + + + + + + + + ); +}); + +const styles = Steezy.create({ + wrap: { + alignItems: 'center', + padding: 32, + textAlign: 'center', + paddingTop: 48, + }, + footerWrap: { + paddingHorizontal: 16, + }, +}); + +export const openUpdateAppModal = async () => { + push('SheetsProvider', { + $$action: SheetActions.ADD, + component: UpdateAppModal, + path: 'UpdateApp', + }); + + return true; +}; diff --git a/packages/mobile/src/hooks/useCheckForUpdates.ts b/packages/mobile/src/hooks/useCheckForUpdates.ts new file mode 100644 index 000000000..238dface4 --- /dev/null +++ b/packages/mobile/src/hooks/useCheckForUpdates.ts @@ -0,0 +1,10 @@ +import { useEffect } from 'react'; +import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; +export function useCheckForUpdates() { + const { fetchMeta } = useUpdatesStore((s) => s.actions); + const meta = useUpdatesStore((s) => s.meta); + useEffect(() => { + fetchMeta(); + }, []); + console.log('meta', meta); +} diff --git a/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx b/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx index 4a53f9627..c59d4756c 100644 --- a/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx +++ b/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx @@ -17,6 +17,7 @@ import { ActivityScreen } from '../../../tabs/Activity/ActivityScreen'; import { WalletScreen } from '../../../tabs/Wallet/WalletScreen'; import Animated from 'react-native-reanimated'; import { FONT } from '$styled'; +import { useCheckForUpdates } from '$hooks/useCheckForUpdates'; const Tab = createBottomTabNavigator(); @@ -27,6 +28,7 @@ export const TabStack: FC = () => { useNotificationsSubscribe(); usePreloadChart(); + useCheckForUpdates(); const tabBarStyle = { height: ns(64) + (safeArea.bottom > 0 ? ns(20) : 0) }; const containerTabStyle = useMemo( diff --git a/packages/mobile/src/store/zustand/updates/types.ts b/packages/mobile/src/store/zustand/updates/types.ts new file mode 100644 index 000000000..6d9ee4df9 --- /dev/null +++ b/packages/mobile/src/store/zustand/updates/types.ts @@ -0,0 +1,11 @@ +export interface IUpdatesStore { + isLoading: boolean; + declinedAt?: number; + meta?: { + version: string; + size: number; + }; + actions: { + fetchMeta: () => Promise; + }; +} diff --git a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts new file mode 100644 index 000000000..829b336c8 --- /dev/null +++ b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts @@ -0,0 +1,34 @@ +import { CryptoCurrencies, getServerConfig } from '$shared/constants'; +import AsyncStorage from '@react-native-async-storage/async-storage'; +import { Configuration, JettonApi } from 'tonapi-sdk-js'; +import { create } from 'zustand'; +import { persist } from 'zustand/middleware'; +import { IUpdatesStore } from './types'; + +const initialState: Omit = { + isLoading: false, +}; + +export const useUpdatesStore = create( + persist( + (set) => ({ + ...initialState, + actions: { + fetchMeta: async () => { + set({ isLoading: true }); + const res = await fetch( + `${getServerConfig('tonkeeperEndpoint')}/check-for-updates`, + ); + const data = await res.json(); + set({ meta: data, isLoading: false }); + }, + }, + }), + { + name: 'updates', + getStorage: () => AsyncStorage, + partialize: ({ isLoading, meta, declinedAt }) => + ({ meta, declinedAt, isLoading } as IUpdatesStore), + }, + ), +); From 1db0be87ab594a7846d17a980b9aa24c93cfb0c9 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 03:26:50 +0400 Subject: [PATCH 02/73] wip --- .../contents.xcworkspacedata | 4 ++++ .../lib/commonjs/index.js | 23 +++++++++++++++++++ .../lib/commonjs/index.js.map | 1 + .../lib/module/index.js | 17 ++++++++++++++ .../lib/module/index.js.map | 1 + .../lib/typescript/__tests__/index.test.d.ts | 1 + .../typescript/__tests__/index.test.d.ts.map | 1 + .../lib/typescript/index.d.ts | 2 ++ .../lib/typescript/index.d.ts.map | 1 + 9 files changed, 51 insertions(+) create mode 100644 packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 packages/react-native-apk-install/lib/commonjs/index.js create mode 100644 packages/react-native-apk-install/lib/commonjs/index.js.map create mode 100644 packages/react-native-apk-install/lib/module/index.js create mode 100644 packages/react-native-apk-install/lib/module/index.js.map create mode 100644 packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts create mode 100644 packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts.map create mode 100644 packages/react-native-apk-install/lib/typescript/index.d.ts create mode 100644 packages/react-native-apk-install/lib/typescript/index.d.ts.map diff --git a/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..94b2795e2 --- /dev/null +++ b/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,4 @@ + + + diff --git a/packages/react-native-apk-install/lib/commonjs/index.js b/packages/react-native-apk-install/lib/commonjs/index.js new file mode 100644 index 000000000..49a3655e1 --- /dev/null +++ b/packages/react-native-apk-install/lib/commonjs/index.js @@ -0,0 +1,23 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.installApk = installApk; +var _reactNative = require("react-native"); +const LINKING_ERROR = `The package 'react-native-apk-install' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({ + ios: "- You have run 'pod install'\n", + default: '' +}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n'; +const ApkInstall = _reactNative.NativeModules.ApkInstall ? _reactNative.NativeModules.ApkInstall : new Proxy({}, { + get() { + throw new Error(LINKING_ERROR); + } +}); +function installApk(path) { + if (_reactNative.Platform.OS === 'ios') { + return Promise.reject(new Error('Not supported on iOS')); + } + return ApkInstall.installApk(path); +} +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/commonjs/index.js.map b/packages/react-native-apk-install/lib/commonjs/index.js.map new file mode 100644 index 000000000..74e71850c --- /dev/null +++ b/packages/react-native-apk-install/lib/commonjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","ApkInstall","NativeModules","Proxy","get","Error","installApk","path","OS","Promise","reject"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GAChB,mFAAkF,GACnFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,UAAU,GAAGC,0BAAa,CAACD,UAAU,GACvCC,0BAAa,CAACD,UAAU,GACxB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEE,SAASU,UAAUA,CAACC,IAAY,EAAmB;EACxD,IAAIV,qBAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIL,KAAK,CAAC,sBAAsB,CAAC,CAAC;EAC1D;EACA,OAAOJ,UAAU,CAACK,UAAU,CAACC,IAAI,CAAC;AACpC"} \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/module/index.js b/packages/react-native-apk-install/lib/module/index.js new file mode 100644 index 000000000..202565418 --- /dev/null +++ b/packages/react-native-apk-install/lib/module/index.js @@ -0,0 +1,17 @@ +import { NativeModules, Platform } from 'react-native'; +const LINKING_ERROR = `The package 'react-native-apk-install' doesn't seem to be linked. Make sure: \n\n` + Platform.select({ + ios: "- You have run 'pod install'\n", + default: '' +}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n'; +const ApkInstall = NativeModules.ApkInstall ? NativeModules.ApkInstall : new Proxy({}, { + get() { + throw new Error(LINKING_ERROR); + } +}); +export function installApk(path) { + if (Platform.OS === 'ios') { + return Promise.reject(new Error('Not supported on iOS')); + } + return ApkInstall.installApk(path); +} +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/module/index.js.map b/packages/react-native-apk-install/lib/module/index.js.map new file mode 100644 index 000000000..c9200e3d3 --- /dev/null +++ b/packages/react-native-apk-install/lib/module/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","ApkInstall","Proxy","get","Error","installApk","path","OS","Promise","reject"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GAChB,mFAAkF,GACnFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,UAAU,GAAGN,aAAa,CAACM,UAAU,GACvCN,aAAa,CAACM,UAAU,GACxB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,SAASQ,UAAUA,CAACC,IAAY,EAAmB;EACxD,IAAIV,QAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIL,KAAK,CAAC,sBAAsB,CAAC,CAAC;EAC1D;EACA,OAAOH,UAAU,CAACI,UAAU,CAACC,IAAI,CAAC;AACpC"} \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts b/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts new file mode 100644 index 000000000..cbbd668ab --- /dev/null +++ b/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts @@ -0,0 +1 @@ +//# sourceMappingURL=index.test.d.ts.map \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts.map b/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts.map new file mode 100644 index 000000000..27410a3b6 --- /dev/null +++ b/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/index.test.tsx"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/typescript/index.d.ts b/packages/react-native-apk-install/lib/typescript/index.d.ts new file mode 100644 index 000000000..c7ea5f0fe --- /dev/null +++ b/packages/react-native-apk-install/lib/typescript/index.d.ts @@ -0,0 +1,2 @@ +export declare function installApk(path: string): Promise; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/typescript/index.d.ts.map b/packages/react-native-apk-install/lib/typescript/index.d.ts.map new file mode 100644 index 000000000..d6d21b16e --- /dev/null +++ b/packages/react-native-apk-install/lib/typescript/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKxD"} \ No newline at end of file From 140e9a016b1778797688b0f885a2c98320e38382 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 03:37:38 +0400 Subject: [PATCH 03/73] wip --- packages/mobile/android/app/build.gradle | 13 +- .../android/app/src/main/AndroidManifest.xml | 11 + .../app/src/main/res/xml/filepaths.xml | 11 + packages/mobile/package.json | 2 + packages/mobile/scripts/publish_apk.js | 34 +- .../icons/png/ic-tonkeeper-update-128@4x.png | Bin 0 -> 17054 bytes .../icons/svg/128/ic-tonkeeper-update-128.svg | 17 + .../core/ApprovalCell/Updates/UpdatesCell.tsx | 48 + .../ModalContainer/UpdateApp/UpdateApp.tsx | 46 +- .../mobile/src/hooks/useCheckForUpdates.ts | 13 +- .../src/store/zustand/updates/helpers.ts | 8 + .../mobile/src/store/zustand/updates/types.ts | 14 + .../store/zustand/updates/useUpdatesStore.ts | 47 +- .../mobile/src/tabs/Wallet/WalletScreen.tsx | 29 +- .../mobile/src/translation/locales/en.json | 9 + .../mobile/src/translation/locales/ru.json | 11 + .../mobile/src/uikit/Icon/IconsMobileList.ts | 1 + .../mobile/src/uikit/Icon/generated.types.ts | 3 + packages/mobile/src/uikit/List/ListItem.tsx | 3 +- packages/mobile/src/utils/index.ts | 4 + .../react-native-apk-install/.editorconfig | 15 + .../react-native-apk-install/.gitattributes | 3 + packages/react-native-apk-install/.gitignore | 70 + packages/react-native-apk-install/.nvmrc | 1 + .../react-native-apk-install/.watchmanconfig | 1 + packages/react-native-apk-install/.yarnrc | 3 + .../CODE_OF_CONDUCT.md | 133 + .../react-native-apk-install/CONTRIBUTING.md | 114 + packages/react-native-apk-install/LICENSE | 20 + packages/react-native-apk-install/README.md | 31 + .../android/build.gradle | 85 + .../android/gradle.properties | 5 + .../android/src/main/AndroidManifest.xml | 4 + .../java/com/apkinstall/ApkInstallModule.kt | 45 + .../java/com/apkinstall/ApkInstallPackage.kt | 17 + .../react-native-apk-install/babel.config.js | 3 + .../react-native-apk-install/ios/ApkInstall.h | 12 + .../ios/ApkInstall.mm | 27 + .../ios/ApkInstall.xcodeproj/project.pbxproj | 274 + .../react-native-apk-install/lefthook.yml | 16 + .../react-native-apk-install/package.json | 160 + .../react-native-apk-install.podspec | 35 + .../scripts/bootstrap.js | 29 + .../src/__tests__/index.test.tsx | 1 + .../react-native-apk-install/src/index.tsx | 25 + .../tsconfig.build.json | 5 + .../react-native-apk-install/tsconfig.json | 28 + yarn.lock | 5196 ++++++++++++++++- 48 files changed, 6429 insertions(+), 253 deletions(-) create mode 100644 packages/mobile/android/app/src/main/res/xml/filepaths.xml create mode 100644 packages/mobile/src/assets/icons/png/ic-tonkeeper-update-128@4x.png create mode 100644 packages/mobile/src/assets/icons/svg/128/ic-tonkeeper-update-128.svg create mode 100644 packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx create mode 100644 packages/mobile/src/store/zustand/updates/helpers.ts create mode 100644 packages/react-native-apk-install/.editorconfig create mode 100644 packages/react-native-apk-install/.gitattributes create mode 100644 packages/react-native-apk-install/.gitignore create mode 100644 packages/react-native-apk-install/.nvmrc create mode 100644 packages/react-native-apk-install/.watchmanconfig create mode 100644 packages/react-native-apk-install/.yarnrc create mode 100644 packages/react-native-apk-install/CODE_OF_CONDUCT.md create mode 100644 packages/react-native-apk-install/CONTRIBUTING.md create mode 100644 packages/react-native-apk-install/LICENSE create mode 100644 packages/react-native-apk-install/README.md create mode 100644 packages/react-native-apk-install/android/build.gradle create mode 100644 packages/react-native-apk-install/android/gradle.properties create mode 100644 packages/react-native-apk-install/android/src/main/AndroidManifest.xml create mode 100644 packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt create mode 100644 packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.kt create mode 100644 packages/react-native-apk-install/babel.config.js create mode 100644 packages/react-native-apk-install/ios/ApkInstall.h create mode 100644 packages/react-native-apk-install/ios/ApkInstall.mm create mode 100644 packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.pbxproj create mode 100644 packages/react-native-apk-install/lefthook.yml create mode 100644 packages/react-native-apk-install/package.json create mode 100644 packages/react-native-apk-install/react-native-apk-install.podspec create mode 100644 packages/react-native-apk-install/scripts/bootstrap.js create mode 100644 packages/react-native-apk-install/src/__tests__/index.test.tsx create mode 100644 packages/react-native-apk-install/src/index.tsx create mode 100644 packages/react-native-apk-install/tsconfig.build.json create mode 100644 packages/react-native-apk-install/tsconfig.json diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index c002867df..a464f2504 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,11 +123,20 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 327 - versionName "3.2.1" + versionCode 320 + versionName "3.1" missingDimensionStrategy 'react-native-camera', 'general' } + packagingOptions { + pickFirst '**/armeabi-v7a/libc++_shared.so' + pickFirst '**/x86/libc++_shared.so' + pickFirst '**/arm64-v8a/libc++_shared.so' + pickFirst '**/x86_64/libc++_shared.so' + pickFirst '**/x86/libjsc.so' + pickFirst '**/armeabi-v7a/libjsc.so' + } + splits { abi { reset() diff --git a/packages/mobile/android/app/src/main/AndroidManifest.xml b/packages/mobile/android/app/src/main/AndroidManifest.xml index 9fd2706dd..537281041 100644 --- a/packages/mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/mobile/android/app/src/main/AndroidManifest.xml @@ -8,6 +8,7 @@ + @@ -34,6 +35,16 @@ tools:replace="android:fullBackupContent" tools:targetApi="32"> + + + + + + + + + + + + + + diff --git a/packages/mobile/package.json b/packages/mobile/package.json index d3dcf9b7c..2f04d9159 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -43,6 +43,7 @@ "@tonapps/tonlogin-client": "0.2.5", "@tonconnect/protocol": "^2.2.5", "@tonkeeper/core": "0.1.0", + "react-native-apk-install": "0.1.0", "@tonkeeper/shared": "1.0.0", "@vkontakte/vk-qr": "^2.0.13", "axios": "^0.27.2", @@ -89,6 +90,7 @@ "react-native-encrypted-storage": "git+ssh://git@github.com:tonkeeper/react-native-encrypted-storage#6d2dd34fed3438364125175a32c6f4f3d018078e", "react-native-exception-handler": "^2.10.10", "react-native-fast-image": "^8.5.11", + "react-native-fs": "^2.20.0", "react-native-gesture-handler": "^2.9.0", "react-native-get-random-values": "^1.8.0", "react-native-haptic-feedback": "^1.11.0", diff --git a/packages/mobile/scripts/publish_apk.js b/packages/mobile/scripts/publish_apk.js index 04758ea35..17e65112d 100644 --- a/packages/mobile/scripts/publish_apk.js +++ b/packages/mobile/scripts/publish_apk.js @@ -1,6 +1,6 @@ const { exec } = require('child_process'); const buildInfo = require('../android/app/build/outputs/apk/release/output-metadata.json'); -require('dotenv').config() +require('dotenv').config(); const version = buildInfo.elements[0].versionName; console.info('Publish version:', version); @@ -12,23 +12,25 @@ const path = pathExp.join('/'); const inPath = `${path}/android/app/build/outputs/apk/release/app-release.apk`; const outPath = `/var/uploads/apk/tonkeeper-${version}.apk`; - console.info('Publishing..'); -exec(`rsync -avzh ${inPath} ${process.env['TONKEEPER_APK_HOSTNAME']}:${outPath}`, (err, stdout, stderr) => { - if (err) { - console.error(err); - return; - } +exec( + `rsync -avzh ${inPath} ${process.env['TONKEEPER_APK_HOSTNAME']}:${outPath}`, + (err, stdout, stderr) => { + if (err) { + console.error(err); + return; + } - if (stdout) { - console.log(`stdout: ${stdout}`); - setVersion(); - } + if (stdout) { + console.log(`stdout: ${stdout}`); + setVersion(); + } - if (stderr) { - console.log(`stderr: ${stderr}`); - } -}); + if (stderr) { + console.log(`stderr: ${stderr}`); + } + }, +); function setVersion() { console.log('setVersion', version); @@ -68,4 +70,4 @@ function createSymlink() { } }, ); -} \ No newline at end of file +} diff --git a/packages/mobile/src/assets/icons/png/ic-tonkeeper-update-128@4x.png b/packages/mobile/src/assets/icons/png/ic-tonkeeper-update-128@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b4933a8063e329dfa9f79b7528947b9f5f30c87 GIT binary patch literal 17054 zcmd^n^;eYL7w^+BjkJOc&Cp$fN(zWUhXYDCND7EZNe_xBpu_-DA|Zk_h(kz& zw9;|U_4YjDq*~lRXqSDbunnDmh_%A+0N(_Ge z@gF$`zliVXX(6Et+`m`NWoZz^1?eDF&HZyWumS#;x*VE&k=cS|v416!OSrJ-5UmnHm4F|XOUc>aI> z>7^+^KpD|dB5b8MlNxNZyb}rh8jb69bgt{DT8Ko&h6`KjW~KBt?Ost+z5h*rf#}Ym zoBv^E8*L?RJ0mSCcM2V?db>oS?yIlia@^MQHeKEaIZ8i9imu9J5Hdk*X(f8H`n|W* zlZAvho|#rgn)=v`ms{wvVrpPSQMA!A`qE;NaxN@iU=HZIuQ_X$+1WD*YyFz%ZTKp( zzUwbfZfH*h-4YJ`>4%-N8GnnX+&~|Y1aaw0KYX#osu!EvE^*#))?I0X@kvEhLElOG zZjV|qdt>dM_XhQPxe;x`z+;37UA@ghcU#+g>t(B47xIcIBNYO{@V+PFk_gX|O z-F;nM}$IMtSw7(og*g90g&hOm$9p$>}noj+0m45IeYiU-s{==saqe3FqiF7$B zRLE{O)q2Hc*IcysPtu4izT^!dfx);UQwogzTO>v;4dIh}d7BF6ETRzKy`I-6?B0(y zpVT_e^y{44n7!|x-$REJ zO<%rvzY#xZ&dEJdNdCoFcn7A2Hm?88hw@(8gHP4D_%0Xh%(YA8-}>-7Z^kdC+Cwg> znOM{tX>Q%_mpheEeDbkent5U{Z?Dmhq_AqfbxvB(@?E21Mu$k!hUoX)s8~`+RAhwl zwcrKvq+sJMrsn&K*N+J;rngPY;?bs?lGNwO1->N5nRHg&9IFo%bNOvvow9NSvjh~G zGmSUo_t}%y^#{Q;E1IIiYtkKGI(}Z64RU?JQFrgCIpof=6p7p+eJZD1r8Hk=70ngv zM+0`N{c5sbSfS)w7~hWK^w^g9h2I&N8d_Ll3}bcwD{?BAgN?=t1Vs>o3#72}+=42Z z@8=31jtmz-aZ1G6&-SYaN`<%qb$E~au83@&6}j@CRG9V-0W$6trkg(hkei<;|0LM& zkN5I5Y`}_uKUpj9bFm=#92j$O`d8E$nNrD);|ki!devOc9do}Y{t4%JE?;*&sd1Wy2>Yj$Z%!BL zI-MZ|JmefDlwE$x2){3<6ob?KD8DW;9%>~vQR~U=^#=XTM&tO060w5ak?EWB!!G@L ze-3;%2jTqpte|+;x!q`wiOJvjs$O{fFc>tad$c`reQ)C)YS|F$5FSbNDwavi<4{v9 z`y?OZLkkN?eAq~1kbPa5d1Liw2|~~KJ;cy+MP%#9R4nbpM`blh4Y{CWDo@nU|Ah68q{to?FD=#jKKd<(Ah# zT}{Jp7r$jL9%07H^=SparNY-%14nhfE<$|P1Swh+<3CTd#j*ktwNB|^i&Wz5< z`3gV(yxtTo2`8|~>$9tK$0U5+Gwpr9DT+jvbW0??`j z!x)o%owMkFJq`_=V+&QV`fxg}+%q{T;EP+_&lEFUI$+BZZ>w~Xv?&_gr3cY}xVLyb z+K>>Wy@OGPnV67rJNaq&yY0=Dc3^4_S;g`6Q?k>h{!N^0+N(X~oxOP}xC>tb@9Fca zfdgK-LO9_PCAv+SF^je=UySB<3>^0OQp5#vw`jk%WfQ`Tc zVtlbuHOdFc7@tEb7wF6ESmS1Xeo~pC&lD#twT_hAy#DplbF-M~>u(WH?L3L?DRa`# z@JT{=c(zP*$+8SCaC>dXm(bO-yjoGc@skaEJvMgb$0Y=6yf99>j zQi33Y!EBOEL)Swe;%UYa*)uG?tzULWxQGwuM#RRt_f>6J?76p~a>0zP_!8vN>*oZm z$rniEbeTQr!4r(xAs$65>GMikRO9?a-Fm+&5?M4ax4+9L!g;F#5i?!|C2+ZA5A6O> zhNXrGme_y&Q-ksGhu3|;wl-NL`bnj&SUz((r-vQI(MDI)@*B9h2TQ+3Jhk+)Z^ZlB zb9NQCsS6WbHrCWbJ?!{Fkl5J3UcX!ejI=*1MXR6at;ubo)p{6ipZ5Z- z$IF|XJDc-|b35KxL6seTqg!kJDo7;#JVtEh>$`}j&^w2@_~`o$u9fTx2l=tx=Dqqr4dW(o) zu7U!)-QKV-$=6ETps0CxdTF{ox?H*a=;9KfHJWHv-Icv%z~>?^RyP)ZDEj0H#?haO zqBTZNH&_=%42FxZ${DTo&t4UUEVJrfR~gFp%iy*k*kaw4TXheM0fK9aB$^dw`u$FD z`Y0wAy&x#aqO+IjySz=u6#AzAnq@p4EJK)NjTOuKZ(y$YXF+NuC9>epsq*u3RDMA6B z{BH=EU(F^ZhUgO{C?v3oQA64GF9eg=RuP$4zYG zevHx-ZEgyfTyx{#`f_m2uTPQjbW3gV3W{gShnnC?EzkM%wQg78masVOY?V6BP-)1V zP3^C=aZ51ogDroCyT!F!19PRsFy%wGJ5Orcll+($uE)j;tw=**!8;HIbo4^PSQ5p` zk3Erj?cT!NF4*5w+Uu7hS4B~U73cEXlzZi5l9wqsV+G+S5rv*=M)n%lRKWbG*i9st zuLY^5tChZC90Vf=o9Ku7SH7yrP>Vu%UHB@&4x{?2*xclT{mL%b>)cXAKZ)E92j%Y& zA_5ZIDCvnZ1oa^LJw$kk0t&D>s^~;}OvJ7&Ci1$^4;$PyW09|gBuZ>BqAC*gaPBKD(PA)=!QKi=Y0PE6CE4aFrg!}_j6^DKjYcFtX1~9IT zDaB*{8u2JB@*jRIqUb<6&9NbwDpf06D5^@CVak8locPNTY%rU-0aT{KFG?st)qmG@ z2BAb&)MSdv2~WwoOibMz9i}MGGd^B|pf;Ixf$-0M;W0r&S}gp+OK(-q6!TU8 zx*b5867K!w)+BLb{GT6rsAA>?#c5Km{l|{ZyXhLn%}ubs>#~J``&URe-xa7Wwd;J| zckTRMwV~jg5}!oGHERW-ttx($qZ`+~MzBXhR#(k@yLK2{-qQe{X#`$~yq{OZ%p0rx z$2P`WM+SP)bvsucM#99#;a$T{Vi5)NQ?Q3W;`J@r{bkjJFEfRPI^w-jqb-ekJ+;|Z z{3Kr!sB|dlm%nFCCUmPlT_J(JT;pWM+=R`LCp(u3M^?s1w9Ovr8v8XKb7eEsr3*S@ zu)o&d0V4J^)|##dOrL3*iDj>%5v(RXq`oJ3z}y132;0p(G|#X`1&_XUNc6t(6%f{u zN<*GvWhLJq@Hsshz>9Ce$VjT@a`ua)|Qi<^oeybjYbaYC$D7?EEfwsF~=)Eg81Q+m(ykGF3=dn5Vv1~Qg zg?6fjF+yu*PACHD$gr|c;7J^+DQ+$c_ghy={DI(zuu#-NUBbjmk0c+qjZ412H~|KY znNKky3?k(xE~pXyg? zSUH%BH`4&y1x!!fDjtyKtvw;4yt)@RbQ@SD0yl?6YuY;LVJaQne>lWDi*tmvLpp$SMkmKHTXfI8Tbj z9@s!&S5d2EFAv(L2G0+r99O-%*UE88wEcr|!=V^>U!YnM&N6W#^=s=>TO-VLmhe0` zSsH4Cz0MCi{>yIiq)Wg-^MP*{H;q@C*XNlaf~wND?;SIJy9#*7jwx0C`7`6)$gu98 z&N!Ef#+=z2?hR83jjI+q%N91~X&qZjzbf9;Hdpy)0LCv9jIY0bj!iy}PDH=(VLvP~ zbj(k>3H}Y; z7I&~hTUS%3Z3eJ0?pf}-2bweJVzl!W!&fT5Y1eKnUQ^?wc#Jn2FSrXY5)H>7IMlJn zWwd$TX`6B&c1Xa0zfO&Mle*p*I+2I-9P&>51qimm7lfEICFc?U5=+ismS;Y$A#pntA}zIos6u;VA!3f5|$$bB=)D=mJC)EnN$ zk|L6JcSF1W`MXeAR%e*GxCat!PcYw)f(!qmNLMMX!JiI@f<=Cx+UeR`1howTg-R<( z8=qPrsQgetJ^7S#OQvDQrq>pu`EHs`N^???)gE`~R7%FI{xp>ym?lPY(1vd(R2lzr*9u+v&*T zpI%5*ODJ;Bu#*0}Ac$8}Q29!qHr0c1rTF7$1Jcof@9-FOePmdCfQZDCY4V9GJrHv> zfLEC1pU0$`wEo97L5{HP4-LS$FF&yK2sN=SN6@CabnD~q9Mp2xE^9129w3PK(CeiA z!y2m6;vY)%>U-pUZlLry=dt@75g@Bn$PRRWp(i5tYI7(sfdXqSRPi$=;5<-{!lXq_ zbXP?<00Ya6uQ_tp?Z6Vlf$dyrV7Jg4<9@O#bLWX|`|MyHx3ms+5KZVc%E*Z9G^lgf zRabtx{paY?Y1|imE(K?5Tp*n*_wkJ>pzCCXgku+0)nhsR88e=awO8at8h}a_4K*PHGj#;I&!ry@! z2;B;z*lbRl5{MOHn8y72eP%&20a#R8Y@6UaB>ItXpY|0HbMB|mO-}E1`{sqhw^+UG zjdFvT-5M&|%PHS3b5(3_%ZI%bqK&@!AqRO>`1|*^ z%th3-`qcuHpk(?j4NOf*Yfo%+6=ZB8xXM%eP`Xt4$bwW_W_KKMePZybCo#t1hC#T6 zbOws-vYlrdfi|j^YbuDXw@T|Q2q2z&Zuse<_VR`KASM*{{IzSHovSlx+)p(LNq$Dx zZ_k-i5d4C1)Up1hk>absycRa+wdVFhmIeU&$gMv0`Wo%e)8E`y$9uGpZg2P^4xc}Ja}{3-6GA+rE*n{)kLb9jew%j2TH^N;4^&~ z1Mov=yx3F_aolq(+IGJ+l0&P3`ghpZ_w&u~g&)R@lWkw?Fjp~bB3a!NNLg2;;lnm5 z+{L^h+HYNKQeYaidJm;A?GU^x__b8>{z0k!XoLB|WO5Nf0oZ);VKRVRGwZr|*(d-OQu~oLr-zq+N*8)cH6oRbtQ8=0h_WBmkFrn< z_?gKjIN>Cg_`5Sr8}*Ut_oF8DD~$y|2e%lwdIdg7Kf9JydE@fbe$nojUqFcK;>7zR zW(OMIj@K1276?YodY-KT^%BiC9ZIg@$#B<$tZ?f7Nxd?AEpevbJ8_!r_$s$L_nQ-T zuj@q{or@3(%~AgC&_Oypw*=%@pyw9xj=A_!*IPpSj_A8P#TZXnY_kk_0(MnY^CRwE z7KMs4`Yz)@lMv0BwF8NB$!uv1_}EAG#yo}UV8qkg*FFscU1>LKs<0T)f^J_ zi4vUY4|$(75M=c;$*DiC+ewVdj^)OBnF9{2-vJyjHKZQ28F2hj7L1i0|KTi_XuTCM zF{ts|F>JO*2Pu@w&C3RWVrR#^#Rv;_BZ;LBEXMe9BHw%fDg8(vk%er0YVio zg)l`4xz9Z5OyuHN5_WYXACytg9HmT=Dr@UHo%HkioD=@`PZqD-vP%Ybu-4~*m5kN= z43t;EhZP5|%ac#zlSvGT0KwThDpn3wS1k=$Wg^Z*(7!K9F;AteK8VUTTuGAl(&e7~ zv9Ov;hTNjqZ=^ZW#MBV=?4O~V{Bk!1=}U7i{a(?KBLI@DbmgVYTu-tvcb7^6PRdC< zcXtB_!Ku**cxe;BLlXx)u9?`4C#;J;?(9l&?+68ftJrU2{T;(v9u45r-GGc_m+P9Z zF8^LBnOi?Ov-y;_)WQUeVe*q5?sZ4-I!FfZG}^VM8=Z!43I>$UmJ);HI;IXbrXP0G zVkVi`h?XKlqM@~yp`JQPcD@?1}}T%tqAY7RVoATz5oi`A{b>gd?S6pny{$Jw{BEu zJWSD(^-&Y^UFR!mSIvTUACG3#Y#DKlKT)DRnf>Q1ltYIw#i}LAM4^FQ2GsWU7a}iw zFI@bzgcSJZ`0seqOR_k_fXvz|D)y%3@q|)0R#gBB$!YuatnpI_Z%-Nt7eGalv0oCv z1VV$gG^s>yjDv^iuqN@Ecg?!@eO0WuL4K-Om1w*q)otslg{kR8mHl0efH%kXm6!o_ zNu&VPg|ug}8`I&dMrY%#ZUtt*VLXQItH^>B2?Uu|QcH%b5jYjcdG*z2KfcH^^;V_c z!_uQCsfDkILJPMaHIeM7zbgnn)5MzmsejDwpfQ@!2pePA+zn0d))40k0!lVf(n=Fp zUbEF^K(&^nD&r2`dlH-5{fmlM0LccVfaI6Y#Ewy?h`X+*8_yZti->VQ65r`ARCMXa@v|4)MHUNB^arke1(X25gZQ#m`QPhLfZ7H@rF6e zqD9fMEn+NDAL!?aJYJ9LW``+U3phf*F0Pjn0JD)rY`LjBZAwM*4~)S(Z>NW6UkU{u z9O^?b-f)IghYNXeBI}sG(v6dZ42P!zNkk|VjqaS*=Js8$07C1xTs|d?E&6-mf9T16t|QMvM4knzD%eq z8s13wWL9bju0_z8=ut6b^A=Zn0Lvsw?q<>+X`Oy&&uQnl!gu{J`B^p_a;*C4Lf+ zR#$JbEJ&B9k=(pgzJQ}nua;A#^o;?Ea+j>}0$(cAa5YKQ9HgV>$LUDlgS*p%Nt(r% z*yC!OLrpP7w2Yu`MHEiI)j8Yfv67_9ktx5&@pI(WCJR!d4PPZp(l?Lx54cc(8JOc=&twR}5ufQL)$%3m8P!<*f zdRti)PMLmN)d6~8?mW?dCUNp+goE{yyx~Zosp-CcTHM%lwZf7(WeNsuu!{ENSGcy! z)(AX8Mh|tZBk2GvUko&a=*H>yb zrd_)g0csj)wD&szVb3>RRjY$qHd)M_fT&W}*MX?CMVKIRxu}UxTO9_Sek27vsgsvY z1!#c%72^oY1Bhy>Ib*qnBwVdJNV)jii5hJcM2n}LtC-+RauA-0u^zbYB#r`PEs%*q zNK0gP?Ka0YpZ?^{%Rlx3;}=+Q-`4lY5$^{9-z%K5&_j?inGV>S2YBV1ft(5k;MuS1 zl|s#lIG4}rzb61!`CjFNVL!5ha)O~+K;b`eSug1P;RdsD{-WIH4qoxYN(vg8x=cr8 zvjO&W`&dD-l@2S1)F6!lD#hO&cfd6~3SdL303g^V;+fc;M%!7FDy33fT~E>YnU*5G z4RCCOehbHq68;NttmM6%q2;6w)_Ab_g_~d@S@1OpK(K&1NpE^dj^9Wbkd1*nH7Ri= zX}Lc9rx8w6WV#r@-~cu-6)CO~^I*CFL7Zp`Trh~5xP5{esth@5l7$Y6}!#{i5_uSM`4a^My}t4tM{x13J|$ z3pT20-~hq^fQp!i?=ju3bim02`R_6U>Lfjf$v*Elb=%~hSG`w|AeymY6rPUY@1j3Z%Qbqy$=41*;y!4hBE3_5XTHt@i9 zcL5J1qbN!qI{;qT%8*k^|71og3W5O8B;3+hz|uRWAoRA#QF~BmB{g@8Op^u?;{StOF|)# z`t4oEc^%yzv&snMx-CbKemV)5Eg)sRB^F??l_Zm0Ah9;qHQ;2>m)}FQi#@ZcbpcF4 zc-P|u!IO1ht5RSuyU6R;KRu9z&bGesj4s4Drc=r)MlO`A1KKh!fsHDd0sIEPXj6Z%t15K)_VvF;=A?iw zqLha3(M|{tQ)!bdJ%NVz&(JDh8uH7vTZ|z8$4Un3-8IwpTFb{dwODfGUAowffVfQj zFB$-s&`4zt!Xwd6Kvx-!ffob_V=ZY8(U7;-y`KYQf-c5Ad4@ahi0ZrSC$K}6^%c0n zOlbim(HDFbb9;Ahh~UI_4BjDYT1KsU7Z{OP9a998z zNFL3SuI9V!WBlj_if(}I)9?(3;Tb(6K*%Pk|G|436y<x2>ALh1?OBznqvi( z>VUn=JXB!+GAs(a)By2eB|rE?7i#AtO2HyrV3YS>Ucn8qmFuZ8x=O0?rvKhcI!SA?5o;@NS#Af3W zu5V`}_2^M*wD$qCif@84OHXYO#*x8b>6eaJ=;d9A3F4uN-8fPDX>N^52u}k}u#6h` z0VL3nUBWCKp0N)f7Y5plYByr~oPoac0B!_;Xa)NxCliT=JZexN2mTIeiF*=d3PcN& zO8cIBc`F^4@P+gYc+wull^`J4S!8xBu-=e6LubHI@x6OiMy-akzwe|Kz4DP|-=ZvJ z;d94X@A%6+1FdG0caOp6)@xTDlA;DWh9p3=MgvlO9gyKoE~>`w6}%OCE$eu_M@;_64= zz8Wj}z%nh9rTuq_bhov9RNv9Ob}oWi7RGKA2#T-} z&pQ)3VCeQsr88lq8LNiU+`S)DU8la5htNoT6{fuj4i1=SqPh!5NsT_8tJnzM`0Hdf znr6~)*w1-!6CmaC;VqoTmz$By-5u5#U^EA|!?Ez6Qy;;e6@zTxnf%#*Q8>)mVyxi7 z|~P~W#4{Zrk#7;`hC}5KzIDQ>h}FL|v?cM! z$K;hHDgMOfRKt#pMa!iqR zS~lB)uPZkT6TfUQbsBpM#A{uNNR%ZDTU+E*Uwn%y+R6=4^X>8p_4O^=Z5pzcR5K3; zhh-C+SEd!rwS+F;I$&^mb0Z~V;8tWn%Q5Q3@wT|vHYX9Ub=dvnQ}U&YFEd4jNW&q~ z%Rq@abwJq=mk=f-cR$LHhBu=@1fac3YQ}jcwRHYtrYLa#4%REM%=HWY&(lR0$&Eqr zBXi`>tp7ZT1uB744z>51h2H^w%2>#0=qqoRJ5>}Hhi0=k3wd~vq!DE>t?|Zzo{$gij++Sx_7}!#9 zF#|Y(16iLNtT~7Y@8B zE%MKUYE*pfvQe%A`eSH%`1YTG7Y7+F>Yd;8{Itjt;v2q7Y>9+ee$RG20w6RsnGZOa z;n7=vmOmCTr#AS$UKzNp3rbQB)0yW?1;<&KB0|G^L;8JZyEDJ$uB@K;xeUe;g?105 zBf$w|w{@w%(dq&y*X}L_5GtAYt;_cv9Vthcn3N!N?Xwt1jn&*w4#yVgF*Pdy5H9%q zmqIdc903^9VL-*WainW7x^ZB?&-{r9COiy}3YEfBxY&Mf&c%!iRvEZ6jfKbLEo?IY z3SuWsx0i)1M!#~l{?0$*B^9Yake?x~$o_6|&b<7AMrc<7xn@9oHh;DbQG#`z%lRTg zsrT-KO7etHdUbCn>du%^kn|SHx47v&;YdqJpx&+|Ry7`M2aN=k8xYJMwQ(q8y$B6? zZoKajcLqte=P>idi~Q5(E24zgJp6@%@;A9U=??K*8y}bou?BkFR_$Lv(My8T(&Cv{ z1eb!_=JwSP>hoY@?vlXO)JzhOQFt*6z8&Zuh{I(EZqd)&&pFI>FW-8!d>~2CUQy9$ zV0Y>WD%qH#?<)r0@V&n=wubuS@L~}7xau?GbaiV_C;__K+xK6syfLve-K1!1Oe!6j z9lUS!?=(zM<_7*Am6mJJae&3pFgV^;=t|c$1__}j@d^K_+`qJ9YmwVzTmRzEMJN6F zss1a6R^79xO_nHzLwqi9WXz|%Gz9Wgg(}7qP}`}c>Frq*w^A9I-q8WR`NJlQj91HX z+?6=-6>1Z~FmXr%Ik#^ByPv-LKx22IZ71ZSB(3`|YEjZe0))NJKSmd&n=I+Fza~v> z7+AmpT=A%AVUyI({U%abR?fYH9#^(9eM<>tRo^Wlr;?ZT)ma_+wEy`XQgh%Y^Ll1x5IHvJi?gou3q#O?n`L6ga zNtn9OBp%6 z&N|4g)b6HfXq(^SzZ%TpT;mStBG<BXk_Frlq+pMmm(%|XjD zE^x1!!{{@jLFqx?{gf3eiMC2VToSM~>>q;ja*AT{K1fsLd8@U(x?I>O>-fdY?xb7T zZ*cXN$Gs~Ga$W7GFXsl5T}b$*SADnFZjwBbaA&wl z#5_a1?SqNXHwV2D)~nY*vyZu`VG}c`-GnR*nEjV+rF74L$fEwOH^#S1FurFIKLl%) z^sa)`QKvafie6AUjPEb;r)r*r7I)FEh27SlHX9WA{@ejEo3!+dhxney_so)MH6CH_eI))gY8-7Wp~*-<{HX-- z8A&vs|9~+1e$rVn15du`kcR8{UBU6_XJT|$3__hqINo%(U;P)c5(@oYKlydET?A1) zpi;P|EMfVa^ZfJJ9|DZJKIoW&xB<8|dj)`z{r2`0z@Wqeuwi&tW@+#*W?wDAmn6#x z!N#0l$B*-m39w}R;Y3iV1B({uq!O-e>+s+X+DC7)d}7FIp<~>;0g@4!E%C#z2VnGr zz~>L%@c8$R@^;piLs{!4}Pgjh}Ux^ptpwmQRONwbDs zOWzn4nsWv_Zpt?{pjm78nnSd4%`vWu;>a*Epm_XJcsSRw0<@}07&H}urm}$Be|Jgj zEyjR)PfK_96f3_)e735BtQ~GGDdSqZrf)PZnP6evH6sJ-h7vbG|J{e?#yzwH%XQFy z*PY$hdkdUI0;O$QpQmwy=Tv~V-$T}&66)W;9#ds4#2-dV;MaB~e&KNv+!Mlbe*v9y z!lks?xE42$*Ec~~3O^vXbr{2&Kt$0xDxBK_6Fg&oLOVF|!kH2Mf-@)W;@(d-_IyhV zjCukSMXQD3#+2;6=!&nPDK)hY$%G|yhz9t3iz23@Jb9H`@|GyXd587OSKQ)t=F=EM z6yYve`8H@oE9%7G=7trWhHMK%Fq^mD+?E%^E2MlJBe@PAtRSU@?o^bRRq5zk(54p< zanmOG`@$rsrg)%la|Q+9d%ej}1ljPKbq_X?T^MYuWP1tF4 zi-J2Hw6qr69py~ql{+L`N~I^oqvFD=OyJ$L@N0$M(gGX^jkfF$_h)BB*)VO@f9 zod(y5ch>77Isy+njUj3sFoaKioP6K+Z?0r;DqDlG1+}aE$>4f%h@zFsikO*zj_9WU z4+S8Vx{6K=eFA8FBu18;JX9maH5sltj2ex@!vcG0Uz8y_w5=fb*^y5{5e3HgVsPYX z)d!buk}g=9ejA57fKxJFT4%dfQLIpj6>;Va73=$fs=+yU6f?C%g_KCW~IvOlvZhhA|5iD~% zd9Zp=5B4!9FL{rXI9Wim_I64G>+nySpREBRf>+3H3 zeGjESt35;Xi-EfUOV(n0W}x@q1ona(OQtE)U_E=A%Gt{Jq-}stZ;eW{oMt|?f$39& zz|-ju%I==>C2F(DV>5?;1Dl1Oo+m8ZB`;Gz$~{RY4KM#{3`T(viHjc}w&NRDtIfqkNt{+OM8$s5kiU+Fxv!iNc^6%+@%E1o zijL839U%|9xca4yljY>0_%(1X1k-qb6KvMlaWmEbKu$|Mgu@5jhlqpNn*FPLD5 zGxL{D@n(Of)Ct%#rZ0C9Glh}~(`0edM{n;N@xT(Fj#IQEa_8-eUilcb`d1!>OdxHa zmJjT}pD>g}(K#(VA&7 zC|czmP!I>a?g%q2)I}a6bsf&Ojut7c$KZ3(u4I8eMogK{=3BUI`~JOWYC6aMq&iQT z%2>#ErC$Ox1S?2V4ubC3Wy>JC!Ii~AW&qG1t{^rKT zr?2I6;}f~NUAHS1C{^C)C^VhCt*+knSjSPCx~^D;Xh#QpBqa3OCV{?IO#!!$n>$wl zv(A2_-ZdF8TE@#=irS@n?`cCw-$OnwbcAwfzifVa;u^Ii*a3bldNT33^O56bO02se zxLt*cl-$uJBi){*A-yyVcaX7y$X_)C_=xeWJ-_vQal`R*>^)@G({o`c^qh`%rHwPx z_!k;@MW7U1-@bWhsxva8*h=R%rs80ORL=dJz&Tjswp1e`U2r9QE1yN~2L1Ip8kXs` z1G^ykLjs6$v>4HT58UxE#$D`TET}g4$*QtoSDsW9y1V?&(@0qPHsRA9#jPhHZ|suo zNJ3N=^~aglTLD=We^)9k)fQ6+st9S1(y|kHnKy>ujz4$3uD`N6RoDp0c)pQ5?tiWX zflC)AIZD;@4b{8V;uP<}Xp^;(Cm3G+SWaD)ILdQqTOEt139dtF8*)sZVS)Cnho0Z| zq#K;LJaw>|B;jByhQ}v!s1AX)bO{g{G@MBN;0(NO}XTpx{O;-52 z_qRz>zFkk<_!nnXQgh`oCl_RynHOyJ{Gr{lPGV8MG2*q4k_9;%33fXV-kd4x+n?;a zM0(VQ)Ij$<*H$W9u87ctn2^rxoZN&Bo)9M=Ee&nP?p7h}3w7;3UTBd^O@dg z9+7#gioF@T@&(in%7+2g>K1|Xy+V?NKod(bdl&D%;J>=Lo?16$azk>wS`FM7q8&`^ zr1?~dP@87-F;MBT*=vb6{&fLZ0irm^cQ5~w)=BzBiuSo}cignc(MemOX_r9db?dPy zd5g^~ou|R%pX&b_|$MYU&a63m9-A*YKjSG?>2 zwSn@@%K@1m!b7w7L6rx^`3H}9|DH63~1CT-lQELRa8dvqU_l3+?@|dKRel;Ygla@Ho zV6`47%JsOAk+#m#sJI0zmwR7erP)NGywRVhcmMp}X@1kovuL**07#?5?&NHe5@jU& z;OlzjUwjmFJ}ud#obSY+^(v#@I)9|$+_`2fID#XDN-rM~Ju*3z_bR)4Gt|^}<3jaU zE~jh!@6p^lO;%9gE8JzG0hz7b8#heOGu2pfsJM1Rr)68p5Nd6S%ibyyrDri@eCNif z=s0`4?Nl?ZM;A9V+&XzgF1drtT7oO!&@ENo;uZ;k%~va3l@#I-=$*%ud6haU7B@Z% z7q#*fKP~Uadrpq)cl53Ft1~z?Pkkam4{`o}Y}#RV?DA_oKU9G}^YBN1E9Lo+@nJN8 z(49U|;Omw$p8=JbDbyOgh06iDD4OCz5m$_FK=+78YOamomx06T}O`=I&S-jn5e6*BxFb_(d&* z&GvQSAt%o=P!)>m)c}V=Y8qVW$H%n>7E`{<-6WNGg4`Q1wRL$)(;ud*UvH8}wRc6% z64IDRetvXH0{Wmp!8HnX`G@6^B}RRLLMxW8)^+mCXQ=%wDYr)XZTio@7F$$1 zbEbR+3QpzCmyvAOlzF`|5exJrp`o{$>b>IGYeVdGQEBr(YFfX6H(+_*^h;-7W_&DF z%8j*OK5yJl6nOB%SE~nPn(e(AH2sF?-?GK?3Ul(Cl%3K@?gRWJ)*Q3ps56m4oqjpin;KNWi3APqRE zO&nDOT17_zEq3B=z&707&CB`BhIjCY$csMxWkveyXwwY3>Pw*o#Zm>)A)EDMq2XK# zfA994_0~v;y!O*77>s*aI%ORH^js;yqZNrH+TVWu=S;U-7BUBhE}I@sN7M3AsQNZ4 z<<9JfD=?EVH=M1gDB^JeTeY#IrZXaO-Ue;wv9a-YroOzcWB9y`CkO7AYRMV@s__Ua z-M#u>Jth{d9sFLh+Ja?*l&c6qab{&mwli6GO~ZBsUOZ7x92$%6zUIn${DR@j0iOA4 zKk#~dqhB}!OVe}hARIWw4&2f*lem=3H`fxc z$_n*7^g3_x$wckI$cHuRLV8dRh27s>qF*c{90`K(PlU`PY@YLOQ6JBOUT^T|qno2& zvJK~b!q53@{ibW_?H88INRG#6S!=e~n@zZTBC!g;=x@{6L7!`A(IdGfpDz=RWY)S> z99v>l!5ya1*lu->^Wevysux>SUa6v<(|M`1pJvs`KCfG+{&ls9PzAZbJ*8yhb?pc9 zeFoYPd=54l7qdGzOCos@mk>(A~q8g zz+eGZ^E4TZY})5c>4*IOp5Lj2Vz~h^VJ@?77dZc`!{9P=U)63Re|R&WQ=KMb0t zCASOlF+$kV5u}gfe(*u@%}2~jiM1xIex(%X0xaA5@c2le_4XkBvPr?LC-r; z=Cg-d`2gN~-(?|*^3ZXH&vi4?ER#iugc%(18KES0eWEhlEtDmnNbO&5Dg=!2a-Hi4 z&rfo?3M&^O^viL?3v(MOziTJBaZILirVyG;K)Tv5V|X3%0G{0F?d_ejZv(M8n<^#X zEIk&Dbn{nI(s?TV9w~`Dd-_<*P2_l-P?yB(hj_UL?Xy?Rt$WX%&a@8;19n zT7Tm!yD^74;{S>@eUQwsxmhPW_J{fK`l>u`cGA{uJ_1JSE2)(^B-~5vt=7;mg9H(6 z8s1gb4g{52y|-{dI18OIHN>u>92zWn+M=jipswmC=#X=TX8D%gnYoSr_(R_RxBpzi bZsP@Ka+-h~zJa|i1b%ch43U*;_Tm2rbm2z) literal 0 HcmV?d00001 diff --git a/packages/mobile/src/assets/icons/svg/128/ic-tonkeeper-update-128.svg b/packages/mobile/src/assets/icons/svg/128/ic-tonkeeper-update-128.svg new file mode 100644 index 000000000..19e6005fb --- /dev/null +++ b/packages/mobile/src/assets/icons/svg/128/ic-tonkeeper-update-128.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx b/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx new file mode 100644 index 000000000..71223a191 --- /dev/null +++ b/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx @@ -0,0 +1,48 @@ +import { List } from '$uikit'; +import React from 'react'; +import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; +import { UpdateState } from '$store/zustand/updates/types'; +import { t } from '$translation'; +import { installApk } from 'react-native-apk-install'; +import { getUpdatePath } from '$store/zustand/updates/helpers'; + +const UpdatesCellComponent: React.FC = () => { + const version = useUpdatesStore((state) => state.meta?.version); + const state = useUpdatesStore((state) => state.update.state); + const progress = useUpdatesStore((state) => state.update.progress); + const startUpdate = useUpdatesStore((state) => state.actions.startUpdate); + + const handleInstall = React.useCallback(() => { + installApk(getUpdatePath()); + }, []); + + const handleRetry = React.useCallback(() => { + startUpdate(); + }, [startUpdate]); + + const description = React.useMemo(() => { + switch (state) { + case UpdateState.DOWNLOADING: + return t('update.downloading', { progress }); + case UpdateState.DOWNLOADED: + return t('true'); + case UpdateState.ERRORED: + return 'Errored'; + default: + return ''; + } + }, [state, progress]); + + return ( + + + + ); +}; + +export const UpdatesCell = React.memo(UpdatesCellComponent); diff --git a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx index c50f9e51a..3163b2c1f 100644 --- a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx +++ b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx @@ -3,41 +3,57 @@ import { t } from '$translation'; import { Modal, useNavigation } from '$libs/navigation'; import { push } from '$navigation'; import { SheetActions } from '$libs/navigation/components/Modal/Sheet/SheetsProvider'; -import { Button, Icon, Text, View } from '$uikit'; -import { Linking, Platform } from 'react-native'; -import { Base64, delay } from '$utils'; +import { Button, Icon, Spacer, Text, View } from '$uikit'; +import { bytesToMegabytes, delay } from '$utils'; import { Steezy } from '$styles'; +import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; export const UpdateAppModal = memo(() => { const nav = useNavigation(); + const meta = useUpdatesStore((state) => state.meta); + const { declineUpdate, startUpdate } = useUpdatesStore((state) => state.actions); - const handleOpenSettings = useCallback(async () => { + const handleRemindLater = useCallback(async () => { nav.goBack(); await delay(400); - if (Platform.OS === 'ios') { - return Linking.openURL(Base64.decodeToStr('QXBwLXByZWZzOnJvb3Q=')); - } - Linking.sendIntent('android.settings.DATE_SETTINGS'); - }, []); + declineUpdate(); + }, [nav, declineUpdate]); + + const handleUpdate = useCallback(async () => { + nav.goBack(); + await delay(400); + startUpdate(); + }, [nav, startUpdate]); return ( - + - {t('txActions.signRaw.wrongTime.title')} + {t('update.title')} - - {t('txActions.signRaw.wrongTime.description')} + + + {t('update.version', { version: meta?.version })} + · + {t('update.mb', { size: bytesToMegabytes(meta?.size || 0) })} + + + + {t('update.description')} - + + diff --git a/packages/mobile/src/hooks/useCheckForUpdates.ts b/packages/mobile/src/hooks/useCheckForUpdates.ts index 238dface4..0ed3aa296 100644 --- a/packages/mobile/src/hooks/useCheckForUpdates.ts +++ b/packages/mobile/src/hooks/useCheckForUpdates.ts @@ -1,10 +1,17 @@ import { useEffect } from 'react'; import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; +import { openUpdateAppModal } from '$core/ModalContainer/UpdateApp/UpdateApp'; export function useCheckForUpdates() { const { fetchMeta } = useUpdatesStore((s) => s.actions); - const meta = useUpdatesStore((s) => s.meta); + const shouldUpdate = useUpdatesStore((s) => s.shouldUpdate); useEffect(() => { fetchMeta(); - }, []); - console.log('meta', meta); + }, [fetchMeta]); + + useEffect(() => { + if (shouldUpdate) { + // open update modal + openUpdateAppModal(); + } + }, [shouldUpdate]); } diff --git a/packages/mobile/src/store/zustand/updates/helpers.ts b/packages/mobile/src/store/zustand/updates/helpers.ts new file mode 100644 index 000000000..c7f418d4e --- /dev/null +++ b/packages/mobile/src/store/zustand/updates/helpers.ts @@ -0,0 +1,8 @@ +import RNFS from 'react-native-fs'; +import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; + +export function getUpdatePath() { + return ( + RNFS.DocumentDirectoryPath + `keeper_${useUpdatesStore.getState().meta?.version}.apk` + ); +} diff --git a/packages/mobile/src/store/zustand/updates/types.ts b/packages/mobile/src/store/zustand/updates/types.ts index 6d9ee4df9..333d3dfcd 100644 --- a/packages/mobile/src/store/zustand/updates/types.ts +++ b/packages/mobile/src/store/zustand/updates/types.ts @@ -1,11 +1,25 @@ +export enum UpdateState { + NOT_STARTED = 'NOT_STARTED', + DOWNLOADING = 'DOWNLOADING', + DOWNLOADED = 'DOWNLOADED', + ERRORED = 'ERRORED', +} + export interface IUpdatesStore { isLoading: boolean; declinedAt?: number; + shouldUpdate: boolean; meta?: { version: string; size: number; }; + update: { + state: UpdateState; + progress: number; + }; actions: { fetchMeta: () => Promise; + declineUpdate: () => void; + startUpdate: () => Promise; }; } diff --git a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts index 829b336c8..bb409274b 100644 --- a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts +++ b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts @@ -1,26 +1,65 @@ -import { CryptoCurrencies, getServerConfig } from '$shared/constants'; +import { getServerConfig } from '$shared/constants'; import AsyncStorage from '@react-native-async-storage/async-storage'; -import { Configuration, JettonApi } from 'tonapi-sdk-js'; import { create } from 'zustand'; import { persist } from 'zustand/middleware'; -import { IUpdatesStore } from './types'; +import { IUpdatesStore, UpdateState } from './types'; +import DeviceInfo from 'react-native-device-info'; +import RNFS from 'react-native-fs'; +import { getUpdatePath } from '$store/zustand/updates/helpers'; const initialState: Omit = { isLoading: false, + shouldUpdate: false, + update: { + state: UpdateState.NOT_STARTED, + progress: 0, + }, }; export const useUpdatesStore = create( persist( - (set) => ({ + (set, getState) => ({ ...initialState, actions: { fetchMeta: async () => { set({ isLoading: true }); + const oldMeta = getState().meta; const res = await fetch( `${getServerConfig('tonkeeperEndpoint')}/check-for-updates`, ); const data = await res.json(); set({ meta: data, isLoading: false }); + if (oldMeta?.version !== data?.version) { + set({ declinedAt: undefined }); + } + if ( + DeviceInfo.getVersion() < data?.version && + (!getState().declinedAt || + // @ts-ignore + getState().declinedAt < Date.now() - 7 * 24 * 60 * 60 * 1000) + ) { + set({ shouldUpdate: true, declinedAt: undefined }); + } + }, + startUpdate: async () => { + let download = RNFS.downloadFile({ + fromUrl: 'https://data2.ton.app/apk/tonkeeper.apk', + toFile: getUpdatePath(), + progress: (res) => { + set({ + update: { + state: UpdateState.DOWNLOADING, + progress: Math.round(res.bytesWritten / res.contentLength), + }, + }); + }, + progressDivider: 1, + }); + await download.promise; + set({ update: { state: UpdateState.DOWNLOADED, progress: 100 } }); + }, + declineUpdate: () => { + set({ declinedAt: Date.now() }); }, }, }), diff --git a/packages/mobile/src/tabs/Wallet/WalletScreen.tsx b/packages/mobile/src/tabs/Wallet/WalletScreen.tsx index 758edcd5d..ab789dfc2 100644 --- a/packages/mobile/src/tabs/Wallet/WalletScreen.tsx +++ b/packages/mobile/src/tabs/Wallet/WalletScreen.tsx @@ -37,8 +37,10 @@ import { useApprovedNfts, useTheme } from '$hooks'; import { ApprovalCell } from '$core/ApprovalCell/components/ApprovalCell'; import { Steezy } from '$styles'; import { BalancesList } from './components/BalancesList'; -import { DevFeature, useDevFeatureEnabled } from '$store'; import { useFlags } from '$utils/flags'; +import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; +import { UpdatesCell } from '$core/ApprovalCell/Updates/UpdatesCell'; +import { UpdateState } from '$store/zustand/updates/types'; export const WalletScreen = memo(() => { const flags = useFlags(['disable_swap']); @@ -50,6 +52,8 @@ export const WalletScreen = memo(() => { const tokens = useTonkens(); const { enabled: nfts } = useApprovedNfts(); const wallet = useWallet(); + const shouldUpdate = + useUpdatesStore((state) => state.update.state) !== UpdateState.NOT_STARTED; const balance = useBalance(tokens.total.fiat); const rates = useRates(); @@ -122,6 +126,7 @@ export const WalletScreen = memo(() => { /> ))} + {shouldUpdate && } {balance.total.fiat} {wallet && ( @@ -237,9 +242,14 @@ export const WalletScreen = memo(() => { - ): undefined} + ListHeaderComponent={ + wallet ? ( + + ) : undefined + } balance={balance} tokens={tokens} rates={rates} @@ -250,9 +260,14 @@ export const WalletScreen = memo(() => { - ): undefined} + ListHeaderComponent={ + wallet ? ( + + ) : undefined + } contentContainerStyle={styles.scrollContainer.static} estimatedItemSize={1000} numColumns={3} diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index e54d8d156..4dd1460df 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -804,5 +804,14 @@ "value": "≈ %{value} TON" } } + }, + "update": { + "title": "Update Tonkeeper", + "version": "Version {{version}}", + "description": "A new version of Tonkeeper is available. You can download it now.", + "mb": "{{size}} MB", + "download": "Download", + "downloading": "Downloading… {{progress}}%", + "remindLater": "Remind me later" } } diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index 8bae96961..50cd6009d 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -823,5 +823,16 @@ "value": "≈ %{value} TON" } } + }, + + "update": { + "title": "Обновить Tonkeeper", + "version": "Версия {{version}}", + "description": "Новая версия Tonkeeper уже доступна. Вы можете установить его.", + "mb": "{{size}} MB", + "download": "Установить", + "downloading": "Загрузка… {{progress}}%", + "remindLater": "Напомнить позже" } } + diff --git a/packages/mobile/src/uikit/Icon/IconsMobileList.ts b/packages/mobile/src/uikit/Icon/IconsMobileList.ts index beee12840..7a637948d 100644 --- a/packages/mobile/src/uikit/Icon/IconsMobileList.ts +++ b/packages/mobile/src/uikit/Icon/IconsMobileList.ts @@ -7,6 +7,7 @@ export const MobileIconsList = { 'ic-star-12': require('$assets/icons/png/ic-star-12.png'), 'ic-up-12': require('$assets/icons/png/ic-up-12.png'), 'ic-notification-128': require('$assets/icons/png/ic-notification-128.png'), + 'ic-tonkeeper-update-128': require('$assets/icons/png/ic-tonkeeper-update-128.png'), 'ic-appearance-16': require('$assets/icons/png/ic-appearance-16.png'), 'ic-arrow-down-16': require('$assets/icons/png/ic-arrow-down-16.png'), 'ic-arrow-up-16': require('$assets/icons/png/ic-arrow-up-16.png'), diff --git a/packages/mobile/src/uikit/Icon/generated.types.ts b/packages/mobile/src/uikit/Icon/generated.types.ts index 142869974..38aeb4ae5 100644 --- a/packages/mobile/src/uikit/Icon/generated.types.ts +++ b/packages/mobile/src/uikit/Icon/generated.types.ts @@ -7,6 +7,7 @@ export type IconNames = | 'ic-star-12' | 'ic-up-12' | 'ic-notification-128' + | 'ic-tonkeeper-update-128' | 'ic-appearance-16' | 'ic-arrow-down-16' | 'ic-arrow-up-16' @@ -118,6 +119,7 @@ export const AllIcons = [ 'ic-star-12', 'ic-up-12', 'ic-notification-128', + 'ic-tonkeeper-update-128', 'ic-appearance-16', 'ic-arrow-down-16', 'ic-arrow-up-16', @@ -230,6 +232,7 @@ export const IconSizes = { 'ic-star-12': 12, 'ic-up-12': 12, 'ic-notification-128': 128, + 'ic-tonkeeper-update-128': 128, 'ic-appearance-16': 16, 'ic-arrow-down-16': 16, 'ic-arrow-up-16': 16, diff --git a/packages/mobile/src/uikit/List/ListItem.tsx b/packages/mobile/src/uikit/List/ListItem.tsx index 13cf3d75e..1453f1008 100644 --- a/packages/mobile/src/uikit/List/ListItem.tsx +++ b/packages/mobile/src/uikit/List/ListItem.tsx @@ -21,6 +21,7 @@ export interface ListItemProps { compact?: boolean; isLast?: boolean; isFirst?: boolean; + disabled?: boolean; valueStyle?: StyleProp; @@ -110,7 +111,7 @@ export const ListItem = memo((props) => { onPressOut={handlePressOut} onPressIn={handlePressIn} onPress={props.onPress} - disabled={!props.onPress} + disabled={!props.onPress || props.disabled} > {hasLeftContent && ( diff --git a/packages/mobile/src/utils/index.ts b/packages/mobile/src/utils/index.ts index 89a61d517..00082fdd2 100644 --- a/packages/mobile/src/utils/index.ts +++ b/packages/mobile/src/utils/index.ts @@ -54,6 +54,10 @@ export function lowerCaseFirstLetter(string: string) { return string.charAt(0).toLowerCase() + string.slice(1); } +export function bytesToMegabytes(bytes: number) { + return (bytes / 1024 / 1024).toFixed(2); +} + export const Memo: (c: T) => T = memo; // Fix generic. export * from './parseTonLink'; diff --git a/packages/react-native-apk-install/.editorconfig b/packages/react-native-apk-install/.editorconfig new file mode 100644 index 000000000..65365be68 --- /dev/null +++ b/packages/react-native-apk-install/.editorconfig @@ -0,0 +1,15 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] + +indent_style = space +indent_size = 2 + +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/packages/react-native-apk-install/.gitattributes b/packages/react-native-apk-install/.gitattributes new file mode 100644 index 000000000..030ef1448 --- /dev/null +++ b/packages/react-native-apk-install/.gitattributes @@ -0,0 +1,3 @@ +*.pbxproj -text +# specific for windows script files +*.bat text eol=crlf \ No newline at end of file diff --git a/packages/react-native-apk-install/.gitignore b/packages/react-native-apk-install/.gitignore new file mode 100644 index 000000000..75356714f --- /dev/null +++ b/packages/react-native-apk-install/.gitignore @@ -0,0 +1,70 @@ +# OSX +# +.DS_Store + +# XDE +.expo/ + +# VSCode +.vscode/ +jsconfig.json + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace + +# Android/IJ +# +.classpath +.cxx +.gradle +.idea +.project +.settings +local.properties +android.iml + +# Cocoapods +# +example/ios/Pods + +# Ruby +example/vendor/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore + +# Expo +.expo/ + +# Turborepo +.turbo/ + +# generated by bob +lib/ diff --git a/packages/react-native-apk-install/.nvmrc b/packages/react-native-apk-install/.nvmrc new file mode 100644 index 000000000..5397c87fa --- /dev/null +++ b/packages/react-native-apk-install/.nvmrc @@ -0,0 +1 @@ +16.18.1 diff --git a/packages/react-native-apk-install/.watchmanconfig b/packages/react-native-apk-install/.watchmanconfig new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/packages/react-native-apk-install/.watchmanconfig @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/react-native-apk-install/.yarnrc b/packages/react-native-apk-install/.yarnrc new file mode 100644 index 000000000..fedc0f117 --- /dev/null +++ b/packages/react-native-apk-install/.yarnrc @@ -0,0 +1,3 @@ +# Override Yarn command so we can automatically setup the repo on running `yarn` + +yarn-path "scripts/bootstrap.js" diff --git a/packages/react-native-apk-install/CODE_OF_CONDUCT.md b/packages/react-native-apk-install/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..45d257b29 --- /dev/null +++ b/packages/react-native-apk-install/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[INSERT CONTACT METHOD]. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/packages/react-native-apk-install/CONTRIBUTING.md b/packages/react-native-apk-install/CONTRIBUTING.md new file mode 100644 index 000000000..cc91a9620 --- /dev/null +++ b/packages/react-native-apk-install/CONTRIBUTING.md @@ -0,0 +1,114 @@ +# Contributing + +Contributions are always welcome, no matter how large or small! + +We want this community to be friendly and respectful to each other. Please follow it in all your interactions with the project. Before contributing, please read the [code of conduct](./CODE_OF_CONDUCT.md). + +## Development workflow + +To get started with the project, run `yarn` in the root directory to install the required dependencies for each package: + +```sh +yarn +``` + +> While it's possible to use [`npm`](https://github.com/npm/cli), the tooling is built around [`yarn`](https://classic.yarnpkg.com/), so you'll have an easier time if you use `yarn` for development. + +While developing, you can run the [example app](/example/) to test your changes. Any changes you make in your library's JavaScript code will be reflected in the example app without a rebuild. If you change any native code, then you'll need to rebuild the example app. + +To start the packager: + +```sh +yarn example start +``` + +To run the example app on Android: + +```sh +yarn example android +``` + +To run the example app on iOS: + +```sh +yarn example ios +``` + +Make sure your code passes TypeScript and ESLint. Run the following to verify: + +```sh +yarn typecheck +yarn lint +``` + +To fix formatting errors, run the following: + +```sh +yarn lint --fix +``` + +Remember to add tests for your change if possible. Run the unit tests by: + +```sh +yarn test +``` + +To edit the Objective-C or Swift files, open `example/ios/ApkInstallExample.xcworkspace` in XCode and find the source files at `Pods > Development Pods > react-native-apk-install`. + +To edit the Java or Kotlin files, open `example/android` in Android studio and find the source files at `react-native-apk-install` under `Android`. + + +### Commit message convention + +We follow the [conventional commits specification](https://www.conventionalcommits.org/en) for our commit messages: + +- `fix`: bug fixes, e.g. fix crash due to deprecated method. +- `feat`: new features, e.g. add new method to the module. +- `refactor`: code refactor, e.g. migrate from class components to hooks. +- `docs`: changes into documentation, e.g. add usage example for the module.. +- `test`: adding or updating tests, e.g. add integration tests using detox. +- `chore`: tooling changes, e.g. change CI config. + +Our pre-commit hooks verify that your commit message matches this format when committing. + +### Linting and tests + +[ESLint](https://eslint.org/), [Prettier](https://prettier.io/), [TypeScript](https://www.typescriptlang.org/) + +We use [TypeScript](https://www.typescriptlang.org/) for type checking, [ESLint](https://eslint.org/) with [Prettier](https://prettier.io/) for linting and formatting the code, and [Jest](https://jestjs.io/) for testing. + +Our pre-commit hooks verify that the linter and tests pass when committing. + +### Publishing to npm + +We use [release-it](https://github.com/release-it/release-it) to make it easier to publish new versions. It handles common tasks like bumping version based on semver, creating tags and releases etc. + +To publish new versions, run the following: + +```sh +yarn release +``` + +### Scripts + +The `package.json` file contains various scripts for common tasks: + +- `yarn bootstrap`: setup project by installing all dependencies and pods. +- `yarn typecheck`: type-check files with TypeScript. +- `yarn lint`: lint files with ESLint. +- `yarn test`: run unit tests with Jest. +- `yarn example start`: start the Metro server for the example app. +- `yarn example android`: run the example app on Android. +- `yarn example ios`: run the example app on iOS. + +### Sending a pull request + +> **Working on your first pull request?** You can learn how from this _free_ series: [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github). + +When you're sending a pull request: + +- Prefer small pull requests focused on one change. +- Verify that linters and tests are passing. +- Review the documentation to make sure it looks good. +- Follow the pull request template when opening a pull request. +- For pull requests that change the API or implementation, discuss with maintainers first by opening an issue. diff --git a/packages/react-native-apk-install/LICENSE b/packages/react-native-apk-install/LICENSE new file mode 100644 index 000000000..e4c8e6e96 --- /dev/null +++ b/packages/react-native-apk-install/LICENSE @@ -0,0 +1,20 @@ +MIT License + +Copyright (c) 2023 Max Voloshinskii +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/react-native-apk-install/README.md b/packages/react-native-apk-install/README.md new file mode 100644 index 000000000..97b81c89a --- /dev/null +++ b/packages/react-native-apk-install/README.md @@ -0,0 +1,31 @@ +# react-native-apk-install + +install apk + +## Installation + +```sh +npm install react-native-apk-install +``` + +## Usage + +```js +import { multiply } from 'react-native-apk-install'; + +// ... + +const result = await multiply(3, 7); +``` + +## Contributing + +See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow. + +## License + +MIT + +--- + +Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob) diff --git a/packages/react-native-apk-install/android/build.gradle b/packages/react-native-apk-install/android/build.gradle new file mode 100644 index 000000000..4697d451c --- /dev/null +++ b/packages/react-native-apk-install/android/build.gradle @@ -0,0 +1,85 @@ +buildscript { + // Buildscript is evaluated before everything else so we can't use getExtOrDefault + def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["ApkInstall_kotlinVersion"] + + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "com.android.tools.build:gradle:7.2.1" + // noinspection DifferentKotlinGradleVersion + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +def isNewArchitectureEnabled() { + return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true" +} + +apply plugin: "com.android.library" +apply plugin: "kotlin-android" + + +def appProject = rootProject.allprojects.find { it.plugins.hasPlugin('com.android.application') } + +if (isNewArchitectureEnabled()) { + apply plugin: "com.facebook.react" +} + +def getExtOrDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["ApkInstall_" + name] +} + +def getExtOrIntegerDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ApkInstall_" + name]).toInteger() +} + +android { + compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + + defaultConfig { + minSdkVersion getExtOrIntegerDefault("minSdkVersion") + targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") + buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() + } + buildTypes { + release { + minifyEnabled false + } + } + + lintOptions { + disable "GradleCompatible" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + +} + +repositories { + mavenCentral() + google() +} + +def kotlin_version = getExtOrDefault("kotlinVersion") + +dependencies { + // For < 0.71, this will be from the local maven repo + // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin + //noinspection GradleDynamicVersion + implementation "com.facebook.react:react-native:+" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" +} + +if (isNewArchitectureEnabled()) { + react { + jsRootDir = file("../src/") + libraryName = "ApkInstall" + codegenJavaPackageName = "com.apkinstall" + } +} diff --git a/packages/react-native-apk-install/android/gradle.properties b/packages/react-native-apk-install/android/gradle.properties new file mode 100644 index 000000000..6f67e8194 --- /dev/null +++ b/packages/react-native-apk-install/android/gradle.properties @@ -0,0 +1,5 @@ +ApkInstall_kotlinVersion=1.7.0 +ApkInstall_minSdkVersion=21 +ApkInstall_targetSdkVersion=31 +ApkInstall_compileSdkVersion=31 +ApkInstall_ndkversion=21.4.7075529 diff --git a/packages/react-native-apk-install/android/src/main/AndroidManifest.xml b/packages/react-native-apk-install/android/src/main/AndroidManifest.xml new file mode 100644 index 000000000..57b28988d --- /dev/null +++ b/packages/react-native-apk-install/android/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt new file mode 100644 index 000000000..06f4c1305 --- /dev/null +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt @@ -0,0 +1,45 @@ +package com.apkinstall + +import android.content.Intent +import android.net.Uri +import android.os.Binder +import android.os.Build +import androidx.core.content.FileProvider +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.ReactContextBaseJavaModule +import com.facebook.react.bridge.ReactMethod +import java.io.File + + +class ApkInstallModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { + private var _context: ReactApplicationContext = reactContext + + override fun getName(): String { + return NAME + } + + @ReactMethod + fun installApk(path: String, promise: Promise) { + val toInstall: File = File(path) + if (Build.VERSION.SDK_INT >= 24) { + val callingPackageName: String? = _context.getPackageManager().getNameForUid(Binder.getCallingUid()) + val apkUri = FileProvider.getUriForFile(_context, "$callingPackageName.fileprovider", toInstall) + val intent = Intent(Intent.ACTION_INSTALL_PACKAGE) + intent.setData(apkUri) + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + _context.startActivity(intent) + } else { + val apkUri = Uri.fromFile(toInstall) + val intent = Intent(Intent.ACTION_VIEW) + intent.setDataAndType(apkUri, "application/vnd.android.package-archive") + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + _context.startActivity(intent) + } + } + + + companion object { + const val NAME = "ApkInstall" + } +} diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.kt b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.kt new file mode 100644 index 000000000..a096e7bf5 --- /dev/null +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.kt @@ -0,0 +1,17 @@ +package com.apkinstall + +import com.facebook.react.ReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.uimanager.ViewManager + + +class ApkInstallPackage : ReactPackage { + override fun createNativeModules(reactContext: ReactApplicationContext): List { + return listOf(ApkInstallModule(reactContext)) + } + + override fun createViewManagers(reactContext: ReactApplicationContext): List> { + return emptyList() + } +} diff --git a/packages/react-native-apk-install/babel.config.js b/packages/react-native-apk-install/babel.config.js new file mode 100644 index 000000000..f842b77fc --- /dev/null +++ b/packages/react-native-apk-install/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:metro-react-native-babel-preset'], +}; diff --git a/packages/react-native-apk-install/ios/ApkInstall.h b/packages/react-native-apk-install/ios/ApkInstall.h new file mode 100644 index 000000000..34ac94ef3 --- /dev/null +++ b/packages/react-native-apk-install/ios/ApkInstall.h @@ -0,0 +1,12 @@ + +#ifdef RCT_NEW_ARCH_ENABLED +#import "RNApkInstallSpec.h" + +@interface ApkInstall : NSObject +#else +#import + +@interface ApkInstall : NSObject +#endif + +@end diff --git a/packages/react-native-apk-install/ios/ApkInstall.mm b/packages/react-native-apk-install/ios/ApkInstall.mm new file mode 100644 index 000000000..d55eea598 --- /dev/null +++ b/packages/react-native-apk-install/ios/ApkInstall.mm @@ -0,0 +1,27 @@ +#import "ApkInstall.h" + +@implementation ApkInstall +RCT_EXPORT_MODULE() + +// Example method +// See // https://reactnative.dev/docs/native-modules-ios +RCT_REMAP_METHOD(multiply, + multiplyWithA:(double)a withB:(double)b + withResolver:(RCTPromiseResolveBlock)resolve + withRejecter:(RCTPromiseRejectBlock)reject) +{ + NSNumber *result = @(a * b); + + resolve(result); +} + +// Don't compile this code when we build for the old architecture. +#ifdef RCT_NEW_ARCH_ENABLED +- (std::shared_ptr)getTurboModule: + (const facebook::react::ObjCTurboModule::InitParams &)params +{ + return std::make_shared(params); +} +#endif + +@end diff --git a/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.pbxproj b/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.pbxproj new file mode 100644 index 000000000..8ef1f6fc4 --- /dev/null +++ b/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.pbxproj @@ -0,0 +1,274 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 5E555C0D2413F4C50049A1A2 /* ApkInstall.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* ApkInstall.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 58B511D91A9E6C8500147676 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 134814201AA4EA6300B7C361 /* libApkInstall.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libApkInstall.a; sourceTree = BUILT_PRODUCTS_DIR; }; + B3E7B5881CC2AC0600A0062D /* ApkInstall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApkInstall.h; sourceTree = ""; }; + B3E7B5891CC2AC0600A0062D /* ApkInstall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ApkInstall.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 58B511D81A9E6C8500147676 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 134814211AA4EA7D00B7C361 /* Products */ = { + isa = PBXGroup; + children = ( + 134814201AA4EA6300B7C361 /* libApkInstall.a */, + ); + name = Products; + sourceTree = ""; + }; + 58B511D21A9E6C8500147676 = { + isa = PBXGroup; + children = ( + B3E7B5881CC2AC0600A0062D /* ApkInstall.h */, + B3E7B5891CC2AC0600A0062D /* ApkInstall.m */, + 134814211AA4EA7D00B7C361 /* Products */, + ); + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 58B511DA1A9E6C8500147676 /* ApkInstall */ = { + isa = PBXNativeTarget; + buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ApkInstall" */; + buildPhases = ( + 58B511D71A9E6C8500147676 /* Sources */, + 58B511D81A9E6C8500147676 /* Frameworks */, + 58B511D91A9E6C8500147676 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ApkInstall; + productName = RCTDataManager; + productReference = 134814201AA4EA6300B7C361 /* libApkInstall.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 58B511D31A9E6C8500147676 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0920; + ORGANIZATIONNAME = Facebook; + TargetAttributes = { + 58B511DA1A9E6C8500147676 = { + CreatedOnToolsVersion = 6.1.1; + }; + }; + }; + buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "ApkInstall" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + ); + mainGroup = 58B511D21A9E6C8500147676; + productRefGroup = 58B511D21A9E6C8500147676; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 58B511DA1A9E6C8500147676 /* ApkInstall */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 58B511D71A9E6C8500147676 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B3E7B58A1CC2AC0600A0062D /* ApkInstall.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 58B511ED1A9E6C8500147676 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=*]" = arm64; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 58B511EE1A9E6C8500147676 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=*]" = arm64; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 58B511F01A9E6C8500147676 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../../../React/**", + "$(SRCROOT)/../../react-native/React/**", + ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = ApkInstall; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 58B511F11A9E6C8500147676 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../../../React/**", + "$(SRCROOT)/../../react-native/React/**", + ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = ApkInstall; + SKIP_INSTALL = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "ApkInstall" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58B511ED1A9E6C8500147676 /* Debug */, + 58B511EE1A9E6C8500147676 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ApkInstall" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58B511F01A9E6C8500147676 /* Debug */, + 58B511F11A9E6C8500147676 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 58B511D31A9E6C8500147676 /* Project object */; +} diff --git a/packages/react-native-apk-install/lefthook.yml b/packages/react-native-apk-install/lefthook.yml new file mode 100644 index 000000000..065a491b0 --- /dev/null +++ b/packages/react-native-apk-install/lefthook.yml @@ -0,0 +1,16 @@ +pre-commit: + parallel: true + commands: + lint: + files: git diff --name-only @{push} + glob: "*.{js,ts,jsx,tsx}" + run: npx eslint {files} + types: + files: git diff --name-only @{push} + glob: "*.{js,ts, jsx, tsx}" + run: npx tsc --noEmit +commit-msg: + parallel: true + commands: + commitlint: + run: npx commitlint --edit diff --git a/packages/react-native-apk-install/package.json b/packages/react-native-apk-install/package.json new file mode 100644 index 000000000..219e20911 --- /dev/null +++ b/packages/react-native-apk-install/package.json @@ -0,0 +1,160 @@ +{ + "name": "react-native-apk-install", + "version": "0.1.0", + "description": "test", + "main": "lib/commonjs/index", + "module": "lib/module/index", + "types": "lib/typescript/index.d.ts", + "react-native": "src/index", + "source": "src/index", + "files": [ + "src", + "lib", + "android", + "ios", + "cpp", + "*.podspec", + "!lib/typescript/example", + "!ios/build", + "!android/build", + "!android/gradle", + "!android/gradlew", + "!android/gradlew.bat", + "!android/local.properties", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__", + "!**/.*" + ], + "scripts": { + "test": "jest", + "typecheck": "tsc --noEmit", + "lint": "eslint \"**/*.{js,ts,tsx}\"", + "prepack": "bob build", + "release": "release-it", + "example": "yarn --cwd example", + "bootstrap": "yarn example && yarn install && yarn example pods", + "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build" + }, + "keywords": [ + "react-native", + "ios", + "android" + ], + "repository": "https://github.com/voloshinskii/react-native-apk-install", + "author": "Max Voloshinskii (https://github.com/voloshinskii)", + "license": "MIT", + "bugs": { + "url": "https://github.com/voloshinskii/react-native-apk-install/issues" + }, + "homepage": "https://github.com/voloshinskii/react-native-apk-install#readme", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "devDependencies": { + "@evilmartians/lefthook": "^1.2.2", + "@commitlint/config-conventional": "^17.0.2", + "@react-native-community/eslint-config": "^3.0.2", + "@release-it/conventional-changelog": "^5.0.0", + "@types/jest": "^28.1.2", + "@types/react": "~17.0.21", + "@types/react-native": "0.70.0", + "commitlint": "^17.0.2", + "del-cli": "^5.0.0", + "eslint": "^8.4.1", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "^28.1.1", + "pod-install": "^0.1.0", + "prettier": "^2.0.5", + "react": "18.2.0", + "react-native": "0.72.0", + "react-native-builder-bob": "^0.20.0", + "release-it": "^15.0.0", + "typescript": "^4.5.2" + }, + "resolutions": { + "@types/react": "17.0.21" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + }, + "engines": { + "node": ">= 16.0.0" + }, + "packageManager": "^yarn@1.22.15", + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": "angular" + } + } + }, + "eslintConfig": { + "root": true, + "extends": [ + "@react-native-community", + "prettier" + ], + "rules": { + "prettier/prettier": [ + "error", + { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + } + ] + } + }, + "eslintIgnore": [ + "node_modules/", + "lib/" + ], + "prettier": { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + }, + "react-native-builder-bob": { + "source": "src", + "output": "lib", + "targets": [ + "commonjs", + "module", + [ + "typescript", + { + "project": "tsconfig.build.json" + } + ] + ] + } +} diff --git a/packages/react-native-apk-install/react-native-apk-install.podspec b/packages/react-native-apk-install/react-native-apk-install.podspec new file mode 100644 index 000000000..3b4b00038 --- /dev/null +++ b/packages/react-native-apk-install/react-native-apk-install.podspec @@ -0,0 +1,35 @@ +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) +folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' + +Pod::Spec.new do |s| + s.name = "react-native-apk-install" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.authors = package["author"] + + s.platforms = { :ios => "11.0" } + s.source = { :git => "https://github.com/voloshinskii/react-native-apk-install.git", :tag => "#{s.version}" } + + s.source_files = "ios/**/*.{h,m,mm}" + + s.dependency "React-Core" + + # Don't install the dependencies when we run `pod install` in the old architecture. + if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then + s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1" + s.pod_target_xcconfig = { + "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"", + "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" + } + s.dependency "React-Codegen" + s.dependency "RCT-Folly" + s.dependency "RCTRequired" + s.dependency "RCTTypeSafety" + s.dependency "ReactCommon/turbomodule/core" + end +end diff --git a/packages/react-native-apk-install/scripts/bootstrap.js b/packages/react-native-apk-install/scripts/bootstrap.js new file mode 100644 index 000000000..172918947 --- /dev/null +++ b/packages/react-native-apk-install/scripts/bootstrap.js @@ -0,0 +1,29 @@ +const os = require('os'); +const path = require('path'); +const child_process = require('child_process'); + +const root = path.resolve(__dirname, '..'); +const args = process.argv.slice(2); +const options = { + cwd: process.cwd(), + env: process.env, + stdio: 'inherit', + encoding: 'utf-8', +}; + +if (os.type() === 'Windows_NT') { + options.shell = true; +} + +let result; + +if (process.cwd() !== root || args.length) { + // We're not in the root of the project, or additional arguments were passed + // In this case, forward the command to `yarn` + result = child_process.spawnSync('yarn', args, options); +} else { + // If `yarn` is run without arguments, perform bootstrap + result = child_process.spawnSync('yarn', ['bootstrap'], options); +} + +process.exitCode = result.status; diff --git a/packages/react-native-apk-install/src/__tests__/index.test.tsx b/packages/react-native-apk-install/src/__tests__/index.test.tsx new file mode 100644 index 000000000..bf84291a5 --- /dev/null +++ b/packages/react-native-apk-install/src/__tests__/index.test.tsx @@ -0,0 +1 @@ +it.todo('write a test'); diff --git a/packages/react-native-apk-install/src/index.tsx b/packages/react-native-apk-install/src/index.tsx new file mode 100644 index 000000000..a20017ed1 --- /dev/null +++ b/packages/react-native-apk-install/src/index.tsx @@ -0,0 +1,25 @@ +import { NativeModules, Platform } from 'react-native'; + +const LINKING_ERROR = + `The package 'react-native-apk-install' doesn't seem to be linked. Make sure: \n\n` + + Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) + + '- You rebuilt the app after installing the package\n' + + '- You are not using Expo Go\n'; + +const ApkInstall = NativeModules.ApkInstall + ? NativeModules.ApkInstall + : new Proxy( + {}, + { + get() { + throw new Error(LINKING_ERROR); + }, + } + ); + +export function installApk(path: string): Promise { + if (Platform.OS === 'ios') { + return Promise.reject(new Error('Not supported on iOS')); + } + return ApkInstall.installApk(path); +} diff --git a/packages/react-native-apk-install/tsconfig.build.json b/packages/react-native-apk-install/tsconfig.build.json new file mode 100644 index 000000000..999d3f3c8 --- /dev/null +++ b/packages/react-native-apk-install/tsconfig.build.json @@ -0,0 +1,5 @@ + +{ + "extends": "./tsconfig", + "exclude": ["example"] +} diff --git a/packages/react-native-apk-install/tsconfig.json b/packages/react-native-apk-install/tsconfig.json new file mode 100644 index 000000000..88d173bd1 --- /dev/null +++ b/packages/react-native-apk-install/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "paths": { + "react-native-apk-install": ["./src/index"] + }, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "esModuleInterop": true, + "importsNotUsedAsValues": "error", + "forceConsistentCasingInFileNames": true, + "jsx": "react", + "lib": ["esnext"], + "module": "esnext", + "moduleResolution": "node", + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "esnext" + } +} diff --git a/yarn.lock b/yarn.lock index d567f351d..e22782baf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -146,11 +146,23 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== + dependencies: + "@babel/highlight" "^7.22.5" + "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== +"@babel/compat-data@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" + integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA== + "@babel/core@7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" @@ -194,6 +206,27 @@ json5 "^2.2.2" semver "^6.3.0" +"@babel/core@^7.18.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89" + integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helpers" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + "@babel/eslint-parser@^7.16.3", "@babel/eslint-parser@^7.18.2": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz#d79e822050f2de65d7f368a076846e7184234af7" @@ -213,6 +246,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" + integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== + dependencies: + "@babel/types" "^7.22.5" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -220,6 +263,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" @@ -228,6 +278,13 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" + integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" @@ -239,6 +296,17 @@ lru-cache "^5.1.1" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02" + integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw== + dependencies: + "@babel/compat-data" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.18.6": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" @@ -267,6 +335,21 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" +"@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" + integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + semver "^6.3.0" + "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz#40411a8ab134258ad2cf3a3d987ec6aa0723cee5" @@ -275,6 +358,15 @@ "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.3.1" +"@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz#bb2bf0debfe39b831986a4efbf4066586819c6e4" + integrity sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.0" + "@babel/helper-define-polyfill-provider@^0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" @@ -287,11 +379,28 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-define-polyfill-provider@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8" + integrity sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== + "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" @@ -307,6 +416,14 @@ "@babel/template" "^7.20.7" "@babel/types" "^7.21.0" +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" @@ -314,6 +431,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" @@ -321,6 +445,13 @@ dependencies: "@babel/types" "^7.21.0" +"@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" + integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" @@ -328,6 +459,13 @@ dependencies: "@babel/types" "^7.21.4" +"@babel/helper-module-imports@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2", "@babel/helper-module-transforms@^7.9.0": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" @@ -342,6 +480,20 @@ "@babel/traverse" "^7.21.2" "@babel/types" "^7.21.2" +"@babel/helper-module-transforms@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" + integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -349,11 +501,23 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== +"@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" @@ -364,6 +528,16 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" +"@babel/helper-remap-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" + integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-wrap-function" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" @@ -376,6 +550,18 @@ "@babel/traverse" "^7.20.7" "@babel/types" "^7.20.7" +"@babel/helper-replace-supers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" + integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helper-simple-access@^7.20.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" @@ -383,6 +569,13 @@ dependencies: "@babel/types" "^7.20.2" +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" @@ -390,6 +583,13 @@ dependencies: "@babel/types" "^7.20.0" +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" @@ -397,21 +597,43 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-split-export-declaration@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08" + integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-string-parser@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + "@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== +"@babel/helper-validator-option@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + "@babel/helper-wrap-function@^7.18.9": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" @@ -422,6 +644,16 @@ "@babel/traverse" "^7.20.5" "@babel/types" "^7.20.5" +"@babel/helper-wrap-function@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" + integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/helpers@^7.21.0", "@babel/helpers@^7.9.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" @@ -431,6 +663,15 @@ "@babel/traverse" "^7.21.0" "@babel/types" "^7.21.0" +"@babel/helpers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.5.tgz#74bb4373eb390d1ceed74a15ef97767e63120820" + integrity sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q== + dependencies: + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -440,11 +681,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.9.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== +"@babel/parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" + integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -452,6 +707,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" + integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" @@ -461,6 +723,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-proposal-optional-chaining" "^7.20.7" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" + integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.5" + "@babel/plugin-proposal-async-generator-functions@^7.0.0", "@babel/plugin-proposal-async-generator-functions@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" @@ -471,7 +742,7 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.18.6": +"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.17.12", "@babel/plugin-proposal-class-properties@^7.18.0", "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -539,7 +810,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -547,7 +818,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": +"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== @@ -555,7 +826,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.13", "@babel/plugin-proposal-object-rest-spread@^7.20.7": +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.13", "@babel/plugin-proposal-object-rest-spread@^7.20.0", "@babel/plugin-proposal-object-rest-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== @@ -574,7 +845,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.20.0", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -591,6 +862,11 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + "@babel/plugin-proposal-private-property-in-object@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" @@ -644,7 +920,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -672,6 +948,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-import-assertions@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" @@ -679,7 +962,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-assertions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" + integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -700,6 +997,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -763,6 +1067,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-syntax-typescript@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" + integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" @@ -770,6 +1089,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-arrow-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-async-generator-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz#7336356d23380eda9a56314974f053a020dab0c3" + integrity sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" @@ -779,6 +1115,15 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-remap-async-to-generator" "^7.18.9" +"@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== + dependencies: + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" @@ -786,6 +1131,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-block-scoped-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" @@ -793,6 +1145,30 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-block-scoping@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" + integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" + integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" + integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" @@ -808,6 +1184,21 @@ "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" +"@babel/plugin-transform-classes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz#635d4e98da741fad814984639f4c0149eb0135e1" + integrity sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + globals "^11.1.0" + "@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" @@ -816,6 +1207,14 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/template" "^7.20.7" +"@babel/plugin-transform-computed-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" @@ -823,6 +1222,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-destructuring@^7.20.0", "@babel/plugin-transform-destructuring@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" + integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" @@ -831,6 +1237,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-dotall-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" @@ -838,6 +1252,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-duplicate-keys@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" + integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" @@ -846,6 +1275,22 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-exponentiation-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" + integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-export-namespace-from@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" + integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.16.0", "@babel/plugin-transform-flow-strip-types@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" @@ -854,6 +1299,14 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-flow" "^7.18.6" +"@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" + integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" + "@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" @@ -861,6 +1314,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-for-of@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" + integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" @@ -870,6 +1330,23 @@ "@babel/helper-function-name" "^7.18.9" "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== + dependencies: + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-json-strings@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" + integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" @@ -877,6 +1354,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-logical-assignment-operators@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" + integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" @@ -884,6 +1376,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-member-expression-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-modules-amd@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" @@ -892,6 +1391,14 @@ "@babel/helper-module-transforms" "^7.20.11" "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-modules-amd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" + integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== + dependencies: + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.21.2": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" @@ -901,6 +1408,15 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-simple-access" "^7.20.2" +"@babel/plugin-transform-modules-commonjs@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" + integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== + dependencies: + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/plugin-transform-modules-systemjs@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" @@ -911,6 +1427,16 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-validator-identifier" "^7.19.1" +"@babel/plugin-transform-modules-systemjs@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" + integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" @@ -919,6 +1445,14 @@ "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-modules-umd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== + dependencies: + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" @@ -927,6 +1461,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.20.5" "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" @@ -934,6 +1476,29 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-new-target@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" + integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" + integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" + integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-transform-object-assign@^7.16.7": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz#7830b4b6f83e1374a5afb9f6111bcfaea872cdd2" @@ -941,6 +1506,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-object-rest-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" + integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== + dependencies: + "@babel/compat-data" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" @@ -949,6 +1525,31 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" +"@babel/plugin-transform-object-super@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + +"@babel/plugin-transform-optional-catch-binding@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" + integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz#1003762b9c14295501beb41be72426736bedd1e0" + integrity sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" @@ -956,6 +1557,31 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-parameters@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" + integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" + integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" + integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" @@ -963,6 +1589,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-property-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-react-constant-elements@^7.12.1": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz#b32a5556100d424b25e388dd689050d78396884d" @@ -977,6 +1610,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-react-display-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" + integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-react-jsx-development@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" @@ -984,6 +1624,13 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.18.6" +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/plugin-transform-react-jsx-self@^7.0.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz#ec98d4a9baafc5a1eb398da4cf94afbb40254a54" @@ -1009,6 +1656,17 @@ "@babel/plugin-syntax-jsx" "^7.18.6" "@babel/types" "^7.21.0" +"@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" + integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" @@ -1017,6 +1675,14 @@ "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-react-pure-annotations@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" + integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-regenerator@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" @@ -1025,6 +1691,14 @@ "@babel/helper-plugin-utils" "^7.20.2" regenerator-transform "^0.15.1" +"@babel/plugin-transform-regenerator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" + integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.1" + "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" @@ -1032,6 +1706,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-reserved-words@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-runtime@^7.0.0", "@babel/plugin-transform-runtime@^7.16.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" @@ -1051,6 +1732,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-shorthand-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" @@ -1059,6 +1747,14 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" +"@babel/plugin-transform-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" @@ -1066,6 +1762,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-sticky-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" @@ -1073,6 +1776,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-template-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-typeof-symbol@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" @@ -1080,6 +1790,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-typeof-symbol@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-typescript@^7.21.3", "@babel/plugin-transform-typescript@^7.5.0": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" @@ -1090,6 +1807,16 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-typescript" "^7.20.0" +"@babel/plugin-transform-typescript@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz#5c0f7adfc1b5f38c4dbc8f79b1f0f8074134bd7d" + integrity sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.22.5" + "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" @@ -1097,6 +1824,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" +"@babel/plugin-transform-unicode-escapes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" + integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" + integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" @@ -1105,6 +1847,22 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-unicode-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" + integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.20.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.4.tgz#a952482e634a8dd8271a3fe5459a16eb10739c58" @@ -1186,6 +1944,92 @@ core-js-compat "^3.25.1" semver "^6.3.0" +"@babel/preset-env@^7.18.2": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.5.tgz#3da66078b181f3d62512c51cf7014392c511504e" + integrity sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A== + dependencies: + "@babel/compat-data" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.5" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.5" + "@babel/plugin-transform-classes" "^7.22.5" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" + "@babel/plugin-transform-numeric-separator" "^7.22.5" + "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.5" + "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.3" + babel-plugin-polyfill-corejs3 "^0.8.1" + babel-plugin-polyfill-regenerator "^0.5.0" + core-js-compat "^3.30.2" + semver "^6.3.0" + "@babel/preset-flow@^7.13.13": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.21.4.tgz#a5de2a1cafa61f0e0b3af9b30ff0295d38d3608f" @@ -1195,6 +2039,15 @@ "@babel/helper-validator-option" "^7.21.0" "@babel/plugin-transform-flow-strip-types" "^7.21.0" +"@babel/preset-flow@^7.17.12": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.5.tgz#876f24ab6b38bd79703a93f32020ca2162312784" + integrity sha512-ta2qZ+LSiGCrP5pgcGt8xMnnkXQrq8Sa4Ulhy06BOlF5QbLw9q5hIx7bn5MrsvyTGAfh6kTOo07Q+Pfld/8Y5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-transform-flow-strip-types" "^7.22.5" + "@babel/preset-modules@^0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" @@ -1218,6 +2071,18 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" +"@babel/preset-react@^7.17.12": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6" + integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-transform-react-display-name" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.22.5" + "@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.16.7": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz#b913ac8e6aa8932e47c21b01b4368d8aa239a529" @@ -1229,6 +2094,17 @@ "@babel/plugin-transform-modules-commonjs" "^7.21.2" "@babel/plugin-transform-typescript" "^7.21.3" +"@babel/preset-typescript@^7.17.12": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" + integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.5" + "@babel/plugin-transform-typescript" "^7.22.5" + "@babel/register@^7.13.16": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.21.0.tgz#c97bf56c2472e063774f31d344c592ebdcefa132" @@ -1261,6 +2137,15 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" +"@babel/template@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + "@babel/traverse@^7.20.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4", "@babel/traverse@^7.9.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" @@ -1277,6 +2162,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" + integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" @@ -1295,6 +2196,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1305,6 +2215,167 @@ resolved "https://registry.yarnpkg.com/@bogoslavskiy/react-native-steezy/-/react-native-steezy-1.0.4.tgz#6fa2eaeda04a6babca1440a00f3c542c60da985b" integrity sha512-0kEtqYE5zYYO9XWcUaXIFHaWwxkP9qgINnpcJeyCTL3NHbeCK/KcCrkflch+LHyiIgYL6ma8iOdEOCV5VT2Ueg== +"@commitlint/cli@^17.6.5": + version "17.6.5" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.6.5.tgz#3a8abd6499f9d4aeafe3bf9201338ccb868a14b9" + integrity sha512-3PQrWr/uo6lzF5k7n5QuosCYnzaxP9qGBp3jhWP0Vmsa7XA6wrl9ccPqfQyXpSbQE3zBROVO3TDqgPKe4tfmLQ== + dependencies: + "@commitlint/format" "^17.4.4" + "@commitlint/lint" "^17.6.5" + "@commitlint/load" "^17.5.0" + "@commitlint/read" "^17.5.1" + "@commitlint/types" "^17.4.4" + execa "^5.0.0" + lodash.isfunction "^3.0.9" + resolve-from "5.0.0" + resolve-global "1.0.0" + yargs "^17.0.0" + +"@commitlint/config-conventional@^17.0.2": + version "17.6.5" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.6.5.tgz#a8ec286e634a071329fe45dc4955032c2176aeb5" + integrity sha512-Xl9H9KLl86NZm5CYNTNF9dcz1xelE/EbvhWIWcYxG/rn3UWYWdWmmnX2q6ZduNdLFSGbOxzUpIx61j5zxbeXxg== + dependencies: + conventional-changelog-conventionalcommits "^5.0.0" + +"@commitlint/config-validator@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.4.tgz#d0742705719559a101d2ee49c0c514044af6d64d" + integrity sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg== + dependencies: + "@commitlint/types" "^17.4.4" + ajv "^8.11.0" + +"@commitlint/ensure@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.4.tgz#a36e7719bdb9c2b86c8b8c2e852b463a7bfda5fa" + integrity sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g== + dependencies: + "@commitlint/types" "^17.4.4" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" + +"@commitlint/execute-rule@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" + integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== + +"@commitlint/format@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.4.tgz#0f6e1b4d7a301c7b1dfd4b6334edd97fc050b9f5" + integrity sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ== + dependencies: + "@commitlint/types" "^17.4.4" + chalk "^4.1.0" + +"@commitlint/is-ignored@^17.6.5": + version "17.6.5" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.6.5.tgz#cea24cd2031fe7d242590b91fab3352750887194" + integrity sha512-CQvAPt9gX7cuUbMrIaIMKczfWJqqr6m8IlJs0F2zYwyyMTQ87QMHIj5jJ5HhOaOkaj6dvTMVGx8Dd1I4xgUuoQ== + dependencies: + "@commitlint/types" "^17.4.4" + semver "7.5.0" + +"@commitlint/lint@^17.6.5": + version "17.6.5" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.6.5.tgz#dfa437f14430c9874d6b1a3ba8a2d44b79780c02" + integrity sha512-BSJMwkE4LWXrOsiP9KoHG+/heSDfvOL/Nd16+ojTS/DX8HZr8dNl8l3TfVr/d/9maWD8fSegRGtBtsyGuugFrw== + dependencies: + "@commitlint/is-ignored" "^17.6.5" + "@commitlint/parse" "^17.6.5" + "@commitlint/rules" "^17.6.5" + "@commitlint/types" "^17.4.4" + +"@commitlint/load@^17.5.0": + version "17.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.5.0.tgz#be45dbbb50aaf5eb7e8e940e1e0d6171d1426bab" + integrity sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q== + dependencies: + "@commitlint/config-validator" "^17.4.4" + "@commitlint/execute-rule" "^17.4.0" + "@commitlint/resolve-extends" "^17.4.4" + "@commitlint/types" "^17.4.4" + "@types/node" "*" + chalk "^4.1.0" + cosmiconfig "^8.0.0" + cosmiconfig-typescript-loader "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + resolve-from "^5.0.0" + ts-node "^10.8.1" + typescript "^4.6.4 || ^5.0.0" + +"@commitlint/message@^17.4.2": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" + integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== + +"@commitlint/parse@^17.6.5": + version "17.6.5" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.6.5.tgz#7b84b328a6a94ca08ab7c98c491d9d3dab68f09d" + integrity sha512-0zle3bcn1Hevw5Jqpz/FzEWNo2KIzUbc1XyGg6WrWEoa6GH3A1pbqNF6MvE6rjuy6OY23c8stWnb4ETRZyN+Yw== + dependencies: + "@commitlint/types" "^17.4.4" + conventional-changelog-angular "^5.0.11" + conventional-commits-parser "^3.2.2" + +"@commitlint/read@^17.5.1": + version "17.5.1" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.5.1.tgz#fec903b766e2c41e3cefa80630040fcaba4f786c" + integrity sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg== + dependencies: + "@commitlint/top-level" "^17.4.0" + "@commitlint/types" "^17.4.4" + fs-extra "^11.0.0" + git-raw-commits "^2.0.11" + minimist "^1.2.6" + +"@commitlint/resolve-extends@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz#8f931467dea8c43b9fe38373e303f7c220de6fdc" + integrity sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A== + dependencies: + "@commitlint/config-validator" "^17.4.4" + "@commitlint/types" "^17.4.4" + import-fresh "^3.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^17.6.5": + version "17.6.5" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.6.5.tgz#fabcacdde923e26ac5ef90d4b3f8fc05526bbaa1" + integrity sha512-uTB3zSmnPyW2qQQH+Dbq2rekjlWRtyrjDo4aLFe63uteandgkI+cc0NhhbBAzcXShzVk0qqp8SlkQMu0mgHg/A== + dependencies: + "@commitlint/ensure" "^17.4.4" + "@commitlint/message" "^17.4.2" + "@commitlint/to-lines" "^17.4.0" + "@commitlint/types" "^17.4.4" + execa "^5.0.0" + +"@commitlint/to-lines@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" + integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== + +"@commitlint/top-level@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" + integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== + dependencies: + find-up "^5.0.0" + +"@commitlint/types@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.4.tgz#1416df936e9aad0d6a7bbc979ecc31e55dade662" + integrity sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ== + dependencies: + chalk "^4.1.0" + "@craco/craco@^7.0.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@craco/craco/-/craco-7.1.0.tgz#12bd394c7f0334e214302e4d35a1768f68042fbb" @@ -1492,11 +2563,36 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.2" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + "@eslint/js@8.37.0": version "8.37.0" resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== +"@eslint/js@8.43.0": + version "8.43.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" + integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== + +"@evilmartians/lefthook@^1.2.2": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@evilmartians/lefthook/-/lefthook-1.4.3.tgz#4eecebf8b5a33e0a876aa0e5b12feaf27ffa9e77" + integrity sha512-m9MMFdDqFpsctUev3pk4sGzjKXpYFZH9MTVSGrnAjo8HsP0XZ/L/UgPXY75BNUtqU+hvXCmBF8mxSLU93kjhvA== + "@expo/bunyan@4.0.0", "@expo/bunyan@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@expo/bunyan/-/bunyan-4.0.0.tgz#be0c1de943c7987a9fbd309ea0b1acd605890c7b" @@ -1978,6 +3074,15 @@ dependencies: "@hapi/hoek" "^9.0.0" +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + "@humanwhocodes/config-array@^0.11.8": version "0.11.8" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" @@ -1997,6 +3102,16 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@hutson/parse-repository-url@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" + integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== + +"@iarna/toml@2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" + integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2083,6 +3198,41 @@ slash "^3.0.0" strip-ansi "^6.0.0" +"@jest/core@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" + integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/reporters" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^28.1.3" + jest-config "^28.1.3" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-resolve-dependencies "^28.1.3" + jest-runner "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + jest-watcher "^28.1.3" + micromatch "^4.0.4" + pretty-format "^28.1.3" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + "@jest/core@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" @@ -2134,6 +3284,16 @@ "@types/node" "*" jest-mock "^27.5.1" +"@jest/environment@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" + integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== + dependencies: + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock "^28.1.3" + "@jest/environment@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" @@ -2144,6 +3304,13 @@ "@types/node" "*" jest-mock "^29.5.0" +"@jest/expect-utils@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== + dependencies: + jest-get-type "^28.0.2" + "@jest/expect-utils@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" @@ -2151,6 +3318,14 @@ dependencies: jest-get-type "^29.4.3" +"@jest/expect@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" + integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== + dependencies: + expect "^28.1.3" + jest-snapshot "^28.1.3" + "@jest/expect@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" @@ -2171,6 +3346,18 @@ jest-mock "^27.5.1" jest-util "^27.5.1" +"@jest/fake-timers@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" + integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== + dependencies: + "@jest/types" "^28.1.3" + "@sinonjs/fake-timers" "^9.1.2" + "@types/node" "*" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-util "^28.1.3" + "@jest/fake-timers@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" @@ -2192,6 +3379,15 @@ "@jest/types" "^27.5.1" expect "^27.5.1" +"@jest/globals@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" + integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/types" "^28.1.3" + "@jest/globals@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" @@ -2233,6 +3429,37 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" +"@jest/reporters@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" + integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@jridgewell/trace-mapping" "^0.3.13" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + jest-worker "^28.1.3" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + terminal-link "^2.0.0" + v8-to-istanbul "^9.0.1" + "@jest/reporters@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" @@ -2286,6 +3513,15 @@ graceful-fs "^4.2.9" source-map "^0.6.0" +"@jest/source-map@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" + integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== + dependencies: + "@jridgewell/trace-mapping" "^0.3.13" + callsites "^3.0.0" + graceful-fs "^4.2.9" + "@jest/source-map@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" @@ -2335,6 +3571,16 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" +"@jest/test-sequencer@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" + integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== + dependencies: + "@jest/test-result" "^28.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + slash "^3.0.0" + "@jest/test-sequencer@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" @@ -2366,6 +3612,27 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" +"@jest/transform@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" + integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^28.1.3" + "@jridgewell/trace-mapping" "^0.3.13" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-regex-util "^28.0.2" + jest-util "^28.1.3" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.1" + "@jest/transform@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" @@ -2489,6 +3756,14 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.13": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + "@ledgerhq/devices@^5.48.0", "@ledgerhq/devices@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" @@ -2598,6 +3873,117 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@octokit/auth-token@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" + integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== + +"@octokit/core@^4.2.1": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" + integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^7.0.0": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" + integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== + dependencies: + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^5.0.0": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" + integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== + dependencies: + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^18.0.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" + integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== + +"@octokit/plugin-paginate-rest@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" + integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== + dependencies: + "@octokit/tsconfig" "^1.0.2" + "@octokit/types" "^9.2.3" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^7.1.2": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" + integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== + dependencies: + "@octokit/types" "^10.0.0" + +"@octokit/request-error@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" + integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^6.0.0": + version "6.2.8" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" + integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== + dependencies: + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@19.0.11": + version "19.0.11" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.11.tgz#2ae01634fed4bd1fca5b642767205ed3fd36177c" + integrity sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw== + dependencies: + "@octokit/core" "^4.2.1" + "@octokit/plugin-paginate-rest" "^6.1.2" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^7.1.2" + +"@octokit/tsconfig@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" + integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== + +"@octokit/types@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" + integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" + integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== + dependencies: + "@octokit/openapi-types" "^18.0.0" + "@peculiar/asn1-schema@^2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" @@ -2640,6 +4026,27 @@ schema-utils "^3.0.0" source-map "^0.7.3" +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^2.1.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" + integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + "@rainbow-me/animated-charts@git+ssh://git@github.com:tonkeeper/react-native-animated-charts#b0872b97e43c694414b37c95c042e44b92e2c0e9": version "1.0.0-alpha.6" resolved "git+ssh://git@github.com:tonkeeper/react-native-animated-charts#b0872b97e43c694414b37c95c042e44b92e2c0e9" @@ -2666,6 +4073,16 @@ dependencies: merge-options "^3.0.4" +"@react-native-community/cli-clean@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.2.tgz#45dc0aa379deeb13834b661f8eeb2e63ed34316f" + integrity sha512-OIKeP8fYtaa9qw4bpf1m3WJDWx4GvcxTYkyycH5SDu+pZjYWNix7XtKhwoL3Ol2NJLWxdY4LnmQG1yy8OGeIRw== + dependencies: + "@react-native-community/cli-tools" "11.3.2" + chalk "^4.1.2" + execa "^5.0.0" + prompts "^2.4.0" + "@react-native-community/cli-clean@^10.1.1": version "10.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz#4c73ce93a63a24d70c0089d4025daac8184ff504" @@ -2676,6 +4093,18 @@ execa "^1.0.0" prompts "^2.4.0" +"@react-native-community/cli-config@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.2.tgz#1bf268589f7261920dd65a78d7a0a1099792a7f9" + integrity sha512-hMAIR3QTjzDUmOSsbroXeNkZAcf8lpOGo1fj8CwJNfjuVho1RZZSlHKp8G7FU2sgqZmb8jWN+9tFvCRACXVYoQ== + dependencies: + "@react-native-community/cli-tools" "11.3.2" + chalk "^4.1.2" + cosmiconfig "^5.1.0" + deepmerge "^4.3.0" + glob "^7.1.3" + joi "^17.2.1" + "@react-native-community/cli-config@^10.1.1": version "10.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-10.1.1.tgz#08dcc5d7ca1915647dc06507ed853fe0c1488395" @@ -2688,6 +4117,13 @@ glob "^7.1.3" joi "^17.2.1" +"@react-native-community/cli-debugger-ui@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.2.tgz#35f29daf8354e8e516cb05ca471fb705780efdd7" + integrity sha512-pAKBcjrNl0iJoi42Ekqn3UH/QZ48pxfAIhsKkc3WmBqYetdByobhkYWfchHq3j9bilgiaBquPQaKzkg69kQw3w== + dependencies: + serve-static "^1.13.1" + "@react-native-community/cli-debugger-ui@^10.0.0": version "10.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz#4bb6d41c7e46449714dc7ba5d9f5b41ef0ea7c57" @@ -2695,13 +4131,37 @@ dependencies: serve-static "^1.13.1" +"@react-native-community/cli-doctor@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.2.tgz#d8eb867b80da66ce7b11e0e6e4e07ab152ffbf7b" + integrity sha512-tvmAQzz+qOJwtBCVEdhHweMeGaoHauGn3ef4tsHyqlDc0fF1K5No9DGXSESlLHpsopg066sIHWGq0PmAIeChiA== + dependencies: + "@react-native-community/cli-config" "11.3.2" + "@react-native-community/cli-platform-android" "11.3.2" + "@react-native-community/cli-platform-ios" "11.3.2" + "@react-native-community/cli-tools" "11.3.2" + chalk "^4.1.2" + command-exists "^1.2.8" + envinfo "^7.7.2" + execa "^5.0.0" + hermes-profile-transformer "^0.0.6" + ip "^1.1.5" + node-stream-zip "^1.9.1" + ora "^5.4.1" + prompts "^2.4.0" + semver "^6.3.0" + strip-ansi "^5.2.0" + sudo-prompt "^9.0.0" + wcwidth "^1.0.1" + yaml "^2.2.1" + "@react-native-community/cli-doctor@^10.2.2": - version "10.2.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-10.2.2.tgz#b1893604fa9fc8971064e7c00042350f96868bfe" - integrity sha512-49Ep2aQOF0PkbAR/TcyMjOm9XwBa8VQr+/Zzf4SJeYwiYLCT1NZRAVAVjYRXl0xqvq5S5mAGZZShS4AQl4WsZw== + version "10.2.5" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-10.2.5.tgz#e5e28c66c2373f05a94b296a8ec637f8df736707" + integrity sha512-1YbzXvsldBmSw1MmBsXB74bKiHXKNCjlb2ByLgkfTiarpSvETYam3g5vex0N+qc0Cdkzkq+8NznE744LFhnUpw== dependencies: "@react-native-community/cli-config" "^10.1.1" - "@react-native-community/cli-platform-ios" "^10.2.1" + "@react-native-community/cli-platform-ios" "^10.2.5" "@react-native-community/cli-tools" "^10.1.1" chalk "^4.1.2" command-exists "^1.2.8" @@ -2717,6 +4177,17 @@ sudo-prompt "^9.0.0" wcwidth "^1.0.1" +"@react-native-community/cli-hermes@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.2.tgz#842b21a1cd3960295eed3591ab81e6f9e68aa606" + integrity sha512-IfzdYTjxu+BFEvweY9TXpLkOmWq0sxK8PTN+u0BduiT9cJRvcO0CxjOpLHAabVrSJc6o+7aLfEvogBmdN53Xfg== + dependencies: + "@react-native-community/cli-platform-android" "11.3.2" + "@react-native-community/cli-tools" "11.3.2" + chalk "^4.1.2" + hermes-profile-transformer "^0.0.6" + ip "^1.1.5" + "@react-native-community/cli-hermes@^10.2.0": version "10.2.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz#cc252f435b149f74260bc918ce22fdf58033a87e" @@ -2739,7 +4210,18 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@10.2.1", "@react-native-community/cli-platform-ios@^10.2.1": +"@react-native-community/cli-platform-android@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.2.tgz#d9528306c3751f7d6d1fd3d5a56187708dd65829" + integrity sha512-NKxyBP0/gwL4/tNWrkevFSjeb7Dw2SByNfE9wFXBaAvZHxbxxJUjZOTOW3ueOXEpgOMU7IYYOiSOz2M10IRQ2A== + dependencies: + "@react-native-community/cli-tools" "11.3.2" + chalk "^4.1.2" + execa "^5.0.0" + glob "^7.1.3" + logkitty "^0.7.1" + +"@react-native-community/cli-platform-ios@10.2.1": version "10.2.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz#2e6bd2cb6d48cbb8720d7b7265bb1bab80745f72" integrity sha512-hz4zu4Y6eyj7D0lnZx8Mf2c2si8y+zh/zUTgCTaPPLzQD8jSZNNBtUUiA1cARm2razpe8marCZ1QbTMAGbf3mg== @@ -2751,23 +4233,79 @@ glob "^7.1.3" ora "^5.4.1" +"@react-native-community/cli-platform-ios@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.2.tgz#cfecce27641950603d736e1f41fcae088e3ada1f" + integrity sha512-XPrfsI7dNY3f9crsKDDRIss+GHYX/snuYfMrjg4ZBHpYB5JdLepO8FJ5bFz+/s9KXDm045ijo8QFcIf3XJR0YQ== + dependencies: + "@react-native-community/cli-tools" "11.3.2" + chalk "^4.1.2" + execa "^5.0.0" + fast-xml-parser "^4.0.12" + glob "^7.1.3" + ora "^5.4.1" + +"@react-native-community/cli-platform-ios@^10.2.5": + version "10.2.5" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.5.tgz#7888c74b83099885bf9e6d52170c6e663ad971ee" + integrity sha512-hq+FZZuSBK9z82GLQfzdNDl8vbFx5UlwCLFCuTtNCROgBoapFtVZQKRP2QBftYNrQZ0dLAb01gkwxagHsQCFyg== + dependencies: + "@react-native-community/cli-tools" "^10.1.1" + chalk "^4.1.2" + execa "^1.0.0" + fast-xml-parser "^4.0.12" + glob "^7.1.3" + ora "^5.4.1" + +"@react-native-community/cli-plugin-metro@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.2.tgz#dbdf6d04b3c608a11dea833a9f882420352dda44" + integrity sha512-r1rZYCFfxZWIiUlukjMcDlxfCtm+QNYu+vFyVfE9yvN9gaNPBAi9029eVzkRkFuJ8Rxwr67HnYEAdGYLWQ1uIw== + dependencies: + "@react-native-community/cli-server-api" "11.3.2" + "@react-native-community/cli-tools" "11.3.2" + chalk "^4.1.2" + execa "^5.0.0" + metro "0.76.5" + metro-config "0.76.5" + metro-core "0.76.5" + metro-react-native-babel-transformer "0.76.5" + metro-resolver "0.76.5" + metro-runtime "0.76.5" + readline "^1.3.0" + "@react-native-community/cli-plugin-metro@^10.2.2": - version "10.2.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.2.tgz#766914e3c8007dfe52b253544c4f6cd8549919ac" - integrity sha512-sTGjZlD3OGqbF9v1ajwUIXhGmjw9NyJ/14Lo0sg7xH8Pv4qUd5ZvQ6+DWYrQn3IKFUMfGFWYyL81ovLuPylrpw== + version "10.2.3" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.3.tgz#419e0155a50951c3329818fba51cb5021a7294f1" + integrity sha512-jHi2oDuTePmW4NEyVT8JEGNlIYcnFXCSV2ZMp4rnDrUk4TzzyvS3IMvDlESEmG8Kry8rvP0KSUx/hTpy37Sbkw== dependencies: "@react-native-community/cli-server-api" "^10.1.1" "@react-native-community/cli-tools" "^10.1.1" chalk "^4.1.2" execa "^1.0.0" - metro "0.73.9" - metro-config "0.73.9" - metro-core "0.73.9" - metro-react-native-babel-transformer "0.73.9" - metro-resolver "0.73.9" - metro-runtime "0.73.9" + metro "0.73.10" + metro-config "0.73.10" + metro-core "0.73.10" + metro-react-native-babel-transformer "0.73.10" + metro-resolver "0.73.10" + metro-runtime "0.73.10" readline "^1.3.0" +"@react-native-community/cli-server-api@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.2.tgz#79f06606aa1cf7f84dc5c4c53f9a6de0d98142d4" + integrity sha512-6rMb37HYWOdmiMGCxsttHDLIP7KmcJjWvzTJzb2tm9P5FoMvSSmSOn981MuP835Lk1U+IdjVcwtsA247Im4mkg== + dependencies: + "@react-native-community/cli-debugger-ui" "11.3.2" + "@react-native-community/cli-tools" "11.3.2" + compression "^1.7.1" + connect "^3.6.5" + errorhandler "^1.5.1" + nocache "^3.0.1" + pretty-format "^26.6.2" + serve-static "^1.13.1" + ws "^7.5.1" + "@react-native-community/cli-server-api@^10.1.1": version "10.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz#e382269de281bb380c2e685431364fbbb8c1cb3a" @@ -2783,6 +4321,21 @@ serve-static "^1.13.1" ws "^7.5.1" +"@react-native-community/cli-tools@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.2.tgz#29c01e0978199e3d65a2ed234a629a9cf05db8ca" + integrity sha512-rAnFPzRITeEhBLwC73ucvWsYjsGyotSOI4c+k8t9wUqcIk1Q+RFnuWozGc13msOPdESvBHt2MPJBwXrtKgKn1g== + dependencies: + appdirsjs "^1.2.4" + chalk "^4.1.2" + find-up "^5.0.0" + mime "^2.4.1" + node-fetch "^2.6.0" + open "^6.2.0" + ora "^5.4.1" + semver "^6.3.0" + shell-quote "^1.7.3" + "@react-native-community/cli-tools@^10.1.1": version "10.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz#fa66e509c0d3faa31f7bb87ed7d42ad63f368ddd" @@ -2798,6 +4351,13 @@ semver "^6.3.0" shell-quote "^1.7.3" +"@react-native-community/cli-types@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.2.tgz#09531e83ddda582c7321752d1d80674578bc8ea7" + integrity sha512-jba1Z1YgC4JIHPADSqpl4ATsrJaOja1zlQCbH/yE8McHRjVBzeYGeHIvG5jw7iU5cw6FFifH5vvr23JPGk8oyw== + dependencies: + joi "^17.2.1" + "@react-native-community/cli-types@^10.0.0": version "10.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-10.0.0.tgz#046470c75ec18f8b3bd906e54e43a6f678e01a45" @@ -2828,12 +4388,35 @@ prompts "^2.4.0" semver "^6.3.0" +"@react-native-community/cli@11.3.2": + version "11.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.2.tgz#a14c341c2421a929a322b11d02a60f7ac8ff5ee9" + integrity sha512-riyMvro6HH2NLUhcnjUrOFwi2IHb6/GOC1WKf7GvGH1L4KnIo/jP4Sk9QV+pROg1Gd9btrCTnyY7WbWuPWJJ3w== + dependencies: + "@react-native-community/cli-clean" "11.3.2" + "@react-native-community/cli-config" "11.3.2" + "@react-native-community/cli-debugger-ui" "11.3.2" + "@react-native-community/cli-doctor" "11.3.2" + "@react-native-community/cli-hermes" "11.3.2" + "@react-native-community/cli-plugin-metro" "11.3.2" + "@react-native-community/cli-server-api" "11.3.2" + "@react-native-community/cli-tools" "11.3.2" + "@react-native-community/cli-types" "11.3.2" + chalk "^4.1.2" + commander "^9.4.1" + execa "^5.0.0" + find-up "^4.1.0" + fs-extra "^8.1.0" + graceful-fs "^4.1.3" + prompts "^2.4.0" + semver "^6.3.0" + "@react-native-community/clipboard@^1.5.1": version "1.5.1" resolved "https://registry.yarnpkg.com/@react-native-community/clipboard/-/clipboard-1.5.1.tgz#32abb3ea2eb91ee3f9c5fb1d32d5783253c9fabe" integrity sha512-AHAmrkLEH5UtPaDiRqoULERHh3oNv7Dgs0bTC0hO5Z2GdNokAMPT5w8ci8aMcRemcwbtdHjxChgtjbeA38GBdA== -"@react-native-community/eslint-config@^3.2.0": +"@react-native-community/eslint-config@^3.0.2", "@react-native-community/eslint-config@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz#42f677d5fff385bccf1be1d3b8faa8c086cf998d" integrity sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ== @@ -2889,21 +4472,64 @@ resolved "https://registry.yarnpkg.com/@react-native-firebase/messaging/-/messaging-17.4.1.tgz#11ed73db7eb5b026204a46760e1a1d3a3e8b2499" integrity sha512-Sn4YVD2yOqAZfrY5KMeIFoh2f+JaQX/V/I7dSQX5vZ8RjP9cWVPJlA/CdLdORCe0DhusZMBJJfsJzCteQi8iiw== +"@react-native/assets-registry@^0.72.0": + version "0.72.0" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.72.0.tgz#c82a76a1d86ec0c3907be76f7faf97a32bbed05d" + integrity sha512-Im93xRJuHHxb1wniGhBMsxLwcfzdYreSZVQGDoMJgkd6+Iky61LInGEHnQCTN0fKNYF1Dvcofb4uMmE1RQHXHQ== + "@react-native/assets@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== +"@react-native/codegen@^0.72.6": + version "0.72.6" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.72.6.tgz#029cf61f82f5c6872f0b2ce58f27c4239a5586c8" + integrity sha512-idTVI1es/oopN0jJT/0jB6nKdvTUKE3757zA5+NPXZTeB46CIRbmmos4XBiAec8ufu9/DigLPbHTYAaMNZJ6Ig== + dependencies: + "@babel/parser" "^7.20.0" + flow-parser "^0.206.0" + jscodeshift "^0.14.0" + nullthrows "^1.1.1" + +"@react-native/gradle-plugin@^0.72.10": + version "0.72.10" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.72.10.tgz#cd7ad2203039dc1f97fb849898d689442776b004" + integrity sha512-/3KZSdFOWpTCHlp468NOgNfSIhENEH44O3Xq+dmgp4kJ/WhTvCmI+7glJ0Io6T7AizcWlIuW5VKA2+Pb3GHXmg== + +"@react-native/js-polyfills@^0.72.1": + version "0.72.1" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.72.1.tgz#905343ef0c51256f128256330fccbdb35b922291" + integrity sha512-cRPZh2rBswFnGt5X5EUEPs0r+pAsXxYsifv/fgy9ZLQokuT52bPH+9xjDR+7TafRua5CttGW83wP4TntRcWNDA== + "@react-native/normalize-color@*", "@react-native/normalize-color@2.1.0", "@react-native/normalize-color@^2.0.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== +"@react-native/normalize-colors@*": + version "0.73.0" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.73.0.tgz#23e15cf2a2b73ac7e5e6df8d5b86b173cfb35a3f" + integrity sha512-EmSCmJ0djeMJadeFsms6Pl/R85i9xSJMc+tyJu/GEMkKXBVyYQyqanK4RHFU0v8MO90OWj+SiFXjCkKYiJ6mkg== + +"@react-native/normalize-colors@^0.72.0": + version "0.72.0" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.72.0.tgz#14294b7ed3c1d92176d2a00df48456e8d7d62212" + integrity sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw== + "@react-native/polyfills@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa" integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== +"@react-native/virtualized-lists@^0.72.5": + version "0.72.5" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.72.5.tgz#a7b261357ec7e0e5aa97a24d4acab1d903811e09" + integrity sha512-AtKE3dez3lf89O87wC2ZglV5aPsifopQgn/UmFhXAwi18Yp1BJfEGh3sUqOPNgZNByYPAGxFANeZq44VATXeJA== + dependencies: + invariant "^2.2.4" + nullthrows "^1.1.1" + "@react-navigation/bottom-tabs@^6.3.2": version "6.5.7" resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.7.tgz#08470c96e0d11481422214bb98f0ff034038856c" @@ -3009,6 +4635,16 @@ redux-thunk "^2.4.2" reselect "^4.1.7" +"@release-it/conventional-changelog@^5.0.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@release-it/conventional-changelog/-/conventional-changelog-5.1.1.tgz#5e3affbe8d1814fe47d89777e3375a8a90c073b5" + integrity sha512-QtbDBe36dQfzexAfDYrbLPvd5Cb5bMWmLcjcGhCOWBss7fe1/gCjoxDULVz+7N7G5Nu2UMeBwHcUp/w8RDh5VQ== + dependencies: + concat-stream "^2.0.0" + conventional-changelog "^3.1.25" + conventional-recommended-bump "^6.1.0" + semver "7.3.8" + "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -3099,6 +4735,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== +"@sindresorhus/is@^5.2.0": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.4.1.tgz#c4383ce702fb90531c3d310506bab89e70427c53" + integrity sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw== + "@sinonjs/commons@^1.7.0": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" @@ -3127,6 +4768,13 @@ dependencies: "@sinonjs/commons" "^1.7.0" +"@sinonjs/fake-timers@^9.1.2": + version "9.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== + dependencies: + "@sinonjs/commons" "^1.7.0" + "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" @@ -3329,6 +4977,13 @@ "@svgr/plugin-svgo" "^5.5.0" loader-utils "^2.0.0" +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + "@tonapps/tonlogin-client@0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@tonapps/tonlogin-client/-/tonlogin-client-0.2.5.tgz#08ef432209ee879d5d937272f97358dc7453da69" @@ -3540,6 +5195,11 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== +"@types/http-cache-semantics@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + "@types/http-proxy@^1.17.8": version "1.17.10" resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.10.tgz#e576c8e4a0cc5c6a138819025a88e167ebb38d6c" @@ -3579,6 +5239,14 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" +"@types/jest@^28.1.2": + version "28.1.8" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" + integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== + dependencies: + expect "^28.0.0" + pretty-format "^28.0.0" + "@types/jest@^29.2.1": version "29.5.0" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.0.tgz#337b90bbcfe42158f39c2fb5619ad044bbb518ac" @@ -3612,6 +5280,11 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== +"@types/minimist@^1.2.0", "@types/minimist@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + "@types/node@*": version "18.15.11" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" @@ -3627,6 +5300,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.23.tgz#b6e934fe427eb7081d0015aad070acb3373c3c90" integrity sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g== +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -3672,6 +5350,13 @@ dependencies: "@types/react" "*" +"@types/react-native@0.70.0": + version "0.70.0" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.70.0.tgz#f8cdcdd542d36467d7591585b93d27e0563676e0" + integrity sha512-yBN7qJDfs0Vwr34NyfW1SWzalHQoYtpUWf0t4UJY9C5ft58BRr46+r92I0v+l3QX4VNsSRMHVAAWqLLCbIkM+g== + dependencies: + "@types/react" "*" + "@types/react-native@^0.70": version "0.70.13" resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.70.13.tgz#a38a1378e68dc25fe5911b09c49b8afffe191316" @@ -3698,6 +5383,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@~17.0.21": + version "17.0.62" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.62.tgz#2efe8ddf8533500ec44b1334dd1a97caa2f860e3" + integrity sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -4267,6 +5961,14 @@ Base64@~0.2.0: resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" integrity sha512-reGEWshDmTDQDsCec/HduOO9Wyj6yMOupMfhIf3ugN1TDlK2NQW4DDJSqNNtp380SNcvRfXtO8HSCQot0d0SMw== +JSONStream@^1.0.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abab@^2.0.3, abab@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" @@ -4322,7 +6024,7 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.1.1: +acorn-walk@^8.1.1, acorn-walk@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== @@ -4342,6 +6044,16 @@ acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.7.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" + integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + address@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -4367,6 +6079,13 @@ agent-base@6: dependencies: debug "4" +agent-base@^7.0.1, agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -4375,6 +6094,14 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +aggregate-error@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" + integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== + dependencies: + clean-stack "^4.0.0" + indent-string "^5.0.0" + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -4409,7 +6136,7 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.11.0, ajv@^8.6.0, ajv@^8.8.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -4429,6 +6156,13 @@ anser@^1.4.9: resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b" integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww== +ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -4439,7 +6173,7 @@ ansi-escapes@^3.1.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -4504,6 +6238,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -4607,6 +6346,11 @@ array-flatten@^2.1.0, array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" @@ -4660,6 +6404,17 @@ array.prototype.flatmap@^1.3.1: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" +array.prototype.map@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.5.tgz#6e43c2fee6c0fb5e4806da2dc92eb00970809e55" + integrity sha512-gfaKntvwqYIuC7mLLyv2wzZIJqrRhn5PZ9EfFejSx6a78sV7iDsGpG9P+3oUPtm1Rerqm6nrKS4FYuTIvWfo3g== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + array.prototype.reduce@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" @@ -4682,6 +6437,11 @@ array.prototype.tosorted@^1.1.1: es-shim-unscopables "^1.0.0" get-intrinsic "^1.1.3" +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + asap@~2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -4736,6 +6496,20 @@ ast-types@0.14.2: dependencies: tslib "^2.0.1" +ast-types@0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d" + integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== + dependencies: + tslib "^2.0.1" + +ast-types@^0.13.2: + version "0.13.4" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -4751,6 +6525,13 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async-retry@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" @@ -4855,6 +6636,19 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" +babel-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" + integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== + dependencies: + "@jest/transform" "^28.1.3" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^28.1.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + babel-jest@^29.2.1, babel-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" @@ -4910,6 +6704,16 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" + integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + babel-plugin-jest-hoist@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" @@ -4954,6 +6758,15 @@ babel-plugin-polyfill-corejs2@^0.3.3: "@babel/helper-define-polyfill-provider" "^0.3.3" semver "^6.1.1" +babel-plugin-polyfill-corejs2@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz#75044d90ba5043a5fb559ac98496f62f3eb668fd" + integrity sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.4.0" + semver "^6.1.1" + babel-plugin-polyfill-corejs3@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" @@ -4962,6 +6775,14 @@ babel-plugin-polyfill-corejs3@^0.6.0: "@babel/helper-define-polyfill-provider" "^0.3.3" core-js-compat "^3.25.1" +babel-plugin-polyfill-corejs3@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a" + integrity sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.0" + core-js-compat "^3.30.1" + babel-plugin-polyfill-regenerator@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" @@ -4969,6 +6790,13 @@ babel-plugin-polyfill-regenerator@^0.4.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.3.3" +babel-plugin-polyfill-regenerator@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380" + integrity sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.0" + babel-plugin-react-native-web@~0.18.10: version "0.18.12" resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz#3e9764484492ea612a16b40135b07c2d05b7969d" @@ -4995,6 +6823,13 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== +babel-plugin-transform-flow-enums@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz#d1d0cc9bdc799c850ca110d0ddc9f21b9ec3ef25" + integrity sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ== + dependencies: + "@babel/plugin-syntax-flow" "^7.12.1" + babel-plugin-transform-react-remove-prop-types@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" @@ -5072,6 +6907,14 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" +babel-preset-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" + integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== + dependencies: + babel-plugin-jest-hoist "^28.1.3" + babel-preset-current-node-syntax "^1.0.0" + babel-preset-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" @@ -5135,11 +6978,21 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +basic-ftp@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228" + integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== + batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + better-opn@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-3.0.2.tgz#f96f35deaaf8f34144a4102651babcf00d1d8817" @@ -5157,7 +7010,7 @@ bfj@^7.0.2: hoopy "^0.1.4" tryer "^1.0.1" -big-integer@1.6.x, big-integer@^1.6.16: +big-integer@1.6.x, big-integer@^1.6.16, big-integer@^1.6.44: version "1.6.51" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== @@ -5198,6 +7051,15 @@ bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" +bl@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" + integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" + bl@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/bl/-/bl-0.8.2.tgz#c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e" @@ -5298,6 +7160,20 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== +boxen@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.0.tgz#ba10a9ef4e73a9e220105b5f8c07a56d359a4cb4" + integrity sha512-ScG8CDo8dj7McqCZ5hz4dIBp20xj4unQ2lXIDa7ff6RcZElCpuNzutdwzKVvRikfNjm7CFAlR3HJHcoHkDOExQ== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.1.0" + bplist-creator@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e" @@ -5312,6 +7188,13 @@ bplist-parser@0.3.1: dependencies: big-integer "1.6.x" +bplist-parser@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== + dependencies: + big-integer "^1.6.44" + bplist-parser@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.2.tgz#3ac79d67ec52c4c107893e0237eb787cbacbced7" @@ -5469,6 +7352,16 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4 node-releases "^2.0.8" update-browserslist-db "^1.0.10" +browserslist@^4.20.4: + version "4.21.9" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + dependencies: + caniuse-lite "^1.0.30001503" + electron-to-chromium "^1.4.431" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -5554,6 +7447,13 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== +bundle-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" + integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== + dependencies: + run-applescript "^5.0.0" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -5624,6 +7524,24 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.11" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.11.tgz#c2d13a8cef0e4ad8022df761dfac9bb244cf897b" + integrity sha512-kn0t0oJnlFo1Nzl/AYQzS/oByMtmaqLasFUa7MUMsiTrIHy8TxSkx2KzWCybE3Nuz1F4sJRGnLAfUGsPe47viQ== + dependencies: + "@types/http-cache-semantics" "^4.0.1" + get-stream "^7.0.0" + http-cache-semantics "^4.1.1" + keyv "^4.5.2" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -5669,16 +7587,40 @@ camelcase-css@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase-keys@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" + integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== + dependencies: + camelcase "^6.3.0" + map-obj "^4.1.0" + quick-lru "^5.1.1" + type-fest "^1.2.1" + camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: +camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +camelcase@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + camelize@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" @@ -5699,6 +7641,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001449, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz#13b6fe301a831fe666cce8ca4ef89352334133d5" integrity sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== +caniuse-lite@^1.0.30001503: + version "1.0.30001506" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001506.tgz#35bd814b310a487970c585430e9e80ee23faf14b" + integrity sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw== + case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" @@ -5713,6 +7660,11 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@5.2.0, chalk@^5.0.0, chalk@^5.0.1, chalk@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -5731,6 +7683,11 @@ char-regex@^2.0.0: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + charenc@0.0.2, charenc@~0.0.1: version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" @@ -5842,6 +7799,13 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +clean-stack@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" + integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== + dependencies: + escape-string-regexp "5.0.0" + clean-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b" @@ -5850,6 +7814,11 @@ clean-webpack-plugin@^3.0.0: "@types/webpack" "^4.4.31" del "^4.1.1" +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -5864,11 +7833,28 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + cli-spinners@^2.0.0, cli-spinners@^2.5.0: version "2.8.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.8.0.tgz#e97a3e2bd00e6d85aa0c13d7f9e3ce236f7787fc" integrity sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ== +cli-spinners@^2.6.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" + integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== + +cli-width@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" + integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw== + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -6092,6 +8078,14 @@ commander@~2.13.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== +commitlint@^17.0.2: + version "17.6.5" + resolved "https://registry.yarnpkg.com/commitlint/-/commitlint-17.6.5.tgz#ecafcc2b7c823bff1a1ad7026d9dd5c0c7989c99" + integrity sha512-YRpFI8ABdvh0TbR6T72HaJFDn0TQdMVGgKnv6/GFkTdYTqzGo3ItTKn2bh/sxSVy/5ziOrVVAXtCy3PEq5Vs8w== + dependencies: + "@commitlint/cli" "^17.6.5" + "@commitlint/types" "^17.4.4" + common-path-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" @@ -6107,6 +8101,14 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + compare-versions@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" @@ -6157,6 +8159,35 @@ concat-stream@^1.4.4, concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + confusing-browser-globals@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" @@ -6192,17 +8223,184 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: + version "5.0.13" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" + integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-atom@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" + integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== + dependencies: + q "^1.5.1" + +conventional-changelog-codemirror@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" + integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== + dependencies: + q "^1.5.1" + +conventional-changelog-conventionalcommits@^4.5.0: + version "4.6.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz#0765490f56424b46f6cb4db9135902d6e5a36dc2" + integrity sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + +conventional-changelog-conventionalcommits@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" + integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + +conventional-changelog-core@^4.2.1: + version "4.2.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" + integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== + dependencies: + add-stream "^1.0.0" + conventional-changelog-writer "^5.0.0" + conventional-commits-parser "^3.2.0" + dateformat "^3.0.0" + get-pkg-repo "^4.0.0" + git-raw-commits "^2.0.8" + git-remote-origin-url "^2.0.0" + git-semver-tags "^4.1.1" + lodash "^4.17.15" + normalize-package-data "^3.0.0" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^4.0.0" + +conventional-changelog-ember@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" + integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== + dependencies: + q "^1.5.1" + +conventional-changelog-eslint@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" + integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== + dependencies: + q "^1.5.1" + +conventional-changelog-express@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" + integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== + dependencies: + q "^1.5.1" + +conventional-changelog-jquery@^3.0.11: + version "3.0.11" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" + integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== + dependencies: + q "^1.5.1" + +conventional-changelog-jshint@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" + integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-preset-loader@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== + +conventional-changelog-writer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz#e0757072f045fe03d91da6343c843029e702f359" + integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ== + dependencies: + conventional-commits-filter "^2.0.7" + dateformat "^3.0.0" + handlebars "^4.7.7" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + meow "^8.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^4.0.0" + +conventional-changelog@^3.1.25: + version "3.1.25" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.25.tgz#3e227a37d15684f5aa1fb52222a6e9e2536ccaff" + integrity sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ== + dependencies: + conventional-changelog-angular "^5.0.12" + conventional-changelog-atom "^2.0.8" + conventional-changelog-codemirror "^2.0.8" + conventional-changelog-conventionalcommits "^4.5.0" + conventional-changelog-core "^4.2.1" + conventional-changelog-ember "^2.0.9" + conventional-changelog-eslint "^3.0.9" + conventional-changelog-express "^2.0.6" + conventional-changelog-jquery "^3.0.11" + conventional-changelog-jshint "^2.0.9" + conventional-changelog-preset-loader "^2.3.4" + +conventional-commits-filter@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" + integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" + +conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" + integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== dependencies: - safe-buffer "5.2.1" + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +conventional-recommended-bump@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" + integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^2.3.4" + conventional-commits-filter "^2.0.7" + conventional-commits-parser "^3.2.0" + git-raw-commits "^2.0.8" + git-semver-tags "^4.1.1" + meow "^8.0.0" + q "^1.5.1" convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" @@ -6265,6 +8463,13 @@ core-js-compat@^3.25.1: dependencies: browserslist "^4.21.5" +core-js-compat@^3.30.1, core-js-compat@^3.30.2: + version "3.31.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.0.tgz#4030847c0766cc0e803dcdfb30055d7ef2064bf1" + integrity sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw== + dependencies: + browserslist "^4.21.5" + core-js-pure@^3.23.3: version "3.30.0" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.0.tgz#41b6c42e5f363bd53d79999bd35093b17e42e1bf" @@ -6288,6 +8493,21 @@ cosmiconfig-typescript-loader@^1.0.0: cosmiconfig "^7" ts-node "^10.7.0" +cosmiconfig-typescript-loader@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" + integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== + +cosmiconfig@8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" + integrity sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.1.0, cosmiconfig@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -6320,6 +8540,16 @@ cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" + integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + craco-babel-loader@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/craco-babel-loader/-/craco-babel-loader-1.0.4.tgz#b887dff41f4ad1e8be84f90c1277af16475ada78" @@ -6376,7 +8606,7 @@ cross-fetch@^3.1.5: dependencies: node-fetch "2.6.7" -cross-spawn@7.0.3, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -6428,6 +8658,13 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + css-blank-pseudo@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" @@ -6765,6 +9002,21 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +data-uri-to-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz#db89a9e279c2ffe74f50637a59a32fb23b3e4d7c" + integrity sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -6784,6 +9036,11 @@ date-fns@^2.23.0: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + dayjs@^1.8.15: version "1.11.7" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" @@ -6810,11 +9067,24 @@ debug@^3.1.0, debug@^3.2.5, debug@^3.2.7: dependencies: ms "^2.1.1" -decamelize@^1.2.0: +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== +decamelize@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" + integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== + decimal.js@^10.2.1: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" @@ -6825,6 +9095,13 @@ decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + dedent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.6.0.tgz#0e6da8f0ce52838ef5cec5c8f9396b0c1b64a3cb" @@ -6885,11 +9162,29 @@ deepmerge@^3.2.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== -deepmerge@^4.2.2: +deepmerge@^4.2.2, deepmerge@^4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== +default-browser-id@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" + integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== + dependencies: + bplist-parser "^0.2.0" + untildify "^4.0.0" + +default-browser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" + integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== + dependencies: + bundle-name "^3.0.0" + default-browser-id "^3.0.0" + execa "^7.1.1" + titleize "^3.0.0" + default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -6912,6 +9207,11 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + deferred-leveldown@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz#2cef1f111e1c57870d8bbb8af2650e587cd2f5b4" @@ -6924,6 +9224,11 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" @@ -6954,6 +9259,24 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +degenerator@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-4.0.3.tgz#5fa3e42206797ca78e0ee265f968aafc3bc84f49" + integrity sha512-2wY8vmCfxrQpe2PKGYdiWRre5HQRwsAXbAAWRbC+z2b80MEpnWc8A3a9k4TwqwN3Z/Fm3uhNm5vYUZIbMhyRxQ== + dependencies: + ast-types "^0.13.2" + escodegen "^1.8.1" + esprima "^4.0.0" + vm2 "^3.9.19" + +del-cli@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/del-cli/-/del-cli-5.0.0.tgz#fa79fd57e888ecaaf8a468d87e8a175142a24aa9" + integrity sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ== + dependencies: + del "^7.0.0" + meow "^10.1.3" + del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -6967,7 +9290,7 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" -del@^6.0.0: +del@^6.0.0, del@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== @@ -6981,6 +9304,20 @@ del@^6.0.0: rimraf "^3.0.2" slash "^3.0.0" +del@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-7.0.0.tgz#79db048bec96f83f344b46c1a66e35d9c09fe8ac" + integrity sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q== + dependencies: + globby "^13.1.2" + graceful-fs "^4.2.10" + is-glob "^4.0.3" + is-path-cwd "^3.0.0" + is-path-inside "^4.0.0" + p-map "^5.5.0" + rimraf "^3.0.2" + slash "^4.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -7001,6 +9338,15 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +deprecated-react-native-prop-types@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.1.0.tgz#8ed03a64c21b7fbdd2d000957b6838d4f38d2c66" + integrity sha512-WfepZHmRbbdTvhcolb8aOKEvQdcmTMn5tKLbqbXmkBvjFjRVWAYqsXk/DBsV8TZxws8SdGHLuHaJrHSQUPRdfw== + dependencies: + "@react-native/normalize-colors" "*" + invariant "*" + prop-types "*" + deprecated-react-native-prop-types@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz#c10c6ee75ff2b6de94bb127f142b814e6e08d9ab" @@ -7019,6 +9365,11 @@ deprecated-react-native-prop-types@^3.0.1: invariant "*" prop-types "*" +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -7060,6 +9411,11 @@ diff-sequences@^27.5.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== +diff-sequences@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" + integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== + diff-sequences@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" @@ -7268,13 +9624,20 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^5.2.0: +dot-prop@^5.1.0, dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" @@ -7305,6 +9668,11 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecdsa-sig-formatter@1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -7329,6 +9697,11 @@ electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.284: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz#be96bd7c2f4b980deebc9338a49a67430a33ed73" integrity sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q== +electron-to-chromium@^1.4.431: + version "1.4.436" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.436.tgz#2aa6e1644693d25cb438a873fba72ec901e1be30" + integrity sha512-aktOxo8fnrMC8vOIBMVS3PXbT1nrPQ+SouUuN7Y0a+Rw3pOMrvIV92Ybnax7x4tugA+ZpYA5fOHTby7ama8OQQ== + elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -7462,7 +9835,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -errorhandler@^1.5.0: +errorhandler@^1.5.0, errorhandler@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.1.tgz#b9ba5d17cf90744cd1e851357a6e75bf806a9a91" integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A== @@ -7515,7 +9888,7 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-get-iterator@^1.1.2: +es-get-iterator@^1.0.2, es-get-iterator@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== @@ -7565,6 +9938,11 @@ escalade@^3.0.2, escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -7575,6 +9953,11 @@ escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -7585,6 +9968,18 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -7719,7 +10114,7 @@ eslint-plugin-jsx-a11y@^6.5.1: object.fromentries "^2.0.6" semver "^6.3.0" -eslint-plugin-prettier@^4.2.1: +eslint-plugin-prettier@^4.0.0, eslint-plugin-prettier@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== @@ -7796,6 +10191,14 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" @@ -7806,6 +10209,11 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== +eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== + eslint-webpack-plugin@^3.1.1: version "3.2.0" resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" @@ -7863,6 +10271,51 @@ eslint@^8.19.0, eslint@^8.3.0: strip-json-comments "^3.1.0" text-table "^0.2.0" +eslint@^8.4.1: + version "8.43.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" + integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.43.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.0" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + espree@^9.5.1: version "9.5.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" @@ -7872,6 +10325,15 @@ espree@^9.5.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.0" +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -7891,7 +10353,7 @@ esrecurse@^4.1.0, esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -7962,6 +10424,21 @@ exec-async@^2.2.0: resolved "https://registry.yarnpkg.com/exec-async/-/exec-async-2.2.0.tgz#c7c5ad2eef3478d38390c6dd3acfe8af0efc8301" integrity sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw== +execa@7.1.1, execa@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" + integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -7975,7 +10452,22 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^5.0.0: +execa@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -8018,6 +10510,17 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" +expect@^28.0.0, expect@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== + dependencies: + "@jest/expect-utils" "^28.1.3" + jest-get-type "^28.0.2" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + expect@^29.0.0, expect@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" @@ -8247,6 +10750,15 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -8276,7 +10788,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.1.1, fast-glob@^3.2.12, fast-glob@^3.2.4, fast-glob@^3.2.5, fast-glob@^3.2.9: +fast-glob@^3.1.1, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.4, fast-glob@^3.2.5, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -8362,6 +10874,14 @@ fbjs@^3.0.0, fbjs@^3.0.4: setimmediate "^1.0.5" ua-parser-js "^0.7.30" +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + fetch-retry@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-4.1.1.tgz#fafe0bb22b54f4d0a9c788dff6dd7f8673ca63f3" @@ -8372,6 +10892,14 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -8499,6 +11027,13 @@ find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -8534,6 +11069,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flow-enums-runtime@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.5.tgz#95884bfcc82edaf27eef7e1dd09732331cfbafbc" + integrity sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ== + flow-parser@0.*: version "0.203.1" resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.203.1.tgz#04180e57e6b8b658212bd4371017d11bf917b257" @@ -8549,6 +11089,11 @@ flow-parser@^0.185.0: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.185.2.tgz#cb7ee57f77377d6c5d69a469e980f6332a15e492" integrity sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ== +flow-parser@^0.206.0: + version "0.206.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.206.0.tgz#f4f794f8026535278393308e01ea72f31000bfef" + integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w== + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -8635,6 +11180,11 @@ fork-ts-checker-webpack-plugin@^6.5.0: semver "^7.3.2" tapable "^1.0.0" +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + form-data@^3.0.0, form-data@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -8653,6 +11203,13 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -8703,7 +11260,7 @@ fs-extra@9.0.0: jsonfile "^6.0.1" universalify "^1.0.0" -fs-extra@^10.0.0: +fs-extra@^10.0.0, fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -8712,6 +11269,15 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.0.0: + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -8836,6 +11402,16 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-pkg-repo@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" + integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== + dependencies: + "@hutson/parse-repository-url" "^3.0.0" + hosted-git-info "^4.0.0" + through2 "^2.0.0" + yargs "^16.2.0" + get-port@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" @@ -8848,11 +11424,23 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-stream@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-7.0.0.tgz#f5695721f481f5581beb9d11cb90c41ddfceea18" + integrity sha512-ql6FW5b8tgMYvI4UaoxG3EQN3VyZ6VeQpxNBGg5BZ4xD4u+HJeprzhMMA4OCBEGQgSR+m87pstWMpiVW64W8Fw== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -8861,6 +11449,16 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-uri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.1.tgz#cff2ba8d456c3513a04b70c45de4dbcca5b1527c" + integrity sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q== + dependencies: + basic-ftp "^5.0.2" + data-uri-to-buffer "^5.0.1" + debug "^4.3.4" + fs-extra "^8.1.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -8871,6 +11469,55 @@ getenv@^1.0.0: resolved "https://registry.yarnpkg.com/getenv/-/getenv-1.0.0.tgz#874f2e7544fbca53c7a4738f37de8605c3fcfc31" integrity sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg== +git-raw-commits@^2.0.11, git-raw-commits@^2.0.8: + version "2.0.11" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" + integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== + dependencies: + meow "^8.0.0" + semver "^6.0.0" + +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" + integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== + dependencies: + git-up "^7.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== + dependencies: + ini "^1.3.2" + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -8921,7 +11568,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -8933,6 +11580,31 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== + dependencies: + ini "^1.3.4" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + global-modules@2.0.0, global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -8980,6 +11652,17 @@ globby@11.0.1: merge2 "^1.3.0" slash "^3.0.0" +globby@13.1.4: + version "13.1.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" + integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -8992,6 +11675,17 @@ globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.1.2: + version "13.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.0.tgz#7dd5678d765c4680c2e6d106230d86cb727cb1af" + integrity sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -9010,7 +11704,29 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +got@12.6.1, got@^12.1.0: + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -9020,6 +11736,11 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + graphql-tag@^2.10.1: version "2.12.6" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" @@ -9052,6 +11773,23 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== +handlebars@^4.7.7: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + harmony-reflect@^1.4.6: version "1.6.2" resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" @@ -9132,6 +11870,11 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== + has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -9206,6 +11949,11 @@ hoopy@^0.1.4: resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + hosted-git-info@^3.0.2: version "3.0.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" @@ -9213,6 +11961,13 @@ hosted-git-info@^3.0.2: dependencies: lru-cache "^6.0.0" +hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -9346,6 +12101,11 @@ http-browserify@^1.7.0: Base64 "~0.2.0" inherits "~2.0.1" +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" @@ -9386,6 +12146,14 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -9416,6 +12184,14 @@ http-proxy@^1.17.0, http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" +http2-wrapper@^2.1.10: + version "2.2.0" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" + integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" @@ -9434,11 +12210,29 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: agent-base "6" debug "4" +https-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz#75cb70d04811685667183b31ab158d006750418a" + integrity sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw== + dependencies: + agent-base "^7.0.2" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + hyphenate-style-name@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" @@ -9453,7 +12247,7 @@ i18n-js@^4.1.1: lodash "*" make-plural "*" -iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -9511,7 +12305,7 @@ image-size@^0.6.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA== -image-size@^1.0.0: +image-size@^1.0.0, image-size@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== @@ -9544,6 +12338,11 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -9570,6 +12369,11 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +indent-string@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" + integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -9608,7 +12412,12 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.5, ini@~1.3.0: +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -9621,6 +12430,27 @@ inline-style-prefixer@^6.0.1: css-in-js-utils "^3.1.0" fast-loops "^1.1.3" +inquirer@9.2.6: + version "9.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.6.tgz#802a61ee3eefbf1cb82a7fb6c2ae95a106050e01" + integrity sha512-y71l237eJJKS4rl7sQcEUiMhrR0pB/ZnRMMTxLpjJhWL4hdWCT03a6jJnC1w6qIPSRZWEozuieGt3v7XaEJYFw== + dependencies: + ansi-escapes "^4.3.2" + chalk "^5.2.0" + cli-cursor "^3.1.0" + cli-width "^4.0.0" + external-editor "^3.0.3" + figures "^5.0.0" + lodash "^4.17.21" + mute-stream "1.0.0" + ora "^5.4.1" + run-async "^3.0.0" + rxjs "^7.8.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + through "^2.3.6" + wrap-ansi "^6.0.1" + int64-buffer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/int64-buffer/-/int64-buffer-1.0.1.tgz#c78d841b444cadf036cd04f8683696c740f15dca" @@ -9643,6 +12473,11 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + invariant@*, invariant@2.2.4, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -9677,6 +12512,11 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -9697,6 +12537,14 @@ is-absolute-url@^3.0.3: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -9777,6 +12625,13 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-ci@3.0.1, is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -9803,6 +12658,13 @@ is-core-module@^2.11.0, is-core-module@^2.9.0: dependencies: has "^1.0.3" +is-core-module@^2.5.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -9852,6 +12714,11 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -9889,6 +12756,22 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-git-dirty@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-git-dirty/-/is-git-dirty-2.0.2.tgz#696fe5a7e60710de75a1b7d2ae8c7ee9cc0bc57b" + integrity sha512-U3YCo+GKR/rDsY7r0v/LBICbQwsx859tDQnAT+v0E/zCDeWbQ1TUt1FtyExeyik7VIJlYOLHCIifLdz71HDalg== + dependencies: + execa "^4.0.3" + is-git-repository "^2.0.0" + +is-git-repository@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-git-repository/-/is-git-repository-2.0.0.tgz#fa036007fe9697198c2c89dac4dd8304a6101e1c" + integrity sha512-HDO50CG5suIAcmqG4F1buqVXEZRPn+RaXIn9pFKq/947FBo2bCRwK7ZluEVZOy99a4IQyqsjbKEpAiOXCccOHQ== + dependencies: + execa "^4.0.3" + is-absolute "^1.0.0" + is-glob@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -9915,11 +12798,31 @@ is-hex-prefixed@1.0.0: resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + is-invalid-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz#307a855b3cf1a938b44ea70d2c61106053714f34" @@ -9942,6 +12845,11 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-npm@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" + integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== + is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -9981,6 +12889,11 @@ is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== +is-path-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz#889b41e55c8588b1eb2a96a61d05740a674521c7" + integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA== + is-path-in-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" @@ -10000,6 +12913,16 @@ is-path-inside@^3.0.2, is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== +is-path-inside@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" + integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" @@ -10017,6 +12940,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -10035,6 +12963,13 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -10057,6 +12992,13 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -10067,6 +13009,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -10081,6 +13028,13 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + dependencies: + text-extensions "^1.0.0" + is-typed-array@^1.1.10, is-typed-array@^1.1.9: version "1.1.10" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" @@ -10097,11 +13051,23 @@ is-typedarray@^1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + is-valid-path@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" @@ -10129,7 +13095,7 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" -is-windows@^1.0.2: +is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -10146,6 +13112,11 @@ is-wsl@^2.0.0, is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== + is@~0.2.6: version "0.2.7" resolved "https://registry.yarnpkg.com/is/-/is-0.2.7.tgz#3b34a2c48f359972f35042849193ae7264b63562" @@ -10201,6 +13172,17 @@ isomorphic-webcrypto@2.3.8, isomorphic-webcrypto@^2.3.8: expo-random "*" react-native-securerandom "^0.1.1" +issue-parser@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-6.0.0.tgz#b1edd06315d4f2044a9755daf85fdafde9b4014a" + integrity sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA== + dependencies: + lodash.capitalize "^4.2.1" + lodash.escaperegexp "^4.1.2" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.uniqby "^4.7.0" + istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -10243,6 +13225,19 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +iterate-iterator@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.2.tgz#551b804c9eaa15b847ea6a7cdc2f5bf1ec150f91" + integrity sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw== + +iterate-value@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" + integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== + dependencies: + es-get-iterator "^1.0.2" + iterate-iterator "^1.0.1" + jake@^10.8.5: version "10.8.5" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" @@ -10262,6 +13257,14 @@ jest-changed-files@^27.5.1: execa "^5.0.0" throat "^6.0.1" +jest-changed-files@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" + integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== + dependencies: + execa "^5.0.0" + p-limit "^3.1.0" + jest-changed-files@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" @@ -10295,6 +13298,31 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" +jest-circus@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" + integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + is-generator-fn "^2.0.0" + jest-each "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + p-limit "^3.1.0" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-circus@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" @@ -10339,6 +13367,24 @@ jest-cli@^27.5.1: prompts "^2.0.1" yargs "^16.2.0" +jest-cli@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" + integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== + dependencies: + "@jest/core" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + prompts "^2.0.1" + yargs "^17.3.1" + jest-cli@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" @@ -10387,6 +13433,34 @@ jest-config@^27.5.1: slash "^3.0.0" strip-json-comments "^3.1.1" +jest-config@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" + integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^28.1.3" + "@jest/types" "^28.1.3" + babel-jest "^28.1.3" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^28.1.3" + jest-environment-node "^28.1.3" + jest-get-type "^28.0.2" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-runner "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^28.1.3" + slash "^3.0.0" + strip-json-comments "^3.1.1" + jest-config@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" @@ -10425,6 +13499,16 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" +jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== + dependencies: + chalk "^4.0.0" + diff-sequences "^28.1.1" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + jest-diff@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" @@ -10442,6 +13526,13 @@ jest-docblock@^27.5.1: dependencies: detect-newline "^3.0.0" +jest-docblock@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" + integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== + dependencies: + detect-newline "^3.0.0" + jest-docblock@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" @@ -10460,6 +13551,17 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" +jest-each@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" + integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== + dependencies: + "@jest/types" "^28.1.3" + chalk "^4.0.0" + jest-get-type "^28.0.2" + jest-util "^28.1.3" + pretty-format "^28.1.3" + jest-each@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" @@ -10496,6 +13598,18 @@ jest-environment-node@^27.5.1: jest-mock "^27.5.1" jest-util "^27.5.1" +jest-environment-node@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" + integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock "^28.1.3" + jest-util "^28.1.3" + jest-environment-node@^29.2.1, jest-environment-node@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" @@ -10518,6 +13632,11 @@ jest-get-type@^27.5.1: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== +jest-get-type@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" + integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== + jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" @@ -10543,6 +13662,25 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" +jest-haste-map@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" + integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== + dependencies: + "@jest/types" "^28.1.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^28.0.2" + jest-util "^28.1.3" + jest-worker "^28.1.3" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + jest-haste-map@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" @@ -10593,6 +13731,14 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" +jest-leak-detector@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" + integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== + dependencies: + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + jest-leak-detector@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" @@ -10611,6 +13757,16 @@ jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" +jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== + dependencies: + chalk "^4.0.0" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + jest-matcher-utils@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" @@ -10674,6 +13830,14 @@ jest-mock@^27.5.1: "@jest/types" "^27.5.1" "@types/node" "*" +jest-mock@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" + integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" @@ -10693,7 +13857,7 @@ jest-regex-util@^27.0.6, jest-regex-util@^27.5.1: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== -jest-regex-util@^28.0.0: +jest-regex-util@^28.0.0, jest-regex-util@^28.0.2: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== @@ -10712,6 +13876,14 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" +jest-resolve-dependencies@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" + integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== + dependencies: + jest-regex-util "^28.0.2" + jest-snapshot "^28.1.3" + jest-resolve-dependencies@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" @@ -10736,6 +13908,21 @@ jest-resolve@^27.4.2, jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" +jest-resolve@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" + integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-pnp-resolver "^1.2.2" + jest-util "^28.1.3" + jest-validate "^28.1.3" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + jest-resolve@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" @@ -10778,6 +13965,33 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" +jest-runner@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" + integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/environment" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.10.2" + graceful-fs "^4.2.9" + jest-docblock "^28.1.1" + jest-environment-node "^28.1.3" + jest-haste-map "^28.1.3" + jest-leak-detector "^28.1.3" + jest-message-util "^28.1.3" + jest-resolve "^28.1.3" + jest-runtime "^28.1.3" + jest-util "^28.1.3" + jest-watcher "^28.1.3" + jest-worker "^28.1.3" + p-limit "^3.1.0" + source-map-support "0.5.13" + jest-runner@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" @@ -10823,13 +14037,41 @@ jest-runtime@^27.5.1: execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-runtime@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" + integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/globals" "^28.1.3" + "@jest/source-map" "^28.1.2" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" slash "^3.0.0" strip-bom "^4.0.0" @@ -10897,6 +14139,35 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" +jest-snapshot@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" + integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/babel__traverse" "^7.0.6" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^28.1.3" + graceful-fs "^4.2.9" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + jest-haste-map "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + natural-compare "^1.4.0" + pretty-format "^28.1.3" + semver "^7.3.5" + jest-snapshot@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" @@ -10986,7 +14257,19 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-validate@^29.5.0: +jest-validate@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" + integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== + dependencies: + "@jest/types" "^28.1.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^28.0.2" + leven "^3.1.0" + pretty-format "^28.1.3" + +jest-validate@^29.2.1, jest-validate@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== @@ -11024,7 +14307,7 @@ jest-watcher@^27.5.1: jest-util "^27.5.1" string-length "^4.0.1" -jest-watcher@^28.0.0: +jest-watcher@^28.0.0, jest-watcher@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== @@ -11070,7 +14353,7 @@ jest-worker@^27.0.2, jest-worker@^27.2.0, jest-worker@^27.4.5, jest-worker@^27.5 merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^28.0.2: +jest-worker@^28.0.2, jest-worker@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== @@ -11098,6 +14381,16 @@ jest@^27.4.3: import-local "^3.0.2" jest-cli "^27.5.1" +jest@^28.1.1: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" + integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== + dependencies: + "@jest/core" "^28.1.3" + "@jest/types" "^28.1.3" + import-local "^3.0.2" + jest-cli "^28.1.3" + jest@^29.2.1: version "29.5.0" resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" @@ -11108,6 +14401,11 @@ jest@^29.2.1: import-local "^3.0.2" jest-cli "^29.5.0" +jetifier@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-2.0.0.tgz#699391367ca1fe7bc4da5f8bf691eb117758e4cb" + integrity sha512-J4Au9KuT74te+PCCCHKgAjyLlEa+2VyIAEPNCdE5aNkAJ6FAJcAqcdzEkSnzNksIa9NkGmC4tPiClk2e7tCJuQ== + jimp-compact@0.16.1: version "0.16.1" resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" @@ -11184,6 +14482,11 @@ jsc-android@^250231.0.0: resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-250231.0.0.tgz#91720f8df382a108872fa4b3f558f33ba5e95262" integrity sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw== +jsc-safe-url@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz#141c14fbb43791e88d5dc64e85a374575a83477a" + integrity sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q== + jscodeshift@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.13.1.tgz#69bfe51e54c831296380585c6d9e733512aecdef" @@ -11209,6 +14512,31 @@ jscodeshift@^0.13.1: temp "^0.8.4" write-file-atomic "^2.3.0" +jscodeshift@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.14.0.tgz#7542e6715d6d2e8bde0b4e883f0ccea358b46881" + integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== + dependencies: + "@babel/core" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/preset-flow" "^7.13.13" + "@babel/preset-typescript" "^7.13.0" + "@babel/register" "^7.13.16" + babel-core "^7.0.0-bridge.0" + chalk "^4.1.2" + flow-parser "0.*" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + neo-async "^2.5.0" + node-dir "^0.1.17" + recast "^0.21.0" + temp "^0.8.4" + write-file-atomic "^2.3.0" + jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -11252,6 +14580,11 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -11296,6 +14629,11 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + json3@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" @@ -11313,7 +14651,7 @@ json5@^1.0.1, json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: +json5@^2.1.2, json5@^2.2.0, json5@^2.2.1, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -11334,6 +14672,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + jsonpointer@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" @@ -11390,6 +14733,13 @@ keymirror@^0.1.1: resolved "https://registry.yarnpkg.com/keymirror/-/keymirror-0.1.1.tgz#918889ea13f8d0a42e7c557250eee713adc95c35" integrity sha512-vIkZAFWoDijgQT/Nvl2AHCMmnegN2ehgTPYuyy2hWQkQSntI0S7ESYqdLkoSe1HyEBFHHkCgSIvVdSEiWwKvCg== +keyv@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" + integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== + dependencies: + json-buffer "3.0.1" + killable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -11421,7 +14771,7 @@ kind-of@^5.0.0: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.1, kind-of@^6.0.2: +kind-of@^6.0.0, kind-of@^6.0.1, kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -11438,6 +14788,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +kleur@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + klona@^2.0.4, klona@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" @@ -11463,6 +14818,13 @@ last-call-webpack-plugin@^3.0.0: lodash "^4.17.5" webpack-sources "^1.1.0" +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== + dependencies: + package-json "^8.1.0" + launch-editor@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" @@ -11592,6 +14954,16 @@ linkify-it@^3.0.2: dependencies: uc.micro "^1.0.1" +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -11634,6 +15006,14 @@ loader-utils@^3.2.0: resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -11656,11 +15036,26 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.capitalize@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" + integrity sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw== + lodash.debounce@4.0.8, lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== + lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" @@ -11676,11 +15071,21 @@ lodash.isequal@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + lodash.isinteger@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== + lodash.isnumber@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" @@ -11696,6 +15101,11 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -11706,16 +15116,31 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" @@ -11726,7 +15151,17 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@*, "lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0: +lodash.uniqby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@*, lodash@4.17.21, "lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -11746,6 +15181,14 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== + dependencies: + chalk "^5.0.0" + is-unicode-supported "^1.1.0" + logkitty@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7" @@ -11787,6 +15230,11 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -11801,6 +15249,16 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.14.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +macos-release@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" + integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA== + magic-string@^0.25.0, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" @@ -11845,6 +15303,16 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0, map-obj@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -11952,6 +15420,41 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" +meow@^10.1.3: + version "10.1.5" + resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" + integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== + dependencies: + "@types/minimist" "^1.2.2" + camelcase-keys "^7.0.0" + decamelize "^5.0.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.2" + read-pkg-up "^8.0.0" + redent "^4.0.0" + trim-newlines "^4.0.2" + type-fest "^1.2.2" + yargs-parser "^20.2.9" + +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + merge-deep@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.3.tgz#1a2b2ae926da8b2ae93a0ac15d90cd1922766003" @@ -11988,6 +15491,16 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== +metro-babel-transformer@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.73.10.tgz#b27732fa3869f397246ee8ecf03b64622ab738c1" + integrity sha512-Yv2myTSnpzt/lTyurLvqYbBkytvUJcLHN8XD3t7W6rGiLTQPzmf1zypHQLphvcAXtCWBOXFtH7KLOSi2/qMg+A== + dependencies: + "@babel/core" "^7.20.0" + hermes-parser "0.8.0" + metro-source-map "0.73.10" + nullthrows "^1.1.1" + metro-babel-transformer@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.73.9.tgz#bec8aaaf1bbdc2e469fde586fde455f8b2a83073" @@ -11998,43 +15511,86 @@ metro-babel-transformer@0.73.9: metro-source-map "0.73.9" nullthrows "^1.1.1" -metro-cache-key@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.73.9.tgz#7d8c441a3b7150f7b201273087ef3cf7d3435d9f" - integrity sha512-uJg+6Al7UoGIuGfoxqPBy6y1Ewq7Y8/YapGYIDh6sohInwt/kYKnPZgLDYHIPvY2deORnQ/2CYo4tOeBTnhCXQ== +metro-babel-transformer@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz#1daea5b236c52579c9e9a04b94ae9f9677a81f3d" + integrity sha512-KmsMXY6VHjPLRQLwTITjLo//7ih8Ts39HPF2zODkaYav/ZLNq0QP7eGuW54dvk/sZiL9le1kaBwTN4BWQI1VZQ== + dependencies: + "@babel/core" "^7.20.0" + hermes-parser "0.8.0" + metro-source-map "0.76.5" + nullthrows "^1.1.1" -metro-cache@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.73.9.tgz#773c2df6ba53434e58ccbe421b0c54e6da8d2890" - integrity sha512-upiRxY8rrQkUWj7ieACD6tna7xXuXdu2ZqrheksT79ePI0aN/t0memf6WcyUtJUMHZetke3j+ppELNvlmp3tOw== +metro-cache-key@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.73.10.tgz#8d63591187d295b62a80aed64a87864b1e9d67a2" + integrity sha512-JMVDl/EREDiUW//cIcUzRjKSwE2AFxVWk47cFBer+KA4ohXIG2CQPEquT56hOw1Y1s6gKNxxs1OlAOEsubrFjw== + +metro-cache-key@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.5.tgz#9b5b7d7e24fa75c95b9e672c0f0a7a19b2a16508" + integrity sha512-QERX6ejYMt4BPr0ZMf7adnrOivmFSUbCim9FlU6cAeWUib+pV5P/Ph3KicWnOzJpbQz93+tHHG7vcsP6OrvLMw== + +metro-cache@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.73.10.tgz#02e9cb7c1e42aab5268d2ecce35ad8f2c08891de" + integrity sha512-wPGlQZpdVlM404m7MxJqJ+hTReDr5epvfPbt2LerUAHY9RN99w61FeeAe25BMZBwgUgDtAsfGlJ51MBHg8MAqw== dependencies: - metro-core "0.73.9" + metro-core "0.73.10" rimraf "^3.0.2" -metro-config@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.73.9.tgz#6b43c70681bdd6b00f44400fc76dddbe53374500" - integrity sha512-NiWl1nkYtjqecDmw77tbRbXnzIAwdO6DXGZTuKSkH+H/c1NKq1eizO8Fe+NQyFtwR9YLqn8Q0WN1nmkwM1j8CA== +metro-cache@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.5.tgz#479c4e036ab89c68f12551a354ccaaf759eb9a40" + integrity sha512-8XalhoMNWDK6bi41oqxIpecTYRt4WsmtoHdqshgJIYshJ6qov0NuDw0pOfnS8rgMNHxPpuWyXc7NyKERqVRzaw== + dependencies: + metro-core "0.76.5" + rimraf "^3.0.2" + +metro-config@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.73.10.tgz#a9ec3d0a1290369e3f46c467a4c4f6dd43acc223" + integrity sha512-wIlybd1Z9I8K2KcStTiJxTB7OK529dxFgogNpKCTU/3DxkgAASqSkgXnZP6kVyqjh5EOWAKFe5U6IPic7kXDdQ== dependencies: cosmiconfig "^5.0.5" jest-validate "^26.5.2" - metro "0.73.9" - metro-cache "0.73.9" - metro-core "0.73.9" - metro-runtime "0.73.9" + metro "0.73.10" + metro-cache "0.73.10" + metro-core "0.73.10" + metro-runtime "0.73.10" -metro-core@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.73.9.tgz#410c5c0aeae840536c10039f68098fdab3da568e" - integrity sha512-1NTs0IErlKcFTfYyRT3ljdgrISWpl1nys+gaHkXapzTSpvtX9F1NQNn5cgAuE+XIuTJhbsCdfIJiM2JXbrJQaQ== +metro-config@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.5.tgz#74624b68cff4e72576129d4e59ff8c22a7171e45" + integrity sha512-SCMVIDOtm8s3H62E9z2IcY4Q9GVMqDurbiJS3PHrWgTZjwZFaL59lrW4W6DvzvFZHa9bbxKric5TFtwvVuyOCg== + dependencies: + cosmiconfig "^5.0.5" + jest-validate "^29.2.1" + metro "0.76.5" + metro-cache "0.76.5" + metro-core "0.76.5" + metro-runtime "0.76.5" + +metro-core@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.73.10.tgz#feb3c228aa8c0dde71d8e4cef614cc3a1dc3bbd7" + integrity sha512-5uYkajIxKyL6W45iz/ftNnYPe1l92CvF2QJeon1CHsMXkEiOJxEjo41l+iSnO/YodBGrmMCyupSO4wOQGUc0lw== dependencies: lodash.throttle "^4.1.1" - metro-resolver "0.73.9" + metro-resolver "0.73.10" -metro-file-map@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.73.9.tgz#09c04a8e8ef1eaa6ecb2b9cb8cb53bb0fa0167ec" - integrity sha512-R/Wg3HYeQhYY3ehWtfedw8V0ne4lpufG7a21L3GWer8tafnC9pmjoCKEbJz9XZkVj9i1FtxE7UTbrtZNeIILxQ== +metro-core@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.5.tgz#0196dbb32bfb3c3edd288e908daf360764c89105" + integrity sha512-yJvIe8a3sAG92U7+E7Bw6m4lae9RB180fp9iQZFBqY437Ilv4nE6PR8EWB6d8c4yt9fXIL1Hc+KyQv7OPFx/rQ== + dependencies: + lodash.throttle "^4.1.1" + metro-resolver "0.76.5" + +metro-file-map@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.73.10.tgz#55bd906fb7c1bef8e1a31df4b29a3ef4b49f0b5a" + integrity sha512-XOMWAybeaXyD6zmVZPnoCCL2oO3rp4ta76oUlqWP0skBzhFxVtkE/UtDwApEMUY361JeBBago647gnKiARs+1g== dependencies: abort-controller "^3.0.0" anymatch "^3.0.3" @@ -12052,35 +15608,124 @@ metro-file-map@0.73.9: optionalDependencies: fsevents "^2.3.2" -metro-hermes-compiler@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.73.9.tgz#6f473e67e8f76066066f00e2e0ecce865f7d445d" - integrity sha512-5B3vXIwQkZMSh3DQQY23XpTCpX9kPLqZbA3rDuAcbGW0tzC3f8dCenkyBb0GcCzyTDncJeot/A7oVCVK6zapwg== +metro-file-map@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.5.tgz#71f40660adfa1a806907f7961ef2a57884501d6c" + integrity sha512-9VS7zsec7BpTb+0v1DObOXso6XU/7oVBObQWp0EWBQpFcU1iF1lit2nnLQh2AyGCnSr8JVnuUe8gXhNH6xtPMg== + dependencies: + anymatch "^3.0.3" + debug "^2.2.0" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + invariant "^2.2.4" + jest-regex-util "^27.0.6" + jest-util "^27.2.0" + jest-worker "^27.2.0" + micromatch "^4.0.4" + node-abort-controller "^3.1.1" + nullthrows "^1.1.1" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" -metro-inspector-proxy@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.73.9.tgz#8e11cd300adf3f904f1f5afe28b198312cdcd8c2" - integrity sha512-B3WrWZnlYhtTrv0IaX3aUAhi2qVILPAZQzb5paO1e+xrz4YZHk9c7dXv7qe7B/IQ132e3w46y3AL7rFo90qVjA== +metro-hermes-compiler@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.73.10.tgz#4525a7835c803a5d0b3b05c6619202e2273d630f" + integrity sha512-rTRWEzkVrwtQLiYkOXhSdsKkIObnL+Jqo+IXHI7VEK2aSLWRAbtGNqECBs44kbOUypDYTFFE+WLtoqvUWqYkWg== + +metro-inspector-proxy@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.73.10.tgz#752fed2ab88199c9dcc3369c3d59da6c5b954a51" + integrity sha512-CEEvocYc5xCCZBtGSIggMCiRiXTrnBbh8pmjKQqm9TtJZALeOGyt5pXUaEkKGnhrXETrexsg6yIbsQHhEvVfvQ== dependencies: connect "^3.6.5" debug "^2.2.0" ws "^7.5.1" yargs "^17.5.1" -metro-minify-terser@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.73.9.tgz#301aef2e106b0802f7a14ef0f2b4883b20c80018" - integrity sha512-MTGPu2qV5qtzPJ2SqH6s58awHDtZ4jd7lmmLR+7TXDwtZDjIBA0YVfI0Zak2Haby2SqoNKrhhUns/b4dPAQAVg== +metro-inspector-proxy@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.5.tgz#aac222b0680c7c031e24b6246d995ca3e87868f2" + integrity sha512-leqwei1qNMKOEbhqlQ37K+7OIp1JRgvS5qERO+J0ZTg7ZeJTaBHSFU7FnCeRHB9Tu7/FSfypY2PxjydZDwvUEQ== + dependencies: + connect "^3.6.5" + debug "^2.2.0" + node-fetch "^2.2.0" + ws "^7.5.1" + yargs "^17.6.2" + +metro-minify-terser@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.73.10.tgz#557eab3a512b90b7779350ff5d25a215c4dbe61f" + integrity sha512-uG7TSKQ/i0p9kM1qXrwbmY3v+6BrMItsOcEXcSP8Z+68bb+t9HeVK0T/hIfUu1v1PEnonhkhfzVsaP8QyTd5lQ== dependencies: terser "^5.15.0" -metro-minify-uglify@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.73.9.tgz#cf4f8c19b688deea103905689ec736c2f2acd733" - integrity sha512-gzxD/7WjYcnCNGiFJaA26z34rjOp+c/Ft++194Wg91lYep3TeWQ0CnH8t2HRS7AYDHU81SGWgvD3U7WV0g4LGA== +metro-minify-terser@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.5.tgz#1bde3e0bcad27ec1764f78075637782ace127dba" + integrity sha512-zizTXqlHcG7PArB5hfz1Djz/oCaOaTSXTZDNp8Y9K2FmmfLU3dU2eoDbNNiCnm5QdDtFIndLMXdqqe6omTfp4g== + dependencies: + terser "^5.15.0" + +metro-minify-uglify@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.73.10.tgz#4de79056d502479733854c90f2075374353ea154" + integrity sha512-eocnSeJKnLz/UoYntVFhCJffED7SLSgbCHgNvI6ju6hFb6EFHGJT9OLbkJWeXaWBWD3Zw5mYLS8GGqGn/CHZPA== + dependencies: + uglify-es "^3.1.9" + +metro-minify-uglify@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.5.tgz#afbb5e3bbc9ca05a9a63d1c5fd74dfc9c1b4c4f8" + integrity sha512-JZNO5eK8r625/cheWSl+y7n0RlHLt03iSMgXPAxirH8BiFqPzs7h+c57r4AvSs793VXcF7L3sI1sAOj+nRqTeg== dependencies: uglify-es "^3.1.9" +metro-react-native-babel-preset@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.10.tgz#304b24bb391537d2c987732cc0a9774be227d3f6" + integrity sha512-1/dnH4EHwFb2RKEKx34vVDpUS3urt2WEeR8FYim+ogqALg4sTpG7yeQPxWpbgKATezt4rNfqAANpIyH19MS4BQ== + dependencies: + "@babel/core" "^7.20.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.18.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-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + react-refresh "^0.4.0" + metro-react-native-babel-preset@0.73.8: version "0.73.8" resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz#04908f264f5d99c944ae20b5b11f659431328431" @@ -12169,6 +15814,64 @@ metro-react-native-babel-preset@0.73.9: "@babel/template" "^7.0.0" react-refresh "^0.4.0" +metro-react-native-babel-preset@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.5.tgz#5379e163e014dce14066d277628ae018fda79593" + integrity sha512-IlVKeTon5fef77rQ6WreSmrabmbc3dEsLwr/sL80fYjobjsD8FRCnOlbaJdgUf2SMJmSIoawgjh5Yeebv+gJzg== + dependencies: + "@babel/core" "^7.20.0" + "@babel/plugin-proposal-async-generator-functions" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.18.0" + "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" + "@babel/plugin-proposal-numeric-separator" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.20.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-default-from" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.18.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.20.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.20.0" + "@babel/plugin-transform-flow-strip-types" "^7.20.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-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + babel-plugin-transform-flow-enums "^0.0.2" + react-refresh "^0.4.0" + +metro-react-native-babel-transformer@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.10.tgz#4e20a9ce131b873cda0b5a44d3eb4002134a64b8" + integrity sha512-4G/upwqKdmKEjmsNa92/NEgsOxUWOygBVs+FXWfXWKgybrmcjh3NoqdRYrROo9ZRA/sB9Y/ZXKVkWOGKHtGzgg== + dependencies: + "@babel/core" "^7.20.0" + babel-preset-fbjs "^3.4.0" + hermes-parser "0.8.0" + metro-babel-transformer "0.73.10" + metro-react-native-babel-preset "0.73.10" + metro-source-map "0.73.10" + nullthrows "^1.1.1" + metro-react-native-babel-transformer@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.9.tgz#4f4f0cfa5119bab8b53e722fabaf90687d0cbff0" @@ -12182,13 +15885,39 @@ metro-react-native-babel-transformer@0.73.9: metro-source-map "0.73.9" nullthrows "^1.1.1" -metro-resolver@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.73.9.tgz#f3cf77e6c7606a34aa81bad40edb856aad671cf3" - integrity sha512-Ej3wAPOeNRPDnJmkK0zk7vJ33iU07n+oPhpcf5L0NFkWneMmSM2bflMPibI86UjzZGmRfn0AhGhs8yGeBwQ/Xg== +metro-react-native-babel-transformer@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.5.tgz#08b7d4a0240ebdafc1f2ff0691a70a7f507a0de0" + integrity sha512-7m2u7jQ1I2mwGm48Vrki5cNNSv4d2HegHMGmE5G2AAa6Pr2O3ajaX2yNoAKF8TCLO38/8pa9fZd0VWAlO/YMcA== + dependencies: + "@babel/core" "^7.20.0" + babel-preset-fbjs "^3.4.0" + hermes-parser "0.8.0" + metro-babel-transformer "0.76.5" + metro-react-native-babel-preset "0.76.5" + metro-source-map "0.76.5" + nullthrows "^1.1.1" + +metro-resolver@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.73.10.tgz#c39a3bd8d33e5d78cb256110d29707d8d49ed0be" + integrity sha512-HeXbs+0wjakaaVQ5BI7eT7uqxlZTc9rnyw6cdBWWMgUWB++KpoI0Ge7Hi6eQAOoVAzXC3m26mPFYLejpzTWjng== dependencies: absolute-path "^0.0.0" +metro-resolver@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.5.tgz#9d5521d73d1f5e651e36a3d80aa0e6c3a4a74f6f" + integrity sha512-QNsbDdf0xL1HefP6fhh1g3umqiX1qWEuCiBaTFroYRqM7u7RATt8mCu4n/FwSYhATuUUujHTIb2EduuQPbSGRQ== + +metro-runtime@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.10.tgz#c3de19d17e75ffe1a145778d99422e7ffc208768" + integrity sha512-EpVKm4eN0Fgx2PEWpJ5NiMArV8zVoOin866jIIvzFLpmkZz1UEqgjf2JAfUJnjgv3fjSV3JqeGG2vZCaGQBTow== + dependencies: + "@babel/runtime" "^7.0.0" + react-refresh "^0.4.0" + metro-runtime@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.9.tgz#0b24c0b066b8629ee855a6e5035b65061fef60d5" @@ -12197,6 +15926,28 @@ metro-runtime@0.73.9: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" +metro-runtime@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.5.tgz#546d3baf498b2736565c0781810c80bd9d81212e" + integrity sha512-1JAf9/v/NDHLhoTfiJ0n25G6dRkX7mjTkaMJ6UUXIyfIuSucoK5yAuOBx8OveNIekoLRjmyvSmyN5ojEeRmpvQ== + dependencies: + "@babel/runtime" "^7.0.0" + react-refresh "^0.4.0" + +metro-source-map@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.10.tgz#28e09a28f1a2f7a4f8d0845b845cbed74e2f48f9" + integrity sha512-NAGv14701p/YaFZ76KzyPkacBw/QlEJF1f8elfs23N1tC33YyKLDKvPAzFJiYqjdcFvuuuDCA8JCXd2TgLxNPw== + dependencies: + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + invariant "^2.2.4" + metro-symbolicate "0.73.10" + nullthrows "^1.1.1" + ob1 "0.73.10" + source-map "^0.5.6" + vlq "^1.0.0" + metro-source-map@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.9.tgz#89ca41f6346aeb12f7f23496fa363e520adafebe" @@ -12211,6 +15962,32 @@ metro-source-map@0.73.9: source-map "^0.5.6" vlq "^1.0.0" +metro-source-map@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.5.tgz#786153fcc93609c7d41c22cae16082b69cd60429" + integrity sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw== + dependencies: + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + invariant "^2.2.4" + metro-symbolicate "0.76.5" + nullthrows "^1.1.1" + ob1 "0.76.5" + source-map "^0.5.6" + vlq "^1.0.0" + +metro-symbolicate@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.73.10.tgz#7853a9a8fbfd615a5c9db698fffc685441ac880f" + integrity sha512-PmCe3TOe1c/NVwMlB+B17me951kfkB3Wve5RqJn+ErPAj93od1nxicp6OJe7JT4QBRnpUP8p9tw2sHKqceIzkA== + dependencies: + invariant "^2.2.4" + metro-source-map "0.73.10" + nullthrows "^1.1.1" + source-map "^0.5.6" + through2 "^2.0.1" + vlq "^1.0.0" + metro-symbolicate@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.73.9.tgz#cb452299a36e5b86b2826e7426d51221635c48bf" @@ -12223,10 +16000,22 @@ metro-symbolicate@0.73.9: through2 "^2.0.1" vlq "^1.0.0" -metro-transform-plugins@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.73.9.tgz#9fffbe1b24269e3d114286fa681abc570072d9b8" - integrity sha512-r9NeiqMngmooX2VOKLJVQrMuV7PAydbqst5bFhdVBPcFpZkxxqyzjzo+kzrszGy2UpSQBZr2P1L6OMjLHwQwfQ== +metro-symbolicate@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz#f2fbb75ca9436ea053bde702fa2a20146ff10be1" + integrity sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ== + dependencies: + invariant "^2.2.4" + metro-source-map "0.76.5" + nullthrows "^1.1.1" + source-map "^0.5.6" + through2 "^2.0.1" + vlq "^1.0.0" + +metro-transform-plugins@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.73.10.tgz#1b762330cbbedb6c18438edc3d76b063c88882af" + integrity sha512-D4AgD3Vsrac+4YksaPmxs/0ocT67bvwTkFSIgWWeDvWwIG0U1iHzTS9f8Bvb4PITnXryDoFtjI6OWF7uOpGxpA== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" @@ -12234,29 +16023,58 @@ metro-transform-plugins@0.73.9: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-worker@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.73.9.tgz#30384cef2d5e35a4abe91b15bf1a8344f5720441" - integrity sha512-Rq4b489sIaTUENA+WCvtu9yvlT/C6zFMWhU4sq+97W29Zj0mPBjdk+qGT5n1ZBgtBIJzZWt1KxeYuc17f4aYtQ== +metro-transform-plugins@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.5.tgz#b4a49b5b55fd3bc24c5a65fa8e40ba07d84e4170" + integrity sha512-7pJ24aRuvzdQYpX/eOyodr4fnwVJP5ArNLBE1d0DOU9sQxsGplOORDTGAqw2L01+UgaSJiiwEoFMw7Z91HAS+Q== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + nullthrows "^1.1.1" + +metro-transform-worker@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.73.10.tgz#bb401dbd7b10a6fe443a5f7970cba38425efece0" + integrity sha512-IySvVubudFxahxOljWtP0QIMMpgUrCP0bW16cz2Enof0PdumwmR7uU3dTbNq6S+XTzuMHR+076aIe4VhPAWsIQ== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" babel-preset-fbjs "^3.4.0" - metro "0.73.9" - metro-babel-transformer "0.73.9" - metro-cache "0.73.9" - metro-cache-key "0.73.9" - metro-hermes-compiler "0.73.9" - metro-source-map "0.73.9" - metro-transform-plugins "0.73.9" + metro "0.73.10" + metro-babel-transformer "0.73.10" + metro-cache "0.73.10" + metro-cache-key "0.73.10" + metro-hermes-compiler "0.73.10" + metro-source-map "0.73.10" + metro-transform-plugins "0.73.10" nullthrows "^1.1.1" -metro@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.73.9.tgz#150e69a6735fab0bcb4f6ee97fd1efc65b3ec36f" - integrity sha512-BlYbPmTF60hpetyNdKhdvi57dSqutb+/oK0u3ni4emIh78PiI0axGo7RfdsZ/mn3saASXc94tDbpC5yn7+NpEg== +metro-transform-worker@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.5.tgz#d101ad46c1a607c7bc52f0a0888961d237df42bd" + integrity sha512-xN6Kb06o9u5A7M1bbl7oPfQFmt4Kmi3CMXp5j9OcK37AFc+u6YXH8x/6e9b3Cq50rlBYuCXDOOYAWI5/tYNt2w== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/parser" "^7.20.0" + "@babel/types" "^7.20.0" + babel-preset-fbjs "^3.4.0" + metro "0.76.5" + metro-babel-transformer "0.76.5" + metro-cache "0.76.5" + metro-cache-key "0.76.5" + metro-source-map "0.76.5" + metro-transform-plugins "0.76.5" + nullthrows "^1.1.1" + +metro@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.73.10.tgz#d9a0efb1e403e3aee5cf5140e0a96a7220c23901" + integrity sha512-J2gBhNHFtc/Z48ysF0B/bfTwUwaRDLjNv7egfhQCc+934dpXcjJG2KZFeuybF+CvA9vo4QUi56G2U+RSAJ5tsA== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -12279,24 +16097,25 @@ metro@0.73.9: image-size "^0.6.0" invariant "^2.2.4" jest-worker "^27.2.0" + jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.73.9" - metro-cache "0.73.9" - metro-cache-key "0.73.9" - metro-config "0.73.9" - metro-core "0.73.9" - metro-file-map "0.73.9" - metro-hermes-compiler "0.73.9" - metro-inspector-proxy "0.73.9" - metro-minify-terser "0.73.9" - metro-minify-uglify "0.73.9" - metro-react-native-babel-preset "0.73.9" - metro-resolver "0.73.9" - metro-runtime "0.73.9" - metro-source-map "0.73.9" - metro-symbolicate "0.73.9" - metro-transform-plugins "0.73.9" - metro-transform-worker "0.73.9" + metro-babel-transformer "0.73.10" + metro-cache "0.73.10" + metro-cache-key "0.73.10" + metro-config "0.73.10" + metro-core "0.73.10" + metro-file-map "0.73.10" + metro-hermes-compiler "0.73.10" + metro-inspector-proxy "0.73.10" + metro-minify-terser "0.73.10" + metro-minify-uglify "0.73.10" + metro-react-native-babel-preset "0.73.10" + metro-resolver "0.73.10" + metro-runtime "0.73.10" + metro-source-map "0.73.10" + metro-symbolicate "0.73.10" + metro-transform-plugins "0.73.10" + metro-transform-worker "0.73.10" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" @@ -12309,6 +16128,60 @@ metro@0.73.9: ws "^7.5.1" yargs "^17.5.1" +metro@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.5.tgz#0defc2a773dcdfe6569d1bd7f7a25a7424ce6f11" + integrity sha512-aEQiqNFibfx4ajUXm7Xatsv43r/UQ0xE53T3XqgZBzsxhF235tf1cl8t0giawi0RbLtDS+Fu4kg2bVBKDYFy7A== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/parser" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + "@babel/types" "^7.20.0" + accepts "^1.3.7" + async "^3.2.2" + chalk "^4.0.0" + ci-info "^2.0.0" + connect "^3.6.5" + debug "^2.2.0" + denodeify "^1.2.1" + error-stack-parser "^2.0.6" + graceful-fs "^4.2.4" + hermes-parser "0.8.0" + image-size "^1.0.2" + invariant "^2.2.4" + jest-worker "^27.2.0" + jsc-safe-url "^0.2.2" + lodash.throttle "^4.1.1" + metro-babel-transformer "0.76.5" + metro-cache "0.76.5" + metro-cache-key "0.76.5" + metro-config "0.76.5" + metro-core "0.76.5" + metro-file-map "0.76.5" + metro-inspector-proxy "0.76.5" + metro-minify-terser "0.76.5" + metro-minify-uglify "0.76.5" + metro-react-native-babel-preset "0.76.5" + metro-resolver "0.76.5" + metro-runtime "0.76.5" + metro-source-map "0.76.5" + metro-symbolicate "0.76.5" + metro-transform-plugins "0.76.5" + metro-transform-worker "0.76.5" + mime-types "^2.1.27" + node-fetch "^2.2.0" + nullthrows "^1.1.1" + rimraf "^3.0.2" + serialize-error "^2.1.0" + source-map "^0.5.6" + strip-ansi "^6.0.0" + throat "^5.0.0" + ws "^7.5.1" + yargs "^17.6.2" + microevent.ts@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" @@ -12359,7 +16232,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@2.1.35, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -12386,6 +16259,26 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + +min-indent@^1.0.0, min-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + mini-css-extract-plugin@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" @@ -12433,7 +16326,16 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.6: +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -12530,6 +16432,11 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -12583,6 +16490,11 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" +mute-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + mv@~2: version "2.1.1" resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" @@ -12655,7 +16567,7 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -12665,6 +16577,18 @@ nested-error-stacks@~2.0.1: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz#d2cc9fc5235ddb371fc44d506234339c8e4b0a4b" integrity sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A== +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + +new-github-release-url@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-2.0.0.tgz#335189b91f52bbb9569042a7485900a205a0500b" + integrity sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ== + dependencies: + type-fest "^2.5.1" + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -12683,6 +16607,11 @@ nocache@^3.0.1: resolved "https://registry.yarnpkg.com/nocache/-/nocache-3.0.4.tgz#5b37a56ec6e09fc7d401dceaed2eab40c8bfdf79" integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== +node-abort-controller@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + node-dir@^0.1.17: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -12690,6 +16619,11 @@ node-dir@^0.1.17: dependencies: minimatch "^3.0.2" +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-fetch@2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -12697,6 +16631,15 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" +node-fetch@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" + integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" @@ -12768,6 +16711,11 @@ node-releases@^1.1.61: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + node-releases@^2.0.8: version "2.0.10" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" @@ -12783,6 +16731,26 @@ normalize-css-color@^1.0.2: resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d" integrity sha512-jPJ/V7Cp1UytdidsPqviKEElFQJs22hUUgK5BOPHTwOonNCk7/2qOxhhqzEajmFrWJowADFfOFh1V+aWkRfy+w== +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -12810,6 +16778,11 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +normalize-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" + integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== + npm-package-arg@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-7.0.0.tgz#52cdf08b491c0c59df687c4c925a89102ef794a5" @@ -12827,13 +16800,20 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.1: +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -12866,11 +16846,21 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== +ob1@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.10.tgz#bf0a2e8922bb8687ddca82327c5cf209414a1bd4" + integrity sha512-aO6EYC+QRRCkZxVJhCWhLKgVjhNuD6Gu1riGjxrIm89CqLsmKgxzYDDEsktmKsoDeRdWGQM5EdMzXDl5xcVfsw== + ob1@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.9.tgz#d5677a0dd3e2f16ad84231278d79424436c38c59" integrity sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw== +ob1@0.76.5: + version "0.76.5" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.5.tgz#85476959743d8f6722faf0ac29bee8861f50120b" + integrity sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w== + object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -13041,6 +17031,23 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +open@9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" + integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== + dependencies: + default-browser "^4.0.0" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^2.2.0" + open@^6.2.0: version "6.4.0" resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" @@ -13121,6 +17128,21 @@ ora@3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" +ora@6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6" + integrity sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ== + dependencies: + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + stdin-discarder "^0.1.0" + strip-ansi "^7.0.1" + wcwidth "^1.0.1" + ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" @@ -13146,6 +17168,14 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== +os-name@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-5.1.0.tgz#4f5ab5edfa6938b590112714f1570fe79f1d957a" + integrity sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ== + dependencies: + macos-release "^3.1.0" + windows-release "^5.0.1" + os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -13159,11 +17189,23 @@ osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -13178,6 +17220,13 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -13211,6 +17260,13 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-map@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" + integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== + dependencies: + aggregate-error "^4.0.0" + p-retry@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -13226,11 +17282,48 @@ p-retry@^4.5.0: "@types/retry" "0.12.0" retry "^0.13.1" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pac-proxy-agent@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-6.0.3.tgz#61042187093b67aa7dd05b41e4ec7c241a27c428" + integrity sha512-5Hr1KgPDoc21Vn3rsXBirwwDnF/iac1jN/zkpsOYruyT+ZgsUhUOgVwq3v9+ukjZd/yGm/0nzO1fDfl7rkGoHQ== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + get-uri "^6.0.1" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + pac-resolver "^6.0.1" + socks-proxy-agent "^8.0.1" + +pac-resolver@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-6.0.1.tgz#319c182d3db4e6782e79519cb4dd1dda46579292" + integrity sha512-dg497MhVT7jZegPRuOScQ/z0aV/5WR0gTdRu1md+Irs9J9o+ls5jIuxjo1WfaTG+eQQkxyn5HMGvWK+w7EIBkQ== + dependencies: + degenerator "^4.0.1" + ip "^1.1.5" + netmask "^2.0.2" + +package-json@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -13294,6 +17387,13 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + parse-png@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-2.1.0.tgz#2a42ad719fedf90f81c59ebee7ae59b280d6b338" @@ -13306,6 +17406,13 @@ parse-srcset@^1.0.2: resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -13407,6 +17514,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.5, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -13417,6 +17529,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -13465,6 +17584,11 @@ pify@^2.0.0, pify@^2.3.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -13533,6 +17657,11 @@ pnp-webpack-plugin@^1.5.0: dependencies: ts-pnp "^1.1.6" +pod-install@^0.1.0: + version "0.1.38" + resolved "https://registry.yarnpkg.com/pod-install/-/pod-install-0.1.38.tgz#1c16a800a5fc1abea0cafcc0e190f376368c76ab" + integrity sha512-NeDWGigjJRriOIKBOvpW2/tK2tYLfyUT7ia6C6L+oarCAhBNP+IGODWdU+GEAqvfsseqOApcFclpXAJTL0UPzA== + portfinder@^1.0.26: version "1.0.32" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" @@ -14421,6 +18550,11 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" +prettier@^2.0.5: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + prettier@^2.8.7: version "2.8.7" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" @@ -14466,7 +18600,7 @@ pretty-format@^27.0.0, pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^28.1.3: +pretty-format@^28.0.0, pretty-format@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== @@ -14505,6 +18639,18 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== +promise.allsettled@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.6.tgz#8dc8ba8edf429feb60f8e81335b920e109c94b6e" + integrity sha512-22wJUOD3zswWFqgwjNHa1965LvqTX87WPu/lreY2KSd7SVcERfuZ4GfUaOnJNnvtoIv2yXT/W00YIGMetXtFXg== + dependencies: + array.prototype.map "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + iterate-value "^1.0.2" + promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -14544,6 +18690,16 @@ prop-types@*, prop-types@15.8.1, prop-types@^15.5.10, prop-types@^15.6.2, prop-t object-assign "^4.1.1" react-is "^16.13.1" +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -14552,6 +18708,25 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-agent@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.2.1.tgz#062df6609a4012fd1c108974865599b61e77abde" + integrity sha512-OIbBKlRAT+ycCm6wAYIzMwPejzRtjy8F3QiDX0eKOA3e4pe3U9F/IvzcHP42bmgQxVv97juG+J8/gx+JIeCX/Q== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + lru-cache "^7.14.1" + pac-proxy-agent "^6.0.3" + proxy-from-env "^1.1.0" + socks-proxy-agent "^8.0.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -14619,6 +18794,13 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +pupa@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" + integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== + dependencies: + escape-goat "^4.0.0" + pure-rand@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" @@ -14636,7 +18818,7 @@ pvutils@^1.1.3: resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== -q@^1.1.2: +q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== @@ -14700,6 +18882,11 @@ queue@6.0.2: dependencies: inherits "~2.0.3" +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" @@ -14752,7 +18939,7 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.0.1, rc@^1.1.6, rc@~1.2.7: +rc@1.2.8, rc@^1.0.1, rc@^1.1.6, rc@~1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -14852,6 +19039,14 @@ react-devtools-core@^4.26.1: shell-quote "^1.6.1" ws "^7" +react-devtools-core@^4.27.2: + version "4.27.8" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.27.8.tgz#b7b387b079c14ae9a214d4846a402da2b6efd164" + integrity sha512-KwoH8/wN/+m5wTItLnsgVraGNmFrcTWR3k1VimP1HjtMMw4CNF+F5vg4S/0tzTEKIdpCi2R7mPNTC+/dswZMgw== + dependencies: + shell-quote "^1.6.1" + ws "^7" + react-dnd-html5-backend@^14.0.1: version "14.1.0" resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-14.1.0.tgz#b35a3a0c16dd3a2bfb5eb7ec62cf0c2cace8b62f" @@ -14903,6 +19098,33 @@ react-is@^17.0.1, react-is@^17.0.2: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-native-builder-bob@^0.20.0: + version "0.20.4" + resolved "https://registry.yarnpkg.com/react-native-builder-bob/-/react-native-builder-bob-0.20.4.tgz#02df01b8dc02f1bb2d566f820e33c5d42bfb9c99" + integrity sha512-3ZmYP8H7Fg2D8/JAPvxT78I4VWzf5DNMUf69cxWPw7Pukt+hHp1PSQ303af63uv1QXxWMJtrQ11+nuUfVqQf0Q== + dependencies: + "@babel/core" "^7.18.5" + "@babel/plugin-proposal-class-properties" "^7.17.12" + "@babel/preset-env" "^7.18.2" + "@babel/preset-flow" "^7.17.12" + "@babel/preset-react" "^7.17.12" + "@babel/preset-typescript" "^7.17.12" + browserslist "^4.20.4" + cosmiconfig "^7.0.1" + cross-spawn "^7.0.3" + dedent "^0.7.0" + del "^6.1.1" + fs-extra "^10.1.0" + glob "^8.0.3" + is-git-dirty "^2.0.1" + json5 "^2.2.1" + kleur "^4.1.4" + prompts "^2.4.2" + which "^2.0.2" + yargs "^17.5.1" + optionalDependencies: + jetifier "^2.0.0" + react-native-camera@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/react-native-camera/-/react-native-camera-4.2.1.tgz#caf74081f055e89d7e9b0cd5108965d808c60e90" @@ -14970,6 +19192,14 @@ react-native-fast-image@^8.5.11: resolved "https://registry.yarnpkg.com/react-native-fast-image/-/react-native-fast-image-8.6.3.tgz#6edc3f9190092a909d636d93eecbcc54a8822255" integrity sha512-Sdw4ESidXCXOmQ9EcYguNY2swyoWmx53kym2zRsvi+VeFCHEdkO+WG1DK+6W81juot40bbfLNhkc63QnWtesNg== +react-native-fs@^2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/react-native-fs/-/react-native-fs-2.20.0.tgz#05a9362b473bfc0910772c0acbb73a78dbc810f6" + integrity sha512-VkTBzs7fIDUiy/XajOSNk0XazFE9l+QlMAce7lGuebZcag5CnjszB+u4BdqzwaQOdcYb5wsJIsqq4kxInIRpJQ== + dependencies: + base-64 "^0.1.0" + utf8 "^3.0.0" + react-native-gesture-handler@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.9.0.tgz#2f63812e523c646f25b9ad660fc6f75948e51241" @@ -14989,9 +19219,9 @@ react-native-get-random-values@^1.8.0: fast-base64-decode "^1.0.0" react-native-gradle-plugin@^0.71.17: - version "0.71.18" - resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.18.tgz#20ef199bc85be32e45bb6cc069ec2e7dcb1a74a6" - integrity sha512-7F6bD7B8Xsn3JllxcwHhFcsl9aHIig47+3eN4IHFNqfLhZr++3ElDrcqfMzugM+niWbaMi7bJ0kAkAL8eCpdWg== + version "0.71.19" + resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.19.tgz#3379e28341fcd189bc1f4691cefc84c1a4d7d232" + integrity sha512-1dVk9NwhoyKHCSxcrM6vY6cxmojeATsBobDicX0ZKr7DgUF2cBQRTKsimQFvzH8XhOVXyH8p4HyDSZNIFI8OlQ== react-native-haptic-feedback@^1.11.0: version "1.14.0" @@ -15285,11 +19515,53 @@ react-native@0.71.7: react-refresh "^0.4.0" react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" - scheduler "^0.23.0" - stacktrace-parser "^0.1.3" + scheduler "^0.23.0" + stacktrace-parser "^0.1.3" + use-sync-external-store "^1.0.0" + whatwg-fetch "^3.0.0" + ws "^6.2.2" + +react-native@0.72.0: + version "0.72.0" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.0.tgz#fc76b4f31896b463cee01dd1a90657b97d2b5ffd" + integrity sha512-BP2qq5f05pl3zV+eYgW7nmjCV+3zLXs/Vm69xMTCLD34U2bvRhuWbuUhqpauw7fyk5c8+LrY9NKcnARCkqKXcw== + dependencies: + "@jest/create-cache-key-function" "^29.2.1" + "@react-native-community/cli" "11.3.2" + "@react-native-community/cli-platform-android" "11.3.2" + "@react-native-community/cli-platform-ios" "11.3.2" + "@react-native/assets-registry" "^0.72.0" + "@react-native/codegen" "^0.72.6" + "@react-native/gradle-plugin" "^0.72.10" + "@react-native/js-polyfills" "^0.72.1" + "@react-native/normalize-colors" "^0.72.0" + "@react-native/virtualized-lists" "^0.72.5" + abort-controller "^3.0.0" + anser "^1.4.9" + base64-js "^1.1.2" + deprecated-react-native-prop-types "4.1.0" + event-target-shim "^5.0.1" + flow-enums-runtime "^0.0.5" + invariant "^2.2.4" + jest-environment-node "^29.2.1" + jsc-android "^250231.0.0" + memoize-one "^5.0.0" + metro-runtime "0.76.5" + metro-source-map "0.76.5" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + pretty-format "^26.5.2" + promise "^8.3.0" + react-devtools-core "^4.27.2" + react-refresh "^0.4.0" + react-shallow-renderer "^16.15.0" + regenerator-runtime "^0.13.2" + scheduler "0.24.0-canary-efb381bbf-20230505" + stacktrace-parser "^0.1.10" use-sync-external-store "^1.0.0" whatwg-fetch "^3.0.0" ws "^6.2.2" + yargs "^17.6.2" react-query@^3.39.3: version "3.39.3" @@ -15416,6 +19688,61 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg-up@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" + integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== + dependencies: + find-up "^5.0.0" + read-pkg "^6.0.0" + type-fest "^1.0.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read-pkg@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" + integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^3.0.2" + parse-json "^5.2.0" + type-fest "^1.0.1" + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -15429,6 +19756,15 @@ read-cache@^1.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^1.0.26-4, readable-stream@^1.0.27-1, readable-stream@^1.0.33: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -15439,15 +19775,6 @@ readable-stream@^1.0.26-4, readable-stream@^1.0.27-1, readable-stream@^1.0.33: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readable-stream@~1.0.26, readable-stream@~1.0.26-4: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -15494,6 +19821,23 @@ recast@^0.20.4: source-map "~0.6.1" tslib "^2.0.1" +recast@^0.21.0: + version "0.21.5" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.21.5.tgz#e8cd22bb51bcd6130e54f87955d33a2b2e57b495" + integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== + dependencies: + ast-types "0.15.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + recursive-readdir@2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" @@ -15517,6 +19861,22 @@ recyclerlistview@4.2.0: prop-types "15.8.1" ts-object-utils "0.0.5" +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" + integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== + dependencies: + indent-string "^5.0.0" + strip-indent "^4.0.0" + redux-saga@^1.1.3: version "1.2.3" resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.2.3.tgz#7362f78a0235868daf1210f8862a95906ac018a1" @@ -15602,6 +19962,13 @@ registry-auth-token@3.3.2: rc "^1.1.6" safe-buffer "^5.0.1" +registry-auth-token@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== + dependencies: + "@pnpm/npm-conf" "^2.1.0" + registry-url@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" @@ -15609,6 +19976,13 @@ registry-url@3.1.0: dependencies: rc "^1.0.1" +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" @@ -15621,6 +19995,39 @@ relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== +release-it@^15.0.0: + version "15.11.0" + resolved "https://registry.yarnpkg.com/release-it/-/release-it-15.11.0.tgz#389cf1e8f367b51f3f3bc4dc3e01046b6bdb166c" + integrity sha512-lZwoGEnKYKwGnfxxlA7vtR7vvozPrOSsIgQaHO4bgQ5ARbG3IA6Dmo0IVusv6nR1KmnjH70QIeNAgsWs6Ji/tw== + dependencies: + "@iarna/toml" "2.2.5" + "@octokit/rest" "19.0.11" + async-retry "1.3.3" + chalk "5.2.0" + cosmiconfig "8.1.3" + execa "7.1.1" + git-url-parse "13.1.0" + globby "13.1.4" + got "12.6.1" + inquirer "9.2.6" + is-ci "3.0.1" + issue-parser "6.0.0" + lodash "4.17.21" + mime-types "2.1.35" + new-github-release-url "2.0.0" + node-fetch "3.3.1" + open "9.1.0" + ora "6.3.1" + os-name "5.1.0" + promise.allsettled "1.0.6" + proxy-agent "6.2.1" + semver "7.5.1" + shelljs "0.8.5" + update-notifier "6.0.2" + url-join "5.0.0" + wildcard-match "5.1.2" + yargs-parser "21.1.1" + remove-accents@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" @@ -15702,6 +20109,11 @@ reselect@^4.0.0, reselect@^4.1.7: resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.7.tgz#56480d9ff3d3188970ee2b76527bd94a95567a42" integrity sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A== +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -15716,6 +20128,11 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -15726,10 +20143,12 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" resolve-url-loader@^4.0.0: version "4.0.0" @@ -15757,7 +20176,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.1.7, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.3.2: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.3.2: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -15782,6 +20201,13 @@ resolve@~1.7.1: dependencies: path-parse "^1.0.5" +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -15798,21 +20224,29 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +retry@0.13.1, retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -15886,6 +20320,18 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" +run-applescript@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" + integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== + dependencies: + execa "^5.0.0" + +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -15907,6 +20353,13 @@ rxjs@6, rxjs@^6.6.7: dependencies: tslib "^1.9.0" +rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -15968,6 +20421,13 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" +scheduler@0.24.0-canary-efb381bbf-20230505: + version "0.24.0-canary-efb381bbf-20230505" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz#5dddc60e29f91cd7f8b983d7ce4a99c2202d178f" + integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA== + dependencies: + loose-envify "^1.1.0" + scheduler@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" @@ -16040,25 +20500,53 @@ selfsigned@^2.1.1: dependencies: node-forge "^1" +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== + dependencies: + semver "^7.3.5" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@7.3.8, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@~7.3.2: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +semver@7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" + integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== + dependencies: + lru-cache "^6.0.0" + +semver@7.5.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@~7.3.2: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== +semver@^7.3.4: + version "7.5.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" + integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== dependencies: lru-cache "^6.0.0" @@ -16245,6 +20733,15 @@ shell-quote@^1.6.1, shell-quote@^1.7.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== +shelljs@0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -16314,6 +20811,11 @@ slugify@^1.3.4: resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b" integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw== +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -16374,6 +20876,23 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" +socks-proxy-agent@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.1.tgz#ffc5859a66dac89b0c4dab90253b96705f3e7120" + integrity sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ== + dependencies: + agent-base "^7.0.1" + debug "^4.3.4" + socks "^2.7.1" + +socks@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -16457,6 +20976,32 @@ sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.13" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" + integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -16492,7 +21037,14 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split@^1.0.1: +split2@^3.0.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split@^1.0.0, split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== @@ -16559,7 +21111,7 @@ stacktrace-js@^2.0.0: stack-generator "^2.0.5" stacktrace-gps "^3.0.4" -stacktrace-parser@^0.1.3: +stacktrace-parser@^0.1.10, stacktrace-parser@^0.1.3: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== @@ -16584,6 +21136,13 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +stdin-discarder@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" + integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ== + dependencies: + bl "^5.0.0" + stop-iteration-iterator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" @@ -16703,6 +21262,15 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -16832,6 +21400,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" @@ -16839,6 +21412,20 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" + integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== + dependencies: + min-indent "^1.0.1" + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -17227,6 +21814,11 @@ text-encoding-polyfill@^0.6.7: resolved "https://registry.yarnpkg.com/text-encoding-polyfill/-/text-encoding-polyfill-0.6.7.tgz#4d27de0153e4c86eb2631ffd74c2f3f57969a9ec" integrity sha512-/DZ1XJqhbqRkCop6s9ZFu8JrFRwmVuHg4quIRm+ziFkR3N3ec6ck6yBvJ1GYeEQZhLVwRW0rZE+C3SSJpy0RTg== +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -17264,7 +21856,14 @@ through2@^2.0.0, through2@^2.0.1: readable-stream "~2.3.6" xtend "~4.0.1" -through@2: +through2@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +through@2, "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -17293,6 +21892,11 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== +titleize@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" + integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -17443,6 +22047,16 @@ traverse@~0.6.6: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +trim-newlines@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" + integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== + tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" @@ -17453,7 +22067,7 @@ ts-interface-checker@^0.1.9: resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -ts-node@^10.7.0: +ts-node@^10.7.0, ts-node@^10.8.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -17558,6 +22172,11 @@ type-fest@^0.16.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -17573,11 +22192,31 @@ type-fest@^0.3.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + type-fest@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.13.0, type-fest@^2.5.1: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -17626,11 +22265,16 @@ typescript-tuple@^2.2.1: dependencies: typescript-compare "^0.0.2" -typescript@^4.9.4: +typescript@^4.5.2, typescript@^4.9.4: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +"typescript@^4.6.4 || ^5.0.0": + version "5.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" + integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== + ua-parser-js@^0.7.30: version "0.7.35" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" @@ -17649,6 +22293,11 @@ uglify-es@^3.1.9: commander "~2.13.0" source-map "~0.6.1" +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -17659,6 +22308,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -17730,6 +22384,18 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -17776,6 +22442,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + upath@^1.1.1, upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -17789,6 +22460,14 @@ update-browserslist-db@^1.0.10: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + update-check@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.3.tgz#45240fcfb8755a7c7fa68bbdd9eda026a41639ed" @@ -17797,6 +22476,26 @@ update-check@1.5.3: registry-auth-token "3.3.2" registry-url "3.1.0" +update-notifier@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" + is-installed-globally "^0.4.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -17814,6 +22513,11 @@ url-join@4.0.0: resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" integrity sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA== +url-join@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1" + integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA== + url-loader@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" @@ -17862,6 +22566,11 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +utf8@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -17959,6 +22668,14 @@ valid-url@~1.0.9: resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + validate-npm-package-name@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" @@ -17993,6 +22710,14 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vm2@^3.9.19: + version "3.9.19" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.19.tgz#be1e1d7a106122c6c492b4d51c2e8b93d3ed6a4a" + integrity sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg== + dependencies: + acorn "^8.7.0" + acorn-walk "^8.2.0" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -18059,6 +22784,11 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-streams-polyfill@^3.0.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + web-vitals@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" @@ -18420,18 +23150,37 @@ which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" -which@^2.0.1: +which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +wildcard-match@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/wildcard-match/-/wildcard-match-5.1.2.tgz#66b438001391674d8599b45da051e0bd9f33cd2a" + integrity sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ== + wildcard@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== +windows-release@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-5.1.1.tgz#7ac7019f9baeaea6c00ec889b11824f46c12ee8d" + integrity sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw== + dependencies: + execa "^5.1.1" + wonka@^4.0.14: version "4.0.15" resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.15.tgz#9aa42046efa424565ab8f8f451fcca955bf80b89" @@ -18447,6 +23196,11 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + workbox-background-sync@6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9" @@ -18639,7 +23393,7 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.2.0: +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -18657,6 +23411,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -18671,7 +23434,7 @@ write-file-atomic@^2.3.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.0: +write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -18681,7 +23444,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.2: +write-file-atomic@^4.0.1, write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== @@ -18714,6 +23477,11 @@ xcode@^3.0.0, xcode@^3.0.1: simple-plist "^1.1.0" uuid "^7.0.3" +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + xml-js@^1.6.11: version "1.6.11" resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" @@ -18802,6 +23570,16 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + +yargs-parser@21.1.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -18818,16 +23596,11 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - yargs@^13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -18874,6 +23647,19 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.0.0, yargs@^17.6.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yargs@^17.3.1, yargs@^17.5.1: version "17.7.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" From f71620edc605379cd31a375cbbe2166f36f62602 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 04:02:56 +0400 Subject: [PATCH 04/73] wip --- .../android/app/src/main/AndroidManifest.xml | 11 ----------- .../android/app/src/main/res/xml/filepaths.xml | 11 ----------- .../java/com/apkinstall/ApkInstallModule.kt | 17 +---------------- 3 files changed, 1 insertion(+), 38 deletions(-) delete mode 100644 packages/mobile/android/app/src/main/res/xml/filepaths.xml diff --git a/packages/mobile/android/app/src/main/AndroidManifest.xml b/packages/mobile/android/app/src/main/AndroidManifest.xml index 537281041..9fd2706dd 100644 --- a/packages/mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/mobile/android/app/src/main/AndroidManifest.xml @@ -8,7 +8,6 @@ - @@ -35,16 +34,6 @@ tools:replace="android:fullBackupContent" tools:targetApi="32"> - - - - - - - - - - - - - - diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt index 06f4c1305..d2659e6aa 100644 --- a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt @@ -4,7 +4,6 @@ import android.content.Intent import android.net.Uri import android.os.Binder import android.os.Build -import androidx.core.content.FileProvider import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule @@ -21,21 +20,7 @@ class ApkInstallModule(reactContext: ReactApplicationContext) : ReactContextBase @ReactMethod fun installApk(path: String, promise: Promise) { - val toInstall: File = File(path) - if (Build.VERSION.SDK_INT >= 24) { - val callingPackageName: String? = _context.getPackageManager().getNameForUid(Binder.getCallingUid()) - val apkUri = FileProvider.getUriForFile(_context, "$callingPackageName.fileprovider", toInstall) - val intent = Intent(Intent.ACTION_INSTALL_PACKAGE) - intent.setData(apkUri) - intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - _context.startActivity(intent) - } else { - val apkUri = Uri.fromFile(toInstall) - val intent = Intent(Intent.ACTION_VIEW) - intent.setDataAndType(apkUri, "application/vnd.android.package-archive") - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - _context.startActivity(intent) - } + } From 6b7da094f22fad7c6f4b79ac0f4bc443699d084a Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 04:30:05 +0400 Subject: [PATCH 05/73] wip --- packages/mobile/android/app/build.gradle | 9 --------- .../mobile/src/store/zustand/updates/useUpdatesStore.ts | 2 +- packages/mobile/src/tabs/Wallet/WalletScreen.tsx | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index a464f2504..4f5c69df2 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -128,15 +128,6 @@ android { missingDimensionStrategy 'react-native-camera', 'general' } - packagingOptions { - pickFirst '**/armeabi-v7a/libc++_shared.so' - pickFirst '**/x86/libc++_shared.so' - pickFirst '**/arm64-v8a/libc++_shared.so' - pickFirst '**/x86_64/libc++_shared.so' - pickFirst '**/x86/libjsc.so' - pickFirst '**/armeabi-v7a/libjsc.so' - } - splits { abi { reset() diff --git a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts index bb409274b..65637e408 100644 --- a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts +++ b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts @@ -49,7 +49,7 @@ export const useUpdatesStore = create( set({ update: { state: UpdateState.DOWNLOADING, - progress: Math.round(res.bytesWritten / res.contentLength), + progress: Math.round((res.bytesWritten / res.contentLength) * 100), }, }); }, diff --git a/packages/mobile/src/tabs/Wallet/WalletScreen.tsx b/packages/mobile/src/tabs/Wallet/WalletScreen.tsx index ab789dfc2..7b6132c42 100644 --- a/packages/mobile/src/tabs/Wallet/WalletScreen.tsx +++ b/packages/mobile/src/tabs/Wallet/WalletScreen.tsx @@ -125,8 +125,8 @@ export const WalletScreen = memo(() => { onClose={notification.onClose} /> ))} + {shouldUpdate && } - {shouldUpdate && } {balance.total.fiat} {wallet && ( From e05d6c3b6bbc3660510fe2600dc64d3da08e3e83 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 04:30:12 +0400 Subject: [PATCH 06/73] Revert "wip" This reverts commit f71620edc605379cd31a375cbbe2166f36f62602. --- .../android/app/src/main/AndroidManifest.xml | 11 +++++++++++ .../android/app/src/main/res/xml/filepaths.xml | 11 +++++++++++ .../java/com/apkinstall/ApkInstallModule.kt | 17 ++++++++++++++++- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 packages/mobile/android/app/src/main/res/xml/filepaths.xml diff --git a/packages/mobile/android/app/src/main/AndroidManifest.xml b/packages/mobile/android/app/src/main/AndroidManifest.xml index 9fd2706dd..537281041 100644 --- a/packages/mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/mobile/android/app/src/main/AndroidManifest.xml @@ -8,6 +8,7 @@ + @@ -34,6 +35,16 @@ tools:replace="android:fullBackupContent" tools:targetApi="32"> + + + + + + + + + + + + + + diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt index d2659e6aa..06f4c1305 100644 --- a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt @@ -4,6 +4,7 @@ import android.content.Intent import android.net.Uri import android.os.Binder import android.os.Build +import androidx.core.content.FileProvider import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule @@ -20,7 +21,21 @@ class ApkInstallModule(reactContext: ReactApplicationContext) : ReactContextBase @ReactMethod fun installApk(path: String, promise: Promise) { - + val toInstall: File = File(path) + if (Build.VERSION.SDK_INT >= 24) { + val callingPackageName: String? = _context.getPackageManager().getNameForUid(Binder.getCallingUid()) + val apkUri = FileProvider.getUriForFile(_context, "$callingPackageName.fileprovider", toInstall) + val intent = Intent(Intent.ACTION_INSTALL_PACKAGE) + intent.setData(apkUri) + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + _context.startActivity(intent) + } else { + val apkUri = Uri.fromFile(toInstall) + val intent = Intent(Intent.ACTION_VIEW) + intent.setDataAndType(apkUri, "application/vnd.android.package-archive") + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + _context.startActivity(intent) + } } From 57bebc20b01c926ebc134aff29fb356a61e3ae59 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 08:42:57 +0400 Subject: [PATCH 07/73] wip --- lefthook.yml | 35 + packages/mobile/package.json | 2 +- .../mobile/src/hooks/useCheckForUpdates.ts | 7 + .../react-native-apk-install/.editorconfig | 15 - .../react-native-apk-install/.gitattributes | 3 - packages/react-native-apk-install/.gitignore | 70 - packages/react-native-apk-install/.nvmrc | 1 - .../react-native-apk-install/.watchmanconfig | 1 - packages/react-native-apk-install/.yarnrc | 3 - .../CODE_OF_CONDUCT.md | 133 - .../react-native-apk-install/CONTRIBUTING.md | 114 - packages/react-native-apk-install/LICENSE | 20 - packages/react-native-apk-install/README.md | 31 - .../android/build.gradle | 98 +- .../android/gradle.properties | 5 - .../react-native-apk-install/android/gradlew | 172 + .../android/gradlew.bat | 84 + .../java/com/apkinstall/ApkInstallModule.java | 72 + .../java/com/apkinstall/ApkInstallModule.kt | 45 - .../com/apkinstall/ApkInstallPackage.java | 28 + .../java/com/apkinstall/ApkInstallPackage.kt | 17 - .../react-native-apk-install/babel.config.js | 3 - packages/react-native-apk-install/index.js | 10 + .../react-native-apk-install/ios/ApkInstall.h | 12 - .../ios/ApkInstall.mm | 27 - .../ios/ApkInstall.xcodeproj/project.pbxproj | 274 - .../contents.xcworkspacedata | 4 - .../react-native-apk-install/lefthook.yml | 16 - .../lib/commonjs/index.js | 23 - .../lib/commonjs/index.js.map | 1 - .../lib/module/index.js | 17 - .../lib/module/index.js.map | 1 - .../lib/typescript/__tests__/index.test.d.ts | 1 - .../typescript/__tests__/index.test.d.ts.map | 1 - .../lib/typescript/index.d.ts | 2 - .../lib/typescript/index.d.ts.map | 1 - .../react-native-apk-install/package.json | 153 +- .../react-native-apk-install.podspec | 35 - .../scripts/bootstrap.js | 29 - .../src/__tests__/index.test.tsx | 1 - .../react-native-apk-install/src/index.tsx | 25 - .../tsconfig.build.json | 5 - .../react-native-apk-install/tsconfig.json | 28 - yarn.lock | 4911 +---------------- 44 files changed, 573 insertions(+), 5963 deletions(-) create mode 100644 lefthook.yml delete mode 100644 packages/react-native-apk-install/.editorconfig delete mode 100644 packages/react-native-apk-install/.gitattributes delete mode 100644 packages/react-native-apk-install/.gitignore delete mode 100644 packages/react-native-apk-install/.nvmrc delete mode 100644 packages/react-native-apk-install/.watchmanconfig delete mode 100644 packages/react-native-apk-install/.yarnrc delete mode 100644 packages/react-native-apk-install/CODE_OF_CONDUCT.md delete mode 100644 packages/react-native-apk-install/CONTRIBUTING.md delete mode 100644 packages/react-native-apk-install/LICENSE delete mode 100644 packages/react-native-apk-install/README.md delete mode 100644 packages/react-native-apk-install/android/gradle.properties create mode 100644 packages/react-native-apk-install/android/gradlew create mode 100644 packages/react-native-apk-install/android/gradlew.bat create mode 100644 packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java delete mode 100644 packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt create mode 100644 packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.java delete mode 100644 packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.kt delete mode 100644 packages/react-native-apk-install/babel.config.js create mode 100644 packages/react-native-apk-install/index.js delete mode 100644 packages/react-native-apk-install/ios/ApkInstall.h delete mode 100644 packages/react-native-apk-install/ios/ApkInstall.mm delete mode 100644 packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.pbxproj delete mode 100644 packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 packages/react-native-apk-install/lefthook.yml delete mode 100644 packages/react-native-apk-install/lib/commonjs/index.js delete mode 100644 packages/react-native-apk-install/lib/commonjs/index.js.map delete mode 100644 packages/react-native-apk-install/lib/module/index.js delete mode 100644 packages/react-native-apk-install/lib/module/index.js.map delete mode 100644 packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts delete mode 100644 packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts.map delete mode 100644 packages/react-native-apk-install/lib/typescript/index.d.ts delete mode 100644 packages/react-native-apk-install/lib/typescript/index.d.ts.map delete mode 100644 packages/react-native-apk-install/react-native-apk-install.podspec delete mode 100644 packages/react-native-apk-install/scripts/bootstrap.js delete mode 100644 packages/react-native-apk-install/src/__tests__/index.test.tsx delete mode 100644 packages/react-native-apk-install/src/index.tsx delete mode 100644 packages/react-native-apk-install/tsconfig.build.json delete mode 100644 packages/react-native-apk-install/tsconfig.json diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 000000000..0f013f569 --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,35 @@ +# EXAMPLE USAGE: +# +# Refer for explanation to following link: +# https://github.com/evilmartians/lefthook/blob/master/docs/configuration.md +# +# pre-push: +# commands: +# packages-audit: +# tags: frontend security +# run: yarn audit +# gems-audit: +# tags: backend security +# run: bundle audit +# +# pre-commit: +# parallel: true +# commands: +# eslint: +# glob: "*.{js,ts,jsx,tsx}" +# run: yarn eslint {staged_files} +# rubocop: +# tags: backend style +# glob: "*.rb" +# exclude: "application.rb|routes.rb" +# run: bundle exec rubocop --force-exclusion {all_files} +# govet: +# tags: backend style +# files: git ls-files -m +# glob: "*.go" +# run: go vet {files} +# scripts: +# "hello.js": +# runner: node +# "any.go": +# runner: go run diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 2f04d9159..cd8d4ca71 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -43,7 +43,6 @@ "@tonapps/tonlogin-client": "0.2.5", "@tonconnect/protocol": "^2.2.5", "@tonkeeper/core": "0.1.0", - "react-native-apk-install": "0.1.0", "@tonkeeper/shared": "1.0.0", "@vkontakte/vk-qr": "^2.0.13", "axios": "^0.27.2", @@ -83,6 +82,7 @@ "query-string": "^7.0.1", "react": "18.2.0", "react-native": "0.71.7", + "react-native-apk-install": "0.1.0", "react-native-camera": "^4.2.1", "react-native-console-time-polyfill": "^1.2.3", "react-native-crypto": "^2.2.0", diff --git a/packages/mobile/src/hooks/useCheckForUpdates.ts b/packages/mobile/src/hooks/useCheckForUpdates.ts index 0ed3aa296..231bb9b99 100644 --- a/packages/mobile/src/hooks/useCheckForUpdates.ts +++ b/packages/mobile/src/hooks/useCheckForUpdates.ts @@ -1,10 +1,17 @@ import { useEffect } from 'react'; import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; import { openUpdateAppModal } from '$core/ModalContainer/UpdateApp/UpdateApp'; +import { useSelector } from 'react-redux'; +import { walletWalletSelector } from '$store/wallet'; + export function useCheckForUpdates() { + const wallet = useSelector(walletWalletSelector); const { fetchMeta } = useUpdatesStore((s) => s.actions); const shouldUpdate = useUpdatesStore((s) => s.shouldUpdate); useEffect(() => { + if (!wallet) { + return; + } fetchMeta(); }, [fetchMeta]); diff --git a/packages/react-native-apk-install/.editorconfig b/packages/react-native-apk-install/.editorconfig deleted file mode 100644 index 65365be68..000000000 --- a/packages/react-native-apk-install/.editorconfig +++ /dev/null @@ -1,15 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - -root = true - -[*] - -indent_style = space -indent_size = 2 - -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true diff --git a/packages/react-native-apk-install/.gitattributes b/packages/react-native-apk-install/.gitattributes deleted file mode 100644 index 030ef1448..000000000 --- a/packages/react-native-apk-install/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -*.pbxproj -text -# specific for windows script files -*.bat text eol=crlf \ No newline at end of file diff --git a/packages/react-native-apk-install/.gitignore b/packages/react-native-apk-install/.gitignore deleted file mode 100644 index 75356714f..000000000 --- a/packages/react-native-apk-install/.gitignore +++ /dev/null @@ -1,70 +0,0 @@ -# OSX -# -.DS_Store - -# XDE -.expo/ - -# VSCode -.vscode/ -jsconfig.json - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -project.xcworkspace - -# Android/IJ -# -.classpath -.cxx -.gradle -.idea -.project -.settings -local.properties -android.iml - -# Cocoapods -# -example/ios/Pods - -# Ruby -example/vendor/ - -# node.js -# -node_modules/ -npm-debug.log -yarn-debug.log -yarn-error.log - -# BUCK -buck-out/ -\.buckd/ -android/app/libs -android/keystores/debug.keystore - -# Expo -.expo/ - -# Turborepo -.turbo/ - -# generated by bob -lib/ diff --git a/packages/react-native-apk-install/.nvmrc b/packages/react-native-apk-install/.nvmrc deleted file mode 100644 index 5397c87fa..000000000 --- a/packages/react-native-apk-install/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -16.18.1 diff --git a/packages/react-native-apk-install/.watchmanconfig b/packages/react-native-apk-install/.watchmanconfig deleted file mode 100644 index 9e26dfeeb..000000000 --- a/packages/react-native-apk-install/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/packages/react-native-apk-install/.yarnrc b/packages/react-native-apk-install/.yarnrc deleted file mode 100644 index fedc0f117..000000000 --- a/packages/react-native-apk-install/.yarnrc +++ /dev/null @@ -1,3 +0,0 @@ -# Override Yarn command so we can automatically setup the repo on running `yarn` - -yarn-path "scripts/bootstrap.js" diff --git a/packages/react-native-apk-install/CODE_OF_CONDUCT.md b/packages/react-native-apk-install/CODE_OF_CONDUCT.md deleted file mode 100644 index 45d257b29..000000000 --- a/packages/react-native-apk-install/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,133 +0,0 @@ - -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or advances of - any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email address, - without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[INSERT CONTACT METHOD]. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/packages/react-native-apk-install/CONTRIBUTING.md b/packages/react-native-apk-install/CONTRIBUTING.md deleted file mode 100644 index cc91a9620..000000000 --- a/packages/react-native-apk-install/CONTRIBUTING.md +++ /dev/null @@ -1,114 +0,0 @@ -# Contributing - -Contributions are always welcome, no matter how large or small! - -We want this community to be friendly and respectful to each other. Please follow it in all your interactions with the project. Before contributing, please read the [code of conduct](./CODE_OF_CONDUCT.md). - -## Development workflow - -To get started with the project, run `yarn` in the root directory to install the required dependencies for each package: - -```sh -yarn -``` - -> While it's possible to use [`npm`](https://github.com/npm/cli), the tooling is built around [`yarn`](https://classic.yarnpkg.com/), so you'll have an easier time if you use `yarn` for development. - -While developing, you can run the [example app](/example/) to test your changes. Any changes you make in your library's JavaScript code will be reflected in the example app without a rebuild. If you change any native code, then you'll need to rebuild the example app. - -To start the packager: - -```sh -yarn example start -``` - -To run the example app on Android: - -```sh -yarn example android -``` - -To run the example app on iOS: - -```sh -yarn example ios -``` - -Make sure your code passes TypeScript and ESLint. Run the following to verify: - -```sh -yarn typecheck -yarn lint -``` - -To fix formatting errors, run the following: - -```sh -yarn lint --fix -``` - -Remember to add tests for your change if possible. Run the unit tests by: - -```sh -yarn test -``` - -To edit the Objective-C or Swift files, open `example/ios/ApkInstallExample.xcworkspace` in XCode and find the source files at `Pods > Development Pods > react-native-apk-install`. - -To edit the Java or Kotlin files, open `example/android` in Android studio and find the source files at `react-native-apk-install` under `Android`. - - -### Commit message convention - -We follow the [conventional commits specification](https://www.conventionalcommits.org/en) for our commit messages: - -- `fix`: bug fixes, e.g. fix crash due to deprecated method. -- `feat`: new features, e.g. add new method to the module. -- `refactor`: code refactor, e.g. migrate from class components to hooks. -- `docs`: changes into documentation, e.g. add usage example for the module.. -- `test`: adding or updating tests, e.g. add integration tests using detox. -- `chore`: tooling changes, e.g. change CI config. - -Our pre-commit hooks verify that your commit message matches this format when committing. - -### Linting and tests - -[ESLint](https://eslint.org/), [Prettier](https://prettier.io/), [TypeScript](https://www.typescriptlang.org/) - -We use [TypeScript](https://www.typescriptlang.org/) for type checking, [ESLint](https://eslint.org/) with [Prettier](https://prettier.io/) for linting and formatting the code, and [Jest](https://jestjs.io/) for testing. - -Our pre-commit hooks verify that the linter and tests pass when committing. - -### Publishing to npm - -We use [release-it](https://github.com/release-it/release-it) to make it easier to publish new versions. It handles common tasks like bumping version based on semver, creating tags and releases etc. - -To publish new versions, run the following: - -```sh -yarn release -``` - -### Scripts - -The `package.json` file contains various scripts for common tasks: - -- `yarn bootstrap`: setup project by installing all dependencies and pods. -- `yarn typecheck`: type-check files with TypeScript. -- `yarn lint`: lint files with ESLint. -- `yarn test`: run unit tests with Jest. -- `yarn example start`: start the Metro server for the example app. -- `yarn example android`: run the example app on Android. -- `yarn example ios`: run the example app on iOS. - -### Sending a pull request - -> **Working on your first pull request?** You can learn how from this _free_ series: [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github). - -When you're sending a pull request: - -- Prefer small pull requests focused on one change. -- Verify that linters and tests are passing. -- Review the documentation to make sure it looks good. -- Follow the pull request template when opening a pull request. -- For pull requests that change the API or implementation, discuss with maintainers first by opening an issue. diff --git a/packages/react-native-apk-install/LICENSE b/packages/react-native-apk-install/LICENSE deleted file mode 100644 index e4c8e6e96..000000000 --- a/packages/react-native-apk-install/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -MIT License - -Copyright (c) 2023 Max Voloshinskii -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/react-native-apk-install/README.md b/packages/react-native-apk-install/README.md deleted file mode 100644 index 97b81c89a..000000000 --- a/packages/react-native-apk-install/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# react-native-apk-install - -install apk - -## Installation - -```sh -npm install react-native-apk-install -``` - -## Usage - -```js -import { multiply } from 'react-native-apk-install'; - -// ... - -const result = await multiply(3, 7); -``` - -## Contributing - -See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow. - -## License - -MIT - ---- - -Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob) diff --git a/packages/react-native-apk-install/android/build.gradle b/packages/react-native-apk-install/android/build.gradle index 4697d451c..3f0ae57e9 100644 --- a/packages/react-native-apk-install/android/build.gradle +++ b/packages/react-native-apk-install/android/build.gradle @@ -1,85 +1,43 @@ buildscript { - // Buildscript is evaluated before everything else so we can't use getExtOrDefault - def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["ApkInstall_kotlinVersion"] - - repositories { - google() - mavenCentral() - } - - dependencies { - classpath "com.android.tools.build:gradle:7.2.1" - // noinspection DifferentKotlinGradleVersion - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -def isNewArchitectureEnabled() { - return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true" -} - -apply plugin: "com.android.library" -apply plugin: "kotlin-android" - - -def appProject = rootProject.allprojects.find { it.plugins.hasPlugin('com.android.application') } - -if (isNewArchitectureEnabled()) { - apply plugin: "com.facebook.react" -} + repositories { + jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } + } -def getExtOrDefault(name) { - return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["ApkInstall_" + name] + dependencies { + classpath 'com.android.tools.build:gradle:3.2.1' + } } -def getExtOrIntegerDefault(name) { - return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ApkInstall_" + name]).toInteger() -} +apply plugin: 'com.android.library' android { - compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + compileSdkVersion 28 - defaultConfig { - minSdkVersion getExtOrIntegerDefault("minSdkVersion") - targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") - buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() - } - buildTypes { - release { - minifyEnabled false + defaultConfig { + minSdkVersion 16 + targetSdkVersion 27 + versionCode 1 + versionName "1.0" + } + lintOptions { + abortOnError false } - } - - lintOptions { - disable "GradleCompatible" - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - } repositories { - mavenCentral() - google() + google() + jcenter() + mavenCentral() + maven { + url 'https://maven.google.com/' + name 'Google' + } } -def kotlin_version = getExtOrDefault("kotlinVersion") - dependencies { - // For < 0.71, this will be from the local maven repo - // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin - //noinspection GradleDynamicVersion - implementation "com.facebook.react:react-native:+" - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" -} - -if (isNewArchitectureEnabled()) { - react { - jsRootDir = file("../src/") - libraryName = "ApkInstall" - codegenJavaPackageName = "com.apkinstall" - } + implementation 'com.facebook.react:react-native:+' } diff --git a/packages/react-native-apk-install/android/gradle.properties b/packages/react-native-apk-install/android/gradle.properties deleted file mode 100644 index 6f67e8194..000000000 --- a/packages/react-native-apk-install/android/gradle.properties +++ /dev/null @@ -1,5 +0,0 @@ -ApkInstall_kotlinVersion=1.7.0 -ApkInstall_minSdkVersion=21 -ApkInstall_targetSdkVersion=31 -ApkInstall_compileSdkVersion=31 -ApkInstall_ndkversion=21.4.7075529 diff --git a/packages/react-native-apk-install/android/gradlew b/packages/react-native-apk-install/android/gradlew new file mode 100644 index 000000000..cccdd3d51 --- /dev/null +++ b/packages/react-native-apk-install/android/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/packages/react-native-apk-install/android/gradlew.bat b/packages/react-native-apk-install/android/gradlew.bat new file mode 100644 index 000000000..f9553162f --- /dev/null +++ b/packages/react-native-apk-install/android/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java new file mode 100644 index 000000000..1a288af35 --- /dev/null +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java @@ -0,0 +1,72 @@ +package com.apkinstall; + +import androidx.annotation.NonNull; + +import android.app.PendingIntent; +import android.app.admin.DevicePolicyManager; +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.IntentSender; +import android.content.pm.PackageInfo; +import android.content.pm.PackageInstaller; +import android.content.pm.PackageManager; + +import com.facebook.react.module.annotations.ReactModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.Callback; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.HashMap; +import java.util.Map; +import java.io.IOException; + +@ReactModule(name = ApkInstallModule.NAME) +public class ApkInstallModule extends ReactContextBaseJavaModule { + public static final String NAME = "ApkInstall"; + private ReactApplicationContext _context = null; + public ApkInstallModule(ReactApplicationContext reactContext) { + super(reactContext); + _context = reactContext; + } + + @Override + @NonNull + public String getName() { + return NAME; + } + + + @ReactMethod + public void installApk(String path) throws IOException { + + File file = new File(path); + InputStream in = new FileInputStream(file); + + PackageInstaller packageInstaller = _context.getPackageManager().getPackageInstaller(); + PackageInstaller.SessionParams params = new PackageInstaller.SessionParams( + PackageInstaller.SessionParams.MODE_FULL_INSTALL); + params.setAppPackageName("com.jbig.tonkeeper"); + // set params + int sessionId = packageInstaller.createSession(params); + PackageInstaller.Session session = packageInstaller.openSession(sessionId); + OutputStream out = session.openWrite("COSU", 0, -1); + byte[] buffer = new byte[65536]; + int c; + while ((c = in.read(buffer)) != -1) { + out.write(buffer, 0, c); + } + session.fsync(out); + in.close(); + out.close(); + + + } +} diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt deleted file mode 100644 index 06f4c1305..000000000 --- a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.kt +++ /dev/null @@ -1,45 +0,0 @@ -package com.apkinstall - -import android.content.Intent -import android.net.Uri -import android.os.Binder -import android.os.Build -import androidx.core.content.FileProvider -import com.facebook.react.bridge.Promise -import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.bridge.ReactContextBaseJavaModule -import com.facebook.react.bridge.ReactMethod -import java.io.File - - -class ApkInstallModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { - private var _context: ReactApplicationContext = reactContext - - override fun getName(): String { - return NAME - } - - @ReactMethod - fun installApk(path: String, promise: Promise) { - val toInstall: File = File(path) - if (Build.VERSION.SDK_INT >= 24) { - val callingPackageName: String? = _context.getPackageManager().getNameForUid(Binder.getCallingUid()) - val apkUri = FileProvider.getUriForFile(_context, "$callingPackageName.fileprovider", toInstall) - val intent = Intent(Intent.ACTION_INSTALL_PACKAGE) - intent.setData(apkUri) - intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - _context.startActivity(intent) - } else { - val apkUri = Uri.fromFile(toInstall) - val intent = Intent(Intent.ACTION_VIEW) - intent.setDataAndType(apkUri, "application/vnd.android.package-archive") - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - _context.startActivity(intent) - } - } - - - companion object { - const val NAME = "ApkInstall" - } -} diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.java b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.java new file mode 100644 index 000000000..9f424f563 --- /dev/null +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.java @@ -0,0 +1,28 @@ +package com.apkinstall; + +import androidx.annotation.NonNull; + +import com.facebook.react.ReactPackage; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.uimanager.ViewManager; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ApkInstallPackage implements ReactPackage { + @NonNull + @Override + public List createNativeModules(@NonNull ReactApplicationContext reactContext) { + List modules = new ArrayList<>(); + modules.add(new ApkInstallModule(reactContext)); + return modules; + } + + @NonNull + @Override + public List createViewManagers(@NonNull ReactApplicationContext reactContext) { + return Collections.emptyList(); + } +} diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.kt b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.kt deleted file mode 100644 index a096e7bf5..000000000 --- a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallPackage.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.apkinstall - -import com.facebook.react.ReactPackage -import com.facebook.react.bridge.NativeModule -import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.uimanager.ViewManager - - -class ApkInstallPackage : ReactPackage { - override fun createNativeModules(reactContext: ReactApplicationContext): List { - return listOf(ApkInstallModule(reactContext)) - } - - override fun createViewManagers(reactContext: ReactApplicationContext): List> { - return emptyList() - } -} diff --git a/packages/react-native-apk-install/babel.config.js b/packages/react-native-apk-install/babel.config.js deleted file mode 100644 index f842b77fc..000000000 --- a/packages/react-native-apk-install/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: ['module:metro-react-native-babel-preset'], -}; diff --git a/packages/react-native-apk-install/index.js b/packages/react-native-apk-install/index.js new file mode 100644 index 000000000..a2ecae4b6 --- /dev/null +++ b/packages/react-native-apk-install/index.js @@ -0,0 +1,10 @@ +import { NativeModules } from 'react-native'; + +const { ApkInstall } = NativeModules; + +export function installApk(path) { + if (Platform.OS === 'ios') { + return Promise.reject(new Error('Not supported on iOS')); + } + return ApkInstall.installApk(path); +} diff --git a/packages/react-native-apk-install/ios/ApkInstall.h b/packages/react-native-apk-install/ios/ApkInstall.h deleted file mode 100644 index 34ac94ef3..000000000 --- a/packages/react-native-apk-install/ios/ApkInstall.h +++ /dev/null @@ -1,12 +0,0 @@ - -#ifdef RCT_NEW_ARCH_ENABLED -#import "RNApkInstallSpec.h" - -@interface ApkInstall : NSObject -#else -#import - -@interface ApkInstall : NSObject -#endif - -@end diff --git a/packages/react-native-apk-install/ios/ApkInstall.mm b/packages/react-native-apk-install/ios/ApkInstall.mm deleted file mode 100644 index d55eea598..000000000 --- a/packages/react-native-apk-install/ios/ApkInstall.mm +++ /dev/null @@ -1,27 +0,0 @@ -#import "ApkInstall.h" - -@implementation ApkInstall -RCT_EXPORT_MODULE() - -// Example method -// See // https://reactnative.dev/docs/native-modules-ios -RCT_REMAP_METHOD(multiply, - multiplyWithA:(double)a withB:(double)b - withResolver:(RCTPromiseResolveBlock)resolve - withRejecter:(RCTPromiseRejectBlock)reject) -{ - NSNumber *result = @(a * b); - - resolve(result); -} - -// Don't compile this code when we build for the old architecture. -#ifdef RCT_NEW_ARCH_ENABLED -- (std::shared_ptr)getTurboModule: - (const facebook::react::ObjCTurboModule::InitParams &)params -{ - return std::make_shared(params); -} -#endif - -@end diff --git a/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.pbxproj b/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.pbxproj deleted file mode 100644 index 8ef1f6fc4..000000000 --- a/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.pbxproj +++ /dev/null @@ -1,274 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 5E555C0D2413F4C50049A1A2 /* ApkInstall.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* ApkInstall.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 58B511D91A9E6C8500147676 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 134814201AA4EA6300B7C361 /* libApkInstall.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libApkInstall.a; sourceTree = BUILT_PRODUCTS_DIR; }; - B3E7B5881CC2AC0600A0062D /* ApkInstall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ApkInstall.h; sourceTree = ""; }; - B3E7B5891CC2AC0600A0062D /* ApkInstall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ApkInstall.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 58B511D81A9E6C8500147676 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 134814211AA4EA7D00B7C361 /* Products */ = { - isa = PBXGroup; - children = ( - 134814201AA4EA6300B7C361 /* libApkInstall.a */, - ); - name = Products; - sourceTree = ""; - }; - 58B511D21A9E6C8500147676 = { - isa = PBXGroup; - children = ( - B3E7B5881CC2AC0600A0062D /* ApkInstall.h */, - B3E7B5891CC2AC0600A0062D /* ApkInstall.m */, - 134814211AA4EA7D00B7C361 /* Products */, - ); - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 58B511DA1A9E6C8500147676 /* ApkInstall */ = { - isa = PBXNativeTarget; - buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ApkInstall" */; - buildPhases = ( - 58B511D71A9E6C8500147676 /* Sources */, - 58B511D81A9E6C8500147676 /* Frameworks */, - 58B511D91A9E6C8500147676 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ApkInstall; - productName = RCTDataManager; - productReference = 134814201AA4EA6300B7C361 /* libApkInstall.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 58B511D31A9E6C8500147676 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0920; - ORGANIZATIONNAME = Facebook; - TargetAttributes = { - 58B511DA1A9E6C8500147676 = { - CreatedOnToolsVersion = 6.1.1; - }; - }; - }; - buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "ApkInstall" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = 58B511D21A9E6C8500147676; - productRefGroup = 58B511D21A9E6C8500147676; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 58B511DA1A9E6C8500147676 /* ApkInstall */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 58B511D71A9E6C8500147676 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B3E7B58A1CC2AC0600A0062D /* ApkInstall.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 58B511ED1A9E6C8500147676 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=*]" = arm64; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 58B511EE1A9E6C8500147676 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=*]" = arm64; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 58B511F01A9E6C8500147676 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(SRCROOT)/../../../React/**", - "$(SRCROOT)/../../react-native/React/**", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = ApkInstall; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 58B511F11A9E6C8500147676 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(SRCROOT)/../../../React/**", - "$(SRCROOT)/../../react-native/React/**", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = ApkInstall; - SKIP_INSTALL = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "ApkInstall" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 58B511ED1A9E6C8500147676 /* Debug */, - 58B511EE1A9E6C8500147676 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ApkInstall" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 58B511F01A9E6C8500147676 /* Debug */, - 58B511F11A9E6C8500147676 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 58B511D31A9E6C8500147676 /* Project object */; -} diff --git a/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 94b2795e2..000000000 --- a/packages/react-native-apk-install/ios/ApkInstall.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/packages/react-native-apk-install/lefthook.yml b/packages/react-native-apk-install/lefthook.yml deleted file mode 100644 index 065a491b0..000000000 --- a/packages/react-native-apk-install/lefthook.yml +++ /dev/null @@ -1,16 +0,0 @@ -pre-commit: - parallel: true - commands: - lint: - files: git diff --name-only @{push} - glob: "*.{js,ts,jsx,tsx}" - run: npx eslint {files} - types: - files: git diff --name-only @{push} - glob: "*.{js,ts, jsx, tsx}" - run: npx tsc --noEmit -commit-msg: - parallel: true - commands: - commitlint: - run: npx commitlint --edit diff --git a/packages/react-native-apk-install/lib/commonjs/index.js b/packages/react-native-apk-install/lib/commonjs/index.js deleted file mode 100644 index 49a3655e1..000000000 --- a/packages/react-native-apk-install/lib/commonjs/index.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.installApk = installApk; -var _reactNative = require("react-native"); -const LINKING_ERROR = `The package 'react-native-apk-install' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({ - ios: "- You have run 'pod install'\n", - default: '' -}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n'; -const ApkInstall = _reactNative.NativeModules.ApkInstall ? _reactNative.NativeModules.ApkInstall : new Proxy({}, { - get() { - throw new Error(LINKING_ERROR); - } -}); -function installApk(path) { - if (_reactNative.Platform.OS === 'ios') { - return Promise.reject(new Error('Not supported on iOS')); - } - return ApkInstall.installApk(path); -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/commonjs/index.js.map b/packages/react-native-apk-install/lib/commonjs/index.js.map deleted file mode 100644 index 74e71850c..000000000 --- a/packages/react-native-apk-install/lib/commonjs/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","ApkInstall","NativeModules","Proxy","get","Error","installApk","path","OS","Promise","reject"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GAChB,mFAAkF,GACnFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,UAAU,GAAGC,0BAAa,CAACD,UAAU,GACvCC,0BAAa,CAACD,UAAU,GACxB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEE,SAASU,UAAUA,CAACC,IAAY,EAAmB;EACxD,IAAIV,qBAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIL,KAAK,CAAC,sBAAsB,CAAC,CAAC;EAC1D;EACA,OAAOJ,UAAU,CAACK,UAAU,CAACC,IAAI,CAAC;AACpC"} \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/module/index.js b/packages/react-native-apk-install/lib/module/index.js deleted file mode 100644 index 202565418..000000000 --- a/packages/react-native-apk-install/lib/module/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import { NativeModules, Platform } from 'react-native'; -const LINKING_ERROR = `The package 'react-native-apk-install' doesn't seem to be linked. Make sure: \n\n` + Platform.select({ - ios: "- You have run 'pod install'\n", - default: '' -}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n'; -const ApkInstall = NativeModules.ApkInstall ? NativeModules.ApkInstall : new Proxy({}, { - get() { - throw new Error(LINKING_ERROR); - } -}); -export function installApk(path) { - if (Platform.OS === 'ios') { - return Promise.reject(new Error('Not supported on iOS')); - } - return ApkInstall.installApk(path); -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/module/index.js.map b/packages/react-native-apk-install/lib/module/index.js.map deleted file mode 100644 index c9200e3d3..000000000 --- a/packages/react-native-apk-install/lib/module/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","ApkInstall","Proxy","get","Error","installApk","path","OS","Promise","reject"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GAChB,mFAAkF,GACnFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,UAAU,GAAGN,aAAa,CAACM,UAAU,GACvCN,aAAa,CAACM,UAAU,GACxB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,SAASQ,UAAUA,CAACC,IAAY,EAAmB;EACxD,IAAIV,QAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,MAAM,CAAC,IAAIL,KAAK,CAAC,sBAAsB,CAAC,CAAC;EAC1D;EACA,OAAOH,UAAU,CAACI,UAAU,CAACC,IAAI,CAAC;AACpC"} \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts b/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts deleted file mode 100644 index cbbd668ab..000000000 --- a/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=index.test.d.ts.map \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts.map b/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts.map deleted file mode 100644 index 27410a3b6..000000000 --- a/packages/react-native-apk-install/lib/typescript/__tests__/index.test.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/index.test.tsx"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/typescript/index.d.ts b/packages/react-native-apk-install/lib/typescript/index.d.ts deleted file mode 100644 index c7ea5f0fe..000000000 --- a/packages/react-native-apk-install/lib/typescript/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare function installApk(path: string): Promise; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/react-native-apk-install/lib/typescript/index.d.ts.map b/packages/react-native-apk-install/lib/typescript/index.d.ts.map deleted file mode 100644 index d6d21b16e..000000000 --- a/packages/react-native-apk-install/lib/typescript/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKxD"} \ No newline at end of file diff --git a/packages/react-native-apk-install/package.json b/packages/react-native-apk-install/package.json index 219e20911..c5dd8a491 100644 --- a/packages/react-native-apk-install/package.json +++ b/packages/react-native-apk-install/package.json @@ -2,159 +2,16 @@ "name": "react-native-apk-install", "version": "0.1.0", "description": "test", - "main": "lib/commonjs/index", - "module": "lib/module/index", - "types": "lib/typescript/index.d.ts", - "react-native": "src/index", - "source": "src/index", - "files": [ - "src", - "lib", - "android", - "ios", - "cpp", - "*.podspec", - "!lib/typescript/example", - "!ios/build", - "!android/build", - "!android/gradle", - "!android/gradlew", - "!android/gradlew.bat", - "!android/local.properties", - "!**/__tests__", - "!**/__fixtures__", - "!**/__mocks__", - "!**/.*" - ], + "main": "index.js", "scripts": { - "test": "jest", - "typecheck": "tsc --noEmit", - "lint": "eslint \"**/*.{js,ts,tsx}\"", - "prepack": "bob build", - "release": "release-it", - "example": "yarn --cwd example", - "bootstrap": "yarn example && yarn install && yarn example pods", - "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build" + "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ - "react-native", - "ios", - "android" + "react-native" ], - "repository": "https://github.com/voloshinskii/react-native-apk-install", "author": "Max Voloshinskii (https://github.com/voloshinskii)", - "license": "MIT", - "bugs": { - "url": "https://github.com/voloshinskii/react-native-apk-install/issues" - }, - "homepage": "https://github.com/voloshinskii/react-native-apk-install#readme", - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "devDependencies": { - "@evilmartians/lefthook": "^1.2.2", - "@commitlint/config-conventional": "^17.0.2", - "@react-native-community/eslint-config": "^3.0.2", - "@release-it/conventional-changelog": "^5.0.0", - "@types/jest": "^28.1.2", - "@types/react": "~17.0.21", - "@types/react-native": "0.70.0", - "commitlint": "^17.0.2", - "del-cli": "^5.0.0", - "eslint": "^8.4.1", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-prettier": "^4.0.0", - "jest": "^28.1.1", - "pod-install": "^0.1.0", - "prettier": "^2.0.5", - "react": "18.2.0", - "react-native": "0.72.0", - "react-native-builder-bob": "^0.20.0", - "release-it": "^15.0.0", - "typescript": "^4.5.2" - }, - "resolutions": { - "@types/react": "17.0.21" - }, + "license": "", "peerDependencies": { - "react": "*", - "react-native": "*" - }, - "engines": { - "node": ">= 16.0.0" - }, - "packageManager": "^yarn@1.22.15", - "jest": { - "preset": "react-native", - "modulePathIgnorePatterns": [ - "/example/node_modules", - "/lib/" - ] - }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "release-it": { - "git": { - "commitMessage": "chore: release ${version}", - "tagName": "v${version}" - }, - "npm": { - "publish": true - }, - "github": { - "release": true - }, - "plugins": { - "@release-it/conventional-changelog": { - "preset": "angular" - } - } - }, - "eslintConfig": { - "root": true, - "extends": [ - "@react-native-community", - "prettier" - ], - "rules": { - "prettier/prettier": [ - "error", - { - "quoteProps": "consistent", - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "es5", - "useTabs": false - } - ] - } - }, - "eslintIgnore": [ - "node_modules/", - "lib/" - ], - "prettier": { - "quoteProps": "consistent", - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "es5", - "useTabs": false - }, - "react-native-builder-bob": { - "source": "src", - "output": "lib", - "targets": [ - "commonjs", - "module", - [ - "typescript", - { - "project": "tsconfig.build.json" - } - ] - ] + "react-native": "^0.41.2" } } diff --git a/packages/react-native-apk-install/react-native-apk-install.podspec b/packages/react-native-apk-install/react-native-apk-install.podspec deleted file mode 100644 index 3b4b00038..000000000 --- a/packages/react-native-apk-install/react-native-apk-install.podspec +++ /dev/null @@ -1,35 +0,0 @@ -require "json" - -package = JSON.parse(File.read(File.join(__dir__, "package.json"))) -folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' - -Pod::Spec.new do |s| - s.name = "react-native-apk-install" - s.version = package["version"] - s.summary = package["description"] - s.homepage = package["homepage"] - s.license = package["license"] - s.authors = package["author"] - - s.platforms = { :ios => "11.0" } - s.source = { :git => "https://github.com/voloshinskii/react-native-apk-install.git", :tag => "#{s.version}" } - - s.source_files = "ios/**/*.{h,m,mm}" - - s.dependency "React-Core" - - # Don't install the dependencies when we run `pod install` in the old architecture. - if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then - s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1" - s.pod_target_xcconfig = { - "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"", - "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1", - "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" - } - s.dependency "React-Codegen" - s.dependency "RCT-Folly" - s.dependency "RCTRequired" - s.dependency "RCTTypeSafety" - s.dependency "ReactCommon/turbomodule/core" - end -end diff --git a/packages/react-native-apk-install/scripts/bootstrap.js b/packages/react-native-apk-install/scripts/bootstrap.js deleted file mode 100644 index 172918947..000000000 --- a/packages/react-native-apk-install/scripts/bootstrap.js +++ /dev/null @@ -1,29 +0,0 @@ -const os = require('os'); -const path = require('path'); -const child_process = require('child_process'); - -const root = path.resolve(__dirname, '..'); -const args = process.argv.slice(2); -const options = { - cwd: process.cwd(), - env: process.env, - stdio: 'inherit', - encoding: 'utf-8', -}; - -if (os.type() === 'Windows_NT') { - options.shell = true; -} - -let result; - -if (process.cwd() !== root || args.length) { - // We're not in the root of the project, or additional arguments were passed - // In this case, forward the command to `yarn` - result = child_process.spawnSync('yarn', args, options); -} else { - // If `yarn` is run without arguments, perform bootstrap - result = child_process.spawnSync('yarn', ['bootstrap'], options); -} - -process.exitCode = result.status; diff --git a/packages/react-native-apk-install/src/__tests__/index.test.tsx b/packages/react-native-apk-install/src/__tests__/index.test.tsx deleted file mode 100644 index bf84291a5..000000000 --- a/packages/react-native-apk-install/src/__tests__/index.test.tsx +++ /dev/null @@ -1 +0,0 @@ -it.todo('write a test'); diff --git a/packages/react-native-apk-install/src/index.tsx b/packages/react-native-apk-install/src/index.tsx deleted file mode 100644 index a20017ed1..000000000 --- a/packages/react-native-apk-install/src/index.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { NativeModules, Platform } from 'react-native'; - -const LINKING_ERROR = - `The package 'react-native-apk-install' doesn't seem to be linked. Make sure: \n\n` + - Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) + - '- You rebuilt the app after installing the package\n' + - '- You are not using Expo Go\n'; - -const ApkInstall = NativeModules.ApkInstall - ? NativeModules.ApkInstall - : new Proxy( - {}, - { - get() { - throw new Error(LINKING_ERROR); - }, - } - ); - -export function installApk(path: string): Promise { - if (Platform.OS === 'ios') { - return Promise.reject(new Error('Not supported on iOS')); - } - return ApkInstall.installApk(path); -} diff --git a/packages/react-native-apk-install/tsconfig.build.json b/packages/react-native-apk-install/tsconfig.build.json deleted file mode 100644 index 999d3f3c8..000000000 --- a/packages/react-native-apk-install/tsconfig.build.json +++ /dev/null @@ -1,5 +0,0 @@ - -{ - "extends": "./tsconfig", - "exclude": ["example"] -} diff --git a/packages/react-native-apk-install/tsconfig.json b/packages/react-native-apk-install/tsconfig.json deleted file mode 100644 index 88d173bd1..000000000 --- a/packages/react-native-apk-install/tsconfig.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./", - "paths": { - "react-native-apk-install": ["./src/index"] - }, - "allowUnreachableCode": false, - "allowUnusedLabels": false, - "esModuleInterop": true, - "importsNotUsedAsValues": "error", - "forceConsistentCasingInFileNames": true, - "jsx": "react", - "lib": ["esnext"], - "module": "esnext", - "moduleResolution": "node", - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noImplicitUseStrict": false, - "noStrictGenericChecks": false, - "noUncheckedIndexedAccess": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "esnext" - } -} diff --git a/yarn.lock b/yarn.lock index e22782baf..e5a46b745 100644 --- a/yarn.lock +++ b/yarn.lock @@ -146,23 +146,11 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== -"@babel/compat-data@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.5.tgz#b1f6c86a02d85d2dd3368a2b67c09add8cd0c255" - integrity sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA== - "@babel/core@7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" @@ -206,27 +194,6 @@ json5 "^2.2.2" semver "^6.3.0" -"@babel/core@^7.18.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.5.tgz#d67d9747ecf26ee7ecd3ebae1ee22225fe902a89" - integrity sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helpers" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - "@babel/eslint-parser@^7.16.3", "@babel/eslint-parser@^7.18.2": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz#d79e822050f2de65d7f368a076846e7184234af7" @@ -246,16 +213,6 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" - integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - "@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -263,13 +220,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" @@ -278,13 +228,6 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" @@ -296,17 +239,6 @@ lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz#fc7319fc54c5e2fa14b2909cf3c5fd3046813e02" - integrity sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - "@babel/helper-create-class-features-plugin@^7.18.6": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" @@ -335,21 +267,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" - integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - semver "^6.3.0" - "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz#40411a8ab134258ad2cf3a3d987ec6aa0723cee5" @@ -358,15 +275,6 @@ "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.3.1" -"@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz#bb2bf0debfe39b831986a4efbf4066586819c6e4" - integrity sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - regexpu-core "^5.3.1" - semver "^6.3.0" - "@babel/helper-define-polyfill-provider@^0.3.3": version "0.3.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" @@ -379,28 +287,11 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8" - integrity sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" @@ -416,14 +307,6 @@ "@babel/template" "^7.20.7" "@babel/types" "^7.21.0" -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" @@ -431,13 +314,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" @@ -445,13 +321,6 @@ dependencies: "@babel/types" "^7.21.0" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" @@ -459,13 +328,6 @@ dependencies: "@babel/types" "^7.21.4" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2", "@babel/helper-module-transforms@^7.9.0": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" @@ -480,20 +342,6 @@ "@babel/traverse" "^7.21.2" "@babel/types" "^7.21.2" -"@babel/helper-module-transforms@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" - integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -501,23 +349,11 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== -"@babel/helper-plugin-utils@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" @@ -528,16 +364,6 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-remap-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" - integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" @@ -550,18 +376,6 @@ "@babel/traverse" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/helper-replace-supers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" - integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helper-simple-access@^7.20.2": version "7.20.2" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" @@ -569,13 +383,6 @@ dependencies: "@babel/types" "^7.20.2" -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" @@ -583,13 +390,6 @@ dependencies: "@babel/types" "^7.20.0" -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" @@ -597,43 +397,21 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-split-export-declaration@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz#88cf11050edb95ed08d596f7a044462189127a08" - integrity sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-string-parser@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - "@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - "@babel/helper-wrap-function@^7.18.9": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" @@ -644,16 +422,6 @@ "@babel/traverse" "^7.20.5" "@babel/types" "^7.20.5" -"@babel/helper-wrap-function@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" - integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/helpers@^7.21.0", "@babel/helpers@^7.9.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" @@ -663,15 +431,6 @@ "@babel/traverse" "^7.21.0" "@babel/types" "^7.21.0" -"@babel/helpers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.5.tgz#74bb4373eb390d1ceed74a15ef97767e63120820" - integrity sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -681,25 +440,11 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - "@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.9.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== -"@babel/parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" - integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -707,13 +452,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" - integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" @@ -723,15 +461,6 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-proposal-optional-chaining" "^7.20.7" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" - integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" - "@babel/plugin-proposal-async-generator-functions@^7.0.0", "@babel/plugin-proposal-async-generator-functions@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" @@ -742,7 +471,7 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.17.12", "@babel/plugin-proposal-class-properties@^7.18.0", "@babel/plugin-proposal-class-properties@^7.18.6": +"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -810,7 +539,7 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -818,7 +547,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.0.0", "@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": +"@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== @@ -826,7 +555,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.13", "@babel/plugin-proposal-object-rest-spread@^7.20.0", "@babel/plugin-proposal-object-rest-spread@^7.20.7": +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.13", "@babel/plugin-proposal-object-rest-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== @@ -845,7 +574,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.20.0", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -862,11 +591,6 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - "@babel/plugin-proposal-private-property-in-object@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" @@ -920,7 +644,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -948,13 +672,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" - integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-import-assertions@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" @@ -962,21 +679,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -997,13 +700,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-syntax-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -1067,21 +763,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-syntax-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" @@ -1089,23 +770,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-async-generator-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz#7336356d23380eda9a56314974f053a020dab0c3" - integrity sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" @@ -1115,15 +779,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-remap-async-to-generator" "^7.18.9" -"@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" @@ -1131,13 +786,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" @@ -1145,30 +793,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-static-block@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" - integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" @@ -1184,21 +808,6 @@ "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz#635d4e98da741fad814984639f4c0149eb0135e1" - integrity sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - globals "^11.1.0" - "@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" @@ -1207,14 +816,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/template" "^7.20.7" -"@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" @@ -1222,13 +823,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-destructuring@^7.20.0", "@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" @@ -1237,14 +831,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-dotall-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" @@ -1252,21 +838,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dynamic-import@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" - integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" @@ -1275,22 +846,6 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-export-namespace-from@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" - integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.16.0", "@babel/plugin-transform-flow-strip-types@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" @@ -1299,14 +854,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-flow" "^7.18.6" -"@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" - integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.22.5" - "@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e" @@ -1314,13 +861,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-for-of@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" @@ -1330,23 +870,6 @@ "@babel/helper-function-name" "^7.18.9" "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-json-strings@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" - integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" @@ -1354,21 +877,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-logical-assignment-operators@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" - integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" @@ -1376,13 +884,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-modules-amd@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" @@ -1391,14 +892,6 @@ "@babel/helper-module-transforms" "^7.20.11" "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-modules-amd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" - integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.21.2": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" @@ -1408,15 +901,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-simple-access" "^7.20.2" -"@babel/plugin-transform-modules-commonjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/plugin-transform-modules-systemjs@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" @@ -1427,16 +911,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-validator-identifier" "^7.19.1" -"@babel/plugin-transform-modules-systemjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" - integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== - dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" @@ -1445,14 +919,6 @@ "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-umd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" @@ -1461,14 +927,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.20.5" "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" @@ -1476,29 +934,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" - integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-transform-numeric-separator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" - integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-transform-object-assign@^7.16.7": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz#7830b4b6f83e1374a5afb9f6111bcfaea872cdd2" @@ -1506,17 +941,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-object-rest-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" - integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" - "@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" @@ -1525,31 +949,6 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - -"@babel/plugin-transform-optional-catch-binding@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" - integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-transform-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz#1003762b9c14295501beb41be72426736bedd1e0" - integrity sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" @@ -1557,31 +956,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-property-in-object@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" - integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" @@ -1589,13 +963,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-property-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-react-constant-elements@^7.12.1": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz#b32a5556100d424b25e388dd689050d78396884d" @@ -1610,13 +977,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-display-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" - integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-react-jsx-development@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" @@ -1624,13 +984,6 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.18.6" -"@babel/plugin-transform-react-jsx-development@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" - integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.22.5" - "@babel/plugin-transform-react-jsx-self@^7.0.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz#ec98d4a9baafc5a1eb398da4cf94afbb40254a54" @@ -1656,17 +1009,6 @@ "@babel/plugin-syntax-jsx" "^7.18.6" "@babel/types" "^7.21.0" -"@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" - integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" @@ -1675,14 +1017,6 @@ "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-pure-annotations@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" - integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-regenerator@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" @@ -1691,14 +1025,6 @@ "@babel/helper-plugin-utils" "^7.20.2" regenerator-transform "^0.15.1" -"@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" - "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" @@ -1706,13 +1032,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-runtime@^7.0.0", "@babel/plugin-transform-runtime@^7.16.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz#2e1da21ca597a7d01fc96b699b21d8d2023191aa" @@ -1732,13 +1051,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" @@ -1747,14 +1059,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" -"@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" @@ -1762,13 +1066,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" @@ -1776,13 +1073,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-typeof-symbol@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" @@ -1790,13 +1080,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-typescript@^7.21.3", "@babel/plugin-transform-typescript@^7.5.0": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" @@ -1807,16 +1090,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-typescript" "^7.20.0" -"@babel/plugin-transform-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz#5c0f7adfc1b5f38c4dbc8f79b1f0f8074134bd7d" - integrity sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.22.5" - "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" @@ -1824,21 +1097,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" @@ -1847,22 +1105,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.20.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.4.tgz#a952482e634a8dd8271a3fe5459a16eb10739c58" @@ -1944,92 +1186,6 @@ core-js-compat "^3.25.1" semver "^6.3.0" -"@babel/preset-env@^7.18.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.5.tgz#3da66078b181f3d62512c51cf7014392c511504e" - integrity sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.5" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.5" - "@babel/plugin-transform-classes" "^7.22.5" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.5" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.5" - "@babel/plugin-transform-for-of" "^7.22.5" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.5" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-modules-systemjs" "^7.22.5" - "@babel/plugin-transform-modules-umd" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" - "@babel/plugin-transform-numeric-separator" "^7.22.5" - "@babel/plugin-transform-object-rest-spread" "^7.22.5" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" - "@babel/plugin-transform-parameters" "^7.22.5" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.5" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.3" - babel-plugin-polyfill-corejs3 "^0.8.1" - babel-plugin-polyfill-regenerator "^0.5.0" - core-js-compat "^3.30.2" - semver "^6.3.0" - "@babel/preset-flow@^7.13.13": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.21.4.tgz#a5de2a1cafa61f0e0b3af9b30ff0295d38d3608f" @@ -2039,15 +1195,6 @@ "@babel/helper-validator-option" "^7.21.0" "@babel/plugin-transform-flow-strip-types" "^7.21.0" -"@babel/preset-flow@^7.17.12": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.5.tgz#876f24ab6b38bd79703a93f32020ca2162312784" - integrity sha512-ta2qZ+LSiGCrP5pgcGt8xMnnkXQrq8Sa4Ulhy06BOlF5QbLw9q5hIx7bn5MrsvyTGAfh6kTOo07Q+Pfld/8Y5Q== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-transform-flow-strip-types" "^7.22.5" - "@babel/preset-modules@^0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" @@ -2071,18 +1218,6 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" -"@babel/preset-react@^7.17.12": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6" - integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-transform-react-display-name" "^7.22.5" - "@babel/plugin-transform-react-jsx" "^7.22.5" - "@babel/plugin-transform-react-jsx-development" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations" "^7.22.5" - "@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.16.7": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz#b913ac8e6aa8932e47c21b01b4368d8aa239a529" @@ -2094,17 +1229,6 @@ "@babel/plugin-transform-modules-commonjs" "^7.21.2" "@babel/plugin-transform-typescript" "^7.21.3" -"@babel/preset-typescript@^7.17.12": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" - integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-typescript" "^7.22.5" - "@babel/register@^7.13.16": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.21.0.tgz#c97bf56c2472e063774f31d344c592ebdcefa132" @@ -2137,15 +1261,6 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - "@babel/traverse@^7.20.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4", "@babel/traverse@^7.9.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" @@ -2162,22 +1277,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" - integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - debug "^4.1.0" - globals "^11.1.0" - "@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" @@ -2196,15 +1295,6 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -2215,167 +1305,6 @@ resolved "https://registry.yarnpkg.com/@bogoslavskiy/react-native-steezy/-/react-native-steezy-1.0.4.tgz#6fa2eaeda04a6babca1440a00f3c542c60da985b" integrity sha512-0kEtqYE5zYYO9XWcUaXIFHaWwxkP9qgINnpcJeyCTL3NHbeCK/KcCrkflch+LHyiIgYL6ma8iOdEOCV5VT2Ueg== -"@commitlint/cli@^17.6.5": - version "17.6.5" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.6.5.tgz#3a8abd6499f9d4aeafe3bf9201338ccb868a14b9" - integrity sha512-3PQrWr/uo6lzF5k7n5QuosCYnzaxP9qGBp3jhWP0Vmsa7XA6wrl9ccPqfQyXpSbQE3zBROVO3TDqgPKe4tfmLQ== - dependencies: - "@commitlint/format" "^17.4.4" - "@commitlint/lint" "^17.6.5" - "@commitlint/load" "^17.5.0" - "@commitlint/read" "^17.5.1" - "@commitlint/types" "^17.4.4" - execa "^5.0.0" - lodash.isfunction "^3.0.9" - resolve-from "5.0.0" - resolve-global "1.0.0" - yargs "^17.0.0" - -"@commitlint/config-conventional@^17.0.2": - version "17.6.5" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.6.5.tgz#a8ec286e634a071329fe45dc4955032c2176aeb5" - integrity sha512-Xl9H9KLl86NZm5CYNTNF9dcz1xelE/EbvhWIWcYxG/rn3UWYWdWmmnX2q6ZduNdLFSGbOxzUpIx61j5zxbeXxg== - dependencies: - conventional-changelog-conventionalcommits "^5.0.0" - -"@commitlint/config-validator@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.4.tgz#d0742705719559a101d2ee49c0c514044af6d64d" - integrity sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg== - dependencies: - "@commitlint/types" "^17.4.4" - ajv "^8.11.0" - -"@commitlint/ensure@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.4.tgz#a36e7719bdb9c2b86c8b8c2e852b463a7bfda5fa" - integrity sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g== - dependencies: - "@commitlint/types" "^17.4.4" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - lodash.snakecase "^4.1.1" - lodash.startcase "^4.4.0" - lodash.upperfirst "^4.3.1" - -"@commitlint/execute-rule@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" - integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== - -"@commitlint/format@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.4.tgz#0f6e1b4d7a301c7b1dfd4b6334edd97fc050b9f5" - integrity sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ== - dependencies: - "@commitlint/types" "^17.4.4" - chalk "^4.1.0" - -"@commitlint/is-ignored@^17.6.5": - version "17.6.5" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.6.5.tgz#cea24cd2031fe7d242590b91fab3352750887194" - integrity sha512-CQvAPt9gX7cuUbMrIaIMKczfWJqqr6m8IlJs0F2zYwyyMTQ87QMHIj5jJ5HhOaOkaj6dvTMVGx8Dd1I4xgUuoQ== - dependencies: - "@commitlint/types" "^17.4.4" - semver "7.5.0" - -"@commitlint/lint@^17.6.5": - version "17.6.5" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.6.5.tgz#dfa437f14430c9874d6b1a3ba8a2d44b79780c02" - integrity sha512-BSJMwkE4LWXrOsiP9KoHG+/heSDfvOL/Nd16+ojTS/DX8HZr8dNl8l3TfVr/d/9maWD8fSegRGtBtsyGuugFrw== - dependencies: - "@commitlint/is-ignored" "^17.6.5" - "@commitlint/parse" "^17.6.5" - "@commitlint/rules" "^17.6.5" - "@commitlint/types" "^17.4.4" - -"@commitlint/load@^17.5.0": - version "17.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.5.0.tgz#be45dbbb50aaf5eb7e8e940e1e0d6171d1426bab" - integrity sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q== - dependencies: - "@commitlint/config-validator" "^17.4.4" - "@commitlint/execute-rule" "^17.4.0" - "@commitlint/resolve-extends" "^17.4.4" - "@commitlint/types" "^17.4.4" - "@types/node" "*" - chalk "^4.1.0" - cosmiconfig "^8.0.0" - cosmiconfig-typescript-loader "^4.0.0" - lodash.isplainobject "^4.0.6" - lodash.merge "^4.6.2" - lodash.uniq "^4.5.0" - resolve-from "^5.0.0" - ts-node "^10.8.1" - typescript "^4.6.4 || ^5.0.0" - -"@commitlint/message@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" - integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== - -"@commitlint/parse@^17.6.5": - version "17.6.5" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.6.5.tgz#7b84b328a6a94ca08ab7c98c491d9d3dab68f09d" - integrity sha512-0zle3bcn1Hevw5Jqpz/FzEWNo2KIzUbc1XyGg6WrWEoa6GH3A1pbqNF6MvE6rjuy6OY23c8stWnb4ETRZyN+Yw== - dependencies: - "@commitlint/types" "^17.4.4" - conventional-changelog-angular "^5.0.11" - conventional-commits-parser "^3.2.2" - -"@commitlint/read@^17.5.1": - version "17.5.1" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.5.1.tgz#fec903b766e2c41e3cefa80630040fcaba4f786c" - integrity sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg== - dependencies: - "@commitlint/top-level" "^17.4.0" - "@commitlint/types" "^17.4.4" - fs-extra "^11.0.0" - git-raw-commits "^2.0.11" - minimist "^1.2.6" - -"@commitlint/resolve-extends@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz#8f931467dea8c43b9fe38373e303f7c220de6fdc" - integrity sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A== - dependencies: - "@commitlint/config-validator" "^17.4.4" - "@commitlint/types" "^17.4.4" - import-fresh "^3.0.0" - lodash.mergewith "^4.6.2" - resolve-from "^5.0.0" - resolve-global "^1.0.0" - -"@commitlint/rules@^17.6.5": - version "17.6.5" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.6.5.tgz#fabcacdde923e26ac5ef90d4b3f8fc05526bbaa1" - integrity sha512-uTB3zSmnPyW2qQQH+Dbq2rekjlWRtyrjDo4aLFe63uteandgkI+cc0NhhbBAzcXShzVk0qqp8SlkQMu0mgHg/A== - dependencies: - "@commitlint/ensure" "^17.4.4" - "@commitlint/message" "^17.4.2" - "@commitlint/to-lines" "^17.4.0" - "@commitlint/types" "^17.4.4" - execa "^5.0.0" - -"@commitlint/to-lines@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" - integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== - -"@commitlint/top-level@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" - integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== - dependencies: - find-up "^5.0.0" - -"@commitlint/types@^17.4.4": - version "17.4.4" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.4.tgz#1416df936e9aad0d6a7bbc979ecc31e55dade662" - integrity sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ== - dependencies: - chalk "^4.1.0" - "@craco/craco@^7.0.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@craco/craco/-/craco-7.1.0.tgz#12bd394c7f0334e214302e4d35a1768f68042fbb" @@ -2563,36 +1492,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.2" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - "@eslint/js@8.37.0": version "8.37.0" resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== -"@eslint/js@8.43.0": - version "8.43.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" - integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== - -"@evilmartians/lefthook@^1.2.2": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@evilmartians/lefthook/-/lefthook-1.4.3.tgz#4eecebf8b5a33e0a876aa0e5b12feaf27ffa9e77" - integrity sha512-m9MMFdDqFpsctUev3pk4sGzjKXpYFZH9MTVSGrnAjo8HsP0XZ/L/UgPXY75BNUtqU+hvXCmBF8mxSLU93kjhvA== - "@expo/bunyan@4.0.0", "@expo/bunyan@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@expo/bunyan/-/bunyan-4.0.0.tgz#be0c1de943c7987a9fbd309ea0b1acd605890c7b" @@ -3074,15 +1978,6 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - "@humanwhocodes/config-array@^0.11.8": version "0.11.8" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" @@ -3102,16 +1997,6 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@hutson/parse-repository-url@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" - integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== - -"@iarna/toml@2.2.5": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" - integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -3198,41 +2083,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== - dependencies: - "@jest/console" "^28.1.3" - "@jest/reporters" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" - micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - "@jest/core@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" @@ -3284,16 +2134,6 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/environment@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" - integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== - dependencies: - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - jest-mock "^28.1.3" - "@jest/environment@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" @@ -3304,13 +2144,6 @@ "@types/node" "*" jest-mock "^29.5.0" -"@jest/expect-utils@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" - integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== - dependencies: - jest-get-type "^28.0.2" - "@jest/expect-utils@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" @@ -3318,14 +2151,6 @@ dependencies: jest-get-type "^29.4.3" -"@jest/expect@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" - integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== - dependencies: - expect "^28.1.3" - jest-snapshot "^28.1.3" - "@jest/expect@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" @@ -3346,18 +2171,6 @@ jest-mock "^27.5.1" jest-util "^27.5.1" -"@jest/fake-timers@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" - integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== - dependencies: - "@jest/types" "^28.1.3" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-util "^28.1.3" - "@jest/fake-timers@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" @@ -3379,15 +2192,6 @@ "@jest/types" "^27.5.1" expect "^27.5.1" -"@jest/globals@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" - integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/types" "^28.1.3" - "@jest/globals@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" @@ -3429,37 +2233,6 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - terminal-link "^2.0.0" - v8-to-istanbul "^9.0.1" - "@jest/reporters@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" @@ -3513,15 +2286,6 @@ graceful-fs "^4.2.9" source-map "^0.6.0" -"@jest/source-map@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" - integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== - dependencies: - "@jridgewell/trace-mapping" "^0.3.13" - callsites "^3.0.0" - graceful-fs "^4.2.9" - "@jest/source-map@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" @@ -3571,16 +2335,6 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" -"@jest/test-sequencer@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" - integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== - dependencies: - "@jest/test-result" "^28.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - slash "^3.0.0" - "@jest/test-sequencer@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" @@ -3612,27 +2366,6 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" - integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - "@jest/transform@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" @@ -3756,14 +2489,6 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@jridgewell/trace-mapping@^0.3.13": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - "@ledgerhq/devices@^5.48.0", "@ledgerhq/devices@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" @@ -3857,132 +2582,21 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@octokit/auth-token@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" - integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== - -"@octokit/core@^4.2.1": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" - integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== - dependencies: - "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^5.0.0" - "@octokit/request" "^6.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^7.0.0": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" - integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== - dependencies: - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^5.0.0": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" - integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== - dependencies: - "@octokit/request" "^6.0.0" - "@octokit/types" "^9.0.0" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" - integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== - -"@octokit/plugin-paginate-rest@^6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" - integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== - dependencies: - "@octokit/tsconfig" "^1.0.2" - "@octokit/types" "^9.2.3" - -"@octokit/plugin-request-log@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== - -"@octokit/plugin-rest-endpoint-methods@^7.1.2": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" - integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== - dependencies: - "@octokit/types" "^10.0.0" - -"@octokit/request-error@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" - integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== - dependencies: - "@octokit/types" "^9.0.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^6.0.0": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" - integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== - dependencies: - "@octokit/endpoint" "^7.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" - universal-user-agent "^6.0.0" - -"@octokit/rest@19.0.11": - version "19.0.11" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.11.tgz#2ae01634fed4bd1fca5b642767205ed3fd36177c" - integrity sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw== - dependencies: - "@octokit/core" "^4.2.1" - "@octokit/plugin-paginate-rest" "^6.1.2" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^7.1.2" - -"@octokit/tsconfig@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" - integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== - -"@octokit/types@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" - integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: - "@octokit/openapi-types" "^18.0.0" + "@gar/promisify" "^1.0.1" + semver "^7.3.5" -"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" - integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: - "@octokit/openapi-types" "^18.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" "@peculiar/asn1-schema@^2.3.6": version "2.3.6" @@ -4026,27 +2640,6 @@ schema-utils "^3.0.0" source-map "^0.7.3" -"@pnpm/config.env-replace@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" - integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== - -"@pnpm/network.ca-file@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" - integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== - dependencies: - graceful-fs "4.2.10" - -"@pnpm/npm-conf@^2.1.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" - integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== - dependencies: - "@pnpm/config.env-replace" "^1.1.0" - "@pnpm/network.ca-file" "^1.0.1" - config-chain "^1.1.11" - "@rainbow-me/animated-charts@git+ssh://git@github.com:tonkeeper/react-native-animated-charts#b0872b97e43c694414b37c95c042e44b92e2c0e9": version "1.0.0-alpha.6" resolved "git+ssh://git@github.com:tonkeeper/react-native-animated-charts#b0872b97e43c694414b37c95c042e44b92e2c0e9" @@ -4073,16 +2666,6 @@ dependencies: merge-options "^3.0.4" -"@react-native-community/cli-clean@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.2.tgz#45dc0aa379deeb13834b661f8eeb2e63ed34316f" - integrity sha512-OIKeP8fYtaa9qw4bpf1m3WJDWx4GvcxTYkyycH5SDu+pZjYWNix7XtKhwoL3Ol2NJLWxdY4LnmQG1yy8OGeIRw== - dependencies: - "@react-native-community/cli-tools" "11.3.2" - chalk "^4.1.2" - execa "^5.0.0" - prompts "^2.4.0" - "@react-native-community/cli-clean@^10.1.1": version "10.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz#4c73ce93a63a24d70c0089d4025daac8184ff504" @@ -4093,18 +2676,6 @@ execa "^1.0.0" prompts "^2.4.0" -"@react-native-community/cli-config@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.2.tgz#1bf268589f7261920dd65a78d7a0a1099792a7f9" - integrity sha512-hMAIR3QTjzDUmOSsbroXeNkZAcf8lpOGo1fj8CwJNfjuVho1RZZSlHKp8G7FU2sgqZmb8jWN+9tFvCRACXVYoQ== - dependencies: - "@react-native-community/cli-tools" "11.3.2" - chalk "^4.1.2" - cosmiconfig "^5.1.0" - deepmerge "^4.3.0" - glob "^7.1.3" - joi "^17.2.1" - "@react-native-community/cli-config@^10.1.1": version "10.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-10.1.1.tgz#08dcc5d7ca1915647dc06507ed853fe0c1488395" @@ -4117,13 +2688,6 @@ glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.2.tgz#35f29daf8354e8e516cb05ca471fb705780efdd7" - integrity sha512-pAKBcjrNl0iJoi42Ekqn3UH/QZ48pxfAIhsKkc3WmBqYetdByobhkYWfchHq3j9bilgiaBquPQaKzkg69kQw3w== - dependencies: - serve-static "^1.13.1" - "@react-native-community/cli-debugger-ui@^10.0.0": version "10.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz#4bb6d41c7e46449714dc7ba5d9f5b41ef0ea7c57" @@ -4131,30 +2695,6 @@ dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.2.tgz#d8eb867b80da66ce7b11e0e6e4e07ab152ffbf7b" - integrity sha512-tvmAQzz+qOJwtBCVEdhHweMeGaoHauGn3ef4tsHyqlDc0fF1K5No9DGXSESlLHpsopg066sIHWGq0PmAIeChiA== - dependencies: - "@react-native-community/cli-config" "11.3.2" - "@react-native-community/cli-platform-android" "11.3.2" - "@react-native-community/cli-platform-ios" "11.3.2" - "@react-native-community/cli-tools" "11.3.2" - chalk "^4.1.2" - command-exists "^1.2.8" - envinfo "^7.7.2" - execa "^5.0.0" - hermes-profile-transformer "^0.0.6" - ip "^1.1.5" - node-stream-zip "^1.9.1" - ora "^5.4.1" - prompts "^2.4.0" - semver "^6.3.0" - strip-ansi "^5.2.0" - sudo-prompt "^9.0.0" - wcwidth "^1.0.1" - yaml "^2.2.1" - "@react-native-community/cli-doctor@^10.2.2": version "10.2.5" resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-10.2.5.tgz#e5e28c66c2373f05a94b296a8ec637f8df736707" @@ -4177,17 +2717,6 @@ sudo-prompt "^9.0.0" wcwidth "^1.0.1" -"@react-native-community/cli-hermes@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.2.tgz#842b21a1cd3960295eed3591ab81e6f9e68aa606" - integrity sha512-IfzdYTjxu+BFEvweY9TXpLkOmWq0sxK8PTN+u0BduiT9cJRvcO0CxjOpLHAabVrSJc6o+7aLfEvogBmdN53Xfg== - dependencies: - "@react-native-community/cli-platform-android" "11.3.2" - "@react-native-community/cli-tools" "11.3.2" - chalk "^4.1.2" - hermes-profile-transformer "^0.0.6" - ip "^1.1.5" - "@react-native-community/cli-hermes@^10.2.0": version "10.2.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz#cc252f435b149f74260bc918ce22fdf58033a87e" @@ -4210,17 +2739,6 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-android@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.2.tgz#d9528306c3751f7d6d1fd3d5a56187708dd65829" - integrity sha512-NKxyBP0/gwL4/tNWrkevFSjeb7Dw2SByNfE9wFXBaAvZHxbxxJUjZOTOW3ueOXEpgOMU7IYYOiSOz2M10IRQ2A== - dependencies: - "@react-native-community/cli-tools" "11.3.2" - chalk "^4.1.2" - execa "^5.0.0" - glob "^7.1.3" - logkitty "^0.7.1" - "@react-native-community/cli-platform-ios@10.2.1": version "10.2.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz#2e6bd2cb6d48cbb8720d7b7265bb1bab80745f72" @@ -4233,18 +2751,6 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-platform-ios@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.2.tgz#cfecce27641950603d736e1f41fcae088e3ada1f" - integrity sha512-XPrfsI7dNY3f9crsKDDRIss+GHYX/snuYfMrjg4ZBHpYB5JdLepO8FJ5bFz+/s9KXDm045ijo8QFcIf3XJR0YQ== - dependencies: - "@react-native-community/cli-tools" "11.3.2" - chalk "^4.1.2" - execa "^5.0.0" - fast-xml-parser "^4.0.12" - glob "^7.1.3" - ora "^5.4.1" - "@react-native-community/cli-platform-ios@^10.2.5": version "10.2.5" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.5.tgz#7888c74b83099885bf9e6d52170c6e663ad971ee" @@ -4257,23 +2763,6 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.2.tgz#dbdf6d04b3c608a11dea833a9f882420352dda44" - integrity sha512-r1rZYCFfxZWIiUlukjMcDlxfCtm+QNYu+vFyVfE9yvN9gaNPBAi9029eVzkRkFuJ8Rxwr67HnYEAdGYLWQ1uIw== - dependencies: - "@react-native-community/cli-server-api" "11.3.2" - "@react-native-community/cli-tools" "11.3.2" - chalk "^4.1.2" - execa "^5.0.0" - metro "0.76.5" - metro-config "0.76.5" - metro-core "0.76.5" - metro-react-native-babel-transformer "0.76.5" - metro-resolver "0.76.5" - metro-runtime "0.76.5" - readline "^1.3.0" - "@react-native-community/cli-plugin-metro@^10.2.2": version "10.2.3" resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.3.tgz#419e0155a50951c3329818fba51cb5021a7294f1" @@ -4291,21 +2780,6 @@ metro-runtime "0.73.10" readline "^1.3.0" -"@react-native-community/cli-server-api@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.2.tgz#79f06606aa1cf7f84dc5c4c53f9a6de0d98142d4" - integrity sha512-6rMb37HYWOdmiMGCxsttHDLIP7KmcJjWvzTJzb2tm9P5FoMvSSmSOn981MuP835Lk1U+IdjVcwtsA247Im4mkg== - dependencies: - "@react-native-community/cli-debugger-ui" "11.3.2" - "@react-native-community/cli-tools" "11.3.2" - compression "^1.7.1" - connect "^3.6.5" - errorhandler "^1.5.1" - nocache "^3.0.1" - pretty-format "^26.6.2" - serve-static "^1.13.1" - ws "^7.5.1" - "@react-native-community/cli-server-api@^10.1.1": version "10.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz#e382269de281bb380c2e685431364fbbb8c1cb3a" @@ -4321,21 +2795,6 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.2.tgz#29c01e0978199e3d65a2ed234a629a9cf05db8ca" - integrity sha512-rAnFPzRITeEhBLwC73ucvWsYjsGyotSOI4c+k8t9wUqcIk1Q+RFnuWozGc13msOPdESvBHt2MPJBwXrtKgKn1g== - dependencies: - appdirsjs "^1.2.4" - chalk "^4.1.2" - find-up "^5.0.0" - mime "^2.4.1" - node-fetch "^2.6.0" - open "^6.2.0" - ora "^5.4.1" - semver "^6.3.0" - shell-quote "^1.7.3" - "@react-native-community/cli-tools@^10.1.1": version "10.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz#fa66e509c0d3faa31f7bb87ed7d42ad63f368ddd" @@ -4351,13 +2810,6 @@ semver "^6.3.0" shell-quote "^1.7.3" -"@react-native-community/cli-types@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.2.tgz#09531e83ddda582c7321752d1d80674578bc8ea7" - integrity sha512-jba1Z1YgC4JIHPADSqpl4ATsrJaOja1zlQCbH/yE8McHRjVBzeYGeHIvG5jw7iU5cw6FFifH5vvr23JPGk8oyw== - dependencies: - joi "^17.2.1" - "@react-native-community/cli-types@^10.0.0": version "10.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-10.0.0.tgz#046470c75ec18f8b3bd906e54e43a6f678e01a45" @@ -4388,35 +2840,12 @@ prompts "^2.4.0" semver "^6.3.0" -"@react-native-community/cli@11.3.2": - version "11.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.2.tgz#a14c341c2421a929a322b11d02a60f7ac8ff5ee9" - integrity sha512-riyMvro6HH2NLUhcnjUrOFwi2IHb6/GOC1WKf7GvGH1L4KnIo/jP4Sk9QV+pROg1Gd9btrCTnyY7WbWuPWJJ3w== - dependencies: - "@react-native-community/cli-clean" "11.3.2" - "@react-native-community/cli-config" "11.3.2" - "@react-native-community/cli-debugger-ui" "11.3.2" - "@react-native-community/cli-doctor" "11.3.2" - "@react-native-community/cli-hermes" "11.3.2" - "@react-native-community/cli-plugin-metro" "11.3.2" - "@react-native-community/cli-server-api" "11.3.2" - "@react-native-community/cli-tools" "11.3.2" - "@react-native-community/cli-types" "11.3.2" - chalk "^4.1.2" - commander "^9.4.1" - execa "^5.0.0" - find-up "^4.1.0" - fs-extra "^8.1.0" - graceful-fs "^4.1.3" - prompts "^2.4.0" - semver "^6.3.0" - "@react-native-community/clipboard@^1.5.1": version "1.5.1" resolved "https://registry.yarnpkg.com/@react-native-community/clipboard/-/clipboard-1.5.1.tgz#32abb3ea2eb91ee3f9c5fb1d32d5783253c9fabe" integrity sha512-AHAmrkLEH5UtPaDiRqoULERHh3oNv7Dgs0bTC0hO5Z2GdNokAMPT5w8ci8aMcRemcwbtdHjxChgtjbeA38GBdA== -"@react-native-community/eslint-config@^3.0.2", "@react-native-community/eslint-config@^3.2.0": +"@react-native-community/eslint-config@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz#42f677d5fff385bccf1be1d3b8faa8c086cf998d" integrity sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ== @@ -4472,64 +2901,21 @@ resolved "https://registry.yarnpkg.com/@react-native-firebase/messaging/-/messaging-17.4.1.tgz#11ed73db7eb5b026204a46760e1a1d3a3e8b2499" integrity sha512-Sn4YVD2yOqAZfrY5KMeIFoh2f+JaQX/V/I7dSQX5vZ8RjP9cWVPJlA/CdLdORCe0DhusZMBJJfsJzCteQi8iiw== -"@react-native/assets-registry@^0.72.0": - version "0.72.0" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.72.0.tgz#c82a76a1d86ec0c3907be76f7faf97a32bbed05d" - integrity sha512-Im93xRJuHHxb1wniGhBMsxLwcfzdYreSZVQGDoMJgkd6+Iky61LInGEHnQCTN0fKNYF1Dvcofb4uMmE1RQHXHQ== - "@react-native/assets@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== -"@react-native/codegen@^0.72.6": - version "0.72.6" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.72.6.tgz#029cf61f82f5c6872f0b2ce58f27c4239a5586c8" - integrity sha512-idTVI1es/oopN0jJT/0jB6nKdvTUKE3757zA5+NPXZTeB46CIRbmmos4XBiAec8ufu9/DigLPbHTYAaMNZJ6Ig== - dependencies: - "@babel/parser" "^7.20.0" - flow-parser "^0.206.0" - jscodeshift "^0.14.0" - nullthrows "^1.1.1" - -"@react-native/gradle-plugin@^0.72.10": - version "0.72.10" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.72.10.tgz#cd7ad2203039dc1f97fb849898d689442776b004" - integrity sha512-/3KZSdFOWpTCHlp468NOgNfSIhENEH44O3Xq+dmgp4kJ/WhTvCmI+7glJ0Io6T7AizcWlIuW5VKA2+Pb3GHXmg== - -"@react-native/js-polyfills@^0.72.1": - version "0.72.1" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.72.1.tgz#905343ef0c51256f128256330fccbdb35b922291" - integrity sha512-cRPZh2rBswFnGt5X5EUEPs0r+pAsXxYsifv/fgy9ZLQokuT52bPH+9xjDR+7TafRua5CttGW83wP4TntRcWNDA== - "@react-native/normalize-color@*", "@react-native/normalize-color@2.1.0", "@react-native/normalize-color@^2.0.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/normalize-colors@*": - version "0.73.0" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.73.0.tgz#23e15cf2a2b73ac7e5e6df8d5b86b173cfb35a3f" - integrity sha512-EmSCmJ0djeMJadeFsms6Pl/R85i9xSJMc+tyJu/GEMkKXBVyYQyqanK4RHFU0v8MO90OWj+SiFXjCkKYiJ6mkg== - -"@react-native/normalize-colors@^0.72.0": - version "0.72.0" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.72.0.tgz#14294b7ed3c1d92176d2a00df48456e8d7d62212" - integrity sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw== - "@react-native/polyfills@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa" integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== -"@react-native/virtualized-lists@^0.72.5": - version "0.72.5" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.72.5.tgz#a7b261357ec7e0e5aa97a24d4acab1d903811e09" - integrity sha512-AtKE3dez3lf89O87wC2ZglV5aPsifopQgn/UmFhXAwi18Yp1BJfEGh3sUqOPNgZNByYPAGxFANeZq44VATXeJA== - dependencies: - invariant "^2.2.4" - nullthrows "^1.1.1" - "@react-navigation/bottom-tabs@^6.3.2": version "6.5.7" resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.7.tgz#08470c96e0d11481422214bb98f0ff034038856c" @@ -4635,16 +3021,6 @@ redux-thunk "^2.4.2" reselect "^4.1.7" -"@release-it/conventional-changelog@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@release-it/conventional-changelog/-/conventional-changelog-5.1.1.tgz#5e3affbe8d1814fe47d89777e3375a8a90c073b5" - integrity sha512-QtbDBe36dQfzexAfDYrbLPvd5Cb5bMWmLcjcGhCOWBss7fe1/gCjoxDULVz+7N7G5Nu2UMeBwHcUp/w8RDh5VQ== - dependencies: - concat-stream "^2.0.0" - conventional-changelog "^3.1.25" - conventional-recommended-bump "^6.1.0" - semver "7.3.8" - "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -4735,11 +3111,6 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== -"@sindresorhus/is@^5.2.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.4.1.tgz#c4383ce702fb90531c3d310506bab89e70427c53" - integrity sha512-axlrvsHlHlFmKKMEg4VyvMzFr93JWJj4eIfXY1STVuO2fsImCa7ncaiG5gC8HKOX590AW5RtRsC41/B+OfrSqw== - "@sinonjs/commons@^1.7.0": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" @@ -4768,13 +3139,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" @@ -4977,13 +3341,6 @@ "@svgr/plugin-svgo" "^5.5.0" loader-utils "^2.0.0" -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - "@tonapps/tonlogin-client@0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@tonapps/tonlogin-client/-/tonlogin-client-0.2.5.tgz#08ef432209ee879d5d937272f97358dc7453da69" @@ -5195,11 +3552,6 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== -"@types/http-cache-semantics@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - "@types/http-proxy@^1.17.8": version "1.17.10" resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.10.tgz#e576c8e4a0cc5c6a138819025a88e167ebb38d6c" @@ -5239,14 +3591,6 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" -"@types/jest@^28.1.2": - version "28.1.8" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" - integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== - dependencies: - expect "^28.0.0" - pretty-format "^28.0.0" - "@types/jest@^29.2.1": version "29.5.0" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.0.tgz#337b90bbcfe42158f39c2fb5619ad044bbb518ac" @@ -5280,11 +3624,6 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/minimist@^1.2.0", "@types/minimist@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - "@types/node@*": version "18.15.11" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" @@ -5300,11 +3639,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.23.tgz#b6e934fe427eb7081d0015aad070acb3373c3c90" integrity sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g== -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -5350,13 +3684,6 @@ dependencies: "@types/react" "*" -"@types/react-native@0.70.0": - version "0.70.0" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.70.0.tgz#f8cdcdd542d36467d7591585b93d27e0563676e0" - integrity sha512-yBN7qJDfs0Vwr34NyfW1SWzalHQoYtpUWf0t4UJY9C5ft58BRr46+r92I0v+l3QX4VNsSRMHVAAWqLLCbIkM+g== - dependencies: - "@types/react" "*" - "@types/react-native@^0.70": version "0.70.13" resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.70.13.tgz#a38a1378e68dc25fe5911b09c49b8afffe191316" @@ -5383,15 +3710,6 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@~17.0.21": - version "17.0.62" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.62.tgz#2efe8ddf8533500ec44b1334dd1a97caa2f860e3" - integrity sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -5961,14 +4279,6 @@ Base64@~0.2.0: resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" integrity sha512-reGEWshDmTDQDsCec/HduOO9Wyj6yMOupMfhIf3ugN1TDlK2NQW4DDJSqNNtp380SNcvRfXtO8HSCQot0d0SMw== -JSONStream@^1.0.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - abab@^2.0.3, abab@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" @@ -6024,7 +4334,7 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.1.1, acorn-walk@^8.2.0: +acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== @@ -6044,16 +4354,6 @@ acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -acorn@^8.7.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" - integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== - -add-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== - address@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -6079,13 +4379,6 @@ agent-base@6: dependencies: debug "4" -agent-base@^7.0.1, agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== - dependencies: - debug "^4.3.4" - aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -6094,14 +4387,6 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -aggregate-error@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" - integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== - dependencies: - clean-stack "^4.0.0" - indent-string "^5.0.0" - ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -6136,7 +4421,7 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.11.0, ajv@^8.6.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -6156,13 +4441,6 @@ anser@^1.4.9: resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b" integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww== -ansi-align@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -6173,7 +4451,7 @@ ansi-escapes@^3.1.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.1, ansi-escapes@^4.3.2: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -6238,11 +4516,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -6346,11 +4619,6 @@ array-flatten@^2.1.0, array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== - array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" @@ -6404,17 +4672,6 @@ array.prototype.flatmap@^1.3.1: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" -array.prototype.map@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.5.tgz#6e43c2fee6c0fb5e4806da2dc92eb00970809e55" - integrity sha512-gfaKntvwqYIuC7mLLyv2wzZIJqrRhn5PZ9EfFejSx6a78sV7iDsGpG9P+3oUPtm1Rerqm6nrKS4FYuTIvWfo3g== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - array.prototype.reduce@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" @@ -6437,11 +4694,6 @@ array.prototype.tosorted@^1.1.1: es-shim-unscopables "^1.0.0" get-intrinsic "^1.1.3" -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - asap@~2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -6496,20 +4748,6 @@ ast-types@0.14.2: dependencies: tslib "^2.0.1" -ast-types@0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d" - integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== - dependencies: - tslib "^2.0.1" - -ast-types@^0.13.2: - version "0.13.4" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" - integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== - dependencies: - tslib "^2.0.1" - astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -6525,13 +4763,6 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-retry@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" - async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" @@ -6636,19 +4867,6 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" - integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== - dependencies: - "@jest/transform" "^28.1.3" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-jest@^29.2.1, babel-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" @@ -6704,16 +4922,6 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" - integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-jest-hoist@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" @@ -6758,15 +4966,6 @@ babel-plugin-polyfill-corejs2@^0.3.3: "@babel/helper-define-polyfill-provider" "^0.3.3" semver "^6.1.1" -babel-plugin-polyfill-corejs2@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz#75044d90ba5043a5fb559ac98496f62f3eb668fd" - integrity sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.4.0" - semver "^6.1.1" - babel-plugin-polyfill-corejs3@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" @@ -6775,14 +4974,6 @@ babel-plugin-polyfill-corejs3@^0.6.0: "@babel/helper-define-polyfill-provider" "^0.3.3" core-js-compat "^3.25.1" -babel-plugin-polyfill-corejs3@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a" - integrity sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.0" - core-js-compat "^3.30.1" - babel-plugin-polyfill-regenerator@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" @@ -6790,13 +4981,6 @@ babel-plugin-polyfill-regenerator@^0.4.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.3.3" -babel-plugin-polyfill-regenerator@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380" - integrity sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.0" - babel-plugin-react-native-web@~0.18.10: version "0.18.12" resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz#3e9764484492ea612a16b40135b07c2d05b7969d" @@ -6823,13 +5007,6 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== -babel-plugin-transform-flow-enums@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz#d1d0cc9bdc799c850ca110d0ddc9f21b9ec3ef25" - integrity sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ== - dependencies: - "@babel/plugin-syntax-flow" "^7.12.1" - babel-plugin-transform-react-remove-prop-types@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" @@ -6907,14 +5084,6 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" - integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== - dependencies: - babel-plugin-jest-hoist "^28.1.3" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" @@ -6978,21 +5147,11 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -basic-ftp@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228" - integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - better-opn@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-3.0.2.tgz#f96f35deaaf8f34144a4102651babcf00d1d8817" @@ -7010,7 +5169,7 @@ bfj@^7.0.2: hoopy "^0.1.4" tryer "^1.0.1" -big-integer@1.6.x, big-integer@^1.6.16, big-integer@^1.6.44: +big-integer@1.6.x, big-integer@^1.6.16: version "1.6.51" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== @@ -7051,15 +5210,6 @@ bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -bl@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" - integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== - dependencies: - buffer "^6.0.3" - inherits "^2.0.4" - readable-stream "^3.4.0" - bl@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/bl/-/bl-0.8.2.tgz#c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e" @@ -7160,20 +5310,6 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== -boxen@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.0.tgz#ba10a9ef4e73a9e220105b5f8c07a56d359a4cb4" - integrity sha512-ScG8CDo8dj7McqCZ5hz4dIBp20xj4unQ2lXIDa7ff6RcZElCpuNzutdwzKVvRikfNjm7CFAlR3HJHcoHkDOExQ== - dependencies: - ansi-align "^3.0.1" - camelcase "^7.0.1" - chalk "^5.2.0" - cli-boxes "^3.0.0" - string-width "^5.1.2" - type-fest "^2.13.0" - widest-line "^4.0.1" - wrap-ansi "^8.1.0" - bplist-creator@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e" @@ -7188,13 +5324,6 @@ bplist-parser@0.3.1: dependencies: big-integer "1.6.x" -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - bplist-parser@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.2.tgz#3ac79d67ec52c4c107893e0237eb787cbacbced7" @@ -7352,16 +5481,6 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4 node-releases "^2.0.8" update-browserslist-db "^1.0.10" -browserslist@^4.20.4: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== - dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" - bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -7447,13 +5566,6 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -7524,24 +5636,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-lookup@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" - integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== - -cacheable-request@^10.2.8: - version "10.2.11" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.11.tgz#c2d13a8cef0e4ad8022df761dfac9bb244cf897b" - integrity sha512-kn0t0oJnlFo1Nzl/AYQzS/oByMtmaqLasFUa7MUMsiTrIHy8TxSkx2KzWCybE3Nuz1F4sJRGnLAfUGsPe47viQ== - dependencies: - "@types/http-cache-semantics" "^4.0.1" - get-stream "^7.0.0" - http-cache-semantics "^4.1.1" - keyv "^4.5.2" - mimic-response "^4.0.0" - normalize-url "^8.0.0" - responselike "^3.0.0" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -7587,40 +5681,16 @@ camelcase-css@^2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase-keys@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" - integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== - dependencies: - camelcase "^6.3.0" - map-obj "^4.1.0" - quick-lru "^5.1.1" - type-fest "^1.2.1" - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1, camelcase@^6.3.0: +camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelcase@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" - integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== - camelize@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" @@ -7641,11 +5711,6 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001449, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz#13b6fe301a831fe666cce8ca4ef89352334133d5" integrity sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== -caniuse-lite@^1.0.30001503: - version "1.0.30001506" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001506.tgz#35bd814b310a487970c585430e9e80ee23faf14b" - integrity sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw== - case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" @@ -7660,11 +5725,6 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@5.2.0, chalk@^5.0.0, chalk@^5.0.1, chalk@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== - chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -7683,11 +5743,6 @@ char-regex@^2.0.0: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - charenc@0.0.2, charenc@~0.0.1: version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" @@ -7799,13 +5854,6 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -clean-stack@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" - integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== - dependencies: - escape-string-regexp "5.0.0" - clean-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b" @@ -7814,11 +5862,6 @@ clean-webpack-plugin@^3.0.0: "@types/webpack" "^4.4.31" del "^4.1.1" -cli-boxes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" - integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== - cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -7833,28 +5876,11 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" - integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== - dependencies: - restore-cursor "^4.0.0" - cli-spinners@^2.0.0, cli-spinners@^2.5.0: version "2.8.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.8.0.tgz#e97a3e2bd00e6d85aa0c13d7f9e3ce236f7787fc" integrity sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ== -cli-spinners@^2.6.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== - -cli-width@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" - integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw== - cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -8078,14 +6104,6 @@ commander@~2.13.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== -commitlint@^17.0.2: - version "17.6.5" - resolved "https://registry.yarnpkg.com/commitlint/-/commitlint-17.6.5.tgz#ecafcc2b7c823bff1a1ad7026d9dd5c0c7989c99" - integrity sha512-YRpFI8ABdvh0TbR6T72HaJFDn0TQdMVGgKnv6/GFkTdYTqzGo3ItTKn2bh/sxSVy/5ziOrVVAXtCy3PEq5Vs8w== - dependencies: - "@commitlint/cli" "^17.6.5" - "@commitlint/types" "^17.4.4" - common-path-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" @@ -8101,14 +6119,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - compare-versions@^3.4.0: version "3.6.0" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" @@ -8159,35 +6169,6 @@ concat-stream@^1.4.4, concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" - integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== - dependencies: - dot-prop "^6.0.1" - graceful-fs "^4.2.6" - unique-string "^3.0.0" - write-file-atomic "^3.0.3" - xdg-basedir "^5.0.1" - confusing-browser-globals@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" @@ -8235,173 +6216,6 @@ content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: - version "5.0.13" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-atom@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" - integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== - dependencies: - q "^1.5.1" - -conventional-changelog-codemirror@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" - integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== - dependencies: - q "^1.5.1" - -conventional-changelog-conventionalcommits@^4.5.0: - version "4.6.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz#0765490f56424b46f6cb4db9135902d6e5a36dc2" - integrity sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-conventionalcommits@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" - integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== - dependencies: - compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" - -conventional-changelog-core@^4.2.1: - version "4.2.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" - integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== - dependencies: - add-stream "^1.0.0" - conventional-changelog-writer "^5.0.0" - conventional-commits-parser "^3.2.0" - dateformat "^3.0.0" - get-pkg-repo "^4.0.0" - git-raw-commits "^2.0.8" - git-remote-origin-url "^2.0.0" - git-semver-tags "^4.1.1" - lodash "^4.17.15" - normalize-package-data "^3.0.0" - q "^1.5.1" - read-pkg "^3.0.0" - read-pkg-up "^3.0.0" - through2 "^4.0.0" - -conventional-changelog-ember@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" - integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== - dependencies: - q "^1.5.1" - -conventional-changelog-eslint@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" - integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== - dependencies: - q "^1.5.1" - -conventional-changelog-express@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" - integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== - dependencies: - q "^1.5.1" - -conventional-changelog-jquery@^3.0.11: - version "3.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" - integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== - dependencies: - q "^1.5.1" - -conventional-changelog-jshint@^2.0.9: - version "2.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" - integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== - dependencies: - compare-func "^2.0.0" - q "^1.5.1" - -conventional-changelog-preset-loader@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" - integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== - -conventional-changelog-writer@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz#e0757072f045fe03d91da6343c843029e702f359" - integrity sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ== - dependencies: - conventional-commits-filter "^2.0.7" - dateformat "^3.0.0" - handlebars "^4.7.7" - json-stringify-safe "^5.0.1" - lodash "^4.17.15" - meow "^8.0.0" - semver "^6.0.0" - split "^1.0.0" - through2 "^4.0.0" - -conventional-changelog@^3.1.25: - version "3.1.25" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.25.tgz#3e227a37d15684f5aa1fb52222a6e9e2536ccaff" - integrity sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ== - dependencies: - conventional-changelog-angular "^5.0.12" - conventional-changelog-atom "^2.0.8" - conventional-changelog-codemirror "^2.0.8" - conventional-changelog-conventionalcommits "^4.5.0" - conventional-changelog-core "^4.2.1" - conventional-changelog-ember "^2.0.9" - conventional-changelog-eslint "^3.0.9" - conventional-changelog-express "^2.0.6" - conventional-changelog-jquery "^3.0.11" - conventional-changelog-jshint "^2.0.9" - conventional-changelog-preset-loader "^2.3.4" - -conventional-commits-filter@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" - integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== - dependencies: - lodash.ismatch "^4.4.0" - modify-values "^1.0.0" - -conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" - integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== - dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -conventional-recommended-bump@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" - integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== - dependencies: - concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.3.4" - conventional-commits-filter "^2.0.7" - conventional-commits-parser "^3.2.0" - git-raw-commits "^2.0.8" - git-semver-tags "^4.1.1" - meow "^8.0.0" - q "^1.5.1" - convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" @@ -8463,13 +6277,6 @@ core-js-compat@^3.25.1: dependencies: browserslist "^4.21.5" -core-js-compat@^3.30.1, core-js-compat@^3.30.2: - version "3.31.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.0.tgz#4030847c0766cc0e803dcdfb30055d7ef2064bf1" - integrity sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw== - dependencies: - browserslist "^4.21.5" - core-js-pure@^3.23.3: version "3.30.0" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.0.tgz#41b6c42e5f363bd53d79999bd35093b17e42e1bf" @@ -8493,21 +6300,6 @@ cosmiconfig-typescript-loader@^1.0.0: cosmiconfig "^7" ts-node "^10.7.0" -cosmiconfig-typescript-loader@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" - integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== - -cosmiconfig@8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" - integrity sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.1.0, cosmiconfig@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -8540,16 +6332,6 @@ cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - craco-babel-loader@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/craco-babel-loader/-/craco-babel-loader-1.0.4.tgz#b887dff41f4ad1e8be84f90c1277af16475ada78" @@ -8606,7 +6388,7 @@ cross-fetch@^3.1.5: dependencies: node-fetch "2.6.7" -cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@7.0.3, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -8658,13 +6440,6 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -crypto-random-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" - integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== - dependencies: - type-fest "^1.0.1" - css-blank-pseudo@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" @@ -9002,21 +6777,6 @@ damerau-levenshtein@^1.0.8: resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -dargs@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" - integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== - -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - -data-uri-to-buffer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz#db89a9e279c2ffe74f50637a59a32fb23b3e4d7c" - integrity sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg== - data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -9036,11 +6796,6 @@ date-fns@^2.23.0: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== -dateformat@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== - dayjs@^1.8.15: version "1.11.7" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" @@ -9067,24 +6822,11 @@ debug@^3.1.0, debug@^3.2.5, debug@^3.2.7: dependencies: ms "^2.1.1" -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: +decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decamelize@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" - integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== - decimal.js@^10.2.1: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" @@ -9095,13 +6837,6 @@ decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - dedent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.6.0.tgz#0e6da8f0ce52838ef5cec5c8f9396b0c1b64a3cb" @@ -9162,29 +6897,11 @@ deepmerge@^3.2.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== -deepmerge@^4.2.2, deepmerge@^4.3.0: +deepmerge@^4.2.2: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -9207,11 +6924,6 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -defer-to-connect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - deferred-leveldown@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz#2cef1f111e1c57870d8bbb8af2650e587cd2f5b4" @@ -9224,11 +6936,6 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" @@ -9259,24 +6966,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -degenerator@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-4.0.3.tgz#5fa3e42206797ca78e0ee265f968aafc3bc84f49" - integrity sha512-2wY8vmCfxrQpe2PKGYdiWRre5HQRwsAXbAAWRbC+z2b80MEpnWc8A3a9k4TwqwN3Z/Fm3uhNm5vYUZIbMhyRxQ== - dependencies: - ast-types "^0.13.2" - escodegen "^1.8.1" - esprima "^4.0.0" - vm2 "^3.9.19" - -del-cli@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/del-cli/-/del-cli-5.0.0.tgz#fa79fd57e888ecaaf8a468d87e8a175142a24aa9" - integrity sha512-rENFhUaYcjoMODwFhhlON+ogN7DoG+4+GFN+bsA1XeDt4w2OKQnQadFP1thHSAlK9FAtl88qgP66wOV+eFZZiQ== - dependencies: - del "^7.0.0" - meow "^10.1.3" - del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -9290,7 +6979,7 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" -del@^6.0.0, del@^6.1.1: +del@^6.0.0: version "6.1.1" resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== @@ -9304,20 +6993,6 @@ del@^6.0.0, del@^6.1.1: rimraf "^3.0.2" slash "^3.0.0" -del@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-7.0.0.tgz#79db048bec96f83f344b46c1a66e35d9c09fe8ac" - integrity sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q== - dependencies: - globby "^13.1.2" - graceful-fs "^4.2.10" - is-glob "^4.0.3" - is-path-cwd "^3.0.0" - is-path-inside "^4.0.0" - p-map "^5.5.0" - rimraf "^3.0.2" - slash "^4.0.0" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -9338,15 +7013,6 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -deprecated-react-native-prop-types@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.1.0.tgz#8ed03a64c21b7fbdd2d000957b6838d4f38d2c66" - integrity sha512-WfepZHmRbbdTvhcolb8aOKEvQdcmTMn5tKLbqbXmkBvjFjRVWAYqsXk/DBsV8TZxws8SdGHLuHaJrHSQUPRdfw== - dependencies: - "@react-native/normalize-colors" "*" - invariant "*" - prop-types "*" - deprecated-react-native-prop-types@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz#c10c6ee75ff2b6de94bb127f142b814e6e08d9ab" @@ -9365,11 +7031,6 @@ deprecated-react-native-prop-types@^3.0.1: invariant "*" prop-types "*" -deprecation@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -9411,11 +7072,6 @@ diff-sequences@^27.5.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== - diff-sequences@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" @@ -9624,20 +7280,13 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^5.1.0, dot-prop@^5.2.0: +dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== - dependencies: - is-obj "^2.0.0" - dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" @@ -9668,11 +7317,6 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - ecdsa-sig-formatter@1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -9697,11 +7341,6 @@ electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.284: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.352.tgz#be96bd7c2f4b980deebc9338a49a67430a33ed73" integrity sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q== -electron-to-chromium@^1.4.431: - version "1.4.436" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.436.tgz#2aa6e1644693d25cb438a873fba72ec901e1be30" - integrity sha512-aktOxo8fnrMC8vOIBMVS3PXbT1nrPQ+SouUuN7Y0a+Rw3pOMrvIV92Ybnax7x4tugA+ZpYA5fOHTby7ama8OQQ== - elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -9835,7 +7474,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -errorhandler@^1.5.0, errorhandler@^1.5.1: +errorhandler@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.1.tgz#b9ba5d17cf90744cd1e851357a6e75bf806a9a91" integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A== @@ -9888,7 +7527,7 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-get-iterator@^1.0.2, es-get-iterator@^1.1.2: +es-get-iterator@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== @@ -9938,11 +7577,6 @@ escalade@^3.0.2, escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-goat@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" - integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -9953,11 +7587,6 @@ escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -9968,18 +7597,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^1.8.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -10114,7 +7731,7 @@ eslint-plugin-jsx-a11y@^6.5.1: object.fromentries "^2.0.6" semver "^6.3.0" -eslint-plugin-prettier@^4.0.0, eslint-plugin-prettier@^4.2.1: +eslint-plugin-prettier@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== @@ -10191,14 +7808,6 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" @@ -10209,11 +7818,6 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== -eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== - eslint-webpack-plugin@^3.1.1: version "3.2.0" resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" @@ -10271,51 +7875,6 @@ eslint@^8.19.0, eslint@^8.3.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -eslint@^8.4.1: - version "8.43.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" - integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.43.0" - "@humanwhocodes/config-array" "^0.11.10" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - espree@^9.5.1: version "9.5.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" @@ -10325,15 +7884,6 @@ espree@^9.5.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.0" -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -10353,7 +7903,7 @@ esrecurse@^4.1.0, esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -10424,21 +7974,6 @@ exec-async@^2.2.0: resolved "https://registry.yarnpkg.com/exec-async/-/exec-async-2.2.0.tgz#c7c5ad2eef3478d38390c6dd3acfe8af0efc8301" integrity sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw== -execa@7.1.1, execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -10452,22 +7987,7 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^5.0.0, execa@^5.1.1: +execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -10510,17 +8030,6 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -expect@^28.0.0, expect@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" - integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== - dependencies: - "@jest/expect-utils" "^28.1.3" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - expect@^29.0.0, expect@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" @@ -10750,15 +8259,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -10788,7 +8288,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.1.1, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.4, fast-glob@^3.2.5, fast-glob@^3.2.9: +fast-glob@^3.1.1, fast-glob@^3.2.12, fast-glob@^3.2.4, fast-glob@^3.2.5, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -10874,14 +8374,6 @@ fbjs@^3.0.0, fbjs@^3.0.4: setimmediate "^1.0.5" ua-parser-js "^0.7.30" -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - fetch-retry@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-4.1.1.tgz#fafe0bb22b54f4d0a9c788dff6dd7f8673ca63f3" @@ -10892,14 +8384,6 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" - integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== - dependencies: - escape-string-regexp "^5.0.0" - is-unicode-supported "^1.2.0" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -11027,13 +8511,6 @@ find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -11069,11 +8546,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -flow-enums-runtime@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.5.tgz#95884bfcc82edaf27eef7e1dd09732331cfbafbc" - integrity sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ== - flow-parser@0.*: version "0.203.1" resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.203.1.tgz#04180e57e6b8b658212bd4371017d11bf917b257" @@ -11089,11 +8561,6 @@ flow-parser@^0.185.0: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.185.2.tgz#cb7ee57f77377d6c5d69a469e980f6332a15e492" integrity sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ== -flow-parser@^0.206.0: - version "0.206.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.206.0.tgz#f4f794f8026535278393308e01ea72f31000bfef" - integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w== - flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -11180,11 +8647,6 @@ fork-ts-checker-webpack-plugin@^6.5.0: semver "^7.3.2" tapable "^1.0.0" -form-data-encoder@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" - integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== - form-data@^3.0.0, form-data@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -11203,13 +8665,6 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -11260,7 +8715,7 @@ fs-extra@9.0.0: jsonfile "^6.0.1" universalify "^1.0.0" -fs-extra@^10.0.0, fs-extra@^10.1.0: +fs-extra@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -11269,15 +8724,6 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -11402,16 +8848,6 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-pkg-repo@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" - integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== - dependencies: - "@hutson/parse-repository-url" "^3.0.0" - hosted-git-info "^4.0.0" - through2 "^2.0.0" - yargs "^16.2.0" - get-port@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" @@ -11419,28 +8855,16 @@ get-port@^3.2.0: get-stream@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-stream@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-7.0.0.tgz#f5695721f481f5581beb9d11cb90c41ddfceea18" - integrity sha512-ql6FW5b8tgMYvI4UaoxG3EQN3VyZ6VeQpxNBGg5BZ4xD4u+HJeprzhMMA4OCBEGQgSR+m87pstWMpiVW64W8Fw== - get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -11449,16 +8873,6 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-uri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.1.tgz#cff2ba8d456c3513a04b70c45de4dbcca5b1527c" - integrity sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q== - dependencies: - basic-ftp "^5.0.2" - data-uri-to-buffer "^5.0.1" - debug "^4.3.4" - fs-extra "^8.1.0" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -11469,55 +8883,6 @@ getenv@^1.0.0: resolved "https://registry.yarnpkg.com/getenv/-/getenv-1.0.0.tgz#874f2e7544fbca53c7a4738f37de8605c3fcfc31" integrity sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg== -git-raw-commits@^2.0.11, git-raw-commits@^2.0.8: - version "2.0.11" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" - integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== - dependencies: - dargs "^7.0.0" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" - -git-remote-origin-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" - integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== - dependencies: - gitconfiglocal "^1.0.0" - pify "^2.3.0" - -git-semver-tags@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" - integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== - dependencies: - meow "^8.0.0" - semver "^6.0.0" - -git-up@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" - integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== - dependencies: - is-ssh "^1.4.0" - parse-url "^8.1.0" - -git-url-parse@13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" - integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== - dependencies: - git-up "^7.0.0" - -gitconfiglocal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" - integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== - dependencies: - ini "^1.3.2" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -11568,7 +8933,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -11580,31 +8945,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -global-dirs@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== - dependencies: - ini "^1.3.4" - -global-dirs@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" - integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== - dependencies: - ini "2.0.0" - global-modules@2.0.0, global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -11652,17 +8992,6 @@ globby@11.0.1: merge2 "^1.3.0" slash "^3.0.0" -globby@13.1.4: - version "13.1.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" - integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -11675,17 +9004,6 @@ globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.1.2: - version "13.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.0.tgz#7dd5678d765c4680c2e6d106230d86cb727cb1af" - integrity sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -11704,29 +9022,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -got@12.6.1, got@^12.1.0: - version "12.6.1" - resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" - integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== - dependencies: - "@sindresorhus/is" "^5.2.0" - "@szmarczak/http-timer" "^5.0.1" - cacheable-lookup "^7.0.0" - cacheable-request "^10.2.8" - decompress-response "^6.0.0" - form-data-encoder "^2.1.2" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^3.0.0" - -graceful-fs@4.2.10: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -11736,11 +9032,6 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - graphql-tag@^2.10.1: version "2.12.6" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" @@ -11773,23 +9064,6 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - harmony-reflect@^1.4.6: version "1.6.2" resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" @@ -11870,11 +9144,6 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has-yarn@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" - integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== - has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -11949,11 +9218,6 @@ hoopy@^0.1.4: resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - hosted-git-info@^3.0.2: version "3.0.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" @@ -11961,13 +9225,6 @@ hosted-git-info@^3.0.2: dependencies: lru-cache "^6.0.0" -hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -12101,11 +9358,6 @@ http-browserify@^1.7.0: Base64 "~0.2.0" inherits "~2.0.1" -http-cache-semantics@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" @@ -12146,14 +9398,6 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" - integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== - dependencies: - agent-base "^7.1.0" - debug "^4.3.4" - http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -12184,14 +9428,6 @@ http-proxy@^1.17.0, http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" -http2-wrapper@^2.1.10: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" - integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" @@ -12210,29 +9446,11 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: agent-base "6" debug "4" -https-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz#75cb70d04811685667183b31ab158d006750418a" - integrity sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw== - dependencies: - agent-base "^7.0.2" - debug "4" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - hyphenate-style-name@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" @@ -12247,7 +9465,7 @@ i18n-js@^4.1.1: lodash "*" make-plural "*" -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -12305,7 +9523,7 @@ image-size@^0.6.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA== -image-size@^1.0.0, image-size@^1.0.2: +image-size@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== @@ -12338,11 +9556,6 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -12369,11 +9582,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -12412,12 +9620,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -12430,27 +9633,6 @@ inline-style-prefixer@^6.0.1: css-in-js-utils "^3.1.0" fast-loops "^1.1.3" -inquirer@9.2.6: - version "9.2.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.6.tgz#802a61ee3eefbf1cb82a7fb6c2ae95a106050e01" - integrity sha512-y71l237eJJKS4rl7sQcEUiMhrR0pB/ZnRMMTxLpjJhWL4hdWCT03a6jJnC1w6qIPSRZWEozuieGt3v7XaEJYFw== - dependencies: - ansi-escapes "^4.3.2" - chalk "^5.2.0" - cli-cursor "^3.1.0" - cli-width "^4.0.0" - external-editor "^3.0.3" - figures "^5.0.0" - lodash "^4.17.21" - mute-stream "1.0.0" - ora "^5.4.1" - run-async "^3.0.0" - rxjs "^7.8.1" - string-width "^4.2.3" - strip-ansi "^6.0.1" - through "^2.3.6" - wrap-ansi "^6.0.1" - int64-buffer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/int64-buffer/-/int64-buffer-1.0.1.tgz#c78d841b444cadf036cd04f8683696c740f15dca" @@ -12473,11 +9655,6 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - invariant@*, invariant@2.2.4, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -12512,11 +9689,6 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -12537,14 +9709,6 @@ is-absolute-url@^3.0.3: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -12625,13 +9789,6 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-ci@3.0.1, is-ci@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -12658,13 +9815,6 @@ is-core-module@^2.11.0, is-core-module@^2.9.0: dependencies: has "^1.0.3" -is-core-module@^2.5.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -12714,11 +9864,6 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -12756,22 +9901,6 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-git-dirty@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-git-dirty/-/is-git-dirty-2.0.2.tgz#696fe5a7e60710de75a1b7d2ae8c7ee9cc0bc57b" - integrity sha512-U3YCo+GKR/rDsY7r0v/LBICbQwsx859tDQnAT+v0E/zCDeWbQ1TUt1FtyExeyik7VIJlYOLHCIifLdz71HDalg== - dependencies: - execa "^4.0.3" - is-git-repository "^2.0.0" - -is-git-repository@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-git-repository/-/is-git-repository-2.0.0.tgz#fa036007fe9697198c2c89dac4dd8304a6101e1c" - integrity sha512-HDO50CG5suIAcmqG4F1buqVXEZRPn+RaXIn9pFKq/947FBo2bCRwK7ZluEVZOy99a4IQyqsjbKEpAiOXCccOHQ== - dependencies: - execa "^4.0.3" - is-absolute "^1.0.0" - is-glob@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -12798,31 +9927,11 @@ is-hex-prefixed@1.0.0: resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-installed-globally@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" - integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== - dependencies: - global-dirs "^3.0.0" - is-path-inside "^3.0.2" - is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-interactive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" - integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== - is-invalid-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz#307a855b3cf1a938b44ea70d2c61106053714f34" @@ -12845,11 +9954,6 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -is-npm@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" - integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== - is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -12889,11 +9993,6 @@ is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-3.0.0.tgz#889b41e55c8588b1eb2a96a61d05740a674521c7" - integrity sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA== - is-path-in-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" @@ -12913,16 +10012,6 @@ is-path-inside@^3.0.2, is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-path-inside@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" - integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" @@ -12940,11 +10029,6 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -12963,13 +10047,6 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -12992,13 +10069,6 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-ssh@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" - integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== - dependencies: - protocols "^2.0.1" - is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -13009,11 +10079,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -13028,13 +10093,6 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-text-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== - dependencies: - text-extensions "^1.0.0" - is-typed-array@^1.1.10, is-typed-array@^1.1.9: version "1.1.10" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" @@ -13051,23 +10109,11 @@ is-typedarray@^1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" - integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== - is-valid-path@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" @@ -13095,7 +10141,7 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -13112,11 +10158,6 @@ is-wsl@^2.0.0, is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -is-yarn-global@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" - integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== - is@~0.2.6: version "0.2.7" resolved "https://registry.yarnpkg.com/is/-/is-0.2.7.tgz#3b34a2c48f359972f35042849193ae7264b63562" @@ -13172,17 +10213,6 @@ isomorphic-webcrypto@2.3.8, isomorphic-webcrypto@^2.3.8: expo-random "*" react-native-securerandom "^0.1.1" -issue-parser@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-6.0.0.tgz#b1edd06315d4f2044a9755daf85fdafde9b4014a" - integrity sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA== - dependencies: - lodash.capitalize "^4.2.1" - lodash.escaperegexp "^4.1.2" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.uniqby "^4.7.0" - istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -13225,19 +10255,6 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iterate-iterator@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.2.tgz#551b804c9eaa15b847ea6a7cdc2f5bf1ec150f91" - integrity sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw== - -iterate-value@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" - integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== - dependencies: - es-get-iterator "^1.0.2" - iterate-iterator "^1.0.1" - jake@^10.8.5: version "10.8.5" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" @@ -13257,14 +10274,6 @@ jest-changed-files@^27.5.1: execa "^5.0.0" throat "^6.0.1" -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== - dependencies: - execa "^5.0.0" - p-limit "^3.1.0" - jest-changed-files@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" @@ -13298,31 +10307,6 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-circus@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" - integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - p-limit "^3.1.0" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-circus@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" @@ -13367,24 +10351,6 @@ jest-cli@^27.5.1: prompts "^2.0.1" yargs "^16.2.0" -jest-cli@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== - dependencies: - "@jest/core" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - prompts "^2.0.1" - yargs "^17.3.1" - jest-cli@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" @@ -13433,34 +10399,6 @@ jest-config@^27.5.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-config@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" - integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.3" - "@jest/types" "^28.1.3" - babel-jest "^28.1.3" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^28.1.3" - jest-environment-node "^28.1.3" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-runner "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^28.1.3" - slash "^3.0.0" - strip-json-comments "^3.1.1" - jest-config@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" @@ -13499,16 +10437,6 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== - dependencies: - chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - jest-diff@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" @@ -13526,13 +10454,6 @@ jest-docblock@^27.5.1: dependencies: detect-newline "^3.0.0" -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== - dependencies: - detect-newline "^3.0.0" - jest-docblock@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" @@ -13551,17 +10472,6 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" -jest-each@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" - integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== - dependencies: - "@jest/types" "^28.1.3" - chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.3" - pretty-format "^28.1.3" - jest-each@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" @@ -13598,18 +10508,6 @@ jest-environment-node@^27.5.1: jest-mock "^27.5.1" jest-util "^27.5.1" -jest-environment-node@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" - integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - jest-mock "^28.1.3" - jest-util "^28.1.3" - jest-environment-node@^29.2.1, jest-environment-node@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" @@ -13632,11 +10530,6 @@ jest-get-type@^27.5.1: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== - jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" @@ -13656,28 +10549,9 @@ jest-haste-map@^27.5.1: jest-regex-util "^27.5.1" jest-serializer "^27.5.1" jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-haste-map@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" - integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== - dependencies: - "@jest/types" "^28.1.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-worker "^27.5.1" micromatch "^4.0.4" - walker "^1.0.8" + walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" @@ -13731,14 +10605,6 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-leak-detector@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" - integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== - dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - jest-leak-detector@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" @@ -13757,16 +10623,6 @@ jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== - dependencies: - chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - jest-matcher-utils@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" @@ -13830,14 +10686,6 @@ jest-mock@^27.5.1: "@jest/types" "^27.5.1" "@types/node" "*" -jest-mock@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" - integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - jest-mock@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" @@ -13857,7 +10705,7 @@ jest-regex-util@^27.0.6, jest-regex-util@^27.5.1: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== -jest-regex-util@^28.0.0, jest-regex-util@^28.0.2: +jest-regex-util@^28.0.0: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== @@ -13876,14 +10724,6 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== - dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" - jest-resolve-dependencies@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" @@ -13908,21 +10748,6 @@ jest-resolve@^27.4.2, jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-resolve@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" - integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-pnp-resolver "^1.2.2" - jest-util "^28.1.3" - jest-validate "^28.1.3" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - jest-resolve@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" @@ -13965,33 +10790,6 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" -jest-runner@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" - integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== - dependencies: - "@jest/console" "^28.1.3" - "@jest/environment" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.10.2" - graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.3" - jest-haste-map "^28.1.3" - jest-leak-detector "^28.1.3" - jest-message-util "^28.1.3" - jest-resolve "^28.1.3" - jest-runtime "^28.1.3" - jest-util "^28.1.3" - jest-watcher "^28.1.3" - jest-worker "^28.1.3" - p-limit "^3.1.0" - source-map-support "0.5.13" - jest-runner@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" @@ -14047,34 +10845,6 @@ jest-runtime@^27.5.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-runtime@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" - integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/globals" "^28.1.3" - "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" - strip-bom "^4.0.0" - jest-runtime@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" @@ -14139,35 +10909,6 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" -jest-snapshot@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" - integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^28.1.3" - graceful-fs "^4.2.9" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - natural-compare "^1.4.0" - pretty-format "^28.1.3" - semver "^7.3.5" - jest-snapshot@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" @@ -14257,19 +10998,7 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-validate@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" - integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== - dependencies: - "@jest/types" "^28.1.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^28.0.2" - leven "^3.1.0" - pretty-format "^28.1.3" - -jest-validate@^29.2.1, jest-validate@^29.5.0: +jest-validate@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== @@ -14307,7 +11036,7 @@ jest-watcher@^27.5.1: jest-util "^27.5.1" string-length "^4.0.1" -jest-watcher@^28.0.0, jest-watcher@^28.1.3: +jest-watcher@^28.0.0: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== @@ -14353,7 +11082,7 @@ jest-worker@^27.0.2, jest-worker@^27.2.0, jest-worker@^27.4.5, jest-worker@^27.5 merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^28.0.2, jest-worker@^28.1.3: +jest-worker@^28.0.2: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== @@ -14381,16 +11110,6 @@ jest@^27.4.3: import-local "^3.0.2" jest-cli "^27.5.1" -jest@^28.1.1: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== - dependencies: - "@jest/core" "^28.1.3" - "@jest/types" "^28.1.3" - import-local "^3.0.2" - jest-cli "^28.1.3" - jest@^29.2.1: version "29.5.0" resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" @@ -14401,11 +11120,6 @@ jest@^29.2.1: import-local "^3.0.2" jest-cli "^29.5.0" -jetifier@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-2.0.0.tgz#699391367ca1fe7bc4da5f8bf691eb117758e4cb" - integrity sha512-J4Au9KuT74te+PCCCHKgAjyLlEa+2VyIAEPNCdE5aNkAJ6FAJcAqcdzEkSnzNksIa9NkGmC4tPiClk2e7tCJuQ== - jimp-compact@0.16.1: version "0.16.1" resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" @@ -14512,31 +11226,6 @@ jscodeshift@^0.13.1: temp "^0.8.4" write-file-atomic "^2.3.0" -jscodeshift@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.14.0.tgz#7542e6715d6d2e8bde0b4e883f0ccea358b46881" - integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== - dependencies: - "@babel/core" "^7.13.16" - "@babel/parser" "^7.13.16" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/preset-flow" "^7.13.13" - "@babel/preset-typescript" "^7.13.0" - "@babel/register" "^7.13.16" - babel-core "^7.0.0-bridge.0" - chalk "^4.1.2" - flow-parser "0.*" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - neo-async "^2.5.0" - node-dir "^0.1.17" - recast "^0.21.0" - temp "^0.8.4" - write-file-atomic "^2.3.0" - jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -14580,11 +11269,6 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -14629,11 +11313,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - json3@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" @@ -14651,7 +11330,7 @@ json5@^1.0.1, json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.1, json5@^2.2.2: +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -14672,11 +11351,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - jsonpointer@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" @@ -14733,13 +11407,6 @@ keymirror@^0.1.1: resolved "https://registry.yarnpkg.com/keymirror/-/keymirror-0.1.1.tgz#918889ea13f8d0a42e7c557250eee713adc95c35" integrity sha512-vIkZAFWoDijgQT/Nvl2AHCMmnegN2ehgTPYuyy2hWQkQSntI0S7ESYqdLkoSe1HyEBFHHkCgSIvVdSEiWwKvCg== -keyv@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== - dependencies: - json-buffer "3.0.1" - killable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -14771,7 +11438,7 @@ kind-of@^5.0.0: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.1, kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.0, kind-of@^6.0.1, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -14788,11 +11455,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kleur@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - klona@^2.0.4, klona@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" @@ -14818,13 +11480,6 @@ last-call-webpack-plugin@^3.0.0: lodash "^4.17.5" webpack-sources "^1.1.0" -latest-version@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" - integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== - dependencies: - package-json "^8.1.0" - launch-editor@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" @@ -14954,16 +11609,6 @@ linkify-it@^3.0.2: dependencies: uc.micro "^1.0.1" -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -15006,14 +11651,6 @@ loader-utils@^3.2.0: resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -15036,26 +11673,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.capitalize@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" - integrity sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw== - lodash.debounce@4.0.8, lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.escaperegexp@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== - lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" @@ -15071,21 +11693,11 @@ lodash.isequal@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== -lodash.isfunction@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" - integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== - lodash.isinteger@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== -lodash.ismatch@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== - lodash.isnumber@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" @@ -15101,11 +11713,6 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -15116,31 +11723,16 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.mergewith@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" - integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== - lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== -lodash.snakecase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== -lodash.startcase@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== - lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" @@ -15151,17 +11743,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash.uniqby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== - -lodash.upperfirst@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== - -lodash@*, lodash@4.17.21, "lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0: +lodash@*, "lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -15181,14 +11763,6 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -log-symbols@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" - integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== - dependencies: - chalk "^5.0.0" - is-unicode-supported "^1.1.0" - logkitty@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7" @@ -15230,11 +11804,6 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -15249,16 +11818,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.14.1: - version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" - integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== - -macos-release@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" - integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA== - magic-string@^0.25.0, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" @@ -15303,16 +11862,6 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.0.0, map-obj@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -15420,41 +11969,6 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -meow@^10.1.3: - version "10.1.5" - resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" - integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== - dependencies: - "@types/minimist" "^1.2.2" - camelcase-keys "^7.0.0" - decamelize "^5.0.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.2" - read-pkg-up "^8.0.0" - redent "^4.0.0" - trim-newlines "^4.0.2" - type-fest "^1.2.2" - yargs-parser "^20.2.9" - -meow@^8.0.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" - integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - merge-deep@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.3.tgz#1a2b2ae926da8b2ae93a0ac15d90cd1922766003" @@ -15511,26 +12025,11 @@ metro-babel-transformer@0.73.9: metro-source-map "0.73.9" nullthrows "^1.1.1" -metro-babel-transformer@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz#1daea5b236c52579c9e9a04b94ae9f9677a81f3d" - integrity sha512-KmsMXY6VHjPLRQLwTITjLo//7ih8Ts39HPF2zODkaYav/ZLNq0QP7eGuW54dvk/sZiL9le1kaBwTN4BWQI1VZQ== - dependencies: - "@babel/core" "^7.20.0" - hermes-parser "0.8.0" - metro-source-map "0.76.5" - nullthrows "^1.1.1" - metro-cache-key@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.73.10.tgz#8d63591187d295b62a80aed64a87864b1e9d67a2" integrity sha512-JMVDl/EREDiUW//cIcUzRjKSwE2AFxVWk47cFBer+KA4ohXIG2CQPEquT56hOw1Y1s6gKNxxs1OlAOEsubrFjw== -metro-cache-key@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.5.tgz#9b5b7d7e24fa75c95b9e672c0f0a7a19b2a16508" - integrity sha512-QERX6ejYMt4BPr0ZMf7adnrOivmFSUbCim9FlU6cAeWUib+pV5P/Ph3KicWnOzJpbQz93+tHHG7vcsP6OrvLMw== - metro-cache@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.73.10.tgz#02e9cb7c1e42aab5268d2ecce35ad8f2c08891de" @@ -15539,14 +12038,6 @@ metro-cache@0.73.10: metro-core "0.73.10" rimraf "^3.0.2" -metro-cache@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.5.tgz#479c4e036ab89c68f12551a354ccaaf759eb9a40" - integrity sha512-8XalhoMNWDK6bi41oqxIpecTYRt4WsmtoHdqshgJIYshJ6qov0NuDw0pOfnS8rgMNHxPpuWyXc7NyKERqVRzaw== - dependencies: - metro-core "0.76.5" - rimraf "^3.0.2" - metro-config@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.73.10.tgz#a9ec3d0a1290369e3f46c467a4c4f6dd43acc223" @@ -15559,18 +12050,6 @@ metro-config@0.73.10: metro-core "0.73.10" metro-runtime "0.73.10" -metro-config@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.5.tgz#74624b68cff4e72576129d4e59ff8c22a7171e45" - integrity sha512-SCMVIDOtm8s3H62E9z2IcY4Q9GVMqDurbiJS3PHrWgTZjwZFaL59lrW4W6DvzvFZHa9bbxKric5TFtwvVuyOCg== - dependencies: - cosmiconfig "^5.0.5" - jest-validate "^29.2.1" - metro "0.76.5" - metro-cache "0.76.5" - metro-core "0.76.5" - metro-runtime "0.76.5" - metro-core@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.73.10.tgz#feb3c228aa8c0dde71d8e4cef614cc3a1dc3bbd7" @@ -15579,14 +12058,6 @@ metro-core@0.73.10: lodash.throttle "^4.1.1" metro-resolver "0.73.10" -metro-core@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.5.tgz#0196dbb32bfb3c3edd288e908daf360764c89105" - integrity sha512-yJvIe8a3sAG92U7+E7Bw6m4lae9RB180fp9iQZFBqY437Ilv4nE6PR8EWB6d8c4yt9fXIL1Hc+KyQv7OPFx/rQ== - dependencies: - lodash.throttle "^4.1.1" - metro-resolver "0.76.5" - metro-file-map@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.73.10.tgz#55bd906fb7c1bef8e1a31df4b29a3ef4b49f0b5a" @@ -15608,26 +12079,6 @@ metro-file-map@0.73.10: optionalDependencies: fsevents "^2.3.2" -metro-file-map@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.5.tgz#71f40660adfa1a806907f7961ef2a57884501d6c" - integrity sha512-9VS7zsec7BpTb+0v1DObOXso6XU/7oVBObQWp0EWBQpFcU1iF1lit2nnLQh2AyGCnSr8JVnuUe8gXhNH6xtPMg== - dependencies: - anymatch "^3.0.3" - debug "^2.2.0" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - invariant "^2.2.4" - jest-regex-util "^27.0.6" - jest-util "^27.2.0" - jest-worker "^27.2.0" - micromatch "^4.0.4" - node-abort-controller "^3.1.1" - nullthrows "^1.1.1" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - metro-hermes-compiler@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.73.10.tgz#4525a7835c803a5d0b3b05c6619202e2273d630f" @@ -15643,17 +12094,6 @@ metro-inspector-proxy@0.73.10: ws "^7.5.1" yargs "^17.5.1" -metro-inspector-proxy@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.5.tgz#aac222b0680c7c031e24b6246d995ca3e87868f2" - integrity sha512-leqwei1qNMKOEbhqlQ37K+7OIp1JRgvS5qERO+J0ZTg7ZeJTaBHSFU7FnCeRHB9Tu7/FSfypY2PxjydZDwvUEQ== - dependencies: - connect "^3.6.5" - debug "^2.2.0" - node-fetch "^2.2.0" - ws "^7.5.1" - yargs "^17.6.2" - metro-minify-terser@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.73.10.tgz#557eab3a512b90b7779350ff5d25a215c4dbe61f" @@ -15661,13 +12101,6 @@ metro-minify-terser@0.73.10: dependencies: terser "^5.15.0" -metro-minify-terser@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.5.tgz#1bde3e0bcad27ec1764f78075637782ace127dba" - integrity sha512-zizTXqlHcG7PArB5hfz1Djz/oCaOaTSXTZDNp8Y9K2FmmfLU3dU2eoDbNNiCnm5QdDtFIndLMXdqqe6omTfp4g== - dependencies: - terser "^5.15.0" - metro-minify-uglify@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.73.10.tgz#4de79056d502479733854c90f2075374353ea154" @@ -15675,61 +12108,10 @@ metro-minify-uglify@0.73.10: dependencies: uglify-es "^3.1.9" -metro-minify-uglify@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.5.tgz#afbb5e3bbc9ca05a9a63d1c5fd74dfc9c1b4c4f8" - integrity sha512-JZNO5eK8r625/cheWSl+y7n0RlHLt03iSMgXPAxirH8BiFqPzs7h+c57r4AvSs793VXcF7L3sI1sAOj+nRqTeg== - dependencies: - uglify-es "^3.1.9" - -metro-react-native-babel-preset@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.10.tgz#304b24bb391537d2c987732cc0a9774be227d3f6" - integrity sha512-1/dnH4EHwFb2RKEKx34vVDpUS3urt2WEeR8FYim+ogqALg4sTpG7yeQPxWpbgKATezt4rNfqAANpIyH19MS4BQ== - dependencies: - "@babel/core" "^7.20.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.18.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-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - react-refresh "^0.4.0" - -metro-react-native-babel-preset@0.73.8: - version "0.73.8" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz#04908f264f5d99c944ae20b5b11f659431328431" - integrity sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ== +metro-react-native-babel-preset@0.73.10: + version "0.73.10" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.10.tgz#304b24bb391537d2c987732cc0a9774be227d3f6" + integrity sha512-1/dnH4EHwFb2RKEKx34vVDpUS3urt2WEeR8FYim+ogqALg4sTpG7yeQPxWpbgKATezt4rNfqAANpIyH19MS4BQ== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" @@ -15770,10 +12152,10 @@ metro-react-native-babel-preset@0.73.8: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-preset@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz#ef54637dd20f025197beb49e71309a9c539e73e2" - integrity sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw== +metro-react-native-babel-preset@0.73.8: + version "0.73.8" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz#04908f264f5d99c944ae20b5b11f659431328431" + integrity sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" @@ -15814,32 +12196,31 @@ metro-react-native-babel-preset@0.73.9: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-preset@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.5.tgz#5379e163e014dce14066d277628ae018fda79593" - integrity sha512-IlVKeTon5fef77rQ6WreSmrabmbc3dEsLwr/sL80fYjobjsD8FRCnOlbaJdgUf2SMJmSIoawgjh5Yeebv+gJzg== +metro-react-native-babel-preset@0.73.9: + version "0.73.9" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz#ef54637dd20f025197beb49e71309a9c539e73e2" + integrity sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.18.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.18.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.20.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.20.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.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.18.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.20.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.20.0" - "@babel/plugin-transform-flow-strip-types" "^7.20.0" + "@babel/plugin-transform-destructuring" "^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" @@ -15853,10 +12234,10 @@ metro-react-native-babel-preset@0.76.5: "@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" - babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.4.0" metro-react-native-babel-transformer@0.73.10: @@ -15885,19 +12266,6 @@ metro-react-native-babel-transformer@0.73.9: metro-source-map "0.73.9" nullthrows "^1.1.1" -metro-react-native-babel-transformer@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.5.tgz#08b7d4a0240ebdafc1f2ff0691a70a7f507a0de0" - integrity sha512-7m2u7jQ1I2mwGm48Vrki5cNNSv4d2HegHMGmE5G2AAa6Pr2O3ajaX2yNoAKF8TCLO38/8pa9fZd0VWAlO/YMcA== - dependencies: - "@babel/core" "^7.20.0" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.8.0" - metro-babel-transformer "0.76.5" - metro-react-native-babel-preset "0.76.5" - metro-source-map "0.76.5" - nullthrows "^1.1.1" - metro-resolver@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.73.10.tgz#c39a3bd8d33e5d78cb256110d29707d8d49ed0be" @@ -15905,11 +12273,6 @@ metro-resolver@0.73.10: dependencies: absolute-path "^0.0.0" -metro-resolver@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.5.tgz#9d5521d73d1f5e651e36a3d80aa0e6c3a4a74f6f" - integrity sha512-QNsbDdf0xL1HefP6fhh1g3umqiX1qWEuCiBaTFroYRqM7u7RATt8mCu4n/FwSYhATuUUujHTIb2EduuQPbSGRQ== - metro-runtime@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.10.tgz#c3de19d17e75ffe1a145778d99422e7ffc208768" @@ -15926,14 +12289,6 @@ metro-runtime@0.73.9: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" -metro-runtime@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.5.tgz#546d3baf498b2736565c0781810c80bd9d81212e" - integrity sha512-1JAf9/v/NDHLhoTfiJ0n25G6dRkX7mjTkaMJ6UUXIyfIuSucoK5yAuOBx8OveNIekoLRjmyvSmyN5ojEeRmpvQ== - dependencies: - "@babel/runtime" "^7.0.0" - react-refresh "^0.4.0" - metro-source-map@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.10.tgz#28e09a28f1a2f7a4f8d0845b845cbed74e2f48f9" @@ -15962,20 +12317,6 @@ metro-source-map@0.73.9: source-map "^0.5.6" vlq "^1.0.0" -metro-source-map@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.5.tgz#786153fcc93609c7d41c22cae16082b69cd60429" - integrity sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw== - dependencies: - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - invariant "^2.2.4" - metro-symbolicate "0.76.5" - nullthrows "^1.1.1" - ob1 "0.76.5" - source-map "^0.5.6" - vlq "^1.0.0" - metro-symbolicate@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.73.10.tgz#7853a9a8fbfd615a5c9db698fffc685441ac880f" @@ -16000,18 +12341,6 @@ metro-symbolicate@0.73.9: through2 "^2.0.1" vlq "^1.0.0" -metro-symbolicate@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz#f2fbb75ca9436ea053bde702fa2a20146ff10be1" - integrity sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ== - dependencies: - invariant "^2.2.4" - metro-source-map "0.76.5" - nullthrows "^1.1.1" - source-map "^0.5.6" - through2 "^2.0.1" - vlq "^1.0.0" - metro-transform-plugins@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.73.10.tgz#1b762330cbbedb6c18438edc3d76b063c88882af" @@ -16023,17 +12352,6 @@ metro-transform-plugins@0.73.10: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-plugins@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.5.tgz#b4a49b5b55fd3bc24c5a65fa8e40ba07d84e4170" - integrity sha512-7pJ24aRuvzdQYpX/eOyodr4fnwVJP5ArNLBE1d0DOU9sQxsGplOORDTGAqw2L01+UgaSJiiwEoFMw7Z91HAS+Q== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.20.0" - nullthrows "^1.1.1" - metro-transform-worker@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.73.10.tgz#bb401dbd7b10a6fe443a5f7970cba38425efece0" @@ -16053,24 +12371,6 @@ metro-transform-worker@0.73.10: metro-transform-plugins "0.73.10" nullthrows "^1.1.1" -metro-transform-worker@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.5.tgz#d101ad46c1a607c7bc52f0a0888961d237df42bd" - integrity sha512-xN6Kb06o9u5A7M1bbl7oPfQFmt4Kmi3CMXp5j9OcK37AFc+u6YXH8x/6e9b3Cq50rlBYuCXDOOYAWI5/tYNt2w== - dependencies: - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/types" "^7.20.0" - babel-preset-fbjs "^3.4.0" - metro "0.76.5" - metro-babel-transformer "0.76.5" - metro-cache "0.76.5" - metro-cache-key "0.76.5" - metro-source-map "0.76.5" - metro-transform-plugins "0.76.5" - nullthrows "^1.1.1" - metro@0.73.10: version "0.73.10" resolved "https://registry.yarnpkg.com/metro/-/metro-0.73.10.tgz#d9a0efb1e403e3aee5cf5140e0a96a7220c23901" @@ -16128,60 +12428,6 @@ metro@0.73.10: ws "^7.5.1" yargs "^17.5.1" -metro@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.5.tgz#0defc2a773dcdfe6569d1bd7f7a25a7424ce6f11" - integrity sha512-aEQiqNFibfx4ajUXm7Xatsv43r/UQ0xE53T3XqgZBzsxhF235tf1cl8t0giawi0RbLtDS+Fu4kg2bVBKDYFy7A== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/core" "^7.20.0" - "@babel/generator" "^7.20.0" - "@babel/parser" "^7.20.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - accepts "^1.3.7" - async "^3.2.2" - chalk "^4.0.0" - ci-info "^2.0.0" - connect "^3.6.5" - debug "^2.2.0" - denodeify "^1.2.1" - error-stack-parser "^2.0.6" - graceful-fs "^4.2.4" - hermes-parser "0.8.0" - image-size "^1.0.2" - invariant "^2.2.4" - jest-worker "^27.2.0" - jsc-safe-url "^0.2.2" - lodash.throttle "^4.1.1" - metro-babel-transformer "0.76.5" - metro-cache "0.76.5" - metro-cache-key "0.76.5" - metro-config "0.76.5" - metro-core "0.76.5" - metro-file-map "0.76.5" - metro-inspector-proxy "0.76.5" - metro-minify-terser "0.76.5" - metro-minify-uglify "0.76.5" - metro-react-native-babel-preset "0.76.5" - metro-resolver "0.76.5" - metro-runtime "0.76.5" - metro-source-map "0.76.5" - metro-symbolicate "0.76.5" - metro-transform-plugins "0.76.5" - metro-transform-worker "0.76.5" - mime-types "^2.1.27" - node-fetch "^2.2.0" - nullthrows "^1.1.1" - rimraf "^3.0.2" - serialize-error "^2.1.0" - source-map "^0.5.6" - strip-ansi "^6.0.0" - throat "^5.0.0" - ws "^7.5.1" - yargs "^17.6.2" - microevent.ts@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" @@ -16232,7 +12478,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@2.1.35, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -16259,26 +12505,6 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -mimic-response@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" - integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== - -min-indent@^1.0.0, min-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - mini-css-extract-plugin@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" @@ -16326,16 +12552,7 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -16432,11 +12649,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -modify-values@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" - integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -16490,11 +12702,6 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -mute-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" - integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== - mv@~2: version "2.1.1" resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" @@ -16567,7 +12774,7 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -16577,18 +12784,6 @@ nested-error-stacks@~2.0.1: resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz#d2cc9fc5235ddb371fc44d506234339c8e4b0a4b" integrity sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A== -netmask@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - -new-github-release-url@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-2.0.0.tgz#335189b91f52bbb9569042a7485900a205a0500b" - integrity sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ== - dependencies: - type-fest "^2.5.1" - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -16607,11 +12802,6 @@ nocache@^3.0.1: resolved "https://registry.yarnpkg.com/nocache/-/nocache-3.0.4.tgz#5b37a56ec6e09fc7d401dceaed2eab40c8bfdf79" integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== -node-abort-controller@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" - integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== - node-dir@^0.1.17: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -16619,11 +12809,6 @@ node-dir@^0.1.17: dependencies: minimatch "^3.0.2" -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - node-fetch@2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -16631,15 +12816,6 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.1.tgz#b3eea7b54b3a48020e46f4f88b9c5a7430d20b2e" - integrity sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" @@ -16711,11 +12887,6 @@ node-releases@^1.1.61: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== -node-releases@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" - integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== - node-releases@^2.0.8: version "2.0.10" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" @@ -16731,26 +12902,6 @@ normalize-css-color@^1.0.2: resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d" integrity sha512-jPJ/V7Cp1UytdidsPqviKEElFQJs22hUUgK5BOPHTwOonNCk7/2qOxhhqzEajmFrWJowADFfOFh1V+aWkRfy+w== -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -16778,11 +12929,6 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -normalize-url@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" - integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== - npm-package-arg@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-7.0.0.tgz#52cdf08b491c0c59df687c4c925a89102ef794a5" @@ -16800,20 +12946,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -16856,11 +12995,6 @@ ob1@0.73.9: resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.9.tgz#d5677a0dd3e2f16ad84231278d79424436c38c59" integrity sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw== -ob1@0.76.5: - version "0.76.5" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.5.tgz#85476959743d8f6722faf0ac29bee8861f50120b" - integrity sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w== - object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -17031,23 +13165,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - open@^6.2.0: version "6.4.0" resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" @@ -17128,21 +13245,6 @@ ora@3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -ora@6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6" - integrity sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ== - dependencies: - chalk "^5.0.0" - cli-cursor "^4.0.0" - cli-spinners "^2.6.1" - is-interactive "^2.0.0" - is-unicode-supported "^1.1.0" - log-symbols "^5.1.0" - stdin-discarder "^0.1.0" - strip-ansi "^7.0.1" - wcwidth "^1.0.1" - ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" @@ -17168,14 +13270,6 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== -os-name@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/os-name/-/os-name-5.1.0.tgz#4f5ab5edfa6938b590112714f1570fe79f1d957a" - integrity sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ== - dependencies: - macos-release "^3.1.0" - windows-release "^5.0.1" - os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -17189,23 +13283,11 @@ osenv@^0.1.5: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -17220,13 +13302,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -17260,13 +13335,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-map@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" - integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== - dependencies: - aggregate-error "^4.0.0" - p-retry@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -17282,48 +13350,11 @@ p-retry@^4.5.0: "@types/retry" "0.12.0" retry "^0.13.1" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pac-proxy-agent@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-6.0.3.tgz#61042187093b67aa7dd05b41e4ec7c241a27c428" - integrity sha512-5Hr1KgPDoc21Vn3rsXBirwwDnF/iac1jN/zkpsOYruyT+ZgsUhUOgVwq3v9+ukjZd/yGm/0nzO1fDfl7rkGoHQ== - dependencies: - agent-base "^7.0.2" - debug "^4.3.4" - get-uri "^6.0.1" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.0" - pac-resolver "^6.0.1" - socks-proxy-agent "^8.0.1" - -pac-resolver@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-6.0.1.tgz#319c182d3db4e6782e79519cb4dd1dda46579292" - integrity sha512-dg497MhVT7jZegPRuOScQ/z0aV/5WR0gTdRu1md+Irs9J9o+ls5jIuxjo1WfaTG+eQQkxyn5HMGvWK+w7EIBkQ== - dependencies: - degenerator "^4.0.1" - ip "^1.1.5" - netmask "^2.0.2" - -package-json@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" - integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== - dependencies: - got "^12.1.0" - registry-auth-token "^5.0.1" - registry-url "^6.0.0" - semver "^7.3.7" - pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -17387,13 +13418,6 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-path@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" - integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== - dependencies: - protocols "^2.0.0" - parse-png@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-2.1.0.tgz#2a42ad719fedf90f81c59ebee7ae59b280d6b338" @@ -17406,13 +13430,6 @@ parse-srcset@^1.0.2: resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== -parse-url@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" - integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== - dependencies: - parse-path "^7.0.0" - parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" @@ -17514,11 +13531,6 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.5, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -17529,13 +13541,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -17584,11 +13589,6 @@ pify@^2.0.0, pify@^2.3.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -17657,11 +13657,6 @@ pnp-webpack-plugin@^1.5.0: dependencies: ts-pnp "^1.1.6" -pod-install@^0.1.0: - version "0.1.38" - resolved "https://registry.yarnpkg.com/pod-install/-/pod-install-0.1.38.tgz#1c16a800a5fc1abea0cafcc0e190f376368c76ab" - integrity sha512-NeDWGigjJRriOIKBOvpW2/tK2tYLfyUT7ia6C6L+oarCAhBNP+IGODWdU+GEAqvfsseqOApcFclpXAJTL0UPzA== - portfinder@^1.0.26: version "1.0.32" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" @@ -18550,11 +14545,6 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.0.5: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - prettier@^2.8.7: version "2.8.7" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" @@ -18600,7 +14590,7 @@ pretty-format@^27.0.0, pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^28.0.0, pretty-format@^28.1.3: +pretty-format@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== @@ -18639,18 +14629,6 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== -promise.allsettled@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.6.tgz#8dc8ba8edf429feb60f8e81335b920e109c94b6e" - integrity sha512-22wJUOD3zswWFqgwjNHa1965LvqTX87WPu/lreY2KSd7SVcERfuZ4GfUaOnJNnvtoIv2yXT/W00YIGMetXtFXg== - dependencies: - array.prototype.map "^1.0.5" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - iterate-value "^1.0.2" - promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -18690,16 +14668,6 @@ prop-types@*, prop-types@15.8.1, prop-types@^15.5.10, prop-types@^15.6.2, prop-t object-assign "^4.1.1" react-is "^16.13.1" -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -protocols@^2.0.0, protocols@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" - integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -18708,25 +14676,6 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-agent@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.2.1.tgz#062df6609a4012fd1c108974865599b61e77abde" - integrity sha512-OIbBKlRAT+ycCm6wAYIzMwPejzRtjy8F3QiDX0eKOA3e4pe3U9F/IvzcHP42bmgQxVv97juG+J8/gx+JIeCX/Q== - dependencies: - agent-base "^7.0.2" - debug "^4.3.4" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.0" - lru-cache "^7.14.1" - pac-proxy-agent "^6.0.3" - proxy-from-env "^1.1.0" - socks-proxy-agent "^8.0.1" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -18794,13 +14743,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -pupa@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" - integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== - dependencies: - escape-goat "^4.0.0" - pure-rand@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" @@ -18818,7 +14760,7 @@ pvutils@^1.1.3: resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== -q@^1.1.2, q@^1.5.1: +q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== @@ -18882,11 +14824,6 @@ queue@6.0.2: dependencies: inherits "~2.0.3" -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" @@ -18939,7 +14876,7 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -rc@1.2.8, rc@^1.0.1, rc@^1.1.6, rc@~1.2.7: +rc@^1.0.1, rc@^1.1.6, rc@~1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -19039,14 +14976,6 @@ react-devtools-core@^4.26.1: shell-quote "^1.6.1" ws "^7" -react-devtools-core@^4.27.2: - version "4.27.8" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.27.8.tgz#b7b387b079c14ae9a214d4846a402da2b6efd164" - integrity sha512-KwoH8/wN/+m5wTItLnsgVraGNmFrcTWR3k1VimP1HjtMMw4CNF+F5vg4S/0tzTEKIdpCi2R7mPNTC+/dswZMgw== - dependencies: - shell-quote "^1.6.1" - ws "^7" - react-dnd-html5-backend@^14.0.1: version "14.1.0" resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-14.1.0.tgz#b35a3a0c16dd3a2bfb5eb7ec62cf0c2cace8b62f" @@ -19098,33 +15027,6 @@ react-is@^17.0.1, react-is@^17.0.2: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-native-builder-bob@^0.20.0: - version "0.20.4" - resolved "https://registry.yarnpkg.com/react-native-builder-bob/-/react-native-builder-bob-0.20.4.tgz#02df01b8dc02f1bb2d566f820e33c5d42bfb9c99" - integrity sha512-3ZmYP8H7Fg2D8/JAPvxT78I4VWzf5DNMUf69cxWPw7Pukt+hHp1PSQ303af63uv1QXxWMJtrQ11+nuUfVqQf0Q== - dependencies: - "@babel/core" "^7.18.5" - "@babel/plugin-proposal-class-properties" "^7.17.12" - "@babel/preset-env" "^7.18.2" - "@babel/preset-flow" "^7.17.12" - "@babel/preset-react" "^7.17.12" - "@babel/preset-typescript" "^7.17.12" - browserslist "^4.20.4" - cosmiconfig "^7.0.1" - cross-spawn "^7.0.3" - dedent "^0.7.0" - del "^6.1.1" - fs-extra "^10.1.0" - glob "^8.0.3" - is-git-dirty "^2.0.1" - json5 "^2.2.1" - kleur "^4.1.4" - prompts "^2.4.2" - which "^2.0.2" - yargs "^17.5.1" - optionalDependencies: - jetifier "^2.0.0" - react-native-camera@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/react-native-camera/-/react-native-camera-4.2.1.tgz#caf74081f055e89d7e9b0cd5108965d808c60e90" @@ -19504,64 +15406,22 @@ react-native@0.71.7: memoize-one "^5.0.0" metro-react-native-babel-transformer "0.73.9" metro-runtime "0.73.9" - metro-source-map "0.73.9" - mkdirp "^0.5.1" - nullthrows "^1.1.1" - pretty-format "^26.5.2" - promise "^8.3.0" - react-devtools-core "^4.26.1" - react-native-codegen "^0.71.5" - react-native-gradle-plugin "^0.71.17" - react-refresh "^0.4.0" - react-shallow-renderer "^16.15.0" - regenerator-runtime "^0.13.2" - scheduler "^0.23.0" - stacktrace-parser "^0.1.3" - use-sync-external-store "^1.0.0" - whatwg-fetch "^3.0.0" - ws "^6.2.2" - -react-native@0.72.0: - version "0.72.0" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.0.tgz#fc76b4f31896b463cee01dd1a90657b97d2b5ffd" - integrity sha512-BP2qq5f05pl3zV+eYgW7nmjCV+3zLXs/Vm69xMTCLD34U2bvRhuWbuUhqpauw7fyk5c8+LrY9NKcnARCkqKXcw== - dependencies: - "@jest/create-cache-key-function" "^29.2.1" - "@react-native-community/cli" "11.3.2" - "@react-native-community/cli-platform-android" "11.3.2" - "@react-native-community/cli-platform-ios" "11.3.2" - "@react-native/assets-registry" "^0.72.0" - "@react-native/codegen" "^0.72.6" - "@react-native/gradle-plugin" "^0.72.10" - "@react-native/js-polyfills" "^0.72.1" - "@react-native/normalize-colors" "^0.72.0" - "@react-native/virtualized-lists" "^0.72.5" - abort-controller "^3.0.0" - anser "^1.4.9" - base64-js "^1.1.2" - deprecated-react-native-prop-types "4.1.0" - event-target-shim "^5.0.1" - flow-enums-runtime "^0.0.5" - invariant "^2.2.4" - jest-environment-node "^29.2.1" - jsc-android "^250231.0.0" - memoize-one "^5.0.0" - metro-runtime "0.76.5" - metro-source-map "0.76.5" + metro-source-map "0.73.9" mkdirp "^0.5.1" nullthrows "^1.1.1" pretty-format "^26.5.2" promise "^8.3.0" - react-devtools-core "^4.27.2" + react-devtools-core "^4.26.1" + react-native-codegen "^0.71.5" + react-native-gradle-plugin "^0.71.17" react-refresh "^0.4.0" react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" - scheduler "0.24.0-canary-efb381bbf-20230505" - stacktrace-parser "^0.1.10" + scheduler "^0.23.0" + stacktrace-parser "^0.1.3" use-sync-external-store "^1.0.0" whatwg-fetch "^3.0.0" ws "^6.2.2" - yargs "^17.6.2" react-query@^3.39.3: version "3.39.3" @@ -19688,61 +15548,6 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg-up@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" - integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== - dependencies: - find-up "^5.0.0" - read-pkg "^6.0.0" - type-fest "^1.0.1" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -read-pkg@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" - integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^1.0.1" - "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -19756,15 +15561,6 @@ read-pkg@^6.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readable-stream@^1.0.26-4, readable-stream@^1.0.27-1, readable-stream@^1.0.33: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -19775,6 +15571,15 @@ readable-stream@^1.0.26-4, readable-stream@^1.0.27-1, readable-stream@^1.0.33: isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@~1.0.26, readable-stream@~1.0.26-4: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -19821,23 +15626,6 @@ recast@^0.20.4: source-map "~0.6.1" tslib "^2.0.1" -recast@^0.21.0: - version "0.21.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.21.5.tgz#e8cd22bb51bcd6130e54f87955d33a2b2e57b495" - integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== - dependencies: - ast-types "0.15.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - recursive-readdir@2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" @@ -19861,22 +15649,6 @@ recyclerlistview@4.2.0: prop-types "15.8.1" ts-object-utils "0.0.5" -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -redent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" - integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== - dependencies: - indent-string "^5.0.0" - strip-indent "^4.0.0" - redux-saga@^1.1.3: version "1.2.3" resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.2.3.tgz#7362f78a0235868daf1210f8862a95906ac018a1" @@ -19962,13 +15734,6 @@ registry-auth-token@3.3.2: rc "^1.1.6" safe-buffer "^5.0.1" -registry-auth-token@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" - integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== - dependencies: - "@pnpm/npm-conf" "^2.1.0" - registry-url@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" @@ -19976,13 +15741,6 @@ registry-url@3.1.0: dependencies: rc "^1.0.1" -registry-url@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" - integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== - dependencies: - rc "1.2.8" - regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" @@ -19995,39 +15753,6 @@ relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== -release-it@^15.0.0: - version "15.11.0" - resolved "https://registry.yarnpkg.com/release-it/-/release-it-15.11.0.tgz#389cf1e8f367b51f3f3bc4dc3e01046b6bdb166c" - integrity sha512-lZwoGEnKYKwGnfxxlA7vtR7vvozPrOSsIgQaHO4bgQ5ARbG3IA6Dmo0IVusv6nR1KmnjH70QIeNAgsWs6Ji/tw== - dependencies: - "@iarna/toml" "2.2.5" - "@octokit/rest" "19.0.11" - async-retry "1.3.3" - chalk "5.2.0" - cosmiconfig "8.1.3" - execa "7.1.1" - git-url-parse "13.1.0" - globby "13.1.4" - got "12.6.1" - inquirer "9.2.6" - is-ci "3.0.1" - issue-parser "6.0.0" - lodash "4.17.21" - mime-types "2.1.35" - new-github-release-url "2.0.0" - node-fetch "3.3.1" - open "9.1.0" - ora "6.3.1" - os-name "5.1.0" - promise.allsettled "1.0.6" - proxy-agent "6.2.1" - semver "7.5.1" - shelljs "0.8.5" - update-notifier "6.0.2" - url-join "5.0.0" - wildcard-match "5.1.2" - yargs-parser "21.1.1" - remove-accents@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" @@ -20109,11 +15834,6 @@ reselect@^4.0.0, reselect@^4.1.7: resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.7.tgz#56480d9ff3d3188970ee2b76527bd94a95567a42" integrity sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A== -resolve-alpn@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -20128,11 +15848,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -20143,12 +15858,10 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-global@1.0.0, resolve-global@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" - integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== - dependencies: - global-dirs "^0.1.1" +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-url-loader@^4.0.0: version "4.0.0" @@ -20176,7 +15889,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.3.2: +resolve@^1.1.7, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.3.2: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -20201,13 +15914,6 @@ resolve@~1.7.1: dependencies: path-parse "^1.0.5" -responselike@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== - dependencies: - lowercase-keys "^3.0.0" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -20224,29 +15930,21 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -restore-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" - integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@0.13.1, retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -20320,18 +16018,6 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - -run-async@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" - integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -20353,13 +16039,6 @@ rxjs@6, rxjs@^6.6.7: dependencies: tslib "^1.9.0" -rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -20421,13 +16100,6 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -scheduler@0.24.0-canary-efb381bbf-20230505: - version "0.24.0-canary-efb381bbf-20230505" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz#5dddc60e29f91cd7f8b983d7ce4a99c2202d178f" - integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA== - dependencies: - loose-envify "^1.1.0" - scheduler@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" @@ -20500,53 +16172,25 @@ selfsigned@^2.1.1: dependencies: node-forge "^1" -semver-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" - integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== - dependencies: - semver "^7.3.5" - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@7.3.8, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@~7.3.2: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -semver@7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" - integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== - dependencies: - lru-cache "^6.0.0" - -semver@7.5.1: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== - dependencies: - lru-cache "^6.0.0" +semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.4: - version "7.5.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" - integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@~7.3.2: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -20733,15 +16377,6 @@ shell-quote@^1.6.1, shell-quote@^1.7.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== -shelljs@0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -20811,11 +16446,6 @@ slugify@^1.3.4: resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b" integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw== -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -20876,23 +16506,6 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.1.tgz#ffc5859a66dac89b0c4dab90253b96705f3e7120" - integrity sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ== - dependencies: - agent-base "^7.0.1" - debug "^4.3.4" - socks "^2.7.1" - -socks@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -20976,32 +16589,6 @@ sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== - spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -21037,14 +16624,7 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split2@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" - -split@^1.0.0, split@^1.0.1: +split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== @@ -21111,7 +16691,7 @@ stacktrace-js@^2.0.0: stack-generator "^2.0.5" stacktrace-gps "^3.0.4" -stacktrace-parser@^0.1.10, stacktrace-parser@^0.1.3: +stacktrace-parser@^0.1.3: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== @@ -21136,13 +16716,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -stdin-discarder@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" - integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ== - dependencies: - bl "^5.0.0" - stop-iteration-iterator@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" @@ -21262,15 +16835,6 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -21400,11 +16964,6 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" @@ -21412,20 +16971,6 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" - integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== - dependencies: - min-indent "^1.0.1" - strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -21814,11 +17359,6 @@ text-encoding-polyfill@^0.6.7: resolved "https://registry.yarnpkg.com/text-encoding-polyfill/-/text-encoding-polyfill-0.6.7.tgz#4d27de0153e4c86eb2631ffd74c2f3f57969a9ec" integrity sha512-/DZ1XJqhbqRkCop6s9ZFu8JrFRwmVuHg4quIRm+ziFkR3N3ec6ck6yBvJ1GYeEQZhLVwRW0rZE+C3SSJpy0RTg== -text-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" - integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== - text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -21856,14 +17396,7 @@ through2@^2.0.0, through2@^2.0.1: readable-stream "~2.3.6" xtend "~4.0.1" -through2@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - -through@2, "through@>=2.2.7 <3", through@^2.3.6: +through@2: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -21892,11 +17425,6 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -22047,16 +17575,6 @@ traverse@~0.6.6: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -trim-newlines@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" - integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== - tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" @@ -22067,7 +17585,7 @@ ts-interface-checker@^0.1.9: resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -ts-node@^10.7.0, ts-node@^10.8.1: +ts-node@^10.7.0: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -22172,11 +17690,6 @@ type-fest@^0.16.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -22192,31 +17705,11 @@ type-fest@^0.3.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - type-fest@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -type-fest@^2.13.0, type-fest@^2.5.1: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -22265,16 +17758,11 @@ typescript-tuple@^2.2.1: dependencies: typescript-compare "^0.0.2" -typescript@^4.5.2, typescript@^4.9.4: +typescript@^4.9.4: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -"typescript@^4.6.4 || ^5.0.0": - version "5.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" - integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== - ua-parser-js@^0.7.30: version "0.7.35" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" @@ -22293,11 +17781,6 @@ uglify-es@^3.1.9: commander "~2.13.0" source-map "~0.6.1" -uglify-js@^3.1.4: - version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== - unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -22308,11 +17791,6 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -22384,18 +17862,6 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" -unique-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" - integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== - dependencies: - crypto-random-string "^4.0.0" - -universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -22442,11 +17908,6 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - upath@^1.1.1, upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -22460,14 +17921,6 @@ update-browserslist-db@^1.0.10: escalade "^3.1.1" picocolors "^1.0.0" -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - update-check@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.3.tgz#45240fcfb8755a7c7fa68bbdd9eda026a41639ed" @@ -22476,26 +17929,6 @@ update-check@1.5.3: registry-auth-token "3.3.2" registry-url "3.1.0" -update-notifier@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" - integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== - dependencies: - boxen "^7.0.0" - chalk "^5.0.1" - configstore "^6.0.0" - has-yarn "^3.0.0" - import-lazy "^4.0.0" - is-ci "^3.0.1" - is-installed-globally "^0.4.0" - is-npm "^6.0.0" - is-yarn-global "^0.4.0" - latest-version "^7.0.0" - pupa "^3.1.0" - semver "^7.3.7" - semver-diff "^4.0.0" - xdg-basedir "^5.1.0" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -22513,11 +17946,6 @@ url-join@4.0.0: resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" integrity sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA== -url-join@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1" - integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA== - url-loader@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" @@ -22668,14 +18096,6 @@ valid-url@~1.0.9: resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - validate-npm-package-name@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" @@ -22710,14 +18130,6 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -vm2@^3.9.19: - version "3.9.19" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.19.tgz#be1e1d7a106122c6c492b4d51c2e8b93d3ed6a4a" - integrity sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg== - dependencies: - acorn "^8.7.0" - acorn-walk "^8.2.0" - w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -22784,11 +18196,6 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - web-vitals@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" @@ -23150,37 +18557,18 @@ which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -widest-line@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" - integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== - dependencies: - string-width "^5.0.1" - -wildcard-match@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/wildcard-match/-/wildcard-match-5.1.2.tgz#66b438001391674d8599b45da051e0bd9f33cd2a" - integrity sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ== - wildcard@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -windows-release@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-5.1.1.tgz#7ac7019f9baeaea6c00ec889b11824f46c12ee8d" - integrity sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw== - dependencies: - execa "^5.1.1" - wonka@^4.0.14: version "4.0.15" resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.15.tgz#9aa42046efa424565ab8f8f451fcca955bf80b89" @@ -23196,11 +18584,6 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - workbox-background-sync@6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9" @@ -23393,7 +18776,7 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: +wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -23411,15 +18794,6 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -23434,7 +18808,7 @@ write-file-atomic@^2.3.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: +write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -23444,7 +18818,7 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.1, write-file-atomic@^4.0.2: +write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== @@ -23477,11 +18851,6 @@ xcode@^3.0.0, xcode@^3.0.1: simple-plist "^1.1.0" uuid "^7.0.3" -xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" - integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== - xml-js@^1.6.11: version "1.6.11" resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" @@ -23570,16 +18939,6 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== - -yargs-parser@21.1.1, yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -23596,11 +18955,16 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: +yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs@^13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" @@ -23647,19 +19011,6 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.0.0, yargs@^17.6.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yargs@^17.3.1, yargs@^17.5.1: version "17.7.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" From 173da120bf188fad01b5a4fd41556f8d8c15c15f Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 08:43:20 +0400 Subject: [PATCH 08/73] wip --- packages/mobile/.env.site | 1 + .../mobile/android/app/src/main/res/xml/filepaths.xml | 11 ----------- .../android/app/src/main/res/xml/provider_paths.xml | 6 ++++++ packages/mobile/package.json | 2 ++ .../src/core/ApprovalCell/Updates/UpdatesCell.tsx | 8 ++++---- packages/mobile/src/hooks/useCheckForUpdates.ts | 7 ++++++- packages/mobile/src/store/zustand/updates/helpers.ts | 2 +- packages/mobile/src/translation/locales/en.json | 4 +++- packages/mobile/src/translation/locales/ru.json | 4 +++- .../main/java/com/apkinstall/ApkInstallModule.java | 5 ++++- packages/react-native-apk-install/index.js | 3 --- yarn.lock | 5 +++++ 12 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 packages/mobile/.env.site delete mode 100644 packages/mobile/android/app/src/main/res/xml/filepaths.xml create mode 100644 packages/mobile/android/app/src/main/res/xml/provider_paths.xml diff --git a/packages/mobile/.env.site b/packages/mobile/.env.site new file mode 100644 index 000000000..0bc3060a9 --- /dev/null +++ b/packages/mobile/.env.site @@ -0,0 +1 @@ +CHECK_FOR_UPDATES=true diff --git a/packages/mobile/android/app/src/main/res/xml/filepaths.xml b/packages/mobile/android/app/src/main/res/xml/filepaths.xml deleted file mode 100644 index 5253f308e..000000000 --- a/packages/mobile/android/app/src/main/res/xml/filepaths.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/packages/mobile/android/app/src/main/res/xml/provider_paths.xml b/packages/mobile/android/app/src/main/res/xml/provider_paths.xml new file mode 100644 index 000000000..5c05d75a3 --- /dev/null +++ b/packages/mobile/android/app/src/main/res/xml/provider_paths.xml @@ -0,0 +1,6 @@ + + + + diff --git a/packages/mobile/package.json b/packages/mobile/package.json index cd8d4ca71..b031e6f3b 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -12,6 +12,7 @@ "clear-cache": "rm -rf tmp/haste-map-react-native-packager && rm -rf node_modules && yarn && yarn start --reset-cache", "build:android": "cd android && ./gradlew assembleRelease && ./gradlew bundleRelease && cd .. && node scripts/prepare_builds.js", "build:android:apk": "cd android && ./gradlew assembleRelease && cd ..", + "build:android:apk-site": "ENVFILE=.env.site yarn build:android:apk", "clean:android": "cd android && ./gradlew clean && cd ..", "open_build_folder": "open ./android/app/build/outputs/bundle", "postinstall": "expo-yarn-workspaces postinstall && patch-package", @@ -84,6 +85,7 @@ "react-native": "0.71.7", "react-native-apk-install": "0.1.0", "react-native-camera": "^4.2.1", + "react-native-config": "^1.5.1", "react-native-console-time-polyfill": "^1.2.3", "react-native-crypto": "^2.2.0", "react-native-device-info": "^8.3.1", diff --git a/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx b/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx index 71223a191..807be90db 100644 --- a/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx +++ b/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx @@ -12,7 +12,7 @@ const UpdatesCellComponent: React.FC = () => { const progress = useUpdatesStore((state) => state.update.progress); const startUpdate = useUpdatesStore((state) => state.actions.startUpdate); - const handleInstall = React.useCallback(() => { + const handleInstall = React.useCallback(async () => { installApk(getUpdatePath()); }, []); @@ -25,16 +25,16 @@ const UpdatesCellComponent: React.FC = () => { case UpdateState.DOWNLOADING: return t('update.downloading', { progress }); case UpdateState.DOWNLOADED: - return t('true'); + return t('update.tap'); case UpdateState.ERRORED: - return 'Errored'; + return t('update.retry'); default: return ''; } }, [state, progress]); return ( - + s.actions); const shouldUpdate = useUpdatesStore((s) => s.shouldUpdate); useEffect(() => { - if (!wallet) { + if (!wallet || !SHOULD_CHECK_FOR_UPDATES) { return; } fetchMeta(); diff --git a/packages/mobile/src/store/zustand/updates/helpers.ts b/packages/mobile/src/store/zustand/updates/helpers.ts index c7f418d4e..a7e277e1f 100644 --- a/packages/mobile/src/store/zustand/updates/helpers.ts +++ b/packages/mobile/src/store/zustand/updates/helpers.ts @@ -3,6 +3,6 @@ import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; export function getUpdatePath() { return ( - RNFS.DocumentDirectoryPath + `keeper_${useUpdatesStore.getState().meta?.version}.apk` + RNFS.DocumentDirectoryPath + `/keeper_${useUpdatesStore.getState().meta?.version}.apk` ); } diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index 4dd1460df..da06ea65d 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -812,6 +812,8 @@ "mb": "{{size}} MB", "download": "Download", "downloading": "Downloading… {{progress}}%", - "remindLater": "Remind me later" + "remindLater": "Remind me later", + "tap": "Tap to update", + "retry": "Download error. Tap to retry." } } diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index 50cd6009d..887eccd28 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -832,7 +832,9 @@ "mb": "{{size}} MB", "download": "Установить", "downloading": "Загрузка… {{progress}}%", - "remindLater": "Напомнить позже" + "remindLater": "Напомнить позже", + "tap": "Нажмите, чтобы обновить", + "retry": "Ошибка загрузки. Нажмите чтобы повторить попытку." } } diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java index 1a288af35..44bbf901b 100644 --- a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java @@ -54,7 +54,7 @@ public void installApk(String path) throws IOException { PackageInstaller.SessionParams params = new PackageInstaller.SessionParams( PackageInstaller.SessionParams.MODE_FULL_INSTALL); params.setAppPackageName("com.jbig.tonkeeper"); - // set params + int sessionId = packageInstaller.createSession(params); PackageInstaller.Session session = packageInstaller.openSession(sessionId); OutputStream out = session.openWrite("COSU", 0, -1); @@ -67,6 +67,9 @@ public void installApk(String path) throws IOException { in.close(); out.close(); + session.commit(IntentSender.NULL); + session.close(); + } } diff --git a/packages/react-native-apk-install/index.js b/packages/react-native-apk-install/index.js index a2ecae4b6..661f33743 100644 --- a/packages/react-native-apk-install/index.js +++ b/packages/react-native-apk-install/index.js @@ -3,8 +3,5 @@ import { NativeModules } from 'react-native'; const { ApkInstall } = NativeModules; export function installApk(path) { - if (Platform.OS === 'ios') { - return Promise.reject(new Error('Not supported on iOS')); - } return ApkInstall.installApk(path); } diff --git a/yarn.lock b/yarn.lock index e5a46b745..76b71b06d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15054,6 +15054,11 @@ react-native-codegen@^0.71.5: jscodeshift "^0.13.1" nullthrows "^1.1.1" +react-native-config@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/react-native-config/-/react-native-config-1.5.1.tgz#73c94f511493e9b7ff9350cdf351d203a1b05acc" + integrity sha512-g1xNgt1tV95FCX+iWz6YJonxXkQX0GdD3fB8xQtR1GUBEqweB9zMROW77gi2TygmYmUkBI7LU4pES+zcTyK4HA== + react-native-console-time-polyfill@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/react-native-console-time-polyfill/-/react-native-console-time-polyfill-1.2.3.tgz#1039dab1bb9e2d8040f5e19de68e0da781dc9b60" From 37a5a74b7b7db9e8d37748df4596331fa674681a Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 08:49:42 +0400 Subject: [PATCH 09/73] Fix native method --- .../java/com/apkinstall/ApkInstallModule.java | 39 ++++++++----------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java index 44bbf901b..a3f448043 100644 --- a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java @@ -46,30 +46,23 @@ public String getName() { @ReactMethod public void installApk(String path) throws IOException { - + String cmd = "chmod 777 " + path; + try { + Runtime.getRuntime().exec(cmd); + } catch (Exception e) { + e.printStackTrace(); + } File file = new File(path); - InputStream in = new FileInputStream(file); - - PackageInstaller packageInstaller = _context.getPackageManager().getPackageInstaller(); - PackageInstaller.SessionParams params = new PackageInstaller.SessionParams( - PackageInstaller.SessionParams.MODE_FULL_INSTALL); - params.setAppPackageName("com.jbig.tonkeeper"); - - int sessionId = packageInstaller.createSession(params); - PackageInstaller.Session session = packageInstaller.openSession(sessionId); - OutputStream out = session.openWrite("COSU", 0, -1); - byte[] buffer = new byte[65536]; - int c; - while ((c = in.read(buffer)) != -1) { - out.write(buffer, 0, c); + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + if (Build.VERSION.SDK_INT>= Build.VERSION_CODES.N) { + Uri apkUri = + FileProvider.getUriForFile(_context, context.getApplicationContext().getPackageName() + ".provider", file); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); + } else { + intent.setDataAndType(Uri.parse("file://" + path), "application/vnd.android.package-archive"); } - session.fsync(out); - in.close(); - out.close(); - - session.commit(IntentSender.NULL); - session.close(); - + _context.startActivity(intent); - } } From 18537fcf3f0b90709aed2669a13fcc2143bfea24 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 10:52:35 +0400 Subject: [PATCH 10/73] Fix native method, add icons, fix manifest --- .../android/app/src/main/AndroidManifest.xml | 4 +-- packages/mobile/scripts/publish_apk.js | 23 ++++++++++++ .../assets/icons/png/ic-download-28@4x.png | Bin 0 -> 950 bytes .../png/ic-exclamationmark-triangle-28@4x.png | Bin 0 -> 1946 bytes .../src/assets/icons/png/ic-update-28@4x.png | Bin 0 -> 2493 bytes .../assets/icons/svg/28/ic-download-28.svg | 4 +++ .../svg/28/ic-exclamationmark-triangle-28.svg | 7 ++++ .../src/assets/icons/svg/28/ic-update-28.svg | 11 ++++++ .../core/ApprovalCell/Updates/UpdatesCell.tsx | 33 ++++++++++++++++-- .../ModalContainer/UpdateApp/UpdateApp.tsx | 1 + .../mobile/src/hooks/useCheckForUpdates.ts | 2 +- .../store/zustand/updates/useUpdatesStore.ts | 10 ++++-- .../mobile/src/uikit/Icon/IconsMobileList.ts | 3 ++ .../mobile/src/uikit/Icon/generated.types.ts | 9 +++++ .../android/build.gradle | 8 ++--- .../java/com/apkinstall/ApkInstallModule.java | 23 +++--------- 16 files changed, 108 insertions(+), 30 deletions(-) create mode 100644 packages/mobile/src/assets/icons/png/ic-download-28@4x.png create mode 100644 packages/mobile/src/assets/icons/png/ic-exclamationmark-triangle-28@4x.png create mode 100644 packages/mobile/src/assets/icons/png/ic-update-28@4x.png create mode 100644 packages/mobile/src/assets/icons/svg/28/ic-download-28.svg create mode 100644 packages/mobile/src/assets/icons/svg/28/ic-exclamationmark-triangle-28.svg create mode 100644 packages/mobile/src/assets/icons/svg/28/ic-update-28.svg diff --git a/packages/mobile/android/app/src/main/AndroidManifest.xml b/packages/mobile/android/app/src/main/AndroidManifest.xml index 537281041..24d427b99 100644 --- a/packages/mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/mobile/android/app/src/main/AndroidManifest.xml @@ -37,12 +37,12 @@ + android:resource="@xml/provider_paths" /> { + if (err) { + console.error(err); + return; + } + + if (stdout) { + console.log(`stdout: ${stdout}`); + } + + if (stderr) { + console.log(`stderr: ${stderr}`); + } + }, + ); +} + function setVersion() { console.log('setVersion', version); exec( @@ -47,6 +68,8 @@ function setVersion() { } else { createSymlink(); } + + updateMetadata(); }, ); } diff --git a/packages/mobile/src/assets/icons/png/ic-download-28@4x.png b/packages/mobile/src/assets/icons/png/ic-download-28@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..355a108fa39109c129121b429affeeaa767dc004 GIT binary patch literal 950 zcmeAS@N?(olHy`uVBq!ia0vp^1t8491|*L?_~H$u*pj^6T^Rm@;DWu&Co?cGXM4Ih zhE&XXd*`g*l>mujAD=G}^kvawXyf0@H7&0HMQo+G+K!?G#vO&~jE6-(OxzJDFRpvW z;?$Pq&)?4Z>^DFDP~W~eFYS%DoZZsU0RhP>;hy`{D_uUV`)8^2v+qgPyRRo@RLni= z9zH(jk@qZa`5*Vc=VpuNTP?cRxpbwy*=?&6d*fz0ezH({VDY_bZOa|*4NjlL4xFC0 zzfRmK;&riY_a+}k$8#EWOPEuxQXNW7md8fj%w}|D>t-{^14DynN3Bs%A z{pGy-i1BWGbh;%|oyU!DqN~amRUWB&miX6vmse%3-3BW~ySE?yr{1z>H`~aZw(V`v z0i)L~&KA84a(qHTlSzaNQ z@m+9RM{e5o_isCPtW}y9c4SNOdYOI96~azCPVAka#Kg2tNlchuLqp+#Qc~c@hC@tD zuI@T|asder3r=*n9%JU>I?6&2USfUIAe8aleJ zZK( zK_#By2K$CY!+eHyj6KdA_Cf5b_Ug;(o@>U<;br*!b)R?A#|86kHR8mj8Onm&BUof4 z&q%C#QkyPVa5mvsz}n?}7o5+}-ORD$Lwbtd#MxIE#TeJ~r16A)+P9gbqVd%pw?{F| zJA7m($!yrS$e>N>*be)N{`;hoYc+GlCwpi5uT9hMoIfMRYxkC2Q`D4Tz=)-uAu@H^ VVul3SFknVx@O1TaS?83{1OTMvq&ENn literal 0 HcmV?d00001 diff --git a/packages/mobile/src/assets/icons/png/ic-exclamationmark-triangle-28@4x.png b/packages/mobile/src/assets/icons/png/ic-exclamationmark-triangle-28@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..0976faa2f7784996a4595fe2e814952165c4d3ad GIT binary patch literal 1946 zcmV;L2W9w)P)&U_@9q+OEk(d67MX;#v*`T;LFByE&*AVRp~IUs3c z>-$)dNScv!xQBRi9G3LT*7vibkhEFSLm9-I<3UO1w!W_wfuz-v4rUZ@j=LnC-1`2O zJ(9j!K)gA=()#|EHIgnYDBc`zZhfCIESYY!q?3SO1DgsLbsz8wGkc2>2Z1#RK>^a4YcJ1pnI!bsH3eia>?soO^*Y6U?s${x;#YX8>PLDB~}{xn}lw zf^89o7J(lnO}v9lE*`*N3FFIH&Lq@vFbqaONiQOO5;>)Fk=h}-zN_mX7>s~~w&|2a z+kaKEfl$X=5^b|H2mvL%4%pel#R&;EeeV4-g&fr8G#60PD&RKyb*R=P*gUI8c?R6p z)x9arD*)^Q&hP0XWpJKi^Gs%d_x1GAo2CLvS_|Bq!PT=X*&NSjB{iMyYaM|%0WZkl zr(nqkzhwmOAzzxrx=J>qm?li&HKB=slHLTo zJ)_GMF>5{@_02Ku6va4$hbYn#6vl1~Wdla_B6{SW5euS`Pt28m9)DZA&;KQX0 zDJo!>U0rLkH)eULhJXM!O3E==KbF!Fcnf)E{U>2V#I>gvtHpfQ5;Dw-QB1%tyZXJQ z{EuJ;m}Dwz8mM_L%&eqWmvUZ2z%IM`OQrmeVGXcjg6norb{u#-s|X#MB00FF9`I$r z1%-Ss#1+7n1-{<`e6Uhop2-D-XOf-lzY0mG5VEUVs)D80lSRld#T&TEF~TXHk;X>ayiW127VqFZy`=5 zb5?h@2$b}C;6P5F%a|Qzwm*lXEDyWOQ2r@!UJidNfL{UUnc1{PmRE?qw50C>?@Y0E#_}CAi_RTQ9mwCFXy=UQ8!1M8 zRwI56yeie+na4q3TgrjzeO4o`0sh;=-U%E7u1!4+KUqLC`w8%cRD0+D+}bC_u1>g<%IRDqka9Y0FDAz zn%QjZm~RxhH@BP)d;++fdi&6q3P%aEM4!s}PiRHf#Jb}(-az=fnzIOd1z$**tX1aU92S9LI4S$8j9TaU92S9LI4S g$8j9TafZVG0NuJWrcsc&P5=M^07*qoM6N<$f+q~6M*si- literal 0 HcmV?d00001 diff --git a/packages/mobile/src/assets/icons/png/ic-update-28@4x.png b/packages/mobile/src/assets/icons/png/ic-update-28@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..24e7ad83773c55f753467f6e3cb90ed8a75f10ad GIT binary patch literal 2493 zcmV;u2}1UXP)BKqJ*l%_Fh8)ImFC=`RG15rQ=lokbo1xooEgn{8>=I_Ja zGYsR*ox9K3_wI9N_Aj{^xcBU{*4^u#eb!!U?R_AV$z(E_OeT}bWHOmdCX>lzGMP-K zkyvU4${^_jz{i36fCa!@V77m?0n>qNz(t@F=mO3FZvk%t2Y`KMcBI+5$D*YSDCzyc z7l22Ahk)B7o%$&73a|xu+02edI&VhO3`tK)dQDP~8c&a;Et0+_X=>{4-?B(rDCswn zE;qqw!_g(_SCST_?vIv1(u0y-l+>HhaD(ZQ^an|cQuj|~ku*orGpd&12Gc9)cXIdQ zOdpaKOFEU-HbHbsS}$o_>b^_vg-V(M><3!$SG^PXl9?S&r9fLM!2@`T)-)c#5@464 z$5Sa#1p_Ag@{yPhJSXYt6hmqihR|-HJ+&T@cmY^vX5GyaScNOFX(zIp? ztil!eGVs|Fr??300saR39XJe}8}RA{CId5oS-6<#y}*OOO8;4Gb^{Na+4%;XyIM$E zTfmJ!C251CRb}owk|s!6Dd{JYPL!Qn3}UOKNiqAXl1MU1f2^}p{wnG7lEybck8zUL zNO~or5uaBD=86qR(tG5hFvGD;(j!gO=Tnk4M>68m&C)wLa>LmMNw3OfAAT-rWkP+P zkaWDH0eh8jo;c=_G)*p$U52xg?oRz(#x!y{$?g(Hd`)BFepqGXyxz_dM*Mc_?=a?( z^nj$31r2yk((KgVVay{}EpV=&5q}#~m(r0KxpDn&U>@*Z|Mq`@{{V;0thcO;Dk5n$ z@FL-HTmg&B?4L38C}luNw*bq4;bMR1fetgfR7Or!@%OZ!6=?dbnLQChhr$MwOT;c` zzyGkQz9k4O5Sr>4-nO!I&yY4GcF6g`nxS!%f?*d7m zkW_^{WHij|8DMK*v&lrLMyRVJ<)Z(~f%#A87z~k>NDyR)NWHzmmIDl!mG*v5d zAn^EmiVAAOijh6hE4b2#vjCFT;9{BevdPS@O1c$SM>A54 z^*pdOby1Y0F5s4wI@I7ooA03QxDFeRzRo;5;JxdC!o~ymb8HP#QbJZreu0~JRgK-iFPmw==_O<(!w07y z1*%j{_Xe=W%&wI&VCYt^;X;JbteGRh#}M`reQGrKnMgR(=~>A>UX zNlLyqOL@c4GBk@YW)nLURq2@I`53*ij#IbZob zBryya8mahjNtu8DBaA#%`@IWN_l_JnX9nsUQMHB=2dq9!L)!g9=ct#xq zJk(l&@IAmMNAfgl5i>Sfbiw}pl4eEJqcV68bt$l(8zuK${@?3?Wo37~j~W$`w3uSG zoY#SE^?F{J8^q2I?8QCqEtK)NQu>xmIi)130sU_6Me}Cuz(bPiDXGhN8j+tngxhSq z2;+g}au0UQ)Imcs1Ab$K)j*kf-Z5Zz$fR~G(y-KyUr(^K8z}_@MPl8dF->gNrA2;z}Ja;0$~X7a%a4Gd0owo$U4K zdzD!m`L3D0TB3bvnpU6Ujkt`sS7K_en%Sn53N)=w(@zJsQ!MCRRg$l4Zfc>e_u6*i z)(VaWLidA-PSY!;%}i$YIy)hZ?V54q>h-UHl0we))j z7tX8HV^yovK{p|33eJ#oN$0Nj;I6oXWp|fv6qPk#AATFmIk=&9CXLrwILGQJaIEU- ztjZg3AbtzVSp#0Nw*R<{3&*_+ykllpBAvJ4w3Gn{;}geI{cDQlzGMP*!lgVT + + + diff --git a/packages/mobile/src/assets/icons/svg/28/ic-exclamationmark-triangle-28.svg b/packages/mobile/src/assets/icons/svg/28/ic-exclamationmark-triangle-28.svg new file mode 100644 index 000000000..599bc4d11 --- /dev/null +++ b/packages/mobile/src/assets/icons/svg/28/ic-exclamationmark-triangle-28.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/mobile/src/assets/icons/svg/28/ic-update-28.svg b/packages/mobile/src/assets/icons/svg/28/ic-update-28.svg new file mode 100644 index 000000000..7bff632bc --- /dev/null +++ b/packages/mobile/src/assets/icons/svg/28/ic-update-28.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx b/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx index 807be90db..026a16c23 100644 --- a/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx +++ b/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx @@ -1,10 +1,11 @@ -import { List } from '$uikit'; +import { Icon, List } from '$uikit'; import React from 'react'; import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; import { UpdateState } from '$store/zustand/updates/types'; import { t } from '$translation'; import { installApk } from 'react-native-apk-install'; import { getUpdatePath } from '$store/zustand/updates/helpers'; +import { Steezy } from '$styles'; const UpdatesCellComponent: React.FC = () => { const version = useUpdatesStore((state) => state.meta?.version); @@ -33,16 +34,42 @@ const UpdatesCellComponent: React.FC = () => { } }, [state, progress]); + const icon = React.useMemo(() => { + switch (state) { + case UpdateState.DOWNLOADING: + return 'ic-download-28'; + case UpdateState.DOWNLOADED: + return 'ic-update-28'; + case UpdateState.ERRORED: + return 'ic-exclamationmark-triangle-28'; + default: + return 'ic-update-28'; + } + }, [state]); + return ( - + + } /> ); }; +const styles = Steezy.create(({ colors }) => ({ + container: { + backgroundColor: colors.backgroundContentTint, + }, +})); + export const UpdatesCell = React.memo(UpdatesCellComponent); diff --git a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx index 3163b2c1f..41031c26e 100644 --- a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx +++ b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx @@ -56,6 +56,7 @@ export const UpdateAppModal = memo(() => { {t('update.remindLater')} + ); diff --git a/packages/mobile/src/hooks/useCheckForUpdates.ts b/packages/mobile/src/hooks/useCheckForUpdates.ts index ea0364788..fd86272b1 100644 --- a/packages/mobile/src/hooks/useCheckForUpdates.ts +++ b/packages/mobile/src/hooks/useCheckForUpdates.ts @@ -7,7 +7,7 @@ import { Platform } from 'react-native'; import Config from 'react-native-config'; const SHOULD_CHECK_FOR_UPDATES = - Platform.OS === 'android' && Config.CHECK_FOR_UPDATES === 'true'; + Platform.OS === 'android' && Config.CHECK_FOR_UPDATES !== 'true'; export function useCheckForUpdates() { const wallet = useSelector(walletWalletSelector); diff --git a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts index 65637e408..b14fbfc19 100644 --- a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts +++ b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts @@ -55,8 +55,14 @@ export const useUpdatesStore = create( }, progressDivider: 1, }); - await download.promise; - set({ update: { state: UpdateState.DOWNLOADED, progress: 100 } }); + const res = await download.promise; + + if (200 <= res.statusCode && res.statusCode < 300) { + set({ update: { state: UpdateState.DOWNLOADED, progress: 100 } }); + return; + } + + set({ update: { state: UpdateState.ERRORED, progress: 0 } }); }, declineUpdate: () => { set({ declinedAt: Date.now() }); diff --git a/packages/mobile/src/uikit/Icon/IconsMobileList.ts b/packages/mobile/src/uikit/Icon/IconsMobileList.ts index 7a637948d..c4040d046 100644 --- a/packages/mobile/src/uikit/Icon/IconsMobileList.ts +++ b/packages/mobile/src/uikit/Icon/IconsMobileList.ts @@ -54,8 +54,10 @@ export const MobileIconsList = { 'ic-donemark-28': require('$assets/icons/png/ic-donemark-28.png'), 'ic-donemark-thin-28': require('$assets/icons/png/ic-donemark-thin-28.png'), 'ic-door-28': require('$assets/icons/png/ic-door-28.png'), + 'ic-download-28': require('$assets/icons/png/ic-download-28.png'), 'ic-envelope-28': require('$assets/icons/png/ic-envelope-28.png'), 'ic-exclamationmark-circle-28': require('$assets/icons/png/ic-exclamationmark-circle-28.png'), + 'ic-exclamationmark-triangle-28': require('$assets/icons/png/ic-exclamationmark-triangle-28.png'), 'ic-explore-28': require('$assets/icons/png/ic-explore-28.png'), 'ic-flash-28': require('$assets/icons/png/ic-flash-28.png'), 'ic-gear-28': require('$assets/icons/png/ic-gear-28.png'), @@ -85,6 +87,7 @@ export const MobileIconsList = { 'ic-trash-bin-28': require('$assets/icons/png/ic-trash-bin-28.png'), 'ic-tray-arrow-down-28': require('$assets/icons/png/ic-tray-arrow-down-28.png'), 'ic-tray-arrow-up-28': require('$assets/icons/png/ic-tray-arrow-up-28.png'), + 'ic-update-28': require('$assets/icons/png/ic-update-28.png'), 'ic-viewfinder-28': require('$assets/icons/png/ic-viewfinder-28.png'), 'ic-wallet-28': require('$assets/icons/png/ic-wallet-28.png'), 'ic-warning-28': require('$assets/icons/png/ic-warning-28.png'), diff --git a/packages/mobile/src/uikit/Icon/generated.types.ts b/packages/mobile/src/uikit/Icon/generated.types.ts index 38aeb4ae5..290110e26 100644 --- a/packages/mobile/src/uikit/Icon/generated.types.ts +++ b/packages/mobile/src/uikit/Icon/generated.types.ts @@ -54,8 +54,10 @@ export type IconNames = | 'ic-donemark-28' | 'ic-donemark-thin-28' | 'ic-door-28' + | 'ic-download-28' | 'ic-envelope-28' | 'ic-exclamationmark-circle-28' + | 'ic-exclamationmark-triangle-28' | 'ic-explore-28' | 'ic-flash-28' | 'ic-gear-28' @@ -85,6 +87,7 @@ export type IconNames = | 'ic-trash-bin-28' | 'ic-tray-arrow-down-28' | 'ic-tray-arrow-up-28' + | 'ic-update-28' | 'ic-viewfinder-28' | 'ic-wallet-28' | 'ic-warning-28' @@ -166,8 +169,10 @@ export const AllIcons = [ 'ic-donemark-28', 'ic-donemark-thin-28', 'ic-door-28', + 'ic-download-28', 'ic-envelope-28', 'ic-exclamationmark-circle-28', + 'ic-exclamationmark-triangle-28', 'ic-explore-28', 'ic-flash-28', 'ic-gear-28', @@ -197,6 +202,7 @@ export const AllIcons = [ 'ic-trash-bin-28', 'ic-tray-arrow-down-28', 'ic-tray-arrow-up-28', + 'ic-update-28', 'ic-viewfinder-28', 'ic-wallet-28', 'ic-warning-28', @@ -279,8 +285,10 @@ export const IconSizes = { 'ic-donemark-28': 28, 'ic-donemark-thin-28': 28, 'ic-door-28': 28, + 'ic-download-28': 28, 'ic-envelope-28': 28, 'ic-exclamationmark-circle-28': 28, + 'ic-exclamationmark-triangle-28': 28, 'ic-explore-28': 28, 'ic-flash-28': 28, 'ic-gear-28': 28, @@ -310,6 +318,7 @@ export const IconSizes = { 'ic-trash-bin-28': 28, 'ic-tray-arrow-down-28': 28, 'ic-tray-arrow-up-28': 28, + 'ic-update-28': 28, 'ic-viewfinder-28': 28, 'ic-wallet-28': 28, 'ic-warning-28': 28, diff --git a/packages/react-native-apk-install/android/build.gradle b/packages/react-native-apk-install/android/build.gradle index 3f0ae57e9..b754bda88 100644 --- a/packages/react-native-apk-install/android/build.gradle +++ b/packages/react-native-apk-install/android/build.gradle @@ -8,18 +8,18 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath('com.android.tools.build:gradle:7.4.1') } } apply plugin: 'com.android.library' android { - compileSdkVersion 28 + compileSdkVersion 33 defaultConfig { - minSdkVersion 16 - targetSdkVersion 27 + minSdkVersion 23 + targetSdkVersion 33 versionCode 1 versionName "1.0" } diff --git a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java index a3f448043..351bc40c5 100644 --- a/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java +++ b/packages/react-native-apk-install/android/src/main/java/com/apkinstall/ApkInstallModule.java @@ -2,30 +2,17 @@ import androidx.annotation.NonNull; -import android.app.PendingIntent; -import android.app.admin.DevicePolicyManager; -import android.content.BroadcastReceiver; -import android.content.ComponentName; -import android.content.Context; +import android.net.Uri; +import android.os.Build; +import androidx.core.content.FileProvider; import android.content.Intent; -import android.content.IntentFilter; -import android.content.IntentSender; -import android.content.pm.PackageInfo; -import android.content.pm.PackageInstaller; -import android.content.pm.PackageManager; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.Callback; import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.HashMap; -import java.util.Map; import java.io.IOException; @ReactModule(name = ApkInstallModule.NAME) @@ -57,12 +44,12 @@ public void installApk(String path) throws IOException { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT>= Build.VERSION_CODES.N) { Uri apkUri = - FileProvider.getUriForFile(_context, context.getApplicationContext().getPackageName() + ".provider", file); + FileProvider.getUriForFile(_context, _context.getApplicationContext().getPackageName() + ".provider", file); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); } else { intent.setDataAndType(Uri.parse("file://" + path), "application/vnd.android.package-archive"); } _context.startActivity(intent); - + } } From dcf6f59ede46498cbfcc7e63536380db4147df17 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 10:53:45 +0400 Subject: [PATCH 11/73] fix: use another path, fix condition to show update suggestion --- packages/mobile/src/hooks/useCheckForUpdates.ts | 2 +- packages/mobile/src/store/zustand/updates/helpers.ts | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/mobile/src/hooks/useCheckForUpdates.ts b/packages/mobile/src/hooks/useCheckForUpdates.ts index fd86272b1..ea0364788 100644 --- a/packages/mobile/src/hooks/useCheckForUpdates.ts +++ b/packages/mobile/src/hooks/useCheckForUpdates.ts @@ -7,7 +7,7 @@ import { Platform } from 'react-native'; import Config from 'react-native-config'; const SHOULD_CHECK_FOR_UPDATES = - Platform.OS === 'android' && Config.CHECK_FOR_UPDATES !== 'true'; + Platform.OS === 'android' && Config.CHECK_FOR_UPDATES === 'true'; export function useCheckForUpdates() { const wallet = useSelector(walletWalletSelector); diff --git a/packages/mobile/src/store/zustand/updates/helpers.ts b/packages/mobile/src/store/zustand/updates/helpers.ts index a7e277e1f..0a99fdd06 100644 --- a/packages/mobile/src/store/zustand/updates/helpers.ts +++ b/packages/mobile/src/store/zustand/updates/helpers.ts @@ -1,8 +1,5 @@ import RNFS from 'react-native-fs'; -import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; export function getUpdatePath() { - return ( - RNFS.DocumentDirectoryPath + `/keeper_${useUpdatesStore.getState().meta?.version}.apk` - ); + return RNFS.DocumentDirectoryPath + `/keeper.apk`; } From b5dd7447f99d4e596a40b000328400487c95e7a1 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 22 Jun 2023 11:17:56 +0400 Subject: [PATCH 12/73] fix: save decline date when user press on close button --- .../ModalContainer/UpdateApp/UpdateApp.tsx | 2 +- .../components/Modal/Sheet/SheetHeader.tsx | 42 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx index 41031c26e..e5d8965d8 100644 --- a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx +++ b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx @@ -27,7 +27,7 @@ export const UpdateAppModal = memo(() => { return ( - + diff --git a/packages/mobile/src/libs/navigation/components/Modal/Sheet/SheetHeader.tsx b/packages/mobile/src/libs/navigation/components/Modal/Sheet/SheetHeader.tsx index d88227f5b..24b571ddb 100644 --- a/packages/mobile/src/libs/navigation/components/Modal/Sheet/SheetHeader.tsx +++ b/packages/mobile/src/libs/navigation/components/Modal/Sheet/SheetHeader.tsx @@ -11,21 +11,22 @@ import { ns } from '$utils'; export interface SheetHeaderProps { title?: string; gradient?: boolean; + onClose?: () => void; } export const SheetHeader = React.memo((props) => { - const { gradient, title } = props; + const { gradient, title, onClose } = props; const { measureHeader, close } = useSheetInternal(); const theme = useTheme(); - + const hasTitle = !!title; React.useLayoutEffect(() => { if (hasTitle) { measureHeader({ nativeEvent: { - layout: { height: ns(64) } - } + layout: { height: ns(64) }, + }, }); } }, [hasTitle]); @@ -33,28 +34,28 @@ export const SheetHeader = React.memo((props) => { return ( {gradient && ( - )} {hasTitle && ( - - {title} - + {title} )} - - + + { + close(); + onClose?.(); + }} + > - + @@ -68,7 +69,7 @@ export const Gradient = styled(LinearGradient)` width: 100%; height: ${ns(46)}px; border-top-left-radius: ${ns(RADIUS.normal)}px; - border-top-right-radius: ${ns(RADIUS.normal)}px; + border-top-right-radius: ${ns(RADIUS.normal)}px; `; export const HeaderCloseButtonWrap = styled.TouchableOpacity.attrs({ @@ -82,8 +83,8 @@ export const HeaderCloseButtonWrap = styled.TouchableOpacity.attrs({ export const Wrap = styled.View<{ absolute: boolean }>` height: ${ns(64)}px; - ${({ absolute }) => - absolute + ${({ absolute }) => + absolute ? ` position: absolute; top: 0; @@ -91,8 +92,7 @@ export const Wrap = styled.View<{ absolute: boolean }>` left: 0; z-index: 3; ` - : null - } + : null} `; export const HeaderCloseButton = styled.View` @@ -107,4 +107,4 @@ export const HeaderCloseButton = styled.View` export const HeaderTitle = styled.View` padding-horizontal: ${ns(16)}px; justify-content: center; -`; \ No newline at end of file +`; From f87410883443983ca01cf996c0a621a321b6b408 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 23 Jun 2023 04:00:30 +0400 Subject: [PATCH 13/73] Delete lefthook.yml --- lefthook.yml | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 lefthook.yml diff --git a/lefthook.yml b/lefthook.yml deleted file mode 100644 index 0f013f569..000000000 --- a/lefthook.yml +++ /dev/null @@ -1,35 +0,0 @@ -# EXAMPLE USAGE: -# -# Refer for explanation to following link: -# https://github.com/evilmartians/lefthook/blob/master/docs/configuration.md -# -# pre-push: -# commands: -# packages-audit: -# tags: frontend security -# run: yarn audit -# gems-audit: -# tags: backend security -# run: bundle audit -# -# pre-commit: -# parallel: true -# commands: -# eslint: -# glob: "*.{js,ts,jsx,tsx}" -# run: yarn eslint {staged_files} -# rubocop: -# tags: backend style -# glob: "*.rb" -# exclude: "application.rb|routes.rb" -# run: bundle exec rubocop --force-exclusion {all_files} -# govet: -# tags: backend style -# files: git ls-files -m -# glob: "*.go" -# run: go vet {files} -# scripts: -# "hello.js": -# runner: node -# "any.go": -# runner: go run From 40aaf074d21469595fc8a223af07a06c663763fd Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 26 Jun 2023 09:21:08 +0400 Subject: [PATCH 14/73] fix: correct ru locales --- packages/mobile/src/translation/locales/ru.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index 887eccd28..407027a9e 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -826,15 +826,15 @@ }, "update": { - "title": "Обновить Tonkeeper", + "title": "Обновление Tonkeeper", "version": "Версия {{version}}", - "description": "Новая версия Tonkeeper уже доступна. Вы можете установить его.", - "mb": "{{size}} MB", - "download": "Установить", - "downloading": "Загрузка… {{progress}}%", + "description": "Доступна новая версия Tonkeeper. Вы можете скачать её прямо сейчас.", + "mb": "{{size}} МБ", + "download": "Скачать", + "downloading": "Скачивание… {{progress}}%", "remindLater": "Напомнить позже", "tap": "Нажмите, чтобы обновить", - "retry": "Ошибка загрузки. Нажмите чтобы повторить попытку." + "retry": "Ошибка загрузки. Нажмите, чтобы повторить попытку." } } From eb041085bfde8997bbbc4167b69982aa79f24ea9 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 26 Jun 2023 09:24:28 +0400 Subject: [PATCH 15/73] review fixes --- .../mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx | 8 ++++++-- .../src/core/ModalContainer/UpdateApp/UpdateApp.tsx | 2 +- packages/mobile/src/uikit/List/ListItem.tsx | 9 ++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx b/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx index 026a16c23..efb113c67 100644 --- a/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx +++ b/packages/mobile/src/core/ApprovalCell/Updates/UpdatesCell.tsx @@ -48,8 +48,9 @@ const UpdatesCellComponent: React.FC = () => { }, [state]); return ( - + { }; const styles = Steezy.create(({ colors }) => ({ - container: { + list: { backgroundColor: colors.backgroundContentTint, }, + container: { + paddingVertical: 12, + }, })); export const UpdatesCell = React.memo(UpdatesCellComponent); diff --git a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx index e5d8965d8..a0e21a173 100644 --- a/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx +++ b/packages/mobile/src/core/ModalContainer/UpdateApp/UpdateApp.tsx @@ -30,7 +30,7 @@ export const UpdateAppModal = memo(() => { - + {t('update.title')} diff --git a/packages/mobile/src/uikit/List/ListItem.tsx b/packages/mobile/src/uikit/List/ListItem.tsx index 1453f1008..6397886a5 100644 --- a/packages/mobile/src/uikit/List/ListItem.tsx +++ b/packages/mobile/src/uikit/List/ListItem.tsx @@ -24,6 +24,7 @@ export interface ListItemProps { disabled?: boolean; valueStyle?: StyleProp; + containerStyle?: StyleProp; picture?: string; @@ -113,7 +114,13 @@ export const ListItem = memo((props) => { onPress={props.onPress} disabled={!props.onPress || props.disabled} > - + {hasLeftContent && ( {leftContent} From b35ebea2c2a37ef430ff9c01d8579466ee08e57b Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Mon, 26 Jun 2023 19:37:44 +0300 Subject: [PATCH 16/73] feat(mobile): renew domain --- .../assets/icons/png/ic-fire-badge-16@4x.png | Bin 0 -> 1133 bytes .../assets/icons/png/ic-fire-badge-32@4x.png | Bin 0 -> 4059 bytes .../assets/icons/png/ic-sale-badge-32@4x.png | Bin 0 -> 2174 bytes .../assets/icons/svg/16/ic-fire-badge-16.svg | 10 ++ .../assets/icons/svg/32/ic-fire-badge-32.svg | 23 ++++ .../assets/icons/svg/32/ic-sale-badge-32.svg | 17 +++ .../src/core/NFT/Details/Details.interface.ts | 1 + .../mobile/src/core/NFT/Details/Details.tsx | 12 +- .../src/core/NFT/LinkingDomainButton.tsx | 4 +- packages/mobile/src/core/NFT/NFT.tsx | 53 ++++++- .../mobile/src/core/NFT/RenewDomainButton.tsx | 130 ++++++++++++++++++ .../src/core/NFTs/NFTItem/NFTItem.style.ts | 8 ++ .../mobile/src/core/NFTs/NFTItem/NFTItem.tsx | 2 +- packages/mobile/src/libs/Tonapi/Tonapi.ts | 33 +++++ .../MainStack/TabStack/TabStack.tsx | 2 + .../mobile/src/store/zustand/domains/types.ts | 10 ++ .../zustand/domains/useExpiringDomains.ts | 59 ++++++++ .../mobile/src/tabs/Wallet/NFTCardItem.tsx | 19 ++- .../mobile/src/translation/locales/en.json | 9 ++ .../mobile/src/translation/locales/ru.json | 11 ++ .../mobile/src/uikit/Icon/IconsMobileList.ts | 3 + .../mobile/src/uikit/Icon/generated.types.ts | 9 ++ packages/mobile/src/utils/date.ts | 16 ++- 23 files changed, 421 insertions(+), 10 deletions(-) create mode 100644 packages/mobile/src/assets/icons/png/ic-fire-badge-16@4x.png create mode 100644 packages/mobile/src/assets/icons/png/ic-fire-badge-32@4x.png create mode 100644 packages/mobile/src/assets/icons/png/ic-sale-badge-32@4x.png create mode 100644 packages/mobile/src/assets/icons/svg/16/ic-fire-badge-16.svg create mode 100644 packages/mobile/src/assets/icons/svg/32/ic-fire-badge-32.svg create mode 100644 packages/mobile/src/assets/icons/svg/32/ic-sale-badge-32.svg create mode 100644 packages/mobile/src/core/NFT/RenewDomainButton.tsx create mode 100644 packages/mobile/src/store/zustand/domains/types.ts create mode 100644 packages/mobile/src/store/zustand/domains/useExpiringDomains.ts diff --git a/packages/mobile/src/assets/icons/png/ic-fire-badge-16@4x.png b/packages/mobile/src/assets/icons/png/ic-fire-badge-16@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..fc00d00809993959694395b1a4e0dbd65019cde4 GIT binary patch literal 1133 zcmV-z1d{uSP)mEG)jD6R5V$M3q=f3(PbP6 zViX^col9{Lab*xe5knBvjSG!#-RR29h?7kcqWD5Yd;~RPdO*y~d@iaRC#~I8b?>RF z(Qn)5p8C(Zbx++}by_M6uoQS2m;??0TS{xF3b2>6`4e~^IIp(0A^<1&ca8zq*VdO6 z;JN|9_m~0ht*tW~z*B()0L=bxlK^}Wk$~Pz*j`(&DZmKuM`Qv3P6C(Z*0m(}01Mb9 zX+?tlYDq6;(o!Day@b2JkX^O4w+6TzU)-8-6mYq;m3jpBNm|@f0k7CDRHbCRwx z^mmh?ue<>F0rN&vzsDCjw3@H4z*Ukyku+lLdd4}o(%7f%BY>~e@5(-SDbwR><`h^W z=`BfHt$gU(BRs7{LMvj04{RcVw!>wL#u0-yOm+*r~zY=#(m_bYpxFu!8MaGRGgO~)|U?8Lx zYeEJw30P|&q!t&23}OBqB`$5ia!Hetwxy~n#1To` zopWbmFGyb7@rMpm%F_qbhK{70opVWz6v>~u&bcoo?U6K>dTmDLB<)TOz7@bD`8I%) zm&r6Er(poW~!^J^@^uOJ|Wy4q&aM+vOXp zu9iP)Un8m4{oRptQqni_TW}MSK6K9goLk#pjV0!-)is7<00000NkvXXu0mjfS%3n$ literal 0 HcmV?d00001 diff --git a/packages/mobile/src/assets/icons/png/ic-fire-badge-32@4x.png b/packages/mobile/src/assets/icons/png/ic-fire-badge-32@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..21fd50c79a3a9bf6c8a7c40c393b3ccc33215052 GIT binary patch literal 4059 zcmV<14jRKkESZNdQA2QR<6_a0!lx_((*ZI8Gb z+O&x?$(T5rG%+URVL~P*CdQVwsgso0L>t>URue2uRcMVd5eg#mDDqYWF`}qk;KGG_ zxsPA}ICsNwpSAX0YroDqcs?_C&faUSz1MH;_1(Yq*n6)F4H`6P(4aws1`QfCXwaZR zg9Z&6G-%MEL4yVj8Z>Co;3P!V+5pe6xgL_c6$SEk7C@F|uUk>P-2_lndFw_HZx;d7 zs+`^n;ba$pFXi)A2)F*qV#rWDtOD8Hz5eZROTf1obX}EGysjT4Y(lH4{NS3m}V1JsvM20$dJ! z1egxA0sDZ>z#^s8+KBVSRiM`*s8>|XUn$~mSmmFHTr48bN;Jzv5wFpW@WmEvVixv*6ytvm=?(C)EQ@~OYX|v2T z%C?%|g%OrS*=k$)#}Sc7fj_P~N@PC|Kfa!4o*TpE7am~loavNG?~bwUY2YfQRB!lf zG5e-4o48D<7Xf5l`3l$%v{xPZ!~0gVbj5|o_nVuJFz-{VnREUnKy!p0j{<+HRFye# zB4`M}0+XF_m9G_oh|C0@sX9{R09W5MiowC^rg734FY@>E25D}Z9AW33N~!s{S9;Av zP!D~8r1ShyUSN*)=+1*LXe%FJ$L@*z`MguvyYK0U{J$b1S5n>XTTe(i#-+x00k~Wk z+q4R}N}FoKw!@Lu^z^jz$#2eP_pARKkfP4TMYH`x9&be%tuLu}YS z)ylH|ff3yBoiiC6eA$rVuSH~Jj7{Nf-G1))Du687ePsx{L3@@xZ#+l;zzFMHyAHpL z1wVhu5IYL^T!d{=Bo%%ld=-ERYgey3RzxlX-mg9L{r}aZ4UgittL8*>3cnyC!%Vgq zw&TcL1U?EN?H!=?0wU4}d|!LS;NTv9_w4zW=YK1Id+#aehiYSi4~6ZBvD37l8@>r3 zt07-ySn&I4;6hD0c30L1CR9^Vy+%)2ExR71l@iv_#}WNu0O8R7fky;M7d*D&4Wv}(|fGd z(ndXxuRITtZcWTcV7AFNO_;3+G82a{0!Z5tiVFKXK;OO}KC+qnetoG!-gVQ?a?CL+_GSRBS%MSFg@r2 z_|M-iXUXz(6FyOl8*|7I(}kUg({>0GQ40ZNHU6!1{Z|5a8jsk#V+1s7#uU?elnG0g*Mca_T$2hMihmuVOE_X5xE+;&Jf+ht^fEsukJg|*0@wmobUolxs3NK zxd!;o(01V+LLWSUO##Exye*W6e0uKr)jHN~iECrCW6lMyraZ$}L?ryGdLbP`9|TZ| zRmTsw4Va)k!}gb!^UKHIm$6;ZTykF8>sSK*b?8G=+ozqGP?P|&Xs?31e>`xbHbr0G zPUbC`l2W&&`_&~{=V8rzJ~rAJ>mO5 z>!SBqnuDQ_P7Zb3&bUZ4m8WHx3M zkx{_)+Q?n6tYqc-^IXrFn)cQ%;)c^pmYtX-Jk&j!@BQ;$L&`D0$A-2G@dCbh0Gr{C z0zQiV?(gUJyHC%udKe>+Xqt%l{cRytE8dnTG(grs#kchkm;A&*lxPL5g zi8k_I7MtG2DTbdf-l+}Wv3of`dFV22+*4~VK;#Wg%m^UKC?-)eQ1n!=4%=D3i?wO{ z23}^(rsBr@Iu`xrN;(hyhMPY=j^?Iu96q|6#ZUBc|08oKzm;5#NQqs0wsZCb-HRj_ z0Z*cz8qRd8xE2CP>bmrI|MNR{Qhx8hwmiA&DxO>w?AgsguG>7o+1lxh@bd%ESA1$Q z_|gf4=*}O2etf@rQ~nQn@?zr)rUyu8#vJMD?u|EHo&rdEr<;z`FVwVli|JiF|Jl9A zv>rj=7IJ@etkxdDX9Wv;fk$u6JrvbRDkk2p|nd zdrY&I?G*G{Sgk#P30>j!whnq*hIo`3G{jVfo7{ihy$@hRl=1onoZ6aoA7$1DZLKET zO)r>2#(k^21dw#5FDhM^Hg@#LsEg${qu*h&y|6O*<^iI3O&dD-blq%PePFgdc)=ve zTU1W?EP!yKwrNv!Op0FH&u2O&nwkK8S#!W=0fgDE4V^XJeq}G;nAKrgm?|uQx_=|c z1yf=5>+nn%KN+R!@Bi&6C7e25|3MNhDO)nNs0e0G+eAs} zCbxQl6^5fux|u**lq!#zt5^62xb9C(pJn;WCqCS1hrn=gWm%>bZ8q#sxUe86Z)-@q=ux}b;6FHW z&3+#c^*@L<09Pob`mn3$s7kkO8VVPH>HJYIHzx7|03y;(d6qExfB%T=<x2fK+Sq5k7tGYUa-Ah?wLFSPRTmN(Hl)S>FA+eNz}v8v%sFlL{dG8+d}nL^THi zLMNM^-^ec>8O#4|n{NDu&xBIK%xRnW#D_cSm~<{m>E`ysJOO-U=xJY)3eVL2gC7E@ z+;5vU`{5r$1ZNwE=vYrAd=OJa`^Uj(3wbG?&`aQ^{WHUm-H zw&zbwk$nK0JhKvk?RK0!Hl%3=l5FetZR4t_#S&{S0tkl{S@GfcxC>i^5HhD09w07X z7ZFtM+jvB9AgTziPKUm0mS8rWm z;jlD!e3HB&T{95g&$99pQ%etElfTU!o7VN)*kK|`kKIKiarxNB8}VVCUDu{S7oOyf z&szMhO@YmR(tNF{wFd~u!xOlK+1e4{+7>4fM_fKO@v-!M+n2UocS-9~5m~k6xit&E3jngMJlFFj zA?v&Oq%@$wF}%vi39)u N002ovPDHLkV1iNd$g%(c literal 0 HcmV?d00001 diff --git a/packages/mobile/src/assets/icons/png/ic-sale-badge-32@4x.png b/packages/mobile/src/assets/icons/png/ic-sale-badge-32@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..a922930c8624dcc47b7f8dcf7302f59ffd0f3cff GIT binary patch literal 2174 zcma)8X*kpi7yoORk$p+_ZLU50zI5jfhOv(u8iW~ZsEMMhG?U>bGeoi!ULj4GTZAE7 z7&qf)FNPv}E=9J8F=lx6@%{EbXZbzn!+D9Egs=#-lHUy|Y8rvhYDd6l<}CP)h)>8q+$8APx++E2TO7Y$|cH^)ix!(#J^jxsq4 z(tEp<%F4f1nQiQ$eQfje7@^H$@8|<{eP!K-Sgw`+|ERH1)gM4Uc_PWCT(AJ-$~|h&>^<3vL?HCDN8M~4)I2yv zTTVr7N#Z~j8hKsPtrzI1^Y|)IRwP~#0+d?Dg^@gy@f~Oeua_aw)Uh{_x`)>BU-^;q zzMkjYNldhI;DT9H%6Z}Ja?_iP zpzKhY^l)xL4YWwF<&2mZw1b*j(48b3&VUfxfa0*FXSOZO?vZfkDjd;sD{Wi8uV7ya zK-z;c7K4B^RYNNAe0}^iJ2vNihZ5Z!_*8IH-Tvs%VAx}4Jz{BXd-y}aeoi=7Z~#Aj zR=?M(tHN5VU_k%Z}dh@{nB=A~EsVLuq z{6*Sp8nGiuY|@==>+D>|`bp}wHSpjWP3gZD4{N~y{1R!^tAB6Z2p@BAp+YN)D7J;$ zCh%y{SU{}OQvB3lX%jxiV(LIuJ;N#*!xzs=?=&BzxwaQCfao6fLfrkpha1z(3!Tm` zvMNjdO|Mu$?Mrm0b_u~S?rHFJUDPQ4yo>kJnT|zx{wd{xX&^D1G$hhjShxqU!1Nz? zH>xGx4>p^Ze^8#Fx&LSBS^w+a$2_NP@mP&@?FiVwK!Wl1zx&IAfJc`uEOw1GG8cDw z(zG;lN@`!G%x5dK*$!bbQ0Wz(+#5z5)Q8m`vRdomQvM43#?{CHjzonzY|bJb%@Ar4 z5=$gpI%|MkTIP9yaA1Nfbm#oh{z{0o2XOR?W(17)z;o5Rs$>PXXbAr{w40V7TE^jW zM!e0CgHPt(GlvI6K`fO^i2bO;`5}e%+}*%&T1dnU-yHI7=|^0Ce|xgZsCwyIT=PtJ zSdYu&pZ(1zq6C1d}eRFlG&rF&Q9-{JuEPFRu7f@lM_(n&-`7 zDd`IYxVUmha&Q%~1Cu)tCmEf4w*GD&^I6km_U?o_vzokcrb|G){nt`+;jJv;1GW$! zYKdH?8bT9)KMRxqu~ryMXDb)PhVMf&?j@DRHsB0mM~Vn4;F`Mj?_9WD>deWBq#ds~ zC|iQ=6-ntdt+hjJ3{~QyrVzVK{bx}i01zjL%wg9oh2j@nOXl~CkiWagsoYp5e+dQB zBzh!VJOAC=l4@n6`o@QVg?ML#a`}wG?H#L?!d-Pg`to2Ig=r2?`vMPjofrVi`QsZ+qN&Q=V-)|l}A^eKTA?c z0y{OD$cx0=N(wQQp=OMaw}@j}(|jz7>&53f*b})dtI@;<(sl>TvnPexdHwgSENrtR z?a8d%D_r>G0ZUahRSp9Y+z(sg0$G{es;N8*(DM7)j(Bt-E~r&EJx>;1)NyXZ?a|3B z&<*g_JrNmt+{x})F-(}-gcDaGs9Lx7n5Xvv%dCm}ChS-~dhYgts3J@wTVLMeClSh{ zzKI3+!$>q`HAPaZIY{;&%?GXRU zZ^BpKkuHbcoWLG9U6x85tZ&($Y|<9ig5w)$a=IG=(zMONJ*1G-_w)rHZwlh~&ct)boV)gh=}lHg1&4FmM@a zx=QiG`kvOgkuD@QDeP4FPoG+Uj@KKYBK*lRI0u)>fI4?kD*~^#J`7hyOTT+C$vYB- zp4JG^jC_)EA4jup!MxouqSxwni`7`GQw&qWW_)7AugTMW($oT%ow)XDRBOj?8VpFE z4BZEH@1)vxM>pv?$Ts=VUc*?&}&jMuD7Ggk&9eCpt3T>38|)2L|QIfwP(N*6A|mFeL2Hq+uYZm4K2{ z|CA>I-CXR3tjNLrlStx}PwSF8HHeSLb*#t(B#Y#Dc~wf}*kHP7LofhWLJH8DowTDz z7eH$=z-9)+;>v7WvN?V{CJ0}q2Z~=bwbK&R#3M7nz)0h!@3jb$M&uX(54cP%;n(>w z9o=x5m^B_+OxaYdR-S@YGpwWLZTxMjB%=R$E%tW;6INi9mqmDTXQQB==PqUDQR*rD nTc|A7sqYrg|D0@N+##el=JXSD`6|KVhXQbR@IchqVN?DKMbZO# literal 0 HcmV?d00001 diff --git a/packages/mobile/src/assets/icons/svg/16/ic-fire-badge-16.svg b/packages/mobile/src/assets/icons/svg/16/ic-fire-badge-16.svg new file mode 100644 index 000000000..749965b81 --- /dev/null +++ b/packages/mobile/src/assets/icons/svg/16/ic-fire-badge-16.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/mobile/src/assets/icons/svg/32/ic-fire-badge-32.svg b/packages/mobile/src/assets/icons/svg/32/ic-fire-badge-32.svg new file mode 100644 index 000000000..3d755ec7f --- /dev/null +++ b/packages/mobile/src/assets/icons/svg/32/ic-fire-badge-32.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/mobile/src/assets/icons/svg/32/ic-sale-badge-32.svg b/packages/mobile/src/assets/icons/svg/32/ic-sale-badge-32.svg new file mode 100644 index 000000000..7c4426ede --- /dev/null +++ b/packages/mobile/src/assets/icons/svg/32/ic-sale-badge-32.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/packages/mobile/src/core/NFT/Details/Details.interface.ts b/packages/mobile/src/core/NFT/Details/Details.interface.ts index 5eb9d3584..8b49f7c18 100644 --- a/packages/mobile/src/core/NFT/Details/Details.interface.ts +++ b/packages/mobile/src/core/NFT/Details/Details.interface.ts @@ -4,4 +4,5 @@ export interface DetailsProps { standard?: string; chain?: string; ownerAddress: string; + expiringAt?: number; } diff --git a/packages/mobile/src/core/NFT/Details/Details.tsx b/packages/mobile/src/core/NFT/Details/Details.tsx index 239604acd..44571d389 100644 --- a/packages/mobile/src/core/NFT/Details/Details.tsx +++ b/packages/mobile/src/core/NFT/Details/Details.tsx @@ -8,6 +8,7 @@ import { maskifyTonAddress } from '$utils'; import { getServerConfig } from '$shared/constants'; import { openDAppBrowser } from '$navigation'; import { Toast } from '$store'; +import { format } from 'date-fns'; export const Details: React.FC = ({ tokenId, @@ -15,6 +16,7 @@ export const Details: React.FC = ({ contractAddress, standard, ownerAddress, + expiringAt, }) => { const t = useTranslator(); @@ -39,6 +41,13 @@ export const Details: React.FC = ({ copyableValue: ownerAddress, }); + if (expiringAt && expiringAt > 0) { + result.push({ + label: t('dns_expiration_date'), + value: format(expiringAt, 'dd MMM yyyy'), + }); + } + result.push({ label: t('nft_contract_address'), value: maskifyTonAddress(contractAddress), @@ -66,8 +75,9 @@ export const Details: React.FC = ({ }); } + return result; - }, [t, tokenId, chain, contractAddress, standard, ownerAddress]); + }, [t, tokenId, chain, contractAddress, standard, ownerAddress, expiringAt]); return ( diff --git a/packages/mobile/src/core/NFT/LinkingDomainButton.tsx b/packages/mobile/src/core/NFT/LinkingDomainButton.tsx index dd6fb5c03..8c046f26e 100644 --- a/packages/mobile/src/core/NFT/LinkingDomainButton.tsx +++ b/packages/mobile/src/core/NFT/LinkingDomainButton.tsx @@ -209,7 +209,7 @@ export const LinkingDomainButton = React.memo((props) {!loading && ( <> {needClaim && ( - + {t( props.isTGUsername ? 'nft_link_username_caption' @@ -218,7 +218,7 @@ export const LinkingDomainButton = React.memo((props) )} {isLinkedOtherAddress && ( - + {t( props.isTGUsername ? 'nft_link_username_mismatch_warn' diff --git a/packages/mobile/src/core/NFT/NFT.tsx b/packages/mobile/src/core/NFT/NFT.tsx index 8e33aec0b..f71d4cd96 100644 --- a/packages/mobile/src/core/NFT/NFT.tsx +++ b/packages/mobile/src/core/NFT/NFT.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useMemo, useRef, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import * as S from './NFT.style'; import { Button, Icon, NavBar, Text } from '$uikit'; import Animated, { @@ -7,6 +7,7 @@ import Animated, { } from 'react-native-reanimated'; import { ImageWithTitle } from '$core/NFT/ImageWithTitle/ImageWithTitle'; import { + ONE_YEAR_MILISEC, checkIsTelegramNumbersNFT, checkIsTonDiamondsNFT, compareAddresses, @@ -30,6 +31,10 @@ import { LinkingDomainButton } from './LinkingDomainButton'; import { nftsActions } from '$store/nfts'; import { useNavigation } from '$libs/navigation'; import { openDAppBrowser } from '$navigation'; +import { RenewDomainButton, RenewDomainButtonRef } from './RenewDomainButton'; +import { Tonapi } from '$libs/Tonapi'; +import { Toast } from '$store'; +import { useExpiringDomains } from '$store/zustand/domains/useExpiringDomains'; export const NFT: React.FC = ({ route }) => { const flags = useFlags(['disable_nft_markets', 'disable_apperance']); @@ -38,9 +43,11 @@ export const NFT: React.FC = ({ route }) => { const nav = useNavigation(); const address = useSelector(walletAddressSelector); const nftFromHistory = useNFT(route.params.keyPair); - const [nft, setNft] = useState(nftFromHistory); + const [expiringAt, setExpiringAt] = useState(0); + const [lastFill, setLastFill] = useState(0); + const setOwnerAddress = React.useCallback( (options: { ownerAddress: string }) => { if (!nft.ownerAddress) { @@ -57,6 +64,35 @@ export const NFT: React.FC = ({ route }) => { const isTonDiamondsNft = checkIsTonDiamondsNFT(nft); const isNumbersNft = checkIsTelegramNumbersNFT(nft); + useEffect(() => { + if (isDNS) { + Tonapi.getDNSLastFillTime(nft.address).then((utime) => { + const timeInMilisec = utime * 1000; + setExpiringAt(timeInMilisec + ONE_YEAR_MILISEC); + setLastFill(timeInMilisec); + }); + } + }, []); + + const renewDomainButtonRef = useRef(null); + const expiringDomains = useExpiringDomains((s) => s.actions); + + const handleRenewDNSSend = useCallback(() => { + const timer = setInterval(async () => { + const utime = await Tonapi.getDNSLastFillTime(nft.address); + const timeInMilisec = utime * 1000; + if (timeInMilisec !== lastFill) { + setExpiringAt(timeInMilisec + ONE_YEAR_MILISEC); + setLastFill(timeInMilisec); + renewDomainButtonRef.current?.renewUpdated(); + Toast.show(t('dns_renew_toast_success')) + expiringDomains.remove(nft.address); + + clearInterval(timer); + } + }, 5000); + }, [lastFill]); + const t = useTranslator(); const scrollTop = useSharedValue(0); const scrollRef = useRef(null); @@ -150,7 +186,7 @@ export const NFT: React.FC = ({ route }) => { {nft.name || nft.collection?.name || nft.content.image.baseUrl ? ( = ({ route }) => { isTGUsername={isTG} /> )} + {isDNS && ( + + )} {nft.marketplaceURL && !flags.disable_nft_markets ? ( + + {t('dns_renew_valid_caption', { count: days })} + + + ); + }), +); + +const styles = StyleSheet.create({ + container: { + marginBottom: 8, + }, +}); diff --git a/packages/mobile/src/core/NFTs/NFTItem/NFTItem.style.ts b/packages/mobile/src/core/NFTs/NFTItem/NFTItem.style.ts index 498cabf31..2c1c7d092 100644 --- a/packages/mobile/src/core/NFTs/NFTItem/NFTItem.style.ts +++ b/packages/mobile/src/core/NFTs/NFTItem/NFTItem.style.ts @@ -91,6 +91,14 @@ export const Badges = styled.View` align-items: center; `; +export const FireBadge = styled.View` + position: absolute; + bottom: ${0}px; + right: ${0}px; + flex-direction: row; + align-items: center; +`; + export const OnSaleBadge = styled.View` position: absolute; top: ${0}px; diff --git a/packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx b/packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx index b00b95620..fc9b9f0ca 100644 --- a/packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx +++ b/packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx @@ -38,7 +38,7 @@ export const NFTItem: React.FC = ({ item, isLastInRow }) => { return ( - {item.dns?.replace('.ton', '')} + qwe{item.dns?.replace('.ton', '')} {'.ton'} diff --git a/packages/mobile/src/libs/Tonapi/Tonapi.ts b/packages/mobile/src/libs/Tonapi/Tonapi.ts index e1ca3398c..a77dc0d0b 100644 --- a/packages/mobile/src/libs/Tonapi/Tonapi.ts +++ b/packages/mobile/src/libs/Tonapi/Tonapi.ts @@ -2,6 +2,7 @@ import { getServerConfig } from '$shared/constants'; import axios from 'axios'; import DeviceInfo from 'react-native-device-info'; import { Ton } from '$libs/Ton/Ton'; +import { network } from '$libs/network'; const prepareHeaders = (restHeaders?: { [key: string]: string }) => { return { @@ -199,6 +200,36 @@ async function getBalances(pubkey: string) { return balances; } + +type GetExpiringDNSParams = { + account_id: string; + period: number; +}; + +const getExpiringDNS = async (params: GetExpiringDNSParams) => { + return await network.get(`https://tonapi.io/v2/accounts/${params.account_id}/dns/expiring`, { + headers: { + Authorization: `Bearer ${getServerConfig('tonApiV2Key')}`, + }, + params: { + period: params.period + } + }); +}; + +const getDNSLastFillTime = async (domainAddress: string): Promise => { + const { data } = await network.get( + `https://tonapi.io/v2/blockchain/accounts/${domainAddress}/methods/get_last_fill_up_time`, + { + headers: { + Authorization: `Bearer ${getServerConfig('tonApiV2Key')}`, + }, + }, + ); + + return data?.decoded.last_fill_up_time || 0; +}; + export const Tonapi = { getJettonBalances, getBulkInfo, @@ -208,4 +239,6 @@ export const Tonapi = { resolveDns, estimateTx, sendBoc, + getExpiringDNS, + getDNSLastFillTime, }; diff --git a/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx b/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx index 4a53f9627..437ef8842 100644 --- a/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx +++ b/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx @@ -17,6 +17,7 @@ import { ActivityScreen } from '../../../tabs/Activity/ActivityScreen'; import { WalletScreen } from '../../../tabs/Wallet/WalletScreen'; import Animated from 'react-native-reanimated'; import { FONT } from '$styled'; +import { useLoadExpiringDomains } from '$store/zustand/domains/useExpiringDomains'; const Tab = createBottomTabNavigator(); @@ -25,6 +26,7 @@ export const TabStack: FC = () => { const safeArea = useSafeAreaInsets(); const theme = useTheme(); + useLoadExpiringDomains(); useNotificationsSubscribe(); usePreloadChart(); diff --git a/packages/mobile/src/store/zustand/domains/types.ts b/packages/mobile/src/store/zustand/domains/types.ts new file mode 100644 index 000000000..24184db9c --- /dev/null +++ b/packages/mobile/src/store/zustand/domains/types.ts @@ -0,0 +1,10 @@ +export type RawAddress = string; +export type ExpiringAt = number; + +export type ExpiringDomains = { + domains: { [key in RawAddress]: ExpiringAt }; + actions: { + load: (account_id: string) => void; + remove: (address: string) => void; + }; +}; diff --git a/packages/mobile/src/store/zustand/domains/useExpiringDomains.ts b/packages/mobile/src/store/zustand/domains/useExpiringDomains.ts new file mode 100644 index 000000000..bba92b08b --- /dev/null +++ b/packages/mobile/src/store/zustand/domains/useExpiringDomains.ts @@ -0,0 +1,59 @@ +import { create } from 'zustand'; +import { subscribeWithSelector } from 'zustand/middleware'; +import { ExpiringDomains } from './types'; +import { Tonapi } from '$libs/Tonapi'; +import { useEffect } from 'react'; +import { useWallet } from '../../../tabs/Wallet/hooks/useWallet'; +import { Address } from '$libs/Ton'; + +const initialState: Omit = { + domains: {}, +}; + +export const useExpiringDomains = create( + subscribeWithSelector((set) => ({ + ...initialState, + actions: { + load: async (account_id) => { + try { + const { data } = await Tonapi.getExpiringDNS({ + account_id, + period: 30, + }); + + const domains = {}; + for (let item of data.items) { + domains[item.dns_item.address] = item.expiring_at; + } + + set({ domains }); + } catch (err) { + console.log('err[getExpiringDNS]', err); + } + }, + remove: (address) => { + set(({ domains }) => { + const rawAddress = new Address(address).format({ raw: true }); + const { [rawAddress]: remove, ...rest } = domains; + return { domains: rest }; + }); + } + }, + })), +); + +export function useLoadExpiringDomains() { + const wallet = useWallet(); + const load = useExpiringDomains( + (state) => state.actions.load, + () => true, + ); + + useEffect(() => { + if (wallet) { + load(wallet.address.rawAddress); + } + }, []); + + return null; +} \ No newline at end of file diff --git a/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx b/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx index 0978e9797..f87590717 100644 --- a/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx +++ b/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx @@ -8,6 +8,8 @@ import { useFlags } from '$utils/flags'; import _ from 'lodash'; import React, { memo, useCallback, useMemo } from 'react'; import * as S from '../../core/NFTs/NFTItem/NFTItem.style'; +import { useExpiringDomains } from '$store/zustand/domains/useExpiringDomains'; +import { Address } from '$libs/Ton'; interface NFTCardItemProps { item: any; @@ -20,11 +22,15 @@ export const NFTCardItem = memo((props) => { const flags = useFlags(['disable_apperance']); const t = useTranslator(); + const expiringDomains = useExpiringDomains((state) => state.domains); + + console.log(expiringDomains); + const isTonDiamondsNft = checkIsTonDiamondsNFT(item); const isOnSale = useMemo(() => !!item.sale, [item.sale]); const isTG = (item.dns || item.name)?.endsWith('.t.me'); const isDNS = !!item.dns && !isTG; - + // eslint-disable-next-line react-hooks/exhaustive-deps const handleOpenNftItem = useCallback( _.throttle(() => openNFT({ currency: item.currency, address: item.address }), 1000), @@ -39,6 +45,8 @@ export const NFTCardItem = memo((props) => { return item.name || maskifyTonAddress(item.address); }, [isDNS, item.dns, item.name, item.address]); + const nftRawAddress = useMemo(() => new Address(item.address).format({ raw: true }), []); + return ( ((props) => { uri: item.content.image.baseUrl, }} > - {isOnSale ? : null} + + {isOnSale && } + {isTonDiamondsNft && !flags.disable_apperance ? ( @@ -59,6 +69,11 @@ export const NFTCardItem = memo((props) => { ) : null} + {expiringDomains[nftRawAddress] && ( + + + + )} diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index e54d8d156..dfcfb78e2 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -113,6 +113,15 @@ "spam_action": "Spam", + "dns_renew_toast_success": "Domain renewed for 1 year", + "dns_expiration_date": "Expiration date", + "dns_renew_until_btn": "Renew until %{untilDate}", + "dns_renew_in_progress_btn": "Domain renew in progress…", + "dns_renew_valid_caption": { + "one": "Valid for %{count} more day", + "other": "Valid for %{count} more days" + }, + "nft_title": "NFTs", "nft_about_dns": "TON DNS is a service that allows users to assign a human-readable name to crypto wallets, smart contracts, and websites. \n\nWith TON DNS, access to decentralized services is analogous to access to websites on the internet.", "nft_marketplace_banner_title": "Your NFT tokens will be stored here", diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index 8bae96961..84fc29fd1 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -113,6 +113,17 @@ "spam_action": "Спам", + "dns_renew_toast_success": "Домен продлён на 1 год", + "dns_expiration_date": "Дата окончания аренды", + "dns_renew_until_btn": "Продлить до %{untilDate}", + "dns_renew_in_progress_btn": "Выполняется продление домена…", + "dns_renew_valid_caption": { + "one": "Действителен ещё %{count} день", + "few": "Действителен ещё %{count} дня", + "other": "Действителен ещё %{count} дней", + "many": "Действителен ещё %{count} дней" + }, + "nft_title": "NFT", "nft_about_dns": "TON DNS — сервис, который позволяет задать криптокошелькам, смарт-контрактам или сайтам короткие читаемые имена. \n\nС TON DNS доступ к децентрализованным сервисам аналогичен доступу к веб-сайтам в интернете.", "nft_marketplace_banner_title": "Здесь будут храниться ваши NFT токены", diff --git a/packages/mobile/src/uikit/Icon/IconsMobileList.ts b/packages/mobile/src/uikit/Icon/IconsMobileList.ts index beee12840..e917cfbd9 100644 --- a/packages/mobile/src/uikit/Icon/IconsMobileList.ts +++ b/packages/mobile/src/uikit/Icon/IconsMobileList.ts @@ -22,6 +22,7 @@ export const MobileIconsList = { 'ic-done-16': require('$assets/icons/png/ic-done-16.png'), 'ic-done-bold-16': require('$assets/icons/png/ic-done-bold-16.png'), 'ic-ellipsis-16': require('$assets/icons/png/ic-ellipsis-16.png'), + 'ic-fire-badge-16': require('$assets/icons/png/ic-fire-badge-16.png'), 'ic-getgems-16': require('$assets/icons/png/ic-getgems-16.png'), 'ic-globe-16': require('$assets/icons/png/ic-globe-16.png'), 'ic-information-circle-16': require('$assets/icons/png/ic-information-circle-16.png'), @@ -90,6 +91,8 @@ export const MobileIconsList = { 'ic-xmark-28': require('$assets/icons/png/ic-xmark-28.png'), 'ic-checkmark-circle-32': require('$assets/icons/png/ic-checkmark-circle-32.png'), 'ic-exclamationmark-circle-32': require('$assets/icons/png/ic-exclamationmark-circle-32.png'), + 'ic-fire-badge-32': require('$assets/icons/png/ic-fire-badge-32.png'), + 'ic-sale-badge-32': require('$assets/icons/png/ic-sale-badge-32.png'), 'ic-delete-36': require('$assets/icons/png/ic-delete-36.png'), 'ic-exclamationmark-triangle-36': require('$assets/icons/png/ic-exclamationmark-triangle-36.png'), 'ic-faceid-36': require('$assets/icons/png/ic-faceid-36.png'), diff --git a/packages/mobile/src/uikit/Icon/generated.types.ts b/packages/mobile/src/uikit/Icon/generated.types.ts index 142869974..d9a5337d0 100644 --- a/packages/mobile/src/uikit/Icon/generated.types.ts +++ b/packages/mobile/src/uikit/Icon/generated.types.ts @@ -22,6 +22,7 @@ export type IconNames = | 'ic-done-16' | 'ic-done-bold-16' | 'ic-ellipsis-16' + | 'ic-fire-badge-16' | 'ic-getgems-16' | 'ic-globe-16' | 'ic-information-circle-16' @@ -90,6 +91,8 @@ export type IconNames = | 'ic-xmark-28' | 'ic-checkmark-circle-32' | 'ic-exclamationmark-circle-32' + | 'ic-fire-badge-32' + | 'ic-sale-badge-32' | 'ic-delete-36' | 'ic-exclamationmark-triangle-36' | 'ic-faceid-36' @@ -133,6 +136,7 @@ export const AllIcons = [ 'ic-done-16', 'ic-done-bold-16', 'ic-ellipsis-16', + 'ic-fire-badge-16', 'ic-getgems-16', 'ic-globe-16', 'ic-information-circle-16', @@ -201,6 +205,8 @@ export const AllIcons = [ 'ic-xmark-28', 'ic-checkmark-circle-32', 'ic-exclamationmark-circle-32', + 'ic-fire-badge-32', + 'ic-sale-badge-32', 'ic-delete-36', 'ic-exclamationmark-triangle-36', 'ic-faceid-36', @@ -245,6 +251,7 @@ export const IconSizes = { 'ic-done-16': 16, 'ic-done-bold-16': 16, 'ic-ellipsis-16': 16, + 'ic-fire-badge-16': 16, 'ic-getgems-16': 16, 'ic-globe-16': 16, 'ic-information-circle-16': 16, @@ -313,6 +320,8 @@ export const IconSizes = { 'ic-xmark-28': 28, 'ic-checkmark-circle-32': 32, 'ic-exclamationmark-circle-32': 32, + 'ic-fire-badge-32': 32, + 'ic-sale-badge-32': 32, 'ic-delete-36': 36, 'ic-exclamationmark-triangle-36': 36, 'ic-faceid-36': 36, diff --git a/packages/mobile/src/utils/date.ts b/packages/mobile/src/utils/date.ts index da0714235..11248c8b7 100644 --- a/packages/mobile/src/utils/date.ts +++ b/packages/mobile/src/utils/date.ts @@ -11,7 +11,7 @@ import { startOfYesterday, } from 'date-fns'; -import {capitalizeFirstLetter} from "$utils/string"; +import { capitalizeFirstLetter } from '$utils/string'; const dateFnsLocale: Record = { ru, @@ -99,3 +99,17 @@ export function formatSubscriptionPeriod(intervalSec: number) { }); } } + +export const ONE_YEAR_SEC = 31622400; // 1 year in seconds = 60 * 60 * 24 * 366 +export const ONE_YEAR_MILISEC = ONE_YEAR_SEC * 1000; + +export function getCountOfDays(start: number, end: number) { + const date1 = new Date(start); + const date2 = new Date(end); + + const oneDay = 1000 * 60 * 60 * 24; + const diffInTime = date2.getTime() - date1.getTime(); + const diffInDays = Math.round(diffInTime / oneDay); + + return diffInDays; +} From 33b61013ee4eed363036c43ef3fb03bd8f4c1b35 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Mon, 26 Jun 2023 19:38:20 +0300 Subject: [PATCH 17/73] fix(mobile): remove log --- packages/mobile/src/tabs/Wallet/NFTCardItem.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx b/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx index f87590717..77a816d66 100644 --- a/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx +++ b/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx @@ -23,9 +23,6 @@ export const NFTCardItem = memo((props) => { const t = useTranslator(); const expiringDomains = useExpiringDomains((state) => state.domains); - - console.log(expiringDomains); - const isTonDiamondsNft = checkIsTonDiamondsNFT(item); const isOnSale = useMemo(() => !!item.sale, [item.sale]); const isTG = (item.dns || item.name)?.endsWith('.t.me'); From d5a0060a6d744728865505a94540936f59e3b676 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Mon, 26 Jun 2023 19:41:13 +0300 Subject: [PATCH 18/73] fix(mobile): typo --- packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx b/packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx index fc9b9f0ca..b00b95620 100644 --- a/packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx +++ b/packages/mobile/src/core/NFTs/NFTItem/NFTItem.tsx @@ -38,7 +38,7 @@ export const NFTItem: React.FC = ({ item, isLastInRow }) => { return ( - qwe{item.dns?.replace('.ton', '')} + {item.dns?.replace('.ton', '')} {'.ton'} From d84340e97f97c417ab7fec58809cfbb67e11047a Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Tue, 27 Jun 2023 14:08:18 +0300 Subject: [PATCH 19/73] bump(mobile): 3.3 329 --- packages/mobile/android/app/build.gradle | 4 ++-- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index 4f5c69df2..f8b5c9606 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,8 +123,8 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 320 - versionName "3.1" + versionCode 329 + versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index cbb46ea4a..e9b1c6576 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 327; + CURRENT_PROJECT_VERSION = 329; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1228,7 +1228,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.2.1; + MARKETING_VERSION = 3.3; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 327; + CURRENT_PROJECT_VERSION = 329; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; @@ -1262,7 +1262,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.2.1; + MARKETING_VERSION = 3.3; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", From 3a2a39b004a1d6b2fc8203434be6ecd699c206ef Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Tue, 27 Jun 2023 16:35:30 +0300 Subject: [PATCH 20/73] fix(mobile): some fixes for renew domain --- .../AddressMismatch/AddressMismatch.style.ts | 1 + .../mobile/src/core/NFT/Details/Details.tsx | 4 +- .../src/core/NFT/LinkingDomainButton.tsx | 2 +- .../mobile/src/core/NFT/RenewDomainButton.tsx | 38 +++++++++---------- .../mobile/src/translation/locales/en.json | 4 +- .../mobile/src/translation/locales/ru.json | 10 ++--- 6 files changed, 28 insertions(+), 31 deletions(-) diff --git a/packages/mobile/src/core/ModalContainer/AddressMismatch/AddressMismatch.style.ts b/packages/mobile/src/core/ModalContainer/AddressMismatch/AddressMismatch.style.ts index 2c6249939..3822c95bb 100644 --- a/packages/mobile/src/core/ModalContainer/AddressMismatch/AddressMismatch.style.ts +++ b/packages/mobile/src/core/ModalContainer/AddressMismatch/AddressMismatch.style.ts @@ -10,4 +10,5 @@ export const Wrap = styled.View` export const FooterWrap = styled.View` padding-horizontal: ${ns(16)}px; + padding-bottom: ${ns(16)}px; `; diff --git a/packages/mobile/src/core/NFT/Details/Details.tsx b/packages/mobile/src/core/NFT/Details/Details.tsx index 44571d389..2be9d65ec 100644 --- a/packages/mobile/src/core/NFT/Details/Details.tsx +++ b/packages/mobile/src/core/NFT/Details/Details.tsx @@ -4,7 +4,7 @@ import { DetailsProps } from './Details.interface'; import { useTranslator } from '$hooks'; import { Highlight, Separator, Text } from '$uikit'; import Clipboard from '@react-native-community/clipboard'; -import { maskifyTonAddress } from '$utils'; +import { getLocale, maskifyTonAddress } from '$utils'; import { getServerConfig } from '$shared/constants'; import { openDAppBrowser } from '$navigation'; import { Toast } from '$store'; @@ -44,7 +44,7 @@ export const Details: React.FC = ({ if (expiringAt && expiringAt > 0) { result.push({ label: t('dns_expiration_date'), - value: format(expiringAt, 'dd MMM yyyy'), + value: format(expiringAt, 'dd MMM yyyy', { locale: getLocale() }), }); } diff --git a/packages/mobile/src/core/NFT/LinkingDomainButton.tsx b/packages/mobile/src/core/NFT/LinkingDomainButton.tsx index 8c046f26e..12b6f2eb9 100644 --- a/packages/mobile/src/core/NFT/LinkingDomainButton.tsx +++ b/packages/mobile/src/core/NFT/LinkingDomainButton.tsx @@ -195,7 +195,7 @@ export const LinkingDomainButton = React.memo((props) }, [record.walletAddress, props.isTGUsername]); return ( - + ); - }), -); + }); + const styles = StyleSheet.create({ container: { diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index 65bb3ae84..561d456d0 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -118,8 +118,8 @@ "dns_renew_until_btn": "Renew until %{untilDate}", "dns_renew_in_progress_btn": "Domain renew in progress…", "dns_renew_valid_caption": { - "one": "Valid for %{count} more day", - "other": "Valid for %{count} more days" + "one": "Expires in %{count} day", + "other": "Expires in %{count} days" }, "nft_title": "NFTs", diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index 44c7285aa..334e7aa77 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -114,14 +114,14 @@ "spam_action": "Спам", "dns_renew_toast_success": "Домен продлён на 1 год", - "dns_expiration_date": "Дата окончания аренды", + "dns_expiration_date": "Истекает", "dns_renew_until_btn": "Продлить до %{untilDate}", "dns_renew_in_progress_btn": "Выполняется продление домена…", "dns_renew_valid_caption": { - "one": "Действителен ещё %{count} день", - "few": "Действителен ещё %{count} дня", - "other": "Действителен ещё %{count} дней", - "many": "Действителен ещё %{count} дней" + "one": "Истекает через %{count} день", + "few": "Истекает через %{count} дня", + "other": "Истекает через %{count} дней", + "many": "Истекает через %{count} дней" }, "nft_title": "NFT", From 968e29df0bfd57228a0b3456dcfbedfffce90cf4 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Tue, 27 Jun 2023 16:38:28 +0300 Subject: [PATCH 21/73] fix(mobile): accent negative for dns renew valid caption --- packages/mobile/src/core/NFT/RenewDomainButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/core/NFT/RenewDomainButton.tsx b/packages/mobile/src/core/NFT/RenewDomainButton.tsx index 607b05343..3f56530a1 100644 --- a/packages/mobile/src/core/NFT/RenewDomainButton.tsx +++ b/packages/mobile/src/core/NFT/RenewDomainButton.tsx @@ -108,7 +108,7 @@ export const RenewDomainButton = forwardRef From 57860ffb17934bec973916ad529ee5a8327045b3 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Tue, 27 Jun 2023 16:39:00 +0300 Subject: [PATCH 22/73] bump(mobile): 3.3 330 --- packages/mobile/android/app/build.gradle | 2 +- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index f8b5c9606..b0da40031 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,7 +123,7 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 329 + versionCode 330 versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index e9b1c6576..7a67399b3 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 329; + CURRENT_PROJECT_VERSION = 330; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 329; + CURRENT_PROJECT_VERSION = 330; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; From a951e125276396c6225224cd2675cd96abc5d2c9 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Tue, 27 Jun 2023 16:47:20 +0300 Subject: [PATCH 23/73] fix(mobile): typo --- packages/mobile/src/core/NFT/RenewDomainButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/core/NFT/RenewDomainButton.tsx b/packages/mobile/src/core/NFT/RenewDomainButton.tsx index 3f56530a1..c235b0492 100644 --- a/packages/mobile/src/core/NFT/RenewDomainButton.tsx +++ b/packages/mobile/src/core/NFT/RenewDomainButton.tsx @@ -95,7 +95,7 @@ export const RenewDomainButton = forwardRef handlePressButton()} + onPress={handlePressButton} mode="secondary" size="large" > From 193f5da185b1919cbcde0f2cf0a4b957b8350403 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Tue, 27 Jun 2023 16:47:52 +0300 Subject: [PATCH 24/73] fix(mobile): amount for renew domain --- packages/mobile/src/core/NFT/RenewDomainButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/core/NFT/RenewDomainButton.tsx b/packages/mobile/src/core/NFT/RenewDomainButton.tsx index c235b0492..97ea2034f 100644 --- a/packages/mobile/src/core/NFT/RenewDomainButton.tsx +++ b/packages/mobile/src/core/NFT/RenewDomainButton.tsx @@ -54,7 +54,7 @@ export const RenewDomainButton = forwardRef Date: Tue, 27 Jun 2023 19:01:26 +0400 Subject: [PATCH 25/73] fix(mobile): config apply --- packages/mobile/android/app/build.gradle | 1 + packages/mobile/android/app/proguard-rules.pro | 3 +++ 2 files changed, 4 insertions(+) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index b0da40031..40c967846 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -263,4 +263,5 @@ dependencies { } apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); +apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle" applyNativeModulesAppBuildGradle(project) diff --git a/packages/mobile/android/app/proguard-rules.pro b/packages/mobile/android/app/proguard-rules.pro index 14c6a227e..a9b9c0b83 100644 --- a/packages/mobile/android/app/proguard-rules.pro +++ b/packages/mobile/android/app/proguard-rules.pro @@ -9,3 +9,6 @@ # Add any project specific keep options here: + +-keep class com.ton_keeper.BuildConfig { *; } + From eff1441a39fd23103e3306852dcc25256a8991e8 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Tue, 23 May 2023 05:11:26 +0400 Subject: [PATCH 26/73] wip --- .../assets/icons/png/ic-disconnect-16@4x.png | Bin 0 -> 1284 bytes .../src/assets/icons/png/ic-refresh-16@4x.png | Bin 0 -> 1272 bytes .../assets/icons/svg/16/ic-disconnect-16.svg | 3 + .../src/assets/icons/svg/16/ic-refresh-16.svg | 3 + .../BrowserNavBar/BrowserNavBar.tsx | 6 ++ .../DevComponents/DevListComponent.tsx | 17 +++- .../src/core/TonConnect/TonConnectModal.tsx | 15 +++- .../src/store/zustand/connectedApps/types.ts | 17 ++++ .../connectedApps/useConnectedAppsStore.ts | 34 ++++++++ .../mobile/src/translation/locales/en.json | 3 +- .../mobile/src/translation/locales/ru.json | 2 +- .../mobile/src/uikit/Checkbox/Checkbox.tsx | 77 ++++++++++++++++++ packages/mobile/src/uikit/Checkbox/index.ts | 1 + .../mobile/src/uikit/Icon/IconsMobileList.ts | 2 + .../mobile/src/uikit/Icon/generated.types.ts | 6 ++ .../src/uikit/List/ListItemWithCheckbox.tsx | 21 +++++ packages/mobile/src/uikit/List/index.ts | 2 + .../PopupSelect/PopupSelect.interface.ts | 2 + .../uikit/PopupSelect/PopupSelect.style.ts | 2 +- .../src/uikit/PopupSelect/PopupSelect.tsx | 7 +- packages/mobile/src/uikit/index.ts | 1 + 21 files changed, 212 insertions(+), 9 deletions(-) create mode 100644 packages/mobile/src/assets/icons/png/ic-disconnect-16@4x.png create mode 100644 packages/mobile/src/assets/icons/png/ic-refresh-16@4x.png create mode 100644 packages/mobile/src/assets/icons/svg/16/ic-disconnect-16.svg create mode 100644 packages/mobile/src/assets/icons/svg/16/ic-refresh-16.svg create mode 100644 packages/mobile/src/uikit/Checkbox/Checkbox.tsx create mode 100644 packages/mobile/src/uikit/Checkbox/index.ts create mode 100644 packages/mobile/src/uikit/List/ListItemWithCheckbox.tsx diff --git a/packages/mobile/src/assets/icons/png/ic-disconnect-16@4x.png b/packages/mobile/src/assets/icons/png/ic-disconnect-16@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..22dc77376e15cf4bd7be145b7e8232987255f920 GIT binary patch literal 1284 zcmV+f1^fDmP)K~#90?VHVS6;&9;7+k0^ZdoWRcP4miYiXi!1NQF_ z@M9$v!qPv$osov3Ld)8MxG}mjCYqu^D|KUH3sIB%b8+V4?R3tWbIzRUw0fVUo4IqJ z_kEu;_k29_RvKc6A^y+E+D@PdU{um!NzY3mMcf3sDH0n6=76>QZw?qs zP;;Mu1UL`$5*FV_4>$*m)Jbrzgm^K92*4OH-$3C-%=_lMZ5064Bt21b?~?lF~)(f9dS;@kR}lUc&(0r0r?)p{&QF-W}}os1Rw(z z3g5YyviN~mQ;s}O#FC~GVG1}&irtz!-|Lnfuhbz;Ix#j0>_53p%t+Sh2yraq|ZpO z#z$h!a{ZCwgVR1W?^|+sA(qs4`D=ZN1g0&qH-Lv?2uG;4u@-ZYTHhyN zKN??-B|INeP@5uPAANx1F@zJi-P_Va+7JPA9JbkccZo1XI=FrNsuSRji9od>ax#YW z9S7kJJT^ExA%aJY6&xn3jkJUPb=55bJiI1F@ZjzNuY~dn^PX=R$Ms z6E9f^m!k;Ph}%3_!SyK+e%8Uf8?+e;lfi^rxl_8$r&0)6MtsCVx=H9{QqG^sZJtS9 zd`>)TBaSBB9wU{}`g!3y^-rFdW`i<(REv0foKzwl%X1E%oNc5ZT9P@PB*4~Kqa~wQ z#8nzJRYGRTa=%Q)Jl_@U2XXN)a7NFQ*Dz1I<4Pj#0SQV9Zd@u{mc6(}8J2t?jTSUaaBT zj0l+H@VX`FD)3~&SU!6J7n<28VBZmfry=4IW1QXUHe=e+RvbaU0iLSCe-L+b6Xc^y zTRTRei`x{v1NgimEAmd`?ni{(;x=P?Z>w+})0ts)UNQ5^H1L%N-;TM>mHT^49(XFWd7al?^H1h u@y8^+FKITv^s%J({!{;6H^dM_B*#A(8opfIWVt~A0000iJLXt8nN-D}iNC`>`Gwzz^;wo-Rd0m2{?x%+{;<|gz%-orC z?riM+!n|D0{Jwu??#!GszmeK#qm7vi6Pp0&kaV-8<&p*^4M^&fG+$DWq=uw=vK^Q7 zlcXOc?US^}81rvI-cCsyB|RnyNn0ch8Dst~<0m&c@Br{0P^UOf0dE0o6GP2t*zBmc zIhNF$}z{wJ(eK-aT0gH2L8Fkbcjb*$iNqjtl@yQqm)&p}gG&vE&{Qba43ye?3 z2(YTM0DvywwU*iS<4qiAgKzNUafR*zK%bmus^1ds^AKs&oj0bQ%F^C1u)k$_GC;URlya2 z?-_qQrjV-Odk~s2a0TEy($QysRlpTM-7|JkOd(al6~Ix?*nZFN|7*Ac_}Me|+L%JB zf-8Unp0T&b6f$i9EcHx=&H!Ci>x&N3r^63ctuHjD`~{3L|491WGyaLVa>@g^4cMDZ z-@gE^DN@AuGNb|IeI?#<0R2quNg4y@HCrfcQS{wN`bz`&#H0D)BE>d(iUF*MpuZG= z)hT)(DN=AD{ud*|z(o;!6ap|G_{F2O4lFEM_~n#T-wy1f5U{VtK1k8|Y?l1S|*=GXSYr{_9As}zZ=R}?!;Bnwf^7R1?16MT5Q?ym~Qb`|5 zx+&)_e@fadX_xE=5j9CCbgoslSJDDWS4z4?(yfw~O6ty8e~+X!#+YL{$Cn2%o9dgT z8;OQ;_xh4StR`RYaA+JM;sv)U0CTWCMQ2)I{1osE({XhQ=mj)dB^9g + + diff --git a/packages/mobile/src/assets/icons/svg/16/ic-refresh-16.svg b/packages/mobile/src/assets/icons/svg/16/ic-refresh-16.svg new file mode 100644 index 000000000..414f3bb3a --- /dev/null +++ b/packages/mobile/src/assets/icons/svg/16/ic-refresh-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx b/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx index 16665ba88..80cc3c75d 100644 --- a/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx +++ b/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx @@ -6,6 +6,7 @@ import React, { FC, memo, useCallback, useMemo } from 'react'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import Share from 'react-native-share'; import * as S from './BrowserNavBar.style'; +import { PopupSelectItemProps } from '$uikit/PopupSelect/PopupSelect.interface'; enum PopupActionType { REFRESH, @@ -17,6 +18,7 @@ enum PopupActionType { interface PopupAction { type: PopupActionType; label: string; + icon?: PopupSelectItemProps['icon']; } interface Props { @@ -61,14 +63,17 @@ const BrowserNavBarComponent: FC = (props) => { { type: PopupActionType.REFRESH, label: t('browser.actions.refresh'), + icon: 'ic-refresh-16', }, { type: PopupActionType.SHARE, label: t('browser.actions.share'), + icon: 'ic-share-16', }, { type: PopupActionType.COPY_LINK, label: t('browser.actions.copy_link'), + icon: 'ic-copy-16', }, ]; @@ -76,6 +81,7 @@ const BrowserNavBarComponent: FC = (props) => { items.push({ type: PopupActionType.DISCONNECT, label: t('browser.actions.disconnect'), + icon: 'ic-disconnect-16', }); } diff --git a/packages/mobile/src/core/DevMenu/DevComponents/DevListComponent.tsx b/packages/mobile/src/core/DevMenu/DevComponents/DevListComponent.tsx index 91305cd05..7e31805c4 100644 --- a/packages/mobile/src/core/DevMenu/DevComponents/DevListComponent.tsx +++ b/packages/mobile/src/core/DevMenu/DevComponents/DevListComponent.tsx @@ -1,15 +1,21 @@ import React from 'react'; import { Steezy } from '$styles'; -import { Screen, List } from '$uikit'; +import { Screen, List, Checkbox } from '$uikit'; import { AttachScreenButton } from '$navigation/AttachScreen'; export const DevListComponent = () => { + const [checked, setChecked] = React.useState(false); + + const handleCheckboxChange = React.useCallback(() => { + setChecked(!checked); + }, [checked]); + return ( } /> - + {}} /> { onPress={() => {}} /> + + + ); diff --git a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx index 729df9db4..253996fc1 100644 --- a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx +++ b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx @@ -7,7 +7,7 @@ import { Linking, StyleSheet } from 'react-native'; import { useTheme } from '$hooks'; import { SelectableVersionsConfig } from '$shared/constants'; import { walletSelector } from '$store/wallet'; -import { Button, Icon, Loader, Text, TransitionOpacity } from '$uikit'; +import { Button, Icon, List, Loader, Spacer, Text, TransitionOpacity } from '$uikit'; import { debugLog, delay, @@ -279,7 +279,6 @@ export const TonConnectModal = (props: TonConnectModalProps) => { {t('ton_login_caption', { name: domain })} - {' '} {maskedAddress}{' '} {SelectableVersionsConfig[version] @@ -287,6 +286,18 @@ export const TonConnectModal = (props: TonConnectModalProps) => { : null} + {isTonConnectV2 ? ( + <> + + false} + /> + + + + ) : null} void; + enableNotifications: ( + chainName: 'mainnet' | 'testnet', + walletAddress: string, + url: string, + ) => void; + disableNotifications: ( + chainName: 'mainnet' | 'testnet', + walletAddress: string, + url: string, + ) => void; }; } diff --git a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts index ac4281d3d..8ead7cd70 100644 --- a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts +++ b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts @@ -9,6 +9,10 @@ const initialState: Omit = { mainnet: {}, testnet: {}, }, + notificationsEnabled: { + mainnet: {}, + testnet: {}, + }, }; export const useConnectedAppsStore = create( @@ -117,6 +121,36 @@ export const useConnectedAppsStore = create( return { connectedApps }; }); }, + enableNotifications: (chainName, walletAddress, url) => { + const fixedUrl = getFixedLastSlashUrl(url); + + set(({ notificationsEnabled }) => { + if (!notificationsEnabled[chainName][walletAddress]) { + notificationsEnabled[chainName][walletAddress] = {}; + } + + const hash = generateAppHashFromUrl(fixedUrl); + + notificationsEnabled[chainName][walletAddress][hash] = true; + + return { notificationsEnabled }; + }); + }, + disableNotifications: (chainName, walletAddress, url) => { + const fixedUrl = getFixedLastSlashUrl(url); + + set(({ notificationsEnabled }) => { + if (!notificationsEnabled[chainName][walletAddress]) { + notificationsEnabled[chainName][walletAddress] = {}; + } + + const hash = generateAppHashFromUrl(fixedUrl); + + notificationsEnabled[chainName][walletAddress][hash] = false; + + return { notificationsEnabled }; + }); + }, removeApp: (chainName, walletAddress, url) => { const fixedUrl = getFixedLastSlashUrl(url); diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index 561d456d0..58a1195f1 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -390,6 +390,7 @@ "about_dapps_learn_more": "Learn more", "actions": { "refresh": "Refresh", + "mute": "Mute", "share": "Share", "copy_link": "Copy link", "disconnect": "Disconnect" @@ -586,7 +587,7 @@ "reminder_notifications_later_button": "Later", "ton_login_title": "Connect to %{name}?", - "ton_login_caption": "%{name} is requesting access to your wallet address", + "ton_login_caption": "%{name} is requesting access to your wallet address\u2028", "ton_login_connect_button": "Connect wallet", "ton_login_back_to_button": "Back to %{name}", "ton_login_success": "Done", diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index 334e7aa77..12155438a 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -602,7 +602,7 @@ "reminder_notifications_later_button": "Позже", "ton_login_title": "Войти в %{name}", - "ton_login_caption": "%{name} запрашивает доступ к адресу вашего кошелька", + "ton_login_caption": "%{name} запрашивает доступ к адресу вашего кошелька\u2028", "ton_login_connect_button": "Подключить кошелёк", "ton_login_back_to_button": "Вернуться в %{name}", "ton_login_success": "Готово", diff --git a/packages/mobile/src/uikit/Checkbox/Checkbox.tsx b/packages/mobile/src/uikit/Checkbox/Checkbox.tsx new file mode 100644 index 000000000..c406aa2da --- /dev/null +++ b/packages/mobile/src/uikit/Checkbox/Checkbox.tsx @@ -0,0 +1,77 @@ +import React from 'react'; +import { Icon, TouchableOpacity } from '$uikit'; +import { Steezy } from '$styles'; +import Animated, { + interpolateColor, + useAnimatedStyle, + useSharedValue, + withTiming, +} from 'react-native-reanimated'; +import { useTheme } from '$hooks'; +import { useEffect } from 'react'; +export interface CheckboxProps { + checked: boolean; + onChange: () => void; + disabled?: boolean; +} + +const Checkbox: React.FC = (props) => { + const { checked, onChange } = props; + const colorProgress = useSharedValue(checked ? 1 : 0); + const { colors } = useTheme(); + + const animatedStyle = useAnimatedStyle(() => { + return { + backgroundColor: interpolateColor( + colorProgress.value, + [0, 1], + ['transparent', colors.accentPrimary], + ), + borderColor: interpolateColor( + colorProgress.value, + [0, 1], + [colors.backgroundTertiary, 'transparent'], + ), + }; + }); + + const iconStyle = useAnimatedStyle(() => { + return { + opacity: colorProgress.value, + }; + }); + + useEffect(() => { + colorProgress.value = withTiming(checked ? 1 : 0, { + duration: 200, + }); + }, [checked, colorProgress]); + + return ( + + + + + + + + ); +}; + +export default Checkbox; + +const styles = Steezy.create(({ colors }) => ({ + checkbox: { + width: 22, + height: 22, + borderRadius: 6, + borderColor: colors.backgroundContentTint, + borderWidth: 2, + alignItems: 'center', + justifyContent: 'center', + }, + checkboxChecked: { + backgroundColor: colors.buttonPrimaryBackground, + borderColor: 'transparent', + }, +})); diff --git a/packages/mobile/src/uikit/Checkbox/index.ts b/packages/mobile/src/uikit/Checkbox/index.ts new file mode 100644 index 000000000..8edbc502f --- /dev/null +++ b/packages/mobile/src/uikit/Checkbox/index.ts @@ -0,0 +1 @@ +export { default as Checkbox } from './Checkbox'; diff --git a/packages/mobile/src/uikit/Icon/IconsMobileList.ts b/packages/mobile/src/uikit/Icon/IconsMobileList.ts index 45c5ea561..4f2064f4e 100644 --- a/packages/mobile/src/uikit/Icon/IconsMobileList.ts +++ b/packages/mobile/src/uikit/Icon/IconsMobileList.ts @@ -19,6 +19,7 @@ export const MobileIconsList = { 'ic-close-16': require('$assets/icons/png/ic-close-16.png'), 'ic-code-16': require('$assets/icons/png/ic-code-16.png'), 'ic-copy-16': require('$assets/icons/png/ic-copy-16.png'), + 'ic-disconnect-16': require('$assets/icons/png/ic-disconnect-16.png'), 'ic-doc-16': require('$assets/icons/png/ic-doc-16.png'), 'ic-done-16': require('$assets/icons/png/ic-done-16.png'), 'ic-done-bold-16': require('$assets/icons/png/ic-done-bold-16.png'), @@ -31,6 +32,7 @@ export const MobileIconsList = { 'ic-loader-small-16': require('$assets/icons/png/ic-loader-small-16.png'), 'ic-magnifying-glass-16': require('$assets/icons/png/ic-magnifying-glass-16.png'), 'ic-pencil-16': require('$assets/icons/png/ic-pencil-16.png'), + 'ic-refresh-16': require('$assets/icons/png/ic-refresh-16.png'), 'ic-sale-badge-16': require('$assets/icons/png/ic-sale-badge-16.png'), 'ic-share-16': require('$assets/icons/png/ic-share-16.png'), 'ic-sliders-16': require('$assets/icons/png/ic-sliders-16.png'), diff --git a/packages/mobile/src/uikit/Icon/generated.types.ts b/packages/mobile/src/uikit/Icon/generated.types.ts index 57dc20b07..f34a7a2b3 100644 --- a/packages/mobile/src/uikit/Icon/generated.types.ts +++ b/packages/mobile/src/uikit/Icon/generated.types.ts @@ -19,6 +19,7 @@ export type IconNames = | 'ic-close-16' | 'ic-code-16' | 'ic-copy-16' + | 'ic-disconnect-16' | 'ic-doc-16' | 'ic-done-16' | 'ic-done-bold-16' @@ -31,6 +32,7 @@ export type IconNames = | 'ic-loader-small-16' | 'ic-magnifying-glass-16' | 'ic-pencil-16' + | 'ic-refresh-16' | 'ic-sale-badge-16' | 'ic-share-16' | 'ic-sliders-16' @@ -137,6 +139,7 @@ export const AllIcons = [ 'ic-close-16', 'ic-code-16', 'ic-copy-16', + 'ic-disconnect-16', 'ic-doc-16', 'ic-done-16', 'ic-done-bold-16', @@ -149,6 +152,7 @@ export const AllIcons = [ 'ic-loader-small-16', 'ic-magnifying-glass-16', 'ic-pencil-16', + 'ic-refresh-16', 'ic-sale-badge-16', 'ic-share-16', 'ic-sliders-16', @@ -256,6 +260,7 @@ export const IconSizes = { 'ic-close-16': 16, 'ic-code-16': 16, 'ic-copy-16': 16, + 'ic-disconnect-16': 16, 'ic-doc-16': 16, 'ic-done-16': 16, 'ic-done-bold-16': 16, @@ -268,6 +273,7 @@ export const IconSizes = { 'ic-loader-small-16': 16, 'ic-magnifying-glass-16': 16, 'ic-pencil-16': 16, + 'ic-refresh-16': 16, 'ic-sale-badge-16': 16, 'ic-share-16': 16, 'ic-sliders-16': 16, diff --git a/packages/mobile/src/uikit/List/ListItemWithCheckbox.tsx b/packages/mobile/src/uikit/List/ListItemWithCheckbox.tsx new file mode 100644 index 000000000..b110ffcd3 --- /dev/null +++ b/packages/mobile/src/uikit/List/ListItemWithCheckbox.tsx @@ -0,0 +1,21 @@ +import React, { memo } from 'react'; +import { ListItem, ListItemProps } from '$uikit/List/ListItem'; +import Checkbox, { CheckboxProps } from '$uikit/Checkbox/Checkbox'; +import { View } from 'react-native'; + +export type ListItemWithCheckboxProps = ListItemProps & CheckboxProps; + +export const ListItemWithCheckbox = memo((props) => { + const { checked, onChange, onPress } = props; + return ( + + + + } + /> + ); +}); diff --git a/packages/mobile/src/uikit/List/index.ts b/packages/mobile/src/uikit/List/index.ts index 2495adf17..b3b7c25d2 100644 --- a/packages/mobile/src/uikit/List/index.ts +++ b/packages/mobile/src/uikit/List/index.ts @@ -1,8 +1,10 @@ import { ListHeader } from './ListHeader'; import { List as ListContainer } from './List'; import { ListItem } from './ListItem'; +import { ListItemWithCheckbox } from './ListItemWithCheckbox'; export const List = Object.assign(ListContainer, { Header: ListHeader, Item: ListItem, + ItemWithCheckbox: ListItemWithCheckbox, }); diff --git a/packages/mobile/src/uikit/PopupSelect/PopupSelect.interface.ts b/packages/mobile/src/uikit/PopupSelect/PopupSelect.interface.ts index 43a3be0fd..f442c0a1a 100644 --- a/packages/mobile/src/uikit/PopupSelect/PopupSelect.interface.ts +++ b/packages/mobile/src/uikit/PopupSelect/PopupSelect.interface.ts @@ -1,6 +1,7 @@ import React from 'react'; import Animated from 'react-native-reanimated'; import { AnchorPosition } from './usePopupAnimation'; +import { IconProps } from '$uikit/Icon/Icon'; export interface PopupSelectProps { items: T[]; @@ -21,6 +22,7 @@ export interface PopupSelectProps { export interface PopupSelectItemProps { children?: React.ReactNode; + icon?: IconProps['name']; value: any; onPress?: (value: any) => void; checked?: boolean; diff --git a/packages/mobile/src/uikit/PopupSelect/PopupSelect.style.ts b/packages/mobile/src/uikit/PopupSelect/PopupSelect.style.ts index 2d1684ff6..29101d0c1 100644 --- a/packages/mobile/src/uikit/PopupSelect/PopupSelect.style.ts +++ b/packages/mobile/src/uikit/PopupSelect/PopupSelect.style.ts @@ -48,7 +48,7 @@ export const ItemCont = styled.View` padding-horizontal: ${ns(16)}px; `; -export const ItemCheckedWrap = styled.View` +export const ItemIconWrap = styled.View` width: ${ns(16)}px; position: absolute; right: ${ns(16)}px; diff --git a/packages/mobile/src/uikit/PopupSelect/PopupSelect.tsx b/packages/mobile/src/uikit/PopupSelect/PopupSelect.tsx index 6b99c30d4..939a21940 100644 --- a/packages/mobile/src/uikit/PopupSelect/PopupSelect.tsx +++ b/packages/mobile/src/uikit/PopupSelect/PopupSelect.tsx @@ -42,6 +42,7 @@ export const PopupSelectItem = Memo( children, onPress, value, + icon, checked, autoWidth, onChangeWidth, @@ -82,9 +83,10 @@ export const PopupSelectItem = Memo( {children} - + {checked && } - + {icon && } + ); @@ -261,6 +263,7 @@ export function PopupSelectComponent(props: PopupSelectProps) { keyboardShouldPersistTaps="handled" renderItem={({ item, index }) => ( { diff --git a/packages/mobile/src/uikit/index.ts b/packages/mobile/src/uikit/index.ts index f1f41c609..396f9b7aa 100644 --- a/packages/mobile/src/uikit/index.ts +++ b/packages/mobile/src/uikit/index.ts @@ -47,3 +47,4 @@ export { Pressable } from './Pressable'; export { ListButton } from './ListButton/ListButton'; export { DraggableFlashList } from './DraggableFlashList'; export { SwapIcon } from './SwapIcon/SwapIcon'; +export { Checkbox } from './Checkbox'; From e7c6ea51fea1fe03ca234d9fa06733bb47cfee7a Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 5 Jun 2023 13:12:20 +0400 Subject: [PATCH 27/73] wip --- .../src/tonApiV2/.openapi-generator/FILES | 5 +- .../@core-js/src/tonApiV2/apis/AccountsApi.ts | 104 ++++++++ .../src/tonApiV2/apis/BlockchainApi.ts | 60 +---- .../src/tonApiV2/apis/EmulationApi.ts | 222 ++++++++++++++++++ packages/@core-js/src/tonApiV2/apis/index.ts | 1 + .../tonApiV2/models/ActionSimplePreview.ts | 29 ++- .../src/tonApiV2/models/DnsExpiring.ts | 73 ++++++ .../tonApiV2/models/DnsExpiringItemsInner.ts | 91 +++++++ .../@core-js/src/tonApiV2/models/Message.ts | 4 +- .../tonApiV2/models/MethodExecutionResult.ts | 4 +- .../@core-js/src/tonApiV2/models/ValueFlow.ts | 26 +- ...wNftsInner.ts => ValueFlowJettonsInner.ts} | 20 +- .../@core-js/src/tonApiV2/models/index.ts | 4 +- .../assets/icons/png/ic-trash-bin-16@4x.png | Bin 0 -> 892 bytes .../assets/icons/svg/16/ic-trash-bin-16.svg | 3 + .../TransactionsList/TransactionsList.tsx | 5 +- .../src/core/DAppBrowser/DAppBrowser.tsx | 7 +- .../BrowserNavBar/BrowserNavBar.tsx | 16 +- .../core/DAppBrowser/hooks/useDAppBridge.ts | 10 +- .../DevComponents/DevListComponent.tsx | 3 +- packages/mobile/src/core/DevMenu/DevMenu.tsx | 15 ++ .../src/core/Notifications/Notification.tsx | 98 ++++++++ .../src/core/Notifications/Notifications.tsx | 81 ++++++- .../Notifications/NotificationsActivity.tsx | 97 ++++++++ .../src/core/TonConnect/TonConnectModal.tsx | 33 ++- packages/mobile/src/core/TonConnect/models.ts | 1 + .../ActivityStack/ActivityStack.interface.ts | 7 + .../ActivityStack/ActivityStack.tsx | 39 +++ .../MainStack/TabStack/TabStack.tsx | 4 +- packages/mobile/src/navigation/helper.ts | 5 + .../mobile/src/navigation/navigationNames.ts | 6 + .../CellSection/CellSection.style.ts | 2 +- .../components/CellSection/CellSection.tsx | 17 +- .../mobile/src/store/subscriptions/sagas.ts | 4 +- .../store/zustand/connectedApps/helpers.ts | 7 + .../src/store/zustand/connectedApps/types.ts | 8 +- .../connectedApps/useConnectedAppsStore.ts | 45 ++-- .../src/store/zustand/notifications/types.ts | 16 ++ .../notifications/useNotificationsStore.ts | 37 +++ .../src/tabs/Activity/ActivityScreen.tsx | 70 +++++- packages/mobile/src/tonconnect/TonConnect.ts | 10 +- .../mobile/src/uikit/Checkbox/Checkbox.tsx | 9 +- .../mobile/src/uikit/Icon/IconsMobileList.ts | 1 + .../mobile/src/uikit/Icon/generated.types.ts | 3 + packages/mobile/src/uikit/List/ListItem.tsx | 8 +- packages/mobile/src/uikit/SwitchItem.tsx | 48 ++-- .../mobile/src/utils/notificationsproof.ts | 85 +++++++ 47 files changed, 1250 insertions(+), 193 deletions(-) create mode 100644 packages/@core-js/src/tonApiV2/apis/EmulationApi.ts create mode 100644 packages/@core-js/src/tonApiV2/models/DnsExpiring.ts create mode 100644 packages/@core-js/src/tonApiV2/models/DnsExpiringItemsInner.ts rename packages/@core-js/src/tonApiV2/models/{ValueFlowNftsInner.ts => ValueFlowJettonsInner.ts} (68%) create mode 100644 packages/mobile/src/assets/icons/png/ic-trash-bin-16@4x.png create mode 100644 packages/mobile/src/assets/icons/svg/16/ic-trash-bin-16.svg create mode 100644 packages/mobile/src/core/Notifications/Notification.tsx create mode 100644 packages/mobile/src/core/Notifications/NotificationsActivity.tsx create mode 100644 packages/mobile/src/navigation/ActivityStack/ActivityStack.interface.ts create mode 100644 packages/mobile/src/navigation/ActivityStack/ActivityStack.tsx create mode 100644 packages/mobile/src/store/zustand/notifications/types.ts create mode 100644 packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts create mode 100644 packages/mobile/src/utils/notificationsproof.ts diff --git a/packages/@core-js/src/tonApiV2/.openapi-generator/FILES b/packages/@core-js/src/tonApiV2/.openapi-generator/FILES index bb1af1544..a9e2fff20 100644 --- a/packages/@core-js/src/tonApiV2/.openapi-generator/FILES +++ b/packages/@core-js/src/tonApiV2/.openapi-generator/FILES @@ -3,6 +3,7 @@ apis/AccountsApi.ts apis/BlockchainApi.ts apis/ConnectApi.ts apis/DNSApi.ts +apis/EmulationApi.ts apis/EventsApi.ts apis/JettonsApi.ts apis/NFTApi.ts @@ -36,6 +37,8 @@ models/ComputeSkipReason.ts models/Config.ts models/ContractDeployAction.ts models/CreditPhase.ts +models/DnsExpiring.ts +models/DnsExpiringItemsInner.ts models/DnsRecord.ts models/DomainBid.ts models/DomainBids.ts @@ -100,7 +103,7 @@ models/UnSubscriptionAction.ts models/Validator.ts models/Validators.ts models/ValueFlow.ts -models/ValueFlowNftsInner.ts +models/ValueFlowJettonsInner.ts models/WalletDNS.ts models/index.ts runtime.ts diff --git a/packages/@core-js/src/tonApiV2/apis/AccountsApi.ts b/packages/@core-js/src/tonApiV2/apis/AccountsApi.ts index 713239053..6f3a15339 100644 --- a/packages/@core-js/src/tonApiV2/apis/AccountsApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/AccountsApi.ts @@ -18,6 +18,7 @@ import type { Account, AccountEvents, Accounts, + DnsExpiring, DomainNames, FoundAccounts, GetAccountsRequest, @@ -34,6 +35,8 @@ import { AccountEventsToJSON, AccountsFromJSON, AccountsToJSON, + DnsExpiringFromJSON, + DnsExpiringToJSON, DomainNamesFromJSON, DomainNamesToJSON, FoundAccountsFromJSON, @@ -64,6 +67,11 @@ export interface GetAccountsOperationRequest { getAccountsRequest?: GetAccountsRequest; } +export interface GetDnsExpiringRequest { + accountId: string; + period?: number; +} + export interface GetEventsByAccountRequest { accountId: string; limit: number; @@ -116,6 +124,10 @@ export interface GetTracesByAccountRequest { limit?: number; } +export interface ReindexAccountRequest { + accountId: string; +} + /** * AccountsApi - interface * @@ -165,6 +177,21 @@ export interface AccountsApiInterface { */ getAccounts(requestParameters: GetAccountsOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * Get expiring .ton dns + * @param {string} accountId account ID + * @param {number} [period] number of days before expiration + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApiInterface + */ + getDnsExpiringRaw(requestParameters: GetDnsExpiringRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Get expiring .ton dns + */ + getDnsExpiring(requestParameters: GetDnsExpiringRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** * Get events for an account. Each event is built on top of a trace which is a series of transactions caused by one inbound message. TonAPI looks for known patterns inside the trace and splits the trace into actions, where a single action represents a meaningful high-level operation like a Jetton Transfer or an NFT Purchase. Actions are expected to be shown to users. It is advised not to build any logic on top of actions because actions can be changed at any time. * @param {string} accountId account ID @@ -297,6 +324,20 @@ export interface AccountsApiInterface { */ getTracesByAccount(requestParameters: GetTracesByAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * Update internal cache for a particular account + * @param {string} accountId account ID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApiInterface + */ + reindexAccountRaw(requestParameters: ReindexAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Update internal cache for a particular account + */ + reindexAccount(requestParameters: ReindexAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + } /** @@ -393,6 +434,40 @@ export class AccountsApi extends runtime.BaseAPI implements AccountsApiInterface return await response.value(); } + /** + * Get expiring .ton dns + */ + async getDnsExpiringRaw(requestParameters: GetDnsExpiringRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.accountId === null || requestParameters.accountId === undefined) { + throw new runtime.RequiredError('accountId','Required parameter requestParameters.accountId was null or undefined when calling getDnsExpiring.'); + } + + const queryParameters: any = {}; + + if (requestParameters.period !== undefined) { + queryParameters['period'] = requestParameters.period; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/v2/accounts/{account_id}/dns/expiring`.replace(`{${"account_id"}}`, encodeURIComponent(String(requestParameters.accountId))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => DnsExpiringFromJSON(jsonValue)); + } + + /** + * Get expiring .ton dns + */ + async getDnsExpiring(requestParameters: GetDnsExpiringRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getDnsExpiringRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * Get events for an account. Each event is built on top of a trace which is a series of transactions caused by one inbound message. TonAPI looks for known patterns inside the trace and splits the trace into actions, where a single action represents a meaningful high-level operation like a Jetton Transfer or an NFT Purchase. Actions are expected to be shown to users. It is advised not to build any logic on top of actions because actions can be changed at any time. */ @@ -729,4 +804,33 @@ export class AccountsApi extends runtime.BaseAPI implements AccountsApiInterface return await response.value(); } + /** + * Update internal cache for a particular account + */ + async reindexAccountRaw(requestParameters: ReindexAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.accountId === null || requestParameters.accountId === undefined) { + throw new runtime.RequiredError('accountId','Required parameter requestParameters.accountId was null or undefined when calling reindexAccount.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/v2/accounts/{account_id}/reindex`.replace(`{${"account_id"}}`, encodeURIComponent(String(requestParameters.accountId))), + method: 'POST', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + * Update internal cache for a particular account + */ + async reindexAccount(requestParameters: ReindexAccountRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.reindexAccountRaw(requestParameters, initOverrides); + } + } diff --git a/packages/@core-js/src/tonApiV2/apis/BlockchainApi.ts b/packages/@core-js/src/tonApiV2/apis/BlockchainApi.ts index b3988ed40..f5e2ca613 100644 --- a/packages/@core-js/src/tonApiV2/apis/BlockchainApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/BlockchainApi.ts @@ -15,7 +15,6 @@ import * as runtime from '../runtime'; import type { - AccountEvent, Block, Config, GetBlock401Response, @@ -27,8 +26,6 @@ import type { Validators, } from '../models'; import { - AccountEventFromJSON, - AccountEventToJSON, BlockFromJSON, BlockToJSON, ConfigFromJSON, @@ -49,10 +46,6 @@ import { ValidatorsToJSON, } from '../models'; -export interface EmulateMessageRequest { - sendMessageRequest?: SendMessageRequest; -} - export interface ExecGetMethodRequest { accountId: string; methodName: string; @@ -83,7 +76,7 @@ export interface GetTransactionRequest { } export interface SendMessageOperationRequest { - sendMessageRequest?: SendMessageRequest; + sendMessageRequest: SendMessageRequest; } /** @@ -93,20 +86,6 @@ export interface SendMessageOperationRequest { * @interface BlockchainApiInterface */ export interface BlockchainApiInterface { - /** - * Emulate sending message to blockchain - * @param {SendMessageRequest} [sendMessageRequest] bag-of-cells serialized to base64 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof BlockchainApiInterface - */ - emulateMessageRaw(requestParameters: EmulateMessageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; - - /** - * Emulate sending message to blockchain - */ - emulateMessage(requestParameters: EmulateMessageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; - /** * Execute get method for account * @param {string} accountId account ID @@ -237,7 +216,7 @@ export interface BlockchainApiInterface { /** * Send message to blockchain - * @param {SendMessageRequest} [sendMessageRequest] bag-of-cells serialized to base64 + * @param {SendMessageRequest} sendMessageRequest bag-of-cells serialized to base64 * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof BlockchainApiInterface @@ -256,35 +235,6 @@ export interface BlockchainApiInterface { */ export class BlockchainApi extends runtime.BaseAPI implements BlockchainApiInterface { - /** - * Emulate sending message to blockchain - */ - async emulateMessageRaw(requestParameters: EmulateMessageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters['Content-Type'] = 'application/json'; - - const response = await this.request({ - path: `/v2/blockchain/message/emulate`, - method: 'POST', - headers: headerParameters, - query: queryParameters, - body: SendMessageRequestToJSON(requestParameters.sendMessageRequest), - }, initOverrides); - - return new runtime.JSONApiResponse(response, (jsonValue) => AccountEventFromJSON(jsonValue)); - } - - /** - * Emulate sending message to blockchain - */ - async emulateMessage(requestParameters: EmulateMessageRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.emulateMessageRaw(requestParameters, initOverrides); - return await response.value(); - } - /** * Execute get method for account */ @@ -567,6 +517,10 @@ export class BlockchainApi extends runtime.BaseAPI implements BlockchainApiInter * Send message to blockchain */ async sendMessageRaw(requestParameters: SendMessageOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.sendMessageRequest === null || requestParameters.sendMessageRequest === undefined) { + throw new runtime.RequiredError('sendMessageRequest','Required parameter requestParameters.sendMessageRequest was null or undefined when calling sendMessage.'); + } + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -587,7 +541,7 @@ export class BlockchainApi extends runtime.BaseAPI implements BlockchainApiInter /** * Send message to blockchain */ - async sendMessage(requestParameters: SendMessageOperationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async sendMessage(requestParameters: SendMessageOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.sendMessageRaw(requestParameters, initOverrides); } diff --git a/packages/@core-js/src/tonApiV2/apis/EmulationApi.ts b/packages/@core-js/src/tonApiV2/apis/EmulationApi.ts new file mode 100644 index 000000000..cc132e07b --- /dev/null +++ b/packages/@core-js/src/tonApiV2/apis/EmulationApi.ts @@ -0,0 +1,222 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 0.0.1 + * Contact: contact@fslabs.org + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + AccountEvent, + Event, + GetBlock401Response, + SendMessageRequest, + Trace, +} from '../models'; +import { + AccountEventFromJSON, + AccountEventToJSON, + EventFromJSON, + EventToJSON, + GetBlock401ResponseFromJSON, + GetBlock401ResponseToJSON, + SendMessageRequestFromJSON, + SendMessageRequestToJSON, + TraceFromJSON, + TraceToJSON, +} from '../models'; + +export interface EmulateMessageToAccountEventRequest { + accountId: string; + sendMessageRequest: SendMessageRequest; + acceptLanguage?: string; +} + +export interface EmulateMessageToEventRequest { + sendMessageRequest: SendMessageRequest; + acceptLanguage?: string; +} + +export interface EmulateMessageToTraceRequest { + sendMessageRequest: SendMessageRequest; +} + +/** + * EmulationApi - interface + * + * @export + * @interface EmulationApiInterface + */ +export interface EmulationApiInterface { + /** + * Emulate sending message to blockchain + * @param {string} accountId account ID + * @param {SendMessageRequest} sendMessageRequest bag-of-cells serialized to base64 + * @param {string} [acceptLanguage] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EmulationApiInterface + */ + emulateMessageToAccountEventRaw(requestParameters: EmulateMessageToAccountEventRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Emulate sending message to blockchain + */ + emulateMessageToAccountEvent(requestParameters: EmulateMessageToAccountEventRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Emulate sending message to blockchain + * @param {SendMessageRequest} sendMessageRequest bag-of-cells serialized to base64 + * @param {string} [acceptLanguage] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EmulationApiInterface + */ + emulateMessageToEventRaw(requestParameters: EmulateMessageToEventRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Emulate sending message to blockchain + */ + emulateMessageToEvent(requestParameters: EmulateMessageToEventRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + + /** + * Emulate sending message to blockchain + * @param {SendMessageRequest} sendMessageRequest bag-of-cells serialized to base64 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EmulationApiInterface + */ + emulateMessageToTraceRaw(requestParameters: EmulateMessageToTraceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Emulate sending message to blockchain + */ + emulateMessageToTrace(requestParameters: EmulateMessageToTraceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + +} + +/** + * + */ +export class EmulationApi extends runtime.BaseAPI implements EmulationApiInterface { + + /** + * Emulate sending message to blockchain + */ + async emulateMessageToAccountEventRaw(requestParameters: EmulateMessageToAccountEventRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.accountId === null || requestParameters.accountId === undefined) { + throw new runtime.RequiredError('accountId','Required parameter requestParameters.accountId was null or undefined when calling emulateMessageToAccountEvent.'); + } + + if (requestParameters.sendMessageRequest === null || requestParameters.sendMessageRequest === undefined) { + throw new runtime.RequiredError('sendMessageRequest','Required parameter requestParameters.sendMessageRequest was null or undefined when calling emulateMessageToAccountEvent.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (requestParameters.acceptLanguage !== undefined && requestParameters.acceptLanguage !== null) { + headerParameters['Accept-Language'] = String(requestParameters.acceptLanguage); + } + + const response = await this.request({ + path: `/v2/accounts/{account_id}/events/emulate`.replace(`{${"account_id"}}`, encodeURIComponent(String(requestParameters.accountId))), + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: SendMessageRequestToJSON(requestParameters.sendMessageRequest), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => AccountEventFromJSON(jsonValue)); + } + + /** + * Emulate sending message to blockchain + */ + async emulateMessageToAccountEvent(requestParameters: EmulateMessageToAccountEventRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.emulateMessageToAccountEventRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * Emulate sending message to blockchain + */ + async emulateMessageToEventRaw(requestParameters: EmulateMessageToEventRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.sendMessageRequest === null || requestParameters.sendMessageRequest === undefined) { + throw new runtime.RequiredError('sendMessageRequest','Required parameter requestParameters.sendMessageRequest was null or undefined when calling emulateMessageToEvent.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (requestParameters.acceptLanguage !== undefined && requestParameters.acceptLanguage !== null) { + headerParameters['Accept-Language'] = String(requestParameters.acceptLanguage); + } + + const response = await this.request({ + path: `/v2/events/emulate`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: SendMessageRequestToJSON(requestParameters.sendMessageRequest), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => EventFromJSON(jsonValue)); + } + + /** + * Emulate sending message to blockchain + */ + async emulateMessageToEvent(requestParameters: EmulateMessageToEventRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.emulateMessageToEventRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * Emulate sending message to blockchain + */ + async emulateMessageToTraceRaw(requestParameters: EmulateMessageToTraceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.sendMessageRequest === null || requestParameters.sendMessageRequest === undefined) { + throw new runtime.RequiredError('sendMessageRequest','Required parameter requestParameters.sendMessageRequest was null or undefined when calling emulateMessageToTrace.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + const response = await this.request({ + path: `/v2/traces/emulate`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: SendMessageRequestToJSON(requestParameters.sendMessageRequest), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => TraceFromJSON(jsonValue)); + } + + /** + * Emulate sending message to blockchain + */ + async emulateMessageToTrace(requestParameters: EmulateMessageToTraceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.emulateMessageToTraceRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/packages/@core-js/src/tonApiV2/apis/index.ts b/packages/@core-js/src/tonApiV2/apis/index.ts index 3e57f2f0e..89ab42d24 100644 --- a/packages/@core-js/src/tonApiV2/apis/index.ts +++ b/packages/@core-js/src/tonApiV2/apis/index.ts @@ -4,6 +4,7 @@ export * from './AccountsApi'; export * from './BlockchainApi'; export * from './ConnectApi'; export * from './DNSApi'; +export * from './EmulationApi'; export * from './EventsApi'; export * from './JettonsApi'; export * from './NFTApi'; diff --git a/packages/@core-js/src/tonApiV2/models/ActionSimplePreview.ts b/packages/@core-js/src/tonApiV2/models/ActionSimplePreview.ts index 5d2b17ae4..25642144b 100644 --- a/packages/@core-js/src/tonApiV2/models/ActionSimplePreview.ts +++ b/packages/@core-js/src/tonApiV2/models/ActionSimplePreview.ts @@ -26,18 +26,36 @@ import { * @interface ActionSimplePreview */ export interface ActionSimplePreview { + /** + * + * @type {string} + * @memberof ActionSimplePreview + */ + name: string; /** * * @type {string} * @memberof ActionSimplePreview */ description: string; + /** + * a link to an image for this particular action. + * @type {string} + * @memberof ActionSimplePreview + */ + actionImage?: string; /** * - * @type {number} + * @type {string} + * @memberof ActionSimplePreview + */ + value?: string; + /** + * a link to an image that depicts this action's asset. + * @type {string} * @memberof ActionSimplePreview */ - value?: number; + valueImage?: string; /** * * @type {Array} @@ -51,6 +69,7 @@ export interface ActionSimplePreview { */ export function instanceOfActionSimplePreview(value: object): boolean { let isInstance = true; + isInstance = isInstance && "name" in value; isInstance = isInstance && "description" in value; isInstance = isInstance && "accounts" in value; @@ -67,8 +86,11 @@ export function ActionSimplePreviewFromJSONTyped(json: any, ignoreDiscriminator: } return { + 'name': json['name'], 'description': json['description'], + 'actionImage': !exists(json, 'action_image') ? undefined : json['action_image'], 'value': !exists(json, 'value') ? undefined : json['value'], + 'valueImage': !exists(json, 'value_image') ? undefined : json['value_image'], 'accounts': ((json['accounts'] as Array).map(AccountAddressFromJSON)), }; } @@ -82,8 +104,11 @@ export function ActionSimplePreviewToJSON(value?: ActionSimplePreview | null): a } return { + 'name': value.name, 'description': value.description, + 'action_image': value.actionImage, 'value': value.value, + 'value_image': value.valueImage, 'accounts': ((value.accounts as Array).map(AccountAddressToJSON)), }; } diff --git a/packages/@core-js/src/tonApiV2/models/DnsExpiring.ts b/packages/@core-js/src/tonApiV2/models/DnsExpiring.ts new file mode 100644 index 000000000..fefd5a63d --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/DnsExpiring.ts @@ -0,0 +1,73 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 0.0.1 + * Contact: contact@fslabs.org + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { DnsExpiringItemsInner } from './DnsExpiringItemsInner'; +import { + DnsExpiringItemsInnerFromJSON, + DnsExpiringItemsInnerFromJSONTyped, + DnsExpiringItemsInnerToJSON, +} from './DnsExpiringItemsInner'; + +/** + * + * @export + * @interface DnsExpiring + */ +export interface DnsExpiring { + /** + * + * @type {Array} + * @memberof DnsExpiring + */ + items: Array; +} + +/** + * Check if a given object implements the DnsExpiring interface. + */ +export function instanceOfDnsExpiring(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "items" in value; + + return isInstance; +} + +export function DnsExpiringFromJSON(json: any): DnsExpiring { + return DnsExpiringFromJSONTyped(json, false); +} + +export function DnsExpiringFromJSONTyped(json: any, ignoreDiscriminator: boolean): DnsExpiring { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'items': ((json['items'] as Array).map(DnsExpiringItemsInnerFromJSON)), + }; +} + +export function DnsExpiringToJSON(value?: DnsExpiring | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'items': ((value.items as Array).map(DnsExpiringItemsInnerToJSON)), + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/DnsExpiringItemsInner.ts b/packages/@core-js/src/tonApiV2/models/DnsExpiringItemsInner.ts new file mode 100644 index 000000000..b5b517227 --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/DnsExpiringItemsInner.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 0.0.1 + * Contact: contact@fslabs.org + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { NftItem } from './NftItem'; +import { + NftItemFromJSON, + NftItemFromJSONTyped, + NftItemToJSON, +} from './NftItem'; + +/** + * + * @export + * @interface DnsExpiringItemsInner + */ +export interface DnsExpiringItemsInner { + /** + * + * @type {number} + * @memberof DnsExpiringItemsInner + */ + expiringAt: number; + /** + * + * @type {string} + * @memberof DnsExpiringItemsInner + */ + name: string; + /** + * + * @type {NftItem} + * @memberof DnsExpiringItemsInner + */ + dnsItem: NftItem; +} + +/** + * Check if a given object implements the DnsExpiringItemsInner interface. + */ +export function instanceOfDnsExpiringItemsInner(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "expiringAt" in value; + isInstance = isInstance && "name" in value; + isInstance = isInstance && "dnsItem" in value; + + return isInstance; +} + +export function DnsExpiringItemsInnerFromJSON(json: any): DnsExpiringItemsInner { + return DnsExpiringItemsInnerFromJSONTyped(json, false); +} + +export function DnsExpiringItemsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): DnsExpiringItemsInner { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'expiringAt': json['expiring_at'], + 'name': json['name'], + 'dnsItem': NftItemFromJSON(json['dns_item']), + }; +} + +export function DnsExpiringItemsInnerToJSON(value?: DnsExpiringItemsInner | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'expiring_at': value.expiringAt, + 'name': value.name, + 'dns_item': NftItemToJSON(value.dnsItem), + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/Message.ts b/packages/@core-js/src/tonApiV2/models/Message.ts index 44f5bab1d..92ec67ed8 100644 --- a/packages/@core-js/src/tonApiV2/models/Message.ts +++ b/packages/@core-js/src/tonApiV2/models/Message.ts @@ -118,10 +118,10 @@ export interface Message { decodedOpName?: string; /** * - * @type {{ [key: string]: any; }} + * @type {any} * @memberof Message */ - decodedBody: { [key: string]: any; }; + decodedBody: any | null; } /** diff --git a/packages/@core-js/src/tonApiV2/models/MethodExecutionResult.ts b/packages/@core-js/src/tonApiV2/models/MethodExecutionResult.ts index 1798e5efd..bf0ffb63d 100644 --- a/packages/@core-js/src/tonApiV2/models/MethodExecutionResult.ts +++ b/packages/@core-js/src/tonApiV2/models/MethodExecutionResult.ts @@ -46,10 +46,10 @@ export interface MethodExecutionResult { stack: Array; /** * - * @type {{ [key: string]: any; }} + * @type {any} * @memberof MethodExecutionResult */ - decoded?: { [key: string]: any; }; + decoded?: any | null; } /** diff --git a/packages/@core-js/src/tonApiV2/models/ValueFlow.ts b/packages/@core-js/src/tonApiV2/models/ValueFlow.ts index 6512f910a..06544999f 100644 --- a/packages/@core-js/src/tonApiV2/models/ValueFlow.ts +++ b/packages/@core-js/src/tonApiV2/models/ValueFlow.ts @@ -19,12 +19,12 @@ import { AccountAddressFromJSONTyped, AccountAddressToJSON, } from './AccountAddress'; -import type { ValueFlowNftsInner } from './ValueFlowNftsInner'; +import type { ValueFlowJettonsInner } from './ValueFlowJettonsInner'; import { - ValueFlowNftsInnerFromJSON, - ValueFlowNftsInnerFromJSONTyped, - ValueFlowNftsInnerToJSON, -} from './ValueFlowNftsInner'; + ValueFlowJettonsInnerFromJSON, + ValueFlowJettonsInnerFromJSONTyped, + ValueFlowJettonsInnerToJSON, +} from './ValueFlowJettonsInner'; /** * @@ -52,16 +52,10 @@ export interface ValueFlow { fees: number; /** * - * @type {Array} + * @type {Array} * @memberof ValueFlow */ - nfts?: Array; - /** - * - * @type {Array} - * @memberof ValueFlow - */ - jettons?: Array; + jettons?: Array; } /** @@ -89,8 +83,7 @@ export function ValueFlowFromJSONTyped(json: any, ignoreDiscriminator: boolean): 'account': AccountAddressFromJSON(json['account']), 'ton': json['ton'], 'fees': json['fees'], - 'nfts': !exists(json, 'nfts') ? undefined : ((json['nfts'] as Array).map(ValueFlowNftsInnerFromJSON)), - 'jettons': !exists(json, 'jettons') ? undefined : ((json['jettons'] as Array).map(ValueFlowNftsInnerFromJSON)), + 'jettons': !exists(json, 'jettons') ? undefined : ((json['jettons'] as Array).map(ValueFlowJettonsInnerFromJSON)), }; } @@ -106,8 +99,7 @@ export function ValueFlowToJSON(value?: ValueFlow | null): any { 'account': AccountAddressToJSON(value.account), 'ton': value.ton, 'fees': value.fees, - 'nfts': value.nfts === undefined ? undefined : ((value.nfts as Array).map(ValueFlowNftsInnerToJSON)), - 'jettons': value.jettons === undefined ? undefined : ((value.jettons as Array).map(ValueFlowNftsInnerToJSON)), + 'jettons': value.jettons === undefined ? undefined : ((value.jettons as Array).map(ValueFlowJettonsInnerToJSON)), }; } diff --git a/packages/@core-js/src/tonApiV2/models/ValueFlowNftsInner.ts b/packages/@core-js/src/tonApiV2/models/ValueFlowJettonsInner.ts similarity index 68% rename from packages/@core-js/src/tonApiV2/models/ValueFlowNftsInner.ts rename to packages/@core-js/src/tonApiV2/models/ValueFlowJettonsInner.ts index 79a58a928..28daba9af 100644 --- a/packages/@core-js/src/tonApiV2/models/ValueFlowNftsInner.ts +++ b/packages/@core-js/src/tonApiV2/models/ValueFlowJettonsInner.ts @@ -23,27 +23,27 @@ import { /** * * @export - * @interface ValueFlowNftsInner + * @interface ValueFlowJettonsInner */ -export interface ValueFlowNftsInner { +export interface ValueFlowJettonsInner { /** * * @type {AccountAddress} - * @memberof ValueFlowNftsInner + * @memberof ValueFlowJettonsInner */ account: AccountAddress; /** * * @type {number} - * @memberof ValueFlowNftsInner + * @memberof ValueFlowJettonsInner */ quantity: number; } /** - * Check if a given object implements the ValueFlowNftsInner interface. + * Check if a given object implements the ValueFlowJettonsInner interface. */ -export function instanceOfValueFlowNftsInner(value: object): boolean { +export function instanceOfValueFlowJettonsInner(value: object): boolean { let isInstance = true; isInstance = isInstance && "account" in value; isInstance = isInstance && "quantity" in value; @@ -51,11 +51,11 @@ export function instanceOfValueFlowNftsInner(value: object): boolean { return isInstance; } -export function ValueFlowNftsInnerFromJSON(json: any): ValueFlowNftsInner { - return ValueFlowNftsInnerFromJSONTyped(json, false); +export function ValueFlowJettonsInnerFromJSON(json: any): ValueFlowJettonsInner { + return ValueFlowJettonsInnerFromJSONTyped(json, false); } -export function ValueFlowNftsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): ValueFlowNftsInner { +export function ValueFlowJettonsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): ValueFlowJettonsInner { if ((json === undefined) || (json === null)) { return json; } @@ -66,7 +66,7 @@ export function ValueFlowNftsInnerFromJSONTyped(json: any, ignoreDiscriminator: }; } -export function ValueFlowNftsInnerToJSON(value?: ValueFlowNftsInner | null): any { +export function ValueFlowJettonsInnerToJSON(value?: ValueFlowJettonsInner | null): any { if (value === undefined) { return undefined; } diff --git a/packages/@core-js/src/tonApiV2/models/index.ts b/packages/@core-js/src/tonApiV2/models/index.ts index e650a63dc..0ecbbfb12 100644 --- a/packages/@core-js/src/tonApiV2/models/index.ts +++ b/packages/@core-js/src/tonApiV2/models/index.ts @@ -23,6 +23,8 @@ export * from './ComputeSkipReason'; export * from './Config'; export * from './ContractDeployAction'; export * from './CreditPhase'; +export * from './DnsExpiring'; +export * from './DnsExpiringItemsInner'; export * from './DnsRecord'; export * from './DomainBid'; export * from './DomainBids'; @@ -87,5 +89,5 @@ export * from './UnSubscriptionAction'; export * from './Validator'; export * from './Validators'; export * from './ValueFlow'; -export * from './ValueFlowNftsInner'; +export * from './ValueFlowJettonsInner'; export * from './WalletDNS'; diff --git a/packages/mobile/src/assets/icons/png/ic-trash-bin-16@4x.png b/packages/mobile/src/assets/icons/png/ic-trash-bin-16@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..c89274f152d52fb6bc6e5ce0ea74e6570fb64ada GIT binary patch literal 892 zcmV-?1B3jDP)fPoB?`(>Dj9XIGc@mT#N222^y>KUF}~3D_i8Q0^T^eL%`fBdnp8P#A)Cwup%LU zb@sP^;&9n|CzU;+q>WDeqM1F;OE$Adk}f&Jn+mI{3gCsadOdB-vBsI>dD(g`E7&FJ zq@=z2u|54)8IaT~>A0B1e2|>N#y@$C?HV=-*%Y-+60h^P3kzLZ!qoBK^1v z^acuvqF0ipWWOBGe(setakiYrXkG+QNC_W^0Dn9^%&gK6Q}QUPvlAPk2}Nx{w18-8 z1EK{)QyUO1Ae!2MXaUjG21E;prZym2Ks2=h(E_5W4Tu&HO>IE5fM{w1q6I`#8&EV6 zm|Uii@z6p`?ti>e4DcqI;>07E>cl&0fLAnvjv6rP#Jdu5tHLwD(>_Lu0pFbXL^uV$ z<|U>W@TtwB5qMfY=Ov~X@X?9SOvtT@8BW|=yfIP?cAQm8#mvvZp7Pnjoa^?-Gf?#n-A-b%VE>4BsdYTSR{|1|#5%!X5H{Zwi|Zg_PbBr3*|U;r)YR1chkOU$VL3Ck SqMw`q0000 + + diff --git a/packages/mobile/src/core/Balances/TransactionsList/TransactionsList.tsx b/packages/mobile/src/core/Balances/TransactionsList/TransactionsList.tsx index 77b9110b3..af7bf612d 100644 --- a/packages/mobile/src/core/Balances/TransactionsList/TransactionsList.tsx +++ b/packages/mobile/src/core/Balances/TransactionsList/TransactionsList.tsx @@ -1,5 +1,6 @@ import React, { forwardRef, ReactElement, ReactNode, useCallback, useMemo } from 'react'; import { + FlatListProps, SectionList, SectionListProps, SectionListRenderItemInfo, @@ -40,8 +41,8 @@ const AnimatedSectionList = Animated.createAnimatedComponent>(SectionList); export interface TransactionsListProps { - renderHeader?: ReactNode; - renderFooter?: ReactNode; + renderHeader?: FlatListProps['ListHeaderComponent']; + renderFooter?: FlatListProps['ListFooterComponent']; refreshControl?: ReactElement; eventsInfo: EventsMap; initialData: any[]; diff --git a/packages/mobile/src/core/DAppBrowser/DAppBrowser.tsx b/packages/mobile/src/core/DAppBrowser/DAppBrowser.tsx index a9b283e06..245b20b8d 100644 --- a/packages/mobile/src/core/DAppBrowser/DAppBrowser.tsx +++ b/packages/mobile/src/core/DAppBrowser/DAppBrowser.tsx @@ -50,10 +50,8 @@ const DAppBrowserComponent: FC = (props) => { const [canGoBack, setCanGoBack] = useState(false); - const { ref, isConnected, disconnect, ...webViewProps } = useDAppBridge( - walletAddress, - currentUrl, - ); + const { ref, isConnected, disconnect, notificationsEnabled, ...webViewProps } = + useDAppBridge(walletAddress, currentUrl); const dimensions = useWindowDimensions(); @@ -137,6 +135,7 @@ const DAppBrowserComponent: FC = (props) => { void; @@ -38,6 +40,7 @@ const BrowserNavBarComponent: FC = (props) => { title, url, isConnected, + isNotificationsEnabled, walletAddress, canGoBack, onBackPress, @@ -65,6 +68,17 @@ const BrowserNavBarComponent: FC = (props) => { label: t('browser.actions.refresh'), icon: 'ic-refresh-16', }, + ]; + + if (isNotificationsEnabled) { + items.push({ + type: PopupActionType.MUTE, + label: t('browser.actions.mute'), + icon: 'ic-disconnect-16', + }); + } + + items.push( { type: PopupActionType.SHARE, label: t('browser.actions.share'), @@ -75,7 +89,7 @@ const BrowserNavBarComponent: FC = (props) => { label: t('browser.actions.copy_link'), icon: 'ic-copy-16', }, - ]; + ); if (isConnected) { items.push({ diff --git a/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts b/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts index 0b7943135..c92a9a951 100644 --- a/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts +++ b/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts @@ -12,16 +12,19 @@ import { export const useDAppBridge = (walletAddress: string, webViewUrl: string) => { const [connectEvent, setConnectEvent] = useState(null); - const isConnected = useConnectedAppsStore( + const [isConnected, notificationsEnabled] = useConnectedAppsStore( useCallback( (state) => { const app = getConnectedAppByUrl(walletAddress, webViewUrl, state); if (!app) { - return false; + return [false, false]; } - return Boolean(connectEvent && connectEvent.event === 'connect'); + return [ + Boolean(connectEvent && connectEvent.event === 'connect'), + Boolean(app.notificationsEnabled), + ]; }, [connectEvent, webViewUrl, walletAddress], ), @@ -79,6 +82,7 @@ export const useDAppBridge = (walletAddress: string, webViewUrl: string) => { injectedJavaScriptBeforeContentLoaded, onMessage, isConnected, + notificationsEnabled, disconnect, }; }; diff --git a/packages/mobile/src/core/DevMenu/DevComponents/DevListComponent.tsx b/packages/mobile/src/core/DevMenu/DevComponents/DevListComponent.tsx index 7e31805c4..f37e11f85 100644 --- a/packages/mobile/src/core/DevMenu/DevComponents/DevListComponent.tsx +++ b/packages/mobile/src/core/DevMenu/DevComponents/DevListComponent.tsx @@ -1,6 +1,5 @@ import React from 'react'; -import { Steezy } from '$styles'; -import { Screen, List, Checkbox } from '$uikit'; +import { Screen, List } from '$uikit'; import { AttachScreenButton } from '$navigation/AttachScreen'; export const DevListComponent = () => { diff --git a/packages/mobile/src/core/DevMenu/DevMenu.tsx b/packages/mobile/src/core/DevMenu/DevMenu.tsx index 096ce4d70..0f3e3dc09 100644 --- a/packages/mobile/src/core/DevMenu/DevMenu.tsx +++ b/packages/mobile/src/core/DevMenu/DevMenu.tsx @@ -21,6 +21,7 @@ import { jettonsActions } from '$store/jettons'; import { Switch } from 'react-native-gesture-handler'; import { DevFeature, Toast, useDevFeaturesToggle } from '$store'; import { tags } from '$translation'; +import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; export const DevMenu: FC = () => { const tabBarHeight = useBottomTabBarHeight(); @@ -29,6 +30,7 @@ export const DevMenu: FC = () => { const t = useTranslator(); const isTestnet = useSelector(isTestnetSelector); const alwaysShowV4R1 = useSelector(alwaysShowV4R1Selector); + const addNotification = useNotificationsStore((state) => state.actions.addNotification); const handleToggleTestnet = useCallback(() => { Alert.alert(t('settings_network_alert_title'), '', [ @@ -87,6 +89,14 @@ export const DevMenu: FC = () => { nav.navigate('EditConfig'); }, [nav]); + const handlePushNotification = useCallback(() => { + addNotification({ + title: 'Test notification added from dev menu', + service_url: 'https://getgems.io', + received_at: Date.now(), + }); + }, [addNotification]); + const handleCopyVersion = useCallback(() => { Clipboard.setString(DeviceInfo.getVersion() + ` (${DeviceInfo.getBuildNumber()})`); Toast.success(t('copied')); @@ -181,6 +191,11 @@ export const DevMenu: FC = () => { Clear events cache + + + Push notification + + diff --git a/packages/mobile/src/core/Notifications/Notification.tsx b/packages/mobile/src/core/Notifications/Notification.tsx new file mode 100644 index 000000000..2b32076ad --- /dev/null +++ b/packages/mobile/src/core/Notifications/Notification.tsx @@ -0,0 +1,98 @@ +import { Button, Icon, List, Spacer, View } from '$uikit'; +import React, { useCallback } from 'react'; +import { Steezy } from '$styles'; +import { INotification } from '$store/zustand/notifications/types'; +import { useConnectedAppsList } from '$store'; +import { format } from '$utils'; +import { Swipeable } from 'react-native-gesture-handler'; +import { TouchableOpacity } from 'react-native'; +import { IconProps } from '$uikit/Icon/Icon'; +import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; + +interface NotificationProps { + notification: INotification; +} + +export const ActionButton: React.FC<{ icon: IconProps['name']; onPress: () => void }> = ( + props, +) => ( + + + + + +); + +export const Notification: React.FC = (props) => { + const app = useConnectedAppsList().find( + (app) => app.url === props.notification.service_url, + ); + const deleteNotification = useNotificationsStore( + (state) => state.actions.deleteNotificationByReceivedAt, + ); + + const subtitle = app?.name + ' · ' + format(props.notification.received_at, 'HH:mm'); + + const renderRightActions = useCallback(() => { + return ( + + + + deleteNotification(props.notification.received_at)} + icon="ic-trash-bin-16" + /> + + ); + }, [deleteNotification, props.notification.received_at]); + + return ( + + + + + + ); +}; + +const styles = Steezy.create(({ colors }) => ({ + listStyle: { + marginBottom: 8, + }, + leftContentStyle: { + alignItems: 'flex-start', + alignSelf: 'flex-start', + }, + cellTitle: { + marginBottom: 4, + }, + imageStyle: { + width: 44, + height: 44, + borderRadius: 12, + }, + rightActionsContainer: { + paddingRight: 16, + flexDirection: 'row', + alignItems: 'center', + }, + actionButton: { + width: 48, + height: 48, + alignItems: 'center', + justifyContent: 'center', + borderRadius: 24, + backgroundColor: colors.buttonSecondaryBackground, + }, +})); diff --git a/packages/mobile/src/core/Notifications/Notifications.tsx b/packages/mobile/src/core/Notifications/Notifications.tsx index fa4d29b41..4ee91d413 100644 --- a/packages/mobile/src/core/Notifications/Notifications.tsx +++ b/packages/mobile/src/core/Notifications/Notifications.tsx @@ -1,21 +1,32 @@ import React, { useCallback, useRef } from 'react'; -import { InternalNotification, NavBar, ScrollHandler, SwitchItem } from '$uikit'; +import { + InternalNotification, + NavBar, + ScrollHandler, + SwitchItem, + Text, + View, +} from '$uikit'; import { debugLog, ns } from '$utils'; import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; import Animated from 'react-native-reanimated'; -import { Linking, View } from 'react-native'; +import { Linking } from 'react-native'; import { CellSection } from '$shared/components'; import { getSubscribeStatus, SUBSCRIBE_STATUS } from '$utils/messaging'; -import { useDispatch } from 'react-redux'; +import { useSelector } from 'react-redux'; import { NotificationsStatus, useNotificationStatus } from '$hooks/useNotificationStatus'; import messaging from '@react-native-firebase/messaging'; import { useNotifications } from '$hooks/useNotifications'; import { t } from '$translation'; import { useNotificationsBadge } from '$hooks/useNotificationsBadge'; -import { Toast, ToastSize } from '$store'; +import { Toast, ToastSize, useConnectedAppsList, useConnectedAppsStore } from '$store'; +import { Steezy } from '$styles'; +import { getChainName } from '$shared/dynamicConfig'; +import { walletAddressSelector } from '$store/wallet'; +import FastImage from 'react-native-fast-image'; export const Notifications: React.FC = () => { - const dispatch = useDispatch(); + const address = useSelector(walletAddressSelector); const handleOpenSettings = useCallback(() => Linking.openSettings(), []); const notifications = useNotifications(); const tabBarHeight = useBottomTabBarHeight(); @@ -47,7 +58,7 @@ export const Notifications: React.FC = () => { if (notificationsBadge.isVisible) { notificationsBadge.hide(); } - }, [notificationsBadge.isVisible]); + }, [notificationsBadge, notificationsBadge.isVisible]); const handleToggleNotifications = React.useCallback(async (value: boolean) => { if (isSwitchFrozen.current) { @@ -75,6 +86,21 @@ export const Notifications: React.FC = () => { } }, []); + const connectedApps = useConnectedAppsList(); + const { enableNotifications, disableNotifications } = useConnectedAppsStore( + (state) => state.actions, + ); + + const handleSwitchNotifications = React.useCallback( + async (value: boolean, url: string) => { + if (value) { + return enableNotifications(getChainName(), address.ton, url); + } + disableNotifications(getChainName(), address.ton, url); + }, + [disableNotifications, enableNotifications, address], + ); + return ( <> {t('notifications_title')} @@ -98,7 +124,7 @@ export const Notifications: React.FC = () => { /> )} - + { value={isSubscribeNotifications} /> + {connectedApps.length ? ( + <> + + Apps + + + {connectedApps.map((app) => ( + + } + key={app.url} + title={app.name} + disabled={!isSubscribeNotifications} + value={!!app.notificationsEnabled} + onChange={() => + handleSwitchNotifications(!app.notificationsEnabled, app.url) + } + /> + ))} + + + ) : null} ); }; + +const styles = Steezy.create({ + title: { + paddingVertical: 14, + }, + imageStyle: { + width: 44, + height: 44, + borderRadius: 12, + marginRight: 16, + }, + notificationsSection: { + marginBottom: 16, + }, +}); diff --git a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx new file mode 100644 index 000000000..e77d59cd6 --- /dev/null +++ b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx @@ -0,0 +1,97 @@ +import React, { useCallback, useEffect, useMemo } from 'react'; +import { Button, Icon, Screen, Text, View } from '$uikit'; +import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; +import { Notification } from '$core/Notifications/Notification'; +import { Steezy } from '$styles'; +import { openNotifications } from '$navigation'; + +export enum ActivityListItem { + Notification = 'Notification', + Title = 'Title', +} +export const NotificationsActivity: React.FC = () => { + const notifications = useNotificationsStore((state) => state.notifications); + const lastSeenAt = useNotificationsStore((state) => state.last_seen); + const updateLastSeen = useNotificationsStore((state) => state.actions.updateLastSeen); + + const handleOpenNotificationSettings = useCallback(() => { + openNotifications(); + }, []); + + const flashListData = useMemo(() => { + const items: any = notifications + .sort((a, b) => b.received_at - a.received_at) + .map((notification) => { + return { + type: ActivityListItem.Notification, + id: notification.received_at, + item: notification, + }; + }); + const indexToPushTitle = notifications.findIndex( + (notification) => notification.received_at < lastSeenAt, + ); + + // divide notifications into two groups: earlier and not seen before + if (![0, -1].includes(indexToPushTitle)) { + items.splice(indexToPushTitle, 0, { + type: ActivityListItem.Title, + id: 'earlier_title', + item: 'Earlier', + }); + } + + return items; + }, [lastSeenAt, notifications]); + + useEffect(() => { + return () => { + updateLastSeen(); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const renderNotificationsItem = useCallback((props) => { + switch (props.item.type) { + case ActivityListItem.Title: + return ( + + {props.item.item} + + ); + case ActivityListItem.Notification: + return ; + default: + return null; + } + }, []); + + return ( + + } + /> + } + title={'Notifications'} + /> + item.id} + renderItem={renderNotificationsItem} + data={flashListData} + /> + + ); +}; + +const styles = Steezy.create({ + titleStyle: { + marginVertical: 14, + marginHorizontal: 16, + }, +}); diff --git a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx index 253996fc1..86d25c6e2 100644 --- a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx +++ b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useCallback } from 'react'; import axios from 'axios'; import queryString from 'query-string'; import TonWeb from 'tonweb'; @@ -14,6 +14,7 @@ import { getDomainFromURL, maskifyTonAddress, triggerNotificationSuccess, + triggerSelection, } from '$utils'; import { UnlockVaultError } from '$store/wallet/sagas'; import { useUnlockVault } from '$core/ModalContainer/NFTOperations/useUnlockVault'; @@ -32,6 +33,7 @@ import { store, Toast } from '$store'; import { openRequireWalletModal, push } from '$navigation'; import { SheetActions } from '$libs/navigation/components/Modal/Sheet/SheetsProvider'; import { mainSelector } from '$store/main'; +import { createTonProofForTonkeeper } from '$utils/notificationsproof'; export const TonConnectModal = (props: TonConnectModalProps) => { const animation = useTonConnectAnimation(); @@ -39,11 +41,17 @@ export const TonConnectModal = (props: TonConnectModalProps) => { const dispatch = useDispatch(); const theme = useTheme(); const nav = useNavigation(); + const [withNotifications, setWithNotifications] = React.useState(false); const { version } = useSelector(walletSelector); const { isTestnet } = useSelector(mainSelector); const maskedAddress = maskifyTonAddress(animation.address); + const handleSwitchNotifications = useCallback(() => { + triggerSelection(); + setWithNotifications((prev) => !prev); + }, []); + const closeModal = () => nav.goBack(); const isTonapi = props.protocolVersion === 1 ? props?.hostname === 'tonapi.io' : false; @@ -158,7 +166,14 @@ export const TonConnectModal = (props: TonConnectModalProps) => { walletStateInit, ); - requestPromise.resolve({ address, replyItems }); + const token = await createTonProofForTonkeeper(address, privateKey); + console.log('ttt', token); + + requestPromise.resolve({ + address, + replyItems, + notificationsEnabled: withNotifications, + }); } if (props.protocolVersion === 1 && props.request.return_url) { @@ -179,7 +194,15 @@ export const TonConnectModal = (props: TonConnectModalProps) => { debugLog('[TonLogin]:', error); Toast.fail(message); } - }, [animation, dispatch, props, sendToCallbackUrl, unlockVault]); + }, [ + animation, + closeModal, + isTestnet, + props, + sendToCallbackUrl, + unlockVault, + withNotifications, + ]); const handleBackToService = React.useCallback(async () => { if (props.protocolVersion !== 1) { @@ -291,8 +314,8 @@ export const TonConnectModal = (props: TonConnectModalProps) => { false} + checked={withNotifications} + onChange={handleSwitchNotifications} /> diff --git a/packages/mobile/src/core/TonConnect/models.ts b/packages/mobile/src/core/TonConnect/models.ts index 1b10f7d39..57dbde24b 100644 --- a/packages/mobile/src/core/TonConnect/models.ts +++ b/packages/mobile/src/core/TonConnect/models.ts @@ -5,6 +5,7 @@ import { ConnectReplyBuilder, DAppManifest } from '$tonconnect'; export interface TonConnectModalResponse { address: string; replyItems: ConnectItemReply[]; + notificationsEnabled: boolean; } export type TonConnectModalProps = diff --git a/packages/mobile/src/navigation/ActivityStack/ActivityStack.interface.ts b/packages/mobile/src/navigation/ActivityStack/ActivityStack.interface.ts new file mode 100644 index 000000000..a398c1d1a --- /dev/null +++ b/packages/mobile/src/navigation/ActivityStack/ActivityStack.interface.ts @@ -0,0 +1,7 @@ +import { ActivityStackRouteNames } from '../navigationNames'; + +export type ActivityStackParamList = { + [ActivityStackRouteNames.Activity]: {}; + [ActivityStackRouteNames.NotificationsActivity]: {}; + [ActivityStackRouteNames.Notifications]: {}; +}; diff --git a/packages/mobile/src/navigation/ActivityStack/ActivityStack.tsx b/packages/mobile/src/navigation/ActivityStack/ActivityStack.tsx new file mode 100644 index 000000000..a995449e2 --- /dev/null +++ b/packages/mobile/src/navigation/ActivityStack/ActivityStack.tsx @@ -0,0 +1,39 @@ +import React, { FC } from 'react'; +import { createNativeStackNavigator } from '@react-navigation/native-stack'; + +import { useTheme } from '$hooks'; +import { ActivityStackRouteNames } from '$navigation'; +import { ActivityStackParamList } from '$navigation/ActivityStack/ActivityStack.interface'; +import { ActivityScreen } from '../../tabs/Activity/ActivityScreen'; +import { NotificationsActivity } from '$core/Notifications/NotificationsActivity'; +import { Notifications } from '$core/Notifications/Notifications'; + +const Stack = createNativeStackNavigator(); + +export const ActivityStack: FC = () => { + const theme = useTheme(); + + return ( + + + + + + ); +}; diff --git a/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx b/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx index 6987821a1..9f0321a62 100644 --- a/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx +++ b/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx @@ -13,12 +13,12 @@ import { t } from '$translation'; import { SettingsStack } from '$navigation/SettingsStack/SettingsStack'; import { TabBarBadgeIndicator } from './TabBarBadgeIndicator'; import { useNotificationsSubscribe } from '$hooks/useNotificationsSubscribe'; -import { ActivityScreen } from '../../../tabs/Activity/ActivityScreen'; import { WalletScreen } from '../../../tabs/Wallet/WalletScreen'; import Animated from 'react-native-reanimated'; import { FONT } from '$styled'; import { useCheckForUpdates } from '$hooks/useCheckForUpdates'; import { useLoadExpiringDomains } from '$store/zustand/domains/useExpiringDomains'; +import { ActivityStack } from '$navigation/ActivityStack/ActivityStack'; const Tab = createBottomTabNavigator(); @@ -87,7 +87,7 @@ export const TabStack: FC = () => { }} /> { +export interface CellSectionProps { + sectionStyle?: StyleProp; + children: ReactNode; +} + +export const CellSection: FC = ({ children, sectionStyle }) => { const items = useMemo(() => { return React.Children.map(children, (node, i) => { if (!React.isValidElement(node)) { @@ -18,7 +23,7 @@ export const CellSection: FC = ({ children }) => { }); }, [children]); - return {items}; + return {items}; }; export const CellSectionItem = forwardRef>( @@ -45,7 +50,9 @@ export const CellSectionItem = forwardRef>( > - {content ? content : ( + {content ? ( + content + ) : ( {children} diff --git a/packages/mobile/src/store/subscriptions/sagas.ts b/packages/mobile/src/store/subscriptions/sagas.ts index 9fee38fc1..66f0016ac 100644 --- a/packages/mobile/src/store/subscriptions/sagas.ts +++ b/packages/mobile/src/store/subscriptions/sagas.ts @@ -94,7 +94,7 @@ function* subscribeWorker(action: SubscribeAction) { subscription_address: prepared.subscriptionAddress, fee: prepared.fee, startAt: prepared.startAt, - } + }, }); yield put(eventsActions.pollEvents()); @@ -124,7 +124,7 @@ function* unsubscribeWorker(action: UnsubscribeAction) { const host = getServerConfig('subscriptionsHost'); yield call(network.post, `${host}/v1/subscribe/cancel/${subscription.id}`, { - params: { signed_tx: signedTx } + params: { signed_tx: signedTx }, }); yield put(eventsActions.pollEvents()); diff --git a/packages/mobile/src/store/zustand/connectedApps/helpers.ts b/packages/mobile/src/store/zustand/connectedApps/helpers.ts index 3c8b64978..42f06a9c9 100644 --- a/packages/mobile/src/store/zustand/connectedApps/helpers.ts +++ b/packages/mobile/src/store/zustand/connectedApps/helpers.ts @@ -8,6 +8,7 @@ import { IConnectedAppConnectionRemote, } from './types'; import { useConnectedAppsStore } from './useConnectedAppsStore'; +import app from '@tonkeeper/web/src/App'; export const saveAppConnection = ( walletAddress: string, @@ -19,6 +20,12 @@ export const saveAppConnection = ( .actions.saveAppConnection(getChainName(), walletAddress, appData, connection); }; +export const enableNotifications = (walletAddress: string, url: IConnectedApp['url']) => { + useConnectedAppsStore + .getState() + .actions.enableNotifications(getChainName(), walletAddress, url); +}; + export const removeConnectedApp = (url: string) => { const currentWalletAddress = store.getState().wallet.address.ton; diff --git a/packages/mobile/src/store/zustand/connectedApps/types.ts b/packages/mobile/src/store/zustand/connectedApps/types.ts index 4c0905b66..951c271de 100644 --- a/packages/mobile/src/store/zustand/connectedApps/types.ts +++ b/packages/mobile/src/store/zustand/connectedApps/types.ts @@ -26,6 +26,7 @@ export interface IConnectedApp { url: string; icon: string; autoConnectDisabled?: boolean; + notificationsEnabled?: boolean; connections: IConnectedAppConnection[]; } @@ -37,13 +38,6 @@ export interface IConnectedAppsStore { }; }; }; - notificationsEnabled: { - [chainName: string]: { - [walletAddress: string]: { - [domain: string]: boolean; - }; - }; - }; actions: { saveAppConnection: ( chainName: 'mainnet' | 'testnet', diff --git a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts index 8ead7cd70..d9b26a928 100644 --- a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts +++ b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts @@ -9,10 +9,6 @@ const initialState: Omit = { mainnet: {}, testnet: {}, }, - notificationsEnabled: { - mainnet: {}, - testnet: {}, - }, }; export const useConnectedAppsStore = create( @@ -124,31 +120,44 @@ export const useConnectedAppsStore = create( enableNotifications: (chainName, walletAddress, url) => { const fixedUrl = getFixedLastSlashUrl(url); - set(({ notificationsEnabled }) => { - if (!notificationsEnabled[chainName][walletAddress]) { - notificationsEnabled[chainName][walletAddress] = {}; - } + set(({ connectedApps }) => { + const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); - const hash = generateAppHashFromUrl(fixedUrl); + const apps = Object.values(connectedApps[chainName][walletAddress] || {}); - notificationsEnabled[chainName][walletAddress][hash] = true; + const index = apps.findIndex((app) => + fixedUrl.startsWith(getFixedLastSlashUrl(app.url)), + ); + + const hash = keys[index]; + + if (connectedApps[chainName][walletAddress]?.[hash]) { + connectedApps[chainName][walletAddress][hash].notificationsEnabled = true; + } - return { notificationsEnabled }; + return { connectedApps }; }); }, disableNotifications: (chainName, walletAddress, url) => { const fixedUrl = getFixedLastSlashUrl(url); - set(({ notificationsEnabled }) => { - if (!notificationsEnabled[chainName][walletAddress]) { - notificationsEnabled[chainName][walletAddress] = {}; - } + set(({ connectedApps }) => { + const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); + + const apps = Object.values(connectedApps[chainName][walletAddress] || {}); + + const index = apps.findIndex((app) => + fixedUrl.startsWith(getFixedLastSlashUrl(app.url)), + ); - const hash = generateAppHashFromUrl(fixedUrl); + const hash = keys[index]; - notificationsEnabled[chainName][walletAddress][hash] = false; + if (connectedApps[chainName][walletAddress]?.[hash]) { + connectedApps[chainName][walletAddress][hash].notificationsEnabled = + false; + } - return { notificationsEnabled }; + return { connectedApps }; }); }, removeApp: (chainName, walletAddress, url) => { diff --git a/packages/mobile/src/store/zustand/notifications/types.ts b/packages/mobile/src/store/zustand/notifications/types.ts new file mode 100644 index 000000000..7a519d0a6 --- /dev/null +++ b/packages/mobile/src/store/zustand/notifications/types.ts @@ -0,0 +1,16 @@ +export interface INotification { + title: string; + service_url: string; + received_at: number; +} + +export interface INotificationsStore { + notifications: INotification[]; + last_seen: number; + actions: { + updateLastSeen: () => void; + addNotification: (notification: INotification) => void; + reset: () => void; + deleteNotificationByReceivedAt: (receivedAt: number) => void; + }; +} diff --git a/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts b/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts new file mode 100644 index 000000000..6300d4a08 --- /dev/null +++ b/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts @@ -0,0 +1,37 @@ +import AsyncStorage from '@react-native-async-storage/async-storage'; +import { create } from 'zustand'; +import { persist } from 'zustand/middleware'; +import { INotification, INotificationsStore } from './types'; + +const initialState: Omit = { + last_seen: 0, + notifications: [], +}; + +export const useNotificationsStore = create( + persist( + (set) => ({ + ...initialState, + actions: { + updateLastSeen: () => set({ last_seen: new Date().getTime() }), + addNotification: (notification: INotification) => + set((state) => ({ + notifications: [notification, ...state.notifications], + })), + deleteNotificationByReceivedAt: (receivedAt) => + set((state) => ({ + notifications: state.notifications.filter( + (notification) => notification.received_at !== receivedAt, + ), + })), + reset: () => set({ last_seen: 0, notifications: [] }), + }, + }), + { + name: 'notifications', + getStorage: () => AsyncStorage, + partialize: ({ notifications, last_seen }) => + ({ notifications, last_seen } as INotificationsStore), + }, + ), +); diff --git a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx index e94023545..ad9fc64f0 100644 --- a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx +++ b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx @@ -1,12 +1,22 @@ import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; -import { Linking, RefreshControl, StyleSheet, View } from 'react-native'; +import { RefreshControl } from 'react-native'; import { useDispatch, useSelector } from 'react-redux'; import { useBottomTabBarHeight } from '$hooks/useBottomTabBarHeight'; import { useNetInfo } from '@react-native-community/netinfo'; import { useIsFocused } from '@react-navigation/native'; import * as S from '../../core/Balances/Balances.style'; -import { Button, Loader, Screen, ScrollHandler, Text } from '$uikit'; +import { + Button, + Icon, + List, + Loader, + Screen, + ScrollHandler, + Spacer, + Text, + View, +} from '$uikit'; import { useAppStateActive, usePrevious, @@ -18,18 +28,20 @@ import { walletActions, walletSelector } from '$store/wallet'; import { ns } from '$utils'; import { CryptoCurrencies, - isServerConfigLoaded, NavBarHeight, SecondaryCryptoCurrencies, TabletMaxWidth, } from '$shared/constants'; -import { openRequireWalletModal } from '$navigation'; +import { openNotificationsScreen, openRequireWalletModal } from '$navigation'; import { eventsActions, eventsSelector } from '$store/events'; import { mainActions } from '$store/main'; import { LargeNavBarInteractiveDistance } from '$uikit/LargeNavBar/LargeNavBar'; import { getLastRefreshedAt } from '$database'; import { TransactionsList } from '$core/Balances/TransactionsList/TransactionsList'; import { useNavigation } from '$libs/navigation'; +import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; +import { Steezy } from '$styles'; +import { Notification } from '$core/Notifications/Notification'; export const ActivityScreen: FC = () => { const nav = useNavigation(); @@ -44,6 +56,7 @@ export const ActivityScreen: FC = () => { eventsInfo, canLoadMore, } = useSelector(eventsSelector); + const notifications = useNotificationsStore((state) => state.notifications); const netInfo = useNetInfo(); const prevNetInfo = usePrevious(netInfo); @@ -73,6 +86,10 @@ export const ActivityScreen: FC = () => { dispatch(walletActions.refreshBalancesPage(true)); }, [dispatch]); + const handleOpenNotificationsScreen = useCallback(() => { + openNotificationsScreen(); + }, []); + const otherCurrencies = useMemo(() => { const list = [...SecondaryCryptoCurrencies]; if (wallet && wallet.ton.isLockup()) { @@ -106,7 +123,7 @@ export const ActivityScreen: FC = () => { footer?: React.ReactElement; }[] = []; return result; - }, [otherCurrencies, oldWalletBalances, jettonBalances, wallet?.ton]); + }, []); const handleLoadMore = useCallback(() => { if (isEventsLoading || !canLoadMore) { @@ -116,6 +133,30 @@ export const ActivityScreen: FC = () => { dispatch(eventsActions.loadEvents({ isLoadMore: true })); }, [dispatch, isEventsLoading, canLoadMore]); + const renderNotificationsHeader = useCallback(() => { + return ( + + + {notifications.slice(0, 2).map((notification) => ( + + ))} + + + + + } + onPress={handleOpenNotificationsScreen} + title={'Notifications'} + subtitle={'From connected services'} + chevron + /> + + + ); + }, [notifications]); + function renderFooter() { return ( <> @@ -142,6 +183,7 @@ export const ActivityScreen: FC = () => { return ( { ); }; -const styles = StyleSheet.create({ +const styles = Steezy.create(({ colors }) => ({ emptyContainer: { flex: 1, justifyContent: 'center', @@ -241,4 +283,18 @@ const styles = StyleSheet.create({ flexDirection: 'row', marginTop: ns(24), }, -}); + iconContainer: { + width: 44, + height: 44, + borderRadius: 22, + backgroundColor: colors.backgroundContentTint, + alignItems: 'center', + justifyContent: 'center', + }, + notificationsHeader: { + marginHorizontal: -16, + }, + listStyle: { + marginBottom: 8, + }, +})); diff --git a/packages/mobile/src/tonconnect/TonConnect.ts b/packages/mobile/src/tonconnect/TonConnect.ts index 023324e9a..49006ae35 100644 --- a/packages/mobile/src/tonconnect/TonConnect.ts +++ b/packages/mobile/src/tonconnect/TonConnect.ts @@ -16,6 +16,7 @@ import { IConnectedAppConnection, removeInjectedConnection, removeRemoteConnection, + enableNotifications, } from '$store'; import { debugLog } from '$utils'; import { getTimeSec } from '$utils/getTimeSec'; @@ -110,8 +111,8 @@ class TonConnectService { const manifest = await this.getManifest(request); try { - const { address, replyItems } = await new Promise( - (resolve, reject) => + const { address, replyItems, notificationsEnabled } = + await new Promise((resolve, reject) => openTonConnect({ protocolVersion: protocolVersion as 2, manifest, @@ -119,7 +120,7 @@ class TonConnectService { requestPromise: { resolve, reject }, hideImmediately: !!webViewUrl, }), - ); + ); saveAppConnection( address, @@ -127,6 +128,7 @@ class TonConnectService { name: manifest.name, url: manifest.url, icon: manifest.iconUrl, + notificationsEnabled, }, webViewUrl ? { type: TonConnectBridgeType.Injected, replyItems } @@ -138,6 +140,8 @@ class TonConnectService { }, ); + enableNotifications(address, manifest.url); + return { id: TCEventID.getId(), event: 'connect', diff --git a/packages/mobile/src/uikit/Checkbox/Checkbox.tsx b/packages/mobile/src/uikit/Checkbox/Checkbox.tsx index c406aa2da..5d2bf0134 100644 --- a/packages/mobile/src/uikit/Checkbox/Checkbox.tsx +++ b/packages/mobile/src/uikit/Checkbox/Checkbox.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Icon, TouchableOpacity } from '$uikit'; +import { Icon } from '$uikit'; import { Steezy } from '$styles'; import Animated, { interpolateColor, @@ -9,12 +9,15 @@ import Animated, { } from 'react-native-reanimated'; import { useTheme } from '$hooks'; import { useEffect } from 'react'; +import { TouchableOpacity } from 'react-native-gesture-handler'; export interface CheckboxProps { checked: boolean; onChange: () => void; disabled?: boolean; } +const STouchableOpacity = Steezy.withStyle(TouchableOpacity); + const Checkbox: React.FC = (props) => { const { checked, onChange } = props; const colorProgress = useSharedValue(checked ? 1 : 0); @@ -48,13 +51,13 @@ const Checkbox: React.FC = (props) => { }, [checked, colorProgress]); return ( - + - + ); }; diff --git a/packages/mobile/src/uikit/Icon/IconsMobileList.ts b/packages/mobile/src/uikit/Icon/IconsMobileList.ts index 4f2064f4e..5ee9bf4ce 100644 --- a/packages/mobile/src/uikit/Icon/IconsMobileList.ts +++ b/packages/mobile/src/uikit/Icon/IconsMobileList.ts @@ -39,6 +39,7 @@ export const MobileIconsList = { 'ic-swap-16': require('$assets/icons/png/ic-swap-16.png'), 'ic-telegram-16': require('$assets/icons/png/ic-telegram-16.png'), 'ic-time-16': require('$assets/icons/png/ic-time-16.png'), + 'ic-trash-bin-16': require('$assets/icons/png/ic-trash-bin-16.png'), 'ic-twitter-16': require('$assets/icons/png/ic-twitter-16.png'), 'ic-verification-16': require('$assets/icons/png/ic-verification-16.png'), 'ic-verification-secondary-16': require('$assets/icons/png/ic-verification-secondary-16.png'), diff --git a/packages/mobile/src/uikit/Icon/generated.types.ts b/packages/mobile/src/uikit/Icon/generated.types.ts index f34a7a2b3..690fcce00 100644 --- a/packages/mobile/src/uikit/Icon/generated.types.ts +++ b/packages/mobile/src/uikit/Icon/generated.types.ts @@ -39,6 +39,7 @@ export type IconNames = | 'ic-swap-16' | 'ic-telegram-16' | 'ic-time-16' + | 'ic-trash-bin-16' | 'ic-twitter-16' | 'ic-verification-16' | 'ic-verification-secondary-16' @@ -159,6 +160,7 @@ export const AllIcons = [ 'ic-swap-16', 'ic-telegram-16', 'ic-time-16', + 'ic-trash-bin-16', 'ic-twitter-16', 'ic-verification-16', 'ic-verification-secondary-16', @@ -280,6 +282,7 @@ export const IconSizes = { 'ic-swap-16': 16, 'ic-telegram-16': 16, 'ic-time-16': 16, + 'ic-trash-bin-16': 16, 'ic-twitter-16': 16, 'ic-verification-16': 16, 'ic-verification-secondary-16': 16, diff --git a/packages/mobile/src/uikit/List/ListItem.tsx b/packages/mobile/src/uikit/List/ListItem.tsx index 6397886a5..9def98945 100644 --- a/packages/mobile/src/uikit/List/ListItem.tsx +++ b/packages/mobile/src/uikit/List/ListItem.tsx @@ -7,6 +7,7 @@ import FastImage from 'react-native-fast-image'; import Animated, { useSharedValue } from 'react-native-reanimated'; import { TouchableHighlight } from 'react-native-gesture-handler'; import { isAndroid } from '$utils'; +import { TextProps } from '$uikit/Text/Text'; type LeftContentFN = (isPressed: Animated.SharedValue) => React.ReactNode; @@ -22,6 +23,8 @@ export interface ListItemProps { isLast?: boolean; isFirst?: boolean; disabled?: boolean; + titleProps?: TextProps; + leftContentStyle?: StyleProp; valueStyle?: StyleProp; containerStyle?: StyleProp; @@ -38,7 +41,7 @@ export interface ListItemProps { export const ListItem = memo((props) => { const isPressed = useSharedValue(false); - const { compact = true } = props; + const { compact = true, titleProps = {} } = props; const handlePressIn = useCallback(() => { isPressed.value = true; @@ -71,6 +74,7 @@ export const ListItem = memo((props) => { color={compact ? 'textPrimary' : 'textSecondary'} numberOfLines={1} ellipsizeMode="tail" + {...titleProps} > {props.title} @@ -122,7 +126,7 @@ export const ListItem = memo((props) => { ]} > {hasLeftContent && ( - + {leftContent} {!!props.picture && ( diff --git a/packages/mobile/src/uikit/SwitchItem.tsx b/packages/mobile/src/uikit/SwitchItem.tsx index a32908bcb..826c0991c 100644 --- a/packages/mobile/src/uikit/SwitchItem.tsx +++ b/packages/mobile/src/uikit/SwitchItem.tsx @@ -1,9 +1,10 @@ -import React from "react"; -import { Switch, StyleSheet, View } from "react-native"; -import { Highlight } from "./Highlight/Highlight"; -import { Text } from "./Text/Text"; +import React, { ReactNode } from 'react'; +import { Switch, StyleSheet, View } from 'react-native'; +import { Highlight } from './Highlight/Highlight'; +import { Text } from './Text/Text'; interface SwitchItemProps { + icon?: ReactNode; title: string; subtitle?: string; value: boolean; @@ -12,56 +13,41 @@ interface SwitchItemProps { } export const SwitchItem: React.FC = (props) => { - const { title, onChange, value, disabled, subtitle } = props; + const { icon, title, onChange, value, disabled, subtitle } = props; - const handleToggle = React.useCallback( - () => onChange(!value), - [value] - ) + const handleToggle = React.useCallback(() => onChange(!value), [value]); return ( + {icon} - + {title} {!!subtitle && ( - + {subtitle} )} - + - ); -} +}; const styles = StyleSheet.create({ container: { paddingHorizontal: 16, - paddingVertical: 12.5 + paddingVertical: 16, }, row: { flexDirection: 'row', - alignItems: 'center' + alignItems: 'center', }, titleContainer: { flex: 1, - marginRight: 16 - } -}); \ No newline at end of file + marginRight: 16, + }, +}); diff --git a/packages/mobile/src/utils/notificationsproof.ts b/packages/mobile/src/utils/notificationsproof.ts new file mode 100644 index 000000000..92f92e3fd --- /dev/null +++ b/packages/mobile/src/utils/notificationsproof.ts @@ -0,0 +1,85 @@ +import { getTimeSec } from '$utils/getTimeSec'; +import { Int64LE } from 'int64-buffer'; +import { Buffer } from 'buffer'; +import nacl from 'tweetnacl'; +import naclUtils from 'tweetnacl-util'; +const { createHash } = require('react-native-crypto'); +import { ConnectApi, Configuration } from '@tonkeeper/core'; +import { getServerConfigSafe } from '$shared/constants'; +import { Address } from '$libs/Ton'; + +export async function createTonProofForTonkeeper( + addressRaw: string, + secretKey: Uint8Array, +) { + try { + const address = new Address(addressRaw).toString(false); + const connectApi = new ConnectApi( + new Configuration({ + basePath: getServerConfigSafe('tonapiV2Endpoint'), + headers: { + Authorization: `Bearer ${getServerConfigSafe('tonApiV2Key')}`, + }, + }), + ); + const { payload } = await connectApi.getTonConnectPayload(); + const timestamp = getTimeSec(); + const timestampBuffer = new Int64LE(timestamp).toBuffer(); + + const domain = 'tonkeeper.com'; + const domainBuffer = Buffer.from(domain); + const domainLengthBuffer = Buffer.allocUnsafe(4); + domainLengthBuffer.writeInt32LE(domainBuffer.byteLength); + + const [workchain, addrHash] = address.split(':'); + + const addressWorkchainBuffer = Buffer.allocUnsafe(4); + addressWorkchainBuffer.writeInt32BE(Number(workchain)); + + const addressBuffer = Buffer.concat([ + addressWorkchainBuffer, + Buffer.from(addrHash, 'hex'), + ]); + + const messageBuffer = Buffer.concat([ + Buffer.from('ton-proof-item-v2/'), + addressBuffer, + domainLengthBuffer, + domainBuffer, + timestampBuffer, + Buffer.from(payload), + ]); + const message = createHash('sha256').update(messageBuffer).digest(); + + const bufferToSign = Buffer.concat([ + Buffer.from('ffff', 'hex'), + Buffer.from('ton-connect'), + message, + ]); + const signed = nacl.sign.detached( + createHash('sha256').update(bufferToSign).digest(), + secretKey, + ); + + const signature = naclUtils.encodeBase64(signed); + return { + address, + proof: { + timestamp, + domain: { + lengthBytes: domainBuffer.byteLength, + value: domain, + }, + signature, + payload, + }, + }; + } catch (e) { + return { + error: { + code: 0, + message: `Wallet internal error: ${e.message}`, + }, + }; + } +} From 96100ba80a9ec4da7f8cc7429397bd0cfc0c9194 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 8 Jun 2023 11:37:17 +0400 Subject: [PATCH 28/73] wip --- packages/mobile/index.js | 18 +++- .../ios/ton_keeper/SupportingFiles/Info.plist | 4 + packages/mobile/package.json | 1 + packages/mobile/src/core/App.tsx | 47 +++++----- .../src/core/DAppBrowser/DAppBrowser.tsx | 13 ++- .../BrowserNavBar/BrowserNavBar.tsx | 11 ++- .../core/DAppBrowser/hooks/useDAppBridge.ts | 7 ++ packages/mobile/src/core/DevMenu/DevMenu.tsx | 2 +- .../src/core/Notifications/Notification.tsx | 88 ++++++++++++++++--- .../src/core/Notifications/Notifications.tsx | 14 ++- .../src/core/TonConnect/TonConnectModal.tsx | 29 +++++- .../src/hooks/useNotificationsResolver.ts | 7 +- packages/mobile/src/libs/Tonapi/Tonapi.ts | 56 ++++++++++++ .../store/zustand/connectedApps/helpers.ts | 25 +++++- .../src/store/zustand/connectedApps/types.ts | 3 + .../connectedApps/useConnectedAppsStore.ts | 61 +++++++++++-- packages/mobile/src/store/zustand/index.ts | 1 + .../src/store/zustand/notifications/index.ts | 2 + .../src/store/zustand/notifications/types.ts | 6 +- .../notifications/useNotificationsStore.ts | 6 +- .../src/tabs/Activity/ActivityScreen.tsx | 16 ++++ packages/mobile/src/tonconnect/TonConnect.ts | 6 +- .../mobile/src/translation/locales/en.json | 8 ++ packages/mobile/src/uikit/List/ListItem.tsx | 17 ++-- yarn.lock | 10 ++- 25 files changed, 393 insertions(+), 65 deletions(-) create mode 100644 packages/mobile/src/store/zustand/notifications/index.ts diff --git a/packages/mobile/index.js b/packages/mobile/index.js index f26144f6d..39598a237 100644 --- a/packages/mobile/index.js +++ b/packages/mobile/index.js @@ -16,19 +16,33 @@ import { App } from '$core/App'; import { name as appName } from './app.json'; import { debugLog } from './src/utils'; import { mainActions } from './src/store/main'; -import { store } from './src/store'; +import { store, useNotificationsStore } from './src/store'; import { getAttachScreenFromStorage } from '$navigation/AttachScreen'; import crashlytics from '@react-native-firebase/crashlytics'; +import messaging from '@react-native-firebase/messaging'; LogBox.ignoreLogs([ 'Non-serializable values were found in the navigation state', - 'ViewPropTypes will be removed from React Native. Migrate to ViewPropTypes exported from \'deprecated-react-native-prop-types\'.' + "ViewPropTypes will be removed from React Native. Migrate to ViewPropTypes exported from 'deprecated-react-native-prop-types'.", ]); if (__DEV__) { getAttachScreenFromStorage(); } +async function handleDappMessage(remoteMessage) { + if (!remoteMessage.data?.type) { + return null; + } + useNotificationsStore.getState().actions.addNotification({ + ...remoteMessage.data, + received_at: parseInt(remoteMessage.data.sent_at) || Date.now(), + }); +} + +messaging().setBackgroundMessageHandler(handleDappMessage); +messaging().onMessage(handleDappMessage); + setJSExceptionHandler((error, isFatal) => { crashlytics().recordError(error, error.toString()); debugLog('JsError', error.toString(), isFatal); diff --git a/packages/mobile/ios/ton_keeper/SupportingFiles/Info.plist b/packages/mobile/ios/ton_keeper/SupportingFiles/Info.plist index 4f557a7e2..b2717dd15 100644 --- a/packages/mobile/ios/ton_keeper/SupportingFiles/Info.plist +++ b/packages/mobile/ios/ton_keeper/SupportingFiles/Info.plist @@ -128,6 +128,10 @@ SFMono-Bold.otf SFMono-Medium.otf + UIBackgroundModes + + remote-notification + UILaunchStoryboardName SplashScreen UIRequiredDeviceCapabilities diff --git a/packages/mobile/package.json b/packages/mobile/package.json index b031e6f3b..4eb180072 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -27,6 +27,7 @@ "@alexzunik/rn-native-portals-reborn": "^1.0.5", "@amplitude/analytics-browser": "^1.6.7", "@bogoslavskiy/react-native-steezy": "^1.0.4", + "@expo/react-native-action-sheet": "^4.0.1", "@gorhom/bottom-sheet": "^4.4.4", "@rainbow-me/animated-charts": "git+ssh://git@github.com:tonkeeper/react-native-animated-charts#b0872b97e43c694414b37c95c042e44b92e2c0e9", "@react-native-async-storage/async-storage": "^1.15.5", diff --git a/packages/mobile/src/core/App.tsx b/packages/mobile/src/core/App.tsx index 7599dde76..b94e54e38 100644 --- a/packages/mobile/src/core/App.tsx +++ b/packages/mobile/src/core/App.tsx @@ -14,6 +14,7 @@ import { View } from 'react-native'; import { QueryClient, QueryClientProvider } from 'react-query'; import { PortalDestination } from '@alexzunik/rn-native-portals-reborn'; import { isAndroid } from '$utils'; +import { ActionSheetProvider } from '@expo/react-native-action-sheet'; const TonThemeProvider: FC = ({ children }) => { const accent = useSelector(accentSelector); @@ -40,28 +41,30 @@ const queryClient = new QueryClient(); export const App: FC = () => { return ( - - - - - - - - {isAndroid ? ( - - - - ) : null} - - - + + + + + + + + + {isAndroid ? ( + + + + ) : null} + + + + ); }; diff --git a/packages/mobile/src/core/DAppBrowser/DAppBrowser.tsx b/packages/mobile/src/core/DAppBrowser/DAppBrowser.tsx index 245b20b8d..eaaa62b02 100644 --- a/packages/mobile/src/core/DAppBrowser/DAppBrowser.tsx +++ b/packages/mobile/src/core/DAppBrowser/DAppBrowser.tsx @@ -50,8 +50,14 @@ const DAppBrowserComponent: FC = (props) => { const [canGoBack, setCanGoBack] = useState(false); - const { ref, isConnected, disconnect, notificationsEnabled, ...webViewProps } = - useDAppBridge(walletAddress, currentUrl); + const { + ref, + isConnected, + disconnect, + notificationsEnabled, + unsubscribeFromNotifications, + ...webViewProps + } = useDAppBridge(walletAddress, currentUrl); const dimensions = useWindowDimensions(); @@ -130,6 +136,8 @@ const DAppBrowserComponent: FC = (props) => { openDAppsSearch(initialQuery, openUrl); }, [currentUrl, initialUrl, openUrl]); + const handleUnsubscribeFromNotifications = useCallback(() => {}, []); + return ( = (props) => { onTitlePress={handleTitlePress} onRefreshPress={handleRefreshPress} disconnect={disconnect} + unsubscribeFromNotifications={unsubscribeFromNotifications} /> void; onRefreshPress: () => void; disconnect: () => Promise; + unsubscribeFromNotifications: () => Promise; } const BrowserNavBarComponent: FC = (props) => { @@ -47,6 +49,7 @@ const BrowserNavBarComponent: FC = (props) => { onTitlePress, onRefreshPress, disconnect, + unsubscribeFromNotifications, } = props; const t = useTranslator(); @@ -100,7 +103,7 @@ const BrowserNavBarComponent: FC = (props) => { } return items; - }, [isConnected, t]); + }, [isConnected, isNotificationsEnabled, t]); const handlePressAction = useCallback( (action: PopupAction) => { @@ -118,9 +121,13 @@ const BrowserNavBarComponent: FC = (props) => { return copyText(url); case PopupActionType.DISCONNECT: return disconnect(); + case PopupActionType.MUTE: + Toast.success(t('notifications.muted')); + unsubscribeFromNotifications(); + return; } }, - [copyText, disconnect, onRefreshPress, url], + [copyText, disconnect, onRefreshPress, unsubscribeFromNotifications, url], ); return ( diff --git a/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts b/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts index c92a9a951..01454d011 100644 --- a/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts +++ b/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts @@ -7,7 +7,9 @@ import { removeInjectedConnection, getConnectedAppByUrl, useConnectedAppsStore, + disableNotifications, } from '$store'; +import messaging from '@react-native-firebase/messaging'; export const useDAppBridge = (walletAddress: string, webViewUrl: string) => { const [connectEvent, setConnectEvent] = useState(null); @@ -77,6 +79,10 @@ export const useDAppBridge = (walletAddress: string, webViewUrl: string) => { } catch {} }, [webViewUrl, sendEvent]); + const unsubscribeFromNotifications = useCallback(async () => { + disableNotifications(walletAddress, webViewUrl, await messaging().getToken()); + }, [walletAddress, webViewUrl]); + return { ref, injectedJavaScriptBeforeContentLoaded, @@ -84,5 +90,6 @@ export const useDAppBridge = (walletAddress: string, webViewUrl: string) => { isConnected, notificationsEnabled, disconnect, + unsubscribeFromNotifications, }; }; diff --git a/packages/mobile/src/core/DevMenu/DevMenu.tsx b/packages/mobile/src/core/DevMenu/DevMenu.tsx index 0f3e3dc09..5ee5c2a13 100644 --- a/packages/mobile/src/core/DevMenu/DevMenu.tsx +++ b/packages/mobile/src/core/DevMenu/DevMenu.tsx @@ -92,7 +92,7 @@ export const DevMenu: FC = () => { const handlePushNotification = useCallback(() => { addNotification({ title: 'Test notification added from dev menu', - service_url: 'https://getgems.io', + dapp_url: 'https://getgems.io', received_at: Date.now(), }); }, [addNotification]); diff --git a/packages/mobile/src/core/Notifications/Notification.tsx b/packages/mobile/src/core/Notifications/Notification.tsx index 2b32076ad..74b29ae58 100644 --- a/packages/mobile/src/core/Notifications/Notification.tsx +++ b/packages/mobile/src/core/Notifications/Notification.tsx @@ -1,18 +1,33 @@ -import { Button, Icon, List, Spacer, View } from '$uikit'; -import React, { useCallback } from 'react'; +import { Icon, List, Spacer, View } from '$uikit'; +import React, { useCallback, useRef } from 'react'; import { Steezy } from '$styles'; import { INotification } from '$store/zustand/notifications/types'; -import { useConnectedAppsList } from '$store'; +import { disableNotifications, useConnectedAppsList } from '$store'; import { format } from '$utils'; import { Swipeable } from 'react-native-gesture-handler'; import { TouchableOpacity } from 'react-native'; import { IconProps } from '$uikit/Icon/Icon'; import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; +import { t } from '$translation'; +import { isToday } from 'date-fns'; +import { useActionSheet } from '@expo/react-native-action-sheet'; +import _ from 'lodash'; +import { TonConnect } from '$tonconnect'; +import messaging from '@react-native-firebase/messaging'; +import { useSelector } from 'react-redux'; +import { walletAddressSelector } from '$store/wallet'; interface NotificationProps { notification: INotification; } +type Options = { + option: string; + action?: () => void; + destructive?: boolean; + cancel?: boolean; +}[]; + export const ActionButton: React.FC<{ icon: IconProps['name']; onPress: () => void }> = ( props, ) => ( @@ -25,34 +40,87 @@ export const ActionButton: React.FC<{ icon: IconProps['name']; onPress: () => vo export const Notification: React.FC = (props) => { const app = useConnectedAppsList().find( - (app) => app.url === props.notification.service_url, + (app) => app.url === props.notification.dapp_url, ); + const walletAddress = useSelector(walletAddressSelector); + const { showActionSheetWithOptions } = useActionSheet(); const deleteNotification = useNotificationsStore( (state) => state.actions.deleteNotificationByReceivedAt, ); + const swipeableRef = useRef(null); + + const subtitle = + (props.notification.name || app?.name || t('notifications.disconnected_app')) + + ' · ' + + format( + props.notification.received_at, + isToday(props.notification.received_at) ? 'HH:mm' : 'd MMM, HH:mm', + ); + + const handleOpenSettings = useCallback(async () => { + const options: Options = [ + app?.notificationsEnabled && { + option: t('notifications.mute_notifications'), + action: async () => { + const firebaseToken = await messaging().getToken(); + disableNotifications(walletAddress.ton, app.url, firebaseToken); + }, + }, + app && { + option: t('notifications.disconnect_app', { app_name: app?.name }), + action: () => { + TonConnect.disconnect(app.url); + }, + destructive: true, + }, + { option: t('cancel'), cancel: true }, + ].filter((option) => option) as Options; - const subtitle = app?.name + ' · ' + format(props.notification.received_at, 'HH:mm'); + const destructiveButtonIndex = options.findIndex((option) => option.destructive); + const cancelButtonIndex = options.findIndex((option) => option.cancel); + + // @ts-ignore + swipeableRef.current?.close?.(); + + showActionSheetWithOptions( + { + options: options.map((option) => option.option), + cancelButtonIndex, + destructiveButtonIndex, + }, + (selectedIndex: number | undefined) => { + if (selectedIndex !== undefined) { + options[selectedIndex]?.action?.(); + } + return; + }, + ); + }, [app, showActionSheetWithOptions, walletAddress.ton]); const renderRightActions = useCallback(() => { return ( - - + {app && ( + <> + + + + )} deleteNotification(props.notification.received_at)} icon="ic-trash-bin-16" /> ); - }, [deleteNotification, props.notification.received_at]); + }, [deleteNotification, handleOpenSettings, props.notification.received_at]); return ( - + { ); const handleSwitchNotifications = React.useCallback( - async (value: boolean, url: string) => { + async (value: boolean, url: string, session_id: string | undefined) => { + const token = await messaging().getToken(); if (value) { - return enableNotifications(getChainName(), address.ton, url); + return enableNotifications(getChainName(), address.ton, url, session_id, token); } - disableNotifications(getChainName(), address.ton, url); + disableNotifications(getChainName(), address.ton, url, token); }, [disableNotifications, enableNotifications, address], ); @@ -152,7 +153,12 @@ export const Notifications: React.FC = () => { disabled={!isSubscribeNotifications} value={!!app.notificationsEnabled} onChange={() => - handleSwitchNotifications(!app.notificationsEnabled, app.url) + handleSwitchNotifications( + !app.notificationsEnabled, + app.url, + // @ts-ignore + app.connections[0]?.clientSessionId, + ) } /> ))} diff --git a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx index 86d25c6e2..d3238019b 100644 --- a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx +++ b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx @@ -5,7 +5,7 @@ import TonWeb from 'tonweb'; import { useDispatch, useSelector } from 'react-redux'; import { Linking, StyleSheet } from 'react-native'; import { useTheme } from '$hooks'; -import { SelectableVersionsConfig } from '$shared/constants'; +import { getServerConfig, SelectableVersionsConfig } from '$shared/constants'; import { walletSelector } from '$store/wallet'; import { Button, Icon, List, Loader, Spacer, Text, TransitionOpacity } from '$uikit'; import { @@ -29,11 +29,12 @@ import { t } from '$translation'; import { TonConnectModalProps } from './models'; import { useEffect } from 'react'; import { Modal, useNavigation } from '$libs/navigation'; -import { store, Toast } from '$store'; +import { store, Toast, useConnectedAppsStore, useNotificationsStore } from '$store'; import { openRequireWalletModal, push } from '$navigation'; import { SheetActions } from '$libs/navigation/components/Modal/Sheet/SheetsProvider'; import { mainSelector } from '$store/main'; import { createTonProofForTonkeeper } from '$utils/notificationsproof'; +import { ConnectApi, Configuration } from '@tonkeeper/core'; export const TonConnectModal = (props: TonConnectModalProps) => { const animation = useTonConnectAnimation(); @@ -166,8 +167,28 @@ export const TonConnectModal = (props: TonConnectModalProps) => { walletStateInit, ); - const token = await createTonProofForTonkeeper(address, privateKey); - console.log('ttt', token); + if (withNotifications) { + const notifications_token = + useNotificationsStore.getState().notifications_token; + if (!notifications_token) { + const proof = await createTonProofForTonkeeper(address, privateKey); + const connectApi = new ConnectApi( + new Configuration({ + basePath: getServerConfig('tonapiV2Endpoint'), + headers: { + Authorization: `Bearer ${getServerConfig('tonApiV2Key')}`, + }, + }), + ); + const token = await connectApi.tonConnectProof({ + tonConnectProofRequest: proof, + }); + + await useNotificationsStore + .getState() + .actions.setNotificationsToken(token.token); + } + } requestPromise.resolve({ address, diff --git a/packages/mobile/src/hooks/useNotificationsResolver.ts b/packages/mobile/src/hooks/useNotificationsResolver.ts index 814ac0abe..e11978e2b 100644 --- a/packages/mobile/src/hooks/useNotificationsResolver.ts +++ b/packages/mobile/src/hooks/useNotificationsResolver.ts @@ -1,15 +1,20 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import messaging from '@react-native-firebase/messaging'; import { useNavigation } from './useNavigation'; import { useSelector } from 'react-redux'; import { mainSelector } from '$store/main'; import { useDeeplinking } from '$libs/deeplinking'; +import { getToken } from '$utils/messaging'; export const useNotificationsResolver = () => { const { isMainStackInited } = useSelector(mainSelector); const nav = useNavigation(); const deeplinking = useDeeplinking(); + useEffect(() => { + getToken(); + }, []); + React.useEffect(() => { if (!isMainStackInited) { return; diff --git a/packages/mobile/src/libs/Tonapi/Tonapi.ts b/packages/mobile/src/libs/Tonapi/Tonapi.ts index a77dc0d0b..b005fd09f 100644 --- a/packages/mobile/src/libs/Tonapi/Tonapi.ts +++ b/packages/mobile/src/libs/Tonapi/Tonapi.ts @@ -177,6 +177,60 @@ async function sendBoc(boc: string) { console.log(e); } } + +export interface SubscribeToNotificationsRequest { + app_url: string; + account: string; + firebase_token: string; + session_id?: string; + commercial: boolean; +} +async function subscribeToNotifications( + token: string, + request: SubscribeToNotificationsRequest, +) { + try { + const endpoint = getServerConfig('tonapiIOEndpoint'); + const response: any = await axios.post( + `${endpoint}/v1/internal/pushes/tonconnect`, + request, + { + headers: prepareHeaders({ + 'X-TonConnect-Auth': token, + }), + }, + ); + return response.data; + } catch (e) { + console.log(e); + } +} + +export interface UnsubscribeToNotificationsParams { + app_url: string; + firebase_token: string; +} + +async function unsubscribeFromNotifications( + token: string, + params: UnsubscribeToNotificationsParams, +) { + try { + const endpoint = getServerConfig('tonapiIOEndpoint'); + const response: any = await axios.delete( + `${endpoint}/v1/internal/pushes/tonconnect`, + { + params, + headers: prepareHeaders({ + 'X-TonConnect-Auth': token, + }), + }, + ); + return response.data; + } catch (e) { + console.log(e); + } +} async function getBalances(pubkey: string) { const wallets = await findByPubkey(pubkey); @@ -236,6 +290,8 @@ export const Tonapi = { findByPubkey, getWalletInfo, getBalances, + subscribeToNotifications, + unsubscribeFromNotifications, resolveDns, estimateTx, sendBoc, diff --git a/packages/mobile/src/store/zustand/connectedApps/helpers.ts b/packages/mobile/src/store/zustand/connectedApps/helpers.ts index 42f06a9c9..d3d967c3c 100644 --- a/packages/mobile/src/store/zustand/connectedApps/helpers.ts +++ b/packages/mobile/src/store/zustand/connectedApps/helpers.ts @@ -20,10 +20,31 @@ export const saveAppConnection = ( .actions.saveAppConnection(getChainName(), walletAddress, appData, connection); }; -export const enableNotifications = (walletAddress: string, url: IConnectedApp['url']) => { +export const enableNotifications = ( + walletAddress: string, + url: IConnectedApp['url'], + sessionId: string | undefined, + firebaseToken: string, +) => { + useConnectedAppsStore + .getState() + .actions.enableNotifications( + getChainName(), + walletAddress, + url, + sessionId, + firebaseToken, + ); +}; + +export const disableNotifications = ( + walletAddress: string, + url: IConnectedApp['url'], + firebaseToken: string, +) => { useConnectedAppsStore .getState() - .actions.enableNotifications(getChainName(), walletAddress, url); + .actions.disableNotifications(getChainName(), walletAddress, url, firebaseToken); }; export const removeConnectedApp = (url: string) => { diff --git a/packages/mobile/src/store/zustand/connectedApps/types.ts b/packages/mobile/src/store/zustand/connectedApps/types.ts index 951c271de..c497ed6cf 100644 --- a/packages/mobile/src/store/zustand/connectedApps/types.ts +++ b/packages/mobile/src/store/zustand/connectedApps/types.ts @@ -65,11 +65,14 @@ export interface IConnectedAppsStore { chainName: 'mainnet' | 'testnet', walletAddress: string, url: string, + session_id: string | undefined, + firebase_token: string, ) => void; disableNotifications: ( chainName: 'mainnet' | 'testnet', walletAddress: string, url: string, + firebase_token: string, ) => void; }; } diff --git a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts index d9b26a928..875dd837d 100644 --- a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts +++ b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts @@ -3,6 +3,9 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; import { create } from 'zustand'; import { persist, subscribeWithSelector } from 'zustand/middleware'; import { IConnectedAppsStore, TonConnectBridgeType } from './types'; +import { Tonapi } from '$libs/Tonapi'; +import messaging from '@react-native-firebase/messaging'; +import { useNotificationsStore } from '$store/zustand'; const initialState: Omit = { connectedApps: { @@ -14,7 +17,7 @@ const initialState: Omit = { export const useConnectedAppsStore = create( subscribeWithSelector( persist( - (set) => ({ + (set, get) => ({ ...initialState, actions: { saveAppConnection: (chainName, walletAddress, appData, connection) => { @@ -49,9 +52,16 @@ export const useConnectedAppsStore = create( return { connectedApps }; }); }, - removeInjectedConnection: (chainName, walletAddress, url) => { + removeInjectedConnection: async (chainName, walletAddress, url) => { const fixedUrl = getFixedLastSlashUrl(url); + get().actions.disableNotifications( + chainName, + walletAddress, + url, + await messaging().getToken(), + ); + set(({ connectedApps }) => { const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); @@ -82,9 +92,21 @@ export const useConnectedAppsStore = create( return { connectedApps }; }); }, - removeRemoteConnection: (chainName, walletAddress, url, clientSessionId) => { + removeRemoteConnection: async ( + chainName, + walletAddress, + url, + clientSessionId, + ) => { const fixedUrl = getFixedLastSlashUrl(url); + get().actions.disableNotifications( + chainName, + walletAddress, + url, + await messaging().getToken(), + ); + set(({ connectedApps }) => { const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); @@ -117,8 +139,27 @@ export const useConnectedAppsStore = create( return { connectedApps }; }); }, - enableNotifications: (chainName, walletAddress, url) => { + enableNotifications: ( + chainName, + walletAddress, + url, + session_id, + firebase_token, + ) => { const fixedUrl = getFixedLastSlashUrl(url); + const token = useNotificationsStore.getState().notifications_token; + + if (!token) { + return; + } + + Tonapi.subscribeToNotifications(token, { + app_url: fixedUrl, + session_id: session_id, + account: walletAddress, + commercial: true, + firebase_token, + }); set(({ connectedApps }) => { const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); @@ -138,8 +179,18 @@ export const useConnectedAppsStore = create( return { connectedApps }; }); }, - disableNotifications: (chainName, walletAddress, url) => { + disableNotifications: (chainName, walletAddress, url, firebase_token) => { const fixedUrl = getFixedLastSlashUrl(url); + const token = useNotificationsStore.getState().notifications_token; + + if (!token) { + return; + } + + Tonapi.unsubscribeFromNotifications(token, { + firebase_token, + app_url: fixedUrl, + }); set(({ connectedApps }) => { const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); diff --git a/packages/mobile/src/store/zustand/index.ts b/packages/mobile/src/store/zustand/index.ts index 53607382d..e751cd78f 100644 --- a/packages/mobile/src/store/zustand/index.ts +++ b/packages/mobile/src/store/zustand/index.ts @@ -4,3 +4,4 @@ export * from './appsList'; export * from './devFeaturesToggle'; export * from './browser'; export * from './staking'; +export * from './notifications'; diff --git a/packages/mobile/src/store/zustand/notifications/index.ts b/packages/mobile/src/store/zustand/notifications/index.ts new file mode 100644 index 000000000..b85c9336f --- /dev/null +++ b/packages/mobile/src/store/zustand/notifications/index.ts @@ -0,0 +1,2 @@ +export * from './useNotificationsStore'; +export * from './types'; diff --git a/packages/mobile/src/store/zustand/notifications/types.ts b/packages/mobile/src/store/zustand/notifications/types.ts index 7a519d0a6..e46ac86f3 100644 --- a/packages/mobile/src/store/zustand/notifications/types.ts +++ b/packages/mobile/src/store/zustand/notifications/types.ts @@ -1,16 +1,20 @@ export interface INotification { title: string; - service_url: string; + dapp_url?: string; received_at: number; + icon_url?: string; + name?: string; } export interface INotificationsStore { notifications: INotification[]; + notifications_token?: string | null; last_seen: number; actions: { updateLastSeen: () => void; addNotification: (notification: INotification) => void; reset: () => void; deleteNotificationByReceivedAt: (receivedAt: number) => void; + setNotificationsToken: (token: string) => void; }; } diff --git a/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts b/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts index 6300d4a08..25a6103b6 100644 --- a/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts +++ b/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts @@ -6,6 +6,7 @@ import { INotification, INotificationsStore } from './types'; const initialState: Omit = { last_seen: 0, notifications: [], + notifications_token: null, }; export const useNotificationsStore = create( @@ -24,14 +25,15 @@ export const useNotificationsStore = create( (notification) => notification.received_at !== receivedAt, ), })), + setNotificationsToken: (token) => set({ notifications_token: token }), reset: () => set({ last_seen: 0, notifications: [] }), }, }), { name: 'notifications', getStorage: () => AsyncStorage, - partialize: ({ notifications, last_seen }) => - ({ notifications, last_seen } as INotificationsStore), + partialize: ({ notifications, last_seen, notifications_token }) => + ({ notifications, last_seen, notifications_token } as INotificationsStore), }, ), ); diff --git a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx index ad9fc64f0..464e40ea9 100644 --- a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx +++ b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx @@ -147,6 +147,13 @@ export const ActivityScreen: FC = () => { } + rightContent={ + notifications.length > 2 && ( + + {notifications.length} + + ) + } onPress={handleOpenNotificationsScreen} title={'Notifications'} subtitle={'From connected services'} @@ -294,6 +301,15 @@ const styles = Steezy.create(({ colors }) => ({ notificationsHeader: { marginHorizontal: -16, }, + notificationsCount: { + backgroundColor: colors.backgroundContentTint, + width: 24, + height: 24, + borderRadius: 12, + alignItems: 'center', + justifyContent: 'center', + marginRight: 8, + }, listStyle: { marginBottom: 8, }, diff --git a/packages/mobile/src/tonconnect/TonConnect.ts b/packages/mobile/src/tonconnect/TonConnect.ts index 49006ae35..cfd6400d2 100644 --- a/packages/mobile/src/tonconnect/TonConnect.ts +++ b/packages/mobile/src/tonconnect/TonConnect.ts @@ -40,6 +40,7 @@ import { TCEventID } from './EventID'; import { DAppManifest } from './models'; import { SendTransactionError } from './SendTransactionError'; import { TonConnectRemoteBridge } from './TonConnectRemoteBridge'; +import messaging from '@react-native-firebase/messaging'; class TonConnectService { checkProtocolVersionCapability(protocolVersion: number) { @@ -140,7 +141,10 @@ class TonConnectService { }, ); - enableNotifications(address, manifest.url); + if (notificationsEnabled) { + const token = await messaging().getToken(); + enableNotifications(address, manifest.url, clientSessionId, token); + } return { id: TCEventID.getId(), diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index 58a1195f1..89661fd1c 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -825,5 +825,13 @@ "remindLater": "Remind me later", "tap": "Tap to update", "retry": "Download error. Tap to retry." + }, + + "notifications": { + "mute_notifications": "Mute notifications", + "disconnect_app": "Disconnect %{app_name}", + "report": "Report", + "muted": "Muted", + "disconnected_app": "Disconnected app" } } diff --git a/packages/mobile/src/uikit/List/ListItem.tsx b/packages/mobile/src/uikit/List/ListItem.tsx index 9def98945..92d947f58 100644 --- a/packages/mobile/src/uikit/List/ListItem.tsx +++ b/packages/mobile/src/uikit/List/ListItem.tsx @@ -34,7 +34,7 @@ export interface ListItemProps { chevron?: boolean; leftContent?: LeftContentFN | React.ReactNode; - rightContent?: () => React.ReactNode; + rightContent?: () => React.ReactElement; onPress?: () => void; } @@ -57,7 +57,7 @@ export const ListItem = memo((props) => { } return props.leftContent; - }, [props.leftContent]); + }, [isPressed, props.leftContent]); const hasLeftContent = !!leftContent || !!props.picture; const pictureSource = { uri: props.picture }; @@ -153,9 +153,12 @@ export const ListItem = memo((props) => { props.subvalue )} - {props.chevron && ( - - )} + + {props.rightContent} + {props.chevron && ( + + )} + @@ -213,4 +216,8 @@ const styles = Steezy.create(({ colors }) => ({ color: colors.textSecondary, textAlign: 'right', }, + rightContent: { + flexDirection: 'row', + alignItems: 'center', + }, })); diff --git a/yarn.lock b/yarn.lock index 76b71b06d..e8907a51c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1859,6 +1859,14 @@ semver "7.3.2" xml2js "0.4.23" +"@expo/react-native-action-sheet@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@expo/react-native-action-sheet/-/react-native-action-sheet-4.0.1.tgz#fa78e55a87a741f235be2c4ce0b0ea2b6afd06cf" + integrity sha512-FwCFpjpB6yzrK8CIWssLlh/i6zQFytFBiJfNdz0mJ2ckU4hWk8SrjB37P0Q4kF7w0bnIdYzPgRbdPR9hnfFqPw== + dependencies: + "@types/hoist-non-react-statics" "^3.3.1" + hoist-non-react-statics "^3.3.0" + "@expo/rudder-sdk-node@1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz#6aa575f346833eb6290282118766d4919c808c6a" @@ -3534,7 +3542,7 @@ resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.41.tgz#f6ecf57d1b12d2befcce00e928a6a097c22980aa" integrity sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA== -"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.0": +"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1": version "3.3.1" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== From b9cbde2285c6393b0d41ac00a8e27c31680ddf7e Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 8 Jun 2023 11:41:58 +0400 Subject: [PATCH 29/73] Update serverConfig.ts --- packages/mobile/src/shared/constants/serverConfig.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mobile/src/shared/constants/serverConfig.ts b/packages/mobile/src/shared/constants/serverConfig.ts index a05f2030b..899826f27 100644 --- a/packages/mobile/src/shared/constants/serverConfig.ts +++ b/packages/mobile/src/shared/constants/serverConfig.ts @@ -61,7 +61,8 @@ export function setServerConfig(data: any, isTestnet: boolean) { cachedMediaSalt: data.cachedMediaSalt, NFTOnExplorerUrl: data.NFTOnExplorerUrl || 'https://tonscan.org/nft/%s', directSupportUrl: data.directSupportUrl, - transactionExplorer: 'https://tonapi.io/transaction/%s', + transactionExplorer: + data.transactionExplorer || 'https://tonviewer.com/transaction/%s', flags: data.flags || {}, amplitudeKey: data.amplitudeKey, stonfiUrl: data.stonfiUrl, From 03712eaf078adef048c747fe603e84f2d4fd1f80 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 8 Jun 2023 12:01:17 +0400 Subject: [PATCH 30/73] reset notifications store --- packages/mobile/src/store/main/sagas.ts | 3 ++- packages/mobile/src/store/wallet/sagas.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/mobile/src/store/main/sagas.ts b/packages/mobile/src/store/main/sagas.ts index 4a79167f9..b5f357324 100644 --- a/packages/mobile/src/store/main/sagas.ts +++ b/packages/mobile/src/store/main/sagas.ts @@ -8,7 +8,7 @@ import BigNumber from 'bignumber.js'; import { mainActions, mainSelector } from './index'; import { Wallet } from '$blockchain'; -import { batchActions, Toast } from '$store'; +import { batchActions, Toast, useNotificationsStore } from '$store'; import { walletActions, walletSelector } from '$store/wallet'; import { ratesActions } from '$store/rates'; import * as SplashScreen from 'expo-splash-screen'; @@ -256,6 +256,7 @@ export function* resetAll(isTestnet: boolean) { yield call(clearSubscribeStatus); yield call(JettonsCache.clearAll, getWalletName()); yield call(useJettonEventsStore.getState().actions.clearStore); + yield call(useNotificationsStore.getState().actions.reset); yield put( batchActions( mainActions.resetMain(), diff --git a/packages/mobile/src/store/wallet/sagas.ts b/packages/mobile/src/store/wallet/sagas.ts index fcaec1e72..a6266642e 100644 --- a/packages/mobile/src/store/wallet/sagas.ts +++ b/packages/mobile/src/store/wallet/sagas.ts @@ -57,7 +57,7 @@ import { setLastRefreshedAt, setMigrationState, } from '$database'; -import { batchActions, Toast, useStakingStore } from '$store'; +import { batchActions, Toast, useNotificationsStore, useStakingStore } from '$store'; import { subscriptionsActions } from '$store/subscriptions'; import { t } from '$translation'; import { initHandler } from '$store/main/sagas'; @@ -579,6 +579,7 @@ function* cleanWalletWorker() { yield call(saveFavorites, []); yield call(saveHiddenRecentAddresses, []); yield call(useStakingStore.getState().actions.reset); + yield call(useNotificationsStore.getState().actions.reset); yield put( batchActions( From 853506ba70ab9f2c0e6229c20b62bd3978519c11 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 8 Jun 2023 12:28:27 +0400 Subject: [PATCH 31/73] add link handler to notification cell --- .../mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 4 ++-- packages/mobile/src/core/DevMenu/DevMenu.tsx | 1 + .../mobile/src/core/Notifications/Notification.tsx | 12 +++++++++++- .../mobile/src/store/zustand/notifications/types.ts | 1 + packages/mobile/src/uikit/List/ListItem.tsx | 1 + 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index 7a67399b3..9c1c6271d 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 330; + CURRENT_PROJECT_VERSION = 324; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 330; + CURRENT_PROJECT_VERSION = 324; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; diff --git a/packages/mobile/src/core/DevMenu/DevMenu.tsx b/packages/mobile/src/core/DevMenu/DevMenu.tsx index 5ee5c2a13..e94b67153 100644 --- a/packages/mobile/src/core/DevMenu/DevMenu.tsx +++ b/packages/mobile/src/core/DevMenu/DevMenu.tsx @@ -94,6 +94,7 @@ export const DevMenu: FC = () => { title: 'Test notification added from dev menu', dapp_url: 'https://getgems.io', received_at: Date.now(), + link: 'https://getgems.io', }); }, [addNotification]); diff --git a/packages/mobile/src/core/Notifications/Notification.tsx b/packages/mobile/src/core/Notifications/Notification.tsx index 74b29ae58..24af38b58 100644 --- a/packages/mobile/src/core/Notifications/Notification.tsx +++ b/packages/mobile/src/core/Notifications/Notification.tsx @@ -16,6 +16,7 @@ import { TonConnect } from '$tonconnect'; import messaging from '@react-native-firebase/messaging'; import { useSelector } from 'react-redux'; import { walletAddressSelector } from '$store/wallet'; +import { openDAppBrowser } from '$navigation'; interface NotificationProps { notification: INotification; @@ -112,12 +113,21 @@ export const Notification: React.FC = (props) => { /> ); - }, [deleteNotification, handleOpenSettings, props.notification.received_at]); + }, [app, deleteNotification, handleOpenSettings, props.notification.received_at]); + + const handleOpenInWebView = useCallback(() => { + if (!props.notification.link) { + return; + } + openDAppBrowser(props.notification.link); + }, [props.notification.link]); return ( ; + disabled?: boolean; valueStyle?: StyleProp; containerStyle?: StyleProp; From ecc636e7ac825553f503f369cd829a1311d3e924 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 19 Jun 2023 11:02:22 +0400 Subject: [PATCH 32/73] notifications fixes --- packages/mobile/src/core/TonConnect/TonConnectModal.tsx | 9 ++++++++- packages/mobile/src/tabs/Activity/ActivityScreen.tsx | 4 ++++ packages/mobile/src/utils/notificationsproof.ts | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx index d3238019b..547d6e0c3 100644 --- a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx +++ b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx @@ -171,7 +171,11 @@ export const TonConnectModal = (props: TonConnectModalProps) => { const notifications_token = useNotificationsStore.getState().notifications_token; if (!notifications_token) { - const proof = await createTonProofForTonkeeper(address, privateKey); + const proof = await createTonProofForTonkeeper( + address, + privateKey, + walletStateInit, + ); const connectApi = new ConnectApi( new Configuration({ basePath: getServerConfig('tonapiV2Endpoint'), @@ -180,6 +184,9 @@ export const TonConnectModal = (props: TonConnectModalProps) => { }, }), ); + if (proof.error) { + return; + } const token = await connectApi.tonConnectProof({ tonConnectProofRequest: proof, }); diff --git a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx index 464e40ea9..05814d96e 100644 --- a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx +++ b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx @@ -134,6 +134,10 @@ export const ActivityScreen: FC = () => { }, [dispatch, isEventsLoading, canLoadMore]); const renderNotificationsHeader = useCallback(() => { + if (!notifications.length) { + return null; + } + return ( diff --git a/packages/mobile/src/utils/notificationsproof.ts b/packages/mobile/src/utils/notificationsproof.ts index 92f92e3fd..7579aaab1 100644 --- a/packages/mobile/src/utils/notificationsproof.ts +++ b/packages/mobile/src/utils/notificationsproof.ts @@ -11,6 +11,7 @@ import { Address } from '$libs/Ton'; export async function createTonProofForTonkeeper( addressRaw: string, secretKey: Uint8Array, + walletStateInit: string, ) { try { const address = new Address(addressRaw).toString(false); @@ -72,6 +73,7 @@ export async function createTonProofForTonkeeper( }, signature, payload, + stateInit: walletStateInit, }, }; } catch (e) { From 726db426e448c445eeb5064b1536ca88c11c6887 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 19 Jun 2023 11:17:51 +0400 Subject: [PATCH 33/73] bump version --- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index 9c1c6271d..70c0d54ec 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1011,7 +1011,7 @@ outputFileListPaths = ( ); outputPaths = ( - "$SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift", + $SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift, ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 324; + CURRENT_PROJECT_VERSION = 328; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 324; + CURRENT_PROJECT_VERSION = 328; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; From 59caae42beae34257cc469ab726c1aff44f7ab55 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 29 Jun 2023 05:35:04 +0400 Subject: [PATCH 34/73] fix(mobile): notifications design fixes --- .../src/tonApiV2/.openapi-generator/FILES | 9 ++ .../@core-js/src/tonApiV2/apis/AccountsApi.ts | 65 +++++++- .../src/tonApiV2/apis/BlockchainApi.ts | 8 +- .../@core-js/src/tonApiV2/apis/ConnectApi.ts | 90 +++++------ packages/@core-js/src/tonApiV2/apis/DNSApi.ts | 59 +++++++- .../src/tonApiV2/apis/EmulationApi.ts | 68 ++++++++- .../@core-js/src/tonApiV2/apis/EventsApi.ts | 8 +- .../@core-js/src/tonApiV2/apis/JettonsApi.ts | 8 +- packages/@core-js/src/tonApiV2/apis/NFTApi.ts | 8 +- .../@core-js/src/tonApiV2/apis/RatesApi.ts | 8 +- .../@core-js/src/tonApiV2/apis/StakingApi.ts | 8 +- .../@core-js/src/tonApiV2/apis/StorageApi.ts | 8 +- .../@core-js/src/tonApiV2/apis/TracesApi.ts | 8 +- .../@core-js/src/tonApiV2/apis/WalletApi.ts | 65 +++++++- packages/@core-js/src/tonApiV2/index.ts | 4 +- .../src/tonApiV2/models/AccStatusChange.ts | 4 +- .../@core-js/src/tonApiV2/models/Account.ts | 4 +- .../src/tonApiV2/models/AccountAddress.ts | 4 +- .../src/tonApiV2/models/AccountEvent.ts | 28 ++-- .../src/tonApiV2/models/AccountEvents.ts | 4 +- .../tonApiV2/models/AccountInfoByStateInit.ts | 75 ++++++++++ .../src/tonApiV2/models/AccountStaking.ts | 4 +- .../src/tonApiV2/models/AccountStakingInfo.ts | 4 +- .../src/tonApiV2/models/AccountStatus.ts | 4 +- .../src/tonApiV2/models/AccountStorageInfo.ts | 4 +- .../@core-js/src/tonApiV2/models/Accounts.ts | 4 +- .../@core-js/src/tonApiV2/models/Action.ts | 34 ++++- .../src/tonApiV2/models/ActionPhase.ts | 4 +- .../tonApiV2/models/ActionSimplePreview.ts | 6 +- .../@core-js/src/tonApiV2/models/Auction.ts | 4 +- .../src/tonApiV2/models/AuctionBidAction.ts | 4 +- .../@core-js/src/tonApiV2/models/Auctions.ts | 4 +- .../@core-js/src/tonApiV2/models/Block.ts | 4 +- .../src/tonApiV2/models/BouncePhaseType.ts | 4 +- .../src/tonApiV2/models/ComputePhase.ts | 4 +- .../src/tonApiV2/models/ComputeSkipReason.ts | 4 +- .../@core-js/src/tonApiV2/models/Config.ts | 4 +- .../tonApiV2/models/ContractDeployAction.ts | 20 +-- .../src/tonApiV2/models/CreditPhase.ts | 4 +- .../src/tonApiV2/models/DepositStakeAction.ts | 82 ++++++++++ .../src/tonApiV2/models/DnsExpiring.ts | 4 +- .../tonApiV2/models/DnsExpiringItemsInner.ts | 9 +- .../@core-js/src/tonApiV2/models/DnsRecord.ts | 4 +- .../@core-js/src/tonApiV2/models/DomainBid.ts | 4 +- .../src/tonApiV2/models/DomainBids.ts | 4 +- .../src/tonApiV2/models/DomainInfo.ts | 89 +++++++++++ .../src/tonApiV2/models/DomainNames.ts | 4 +- .../@core-js/src/tonApiV2/models/Event.ts | 4 +- packages/@core-js/src/tonApiV2/models/Fee.ts | 4 +- .../src/tonApiV2/models/FoundAccounts.ts | 4 +- .../models/FoundAccountsAddressesInner.ts | 4 +- .../GetAccountInfoByStateInitRequest.ts | 66 ++++++++ .../src/tonApiV2/models/GetAccountsRequest.ts | 4 +- .../tonApiV2/models/GetBlock401Response.ts | 4 +- .../GetPublicKeyByAccountID200Response.ts | 66 ++++++++ .../tonApiV2/models/GetRates200Response.ts | 4 +- .../models/GetStorageProviders200Response.ts | 4 +- .../models/GetTonConnectPayload200Response.ts | 4 +- .../models/GetWalletBackup200Response.ts | 4 +- .../src/tonApiV2/models/ImagePreview.ts | 4 +- .../src/tonApiV2/models/JettonBalance.ts | 4 +- .../src/tonApiV2/models/JettonInfo.ts | 4 +- .../src/tonApiV2/models/JettonMetadata.ts | 4 +- .../src/tonApiV2/models/JettonPreview.ts | 4 +- .../src/tonApiV2/models/JettonQuantity.ts | 97 ++++++++++++ .../tonApiV2/models/JettonTransferAction.ts | 4 +- .../tonApiV2/models/JettonVerificationType.ts | 4 +- .../src/tonApiV2/models/JettonsBalances.ts | 4 +- .../@core-js/src/tonApiV2/models/Message.ts | 12 +- .../tonApiV2/models/MessageConsequences.ts | 103 +++++++++++++ .../tonApiV2/models/MethodExecutionResult.ts | 4 +- .../src/tonApiV2/models/ModelError.ts | 4 +- .../src/tonApiV2/models/NftCollection.ts | 4 +- .../src/tonApiV2/models/NftCollections.ts | 4 +- .../@core-js/src/tonApiV2/models/NftItem.ts | 17 ++- .../src/tonApiV2/models/NftItemCollection.ts | 4 +- .../tonApiV2/models/NftItemTransferAction.ts | 4 +- .../@core-js/src/tonApiV2/models/NftItems.ts | 4 +- .../src/tonApiV2/models/NftPurchaseAction.ts | 18 ++- .../src/tonApiV2/models/PoolImplementation.ts | 4 +- .../@core-js/src/tonApiV2/models/PoolInfo.ts | 15 +- .../@core-js/src/tonApiV2/models/Price.ts | 4 +- .../src/tonApiV2/models/RawAccount.ts | 4 +- .../src/tonApiV2/models/RecoverStakeAction.ts | 82 ++++++++++ .../@core-js/src/tonApiV2/models/Refund.ts | 4 +- packages/@core-js/src/tonApiV2/models/Risk.ts | 106 +++++++++++++ packages/@core-js/src/tonApiV2/models/Sale.ts | 4 +- .../src/tonApiV2/models/SendMessageRequest.ts | 4 +- .../tonApiV2/models/SmartContractAction.ts | 4 +- .../models/StakingPoolInfo200Response.ts | 4 +- .../models/StakingPools200Response.ts | 4 +- .../@core-js/src/tonApiV2/models/StateInit.ts | 4 +- .../src/tonApiV2/models/StoragePhase.ts | 4 +- .../src/tonApiV2/models/StorageProvider.ts | 4 +- .../src/tonApiV2/models/Subscription.ts | 4 +- .../src/tonApiV2/models/SubscriptionAction.ts | 4 +- .../src/tonApiV2/models/Subscriptions.ts | 4 +- .../models/TonConnectProof200Response.ts | 4 +- .../tonApiV2/models/TonConnectProofRequest.ts | 4 +- .../models/TonConnectProofRequestProof.ts | 4 +- .../TonConnectProofRequestProofDomain.ts | 4 +- .../src/tonApiV2/models/TonTransferAction.ts | 4 +- .../@core-js/src/tonApiV2/models/Trace.ts | 4 +- .../@core-js/src/tonApiV2/models/TraceId.ts | 4 +- .../@core-js/src/tonApiV2/models/TraceIds.ts | 4 +- .../src/tonApiV2/models/Transaction.ts | 4 +- .../src/tonApiV2/models/TransactionType.ts | 4 +- .../src/tonApiV2/models/Transactions.ts | 4 +- .../src/tonApiV2/models/TvmStackRecord.ts | 4 +- .../tonApiV2/models/UnSubscriptionAction.ts | 4 +- .../@core-js/src/tonApiV2/models/Validator.ts | 4 +- .../src/tonApiV2/models/Validators.ts | 4 +- .../@core-js/src/tonApiV2/models/ValueFlow.ts | 4 +- .../tonApiV2/models/ValueFlowJettonsInner.ts | 4 +- .../@core-js/src/tonApiV2/models/WalletDNS.ts | 4 +- .../@core-js/src/tonApiV2/models/index.ts | 9 ++ packages/@core-js/src/tonApiV2/runtime.ts | 22 ++- packages/mobile/index.js | 6 +- .../ios/ton_keeper.xcodeproj/project.pbxproj | 2 +- .../src/core/Notifications/Notification.tsx | 94 ++++++++---- .../src/core/Notifications/Notifications.tsx | 141 ++++++++---------- .../Notifications/NotificationsActivity.tsx | 67 ++++++--- .../src/core/TonConnect/TonConnectModal.tsx | 24 +-- packages/mobile/src/hooks/index.ts | 1 + .../mobile/src/hooks/useObtainProofToken.ts | 57 +++++++ .../connectedApps/useConnectedAppsStore.ts | 9 +- .../src/store/zustand/notifications/types.ts | 2 - .../notifications/useNotificationsStore.ts | 6 +- .../src/tabs/Activity/ActivityScreen.tsx | 81 ++++------ .../mobile/src/translation/locales/en.json | 7 +- .../mobile/src/translation/locales/ru.json | 13 ++ .../mobile/src/uikit/Checkbox/Checkbox.tsx | 15 +- packages/mobile/src/uikit/List/ListItem.tsx | 20 ++- .../src/uikit/List/ListItemWithCheckbox.tsx | 13 +- 134 files changed, 1732 insertions(+), 534 deletions(-) create mode 100644 packages/@core-js/src/tonApiV2/models/AccountInfoByStateInit.ts create mode 100644 packages/@core-js/src/tonApiV2/models/DepositStakeAction.ts create mode 100644 packages/@core-js/src/tonApiV2/models/DomainInfo.ts create mode 100644 packages/@core-js/src/tonApiV2/models/GetAccountInfoByStateInitRequest.ts create mode 100644 packages/@core-js/src/tonApiV2/models/GetPublicKeyByAccountID200Response.ts create mode 100644 packages/@core-js/src/tonApiV2/models/JettonQuantity.ts create mode 100644 packages/@core-js/src/tonApiV2/models/MessageConsequences.ts create mode 100644 packages/@core-js/src/tonApiV2/models/RecoverStakeAction.ts create mode 100644 packages/@core-js/src/tonApiV2/models/Risk.ts create mode 100644 packages/mobile/src/hooks/useObtainProofToken.ts diff --git a/packages/@core-js/src/tonApiV2/.openapi-generator/FILES b/packages/@core-js/src/tonApiV2/.openapi-generator/FILES index a9e2fff20..3d8916192 100644 --- a/packages/@core-js/src/tonApiV2/.openapi-generator/FILES +++ b/packages/@core-js/src/tonApiV2/.openapi-generator/FILES @@ -19,6 +19,7 @@ models/Account.ts models/AccountAddress.ts models/AccountEvent.ts models/AccountEvents.ts +models/AccountInfoByStateInit.ts models/AccountStaking.ts models/AccountStakingInfo.ts models/AccountStatus.ts @@ -37,18 +38,22 @@ models/ComputeSkipReason.ts models/Config.ts models/ContractDeployAction.ts models/CreditPhase.ts +models/DepositStakeAction.ts models/DnsExpiring.ts models/DnsExpiringItemsInner.ts models/DnsRecord.ts models/DomainBid.ts models/DomainBids.ts +models/DomainInfo.ts models/DomainNames.ts models/Event.ts models/Fee.ts models/FoundAccounts.ts models/FoundAccountsAddressesInner.ts +models/GetAccountInfoByStateInitRequest.ts models/GetAccountsRequest.ts models/GetBlock401Response.ts +models/GetPublicKeyByAccountID200Response.ts models/GetRates200Response.ts models/GetStorageProviders200Response.ts models/GetTonConnectPayload200Response.ts @@ -58,10 +63,12 @@ models/JettonBalance.ts models/JettonInfo.ts models/JettonMetadata.ts models/JettonPreview.ts +models/JettonQuantity.ts models/JettonTransferAction.ts models/JettonVerificationType.ts models/JettonsBalances.ts models/Message.ts +models/MessageConsequences.ts models/MethodExecutionResult.ts models/ModelError.ts models/NftCollection.ts @@ -75,7 +82,9 @@ models/PoolImplementation.ts models/PoolInfo.ts models/Price.ts models/RawAccount.ts +models/RecoverStakeAction.ts models/Refund.ts +models/Risk.ts models/Sale.ts models/SendMessageRequest.ts models/SmartContractAction.ts diff --git a/packages/@core-js/src/tonApiV2/apis/AccountsApi.ts b/packages/@core-js/src/tonApiV2/apis/AccountsApi.ts index 6f3a15339..ff9f2079f 100644 --- a/packages/@core-js/src/tonApiV2/apis/AccountsApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/AccountsApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -23,11 +23,12 @@ import type { FoundAccounts, GetAccountsRequest, GetBlock401Response, + GetPublicKeyByAccountID200Response, JettonsBalances, NftItems, Subscriptions, TraceIds, -} from '../models'; +} from '../models/index'; import { AccountFromJSON, AccountToJSON, @@ -45,6 +46,8 @@ import { GetAccountsRequestToJSON, GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, + GetPublicKeyByAccountID200ResponseFromJSON, + GetPublicKeyByAccountID200ResponseToJSON, JettonsBalancesFromJSON, JettonsBalancesToJSON, NftItemsFromJSON, @@ -53,7 +56,7 @@ import { SubscriptionsToJSON, TraceIdsFromJSON, TraceIdsToJSON, -} from '../models'; +} from '../models/index'; export interface DnsBackResolveRequest { accountId: string; @@ -106,11 +109,16 @@ export interface GetJettonsHistoryByIDRequest { export interface GetNftItemsByOwnerRequest { accountId: string; + collection?: string; limit?: number; offset?: number; indirectOwnership?: boolean; } +export interface GetPublicKeyByAccountIDRequest { + accountId: string; +} + export interface GetSearchAccountsRequest { name: string; } @@ -267,6 +275,7 @@ export interface AccountsApiInterface { /** * Get all NFT items by owner address * @param {string} accountId account ID + * @param {string} [collection] nft collection * @param {number} [limit] * @param {number} [offset] * @param {boolean} [indirectOwnership] Selling nft items in ton implemented usually via transfer items to special selling account. This option enables including items which owned not directly. @@ -281,6 +290,20 @@ export interface AccountsApiInterface { */ getNftItemsByOwner(requestParameters: GetNftItemsByOwnerRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * Get public key by account id + * @param {string} accountId account ID + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AccountsApiInterface + */ + getPublicKeyByAccountIDRaw(requestParameters: GetPublicKeyByAccountIDRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Get public key by account id + */ + getPublicKeyByAccountID(requestParameters: GetPublicKeyByAccountIDRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** * Search for accounts by name. You can find the account by the first characters of the domain. * @param {string} name @@ -674,6 +697,10 @@ export class AccountsApi extends runtime.BaseAPI implements AccountsApiInterface const queryParameters: any = {}; + if (requestParameters.collection !== undefined) { + queryParameters['collection'] = requestParameters.collection; + } + if (requestParameters.limit !== undefined) { queryParameters['limit'] = requestParameters.limit; } @@ -706,6 +733,36 @@ export class AccountsApi extends runtime.BaseAPI implements AccountsApiInterface return await response.value(); } + /** + * Get public key by account id + */ + async getPublicKeyByAccountIDRaw(requestParameters: GetPublicKeyByAccountIDRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.accountId === null || requestParameters.accountId === undefined) { + throw new runtime.RequiredError('accountId','Required parameter requestParameters.accountId was null or undefined when calling getPublicKeyByAccountID.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/v2/accounts/{account_id}/publickey`.replace(`{${"account_id"}}`, encodeURIComponent(String(requestParameters.accountId))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => GetPublicKeyByAccountID200ResponseFromJSON(jsonValue)); + } + + /** + * Get public key by account id + */ + async getPublicKeyByAccountID(requestParameters: GetPublicKeyByAccountIDRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getPublicKeyByAccountIDRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * Search for accounts by name. You can find the account by the first characters of the domain. */ diff --git a/packages/@core-js/src/tonApiV2/apis/BlockchainApi.ts b/packages/@core-js/src/tonApiV2/apis/BlockchainApi.ts index f5e2ca613..a1f027ad5 100644 --- a/packages/@core-js/src/tonApiV2/apis/BlockchainApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/BlockchainApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -24,7 +24,7 @@ import type { Transaction, Transactions, Validators, -} from '../models'; +} from '../models/index'; import { BlockFromJSON, BlockToJSON, @@ -44,7 +44,7 @@ import { TransactionsToJSON, ValidatorsFromJSON, ValidatorsToJSON, -} from '../models'; +} from '../models/index'; export interface ExecGetMethodRequest { accountId: string; diff --git a/packages/@core-js/src/tonApiV2/apis/ConnectApi.ts b/packages/@core-js/src/tonApiV2/apis/ConnectApi.ts index 5f44bf740..d7fe1dda0 100644 --- a/packages/@core-js/src/tonApiV2/apis/ConnectApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/ConnectApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -15,24 +15,24 @@ import * as runtime from '../runtime'; import type { + AccountInfoByStateInit, + GetAccountInfoByStateInitRequest, GetBlock401Response, GetTonConnectPayload200Response, - TonConnectProof200Response, - TonConnectProofRequest, -} from '../models'; +} from '../models/index'; import { + AccountInfoByStateInitFromJSON, + AccountInfoByStateInitToJSON, + GetAccountInfoByStateInitRequestFromJSON, + GetAccountInfoByStateInitRequestToJSON, GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, GetTonConnectPayload200ResponseFromJSON, GetTonConnectPayload200ResponseToJSON, - TonConnectProof200ResponseFromJSON, - TonConnectProof200ResponseToJSON, - TonConnectProofRequestFromJSON, - TonConnectProofRequestToJSON, -} from '../models'; - -export interface TonConnectProofOperationRequest { - tonConnectProofRequest: TonConnectProofRequest; +} from '../models/index'; + +export interface GetAccountInfoByStateInitOperationRequest { + getAccountInfoByStateInitRequest: GetAccountInfoByStateInitRequest; } /** @@ -43,31 +43,31 @@ export interface TonConnectProofOperationRequest { */ export interface ConnectApiInterface { /** - * Get a payload for further token receipt + * Get account info by state init + * @param {GetAccountInfoByStateInitRequest} getAccountInfoByStateInitRequest Data that is expected * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ConnectApiInterface */ - getTonConnectPayloadRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + getAccountInfoByStateInitRaw(requestParameters: GetAccountInfoByStateInitOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * Get a payload for further token receipt + * Get account info by state init */ - getTonConnectPayload(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + getAccountInfoByStateInit(requestParameters: GetAccountInfoByStateInitOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * Account verification and token issuance - * @param {TonConnectProofRequest} tonConnectProofRequest Data that is expected from TON Connect + * Get a payload for further token receipt * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof ConnectApiInterface */ - tonConnectProofRaw(requestParameters: TonConnectProofOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + getTonConnectPayloadRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * Account verification and token issuance + * Get a payload for further token receipt */ - tonConnectProof(requestParameters: TonConnectProofOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + getTonConnectPayload(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; } @@ -77,61 +77,61 @@ export interface ConnectApiInterface { export class ConnectApi extends runtime.BaseAPI implements ConnectApiInterface { /** - * Get a payload for further token receipt + * Get account info by state init */ - async getTonConnectPayloadRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async getAccountInfoByStateInitRaw(requestParameters: GetAccountInfoByStateInitOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.getAccountInfoByStateInitRequest === null || requestParameters.getAccountInfoByStateInitRequest === undefined) { + throw new runtime.RequiredError('getAccountInfoByStateInitRequest','Required parameter requestParameters.getAccountInfoByStateInitRequest was null or undefined when calling getAccountInfoByStateInit.'); + } + const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; + headerParameters['Content-Type'] = 'application/json'; + const response = await this.request({ - path: `/v2/tonconnect/payload`, - method: 'GET', + path: `/v2/tonconnect/stateinit`, + method: 'POST', headers: headerParameters, query: queryParameters, + body: GetAccountInfoByStateInitRequestToJSON(requestParameters.getAccountInfoByStateInitRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => GetTonConnectPayload200ResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => AccountInfoByStateInitFromJSON(jsonValue)); } /** - * Get a payload for further token receipt + * Get account info by state init */ - async getTonConnectPayload(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.getTonConnectPayloadRaw(initOverrides); + async getAccountInfoByStateInit(requestParameters: GetAccountInfoByStateInitOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getAccountInfoByStateInitRaw(requestParameters, initOverrides); return await response.value(); } /** - * Account verification and token issuance + * Get a payload for further token receipt */ - async tonConnectProofRaw(requestParameters: TonConnectProofOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { - if (requestParameters.tonConnectProofRequest === null || requestParameters.tonConnectProofRequest === undefined) { - throw new runtime.RequiredError('tonConnectProofRequest','Required parameter requestParameters.tonConnectProofRequest was null or undefined when calling tonConnectProof.'); - } - + async getTonConnectPayloadRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; - headerParameters['Content-Type'] = 'application/json'; - const response = await this.request({ - path: `/v2/tonconnect/proof`, - method: 'POST', + path: `/v2/tonconnect/payload`, + method: 'GET', headers: headerParameters, query: queryParameters, - body: TonConnectProofRequestToJSON(requestParameters.tonConnectProofRequest), }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => TonConnectProof200ResponseFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => GetTonConnectPayload200ResponseFromJSON(jsonValue)); } /** - * Account verification and token issuance + * Get a payload for further token receipt */ - async tonConnectProof(requestParameters: TonConnectProofOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { - const response = await this.tonConnectProofRaw(requestParameters, initOverrides); + async getTonConnectPayload(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTonConnectPayloadRaw(initOverrides); return await response.value(); } diff --git a/packages/@core-js/src/tonApiV2/apis/DNSApi.ts b/packages/@core-js/src/tonApiV2/apis/DNSApi.ts index a4650bfe8..92d5be615 100644 --- a/packages/@core-js/src/tonApiV2/apis/DNSApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/DNSApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -18,8 +18,9 @@ import type { Auctions, DnsRecord, DomainBids, + DomainInfo, GetBlock401Response, -} from '../models'; +} from '../models/index'; import { AuctionsFromJSON, AuctionsToJSON, @@ -27,9 +28,15 @@ import { DnsRecordToJSON, DomainBidsFromJSON, DomainBidsToJSON, + DomainInfoFromJSON, + DomainInfoToJSON, GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, -} from '../models'; +} from '../models/index'; + +export interface DnsInfoRequest { + domainName: string; +} export interface DnsResolveRequest { domainName: string; @@ -50,6 +57,20 @@ export interface GetDomainBidsRequest { * @interface DNSApiInterface */ export interface DNSApiInterface { + /** + * get full information about domain name + * @param {string} domainName domain name with .ton or .t.me + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DNSApiInterface + */ + dnsInfoRaw(requestParameters: DnsInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * get full information about domain name + */ + dnsInfo(requestParameters: DnsInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** * DNS resolve for domain name * @param {string} domainName domain name with .ton or .t.me @@ -99,6 +120,36 @@ export interface DNSApiInterface { */ export class DNSApi extends runtime.BaseAPI implements DNSApiInterface { + /** + * get full information about domain name + */ + async dnsInfoRaw(requestParameters: DnsInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.domainName === null || requestParameters.domainName === undefined) { + throw new runtime.RequiredError('domainName','Required parameter requestParameters.domainName was null or undefined when calling dnsInfo.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/v2/dns/{domain_name}`.replace(`{${"domain_name"}}`, encodeURIComponent(String(requestParameters.domainName))), + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => DomainInfoFromJSON(jsonValue)); + } + + /** + * get full information about domain name + */ + async dnsInfo(requestParameters: DnsInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.dnsInfoRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * DNS resolve for domain name */ diff --git a/packages/@core-js/src/tonApiV2/apis/EmulationApi.ts b/packages/@core-js/src/tonApiV2/apis/EmulationApi.ts index cc132e07b..e25f617da 100644 --- a/packages/@core-js/src/tonApiV2/apis/EmulationApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/EmulationApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -18,9 +18,10 @@ import type { AccountEvent, Event, GetBlock401Response, + MessageConsequences, SendMessageRequest, Trace, -} from '../models'; +} from '../models/index'; import { AccountEventFromJSON, AccountEventToJSON, @@ -28,11 +29,13 @@ import { EventToJSON, GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, + MessageConsequencesFromJSON, + MessageConsequencesToJSON, SendMessageRequestFromJSON, SendMessageRequestToJSON, TraceFromJSON, TraceToJSON, -} from '../models'; +} from '../models/index'; export interface EmulateMessageToAccountEventRequest { accountId: string; @@ -49,6 +52,11 @@ export interface EmulateMessageToTraceRequest { sendMessageRequest: SendMessageRequest; } +export interface EmulateWalletMessageRequest { + sendMessageRequest: SendMessageRequest; + acceptLanguage?: string; +} + /** * EmulationApi - interface * @@ -101,6 +109,21 @@ export interface EmulationApiInterface { */ emulateMessageToTrace(requestParameters: EmulateMessageToTraceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * Emulate sending message to blockchain + * @param {SendMessageRequest} sendMessageRequest bag-of-cells serialized to base64 + * @param {string} [acceptLanguage] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof EmulationApiInterface + */ + emulateWalletMessageRaw(requestParameters: EmulateWalletMessageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Emulate sending message to blockchain + */ + emulateWalletMessage(requestParameters: EmulateWalletMessageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + } /** @@ -219,4 +242,41 @@ export class EmulationApi extends runtime.BaseAPI implements EmulationApiInterfa return await response.value(); } + /** + * Emulate sending message to blockchain + */ + async emulateWalletMessageRaw(requestParameters: EmulateWalletMessageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.sendMessageRequest === null || requestParameters.sendMessageRequest === undefined) { + throw new runtime.RequiredError('sendMessageRequest','Required parameter requestParameters.sendMessageRequest was null or undefined when calling emulateWalletMessage.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (requestParameters.acceptLanguage !== undefined && requestParameters.acceptLanguage !== null) { + headerParameters['Accept-Language'] = String(requestParameters.acceptLanguage); + } + + const response = await this.request({ + path: `/v2/wallet/emulate`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: SendMessageRequestToJSON(requestParameters.sendMessageRequest), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => MessageConsequencesFromJSON(jsonValue)); + } + + /** + * Emulate sending message to blockchain + */ + async emulateWalletMessage(requestParameters: EmulateWalletMessageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.emulateWalletMessageRaw(requestParameters, initOverrides); + return await response.value(); + } + } diff --git a/packages/@core-js/src/tonApiV2/apis/EventsApi.ts b/packages/@core-js/src/tonApiV2/apis/EventsApi.ts index a3aaad96c..f40f866ac 100644 --- a/packages/@core-js/src/tonApiV2/apis/EventsApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/EventsApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -17,13 +17,13 @@ import * as runtime from '../runtime'; import type { Event, GetBlock401Response, -} from '../models'; +} from '../models/index'; import { EventFromJSON, EventToJSON, GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, -} from '../models'; +} from '../models/index'; export interface GetEventRequest { eventId: string; diff --git a/packages/@core-js/src/tonApiV2/apis/JettonsApi.ts b/packages/@core-js/src/tonApiV2/apis/JettonsApi.ts index aaecdfb8f..ec9344210 100644 --- a/packages/@core-js/src/tonApiV2/apis/JettonsApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/JettonsApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -17,13 +17,13 @@ import * as runtime from '../runtime'; import type { GetBlock401Response, JettonInfo, -} from '../models'; +} from '../models/index'; import { GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, JettonInfoFromJSON, JettonInfoToJSON, -} from '../models'; +} from '../models/index'; export interface GetJettonInfoRequest { accountId: string; diff --git a/packages/@core-js/src/tonApiV2/apis/NFTApi.ts b/packages/@core-js/src/tonApiV2/apis/NFTApi.ts index 029932fdd..45ee610c5 100644 --- a/packages/@core-js/src/tonApiV2/apis/NFTApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/NFTApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -21,7 +21,7 @@ import type { NftCollections, NftItem, NftItems, -} from '../models'; +} from '../models/index'; import { GetAccountsRequestFromJSON, GetAccountsRequestToJSON, @@ -35,7 +35,7 @@ import { NftItemToJSON, NftItemsFromJSON, NftItemsToJSON, -} from '../models'; +} from '../models/index'; export interface GetItemsFromCollectionRequest { accountId: string; diff --git a/packages/@core-js/src/tonApiV2/apis/RatesApi.ts b/packages/@core-js/src/tonApiV2/apis/RatesApi.ts index 8d89a6d7b..c556ebc3b 100644 --- a/packages/@core-js/src/tonApiV2/apis/RatesApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/RatesApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -17,13 +17,13 @@ import * as runtime from '../runtime'; import type { GetBlock401Response, GetRates200Response, -} from '../models'; +} from '../models/index'; import { GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, GetRates200ResponseFromJSON, GetRates200ResponseToJSON, -} from '../models'; +} from '../models/index'; export interface GetRatesRequest { tokens: string; diff --git a/packages/@core-js/src/tonApiV2/apis/StakingApi.ts b/packages/@core-js/src/tonApiV2/apis/StakingApi.ts index 1358633b4..6cd4a22af 100644 --- a/packages/@core-js/src/tonApiV2/apis/StakingApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/StakingApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -19,7 +19,7 @@ import type { GetBlock401Response, StakingPoolInfo200Response, StakingPools200Response, -} from '../models'; +} from '../models/index'; import { AccountStakingFromJSON, AccountStakingToJSON, @@ -29,7 +29,7 @@ import { StakingPoolInfo200ResponseToJSON, StakingPools200ResponseFromJSON, StakingPools200ResponseToJSON, -} from '../models'; +} from '../models/index'; export interface PoolsByNominatorsRequest { accountId: string; diff --git a/packages/@core-js/src/tonApiV2/apis/StorageApi.ts b/packages/@core-js/src/tonApiV2/apis/StorageApi.ts index b8a65780d..53bb6d2b8 100644 --- a/packages/@core-js/src/tonApiV2/apis/StorageApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/StorageApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -17,13 +17,13 @@ import * as runtime from '../runtime'; import type { GetBlock401Response, GetStorageProviders200Response, -} from '../models'; +} from '../models/index'; import { GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, GetStorageProviders200ResponseFromJSON, GetStorageProviders200ResponseToJSON, -} from '../models'; +} from '../models/index'; /** * StorageApi - interface diff --git a/packages/@core-js/src/tonApiV2/apis/TracesApi.ts b/packages/@core-js/src/tonApiV2/apis/TracesApi.ts index 6e2681b42..9a557817d 100644 --- a/packages/@core-js/src/tonApiV2/apis/TracesApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/TracesApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -17,13 +17,13 @@ import * as runtime from '../runtime'; import type { GetBlock401Response, Trace, -} from '../models'; +} from '../models/index'; import { GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, TraceFromJSON, TraceToJSON, -} from '../models'; +} from '../models/index'; export interface GetTraceRequest { traceId: string; diff --git a/packages/@core-js/src/tonApiV2/apis/WalletApi.ts b/packages/@core-js/src/tonApiV2/apis/WalletApi.ts index f431b88b9..5777e71a8 100644 --- a/packages/@core-js/src/tonApiV2/apis/WalletApi.ts +++ b/packages/@core-js/src/tonApiV2/apis/WalletApi.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -17,13 +17,19 @@ import * as runtime from '../runtime'; import type { GetBlock401Response, GetWalletBackup200Response, -} from '../models'; + TonConnectProof200Response, + TonConnectProofRequest, +} from '../models/index'; import { GetBlock401ResponseFromJSON, GetBlock401ResponseToJSON, GetWalletBackup200ResponseFromJSON, GetWalletBackup200ResponseToJSON, -} from '../models'; + TonConnectProof200ResponseFromJSON, + TonConnectProof200ResponseToJSON, + TonConnectProofRequestFromJSON, + TonConnectProofRequestToJSON, +} from '../models/index'; export interface GetWalletBackupRequest { xTonConnectAuth: string; @@ -34,6 +40,10 @@ export interface SetWalletBackupRequest { body: Blob; } +export interface TonConnectProofOperationRequest { + tonConnectProofRequest: TonConnectProofRequest; +} + /** * WalletApi - interface * @@ -70,6 +80,20 @@ export interface WalletApiInterface { */ setWalletBackup(requestParameters: SetWalletBackupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * Account verification and token issuance + * @param {TonConnectProofRequest} tonConnectProofRequest Data that is expected from TON Connect + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof WalletApiInterface + */ + tonConnectProofRaw(requestParameters: TonConnectProofOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + + /** + * Account verification and token issuance + */ + tonConnectProof(requestParameters: TonConnectProofOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + } /** @@ -151,4 +175,37 @@ export class WalletApi extends runtime.BaseAPI implements WalletApiInterface { await this.setWalletBackupRaw(requestParameters, initOverrides); } + /** + * Account verification and token issuance + */ + async tonConnectProofRaw(requestParameters: TonConnectProofOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters.tonConnectProofRequest === null || requestParameters.tonConnectProofRequest === undefined) { + throw new runtime.RequiredError('tonConnectProofRequest','Required parameter requestParameters.tonConnectProofRequest was null or undefined when calling tonConnectProof.'); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + const response = await this.request({ + path: `/v2/wallet/auth/proof`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: TonConnectProofRequestToJSON(requestParameters.tonConnectProofRequest), + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => TonConnectProof200ResponseFromJSON(jsonValue)); + } + + /** + * Account verification and token issuance + */ + async tonConnectProof(requestParameters: TonConnectProofOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.tonConnectProofRaw(requestParameters, initOverrides); + return await response.value(); + } + } diff --git a/packages/@core-js/src/tonApiV2/index.ts b/packages/@core-js/src/tonApiV2/index.ts index be9d1edee..bebe8bbbe 100644 --- a/packages/@core-js/src/tonApiV2/index.ts +++ b/packages/@core-js/src/tonApiV2/index.ts @@ -1,5 +1,5 @@ /* tslint:disable */ /* eslint-disable */ export * from './runtime'; -export * from './apis'; -export * from './models'; +export * from './apis/index'; +export * from './models/index'; diff --git a/packages/@core-js/src/tonApiV2/models/AccStatusChange.ts b/packages/@core-js/src/tonApiV2/models/AccStatusChange.ts index 60b073aa0..09a01a353 100644 --- a/packages/@core-js/src/tonApiV2/models/AccStatusChange.ts +++ b/packages/@core-js/src/tonApiV2/models/AccStatusChange.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Account.ts b/packages/@core-js/src/tonApiV2/models/Account.ts index c4456b517..6508797ea 100644 --- a/packages/@core-js/src/tonApiV2/models/Account.ts +++ b/packages/@core-js/src/tonApiV2/models/Account.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/AccountAddress.ts b/packages/@core-js/src/tonApiV2/models/AccountAddress.ts index b75b444c5..fa7bde7ca 100644 --- a/packages/@core-js/src/tonApiV2/models/AccountAddress.ts +++ b/packages/@core-js/src/tonApiV2/models/AccountAddress.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/AccountEvent.ts b/packages/@core-js/src/tonApiV2/models/AccountEvent.ts index fe3f7dbba..47ee3a034 100644 --- a/packages/@core-js/src/tonApiV2/models/AccountEvent.ts +++ b/packages/@core-js/src/tonApiV2/models/AccountEvent.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -31,12 +31,6 @@ import { FeeFromJSONTyped, FeeToJSON, } from './Fee'; -import type { ValueFlow } from './ValueFlow'; -import { - ValueFlowFromJSON, - ValueFlowFromJSONTyped, - ValueFlowToJSON, -} from './ValueFlow'; /** * An event is built on top of a trace which is a series of transactions caused by one inbound message. TonAPI looks for known patterns inside the trace and splits the trace into actions, where a single action represents a meaningful high-level operation like a Jetton Transfer or an NFT Purchase. Actions are expected to be shown to users. It is advised not to build any logic on top of actions because actions can be changed at any time. @@ -74,12 +68,6 @@ export interface AccountEvent { * @memberof AccountEvent */ fee: Fee; - /** - * - * @type {ValueFlow} - * @memberof AccountEvent - */ - valueFlow: ValueFlow; /** * scam * @type {boolean} @@ -98,6 +86,12 @@ export interface AccountEvent { * @memberof AccountEvent */ inProgress: boolean; + /** + * TODO + * @type {number} + * @memberof AccountEvent + */ + extra: number; } /** @@ -110,10 +104,10 @@ export function instanceOfAccountEvent(value: object): boolean { isInstance = isInstance && "timestamp" in value; isInstance = isInstance && "actions" in value; isInstance = isInstance && "fee" in value; - isInstance = isInstance && "valueFlow" in value; isInstance = isInstance && "isScam" in value; isInstance = isInstance && "lt" in value; isInstance = isInstance && "inProgress" in value; + isInstance = isInstance && "extra" in value; return isInstance; } @@ -133,10 +127,10 @@ export function AccountEventFromJSONTyped(json: any, ignoreDiscriminator: boolea 'timestamp': json['timestamp'], 'actions': ((json['actions'] as Array).map(ActionFromJSON)), 'fee': FeeFromJSON(json['fee']), - 'valueFlow': ValueFlowFromJSON(json['value_flow']), 'isScam': json['is_scam'], 'lt': json['lt'], 'inProgress': json['in_progress'], + 'extra': json['extra'], }; } @@ -154,10 +148,10 @@ export function AccountEventToJSON(value?: AccountEvent | null): any { 'timestamp': value.timestamp, 'actions': ((value.actions as Array).map(ActionToJSON)), 'fee': FeeToJSON(value.fee), - 'value_flow': ValueFlowToJSON(value.valueFlow), 'is_scam': value.isScam, 'lt': value.lt, 'in_progress': value.inProgress, + 'extra': value.extra, }; } diff --git a/packages/@core-js/src/tonApiV2/models/AccountEvents.ts b/packages/@core-js/src/tonApiV2/models/AccountEvents.ts index ca00cd4b6..98d13aba6 100644 --- a/packages/@core-js/src/tonApiV2/models/AccountEvents.ts +++ b/packages/@core-js/src/tonApiV2/models/AccountEvents.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/AccountInfoByStateInit.ts b/packages/@core-js/src/tonApiV2/models/AccountInfoByStateInit.ts new file mode 100644 index 000000000..73ebe1bf7 --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/AccountInfoByStateInit.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface AccountInfoByStateInit + */ +export interface AccountInfoByStateInit { + /** + * + * @type {string} + * @memberof AccountInfoByStateInit + */ + publicKey: string; + /** + * + * @type {string} + * @memberof AccountInfoByStateInit + */ + address: string; +} + +/** + * Check if a given object implements the AccountInfoByStateInit interface. + */ +export function instanceOfAccountInfoByStateInit(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "publicKey" in value; + isInstance = isInstance && "address" in value; + + return isInstance; +} + +export function AccountInfoByStateInitFromJSON(json: any): AccountInfoByStateInit { + return AccountInfoByStateInitFromJSONTyped(json, false); +} + +export function AccountInfoByStateInitFromJSONTyped(json: any, ignoreDiscriminator: boolean): AccountInfoByStateInit { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'publicKey': json['public_key'], + 'address': json['address'], + }; +} + +export function AccountInfoByStateInitToJSON(value?: AccountInfoByStateInit | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'public_key': value.publicKey, + 'address': value.address, + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/AccountStaking.ts b/packages/@core-js/src/tonApiV2/models/AccountStaking.ts index 436129f20..3737f57b3 100644 --- a/packages/@core-js/src/tonApiV2/models/AccountStaking.ts +++ b/packages/@core-js/src/tonApiV2/models/AccountStaking.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/AccountStakingInfo.ts b/packages/@core-js/src/tonApiV2/models/AccountStakingInfo.ts index d28aa92f2..905b58afd 100644 --- a/packages/@core-js/src/tonApiV2/models/AccountStakingInfo.ts +++ b/packages/@core-js/src/tonApiV2/models/AccountStakingInfo.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/AccountStatus.ts b/packages/@core-js/src/tonApiV2/models/AccountStatus.ts index ca5afe2ea..37f823c04 100644 --- a/packages/@core-js/src/tonApiV2/models/AccountStatus.ts +++ b/packages/@core-js/src/tonApiV2/models/AccountStatus.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/AccountStorageInfo.ts b/packages/@core-js/src/tonApiV2/models/AccountStorageInfo.ts index 7d3e5c269..d515ddda4 100644 --- a/packages/@core-js/src/tonApiV2/models/AccountStorageInfo.ts +++ b/packages/@core-js/src/tonApiV2/models/AccountStorageInfo.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Accounts.ts b/packages/@core-js/src/tonApiV2/models/Accounts.ts index 2c8506ec0..b3c1bb260 100644 --- a/packages/@core-js/src/tonApiV2/models/Accounts.ts +++ b/packages/@core-js/src/tonApiV2/models/Accounts.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Action.ts b/packages/@core-js/src/tonApiV2/models/Action.ts index eb6c45b56..15ffb913f 100644 --- a/packages/@core-js/src/tonApiV2/models/Action.ts +++ b/packages/@core-js/src/tonApiV2/models/Action.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -31,6 +31,12 @@ import { ContractDeployActionFromJSONTyped, ContractDeployActionToJSON, } from './ContractDeployAction'; +import type { DepositStakeAction } from './DepositStakeAction'; +import { + DepositStakeActionFromJSON, + DepositStakeActionFromJSONTyped, + DepositStakeActionToJSON, +} from './DepositStakeAction'; import type { JettonTransferAction } from './JettonTransferAction'; import { JettonTransferActionFromJSON, @@ -49,6 +55,12 @@ import { NftPurchaseActionFromJSONTyped, NftPurchaseActionToJSON, } from './NftPurchaseAction'; +import type { RecoverStakeAction } from './RecoverStakeAction'; +import { + RecoverStakeActionFromJSON, + RecoverStakeActionFromJSONTyped, + RecoverStakeActionToJSON, +} from './RecoverStakeAction'; import type { SmartContractAction } from './SmartContractAction'; import { SmartContractActionFromJSON, @@ -140,6 +152,18 @@ export interface Action { * @memberof Action */ nftPurchase?: NftPurchaseAction; + /** + * + * @type {DepositStakeAction} + * @memberof Action + */ + depositStake?: DepositStakeAction; + /** + * + * @type {RecoverStakeAction} + * @memberof Action + */ + recoverStake?: RecoverStakeAction; /** * * @type {SmartContractAction} @@ -167,6 +191,8 @@ export const ActionTypeEnum = { UnSubscribe: 'UnSubscribe', AuctionBid: 'AuctionBid', NftPurchase: 'NftPurchase', + DepositStake: 'DepositStake', + RecoverStake: 'RecoverStake', SmartContractExec: 'SmartContractExec', Unknown: 'Unknown' } as const; @@ -215,6 +241,8 @@ export function ActionFromJSONTyped(json: any, ignoreDiscriminator: boolean): Ac 'unSubscribe': !exists(json, 'UnSubscribe') ? undefined : UnSubscriptionActionFromJSON(json['UnSubscribe']), 'auctionBid': !exists(json, 'AuctionBid') ? undefined : AuctionBidActionFromJSON(json['AuctionBid']), 'nftPurchase': !exists(json, 'NftPurchase') ? undefined : NftPurchaseActionFromJSON(json['NftPurchase']), + 'depositStake': !exists(json, 'DepositStake') ? undefined : DepositStakeActionFromJSON(json['DepositStake']), + 'recoverStake': !exists(json, 'RecoverStake') ? undefined : RecoverStakeActionFromJSON(json['RecoverStake']), 'smartContractExec': !exists(json, 'SmartContractExec') ? undefined : SmartContractActionFromJSON(json['SmartContractExec']), 'simplePreview': ActionSimplePreviewFromJSON(json['simple_preview']), }; @@ -239,6 +267,8 @@ export function ActionToJSON(value?: Action | null): any { 'UnSubscribe': UnSubscriptionActionToJSON(value.unSubscribe), 'AuctionBid': AuctionBidActionToJSON(value.auctionBid), 'NftPurchase': NftPurchaseActionToJSON(value.nftPurchase), + 'DepositStake': DepositStakeActionToJSON(value.depositStake), + 'RecoverStake': RecoverStakeActionToJSON(value.recoverStake), 'SmartContractExec': SmartContractActionToJSON(value.smartContractExec), 'simple_preview': ActionSimplePreviewToJSON(value.simplePreview), }; diff --git a/packages/@core-js/src/tonApiV2/models/ActionPhase.ts b/packages/@core-js/src/tonApiV2/models/ActionPhase.ts index 24729fbd2..25cdf1cc2 100644 --- a/packages/@core-js/src/tonApiV2/models/ActionPhase.ts +++ b/packages/@core-js/src/tonApiV2/models/ActionPhase.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/ActionSimplePreview.ts b/packages/@core-js/src/tonApiV2/models/ActionSimplePreview.ts index 25642144b..9cfc016a2 100644 --- a/packages/@core-js/src/tonApiV2/models/ActionSimplePreview.ts +++ b/packages/@core-js/src/tonApiV2/models/ActionSimplePreview.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -21,7 +21,7 @@ import { } from './AccountAddress'; /** - * + * shortly describes what this action is about. * @export * @interface ActionSimplePreview */ diff --git a/packages/@core-js/src/tonApiV2/models/Auction.ts b/packages/@core-js/src/tonApiV2/models/Auction.ts index 9d80934a2..03d8854a5 100644 --- a/packages/@core-js/src/tonApiV2/models/Auction.ts +++ b/packages/@core-js/src/tonApiV2/models/Auction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/AuctionBidAction.ts b/packages/@core-js/src/tonApiV2/models/AuctionBidAction.ts index 80a9c90e2..7869ecde9 100644 --- a/packages/@core-js/src/tonApiV2/models/AuctionBidAction.ts +++ b/packages/@core-js/src/tonApiV2/models/AuctionBidAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Auctions.ts b/packages/@core-js/src/tonApiV2/models/Auctions.ts index 913d011af..4680e9b85 100644 --- a/packages/@core-js/src/tonApiV2/models/Auctions.ts +++ b/packages/@core-js/src/tonApiV2/models/Auctions.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Block.ts b/packages/@core-js/src/tonApiV2/models/Block.ts index 9b83860c9..a31bf7657 100644 --- a/packages/@core-js/src/tonApiV2/models/Block.ts +++ b/packages/@core-js/src/tonApiV2/models/Block.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/BouncePhaseType.ts b/packages/@core-js/src/tonApiV2/models/BouncePhaseType.ts index 3295cffbc..d4ee08d87 100644 --- a/packages/@core-js/src/tonApiV2/models/BouncePhaseType.ts +++ b/packages/@core-js/src/tonApiV2/models/BouncePhaseType.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/ComputePhase.ts b/packages/@core-js/src/tonApiV2/models/ComputePhase.ts index 17ded7a40..93611b37a 100644 --- a/packages/@core-js/src/tonApiV2/models/ComputePhase.ts +++ b/packages/@core-js/src/tonApiV2/models/ComputePhase.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/ComputeSkipReason.ts b/packages/@core-js/src/tonApiV2/models/ComputeSkipReason.ts index b3588cac3..c5c47bf18 100644 --- a/packages/@core-js/src/tonApiV2/models/ComputeSkipReason.ts +++ b/packages/@core-js/src/tonApiV2/models/ComputeSkipReason.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Config.ts b/packages/@core-js/src/tonApiV2/models/Config.ts index 192b65860..5169f12ce 100644 --- a/packages/@core-js/src/tonApiV2/models/Config.ts +++ b/packages/@core-js/src/tonApiV2/models/Config.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/ContractDeployAction.ts b/packages/@core-js/src/tonApiV2/models/ContractDeployAction.ts index ad758808f..3d97b60ce 100644 --- a/packages/@core-js/src/tonApiV2/models/ContractDeployAction.ts +++ b/packages/@core-js/src/tonApiV2/models/ContractDeployAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -13,13 +13,6 @@ */ import { exists, mapValues } from '../runtime'; -import type { AccountAddress } from './AccountAddress'; -import { - AccountAddressFromJSON, - AccountAddressFromJSONTyped, - AccountAddressToJSON, -} from './AccountAddress'; - /** * * @export @@ -32,12 +25,6 @@ export interface ContractDeployAction { * @memberof ContractDeployAction */ address: string; - /** - * - * @type {AccountAddress} - * @memberof ContractDeployAction - */ - deployer: AccountAddress; /** * * @type {Array} @@ -52,7 +39,6 @@ export interface ContractDeployAction { export function instanceOfContractDeployAction(value: object): boolean { let isInstance = true; isInstance = isInstance && "address" in value; - isInstance = isInstance && "deployer" in value; isInstance = isInstance && "interfaces" in value; return isInstance; @@ -69,7 +55,6 @@ export function ContractDeployActionFromJSONTyped(json: any, ignoreDiscriminator return { 'address': json['address'], - 'deployer': AccountAddressFromJSON(json['deployer']), 'interfaces': json['interfaces'], }; } @@ -84,7 +69,6 @@ export function ContractDeployActionToJSON(value?: ContractDeployAction | null): return { 'address': value.address, - 'deployer': AccountAddressToJSON(value.deployer), 'interfaces': value.interfaces, }; } diff --git a/packages/@core-js/src/tonApiV2/models/CreditPhase.ts b/packages/@core-js/src/tonApiV2/models/CreditPhase.ts index d77a92b4b..5d3c752e2 100644 --- a/packages/@core-js/src/tonApiV2/models/CreditPhase.ts +++ b/packages/@core-js/src/tonApiV2/models/CreditPhase.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/DepositStakeAction.ts b/packages/@core-js/src/tonApiV2/models/DepositStakeAction.ts new file mode 100644 index 000000000..69f05e46e --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/DepositStakeAction.ts @@ -0,0 +1,82 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { AccountAddress } from './AccountAddress'; +import { + AccountAddressFromJSON, + AccountAddressFromJSONTyped, + AccountAddressToJSON, +} from './AccountAddress'; + +/** + * + * @export + * @interface DepositStakeAction + */ +export interface DepositStakeAction { + /** + * + * @type {number} + * @memberof DepositStakeAction + */ + amount: number; + /** + * + * @type {AccountAddress} + * @memberof DepositStakeAction + */ + staker: AccountAddress; +} + +/** + * Check if a given object implements the DepositStakeAction interface. + */ +export function instanceOfDepositStakeAction(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "amount" in value; + isInstance = isInstance && "staker" in value; + + return isInstance; +} + +export function DepositStakeActionFromJSON(json: any): DepositStakeAction { + return DepositStakeActionFromJSONTyped(json, false); +} + +export function DepositStakeActionFromJSONTyped(json: any, ignoreDiscriminator: boolean): DepositStakeAction { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'amount': json['amount'], + 'staker': AccountAddressFromJSON(json['staker']), + }; +} + +export function DepositStakeActionToJSON(value?: DepositStakeAction | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'amount': value.amount, + 'staker': AccountAddressToJSON(value.staker), + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/DnsExpiring.ts b/packages/@core-js/src/tonApiV2/models/DnsExpiring.ts index fefd5a63d..770e5a893 100644 --- a/packages/@core-js/src/tonApiV2/models/DnsExpiring.ts +++ b/packages/@core-js/src/tonApiV2/models/DnsExpiring.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/DnsExpiringItemsInner.ts b/packages/@core-js/src/tonApiV2/models/DnsExpiringItemsInner.ts index b5b517227..8ad84088c 100644 --- a/packages/@core-js/src/tonApiV2/models/DnsExpiringItemsInner.ts +++ b/packages/@core-js/src/tonApiV2/models/DnsExpiringItemsInner.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -43,7 +43,7 @@ export interface DnsExpiringItemsInner { * @type {NftItem} * @memberof DnsExpiringItemsInner */ - dnsItem: NftItem; + dnsItem?: NftItem; } /** @@ -53,7 +53,6 @@ export function instanceOfDnsExpiringItemsInner(value: object): boolean { let isInstance = true; isInstance = isInstance && "expiringAt" in value; isInstance = isInstance && "name" in value; - isInstance = isInstance && "dnsItem" in value; return isInstance; } @@ -70,7 +69,7 @@ export function DnsExpiringItemsInnerFromJSONTyped(json: any, ignoreDiscriminato 'expiringAt': json['expiring_at'], 'name': json['name'], - 'dnsItem': NftItemFromJSON(json['dns_item']), + 'dnsItem': !exists(json, 'dns_item') ? undefined : NftItemFromJSON(json['dns_item']), }; } diff --git a/packages/@core-js/src/tonApiV2/models/DnsRecord.ts b/packages/@core-js/src/tonApiV2/models/DnsRecord.ts index 82baef2a1..3199c0908 100644 --- a/packages/@core-js/src/tonApiV2/models/DnsRecord.ts +++ b/packages/@core-js/src/tonApiV2/models/DnsRecord.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/DomainBid.ts b/packages/@core-js/src/tonApiV2/models/DomainBid.ts index 38a0bee57..c0946d9f0 100644 --- a/packages/@core-js/src/tonApiV2/models/DomainBid.ts +++ b/packages/@core-js/src/tonApiV2/models/DomainBid.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/DomainBids.ts b/packages/@core-js/src/tonApiV2/models/DomainBids.ts index 22301b21e..1960cfe3b 100644 --- a/packages/@core-js/src/tonApiV2/models/DomainBids.ts +++ b/packages/@core-js/src/tonApiV2/models/DomainBids.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/DomainInfo.ts b/packages/@core-js/src/tonApiV2/models/DomainInfo.ts new file mode 100644 index 000000000..1e3828b70 --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/DomainInfo.ts @@ -0,0 +1,89 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { NftItem } from './NftItem'; +import { + NftItemFromJSON, + NftItemFromJSONTyped, + NftItemToJSON, +} from './NftItem'; + +/** + * + * @export + * @interface DomainInfo + */ +export interface DomainInfo { + /** + * + * @type {string} + * @memberof DomainInfo + */ + name: string; + /** + * date of expiring. optional. not all domain in ton has expiration date + * @type {number} + * @memberof DomainInfo + */ + expiringAt?: number; + /** + * + * @type {NftItem} + * @memberof DomainInfo + */ + item?: NftItem; +} + +/** + * Check if a given object implements the DomainInfo interface. + */ +export function instanceOfDomainInfo(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "name" in value; + + return isInstance; +} + +export function DomainInfoFromJSON(json: any): DomainInfo { + return DomainInfoFromJSONTyped(json, false); +} + +export function DomainInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): DomainInfo { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'name': json['name'], + 'expiringAt': !exists(json, 'expiring_at') ? undefined : json['expiring_at'], + 'item': !exists(json, 'item') ? undefined : NftItemFromJSON(json['item']), + }; +} + +export function DomainInfoToJSON(value?: DomainInfo | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'name': value.name, + 'expiring_at': value.expiringAt, + 'item': NftItemToJSON(value.item), + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/DomainNames.ts b/packages/@core-js/src/tonApiV2/models/DomainNames.ts index f1cb6036d..e15bc2892 100644 --- a/packages/@core-js/src/tonApiV2/models/DomainNames.ts +++ b/packages/@core-js/src/tonApiV2/models/DomainNames.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Event.ts b/packages/@core-js/src/tonApiV2/models/Event.ts index 754c7aec3..1956934a1 100644 --- a/packages/@core-js/src/tonApiV2/models/Event.ts +++ b/packages/@core-js/src/tonApiV2/models/Event.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Fee.ts b/packages/@core-js/src/tonApiV2/models/Fee.ts index af01b05ee..c44f2dab1 100644 --- a/packages/@core-js/src/tonApiV2/models/Fee.ts +++ b/packages/@core-js/src/tonApiV2/models/Fee.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/FoundAccounts.ts b/packages/@core-js/src/tonApiV2/models/FoundAccounts.ts index 3beb4ee53..f292be414 100644 --- a/packages/@core-js/src/tonApiV2/models/FoundAccounts.ts +++ b/packages/@core-js/src/tonApiV2/models/FoundAccounts.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/FoundAccountsAddressesInner.ts b/packages/@core-js/src/tonApiV2/models/FoundAccountsAddressesInner.ts index 5de95534a..6e374ba15 100644 --- a/packages/@core-js/src/tonApiV2/models/FoundAccountsAddressesInner.ts +++ b/packages/@core-js/src/tonApiV2/models/FoundAccountsAddressesInner.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/GetAccountInfoByStateInitRequest.ts b/packages/@core-js/src/tonApiV2/models/GetAccountInfoByStateInitRequest.ts new file mode 100644 index 000000000..e7ed8a1c3 --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/GetAccountInfoByStateInitRequest.ts @@ -0,0 +1,66 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface GetAccountInfoByStateInitRequest + */ +export interface GetAccountInfoByStateInitRequest { + /** + * + * @type {string} + * @memberof GetAccountInfoByStateInitRequest + */ + stateInit: string; +} + +/** + * Check if a given object implements the GetAccountInfoByStateInitRequest interface. + */ +export function instanceOfGetAccountInfoByStateInitRequest(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "stateInit" in value; + + return isInstance; +} + +export function GetAccountInfoByStateInitRequestFromJSON(json: any): GetAccountInfoByStateInitRequest { + return GetAccountInfoByStateInitRequestFromJSONTyped(json, false); +} + +export function GetAccountInfoByStateInitRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetAccountInfoByStateInitRequest { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'stateInit': json['state_init'], + }; +} + +export function GetAccountInfoByStateInitRequestToJSON(value?: GetAccountInfoByStateInitRequest | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'state_init': value.stateInit, + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/GetAccountsRequest.ts b/packages/@core-js/src/tonApiV2/models/GetAccountsRequest.ts index f26ff9848..cf9ec1de6 100644 --- a/packages/@core-js/src/tonApiV2/models/GetAccountsRequest.ts +++ b/packages/@core-js/src/tonApiV2/models/GetAccountsRequest.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/GetBlock401Response.ts b/packages/@core-js/src/tonApiV2/models/GetBlock401Response.ts index fc5cfddac..c5f53323d 100644 --- a/packages/@core-js/src/tonApiV2/models/GetBlock401Response.ts +++ b/packages/@core-js/src/tonApiV2/models/GetBlock401Response.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/GetPublicKeyByAccountID200Response.ts b/packages/@core-js/src/tonApiV2/models/GetPublicKeyByAccountID200Response.ts new file mode 100644 index 000000000..42561542d --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/GetPublicKeyByAccountID200Response.ts @@ -0,0 +1,66 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +/** + * + * @export + * @interface GetPublicKeyByAccountID200Response + */ +export interface GetPublicKeyByAccountID200Response { + /** + * + * @type {string} + * @memberof GetPublicKeyByAccountID200Response + */ + publicKey: string; +} + +/** + * Check if a given object implements the GetPublicKeyByAccountID200Response interface. + */ +export function instanceOfGetPublicKeyByAccountID200Response(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "publicKey" in value; + + return isInstance; +} + +export function GetPublicKeyByAccountID200ResponseFromJSON(json: any): GetPublicKeyByAccountID200Response { + return GetPublicKeyByAccountID200ResponseFromJSONTyped(json, false); +} + +export function GetPublicKeyByAccountID200ResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetPublicKeyByAccountID200Response { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'publicKey': json['public_key'], + }; +} + +export function GetPublicKeyByAccountID200ResponseToJSON(value?: GetPublicKeyByAccountID200Response | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'public_key': value.publicKey, + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/GetRates200Response.ts b/packages/@core-js/src/tonApiV2/models/GetRates200Response.ts index 0389bba89..41ae95dda 100644 --- a/packages/@core-js/src/tonApiV2/models/GetRates200Response.ts +++ b/packages/@core-js/src/tonApiV2/models/GetRates200Response.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/GetStorageProviders200Response.ts b/packages/@core-js/src/tonApiV2/models/GetStorageProviders200Response.ts index 4896330d5..2ae9a4a9f 100644 --- a/packages/@core-js/src/tonApiV2/models/GetStorageProviders200Response.ts +++ b/packages/@core-js/src/tonApiV2/models/GetStorageProviders200Response.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/GetTonConnectPayload200Response.ts b/packages/@core-js/src/tonApiV2/models/GetTonConnectPayload200Response.ts index a8f10d000..175cda755 100644 --- a/packages/@core-js/src/tonApiV2/models/GetTonConnectPayload200Response.ts +++ b/packages/@core-js/src/tonApiV2/models/GetTonConnectPayload200Response.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/GetWalletBackup200Response.ts b/packages/@core-js/src/tonApiV2/models/GetWalletBackup200Response.ts index 0e15e37dd..7ff35443d 100644 --- a/packages/@core-js/src/tonApiV2/models/GetWalletBackup200Response.ts +++ b/packages/@core-js/src/tonApiV2/models/GetWalletBackup200Response.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/ImagePreview.ts b/packages/@core-js/src/tonApiV2/models/ImagePreview.ts index f58e2a2a3..0336a9ddc 100644 --- a/packages/@core-js/src/tonApiV2/models/ImagePreview.ts +++ b/packages/@core-js/src/tonApiV2/models/ImagePreview.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/JettonBalance.ts b/packages/@core-js/src/tonApiV2/models/JettonBalance.ts index d7c61d305..ebca42460 100644 --- a/packages/@core-js/src/tonApiV2/models/JettonBalance.ts +++ b/packages/@core-js/src/tonApiV2/models/JettonBalance.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/JettonInfo.ts b/packages/@core-js/src/tonApiV2/models/JettonInfo.ts index 35a270e1c..c035ff476 100644 --- a/packages/@core-js/src/tonApiV2/models/JettonInfo.ts +++ b/packages/@core-js/src/tonApiV2/models/JettonInfo.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/JettonMetadata.ts b/packages/@core-js/src/tonApiV2/models/JettonMetadata.ts index 6a933658d..2aec8187d 100644 --- a/packages/@core-js/src/tonApiV2/models/JettonMetadata.ts +++ b/packages/@core-js/src/tonApiV2/models/JettonMetadata.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/JettonPreview.ts b/packages/@core-js/src/tonApiV2/models/JettonPreview.ts index 3423587cc..8535c3ee6 100644 --- a/packages/@core-js/src/tonApiV2/models/JettonPreview.ts +++ b/packages/@core-js/src/tonApiV2/models/JettonPreview.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/JettonQuantity.ts b/packages/@core-js/src/tonApiV2/models/JettonQuantity.ts new file mode 100644 index 000000000..227bf9679 --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/JettonQuantity.ts @@ -0,0 +1,97 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { AccountAddress } from './AccountAddress'; +import { + AccountAddressFromJSON, + AccountAddressFromJSONTyped, + AccountAddressToJSON, +} from './AccountAddress'; +import type { JettonPreview } from './JettonPreview'; +import { + JettonPreviewFromJSON, + JettonPreviewFromJSONTyped, + JettonPreviewToJSON, +} from './JettonPreview'; + +/** + * + * @export + * @interface JettonQuantity + */ +export interface JettonQuantity { + /** + * + * @type {string} + * @memberof JettonQuantity + */ + quantity: string; + /** + * + * @type {AccountAddress} + * @memberof JettonQuantity + */ + walletAddress: AccountAddress; + /** + * + * @type {JettonPreview} + * @memberof JettonQuantity + */ + jetton: JettonPreview; +} + +/** + * Check if a given object implements the JettonQuantity interface. + */ +export function instanceOfJettonQuantity(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "quantity" in value; + isInstance = isInstance && "walletAddress" in value; + isInstance = isInstance && "jetton" in value; + + return isInstance; +} + +export function JettonQuantityFromJSON(json: any): JettonQuantity { + return JettonQuantityFromJSONTyped(json, false); +} + +export function JettonQuantityFromJSONTyped(json: any, ignoreDiscriminator: boolean): JettonQuantity { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'quantity': json['quantity'], + 'walletAddress': AccountAddressFromJSON(json['wallet_address']), + 'jetton': JettonPreviewFromJSON(json['jetton']), + }; +} + +export function JettonQuantityToJSON(value?: JettonQuantity | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'quantity': value.quantity, + 'wallet_address': AccountAddressToJSON(value.walletAddress), + 'jetton': JettonPreviewToJSON(value.jetton), + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/JettonTransferAction.ts b/packages/@core-js/src/tonApiV2/models/JettonTransferAction.ts index 0c11af76e..4e543ea8d 100644 --- a/packages/@core-js/src/tonApiV2/models/JettonTransferAction.ts +++ b/packages/@core-js/src/tonApiV2/models/JettonTransferAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/JettonVerificationType.ts b/packages/@core-js/src/tonApiV2/models/JettonVerificationType.ts index 4e994e808..da844c455 100644 --- a/packages/@core-js/src/tonApiV2/models/JettonVerificationType.ts +++ b/packages/@core-js/src/tonApiV2/models/JettonVerificationType.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/JettonsBalances.ts b/packages/@core-js/src/tonApiV2/models/JettonsBalances.ts index f9501b500..6c008b61b 100644 --- a/packages/@core-js/src/tonApiV2/models/JettonsBalances.ts +++ b/packages/@core-js/src/tonApiV2/models/JettonsBalances.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Message.ts b/packages/@core-js/src/tonApiV2/models/Message.ts index 92ec67ed8..632bc6d11 100644 --- a/packages/@core-js/src/tonApiV2/models/Message.ts +++ b/packages/@core-js/src/tonApiV2/models/Message.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -110,6 +110,12 @@ export interface Message { * @memberof Message */ init?: StateInit; + /** + * hex-encoded BoC with raw message body + * @type {string} + * @memberof Message + */ + rawBody?: string; /** * * @type {string} @@ -166,6 +172,7 @@ export function MessageFromJSONTyped(json: any, ignoreDiscriminator: boolean): M 'createdAt': json['created_at'], 'opCode': !exists(json, 'op_code') ? undefined : json['op_code'], 'init': !exists(json, 'init') ? undefined : StateInitFromJSON(json['init']), + 'rawBody': !exists(json, 'raw_body') ? undefined : json['raw_body'], 'decodedOpName': !exists(json, 'decoded_op_name') ? undefined : json['decoded_op_name'], 'decodedBody': json['decoded_body'], }; @@ -193,6 +200,7 @@ export function MessageToJSON(value?: Message | null): any { 'created_at': value.createdAt, 'op_code': value.opCode, 'init': StateInitToJSON(value.init), + 'raw_body': value.rawBody, 'decoded_op_name': value.decodedOpName, 'decoded_body': value.decodedBody, }; diff --git a/packages/@core-js/src/tonApiV2/models/MessageConsequences.ts b/packages/@core-js/src/tonApiV2/models/MessageConsequences.ts new file mode 100644 index 000000000..d7602bad6 --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/MessageConsequences.ts @@ -0,0 +1,103 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { AccountEvent } from './AccountEvent'; +import { + AccountEventFromJSON, + AccountEventFromJSONTyped, + AccountEventToJSON, +} from './AccountEvent'; +import type { Risk } from './Risk'; +import { + RiskFromJSON, + RiskFromJSONTyped, + RiskToJSON, +} from './Risk'; +import type { Trace } from './Trace'; +import { + TraceFromJSON, + TraceFromJSONTyped, + TraceToJSON, +} from './Trace'; + +/** + * + * @export + * @interface MessageConsequences + */ +export interface MessageConsequences { + /** + * + * @type {Trace} + * @memberof MessageConsequences + */ + trace: Trace; + /** + * + * @type {Risk} + * @memberof MessageConsequences + */ + risk: Risk; + /** + * + * @type {AccountEvent} + * @memberof MessageConsequences + */ + event: AccountEvent; +} + +/** + * Check if a given object implements the MessageConsequences interface. + */ +export function instanceOfMessageConsequences(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "trace" in value; + isInstance = isInstance && "risk" in value; + isInstance = isInstance && "event" in value; + + return isInstance; +} + +export function MessageConsequencesFromJSON(json: any): MessageConsequences { + return MessageConsequencesFromJSONTyped(json, false); +} + +export function MessageConsequencesFromJSONTyped(json: any, ignoreDiscriminator: boolean): MessageConsequences { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'trace': TraceFromJSON(json['trace']), + 'risk': RiskFromJSON(json['risk']), + 'event': AccountEventFromJSON(json['event']), + }; +} + +export function MessageConsequencesToJSON(value?: MessageConsequences | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'trace': TraceToJSON(value.trace), + 'risk': RiskToJSON(value.risk), + 'event': AccountEventToJSON(value.event), + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/MethodExecutionResult.ts b/packages/@core-js/src/tonApiV2/models/MethodExecutionResult.ts index bf0ffb63d..79d24be61 100644 --- a/packages/@core-js/src/tonApiV2/models/MethodExecutionResult.ts +++ b/packages/@core-js/src/tonApiV2/models/MethodExecutionResult.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/ModelError.ts b/packages/@core-js/src/tonApiV2/models/ModelError.ts index 4656a5520..8e23f5035 100644 --- a/packages/@core-js/src/tonApiV2/models/ModelError.ts +++ b/packages/@core-js/src/tonApiV2/models/ModelError.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/NftCollection.ts b/packages/@core-js/src/tonApiV2/models/NftCollection.ts index 6e0c1adcb..18b4a1faf 100644 --- a/packages/@core-js/src/tonApiV2/models/NftCollection.ts +++ b/packages/@core-js/src/tonApiV2/models/NftCollection.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/NftCollections.ts b/packages/@core-js/src/tonApiV2/models/NftCollections.ts index 07ea5396b..a12933249 100644 --- a/packages/@core-js/src/tonApiV2/models/NftCollections.ts +++ b/packages/@core-js/src/tonApiV2/models/NftCollections.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/NftItem.ts b/packages/@core-js/src/tonApiV2/models/NftItem.ts index 3da953bcb..1d44ec203 100644 --- a/packages/@core-js/src/tonApiV2/models/NftItem.ts +++ b/packages/@core-js/src/tonApiV2/models/NftItem.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -103,9 +103,20 @@ export interface NftItem { * @type {Array} * @memberof NftItem */ - approvedBy: Array; + approvedBy: Array; } + +/** + * @export + */ +export const NftItemApprovedByEnum = { + Getgems: 'getgems', + Tonkeeper: 'tonkeeper' +} as const; +export type NftItemApprovedByEnum = typeof NftItemApprovedByEnum[keyof typeof NftItemApprovedByEnum]; + + /** * Check if a given object implements the NftItem interface. */ diff --git a/packages/@core-js/src/tonApiV2/models/NftItemCollection.ts b/packages/@core-js/src/tonApiV2/models/NftItemCollection.ts index c17b7b283..16848f195 100644 --- a/packages/@core-js/src/tonApiV2/models/NftItemCollection.ts +++ b/packages/@core-js/src/tonApiV2/models/NftItemCollection.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/NftItemTransferAction.ts b/packages/@core-js/src/tonApiV2/models/NftItemTransferAction.ts index 019637d1a..59041ded2 100644 --- a/packages/@core-js/src/tonApiV2/models/NftItemTransferAction.ts +++ b/packages/@core-js/src/tonApiV2/models/NftItemTransferAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/NftItems.ts b/packages/@core-js/src/tonApiV2/models/NftItems.ts index 4129c5c63..a4d4e758c 100644 --- a/packages/@core-js/src/tonApiV2/models/NftItems.ts +++ b/packages/@core-js/src/tonApiV2/models/NftItems.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/NftPurchaseAction.ts b/packages/@core-js/src/tonApiV2/models/NftPurchaseAction.ts index 26e9bde66..70571c432 100644 --- a/packages/@core-js/src/tonApiV2/models/NftPurchaseAction.ts +++ b/packages/@core-js/src/tonApiV2/models/NftPurchaseAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -43,7 +43,7 @@ export interface NftPurchaseAction { * @type {string} * @memberof NftPurchaseAction */ - purchaseType?: NftPurchaseActionPurchaseTypeEnum; + auctionType: NftPurchaseActionAuctionTypeEnum; /** * * @type {Price} @@ -74,11 +74,12 @@ export interface NftPurchaseAction { /** * @export */ -export const NftPurchaseActionPurchaseTypeEnum = { +export const NftPurchaseActionAuctionTypeEnum = { DnsTg: 'DNS.tg', - Getgems: 'getgems' + Getgems: 'getgems', + Basic: 'basic' } as const; -export type NftPurchaseActionPurchaseTypeEnum = typeof NftPurchaseActionPurchaseTypeEnum[keyof typeof NftPurchaseActionPurchaseTypeEnum]; +export type NftPurchaseActionAuctionTypeEnum = typeof NftPurchaseActionAuctionTypeEnum[keyof typeof NftPurchaseActionAuctionTypeEnum]; /** @@ -86,6 +87,7 @@ export type NftPurchaseActionPurchaseTypeEnum = typeof NftPurchaseActionPurchase */ export function instanceOfNftPurchaseAction(value: object): boolean { let isInstance = true; + isInstance = isInstance && "auctionType" in value; isInstance = isInstance && "amount" in value; isInstance = isInstance && "nft" in value; isInstance = isInstance && "seller" in value; @@ -104,7 +106,7 @@ export function NftPurchaseActionFromJSONTyped(json: any, ignoreDiscriminator: b } return { - 'purchaseType': !exists(json, 'purchase_type') ? undefined : json['purchase_type'], + 'auctionType': json['auction_type'], 'amount': PriceFromJSON(json['amount']), 'nft': NftItemFromJSON(json['nft']), 'seller': AccountAddressFromJSON(json['seller']), @@ -121,7 +123,7 @@ export function NftPurchaseActionToJSON(value?: NftPurchaseAction | null): any { } return { - 'purchase_type': value.purchaseType, + 'auction_type': value.auctionType, 'amount': PriceToJSON(value.amount), 'nft': NftItemToJSON(value.nft), 'seller': AccountAddressToJSON(value.seller), diff --git a/packages/@core-js/src/tonApiV2/models/PoolImplementation.ts b/packages/@core-js/src/tonApiV2/models/PoolImplementation.ts index 208e8fa6b..6699dd4e9 100644 --- a/packages/@core-js/src/tonApiV2/models/PoolImplementation.ts +++ b/packages/@core-js/src/tonApiV2/models/PoolImplementation.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/PoolInfo.ts b/packages/@core-js/src/tonApiV2/models/PoolInfo.ts index f4c5887ac..3313acd80 100644 --- a/packages/@core-js/src/tonApiV2/models/PoolInfo.ts +++ b/packages/@core-js/src/tonApiV2/models/PoolInfo.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -85,6 +85,12 @@ export interface PoolInfo { * @memberof PoolInfo */ maxNominators: number; + /** + * for liquid staking master account of jetton + * @type {string} + * @memberof PoolInfo + */ + liquidJettonMaster?: string; } @@ -93,7 +99,8 @@ export interface PoolInfo { */ export const PoolInfoImplementationEnum = { Whales: 'whales', - Tf: 'tf' + Tf: 'tf', + LiquidTf: 'liquidTF' } as const; export type PoolInfoImplementationEnum = typeof PoolInfoImplementationEnum[keyof typeof PoolInfoImplementationEnum]; @@ -139,6 +146,7 @@ export function PoolInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): 'verified': json['verified'], 'currentNominators': json['current_nominators'], 'maxNominators': json['max_nominators'], + 'liquidJettonMaster': !exists(json, 'liquid_jetton_master') ? undefined : json['liquid_jetton_master'], }; } @@ -162,6 +170,7 @@ export function PoolInfoToJSON(value?: PoolInfo | null): any { 'verified': value.verified, 'current_nominators': value.currentNominators, 'max_nominators': value.maxNominators, + 'liquid_jetton_master': value.liquidJettonMaster, }; } diff --git a/packages/@core-js/src/tonApiV2/models/Price.ts b/packages/@core-js/src/tonApiV2/models/Price.ts index 1589e18ad..03e661bd6 100644 --- a/packages/@core-js/src/tonApiV2/models/Price.ts +++ b/packages/@core-js/src/tonApiV2/models/Price.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/RawAccount.ts b/packages/@core-js/src/tonApiV2/models/RawAccount.ts index 1c0fecd65..04eaa2045 100644 --- a/packages/@core-js/src/tonApiV2/models/RawAccount.ts +++ b/packages/@core-js/src/tonApiV2/models/RawAccount.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/RecoverStakeAction.ts b/packages/@core-js/src/tonApiV2/models/RecoverStakeAction.ts new file mode 100644 index 000000000..ded559aec --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/RecoverStakeAction.ts @@ -0,0 +1,82 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { AccountAddress } from './AccountAddress'; +import { + AccountAddressFromJSON, + AccountAddressFromJSONTyped, + AccountAddressToJSON, +} from './AccountAddress'; + +/** + * + * @export + * @interface RecoverStakeAction + */ +export interface RecoverStakeAction { + /** + * + * @type {number} + * @memberof RecoverStakeAction + */ + amount: number; + /** + * + * @type {AccountAddress} + * @memberof RecoverStakeAction + */ + staker: AccountAddress; +} + +/** + * Check if a given object implements the RecoverStakeAction interface. + */ +export function instanceOfRecoverStakeAction(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "amount" in value; + isInstance = isInstance && "staker" in value; + + return isInstance; +} + +export function RecoverStakeActionFromJSON(json: any): RecoverStakeAction { + return RecoverStakeActionFromJSONTyped(json, false); +} + +export function RecoverStakeActionFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecoverStakeAction { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'amount': json['amount'], + 'staker': AccountAddressFromJSON(json['staker']), + }; +} + +export function RecoverStakeActionToJSON(value?: RecoverStakeAction | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'amount': value.amount, + 'staker': AccountAddressToJSON(value.staker), + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/Refund.ts b/packages/@core-js/src/tonApiV2/models/Refund.ts index 6f8f80823..2f9fcf6a6 100644 --- a/packages/@core-js/src/tonApiV2/models/Refund.ts +++ b/packages/@core-js/src/tonApiV2/models/Refund.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Risk.ts b/packages/@core-js/src/tonApiV2/models/Risk.ts new file mode 100644 index 000000000..f499d7abb --- /dev/null +++ b/packages/@core-js/src/tonApiV2/models/Risk.ts @@ -0,0 +1,106 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * REST api to TON blockchain explorer + * Provide access to indexed TON blockchain + * + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { JettonQuantity } from './JettonQuantity'; +import { + JettonQuantityFromJSON, + JettonQuantityFromJSONTyped, + JettonQuantityToJSON, +} from './JettonQuantity'; +import type { NftItem } from './NftItem'; +import { + NftItemFromJSON, + NftItemFromJSONTyped, + NftItemToJSON, +} from './NftItem'; + +/** + * Risk specifies assets that could be lost if a message would be sent to a malicious smart contract. It makes sense to understand the risk BEFORE sending a message to the blockchain. + * @export + * @interface Risk + */ +export interface Risk { + /** + * transfer all the remaining balance of the wallet. + * @type {boolean} + * @memberof Risk + */ + transferAllRemainingBalance: boolean; + /** + * + * @type {number} + * @memberof Risk + */ + ton: number; + /** + * + * @type {Array} + * @memberof Risk + */ + jettons: Array; + /** + * + * @type {Array} + * @memberof Risk + */ + nfts: Array; +} + +/** + * Check if a given object implements the Risk interface. + */ +export function instanceOfRisk(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "transferAllRemainingBalance" in value; + isInstance = isInstance && "ton" in value; + isInstance = isInstance && "jettons" in value; + isInstance = isInstance && "nfts" in value; + + return isInstance; +} + +export function RiskFromJSON(json: any): Risk { + return RiskFromJSONTyped(json, false); +} + +export function RiskFromJSONTyped(json: any, ignoreDiscriminator: boolean): Risk { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'transferAllRemainingBalance': json['transfer_all_remaining_balance'], + 'ton': json['ton'], + 'jettons': ((json['jettons'] as Array).map(JettonQuantityFromJSON)), + 'nfts': ((json['nfts'] as Array).map(NftItemFromJSON)), + }; +} + +export function RiskToJSON(value?: Risk | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'transfer_all_remaining_balance': value.transferAllRemainingBalance, + 'ton': value.ton, + 'jettons': ((value.jettons as Array).map(JettonQuantityToJSON)), + 'nfts': ((value.nfts as Array).map(NftItemToJSON)), + }; +} + diff --git a/packages/@core-js/src/tonApiV2/models/Sale.ts b/packages/@core-js/src/tonApiV2/models/Sale.ts index 95555ac57..99a05d23e 100644 --- a/packages/@core-js/src/tonApiV2/models/Sale.ts +++ b/packages/@core-js/src/tonApiV2/models/Sale.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/SendMessageRequest.ts b/packages/@core-js/src/tonApiV2/models/SendMessageRequest.ts index 0a09ccb2f..a0b000bb5 100644 --- a/packages/@core-js/src/tonApiV2/models/SendMessageRequest.ts +++ b/packages/@core-js/src/tonApiV2/models/SendMessageRequest.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/SmartContractAction.ts b/packages/@core-js/src/tonApiV2/models/SmartContractAction.ts index 306489db8..76c34a736 100644 --- a/packages/@core-js/src/tonApiV2/models/SmartContractAction.ts +++ b/packages/@core-js/src/tonApiV2/models/SmartContractAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/StakingPoolInfo200Response.ts b/packages/@core-js/src/tonApiV2/models/StakingPoolInfo200Response.ts index 67c759c51..6af65fda6 100644 --- a/packages/@core-js/src/tonApiV2/models/StakingPoolInfo200Response.ts +++ b/packages/@core-js/src/tonApiV2/models/StakingPoolInfo200Response.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/StakingPools200Response.ts b/packages/@core-js/src/tonApiV2/models/StakingPools200Response.ts index 9f0152e18..9cc5dc7da 100644 --- a/packages/@core-js/src/tonApiV2/models/StakingPools200Response.ts +++ b/packages/@core-js/src/tonApiV2/models/StakingPools200Response.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/StateInit.ts b/packages/@core-js/src/tonApiV2/models/StateInit.ts index f8d338a41..a8251b2bc 100644 --- a/packages/@core-js/src/tonApiV2/models/StateInit.ts +++ b/packages/@core-js/src/tonApiV2/models/StateInit.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/StoragePhase.ts b/packages/@core-js/src/tonApiV2/models/StoragePhase.ts index 802e31aeb..d8b01c1d4 100644 --- a/packages/@core-js/src/tonApiV2/models/StoragePhase.ts +++ b/packages/@core-js/src/tonApiV2/models/StoragePhase.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/StorageProvider.ts b/packages/@core-js/src/tonApiV2/models/StorageProvider.ts index 16a6e5541..750f3861f 100644 --- a/packages/@core-js/src/tonApiV2/models/StorageProvider.ts +++ b/packages/@core-js/src/tonApiV2/models/StorageProvider.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Subscription.ts b/packages/@core-js/src/tonApiV2/models/Subscription.ts index 2d4e811e9..0652dec33 100644 --- a/packages/@core-js/src/tonApiV2/models/Subscription.ts +++ b/packages/@core-js/src/tonApiV2/models/Subscription.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/SubscriptionAction.ts b/packages/@core-js/src/tonApiV2/models/SubscriptionAction.ts index e8338c303..0601b1ffd 100644 --- a/packages/@core-js/src/tonApiV2/models/SubscriptionAction.ts +++ b/packages/@core-js/src/tonApiV2/models/SubscriptionAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Subscriptions.ts b/packages/@core-js/src/tonApiV2/models/Subscriptions.ts index a163a07d3..a60aaef55 100644 --- a/packages/@core-js/src/tonApiV2/models/Subscriptions.ts +++ b/packages/@core-js/src/tonApiV2/models/Subscriptions.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TonConnectProof200Response.ts b/packages/@core-js/src/tonApiV2/models/TonConnectProof200Response.ts index f301938b6..6371a2d34 100644 --- a/packages/@core-js/src/tonApiV2/models/TonConnectProof200Response.ts +++ b/packages/@core-js/src/tonApiV2/models/TonConnectProof200Response.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TonConnectProofRequest.ts b/packages/@core-js/src/tonApiV2/models/TonConnectProofRequest.ts index 65d844899..810055f10 100644 --- a/packages/@core-js/src/tonApiV2/models/TonConnectProofRequest.ts +++ b/packages/@core-js/src/tonApiV2/models/TonConnectProofRequest.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TonConnectProofRequestProof.ts b/packages/@core-js/src/tonApiV2/models/TonConnectProofRequestProof.ts index 2ab2bb674..15496b702 100644 --- a/packages/@core-js/src/tonApiV2/models/TonConnectProofRequestProof.ts +++ b/packages/@core-js/src/tonApiV2/models/TonConnectProofRequestProof.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TonConnectProofRequestProofDomain.ts b/packages/@core-js/src/tonApiV2/models/TonConnectProofRequestProofDomain.ts index 684e377a4..7da90a3c7 100644 --- a/packages/@core-js/src/tonApiV2/models/TonConnectProofRequestProofDomain.ts +++ b/packages/@core-js/src/tonApiV2/models/TonConnectProofRequestProofDomain.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TonTransferAction.ts b/packages/@core-js/src/tonApiV2/models/TonTransferAction.ts index 009a51921..65d1bfa21 100644 --- a/packages/@core-js/src/tonApiV2/models/TonTransferAction.ts +++ b/packages/@core-js/src/tonApiV2/models/TonTransferAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Trace.ts b/packages/@core-js/src/tonApiV2/models/Trace.ts index 32eb8f19e..7c19ca8ca 100644 --- a/packages/@core-js/src/tonApiV2/models/Trace.ts +++ b/packages/@core-js/src/tonApiV2/models/Trace.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TraceId.ts b/packages/@core-js/src/tonApiV2/models/TraceId.ts index 8ac2a3e36..eeee597e7 100644 --- a/packages/@core-js/src/tonApiV2/models/TraceId.ts +++ b/packages/@core-js/src/tonApiV2/models/TraceId.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TraceIds.ts b/packages/@core-js/src/tonApiV2/models/TraceIds.ts index ae9e53cfb..d6e0d96dd 100644 --- a/packages/@core-js/src/tonApiV2/models/TraceIds.ts +++ b/packages/@core-js/src/tonApiV2/models/TraceIds.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Transaction.ts b/packages/@core-js/src/tonApiV2/models/Transaction.ts index e863b4090..689dc0220 100644 --- a/packages/@core-js/src/tonApiV2/models/Transaction.ts +++ b/packages/@core-js/src/tonApiV2/models/Transaction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TransactionType.ts b/packages/@core-js/src/tonApiV2/models/TransactionType.ts index 560bb125b..e9a092147 100644 --- a/packages/@core-js/src/tonApiV2/models/TransactionType.ts +++ b/packages/@core-js/src/tonApiV2/models/TransactionType.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Transactions.ts b/packages/@core-js/src/tonApiV2/models/Transactions.ts index b66b3cb96..c012feae6 100644 --- a/packages/@core-js/src/tonApiV2/models/Transactions.ts +++ b/packages/@core-js/src/tonApiV2/models/Transactions.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/TvmStackRecord.ts b/packages/@core-js/src/tonApiV2/models/TvmStackRecord.ts index 0e957cfbf..48d29de57 100644 --- a/packages/@core-js/src/tonApiV2/models/TvmStackRecord.ts +++ b/packages/@core-js/src/tonApiV2/models/TvmStackRecord.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/UnSubscriptionAction.ts b/packages/@core-js/src/tonApiV2/models/UnSubscriptionAction.ts index 36028b895..42f224185 100644 --- a/packages/@core-js/src/tonApiV2/models/UnSubscriptionAction.ts +++ b/packages/@core-js/src/tonApiV2/models/UnSubscriptionAction.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Validator.ts b/packages/@core-js/src/tonApiV2/models/Validator.ts index 56b711961..87855b32e 100644 --- a/packages/@core-js/src/tonApiV2/models/Validator.ts +++ b/packages/@core-js/src/tonApiV2/models/Validator.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/Validators.ts b/packages/@core-js/src/tonApiV2/models/Validators.ts index 655db90a4..ed02a64e5 100644 --- a/packages/@core-js/src/tonApiV2/models/Validators.ts +++ b/packages/@core-js/src/tonApiV2/models/Validators.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/ValueFlow.ts b/packages/@core-js/src/tonApiV2/models/ValueFlow.ts index 06544999f..dcd70060a 100644 --- a/packages/@core-js/src/tonApiV2/models/ValueFlow.ts +++ b/packages/@core-js/src/tonApiV2/models/ValueFlow.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/ValueFlowJettonsInner.ts b/packages/@core-js/src/tonApiV2/models/ValueFlowJettonsInner.ts index 28daba9af..37d58bcad 100644 --- a/packages/@core-js/src/tonApiV2/models/ValueFlowJettonsInner.ts +++ b/packages/@core-js/src/tonApiV2/models/ValueFlowJettonsInner.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/WalletDNS.ts b/packages/@core-js/src/tonApiV2/models/WalletDNS.ts index b8e8aab39..539d6f9c6 100644 --- a/packages/@core-js/src/tonApiV2/models/WalletDNS.ts +++ b/packages/@core-js/src/tonApiV2/models/WalletDNS.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech diff --git a/packages/@core-js/src/tonApiV2/models/index.ts b/packages/@core-js/src/tonApiV2/models/index.ts index 0ecbbfb12..c71e12022 100644 --- a/packages/@core-js/src/tonApiV2/models/index.ts +++ b/packages/@core-js/src/tonApiV2/models/index.ts @@ -5,6 +5,7 @@ export * from './Account'; export * from './AccountAddress'; export * from './AccountEvent'; export * from './AccountEvents'; +export * from './AccountInfoByStateInit'; export * from './AccountStaking'; export * from './AccountStakingInfo'; export * from './AccountStatus'; @@ -23,18 +24,22 @@ export * from './ComputeSkipReason'; export * from './Config'; export * from './ContractDeployAction'; export * from './CreditPhase'; +export * from './DepositStakeAction'; export * from './DnsExpiring'; export * from './DnsExpiringItemsInner'; export * from './DnsRecord'; export * from './DomainBid'; export * from './DomainBids'; +export * from './DomainInfo'; export * from './DomainNames'; export * from './Event'; export * from './Fee'; export * from './FoundAccounts'; export * from './FoundAccountsAddressesInner'; +export * from './GetAccountInfoByStateInitRequest'; export * from './GetAccountsRequest'; export * from './GetBlock401Response'; +export * from './GetPublicKeyByAccountID200Response'; export * from './GetRates200Response'; export * from './GetStorageProviders200Response'; export * from './GetTonConnectPayload200Response'; @@ -44,10 +49,12 @@ export * from './JettonBalance'; export * from './JettonInfo'; export * from './JettonMetadata'; export * from './JettonPreview'; +export * from './JettonQuantity'; export * from './JettonTransferAction'; export * from './JettonVerificationType'; export * from './JettonsBalances'; export * from './Message'; +export * from './MessageConsequences'; export * from './MethodExecutionResult'; export * from './ModelError'; export * from './NftCollection'; @@ -61,7 +68,9 @@ export * from './PoolImplementation'; export * from './PoolInfo'; export * from './Price'; export * from './RawAccount'; +export * from './RecoverStakeAction'; export * from './Refund'; +export * from './Risk'; export * from './Sale'; export * from './SendMessageRequest'; export * from './SmartContractAction'; diff --git a/packages/@core-js/src/tonApiV2/runtime.ts b/packages/@core-js/src/tonApiV2/runtime.ts index cae972316..b653ebf9b 100644 --- a/packages/@core-js/src/tonApiV2/runtime.ts +++ b/packages/@core-js/src/tonApiV2/runtime.ts @@ -4,8 +4,8 @@ * REST api to TON blockchain explorer * Provide access to indexed TON blockchain * - * The version of the OpenAPI document: 0.0.1 - * Contact: contact@fslabs.org + * The version of the OpenAPI document: 2.0.0 + * Contact: support@tonkeeper.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech @@ -172,14 +172,20 @@ export class BaseAPI { })) }; + let body: any; + if (isFormData(overriddenInit.body) + || (overriddenInit.body instanceof URLSearchParams) + || isBlob(overriddenInit.body)) { + body = overriddenInit.body; + } else if (this.isJsonMime(headers['Content-Type'])) { + body = JSON.stringify(overriddenInit.body); + } else { + body = overriddenInit.body; + } + const init: RequestInit = { ...overriddenInit, - body: - isFormData(overriddenInit.body) || - overriddenInit.body instanceof URLSearchParams || - isBlob(overriddenInit.body) - ? overriddenInit.body - : JSON.stringify(overriddenInit.body), + body }; return { url, init }; diff --git a/packages/mobile/index.js b/packages/mobile/index.js index 39598a237..d8d36ebf4 100644 --- a/packages/mobile/index.js +++ b/packages/mobile/index.js @@ -31,7 +31,11 @@ if (__DEV__) { } async function handleDappMessage(remoteMessage) { - if (!remoteMessage.data?.type) { + if ( + !['bridge_dapp_notification', 'console_dapp_notification'].includes( + remoteMessage.data?.type, + ) + ) { return null; } useNotificationsStore.getState().actions.addNotification({ diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index 70c0d54ec..b85f37c5e 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1011,7 +1011,7 @@ outputFileListPaths = ( ); outputPaths = ( - $SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift, + "$SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; diff --git a/packages/mobile/src/core/Notifications/Notification.tsx b/packages/mobile/src/core/Notifications/Notification.tsx index 24af38b58..6495dda3e 100644 --- a/packages/mobile/src/core/Notifications/Notification.tsx +++ b/packages/mobile/src/core/Notifications/Notification.tsx @@ -1,25 +1,26 @@ -import { Icon, List, Spacer, View } from '$uikit'; +import { Icon, List, Spacer, Text, View } from '$uikit'; import React, { useCallback, useRef } from 'react'; import { Steezy } from '$styles'; import { INotification } from '$store/zustand/notifications/types'; import { disableNotifications, useConnectedAppsList } from '$store'; import { format } from '$utils'; -import { Swipeable } from 'react-native-gesture-handler'; -import { TouchableOpacity } from 'react-native'; +import { Swipeable, TouchableOpacity } from 'react-native-gesture-handler'; import { IconProps } from '$uikit/Icon/Icon'; import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; import { t } from '$translation'; import { isToday } from 'date-fns'; import { useActionSheet } from '@expo/react-native-action-sheet'; -import _ from 'lodash'; import { TonConnect } from '$tonconnect'; import messaging from '@react-native-firebase/messaging'; import { useSelector } from 'react-redux'; import { walletAddressSelector } from '$store/wallet'; import { openDAppBrowser } from '$navigation'; +import { Animated } from 'react-native'; interface NotificationProps { notification: INotification; + onRemove?: () => void; + closeOtherSwipeable?: React.MutableRefObject<(() => void) | null>; } type Options = { @@ -34,7 +35,7 @@ export const ActionButton: React.FC<{ icon: IconProps['name']; onPress: () => vo ) => ( - + ); @@ -48,15 +49,27 @@ export const Notification: React.FC = (props) => { const deleteNotification = useNotificationsStore( (state) => state.actions.deleteNotificationByReceivedAt, ); + const listItemRef = useRef(null); + + const handleDelete = useCallback(() => { + deleteNotification(props.notification.received_at); + props.onRemove?.(); + }, [deleteNotification, props]); + const swipeableRef = useRef(null); - const subtitle = - (props.notification.name || app?.name || t('notifications.disconnected_app')) + - ' · ' + - format( - props.notification.received_at, - isToday(props.notification.received_at) ? 'HH:mm' : 'd MMM, HH:mm', - ); + const subtitle = ( + + {props.notification.name || app?.name || t('notifications.disconnected_app')} + + {' · '} + + {format( + props.notification.received_at, + isToday(props.notification.received_at) ? 'HH:mm' : 'd MMM, HH:mm', + )} + + ); const handleOpenSettings = useCallback(async () => { const options: Options = [ @@ -98,22 +111,29 @@ export const Notification: React.FC = (props) => { ); }, [app, showActionSheetWithOptions, walletAddress.ton]); - const renderRightActions = useCallback(() => { - return ( - - {app && ( - <> - - - - )} - deleteNotification(props.notification.received_at)} - icon="ic-trash-bin-16" - /> - - ); - }, [app, deleteNotification, handleOpenSettings, props.notification.received_at]); + const renderRightActions = useCallback( + (progress) => { + const opacity = progress.interpolate({ + inputRange: [0, 1], + outputRange: [0, 1], + }); + return ( + e} + style={[styles.rightActionsContainer.static, { opacity }]} + > + {app && ( + <> + + + + )} + + + ); + }, + [app, handleDelete, handleOpenSettings], + ); const handleOpenInWebView = useCallback(() => { if (!props.notification.link) { @@ -122,8 +142,24 @@ export const Notification: React.FC = (props) => { openDAppBrowser(props.notification.link); }, [props.notification.link]); + const handleCloseOtherSwipeables = useCallback(() => { + if (!props.closeOtherSwipeable) { + return; + } + if (props.closeOtherSwipeable.current) { + props.closeOtherSwipeable.current?.(); + } + props.closeOtherSwipeable.current = () => swipeableRef.current?.close(); + }, [props.closeOtherSwipeable]); + return ( - + { const address = useSelector(walletAddressSelector); @@ -31,7 +25,7 @@ export const Notifications: React.FC = () => { const notifications = useNotifications(); const tabBarHeight = useBottomTabBarHeight(); const isSwitchFrozen = useRef(false); - + const obtainProofToken = useObtainProofToken(); const notificationStatus = useNotificationStatus(); const notificationsBadge = useNotificationsBadge(); const shouldEnableNotifications = notificationStatus === NotificationsStatus.DENIED; @@ -93,81 +87,78 @@ export const Notifications: React.FC = () => { const handleSwitchNotifications = React.useCallback( async (value: boolean, url: string, session_id: string | undefined) => { + await obtainProofToken(); const token = await messaging().getToken(); if (value) { return enableNotifications(getChainName(), address.ton, url, session_id, token); } disableNotifications(getChainName(), address.ton, url, token); }, - [disableNotifications, enableNotifications, address], + [obtainProofToken, disableNotifications, address.ton, enableNotifications], ); return ( - <> - {t('notifications_title')} - - - {shouldEnableNotifications && ( - - - - )} - - + + + {shouldEnableNotifications && ( + + - - {connectedApps.length ? ( - <> - - Apps - - - {connectedApps.map((app) => ( - - } - key={app.url} - title={app.name} - disabled={!isSubscribeNotifications} - value={!!app.notificationsEnabled} - onChange={() => - handleSwitchNotifications( - !app.notificationsEnabled, - app.url, - // @ts-ignore - app.connections[0]?.clientSessionId, - ) - } - /> - ))} - - - ) : null} - - - + + )} + + + + {connectedApps.length ? ( + <> + + {t('notifications.apps')} + + + {connectedApps.map((app) => ( + + } + key={app.url} + title={app.name} + disabled={!isSubscribeNotifications} + value={!!app.notificationsEnabled} + onChange={() => + handleSwitchNotifications( + !app.notificationsEnabled, + app.url, + // @ts-ignore + app.connections[0]?.clientSessionId, + ) + } + /> + ))} + + + ) : null} + + ); }; diff --git a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx index e77d59cd6..fde4cfb6e 100644 --- a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx +++ b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx @@ -1,18 +1,32 @@ -import React, { useCallback, useEffect, useMemo } from 'react'; +import React, { useCallback, useEffect, useMemo, useRef } from 'react'; import { Button, Icon, Screen, Text, View } from '$uikit'; import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; import { Notification } from '$core/Notifications/Notification'; import { Steezy } from '$styles'; import { openNotifications } from '$navigation'; +import { t } from '$translation'; +import { INotification } from '$store'; +import { FlashList } from '@shopify/flash-list'; +import { LayoutAnimation } from 'react-native'; export enum ActivityListItem { Notification = 'Notification', Title = 'Title', } + +export function getNewNotificationsCount( + notifications: INotification[], + lastSeenAt: number, +) { + return notifications.findIndex((notification) => notification.received_at < lastSeenAt); +} + export const NotificationsActivity: React.FC = () => { const notifications = useNotificationsStore((state) => state.notifications); const lastSeenAt = useNotificationsStore((state) => state.last_seen); const updateLastSeen = useNotificationsStore((state) => state.actions.updateLastSeen); + const list = useRef | null>(null); + const closeOtherSwipeable = useRef void)>(null); const handleOpenNotificationSettings = useCallback(() => { openNotifications(); @@ -28,16 +42,15 @@ export const NotificationsActivity: React.FC = () => { item: notification, }; }); - const indexToPushTitle = notifications.findIndex( - (notification) => notification.received_at < lastSeenAt, - ); + + const indexToPushTitle = getNewNotificationsCount(notifications, lastSeenAt); // divide notifications into two groups: earlier and not seen before if (![0, -1].includes(indexToPushTitle)) { items.splice(indexToPushTitle, 0, { type: ActivityListItem.Title, id: 'earlier_title', - item: 'Earlier', + item: t('notifications.earlier'), }); } @@ -51,20 +64,34 @@ export const NotificationsActivity: React.FC = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - const renderNotificationsItem = useCallback((props) => { - switch (props.item.type) { - case ActivityListItem.Title: - return ( - - {props.item.item} - - ); - case ActivityListItem.Notification: - return ; - default: - return null; - } - }, []); + const handleRemove = useCallback(() => { + list.current?.prepareForLayoutAnimationRender(); + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); + }, [list]); + + const renderNotificationsItem = useCallback( + (props) => { + switch (props.item.type) { + case ActivityListItem.Title: + return ( + + {props.item.item} + + ); + case ActivityListItem.Notification: + return ( + + ); + default: + return null; + } + }, + [handleRemove], + ); return ( @@ -80,9 +107,11 @@ export const NotificationsActivity: React.FC = () => { title={'Notifications'} /> item.id} renderItem={renderNotificationsItem} + contentContainerStyle={{ paddingBottom: 8 }} data={flashListData} /> diff --git a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx index 547d6e0c3..cef9e9e64 100644 --- a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx +++ b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx @@ -29,12 +29,13 @@ import { t } from '$translation'; import { TonConnectModalProps } from './models'; import { useEffect } from 'react'; import { Modal, useNavigation } from '$libs/navigation'; -import { store, Toast, useConnectedAppsStore, useNotificationsStore } from '$store'; +import { store, Toast, useNotificationsStore } from '$store'; import { openRequireWalletModal, push } from '$navigation'; import { SheetActions } from '$libs/navigation/components/Modal/Sheet/SheetsProvider'; import { mainSelector } from '$store/main'; import { createTonProofForTonkeeper } from '$utils/notificationsproof'; -import { ConnectApi, Configuration } from '@tonkeeper/core'; +import { WalletApi, Configuration } from '@tonkeeper/core'; +import * as SecureStore from 'expo-secure-store'; export const TonConnectModal = (props: TonConnectModalProps) => { const animation = useTonConnectAnimation(); @@ -168,15 +169,15 @@ export const TonConnectModal = (props: TonConnectModalProps) => { ); if (withNotifications) { - const notifications_token = - useNotificationsStore.getState().notifications_token; - if (!notifications_token) { + const proof_token = await SecureStore.getItemAsync('proof_token'); + + if (!proof_token) { const proof = await createTonProofForTonkeeper( address, privateKey, walletStateInit, ); - const connectApi = new ConnectApi( + const walletApi = new WalletApi( new Configuration({ basePath: getServerConfig('tonapiV2Endpoint'), headers: { @@ -187,13 +188,12 @@ export const TonConnectModal = (props: TonConnectModalProps) => { if (proof.error) { return; } - const token = await connectApi.tonConnectProof({ + const token = await walletApi.tonConnectProof({ tonConnectProofRequest: proof, }); - - await useNotificationsStore - .getState() - .actions.setNotificationsToken(token.token); + SecureStore.setItemAsync('proof_token', token.token, { + requireAuthentication: false, + }); } } @@ -341,7 +341,7 @@ export const TonConnectModal = (props: TonConnectModalProps) => { <> diff --git a/packages/mobile/src/hooks/index.ts b/packages/mobile/src/hooks/index.ts index 4a8b5c52c..ecff0d0fa 100644 --- a/packages/mobile/src/hooks/index.ts +++ b/packages/mobile/src/hooks/index.ts @@ -31,3 +31,4 @@ export { useStakingCycle } from './useStakingCycle'; export { useApprovedNfts } from './useApprovedNfts'; export { useShouldShowTokensButton } from './useShouldShowTokensButton'; export { useWebViewBridge } from './jsBridge'; +export { useObtainProofToken } from './useObtainProofToken'; diff --git a/packages/mobile/src/hooks/useObtainProofToken.ts b/packages/mobile/src/hooks/useObtainProofToken.ts new file mode 100644 index 000000000..fa8be680e --- /dev/null +++ b/packages/mobile/src/hooks/useObtainProofToken.ts @@ -0,0 +1,57 @@ +import { useCallback } from 'react'; +import { useSelector } from 'react-redux'; +import { walletWalletSelector } from '$store/wallet'; +import TonWeb from 'tonweb'; +import { createTonProofForTonkeeper } from '$utils/notificationsproof'; +import * as SecureStore from 'expo-secure-store'; +import { Configuration, WalletApi } from '@tonkeeper/core/dist'; +import { getServerConfig } from '$shared/constants'; +import { useUnlockVault } from '$core/ModalContainer/NFTOperations/useUnlockVault'; +import { isTestnetSelector } from '$store/main'; + +export function useObtainProofToken() { + const wallet = useSelector(walletWalletSelector); + const unlockVault = useUnlockVault(); + const isTestnet = useSelector(isTestnetSelector); + + return useCallback(async () => { + try { + const proof_token = await SecureStore.getItemAsync('proof_token'); + if (proof_token) { + return true; + } + const vault = await unlockVault(); + const address = await vault.getTonAddress(isTestnet); + let walletStateInit = ''; + if (wallet) { + const tonWallet = wallet.vault.tonWallet; + const { stateInit } = await tonWallet.createStateInit(); + walletStateInit = TonWeb.utils.bytesToBase64(await stateInit.toBoc(false)); + } + const privateKey = await vault.getTonPrivateKey(); + const proof = await createTonProofForTonkeeper( + address, + privateKey, + walletStateInit, + ); + const walletApi = new WalletApi( + new Configuration({ + basePath: getServerConfig('tonapiV2Endpoint'), + headers: { + Authorization: `Bearer ${getServerConfig('tonApiV2Key')}`, + }, + }), + ); + const token = await walletApi.tonConnectProof({ + tonConnectProofRequest: proof, + }); + SecureStore.setItemAsync('proof_token', token.token, { + requireAuthentication: false, + }); + return true; + } catch (e) { + console.log(e); + return false; + } + }, [isTestnet, unlockVault, wallet]); +} diff --git a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts index 875dd837d..9552d121a 100644 --- a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts +++ b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts @@ -6,6 +6,7 @@ import { IConnectedAppsStore, TonConnectBridgeType } from './types'; import { Tonapi } from '$libs/Tonapi'; import messaging from '@react-native-firebase/messaging'; import { useNotificationsStore } from '$store/zustand'; +import * as SecureStore from 'expo-secure-store'; const initialState: Omit = { connectedApps: { @@ -139,7 +140,7 @@ export const useConnectedAppsStore = create( return { connectedApps }; }); }, - enableNotifications: ( + enableNotifications: async ( chainName, walletAddress, url, @@ -147,7 +148,7 @@ export const useConnectedAppsStore = create( firebase_token, ) => { const fixedUrl = getFixedLastSlashUrl(url); - const token = useNotificationsStore.getState().notifications_token; + const token = await SecureStore.getItemAsync('proof_token'); if (!token) { return; @@ -179,9 +180,9 @@ export const useConnectedAppsStore = create( return { connectedApps }; }); }, - disableNotifications: (chainName, walletAddress, url, firebase_token) => { + disableNotifications: async (chainName, walletAddress, url, firebase_token) => { const fixedUrl = getFixedLastSlashUrl(url); - const token = useNotificationsStore.getState().notifications_token; + const token = await SecureStore.getItemAsync('proof_token'); if (!token) { return; diff --git a/packages/mobile/src/store/zustand/notifications/types.ts b/packages/mobile/src/store/zustand/notifications/types.ts index afb6bfdb3..e40430db4 100644 --- a/packages/mobile/src/store/zustand/notifications/types.ts +++ b/packages/mobile/src/store/zustand/notifications/types.ts @@ -9,13 +9,11 @@ export interface INotification { export interface INotificationsStore { notifications: INotification[]; - notifications_token?: string | null; last_seen: number; actions: { updateLastSeen: () => void; addNotification: (notification: INotification) => void; reset: () => void; deleteNotificationByReceivedAt: (receivedAt: number) => void; - setNotificationsToken: (token: string) => void; }; } diff --git a/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts b/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts index 25a6103b6..6300d4a08 100644 --- a/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts +++ b/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts @@ -6,7 +6,6 @@ import { INotification, INotificationsStore } from './types'; const initialState: Omit = { last_seen: 0, notifications: [], - notifications_token: null, }; export const useNotificationsStore = create( @@ -25,15 +24,14 @@ export const useNotificationsStore = create( (notification) => notification.received_at !== receivedAt, ), })), - setNotificationsToken: (token) => set({ notifications_token: token }), reset: () => set({ last_seen: 0, notifications: [] }), }, }), { name: 'notifications', getStorage: () => AsyncStorage, - partialize: ({ notifications, last_seen, notifications_token }) => - ({ notifications, last_seen, notifications_token } as INotificationsStore), + partialize: ({ notifications, last_seen }) => + ({ notifications, last_seen } as INotificationsStore), }, ), ); diff --git a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx index 05814d96e..9eb1db8fe 100644 --- a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx +++ b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx @@ -1,5 +1,5 @@ import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; -import { RefreshControl } from 'react-native'; +import { LayoutAnimation, RefreshControl } from 'react-native'; import { useDispatch, useSelector } from 'react-redux'; import { useBottomTabBarHeight } from '$hooks/useBottomTabBarHeight'; import { useNetInfo } from '@react-native-community/netinfo'; @@ -17,21 +17,10 @@ import { Text, View, } from '$uikit'; -import { - useAppStateActive, - usePrevious, - useJettonBalances, - useTheme, - useTranslator, -} from '$hooks'; +import { useAppStateActive, usePrevious, useTheme, useTranslator } from '$hooks'; import { walletActions, walletSelector } from '$store/wallet'; import { ns } from '$utils'; -import { - CryptoCurrencies, - NavBarHeight, - SecondaryCryptoCurrencies, - TabletMaxWidth, -} from '$shared/constants'; +import { NavBarHeight, TabletMaxWidth } from '$shared/constants'; import { openNotificationsScreen, openRequireWalletModal } from '$navigation'; import { eventsActions, eventsSelector } from '$store/events'; import { mainActions } from '$store/main'; @@ -42,6 +31,7 @@ import { useNavigation } from '$libs/navigation'; import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; import { Steezy } from '$styles'; import { Notification } from '$core/Notifications/Notification'; +import { getNewNotificationsCount } from '$core/Notifications/NotificationsActivity'; export const ActivityScreen: FC = () => { const nav = useNavigation(); @@ -49,19 +39,18 @@ export const ActivityScreen: FC = () => { const dispatch = useDispatch(); const theme = useTheme(); const tabBarHeight = useBottomTabBarHeight(); - const { currencies, isRefreshing, isLoaded, balances, wallet, oldWalletBalances } = - useSelector(walletSelector); + const { isRefreshing, isLoaded, wallet } = useSelector(walletSelector); const { isLoading: isEventsLoading, eventsInfo, canLoadMore, } = useSelector(eventsSelector); const notifications = useNotificationsStore((state) => state.notifications); + const lastSeenAt = useNotificationsStore((state) => state.last_seen); const netInfo = useNetInfo(); const prevNetInfo = usePrevious(netInfo); - const { enabled: jettonBalances } = useJettonBalances(); const isFocused = useIsFocused(); const isEventsLoadingMore = !isRefreshing && isEventsLoading && !!wallet; @@ -90,31 +79,6 @@ export const ActivityScreen: FC = () => { openNotificationsScreen(); }, []); - const otherCurrencies = useMemo(() => { - const list = [...SecondaryCryptoCurrencies]; - if (wallet && wallet.ton.isLockup()) { - list.unshift(CryptoCurrencies.TonRestricted, CryptoCurrencies.TonLocked); - } - - return list.filter((item) => { - if (item === CryptoCurrencies.Ton) { - return false; - } - - if ( - [CryptoCurrencies.TonLocked, CryptoCurrencies.TonRestricted].indexOf(item) > -1 - ) { - return true; - } - - if (+balances[item] > 0) { - return true; - } - - return currencies.indexOf(item) > -1; - }); - }, [currencies, balances, wallet]); - const initialData = useMemo(() => { const result: { isFirst?: boolean; @@ -133,17 +97,29 @@ export const ActivityScreen: FC = () => { dispatch(eventsActions.loadEvents({ isLoadMore: true })); }, [dispatch, isEventsLoading, canLoadMore]); + const onRemoveNotification = useCallback(() => { + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); + }, []); + const renderNotificationsHeader = useCallback(() => { if (!notifications.length) { return null; } + const newNotificationsCount = getNewNotificationsCount(notifications, lastSeenAt); + return ( - {notifications.slice(0, 2).map((notification) => ( - - ))} + {notifications + .slice(0, Math.min(newNotificationsCount, 2)) + .map((notification) => ( + + ))} { } rightContent={ - notifications.length > 2 && ( + newNotificationsCount > 0 ? ( - {notifications.length} + {newNotificationsCount} - ) + ) : null } onPress={handleOpenNotificationsScreen} - title={'Notifications'} - subtitle={'From connected services'} + title={t('notifications.notifications')} + subtitle={t('notifications.from_connected')} chevron /> ); - }, [notifications]); + }, [notifications, lastSeenAt, handleOpenNotificationsScreen, t, onRemoveNotification]); function renderFooter() { return ( @@ -307,7 +283,8 @@ const styles = Steezy.create(({ colors }) => ({ }, notificationsCount: { backgroundColor: colors.backgroundContentTint, - width: 24, + minWidth: 24, + paddingHorizontal: 7, height: 24, borderRadius: 12, alignItems: 'center', diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index 89661fd1c..451b96ba9 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -828,10 +828,15 @@ }, "notifications": { + "notifications": "Notifications", + "from_connected": "From connected services", "mute_notifications": "Mute notifications", "disconnect_app": "Disconnect %{app_name}", "report": "Report", "muted": "Muted", - "disconnected_app": "Disconnected app" + "disconnected_app": "Disconnected app", + "earlier": "Earlier", + "apps": "Apps", + "allow_notifications": "Allow notifications" } } diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index 12155438a..f73330529 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -846,6 +846,19 @@ "remindLater": "Напомнить позже", "tap": "Нажмите, чтобы обновить", "retry": "Ошибка загрузки. Нажмите, чтобы повторить попытку." + }, + + "notifications": { + "notifications": "Уведомления", + "from_connected": "От ваших приложений", + "mute_notifications": "Отключить уведомления", + "disconnect_app": "Отключить %{app_name}", + "report": "Пожаловаться", + "muted": "Отмена", + "disconnected_app": "Disconnected app", + "earlier": "Ранее", + "apps": "Приложения", + "allow_notifications": "Разрешить уведомления" } } diff --git a/packages/mobile/src/uikit/Checkbox/Checkbox.tsx b/packages/mobile/src/uikit/Checkbox/Checkbox.tsx index 5d2bf0134..4df92f4df 100644 --- a/packages/mobile/src/uikit/Checkbox/Checkbox.tsx +++ b/packages/mobile/src/uikit/Checkbox/Checkbox.tsx @@ -3,6 +3,7 @@ import { Icon } from '$uikit'; import { Steezy } from '$styles'; import Animated, { interpolateColor, + SharedValue, useAnimatedStyle, useSharedValue, withTiming, @@ -14,6 +15,10 @@ export interface CheckboxProps { checked: boolean; onChange: () => void; disabled?: boolean; + /* + Used to change opacity when user press on ListItem + */ + isPressedListItem?: SharedValue; } const STouchableOpacity = Steezy.withStyle(TouchableOpacity); @@ -38,6 +43,14 @@ const Checkbox: React.FC = (props) => { }; }); + const opacityStyle = useAnimatedStyle(() => { + return { + opacity: withTiming(props.isPressedListItem?.value ? 0.6 : 1, { + duration: 50, + }), + }; + }, [props.isPressedListItem]); + const iconStyle = useAnimatedStyle(() => { return { opacity: colorProgress.value, @@ -52,7 +65,7 @@ const Checkbox: React.FC = (props) => { return ( - + diff --git a/packages/mobile/src/uikit/List/ListItem.tsx b/packages/mobile/src/uikit/List/ListItem.tsx index 8f7c0bd25..bba43c827 100644 --- a/packages/mobile/src/uikit/List/ListItem.tsx +++ b/packages/mobile/src/uikit/List/ListItem.tsx @@ -4,7 +4,12 @@ import { Steezy, StyleProp } from '$styles'; import { View, SText, Icon, Pressable } from '$uikit'; import { DarkTheme, TonThemeColor } from '$styled'; import FastImage from 'react-native-fast-image'; -import Animated, { useSharedValue } from 'react-native-reanimated'; +import Animated, { + SharedValue, + useDerivedValue, + useSharedValue, + useAnimatedStyle, +} from 'react-native-reanimated'; import { TouchableHighlight } from 'react-native-gesture-handler'; import { isAndroid } from '$utils'; import { TextProps } from '$uikit/Text/Text'; @@ -21,12 +26,15 @@ export interface ListItemProps { imageStyle?: StyleProp; compact?: boolean; isLast?: boolean; + underlayColor?: string; isFirst?: boolean; disabled?: boolean; titleProps?: TextProps; leftContentStyle?: StyleProp; - disabled?: boolean; - + /* + Shared value that will be updated when user press on ListItem + */ + isPressedSharedValue?: SharedValue; valueStyle?: StyleProp; containerStyle?: StyleProp; @@ -52,6 +60,10 @@ export const ListItem = memo((props) => { isPressed.value = false; }, []); + useDerivedValue(() => { + props.isPressedSharedValue && (props.isPressedSharedValue.value = isPressed.value); + }, [isPressed]); + const leftContent = React.useMemo(() => { if (typeof props.leftContent === 'function') { return props.leftContent(isPressed); @@ -113,7 +125,7 @@ export const ListItem = memo((props) => { return ( ((props) => { const { checked, onChange, onPress } = props; + const isPressedListItem = useSharedValue(false); + const { colors } = useTheme(); + return ( - + } /> From 49ea275152fb1cd647868066d8498e34296951eb Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Thu, 29 Jun 2023 14:06:11 +0300 Subject: [PATCH 35/73] fix(mobile): @tonkeeper/core import --- packages/mobile/src/hooks/useObtainProofToken.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/hooks/useObtainProofToken.ts b/packages/mobile/src/hooks/useObtainProofToken.ts index fa8be680e..a9c2aebbb 100644 --- a/packages/mobile/src/hooks/useObtainProofToken.ts +++ b/packages/mobile/src/hooks/useObtainProofToken.ts @@ -4,7 +4,7 @@ import { walletWalletSelector } from '$store/wallet'; import TonWeb from 'tonweb'; import { createTonProofForTonkeeper } from '$utils/notificationsproof'; import * as SecureStore from 'expo-secure-store'; -import { Configuration, WalletApi } from '@tonkeeper/core/dist'; +import { Configuration, WalletApi } from '@tonkeeper/core'; import { getServerConfig } from '$shared/constants'; import { useUnlockVault } from '$core/ModalContainer/NFTOperations/useUnlockVault'; import { isTestnetSelector } from '$store/main'; From f27411a42729c35e2c14b1a93a44a272239d365b Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 3 Jul 2023 15:39:03 +0400 Subject: [PATCH 36/73] fix: notification fix --- packages/mobile/index.js | 3 +++ packages/mobile/src/core/Notifications/Notification.tsx | 8 +++++--- packages/mobile/src/store/zustand/notifications/types.ts | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/mobile/index.js b/packages/mobile/index.js index d8d36ebf4..fb5cf7044 100644 --- a/packages/mobile/index.js +++ b/packages/mobile/index.js @@ -20,6 +20,7 @@ import { store, useNotificationsStore } from './src/store'; import { getAttachScreenFromStorage } from '$navigation/AttachScreen'; import crashlytics from '@react-native-firebase/crashlytics'; import messaging from '@react-native-firebase/messaging'; +import { delay } from 'redux-saga/effects'; LogBox.ignoreLogs([ 'Non-serializable values were found in the navigation state', @@ -42,6 +43,8 @@ async function handleDappMessage(remoteMessage) { ...remoteMessage.data, received_at: parseInt(remoteMessage.data.sent_at) || Date.now(), }); + await delay(1000); + return; } messaging().setBackgroundMessageHandler(handleDappMessage); diff --git a/packages/mobile/src/core/Notifications/Notification.tsx b/packages/mobile/src/core/Notifications/Notification.tsx index 6495dda3e..e4a0e332e 100644 --- a/packages/mobile/src/core/Notifications/Notification.tsx +++ b/packages/mobile/src/core/Notifications/Notification.tsx @@ -3,7 +3,7 @@ import React, { useCallback, useRef } from 'react'; import { Steezy } from '$styles'; import { INotification } from '$store/zustand/notifications/types'; import { disableNotifications, useConnectedAppsList } from '$store'; -import { format } from '$utils'; +import { format, getDomainFromURL } from '$utils'; import { Swipeable, TouchableOpacity } from 'react-native-gesture-handler'; import { IconProps } from '$uikit/Icon/Icon'; import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; @@ -42,7 +42,9 @@ export const ActionButton: React.FC<{ icon: IconProps['name']; onPress: () => vo export const Notification: React.FC = (props) => { const app = useConnectedAppsList().find( - (app) => app.url === props.notification.dapp_url, + (app) => + props.notification.dapp_url && + getDomainFromURL(app.url) === getDomainFromURL(props.notification.dapp_url), ); const walletAddress = useSelector(walletAddressSelector); const { showActionSheetWithOptions } = useActionSheet(); @@ -172,7 +174,7 @@ export const Notification: React.FC = (props) => { numberOfLines: 4, style: styles.cellTitle.static, }} - title={props.notification.title} + title={props.notification.message} subtitle={subtitle} /> diff --git a/packages/mobile/src/store/zustand/notifications/types.ts b/packages/mobile/src/store/zustand/notifications/types.ts index e40430db4..cd8560c1a 100644 --- a/packages/mobile/src/store/zustand/notifications/types.ts +++ b/packages/mobile/src/store/zustand/notifications/types.ts @@ -1,5 +1,5 @@ export interface INotification { - title: string; + message: string; dapp_url?: string; received_at: number; icon_url?: string; From 128a3cdd34e9e70ab7207f99c135f8daa0f114f8 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 3 Jul 2023 19:56:08 +0400 Subject: [PATCH 37/73] fix: store token approval addresses in raw format --- .../core/ManageTokens/hooks/useNftData.tsx | 14 ++++------ packages/mobile/src/hooks/useApprovedNfts.ts | 7 +++-- .../mobile/src/hooks/useJettonBalances.ts | 11 +++----- .../store/zustand/tokenApproval/helpers.ts | 1 - .../tokenApproval/useTokenApprovalStore.ts | 27 ++++++++++++++----- 5 files changed, 32 insertions(+), 28 deletions(-) diff --git a/packages/mobile/src/core/ManageTokens/hooks/useNftData.tsx b/packages/mobile/src/core/ManageTokens/hooks/useNftData.tsx index c0a7f0143..e7222fda2 100644 --- a/packages/mobile/src/core/ManageTokens/hooks/useNftData.tsx +++ b/packages/mobile/src/core/ManageTokens/hooks/useNftData.tsx @@ -24,7 +24,7 @@ const baseNftCellData = (nft: NFTModel) => ({ borderRadius: 8, }, subtitle: nft.collection - ? t('approval.token_count', { count: nft.count }) + ? t('approval.token_count', { count: (nft as any).count }) : t('approval.single_token'), onPress: () => openApproveTokenModal({ @@ -35,7 +35,7 @@ const baseNftCellData = (nft: NFTModel) => ({ verification: nft.isApproved ? JettonVerification.WHITELIST : JettonVerification.NONE, - tokenAddress: nft.collection?.address || new Address(nft.address).toString(false), + tokenAddress: nft.collection?.address || nft.address, image: nft.content.image.baseUrl, name: nft.collection?.name, }), @@ -79,9 +79,7 @@ export function useNftData() { onPress={() => approveAll( pending.map((nft) => ({ - address: new Address(nft.collection?.address || nft.address).toString( - false, - ), + address: nft.collection?.address || nft.address, isCollection: !!nft.collection?.address, })), ) @@ -136,8 +134,7 @@ export function useNftData() { type="remove" onPress={() => updateTokenStatus( - nft.collection?.address || - new Address(nft.address).toString(false), + nft.collection?.address || nft.address, TokenApprovalStatus.Declined, nft.collection?.address ? TokenApprovalType.Collection @@ -188,8 +185,7 @@ export function useNftData() { type="add" onPress={() => updateTokenStatus( - nft.collection?.address || - new Address(nft.address).toString(false), + nft.collection?.address || nft.address, TokenApprovalStatus.Approved, nft.collection?.address ? TokenApprovalType.Collection diff --git a/packages/mobile/src/hooks/useApprovedNfts.ts b/packages/mobile/src/hooks/useApprovedNfts.ts index ada1e9911..2fd2b1a1f 100644 --- a/packages/mobile/src/hooks/useApprovedNfts.ts +++ b/packages/mobile/src/hooks/useApprovedNfts.ts @@ -21,10 +21,9 @@ export function useApprovedNfts() { disabled: [], }; Object.values(myNfts).forEach((item) => { - const approvalStatus = - approvalStatuses[ - item?.collection?.address || new Address(item.address).toString(false) - ]; + const rawAddress = + item?.collection?.address || new Address(item.address).toString(false); + const approvalStatus = approvalStatuses[rawAddress]; if ( (item.isApproved && !approvalStatus) || approvalStatus?.current === TokenApprovalStatus.Approved diff --git a/packages/mobile/src/hooks/useJettonBalances.ts b/packages/mobile/src/hooks/useJettonBalances.ts index e1dd00d32..a4a18a570 100644 --- a/packages/mobile/src/hooks/useJettonBalances.ts +++ b/packages/mobile/src/hooks/useJettonBalances.ts @@ -1,8 +1,4 @@ -import { - excludedJettonsSelector, - jettonsBalancesSelector, - sortedJettonsSelector, -} from '$store/jettons'; +import { jettonsBalancesSelector, sortedJettonsSelector } from '$store/jettons'; import { JettonBalanceModel, JettonVerification } from '$store/models'; import { useMemo } from 'react'; import { useSelector } from 'react-redux'; @@ -10,7 +6,6 @@ import { walletWalletSelector } from '$store/wallet'; import { Address } from '$libs/Ton'; import { useTokenApprovalStore } from '$store/zustand/tokenApproval/useTokenApprovalStore'; import { TokenApprovalStatus } from '$store/zustand/tokenApproval/types'; -import { DevFeature, useDevFeatureEnabled } from '$store'; export interface IBalances { pending: JettonBalanceModel[]; @@ -23,7 +18,6 @@ export const useJettonBalances = (withZeroBalances?: boolean) => { const sortedJettons = useSelector(sortedJettonsSelector)[wallet?.vault?.getVersion?.() || '']; const approvalStatuses = useTokenApprovalStore(); - const excludedJettons = useSelector(excludedJettonsSelector); const jettons = useMemo(() => { const balances: IBalances = { @@ -33,7 +27,8 @@ export const useJettonBalances = (withZeroBalances?: boolean) => { }; jettonBalances.forEach((jetton) => { - const approvalStatus = approvalStatuses.tokens[jetton.jettonAddress]; + const jettonAddress = new Address(jetton.jettonAddress).format({ raw: true }); + const approvalStatus = approvalStatuses.tokens[jettonAddress]; const isWhitelisted = jetton.verification === JettonVerification.WHITELIST; const isBlacklisted = jetton.verification === JettonVerification.BLACKLIST; const isEnabled = diff --git a/packages/mobile/src/store/zustand/tokenApproval/helpers.ts b/packages/mobile/src/store/zustand/tokenApproval/helpers.ts index b528769e9..3df9f599d 100644 --- a/packages/mobile/src/store/zustand/tokenApproval/helpers.ts +++ b/packages/mobile/src/store/zustand/tokenApproval/helpers.ts @@ -3,7 +3,6 @@ import { TokenApprovalType, } from '$store/zustand/tokenApproval/types'; import { useTokenApprovalStore } from '$store/zustand/tokenApproval/useTokenApprovalStore'; -import { Address } from '$libs/Ton'; export function approveAll(addresses: { address: string; isCollection?: boolean }[]) { addresses.map((address) => { diff --git a/packages/mobile/src/store/zustand/tokenApproval/useTokenApprovalStore.ts b/packages/mobile/src/store/zustand/tokenApproval/useTokenApprovalStore.ts index facf864d8..be577f65b 100644 --- a/packages/mobile/src/store/zustand/tokenApproval/useTokenApprovalStore.ts +++ b/packages/mobile/src/store/zustand/tokenApproval/useTokenApprovalStore.ts @@ -2,6 +2,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; import { create } from 'zustand'; import { persist } from 'zustand/middleware'; import { ITokenApprovalStore, TokenApprovalStatus, TokenApprovalType } from './types'; +import { Address } from '$libs/Ton'; const initialState: Omit = { tokens: {}, @@ -15,9 +16,9 @@ export const useTokenApprovalStore = create( actions: { removeTokenStatus: (address: string) => { const { tokens } = getState(); - - if (tokens[address]) { - delete tokens[address]; + const rawAddress = new Address(address).format({ raw: true }); + if (tokens[rawAddress]) { + delete tokens[rawAddress]; set({ tokens }); } }, @@ -30,18 +31,19 @@ export const useTokenApprovalStore = create( type: TokenApprovalType, ) => { const { tokens } = getState(); - const token = { ...tokens[address] }; + const rawAddress = new Address(address).format({ raw: true }); + const token = { ...tokens[rawAddress] }; if (token) { token.current = status; token.updated_at = Date.now(); - set({ tokens: { ...tokens, [address]: token } }); + set({ tokens: { ...tokens, [rawAddress]: token } }); } else { set({ tokens: { ...tokens, - [address]: { + [rawAddress]: { type, current: status, updated_at: Date.now(), @@ -58,6 +60,19 @@ export const useTokenApprovalStore = create( getStorage: () => AsyncStorage, partialize: ({ tokens, hasWatchedCollectiblesTab }) => ({ tokens, hasWatchedCollectiblesTab } as ITokenApprovalStore), + version: 2, + migrate: (persistedState) => { + const newState = persistedState as any; + if (!newState?.tokens) { + return newState; + } + newState.tokens = Object.entries(newState.tokens).reduce((acc, [key, value]) => { + const newKey = new Address(key).format({ raw: true }); + acc[newKey] = value; + return acc; + }, {}); + return newState; + }, }, ), ); From af0f848ef9773655841385f06486ea5f0380be8c Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 3 Jul 2023 20:04:08 +0400 Subject: [PATCH 38/73] feature: try to get status for single nft too --- packages/mobile/src/hooks/useApprovedNfts.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/mobile/src/hooks/useApprovedNfts.ts b/packages/mobile/src/hooks/useApprovedNfts.ts index 2fd2b1a1f..188fc8ec1 100644 --- a/packages/mobile/src/hooks/useApprovedNfts.ts +++ b/packages/mobile/src/hooks/useApprovedNfts.ts @@ -21,9 +21,13 @@ export function useApprovedNfts() { disabled: [], }; Object.values(myNfts).forEach((item) => { - const rawAddress = - item?.collection?.address || new Address(item.address).toString(false); - const approvalStatus = approvalStatuses[rawAddress]; + const collectionAddress = item?.collection?.address; + const nftAddress = new Address(item.address).toString(false); + + // get approval status using collection address if it exists, otherwise use nft address + const approvalStatus = + (collectionAddress && approvalStatuses[collectionAddress]) || + approvalStatuses[nftAddress]; if ( (item.isApproved && !approvalStatus) || approvalStatus?.current === TokenApprovalStatus.Approved From 1395b195c94b2b77d9d226de97a94d7489e2ac69 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 3 Jul 2023 20:32:34 +0400 Subject: [PATCH 39/73] feature: approve tokens after sign raw --- .../NFTOperations/Modals/SignRawModal.tsx | 54 +++++++++++-------- .../store/zustand/tokenApproval/selectors.ts | 4 +- 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/packages/mobile/src/core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx b/packages/mobile/src/core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx index ccbe385fb..8f9d59a50 100644 --- a/packages/mobile/src/core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx +++ b/packages/mobile/src/core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx @@ -4,14 +4,7 @@ import { NFTOperationFooter, useNFTOperationState } from '../NFTOperationFooter' import { SignRawParams, TxBodyOptions } from '../TXRequest.types'; import { useUnlockVault } from '../useUnlockVault'; import { NFTOperations } from '../NFTOperations'; -import { - compareAddresses, - debugLog, - delay, - lowerCaseFirstLetter, - ns, - truncateDecimal, -} from '$utils'; +import { compareAddresses, debugLog, delay, lowerCaseFirstLetter, ns } from '$utils'; import { t } from '$translation'; import { AccountEvent, Action, ActionTypeEnum } from 'tonapi-sdk-js'; import { SignRawAction } from './SignRawAction'; @@ -30,6 +23,7 @@ import { import { TonConnectRemoteBridge } from '$tonconnect'; import { formatter } from '$utils/formatter'; import { CryptoCurrencies } from '$shared/constants'; +import { approveAll } from '$store/zustand/tokenApproval/helpers'; interface SignRawModalProps { action: Awaited>; @@ -46,6 +40,35 @@ export const SignRawModal = memo((props) => { const { footerRef, onConfirm } = useNFTOperationState(options); const unlockVault = useUnlockVault(); + const actions = useMemo(() => { + if (!accountEvent || accountEvent?.actions?.[0]?.type === 'Unknown') { + return params.messages.map((message) => ({ + type: 'Unknown', + Unknown: { + address: message.address, + amount: message.amount, + }, + })); + } + + return accountEvent.actions; + }, [accountEvent, params.messages]); + + const tokensToApprove = useMemo(() => { + const tokens = actions + .map((action) => ({ + address: + action[action.type]?.nft?.collection?.address || + action[action.type]?.nft?.address || + action[action.type]?.nft || + action[action.type]?.jetton?.address, + isCollection: !!action[action.type]?.nft?.collection?.address, + })) + .filter((token) => !!token.address); + + return tokens; + }, [actions]); + const handleConfirm = onConfirm(async ({ startLoading }) => { const vault = await unlockVault(); const privateKey = await vault.getTonPrivateKey(); @@ -55,6 +78,7 @@ export const SignRawModal = memo((props) => { await action.send(privateKey, async (boc) => { if (onSuccess) { await delay(1750); + approveAll(tokensToApprove); onSuccess(boc); } @@ -65,20 +89,6 @@ export const SignRawModal = memo((props) => { return !accountEvent; }, [accountEvent]); - const actions = useMemo(() => { - if (!accountEvent || accountEvent?.actions?.[0]?.type === 'Unknown') { - return params.messages.map((message) => ({ - type: 'Unknown', - Unknown: { - address: message.address, - amount: message.amount, - }, - })); - } - - return accountEvent.actions; - }, [accountEvent, params.messages]); - const headerTitle = useMemo(() => { if (actions.length > 1) { return t('txActions.signRaw.title'); diff --git a/packages/mobile/src/store/zustand/tokenApproval/selectors.ts b/packages/mobile/src/store/zustand/tokenApproval/selectors.ts index 319aacfa1..d94e00f0d 100644 --- a/packages/mobile/src/store/zustand/tokenApproval/selectors.ts +++ b/packages/mobile/src/store/zustand/tokenApproval/selectors.ts @@ -1,5 +1,7 @@ import { ITokenApprovalStore } from '$store/zustand/tokenApproval/types'; +import { Address } from '$libs/Ton'; export const getTokenStatus = (state: ITokenApprovalStore, address: string) => { - return state.tokens[address]; + const rawAddress = new Address(address).format({ raw: true }); + return state.tokens[rawAddress]; }; From 956542b5c02b027e0baff59715a4c03080654994 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Tue, 4 Jul 2023 17:01:44 +0400 Subject: [PATCH 40/73] Notification fixes --- packages/mobile/index.js | 19 +++++- packages/mobile/src/core/DevMenu/DevMenu.tsx | 2 +- .../src/core/Notifications/Notification.tsx | 62 +++++++++++-------- .../Notifications/NotificationsActivity.tsx | 2 + .../src/hooks/useNotificationsResolver.ts | 5 ++ packages/mobile/src/store/main/sagas.ts | 2 + packages/mobile/src/store/wallet/sagas.ts | 1 + .../mobile/src/uikit/Checkbox/Checkbox.tsx | 6 +- packages/mobile/src/uikit/List/ListItem.tsx | 2 +- 9 files changed, 70 insertions(+), 31 deletions(-) diff --git a/packages/mobile/index.js b/packages/mobile/index.js index fb5cf7044..2b9c3f240 100644 --- a/packages/mobile/index.js +++ b/packages/mobile/index.js @@ -32,6 +32,10 @@ if (__DEV__) { } async function handleDappMessage(remoteMessage) { + // handle data-only messages + if (remoteMessage.notification?.body) { + return null; + } if ( !['bridge_dapp_notification', 'console_dapp_notification'].includes( remoteMessage.data?.type, @@ -39,11 +43,13 @@ async function handleDappMessage(remoteMessage) { ) { return null; } + + await useNotificationsStore.persist.rehydrate(); useNotificationsStore.getState().actions.addNotification({ ...remoteMessage.data, received_at: parseInt(remoteMessage.data.sent_at) || Date.now(), }); - await delay(1000); + await useNotificationsStore.persist.rehydrate(); return; } @@ -61,4 +67,13 @@ setNativeExceptionHandler((exceptionString) => { store.dispatch(mainActions.init()); -AppRegistry.registerComponent(appName, () => gestureHandlerRootHOC(App)); +function HeadlessCheck({ isHeadless }) { + if (isHeadless) { + // App has been launched in the background by iOS, ignore + return null; + } + + return ; +} + +AppRegistry.registerComponent(appName, () => gestureHandlerRootHOC(HeadlessCheck)); diff --git a/packages/mobile/src/core/DevMenu/DevMenu.tsx b/packages/mobile/src/core/DevMenu/DevMenu.tsx index e94b67153..1274c0d74 100644 --- a/packages/mobile/src/core/DevMenu/DevMenu.tsx +++ b/packages/mobile/src/core/DevMenu/DevMenu.tsx @@ -91,7 +91,7 @@ export const DevMenu: FC = () => { const handlePushNotification = useCallback(() => { addNotification({ - title: 'Test notification added from dev menu', + message: 'Test notification added', dapp_url: 'https://getgems.io', received_at: Date.now(), link: 'https://getgems.io', diff --git a/packages/mobile/src/core/Notifications/Notification.tsx b/packages/mobile/src/core/Notifications/Notification.tsx index e4a0e332e..18f670221 100644 --- a/packages/mobile/src/core/Notifications/Notification.tsx +++ b/packages/mobile/src/core/Notifications/Notification.tsx @@ -21,6 +21,7 @@ interface NotificationProps { notification: INotification; onRemove?: () => void; closeOtherSwipeable?: React.MutableRefObject<(() => void) | null>; + lastSwipeableId?: React.MutableRefObject; } type Options = { @@ -145,45 +146,54 @@ export const Notification: React.FC = (props) => { }, [props.notification.link]); const handleCloseOtherSwipeables = useCallback(() => { - if (!props.closeOtherSwipeable) { + if (!props.closeOtherSwipeable || !props.lastSwipeableId) { return; } - if (props.closeOtherSwipeable.current) { + if ( + props.closeOtherSwipeable.current && + props.lastSwipeableId.current !== props.notification.received_at + ) { props.closeOtherSwipeable.current?.(); } props.closeOtherSwipeable.current = () => swipeableRef.current?.close(); + props.lastSwipeableId.current = props.notification.received_at; }, [props.closeOtherSwipeable]); return ( - - - - - + + + + + + + ); }; const styles = Steezy.create(({ colors }) => ({ listStyle: { + marginBottom: 0, + }, + containerStyle: { marginBottom: 8, }, leftContentStyle: { diff --git a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx index fde4cfb6e..9f031f6a1 100644 --- a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx +++ b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx @@ -27,6 +27,7 @@ export const NotificationsActivity: React.FC = () => { const updateLastSeen = useNotificationsStore((state) => state.actions.updateLastSeen); const list = useRef | null>(null); const closeOtherSwipeable = useRef void)>(null); + const lastSwipeableId = useRef(null); const handleOpenNotificationSettings = useCallback(() => { openNotifications(); @@ -81,6 +82,7 @@ export const NotificationsActivity: React.FC = () => { case ActivityListItem.Notification: return ( { const { isMainStackInited } = useSelector(mainSelector); @@ -27,9 +28,13 @@ export const useNotificationsResolver = () => { ); const deeplink = remoteMessage.data?.deeplink; + const link = remoteMessage.data?.link; + const dapp_url = remoteMessage.data?.dapp_url; if (deeplink) { deeplinking.resolve(deeplink); + } else if (link || dapp_url) { + openDAppBrowser((link || dapp_url) as string); } else { nav.navigate('Balances'); } diff --git a/packages/mobile/src/store/main/sagas.ts b/packages/mobile/src/store/main/sagas.ts index b5f357324..4868c6ab5 100644 --- a/packages/mobile/src/store/main/sagas.ts +++ b/packages/mobile/src/store/main/sagas.ts @@ -65,6 +65,7 @@ import { reloadSubscriptionsFromServer } from '$store/subscriptions/sagas'; import { clearSubscribeStatus } from '$utils/messaging'; import { useJettonEventsStore } from '$store/zustand/jettonEvents'; import { useSwapStore } from '$store/zustand/swap'; +import * as SecureStore from 'expo-secure-store'; SplashScreen.preventAutoHideAsync() .then((result) => @@ -257,6 +258,7 @@ export function* resetAll(isTestnet: boolean) { yield call(JettonsCache.clearAll, getWalletName()); yield call(useJettonEventsStore.getState().actions.clearStore); yield call(useNotificationsStore.getState().actions.reset); + yield call(SecureStore.deleteItemAsync, 'proof_token'); yield put( batchActions( mainActions.resetMain(), diff --git a/packages/mobile/src/store/wallet/sagas.ts b/packages/mobile/src/store/wallet/sagas.ts index a6266642e..22ee3c556 100644 --- a/packages/mobile/src/store/wallet/sagas.ts +++ b/packages/mobile/src/store/wallet/sagas.ts @@ -580,6 +580,7 @@ function* cleanWalletWorker() { yield call(saveHiddenRecentAddresses, []); yield call(useStakingStore.getState().actions.reset); yield call(useNotificationsStore.getState().actions.reset); + yield call(SecureStore.deleteItemAsync, 'proof_token'); yield put( batchActions( diff --git a/packages/mobile/src/uikit/Checkbox/Checkbox.tsx b/packages/mobile/src/uikit/Checkbox/Checkbox.tsx index 4df92f4df..b3a86e6b5 100644 --- a/packages/mobile/src/uikit/Checkbox/Checkbox.tsx +++ b/packages/mobile/src/uikit/Checkbox/Checkbox.tsx @@ -11,6 +11,7 @@ import Animated, { import { useTheme } from '$hooks'; import { useEffect } from 'react'; import { TouchableOpacity } from 'react-native-gesture-handler'; +import { Platform, TouchableOpacity as NTouchableOpacity } from 'react-native'; export interface CheckboxProps { checked: boolean; onChange: () => void; @@ -21,7 +22,10 @@ export interface CheckboxProps { isPressedListItem?: SharedValue; } -const STouchableOpacity = Steezy.withStyle(TouchableOpacity); +const TouchableComponent = + Platform.OS === 'android' ? NTouchableOpacity : TouchableOpacity; + +const STouchableOpacity = Steezy.withStyle(TouchableComponent); const Checkbox: React.FC = (props) => { const { checked, onChange } = props; diff --git a/packages/mobile/src/uikit/List/ListItem.tsx b/packages/mobile/src/uikit/List/ListItem.tsx index bba43c827..df4f2ace6 100644 --- a/packages/mobile/src/uikit/List/ListItem.tsx +++ b/packages/mobile/src/uikit/List/ListItem.tsx @@ -121,7 +121,7 @@ export const ListItem = memo((props) => { )} ); - }, [props.title, compact, props.label, props.subtitle]); + }, [props.title, props.label, props.subtitle, compact, titleProps]); return ( Date: Tue, 4 Jul 2023 17:04:41 +0400 Subject: [PATCH 41/73] Add isHeadless initial prop --- packages/mobile/ios/ton_keeper/Application/AppDelegate.mm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/mobile/ios/ton_keeper/Application/AppDelegate.mm b/packages/mobile/ios/ton_keeper/Application/AppDelegate.mm index 9fa33e45b..aead1d134 100644 --- a/packages/mobile/ios/ton_keeper/Application/AppDelegate.mm +++ b/packages/mobile/ios/ton_keeper/Application/AppDelegate.mm @@ -4,6 +4,7 @@ #import #import // #import "ton_keeper-Swift.h" +#import "RNFBMessagingModule.h" @implementation AppDelegate @@ -23,7 +24,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( // You can add your custom initial props in the dictionary below. // They will be passed down to the ViewController used by React Native. - self.initialProps = @{}; + self.initialProps = [RNFBMessagingModule addCustomPropsToUserProps:nil withLaunchOptions:launchOptions]; return [super application:application didFinishLaunchingWithOptions:launchOptions]; } From 17d288253adb049a2b6f3364426a7418ad0f2b2e Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Tue, 4 Jul 2023 17:44:17 +0400 Subject: [PATCH 42/73] fix: don't reset install state after closing app --- .../store/zustand/updates/useUpdatesStore.ts | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts index b14fbfc19..229de093a 100644 --- a/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts +++ b/packages/mobile/src/store/zustand/updates/useUpdatesStore.ts @@ -22,6 +22,9 @@ export const useUpdatesStore = create( ...initialState, actions: { fetchMeta: async () => { + if (getState().update.state !== UpdateState.NOT_STARTED) { + return; + } set({ isLoading: true }); const oldMeta = getState().meta; const res = await fetch( @@ -39,6 +42,10 @@ export const useUpdatesStore = create( getState().declinedAt < Date.now() - 7 * 24 * 60 * 60 * 1000) ) { set({ shouldUpdate: true, declinedAt: undefined }); + } else { + try { + RNFS.unlink(getUpdatePath()); + } catch (e) {} } }, startUpdate: async () => { @@ -72,8 +79,19 @@ export const useUpdatesStore = create( { name: 'updates', getStorage: () => AsyncStorage, - partialize: ({ isLoading, meta, declinedAt }) => - ({ meta, declinedAt, isLoading } as IUpdatesStore), + partialize: ({ isLoading, update: { state, progress }, meta, declinedAt }) => + ({ + meta, + update: { + progress, + state: + state === UpdateState.DOWNLOADED + ? UpdateState.DOWNLOADED + : UpdateState.NOT_STARTED, + }, + declinedAt, + isLoading, + } as IUpdatesStore), }, ), ); From 663ae1c7e29a109c042add963921fe21a1d7a081 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Tue, 4 Jul 2023 17:51:46 +0400 Subject: [PATCH 43/73] Update index.js --- packages/mobile/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/mobile/index.js b/packages/mobile/index.js index 2b9c3f240..c96b40a53 100644 --- a/packages/mobile/index.js +++ b/packages/mobile/index.js @@ -20,7 +20,6 @@ import { store, useNotificationsStore } from './src/store'; import { getAttachScreenFromStorage } from '$navigation/AttachScreen'; import crashlytics from '@react-native-firebase/crashlytics'; import messaging from '@react-native-firebase/messaging'; -import { delay } from 'redux-saga/effects'; LogBox.ignoreLogs([ 'Non-serializable values were found in the navigation state', From 1c4fc878c0f50fd79b79e4ba1934d959088be449 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 6 Jul 2023 01:14:44 +0400 Subject: [PATCH 44/73] feature: Blur app in 'inactive' state --- packages/mobile/src/core/App.tsx | 2 + .../core/BackgroundBlur/BackgroundBlur.tsx | 65 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 packages/mobile/src/core/BackgroundBlur/BackgroundBlur.tsx diff --git a/packages/mobile/src/core/App.tsx b/packages/mobile/src/core/App.tsx index b94e54e38..34e1c8376 100644 --- a/packages/mobile/src/core/App.tsx +++ b/packages/mobile/src/core/App.tsx @@ -15,6 +15,7 @@ import { QueryClient, QueryClientProvider } from 'react-query'; import { PortalDestination } from '@alexzunik/rn-native-portals-reborn'; import { isAndroid } from '$utils'; import { ActionSheetProvider } from '@expo/react-native-action-sheet'; +import { BackgroundBlur } from '$core/BackgroundBlur/BackgroundBlur'; const TonThemeProvider: FC = ({ children }) => { const accent = useSelector(accentSelector); @@ -49,6 +50,7 @@ export const App: FC = () => { + {isAndroid ? ( { + const state = useAppState(); + const [shouldHideOverlay, setShouldHideOverlay] = React.useState(true); + + useEffect(() => { + if (state === 'active') { + setTimeout(() => setShouldHideOverlay(true), 100); + } else { + setShouldHideOverlay(false); + } + }, [state]); + + const containerStyle = useAnimatedStyle(() => { + return { + position: 'absolute', + top: 0, + bottom: 0, + right: 0, + left: 0, + opacity: withTiming(state === 'active' ? 0 : 1, { duration: 100 }), + }; + }, [state]); + + if (shouldHideOverlay) { + return null; + } + + return ( + + + + + + + ); +}; + +const styles = Steezy.create(({ colors }) => ({ + overlay: { + position: 'absolute', + top: 0, + left: 0, + width: '100%', + }, + // additional color to make blur similar to primary background color + whiteColor: { + top: 0, + bottom: 0, + right: 0, + left: 0, + opacity: 0.32, + position: 'absolute', + backgroundColor: colors.backgroundPrimary, + zIndex: 1000, + }, +})); From ce400b4e44a73d3eb4cdf180eab4de06948a3f6e Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 6 Jul 2023 01:30:14 +0400 Subject: [PATCH 45/73] clear code --- .../core/BackgroundBlur/BackgroundBlur.tsx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/mobile/src/core/BackgroundBlur/BackgroundBlur.tsx b/packages/mobile/src/core/BackgroundBlur/BackgroundBlur.tsx index 70c3e46af..bd72da812 100644 --- a/packages/mobile/src/core/BackgroundBlur/BackgroundBlur.tsx +++ b/packages/mobile/src/core/BackgroundBlur/BackgroundBlur.tsx @@ -1,5 +1,9 @@ import { BlurView } from 'expo-blur'; -import Animated, { useAnimatedStyle, withTiming } from 'react-native-reanimated'; +import Animated, { + useAnimatedStyle, + useSharedValue, + withTiming, +} from 'react-native-reanimated'; import { useAppState } from '$hooks'; import { FullWindowOverlay } from 'react-native-screens'; import { Steezy } from '$styles'; @@ -7,17 +11,22 @@ import { StyleSheet } from 'react-native'; import React, { useEffect } from 'react'; import { View } from '$uikit'; +const ANIMATION_DURATION = 100; + export const BackgroundBlur: React.FC = () => { const state = useAppState(); const [shouldHideOverlay, setShouldHideOverlay] = React.useState(true); + const opacity = useSharedValue(0); useEffect(() => { if (state === 'active') { - setTimeout(() => setShouldHideOverlay(true), 100); + opacity.value = withTiming(0, { duration: ANIMATION_DURATION }); + setTimeout(() => setShouldHideOverlay(true), ANIMATION_DURATION); } else { + opacity.value = withTiming(1, { duration: ANIMATION_DURATION }); setShouldHideOverlay(false); } - }, [state]); + }, [opacity, state]); const containerStyle = useAnimatedStyle(() => { return { @@ -26,9 +35,9 @@ export const BackgroundBlur: React.FC = () => { bottom: 0, right: 0, left: 0, - opacity: withTiming(state === 'active' ? 0 : 1, { duration: 100 }), + opacity: opacity.value, }; - }, [state]); + }, [opacity]); if (shouldHideOverlay) { return null; From 44845320ce006662ef27729bccb48d2da93bda28 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 6 Jul 2023 06:03:18 +0400 Subject: [PATCH 46/73] feature: hidden balances --- packages/mobile/src/core/App.tsx | 5 +- .../core/HideableAmount/HideableAmount.tsx | 62 ++++++++++ .../HideableAmount/HideableAmountProvider.tsx | 25 +++++ .../src/core/HideableAmount/HideableImage.tsx | 72 ++++++++++++ .../src/core/HideableAmount/ShowBalance.tsx | 78 +++++++++++++ .../HideableAmount/useHideableFormatter.tsx | 16 +++ packages/mobile/src/core/Jetton/Jetton.tsx | 25 ++++- .../Action/ActionBase/NFTHead/NFTHead.tsx | 33 +++++- .../ImageWithTitle/ImageWithTitle.style.ts | 21 +++- .../NFT/ImageWithTitle/ImageWithTitle.tsx | 56 ++++++--- packages/mobile/src/core/NFT/NFT.tsx | 15 +-- .../src/core/NFTs/NFTItem/NFTItem.style.ts | 2 +- .../AmountStep/CoinDropdown/CoinDropdown.tsx | 6 +- .../StakingPoolDetails/StakingPoolDetails.tsx | 33 +++--- packages/mobile/src/core/Wallet/Wallet.tsx | 9 +- .../mobile/src/hooks/usePrepareAction.tsx | 47 ++++---- .../src/hooks/usePrepareDetailedAction.tsx | 106 +++++++++--------- .../libs/AmountFormatter/AmountFormatter.ts | 17 ++- .../ActionItemBase/ActionItemBase.tsx | 4 - .../TransactionItemNFT/TransactionItemNFT.tsx | 39 +++++-- .../components/AmountInput/AmountInput.tsx | 5 +- .../StakingListCell/StakingListCell.tsx | 14 ++- .../mobile/src/store/zustand/privacy/types.ts | 6 + .../store/zustand/privacy/usePrivacyStore.ts | 26 +++++ packages/mobile/src/styles/DarkTheme.ts | 1 + .../mobile/src/tabs/Wallet/NFTCardItem.tsx | 46 +++++--- .../mobile/src/tabs/Wallet/WalletScreen.tsx | 6 +- .../tabs/Wallet/components/BalancesList.tsx | 29 ++++- .../mobile/src/uikit/ShowMore/ShowMore.tsx | 14 ++- 29 files changed, 636 insertions(+), 182 deletions(-) create mode 100644 packages/mobile/src/core/HideableAmount/HideableAmount.tsx create mode 100644 packages/mobile/src/core/HideableAmount/HideableAmountProvider.tsx create mode 100644 packages/mobile/src/core/HideableAmount/HideableImage.tsx create mode 100644 packages/mobile/src/core/HideableAmount/ShowBalance.tsx create mode 100644 packages/mobile/src/core/HideableAmount/useHideableFormatter.tsx create mode 100644 packages/mobile/src/store/zustand/privacy/types.ts create mode 100644 packages/mobile/src/store/zustand/privacy/usePrivacyStore.ts diff --git a/packages/mobile/src/core/App.tsx b/packages/mobile/src/core/App.tsx index b94e54e38..7cf64ea93 100644 --- a/packages/mobile/src/core/App.tsx +++ b/packages/mobile/src/core/App.tsx @@ -15,6 +15,7 @@ import { QueryClient, QueryClientProvider } from 'react-query'; import { PortalDestination } from '@alexzunik/rn-native-portals-reborn'; import { isAndroid } from '$utils'; import { ActionSheetProvider } from '@expo/react-native-action-sheet'; +import { HideableAmountProvider } from '$core/HideableAmount/HideableAmountProvider'; const TonThemeProvider: FC = ({ children }) => { const accent = useSelector(accentSelector); @@ -46,7 +47,9 @@ export const App: FC = () => { - + + + {isAndroid ? ( diff --git a/packages/mobile/src/core/HideableAmount/HideableAmount.tsx b/packages/mobile/src/core/HideableAmount/HideableAmount.tsx new file mode 100644 index 000000000..818e42626 --- /dev/null +++ b/packages/mobile/src/core/HideableAmount/HideableAmount.tsx @@ -0,0 +1,62 @@ +import React, { useContext } from 'react'; +import { Text } from '$uikit'; +import { TextProps } from '$uikit/Text/Text'; +import Animated, { interpolate, useAnimatedStyle } from 'react-native-reanimated'; +import { Steezy } from '$styles'; +import { HideableAmountContext } from '$core/HideableAmount/HideableAmountProvider'; + +const HideableAmountComponent: React.FC = ({ + children, + style, + stars = '* * *', + ...rest +}) => { + const animationProgress = useContext(HideableAmountContext); + + const amountStyle = useAnimatedStyle(() => { + return { + display: animationProgress.value < 0.5 ? 'flex' : 'none', + opacity: interpolate(animationProgress.value, [0, 0.5], [1, 0]), + transform: [ + { + translateX: interpolate(animationProgress.value, [0, 0.5], [0, 10]), + }, + { + scale: interpolate(animationProgress.value, [0, 0.5], [1, 0.85]), + }, + ], + }; + }); + + const starsStyle = useAnimatedStyle(() => { + return { + display: animationProgress.value > 0.5 ? 'flex' : 'none', + opacity: interpolate(animationProgress.value, [1, 0.5], [1, 0]), + transform: [ + { + translateX: interpolate(animationProgress.value, [1, 0.5], [0, 10]), + }, + { + scale: interpolate(animationProgress.value, [1, 0.5], [1, 0.85]), + }, + ], + }; + }); + + return ( + + + {children} + + + {stars} + + + ); +}; + +export const HideableAmount = React.memo(HideableAmountComponent); + +const styles = Steezy.create({ + stars: {}, +}); diff --git a/packages/mobile/src/core/HideableAmount/HideableAmountProvider.tsx b/packages/mobile/src/core/HideableAmount/HideableAmountProvider.tsx new file mode 100644 index 000000000..5f9062505 --- /dev/null +++ b/packages/mobile/src/core/HideableAmount/HideableAmountProvider.tsx @@ -0,0 +1,25 @@ +import { createContext, ReactNode } from 'react'; +import { SharedValue, useSharedValue, withTiming } from 'react-native-reanimated'; +import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; + +// @ts-ignore +export const HideableAmountContext = createContext>(null); + +const ANIMATION_DURATION = 300; + +export const HideableAmountProvider: React.FC<{ children: ReactNode }> = ({ + children, +}) => { + const isHidden = usePrivacyStore((state) => state.hiddenAmounts); + const animationProgress = useSharedValue(isHidden ? 1 : 0); + + animationProgress.value = withTiming(isHidden ? 1 : 0, { + duration: ANIMATION_DURATION, + }); + + return ( + + {children} + + ); +}; diff --git a/packages/mobile/src/core/HideableAmount/HideableImage.tsx b/packages/mobile/src/core/HideableAmount/HideableImage.tsx new file mode 100644 index 000000000..91a42363b --- /dev/null +++ b/packages/mobile/src/core/HideableAmount/HideableImage.tsx @@ -0,0 +1,72 @@ +import { StyleProp, ViewStyle, StyleSheet, ImageStyle } from 'react-native'; +import React, { memo, ReactNode, useContext } from 'react'; +import { HideableAmountContext } from '$core/HideableAmount/HideableAmountProvider'; +import { useAnimatedStyle } from 'react-native-reanimated'; +import { View } from '$uikit'; +import Animated from 'react-native-reanimated'; +import { Steezy } from '$styles'; +import { BlurView } from 'expo-blur'; +import FastImage from 'react-native-fast-image'; + +export interface HideableImageProps { + uri?: string; + style?: StyleProp; + imageStyle?: StyleProp; + children?: ReactNode; + image?: ReactNode; +} + +const HideableImageComponent: React.FC = ({ + uri, + style, + children, + imageStyle, + image, +}) => { + const animationProgress = useContext(HideableAmountContext); + const blurContainerStyle = useAnimatedStyle(() => { + return { + opacity: animationProgress.value, + }; + }, []); + + return ( + + + + + {image ?? ( + + {children} + + )} + + ); +}; + +export const HideableImage = memo(HideableImageComponent); + +const styles = Steezy.create(({ colors, corners }) => ({ + blur: { + zIndex: 3, + overflow: 'hidden', + }, + image: { + zIndex: 2, + width: '100%', + height: '100%', + }, +})); diff --git a/packages/mobile/src/core/HideableAmount/ShowBalance.tsx b/packages/mobile/src/core/HideableAmount/ShowBalance.tsx new file mode 100644 index 000000000..2d783f3a9 --- /dev/null +++ b/packages/mobile/src/core/HideableAmount/ShowBalance.tsx @@ -0,0 +1,78 @@ +import React, { useCallback, useContext } from 'react'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; +import { TouchableHighlight, TouchableOpacity } from 'react-native-gesture-handler'; +import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; +import { HideableAmountContext } from '$core/HideableAmount/HideableAmountProvider'; +import Animated, { + Extrapolation, + interpolate, + interpolateColor, + useAnimatedStyle, +} from 'react-native-reanimated'; +import { Steezy } from '$styles'; +import { Highlight, Pressable, View } from '$uikit'; +import { useTheme } from '$hooks'; +import { isAndroid } from '$utils'; +import { DarkTheme } from '$styled'; + +const TouchableComponent = isAndroid ? Pressable : TouchableHighlight; + +export const ShowBalance: React.FC<{ amount: string }> = ({ amount }) => { + const hideAmounts = usePrivacyStore((state) => state.actions.toggleHiddenAmounts); + const animationProgress = useContext(HideableAmountContext); + const { colors } = useTheme(); + + const handleToggleHideAmounts = useCallback(() => { + hideAmounts(); + }, [hideAmounts]); + + const touchableOpacityStyle = useAnimatedStyle(() => { + return { + display: animationProgress.value < 0.5 ? 'flex' : 'none', + }; + }, []); + + const pressableStyle = useAnimatedStyle(() => { + return { + backgroundColor: colors.backgroundSecondary, + display: animationProgress.value >= 0.5 ? 'flex' : 'none', + }; + }, []); + + return ( + + + + {amount} + + + + + + {amount} + + + + + ); +}; + +const styles = Steezy.create({ + container: { + height: 36, + }, + starsContainer: { + borderRadius: 100, + }, + touchable: { + paddingHorizontal: 16, + borderRadius: 100, + }, + stars: { + paddingTop: 5.5, + }, +}); diff --git a/packages/mobile/src/core/HideableAmount/useHideableFormatter.tsx b/packages/mobile/src/core/HideableAmount/useHideableFormatter.tsx new file mode 100644 index 000000000..994ea18e0 --- /dev/null +++ b/packages/mobile/src/core/HideableAmount/useHideableFormatter.tsx @@ -0,0 +1,16 @@ +import { formatter } from '$utils/formatter'; +import { useCallback } from 'react'; +import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; +import { AmountFormatOptions, AmountNumber } from '$libs/AmountFormatter'; + +export const useHideableFormatter = (countOfStars = 3) => { + const isHidden = usePrivacyStore((state) => state.hiddenAmounts); + + const format = useCallback( + (amount: AmountNumber = 0, options: AmountFormatOptions = {}) => { + return !isHidden ? formatter.format(amount, options) : '*'.repeat(countOfStars); + }, + [countOfStars, isHidden], + ); + return format; +}; diff --git a/packages/mobile/src/core/Jetton/Jetton.tsx b/packages/mobile/src/core/Jetton/Jetton.tsx index e74118c4c..c0cd6dfab 100644 --- a/packages/mobile/src/core/Jetton/Jetton.tsx +++ b/packages/mobile/src/core/Jetton/Jetton.tsx @@ -29,6 +29,7 @@ import { useNavigation } from '$libs/navigation'; import { useSwapStore } from '$store/zustand/swap'; import { shallow } from 'zustand/shallow'; import { useFlags } from '$utils/flags'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; export const Jetton: React.FC = ({ route }) => { const theme = useTheme(); @@ -74,16 +75,20 @@ export const Jetton: React.FC = ({ route }) => { - + {formatter.format(jetton.balance, { decimals: jetton.metadata.decimals, currency: jetton.metadata.symbol, currencySeparator: 'wide', })} - - + + {total || t('jetton_token')} - + {price ? ( {t('jetton_price')} {price} @@ -117,7 +122,17 @@ export const Jetton: React.FC = ({ route }) => { ); - }, [jetton, total, t, price, handleSend, handleReceive, showSwap, handlePressSwap]); + }, [ + jetton, + total, + t, + price, + handleSend, + handleReceive, + showSwap, + flags.disable_swap, + handlePressSwap, + ]); const renderFooter = useCallback(() => { if (Object.values(events).length === 0 && isLoading) { diff --git a/packages/mobile/src/core/ModalContainer/Action/ActionBase/NFTHead/NFTHead.tsx b/packages/mobile/src/core/ModalContainer/Action/ActionBase/NFTHead/NFTHead.tsx index 3c2f9c1f0..ce8a9917c 100644 --- a/packages/mobile/src/core/ModalContainer/Action/ActionBase/NFTHead/NFTHead.tsx +++ b/packages/mobile/src/core/ModalContainer/Action/ActionBase/NFTHead/NFTHead.tsx @@ -7,6 +7,10 @@ import { Icon, Text } from '$uikit'; import _ from 'lodash'; import { openNFT } from '$navigation'; import { dnsToUsername } from '$utils/dnsToUsername'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; +import { HideableImage } from '$core/HideableAmount/HideableImage'; +import { Steezy } from '$styles'; +import { DARK_COLORS, RADIUS } from '$styled'; export const NFTHead: React.FC<{ keyPair: NFTKeyPair }> = ({ keyPair }) => { const t = useTranslator(); @@ -27,20 +31,24 @@ export const NFTHead: React.FC<{ keyPair: NFTKeyPair }> = ({ keyPair }) => { {isDNS ? : null} {!isDNS && nft?.content?.image?.baseUrl ? ( - + ) : null} - + {isTG ? dnsToUsername(nft.dns) : nft.dns || nft.name || t('nft_transaction_head_placeholder')} - + {nft?.collection?.name ? ( - + {isDNS ? 'TON DNS' : nft.collection.name} - + {nft?.isApproved ? ( ) : null} @@ -49,3 +57,18 @@ export const NFTHead: React.FC<{ keyPair: NFTKeyPair }> = ({ keyPair }) => { ); }; + +const styles = Steezy.create({ + imageContainer: { + marginTop: 16, + zIndex: 2, + height: 96, + width: 96, + backgroundColor: DARK_COLORS.backgroundTertiary, + marginBottom: 20, + borderRadius: RADIUS.large, + }, + image: { + borderRadius: RADIUS.large, + }, +}); diff --git a/packages/mobile/src/core/NFT/ImageWithTitle/ImageWithTitle.style.ts b/packages/mobile/src/core/NFT/ImageWithTitle/ImageWithTitle.style.ts index 681c22153..acc9c54c1 100644 --- a/packages/mobile/src/core/NFT/ImageWithTitle/ImageWithTitle.style.ts +++ b/packages/mobile/src/core/NFT/ImageWithTitle/ImageWithTitle.style.ts @@ -11,8 +11,7 @@ export const Wrap = styled(Animated.View)` margin-bottom: ${ns(16)}px; `; -export const BadgeWrap = styled.View` -`; +export const BadgeWrap = styled.View``; export const MediaContainer = styled.View<{ height: number }>` z-index: 2; @@ -33,14 +32,28 @@ export const Image = styled(FastImage).attrs({ export const Lottie = styled(LottieView).attrs({ resizeMode: 'cover', })` - flex: 1; + top: 0; + left: 0; + right: 0; + bottom: 0; + position: absolute; + z-index: 2; + width: 100%; + height: 100%; `; export const Video = styled(RNVideo).attrs({ resizeMode: 'cover', posterResizeMode: 'cover', })` - flex: 1; + top: 0; + left: 0; + right: 0; + bottom: 0; + position: absolute; + z-index: 1; + height: 100%; + width: 100%; `; export const TextWrap = styled.View` diff --git a/packages/mobile/src/core/NFT/ImageWithTitle/ImageWithTitle.tsx b/packages/mobile/src/core/NFT/ImageWithTitle/ImageWithTitle.tsx index 2330ee8d0..ab0f87cdd 100644 --- a/packages/mobile/src/core/NFT/ImageWithTitle/ImageWithTitle.tsx +++ b/packages/mobile/src/core/NFT/ImageWithTitle/ImageWithTitle.tsx @@ -6,6 +6,9 @@ import { useTranslator } from '$hooks'; import { isIOS, ns } from '$utils'; import Clipboard from '@react-native-community/clipboard'; import { Toast } from '$store'; +import { HideableImage } from '$core/HideableAmount/HideableImage'; +import { Steezy } from '$styles'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; export const ImageWithTitle: React.FC = ({ uri, @@ -33,30 +36,39 @@ export const ImageWithTitle: React.FC = ({ // TODO: remove that workaround then lottie on ios is fixed if (lottieUri && !isIOS) { return ( - + } /> ); } if (videoUri) { return ( - + } /> ); } if (uri) { - return ; + return ; } return null; @@ -78,19 +90,23 @@ export const ImageWithTitle: React.FC = ({ {title ? ( - + {title} - + {isOnSale ? {t('nft_on_sale').toUpperCase()} : null} ) : null} - + {collection == null ? t('nft_single_nft') : collection || t('nft_unnamed_collection')} - + {isVerified && } @@ -104,3 +120,9 @@ export const ImageWithTitle: React.FC = ({ ); }; + +const styles = Steezy.create({ + image: { + flex: 1, + }, +}); diff --git a/packages/mobile/src/core/NFT/NFT.tsx b/packages/mobile/src/core/NFT/NFT.tsx index f71d4cd96..2ad03fade 100644 --- a/packages/mobile/src/core/NFT/NFT.tsx +++ b/packages/mobile/src/core/NFT/NFT.tsx @@ -35,10 +35,11 @@ import { RenewDomainButton, RenewDomainButtonRef } from './RenewDomainButton'; import { Tonapi } from '$libs/Tonapi'; import { Toast } from '$store'; import { useExpiringDomains } from '$store/zustand/domains/useExpiringDomains'; +import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; export const NFT: React.FC = ({ route }) => { const flags = useFlags(['disable_nft_markets', 'disable_apperance']); - + const hiddenAmounts = usePrivacyStore((state) => state.hiddenAmounts); const dispatch = useDispatch(); const nav = useNavigation(); const address = useSelector(walletAddressSelector); @@ -85,9 +86,9 @@ export const NFT: React.FC = ({ route }) => { setExpiringAt(timeInMilisec + ONE_YEAR_MILISEC); setLastFill(timeInMilisec); renewDomainButtonRef.current?.renewUpdated(); - Toast.show(t('dns_renew_toast_success')) + Toast.show(t('dns_renew_toast_success')); expiringDomains.remove(nft.address); - + clearInterval(timer); } }, 5000); @@ -167,7 +168,7 @@ export const NFT: React.FC = ({ route }) => { scrollTop={scrollTop} titleProps={{ numberOfLines: 1 }} > - {title} + {hiddenAmounts ? '* * * *' : title} = ({ route }) => { title={(!isTG && nft.dns) || nft.name} collection={isDNS ? 'TON DNS' : nft.collection?.name} isVerified={isDNS || nft.isApproved} - description={nft.description} + description={!hiddenAmounts ? nft.description : '* * *'} isOnSale={isOnSale} bottom={ isTG ? ( @@ -210,7 +211,7 @@ export const NFT: React.FC = ({ route }) => { } /> ) : null} - {nft.collection ? ( + {!hiddenAmounts && nft.collection ? ( = ({ route }) => { ) : null} - + {!hiddenAmounts && }
` flex-direction: row; align-items: center; padding-right: ${({ withIcon }) => (!withIcon ? 0 : ns(12))}px; -`; \ No newline at end of file +`; diff --git a/packages/mobile/src/core/Send/steps/AmountStep/CoinDropdown/CoinDropdown.tsx b/packages/mobile/src/core/Send/steps/AmountStep/CoinDropdown/CoinDropdown.tsx index 207368ead..4f7de0b65 100644 --- a/packages/mobile/src/core/Send/steps/AmountStep/CoinDropdown/CoinDropdown.tsx +++ b/packages/mobile/src/core/Send/steps/AmountStep/CoinDropdown/CoinDropdown.tsx @@ -1,5 +1,4 @@ import { useJettonBalances } from '$hooks'; -import { AmountInputRef } from '$shared/components'; import { CryptoCurrencies, CryptoCurrency, @@ -11,9 +10,9 @@ import { walletSelector } from '$store/wallet'; import { Steezy } from '$styles'; import { CurrencyIcon, Highlight, Icon, PopupSelect, Spacer, Text, View } from '$uikit'; import { ns } from '$utils'; -import { formatter } from '$utils/formatter'; import React, { FC, memo, useMemo } from 'react'; import { useSelector } from 'react-redux'; +import { useHideableFormatter } from '$core/HideableAmount/useHideableFormatter'; type CoinItem = | { isJetton: false; currency: string; balance: string; decimals: number } @@ -37,6 +36,7 @@ const CoinDropdownComponent: FC = (props) => { const { currencies, balances } = useSelector(walletSelector); const { enabled: jettons } = useJettonBalances(); + const format = useHideableFormatter(); const coins = useMemo((): CoinItem[] => { const list = [ @@ -109,7 +109,7 @@ const CoinDropdownComponent: FC = (props) => { : item.currency.toUpperCase()} {' '} - {formatter.format(item.balance)} + {format(item.balance)} )} diff --git a/packages/mobile/src/core/StakingPoolDetails/StakingPoolDetails.tsx b/packages/mobile/src/core/StakingPoolDetails/StakingPoolDetails.tsx index 4e27ba3aa..21015e40f 100644 --- a/packages/mobile/src/core/StakingPoolDetails/StakingPoolDetails.tsx +++ b/packages/mobile/src/core/StakingPoolDetails/StakingPoolDetails.tsx @@ -12,6 +12,7 @@ import { RefreshControl } from 'react-native-gesture-handler'; import Animated from 'react-native-reanimated'; import { shallow } from 'zustand/shallow'; import * as S from './StakingPoolDetails.style'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; interface Props { route: RouteProp; @@ -79,12 +80,12 @@ export const StakingPoolDetails: FC = (props) => { {t('staking.details.balance')} - + {stakingFormatter.format(balance.amount)} TON - - + + {balance.fiatInfo.amount} - + @@ -93,12 +94,12 @@ export const StakingPoolDetails: FC = (props) => { {t('staking.details.pendingDeposit')} - + {stakingFormatter.format(pendingDeposit.amount)} TON - - + + {pendingDeposit.fiatInfo.amount} - + @@ -109,12 +110,12 @@ export const StakingPoolDetails: FC = (props) => { {t('staking.details.pendingWithdraw')} - + {stakingFormatter.format(pendingWithdraw.amount)} TON - - + + {pendingWithdraw.fiatInfo.amount} - + @@ -135,12 +136,12 @@ export const StakingPoolDetails: FC = (props) => { - + {stakingFormatter.format(readyWithdraw.amount)} TON - - + + {readyWithdraw.fiatInfo.amount} - + diff --git a/packages/mobile/src/core/Wallet/Wallet.tsx b/packages/mobile/src/core/Wallet/Wallet.tsx index 23ac6d806..8aa969b97 100644 --- a/packages/mobile/src/core/Wallet/Wallet.tsx +++ b/packages/mobile/src/core/Wallet/Wallet.tsx @@ -41,6 +41,7 @@ import { groupAndFilterTonActivityItems } from '$utils/transactions'; import { formatter } from '$utils/formatter'; import { Toast } from '$store'; import { useFlags } from '$utils/flags'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; const exploreActions = [ { @@ -241,20 +242,20 @@ export const Wallet: FC = ({ route }) => { - + {formatter.format(amount, { currency: currencyUpper, currencySeparator: 'wide', decimals: Decimals[currency]!, })} - - + {formattedFiatAmount} - + diff --git a/packages/mobile/src/hooks/usePrepareAction.tsx b/packages/mobile/src/hooks/usePrepareAction.tsx index 0f8391aa9..c19bd031c 100644 --- a/packages/mobile/src/hooks/usePrepareAction.tsx +++ b/packages/mobile/src/hooks/usePrepareAction.tsx @@ -4,14 +4,19 @@ import { ActionItemBaseProps } from '$shared/components/ActionItem/ActionItemBas import TonWeb from 'tonweb'; import { useSelector } from 'react-redux'; import { walletSelector } from '$store/wallet'; -import { compareAddresses, format, fromNano, maskifyTonAddress } from '$utils'; +import { + compareAddresses, + format as formatDate, + fromNano, + maskifyTonAddress, +} from '$utils'; import { useTranslator } from '$hooks/useTranslator'; import { formatCryptoCurrency } from '$utils/currency'; import { CryptoCurrencies, Decimals } from '$shared/constants'; import { TransactionItemNFT } from '$shared/components/ActionItem/TransactionItemNFT/TransactionItemNFT'; import { subscriptionsSelector } from '$store/subscriptions'; import { Action } from 'tonapi-sdk-js'; -import { formatter } from '$utils/formatter'; +import { useHideableFormatter } from '$core/HideableAmount/useHideableFormatter'; export function usePrepareAction( rawAction: Action, @@ -20,6 +25,7 @@ export function usePrepareAction( const { address } = useSelector(walletSelector); const t = useTranslator(); const { subscriptionsInfo } = useSelector(subscriptionsSelector); + const format = useHideableFormatter(); return useMemo(() => { const action = rawAction[ActionType[rawAction.type]]; @@ -48,20 +54,16 @@ export function usePrepareAction( let label; let type; let typeLabel; - let currency; let bottomContent; if (ActionType.TonTransfer === ActionType[rawAction.type]) { const amount = TonWeb.utils.fromNano(Math.abs(action.amount).toString()); - label = prefix + ' ' + formatter.format(amount.toString()); + label = format(amount.toString(), { + prefix: `${prefix} `, + currencySeparator: 'wide', + currency: CryptoCurrencies.Ton.toLocaleUpperCase(), + }); type = isReceive ? 'receive' : 'sent'; typeLabel = t(`transaction_type_${type}`); - currency = formatCryptoCurrency( - '', - CryptoCurrencies.Ton, - Decimals[CryptoCurrencies.Ton], - undefined, - true, - ).trim(); } if (ActionType.NftItemTransfer === ActionType[rawAction.type]) { @@ -78,16 +80,13 @@ export function usePrepareAction( if (ActionType.JettonTransfer === ActionType[rawAction.type]) { const amount = fromNano(action.amount, action.jetton?.decimals ?? 9); - label = prefix + ' ' + formatter.format(amount.toString()); + label = format(amount.toString(), { + prefix: `${prefix} `, + currencySeparator: 'wide', + currency: action.jetton?.symbol, + }); type = isReceive ? 'receive' : 'sent'; typeLabel = t(`transaction_type_${type}`); - currency = formatCryptoCurrency( - '', - action.jetton?.symbol, - Decimals[CryptoCurrencies.Ton], - undefined, - true, - ).trim(); } if ( @@ -108,7 +107,7 @@ export function usePrepareAction( ? t('transaction_type_subscription') : t('transaction_type_unsubscription'); } - label = isSubscription ? prefix + ' ' + formatter.format(amount.toString()) : '-'; + label = isSubscription ? prefix + ' ' + format(amount.toString()) : '-'; type = isSubscription ? 'subscription' : 'unsubscription'; currency = isSubscription ? formatCryptoCurrency( @@ -123,7 +122,7 @@ export function usePrepareAction( if (ActionType.AuctionBid === ActionType[rawAction.type]) { const amount = TonWeb.utils.fromNano(Math.abs(action.amount.value).toString()); - label = prefix + ' ' + formatter.format(amount.toString()); + label = prefix + ' ' + format(amount.toString()); typeLabel = t('transaction_type_bid'); type = action.auctionType === 'DNS.tg' ? 'tg_dns' : 'sent'; currency = formatCryptoCurrency( @@ -150,7 +149,6 @@ export function usePrepareAction( type, typeLabel, label, - currency, labelColor, bottomContent, infoRows: [], @@ -160,7 +158,7 @@ export function usePrepareAction( }; const transactionDate = new Date(event.timestamp * 1000); - let formattedDate = format(transactionDate, 'HH:mm'); + let formattedDate = formatDate(transactionDate, 'HH:mm'); const accountToDisplay = isReceive ? action.sender : action.recipient; if ( @@ -207,9 +205,10 @@ export function usePrepareAction( }, [ rawAction, address.ton, - event.inProgress, event.isScam, + event.inProgress, event.timestamp, + format, t, subscriptionsInfo, ]) as ActionItemBaseProps; diff --git a/packages/mobile/src/hooks/usePrepareDetailedAction.tsx b/packages/mobile/src/hooks/usePrepareDetailedAction.tsx index 981a11953..f68d4e847 100644 --- a/packages/mobile/src/hooks/usePrepareDetailedAction.tsx +++ b/packages/mobile/src/hooks/usePrepareDetailedAction.tsx @@ -5,16 +5,13 @@ import { useSelector } from 'react-redux'; import { walletSelector } from '$store/wallet'; import { compareAddresses, - format, + format as formatDate, fromNano, maskifyAddress, maskifyTonAddress, - toLocaleNumber, - truncateDecimal, } from '$utils'; import BigNumber from 'bignumber.js'; import { useTranslator } from '$hooks/useTranslator'; -import { formatCryptoCurrency } from '$utils/currency'; import { CryptoCurrencies, Decimals } from '$shared/constants'; import { ActionBaseProps, @@ -29,6 +26,7 @@ import { Text } from '$uikit'; import { useFiatRate } from './useFiatRate'; import { fiatCurrencySelector } from '$store/main'; import { useGetJettonPrice } from './useJettonPrice'; +import { useHideableFormatter } from '$core/HideableAmount/useHideableFormatter'; export function usePrepareDetailedAction( rawAction: Action, @@ -40,6 +38,7 @@ export function usePrepareDetailedAction( const fiatRate = useFiatRate(CryptoCurrencies.Ton); const fiatCurrency = useSelector(fiatCurrencySelector); const getJettonPrice = useGetJettonPrice(); + const format = useHideableFormatter(); return useMemo(() => { const action = rawAction[ActionType[rawAction.type]]; @@ -74,17 +73,15 @@ export function usePrepareDetailedAction( ); } const amount = TonWeb.utils.fromNano(new BigNumber(action.amount).abs().toString()); - label = - prefix + - ' ' + - formatter.format(amount, { - withoutTruncate: true, - decimals: Decimals[CryptoCurrencies.Ton], - currency: CryptoCurrencies.Ton.toLocaleUpperCase(), - currencySeparator: 'wide', - }); + label = format(amount, { + prefix: `${prefix} `, + withoutTruncate: true, + decimals: Decimals[CryptoCurrencies.Ton], + currency: CryptoCurrencies.Ton.toLocaleUpperCase(), + currencySeparator: 'wide', + }); fiatValue = !isFailed - ? formatter.format(fiatRate.today * parseFloat(amount), { + ? format(fiatRate.today * parseFloat(amount), { currency: fiatCurrency, currencySeparator: 'wide', }) @@ -111,15 +108,13 @@ export function usePrepareDetailedAction( action.jetton.address && new TonWeb.Address(action.jetton.address).toString(true, true, true); const amount = fromNano(action.amount, action.jetton?.decimals ?? 9); - label = - prefix + - ' ' + - formatter.format(amount, { - withoutTruncate: true, - decimals: action.jetton.decimals ?? 9, - currency: action.jetton?.symbol || '', - currencySeparator: 'wide', - }); + label = format(amount, { + prefix: `${prefix} `, + withoutTruncate: true, + decimals: action.jetton.decimals ?? 9, + currency: action.jetton?.symbol || '', + currencySeparator: 'wide', + }); const jettonPrice = getJettonPrice(jettonAddress, amount); fiatValue = !isFailed && jettonPrice.total_numeric @@ -134,26 +129,22 @@ export function usePrepareDetailedAction( const amount = TonWeb.utils.fromNano(new BigNumber(action.amount).abs().toString()); if (compareAddresses(action.beneficiary.address, address.ton)) { sentLabelTranslationString = 'transaction_receive_date'; - label = - '+' + - ' ' + - formatter.format(amount, { - withoutTruncate: true, - decimals: Decimals[CryptoCurrencies.Ton], - currency: CryptoCurrencies.Ton.toUpperCase(), - currencySeparator: 'wide', - }); + label = format(amount, { + prefix: `+ `, + withoutTruncate: true, + decimals: Decimals[CryptoCurrencies.Ton], + currency: CryptoCurrencies.Ton.toUpperCase(), + currencySeparator: 'wide', + }); } else { sentLabelTranslationString = 'transaction_subscription_date'; - label = - '-' + - ' ' + - formatter.format(amount, { - withoutTruncate: true, - decimals: Decimals[CryptoCurrencies.Ton], - currency: CryptoCurrencies.Ton.toUpperCase(), - currencySeparator: 'wide', - }); + label = formatter.format(amount, { + prefix: `- `, + withoutTruncate: true, + decimals: Decimals[CryptoCurrencies.Ton], + currency: CryptoCurrencies.Ton.toUpperCase(), + currencySeparator: 'wide', + }); } fiatValue = !isFailed ? formatter.format(fiatRate.today * parseFloat(amount), { @@ -183,15 +174,13 @@ export function usePrepareDetailedAction( const amount = TonWeb.utils.fromNano( new BigNumber(action.amount.value).abs().toString(), ); - label = - '-' + - ' ' + - formatter.format(amount, { - withoutTruncate: true, - decimals: Decimals[CryptoCurrencies.Ton], - currency: CryptoCurrencies.Ton.toUpperCase(), - currencySeparator: 'wide', - }); + label = format(amount, { + prefix: `- `, + withoutTruncate: true, + decimals: Decimals[CryptoCurrencies.Ton], + currency: CryptoCurrencies.Ton.toUpperCase(), + currencySeparator: 'wide', + }); infoRows.push({ label: t('transaction_bid_dns'), @@ -284,7 +273,7 @@ export function usePrepareDetailedAction( label, eventId: event.eventId, sentLabel: t(sentLabelTranslationString, { - date: format( + date: formatDate( event.timestamp * 1000, differenceInCalendarYears(event.timestamp, new Date()) === 0 ? 'd MMM, HH:mm' @@ -311,5 +300,18 @@ export function usePrepareDetailedAction( } return actionProps; - }, [rawAction, address.ton, event, t, subscriptionsInfo]); + }, [ + rawAction, + address.ton, + subscriptionsInfo, + event.inProgress, + event.fee, + event.eventId, + event.timestamp, + event.isScam, + t, + fiatRate.today, + fiatCurrency, + getJettonPrice, + ]); } diff --git a/packages/mobile/src/libs/AmountFormatter/AmountFormatter.ts b/packages/mobile/src/libs/AmountFormatter/AmountFormatter.ts index 9f278ad93..97a14d7ad 100644 --- a/packages/mobile/src/libs/AmountFormatter/AmountFormatter.ts +++ b/packages/mobile/src/libs/AmountFormatter/AmountFormatter.ts @@ -12,16 +12,18 @@ type AmountFormatterOptions = { getLocaleFormat?: () => LocaleFormat; }; -type AmountFormatOptions = { +export type AmountFormatOptions = { decimals?: number; currency?: string; currencySeparator?: 'thin' | 'wide'; // Default thin; withoutTruncate?: boolean; ignoreZeroTruncate?: boolean; absolute?: boolean; + withPositivePrefix?: boolean; + prefix?: string; }; -type AmountNumber = string | number | BigNumber; +export type AmountNumber = string | number | BigNumber; export class AmountFormatter { private getDefaultDecimals: (bn: BigNumber) => number; @@ -74,7 +76,12 @@ export class AmountFormatter { } public format(amount: AmountNumber = 0, options: AmountFormatOptions = {}) { - const { currencySeparator = 'thin', absolute = false } = options; + const { + prefix: prefixFromOptions, + withPositivePrefix, + currencySeparator = 'thin', + absolute = false, + } = options; let bn = this.toBN(amount); const decimals = options.decimals ?? this.getDefaultDecimals(bn); @@ -86,6 +93,8 @@ export class AmountFormatter { if (!absolute) { prefix += '− '; } + } else if (withPositivePrefix && !bn.isZero()) { + prefix += '+ '; } if (options.currency) { @@ -107,7 +116,7 @@ export class AmountFormatter { decimalSeparator, fractionGroupSize: 2, groupSize: 3, - prefix, + prefix: prefixFromOptions ?? prefix, suffix, }; diff --git a/packages/mobile/src/shared/components/ActionItem/ActionItemBase/ActionItemBase.tsx b/packages/mobile/src/shared/components/ActionItem/ActionItemBase/ActionItemBase.tsx index 1497e2044..1747d9ee2 100644 --- a/packages/mobile/src/shared/components/ActionItem/ActionItemBase/ActionItemBase.tsx +++ b/packages/mobile/src/shared/components/ActionItem/ActionItemBase/ActionItemBase.tsx @@ -19,7 +19,6 @@ export const ActionItemBase: FC = (props) => { typeLabel, type, infoRows, - currency, labelColor = 'foregroundPrimary', bottomContent, isSpam, @@ -113,9 +112,6 @@ export const ActionItemBase: FC = (props) => { > {label} - {currency ? ( - {` ${currency}`} - ) : null} {infoRows?.map((row, i) => ( diff --git a/packages/mobile/src/shared/components/ActionItem/TransactionItemNFT/TransactionItemNFT.tsx b/packages/mobile/src/shared/components/ActionItem/TransactionItemNFT/TransactionItemNFT.tsx index 69f8178e0..d0e8e365b 100644 --- a/packages/mobile/src/shared/components/ActionItem/TransactionItemNFT/TransactionItemNFT.tsx +++ b/packages/mobile/src/shared/components/ActionItem/TransactionItemNFT/TransactionItemNFT.tsx @@ -9,6 +9,10 @@ import { Icon, Text } from '$uikit'; import { useTranslator } from '$hooks'; import { View } from 'react-native'; import { DarkTheme } from '$styled'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; +import { BlurView } from 'expo-blur'; +import { HideableImage } from '$core/HideableAmount/HideableImage'; +import { Steezy } from '$styles'; export const TransactionItemNFT: React.FC<{ keyPair: NFTKeyPair }> = ({ keyPair }) => { const nft = useNFT(keyPair); @@ -39,10 +43,10 @@ export const TransactionItemNFT: React.FC<{ keyPair: NFTKeyPair }> = ({ keyPair ) : null} {!isDNS && nft.content?.image?.baseUrl ? ( - ) : null} @@ -54,17 +58,21 @@ export const TransactionItemNFT: React.FC<{ keyPair: NFTKeyPair }> = ({ keyPair onPress={handleOpenNftItem} > - + {(isDNS && nft.dns) || nft.name || maskifyTonAddress(nft.address)} - + - + {isDNS ? 'TON DNS' : nft?.collection ? nft.collection.name : t('nft_single_nft')} - + {nft.isApproved && ( = ({ keyPair ); }; + +const styles = Steezy.create({ + imageContainer: { + zIndex: 2, + width: 64, + height: 64, + backgroundColor: DarkTheme.colors.backgroundQuaternary, + borderTopLeftRadius: 12, + borderBottomLeftRadius: 12, + }, + image: { + borderTopLeftRadius: 12, + borderBottomLeftRadius: 12, + }, +}); diff --git a/packages/mobile/src/shared/components/AmountInput/AmountInput.tsx b/packages/mobile/src/shared/components/AmountInput/AmountInput.tsx index af70f1831..7ad2b74fc 100644 --- a/packages/mobile/src/shared/components/AmountInput/AmountInput.tsx +++ b/packages/mobile/src/shared/components/AmountInput/AmountInput.tsx @@ -21,6 +21,7 @@ import * as S from './AmountInput.style'; import { Button, Text } from '$uikit'; import { SwapButton } from '../SwapButton'; import { formatter } from '$utils/formatter'; +import { useHideableFormatter } from '$core/HideableAmount/useHideableFormatter'; export type AmountInputRef = TextInput & { value: string }; @@ -51,6 +52,8 @@ const AmountInputComponent: React.FC = (props) => { setAmount, } = props; + const format = useHideableFormatter(); + const textInputRef = useRef(null); const { fiatCurrency } = useSelector(mainSelector); @@ -70,7 +73,7 @@ const AmountInputComponent: React.FC = (props) => { : decimals; return { - remainingBalance: formatter.format(remainingBalanceBigNum, { + remainingBalance: format(remainingBalanceBigNum, { decimals: remainingBalanceDecimals, currency: currencyTitle, currencySeparator: 'wide', diff --git a/packages/mobile/src/shared/components/StakingListCell/StakingListCell.tsx b/packages/mobile/src/shared/components/StakingListCell/StakingListCell.tsx index 90336e885..45bc25b26 100644 --- a/packages/mobile/src/shared/components/StakingListCell/StakingListCell.tsx +++ b/packages/mobile/src/shared/components/StakingListCell/StakingListCell.tsx @@ -7,6 +7,7 @@ import React, { FC, memo, useCallback } from 'react'; import { ImageRequireSource } from 'react-native'; import { Source } from 'react-native-fast-image'; import * as S from './StakingListCell.style'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; interface Props { id: string; @@ -61,10 +62,17 @@ const StakingListCellComponent: FC = (props) => { {balanceValue ? ( <> - + {stakingFormatter.format(balanceValue, { decimals: 2 })} TON - - {balance.fiatInfo.amount} + + + {balance.fiatInfo.amount} + ) : ( diff --git a/packages/mobile/src/store/zustand/privacy/types.ts b/packages/mobile/src/store/zustand/privacy/types.ts new file mode 100644 index 000000000..5a2bb1f1c --- /dev/null +++ b/packages/mobile/src/store/zustand/privacy/types.ts @@ -0,0 +1,6 @@ +export interface IPrivacyStore { + hiddenAmounts: boolean; + actions: { + toggleHiddenAmounts: () => void; + }; +} diff --git a/packages/mobile/src/store/zustand/privacy/usePrivacyStore.ts b/packages/mobile/src/store/zustand/privacy/usePrivacyStore.ts new file mode 100644 index 000000000..db52db350 --- /dev/null +++ b/packages/mobile/src/store/zustand/privacy/usePrivacyStore.ts @@ -0,0 +1,26 @@ +import AsyncStorage from '@react-native-async-storage/async-storage'; +import { create } from 'zustand'; +import { persist } from 'zustand/middleware'; +import { IPrivacyStore } from './types'; + +const initialState: Omit = { + hiddenAmounts: false, +}; + +export const usePrivacyStore = create( + persist( + (set) => ({ + ...initialState, + actions: { + toggleHiddenAmounts: () => { + set(({ hiddenAmounts }) => ({ hiddenAmounts: !hiddenAmounts })); + }, + }, + }), + { + name: 'privacy', + getStorage: () => AsyncStorage, + partialize: ({ hiddenAmounts }) => ({ hiddenAmounts } as IPrivacyStore), + }, + ), +); diff --git a/packages/mobile/src/styles/DarkTheme.ts b/packages/mobile/src/styles/DarkTheme.ts index 38b373a5d..e40542174 100644 --- a/packages/mobile/src/styles/DarkTheme.ts +++ b/packages/mobile/src/styles/DarkTheme.ts @@ -12,6 +12,7 @@ export const DarkTheme = { backgroundOverlayLight: 'rgba(0, 0, 0, 0.48)', backgroundSecondary: '#1D2633', backgroundPrimary: '#10161F', + backgroundTertiary: '#2E3847', iconPrimary: '#FFFFFF', iconSecondary: '#8994A3', diff --git a/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx b/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx index 77a816d66..652e7945b 100644 --- a/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx +++ b/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx @@ -2,14 +2,16 @@ import { useTranslator } from '$hooks'; import { openNFT } from '$navigation'; import { DarkTheme } from '$styles'; import { Steezy } from '$styles'; -import { View, Text, Icon, Pressable } from '$uikit'; -import { checkIsTonDiamondsNFT, maskifyTonAddress, ns } from '$utils'; +import { View, Icon, Pressable } from '$uikit'; +import { checkIsTonDiamondsNFT, maskifyTonAddress } from '$utils'; import { useFlags } from '$utils/flags'; import _ from 'lodash'; import React, { memo, useCallback, useMemo } from 'react'; import * as S from '../../core/NFTs/NFTItem/NFTItem.style'; import { useExpiringDomains } from '$store/zustand/domains/useExpiringDomains'; import { Address } from '$libs/Ton'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; +import { HideableImage } from '$core/HideableAmount/HideableImage'; interface NFTCardItemProps { item: any; @@ -27,7 +29,7 @@ export const NFTCardItem = memo((props) => { const isOnSale = useMemo(() => !!item.sale, [item.sale]); const isTG = (item.dns || item.name)?.endsWith('.t.me'); const isDNS = !!item.dns && !isTG; - + // eslint-disable-next-line react-hooks/exhaustive-deps const handleOpenNftItem = useCallback( _.throttle(() => openNFT({ currency: item.currency, address: item.address }), 1000), @@ -42,7 +44,10 @@ export const NFTCardItem = memo((props) => { return item.name || maskifyTonAddress(item.address); }, [isDNS, item.dns, item.name, item.address]); - const nftRawAddress = useMemo(() => new Address(item.address).format({ raw: true }), []); + const nftRawAddress = useMemo( + () => new Address(item.address).format({ raw: true }), + [], + ); return ( ((props) => { style={styles.container} onPress={handleOpenNftItem} > - + {isOnSale && } @@ -71,18 +72,18 @@ export const NFTCardItem = memo((props) => { )} - + - + {title} - - + + {isDNS ? 'TON DNS' : item?.collection ? item.collection.name || t('nft_unnamed_collection') : t('nft_single_nft')} - + ); @@ -90,6 +91,7 @@ export const NFTCardItem = memo((props) => { const styles = Steezy.create(({ colors, corners }) => ({ container: { + position: 'relative', flex: 1, marginHorizontal: 4, marginBottom: 8, @@ -101,4 +103,20 @@ const styles = Steezy.create(({ colors, corners }) => ({ paddingVertical: 8, paddingHorizontal: 12, }, + blur: { + zIndex: 3, + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 50, + }, + image: { + flex: 1, + width: '100%', + height: '100%', + borderTopLeftRadius: 16, + borderTopRightRadius: 16, + background: DarkTheme.backgroundTertiary, + }, })); diff --git a/packages/mobile/src/tabs/Wallet/WalletScreen.tsx b/packages/mobile/src/tabs/Wallet/WalletScreen.tsx index 7b6132c42..a5840e897 100644 --- a/packages/mobile/src/tabs/Wallet/WalletScreen.tsx +++ b/packages/mobile/src/tabs/Wallet/WalletScreen.tsx @@ -41,6 +41,9 @@ import { useFlags } from '$utils/flags'; import { useUpdatesStore } from '$store/zustand/updates/useUpdatesStore'; import { UpdatesCell } from '$core/ApprovalCell/Updates/UpdatesCell'; import { UpdateState } from '$store/zustand/updates/types'; +import { HideableAmount } from '$core/HideableAmount/HideableAmount'; +import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; +import { ShowBalance } from '$core/HideableAmount/ShowBalance'; export const WalletScreen = memo(() => { const flags = useFlags(['disable_swap']); @@ -54,7 +57,6 @@ export const WalletScreen = memo(() => { const wallet = useWallet(); const shouldUpdate = useUpdatesStore((state) => state.update.state) !== UpdateState.NOT_STARTED; - const balance = useBalance(tokens.total.fiat); const rates = useRates(); @@ -127,7 +129,7 @@ export const WalletScreen = memo(() => { ))} {shouldUpdate && } - {balance.total.fiat} + {wallet && ( { onPress={item.onPress} title={item.title} picture={item.picture} - value={item.value} + value={ + {` ${item.value}`} + } label={item.label} - subvalue={item.subvalue} + subvalue={ + item.subvalue && ( + + {item.subvalue} + + ) + } subtitle={ item.rate ? ( ({ backgroundColor: colors.backgroundContent, marginHorizontal: 16, }, + valueText: { + textAlign: 'right', + flexShrink: 1, + }, + subvalueText: { + color: colors.textSecondary, + textAlign: 'right', + }, container: { position: 'relative', diff --git a/packages/mobile/src/uikit/ShowMore/ShowMore.tsx b/packages/mobile/src/uikit/ShowMore/ShowMore.tsx index 5740a2b47..b9de4caf4 100644 --- a/packages/mobile/src/uikit/ShowMore/ShowMore.tsx +++ b/packages/mobile/src/uikit/ShowMore/ShowMore.tsx @@ -1,9 +1,9 @@ import React, { useCallback, useState } from 'react'; import { Text } from '$uikit'; import { useTranslator } from '$hooks'; -import {TouchableOpacity, View} from 'react-native'; -import LinearGradient from "react-native-linear-gradient"; -import {changeAlphaValue, convertHexToRGBA, ns} from "$utils"; +import { TouchableOpacity, View } from 'react-native'; +import LinearGradient from 'react-native-linear-gradient'; +import { changeAlphaValue, convertHexToRGBA, ns } from '$utils'; export interface ShowMoreProps { maxLines: number; @@ -14,7 +14,11 @@ export interface ShowMoreProps { backgroundColor?: string; } -export const ShowMore: React.FC = ({ maxLines, text, backgroundColor = '#1D2633' }) => { +export const ShowMore: React.FC = ({ + maxLines, + text, + backgroundColor = '#1D2633', +}) => { const t = useTranslator(); const [showEllipsize, setShowEllipsize] = useState(false); @@ -47,7 +51,7 @@ export const ShowMore: React.FC = ({ maxLines, text, backgroundCo end={{ x: 1, y: 1 }} colors={[ changeAlphaValue(convertHexToRGBA(backgroundColor), 0), - convertHexToRGBA(backgroundColor) + convertHexToRGBA(backgroundColor), ]} style={{ width: ns(24), height: ns(20) }} /> From 4f7f027c0c1adaa7a72d27145fc9bacc1e267ef7 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 6 Jul 2023 06:05:33 +0400 Subject: [PATCH 47/73] add haptic for amounts toggler --- .../mobile/src/core/HideableAmount/ShowBalance.tsx | 12 ++++-------- packages/mobile/src/utils/hapticFeedback.ts | 2 ++ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/mobile/src/core/HideableAmount/ShowBalance.tsx b/packages/mobile/src/core/HideableAmount/ShowBalance.tsx index 2d783f3a9..3bd87b1b8 100644 --- a/packages/mobile/src/core/HideableAmount/ShowBalance.tsx +++ b/packages/mobile/src/core/HideableAmount/ShowBalance.tsx @@ -3,16 +3,11 @@ import { HideableAmount } from '$core/HideableAmount/HideableAmount'; import { TouchableHighlight, TouchableOpacity } from 'react-native-gesture-handler'; import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; import { HideableAmountContext } from '$core/HideableAmount/HideableAmountProvider'; -import Animated, { - Extrapolation, - interpolate, - interpolateColor, - useAnimatedStyle, -} from 'react-native-reanimated'; +import Animated, { useAnimatedStyle } from 'react-native-reanimated'; import { Steezy } from '$styles'; -import { Highlight, Pressable, View } from '$uikit'; +import { Pressable, View } from '$uikit'; import { useTheme } from '$hooks'; -import { isAndroid } from '$utils'; +import { Haptics, isAndroid } from '$utils'; import { DarkTheme } from '$styled'; const TouchableComponent = isAndroid ? Pressable : TouchableHighlight; @@ -24,6 +19,7 @@ export const ShowBalance: React.FC<{ amount: string }> = ({ amount }) => { const handleToggleHideAmounts = useCallback(() => { hideAmounts(); + Haptics.impactHeavy(); }, [hideAmounts]); const touchableOpacityStyle = useAnimatedStyle(() => { diff --git a/packages/mobile/src/utils/hapticFeedback.ts b/packages/mobile/src/utils/hapticFeedback.ts index 5242724e4..7eae4284c 100644 --- a/packages/mobile/src/utils/hapticFeedback.ts +++ b/packages/mobile/src/utils/hapticFeedback.ts @@ -15,6 +15,7 @@ export const triggerSelection = triggerHapticFeedback('selection'); export const triggerImpactLight = triggerHapticFeedback('impactLight'); export const triggerImpactMedium = triggerHapticFeedback('impactMedium'); +export const triggerImpactHeavy = triggerHapticFeedback('impactHeavy'); export const triggerNotificationSuccess = triggerHapticFeedback('notificationSuccess'); export const triggerNotificationError = triggerHapticFeedback('notificationError'); @@ -23,6 +24,7 @@ export const Haptics = { selection: triggerSelection, impactLight: triggerImpactLight, impactMedium: triggerImpactMedium, + impactHeavy: triggerImpactHeavy, notificationSuccess: triggerNotificationSuccess, notificationError: triggerNotificationError, }; From b3790a0ff548e391fc58a80a5077cd26e49005d4 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 6 Jul 2023 12:32:46 +0400 Subject: [PATCH 48/73] fix: notification updates --- .../core/DAppBrowser/hooks/useDAppBridge.ts | 3 +- .../src/core/Notifications/Notification.tsx | 3 +- .../src/core/Notifications/Notifications.tsx | 11 ++-- .../Notifications/NotificationsActivity.tsx | 57 +++++++++++++++---- .../src/hooks/useNotificationsBadge.tsx | 11 ++-- .../src/hooks/useNotificationsResolver.ts | 27 ++++++++- .../TabStack/NotificationsIndicator.tsx | 20 +++++++ .../TabStack/TabBarBadgeIndicator.tsx | 19 +------ .../MainStack/TabStack/TabStack.tsx | 12 +++- .../store/zustand/connectedApps/helpers.ts | 42 ++++++++------ .../connectedApps/useConnectedAppsStore.ts | 22 +++---- .../src/store/zustand/notifications/types.ts | 3 + .../notifications/useNotificationsStore.ts | 21 ++++++- .../src/tabs/Activity/ActivityScreen.tsx | 12 +++- packages/mobile/src/tonconnect/TonConnect.ts | 4 +- .../mobile/src/translation/locales/en.json | 17 +++++- .../mobile/src/translation/locales/ru.json | 20 +++++-- 17 files changed, 215 insertions(+), 89 deletions(-) create mode 100644 packages/mobile/src/navigation/MainStack/TabStack/NotificationsIndicator.tsx diff --git a/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts b/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts index 01454d011..3b50d2c25 100644 --- a/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts +++ b/packages/mobile/src/core/DAppBrowser/hooks/useDAppBridge.ts @@ -9,7 +9,6 @@ import { useConnectedAppsStore, disableNotifications, } from '$store'; -import messaging from '@react-native-firebase/messaging'; export const useDAppBridge = (walletAddress: string, webViewUrl: string) => { const [connectEvent, setConnectEvent] = useState(null); @@ -80,7 +79,7 @@ export const useDAppBridge = (walletAddress: string, webViewUrl: string) => { }, [webViewUrl, sendEvent]); const unsubscribeFromNotifications = useCallback(async () => { - disableNotifications(walletAddress, webViewUrl, await messaging().getToken()); + disableNotifications(walletAddress, webViewUrl); }, [walletAddress, webViewUrl]); return { diff --git a/packages/mobile/src/core/Notifications/Notification.tsx b/packages/mobile/src/core/Notifications/Notification.tsx index 18f670221..d6af1273d 100644 --- a/packages/mobile/src/core/Notifications/Notification.tsx +++ b/packages/mobile/src/core/Notifications/Notification.tsx @@ -79,8 +79,7 @@ export const Notification: React.FC = (props) => { app?.notificationsEnabled && { option: t('notifications.mute_notifications'), action: async () => { - const firebaseToken = await messaging().getToken(); - disableNotifications(walletAddress.ton, app.url, firebaseToken); + disableNotifications(walletAddress.ton, app.url); }, }, app && { diff --git a/packages/mobile/src/core/Notifications/Notifications.tsx b/packages/mobile/src/core/Notifications/Notifications.tsx index c46071834..bc2fc99de 100644 --- a/packages/mobile/src/core/Notifications/Notifications.tsx +++ b/packages/mobile/src/core/Notifications/Notifications.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useRef } from 'react'; -import { InternalNotification, NavBar, Screen, SwitchItem, Text, View } from '$uikit'; +import { InternalNotification, Screen, Spacer, SwitchItem, Text, View } from '$uikit'; import { debugLog, ns } from '$utils'; import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; import { Linking } from 'react-native'; @@ -16,7 +16,6 @@ import { Steezy } from '$styles'; import { getChainName } from '$shared/dynamicConfig'; import { walletAddressSelector } from '$store/wallet'; import FastImage from 'react-native-fast-image'; -import * as SecureStore from 'expo-secure-store'; import { useObtainProofToken } from '$hooks'; export const Notifications: React.FC = () => { @@ -88,11 +87,10 @@ export const Notifications: React.FC = () => { const handleSwitchNotifications = React.useCallback( async (value: boolean, url: string, session_id: string | undefined) => { await obtainProofToken(); - const token = await messaging().getToken(); if (value) { - return enableNotifications(getChainName(), address.ton, url, session_id, token); + return enableNotifications(getChainName(), address.ton, url, session_id); } - disableNotifications(getChainName(), address.ton, url, token); + disableNotifications(getChainName(), address.ton, url); }, [obtainProofToken, disableNotifications, address.ton, enableNotifications], ); @@ -130,6 +128,8 @@ export const Notifications: React.FC = () => { <> {t('notifications.apps')} + + {t('notifications.apps_description')} {connectedApps.map((app) => ( @@ -142,7 +142,6 @@ export const Notifications: React.FC = () => { } key={app.url} title={app.name} - disabled={!isSubscribeNotifications} value={!!app.notificationsEnabled} onChange={() => handleSwitchNotifications( diff --git a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx index 9f031f6a1..8cc9819c3 100644 --- a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx +++ b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useEffect, useMemo, useRef } from 'react'; -import { Button, Icon, Screen, Text, View } from '$uikit'; +import { Button, Icon, Screen, Spacer, Text, View } from '$uikit'; import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; import { Notification } from '$core/Notifications/Notification'; import { Steezy } from '$styles'; @@ -8,6 +8,7 @@ import { t } from '$translation'; import { INotification } from '$store'; import { FlashList } from '@shopify/flash-list'; import { LayoutAnimation } from 'react-native'; +import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; export enum ActivityListItem { Notification = 'Notification', @@ -17,10 +18,35 @@ export enum ActivityListItem { export function getNewNotificationsCount( notifications: INotification[], lastSeenAt: number, +) { + return notifications.filter((notification) => notification.received_at > lastSeenAt) + .length; +} + +export function getIndexForEarlierTitle( + notifications: INotification[], + lastSeenAt: number, ) { return notifications.findIndex((notification) => notification.received_at < lastSeenAt); } +export const ListEmpty: React.FC = () => { + const tabbarHeight = useBottomTabBarHeight(); + return ( + + + + {t('notifications.placeholder.title')} + + + + {t('notifications.placeholder.description')} + + + + ); +}; + export const NotificationsActivity: React.FC = () => { const notifications = useNotificationsStore((state) => state.notifications); const lastSeenAt = useNotificationsStore((state) => state.last_seen); @@ -28,6 +54,7 @@ export const NotificationsActivity: React.FC = () => { const list = useRef | null>(null); const closeOtherSwipeable = useRef void)>(null); const lastSwipeableId = useRef(null); + const tabBarHeight = useBottomTabBarHeight(); const handleOpenNotificationSettings = useCallback(() => { openNotifications(); @@ -44,7 +71,7 @@ export const NotificationsActivity: React.FC = () => { }; }); - const indexToPushTitle = getNewNotificationsCount(notifications, lastSeenAt); + const indexToPushTitle = getIndexForEarlierTitle(notifications, lastSeenAt); // divide notifications into two groups: earlier and not seen before if (![0, -1].includes(indexToPushTitle)) { @@ -108,14 +135,19 @@ export const NotificationsActivity: React.FC = () => { } title={'Notifications'} /> - item.id} - renderItem={renderNotificationsItem} - contentContainerStyle={{ paddingBottom: 8 }} - data={flashListData} - /> + {flashListData.length === 0 ? ( + + ) : ( + item.id} + renderItem={renderNotificationsItem} + contentContainerStyle={{ paddingBottom: tabBarHeight + 8 }} + data={flashListData} + ListEmptyComponent={ListEmpty} + /> + )} ); }; @@ -125,4 +157,9 @@ const styles = Steezy.create({ marginVertical: 14, marginHorizontal: 16, }, + emptyContainer: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + }, }); diff --git a/packages/mobile/src/hooks/useNotificationsBadge.tsx b/packages/mobile/src/hooks/useNotificationsBadge.tsx index 00b3ccc3b..f690a68f2 100644 --- a/packages/mobile/src/hooks/useNotificationsBadge.tsx +++ b/packages/mobile/src/hooks/useNotificationsBadge.tsx @@ -1,13 +1,14 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; -import React, {useMemo} from 'react'; +import React, { useMemo } from 'react'; import { useShouldEnableNotifications } from './useShouldEnableNotifications'; type NotificationsBadgeContextValue = { hide: () => void; isVisible: boolean; -} +}; -export const NotificationsBadgeContext = React.createContext(null); +export const NotificationsBadgeContext = + React.createContext(null); export const useNotificationsBadgeStore = () => { const shouldEnableNotification = useShouldEnableNotifications(); @@ -27,7 +28,7 @@ export const useNotificationsBadgeStore = () => { const hide = React.useCallback(async () => { try { await AsyncStorage.setItem('HiddenNotificationsBadge', 'true'); - } catch(err) {} + } catch (err) {} setIsVisible(false); }, []); @@ -42,7 +43,7 @@ export const NotificationsBadgeProvider: React.FC = ({ children }) => { {children} ); -} +}; export function useNotificationsBadge() { const store = React.useContext(NotificationsBadgeContext); diff --git a/packages/mobile/src/hooks/useNotificationsResolver.ts b/packages/mobile/src/hooks/useNotificationsResolver.ts index 83cb88ee3..554624d1e 100644 --- a/packages/mobile/src/hooks/useNotificationsResolver.ts +++ b/packages/mobile/src/hooks/useNotificationsResolver.ts @@ -6,6 +6,9 @@ import { mainSelector } from '$store/main'; import { useDeeplinking } from '$libs/deeplinking'; import { getToken } from '$utils/messaging'; import { openDAppBrowser } from '$navigation'; +import { getDomainFromURL } from '$utils'; +import { Alert } from 'react-native'; +import { t } from '$translation'; export const useNotificationsResolver = () => { const { isMainStackInited } = useSelector(mainSelector); @@ -33,8 +36,28 @@ export const useNotificationsResolver = () => { if (deeplink) { deeplinking.resolve(deeplink); - } else if (link || dapp_url) { - openDAppBrowser((link || dapp_url) as string); + } else if (link) { + if (!dapp_url || getDomainFromURL(link) === getDomainFromURL(dapp_url)) { + openDAppBrowser(link); + } else { + Alert.alert( + t('notifications.alert.title'), + t('notifications.alert.description'), + [ + { + text: t('notifications.alert.open'), + onPress: () => openDAppBrowser(link), + style: 'destructive', + }, + { + text: t('notifications.alert.cancel'), + style: 'cancel', + }, + ], + ); + } + } else if (dapp_url) { + openDAppBrowser(dapp_url); } else { nav.navigate('Balances'); } diff --git a/packages/mobile/src/navigation/MainStack/TabStack/NotificationsIndicator.tsx b/packages/mobile/src/navigation/MainStack/TabStack/NotificationsIndicator.tsx new file mode 100644 index 000000000..05267111a --- /dev/null +++ b/packages/mobile/src/navigation/MainStack/TabStack/NotificationsIndicator.tsx @@ -0,0 +1,20 @@ +import { useNotificationsBadge } from '$hooks/useNotificationsBadge'; +import { getCurrentRoute } from '$navigation/helper'; +import { SettingsStackRouteNames } from '$navigation/navigationNames'; +import React from 'react'; +import { useSelector } from 'react-redux'; +import { walletWalletSelector } from '$store/wallet'; +import { TabBarBadgeIndicator } from '$navigation/MainStack/TabStack/TabBarBadgeIndicator'; + +export const NotificationsIndicator: React.FC = () => { + const notificationsBadge = useNotificationsBadge(); + const route = getCurrentRoute(); + const wallet = useSelector(walletWalletSelector); + + const isVisible = + !!wallet && + notificationsBadge.isVisible && + route.name !== SettingsStackRouteNames.Notifications; + + return ; +}; diff --git a/packages/mobile/src/navigation/MainStack/TabStack/TabBarBadgeIndicator.tsx b/packages/mobile/src/navigation/MainStack/TabStack/TabBarBadgeIndicator.tsx index dc8a84876..1f113ead8 100644 --- a/packages/mobile/src/navigation/MainStack/TabStack/TabBarBadgeIndicator.tsx +++ b/packages/mobile/src/navigation/MainStack/TabStack/TabBarBadgeIndicator.tsx @@ -1,24 +1,11 @@ import { useTheme } from '$hooks'; -import { useNotificationsBadge } from '$hooks/useNotificationsBadge'; -import { getCurrentRoute } from '$navigation/helper'; -import { SettingsStackRouteNames } from '$navigation/navigationNames'; import { ns } from '$utils'; import React from 'react'; import { View } from 'react-native'; -import { useSelector } from "react-redux"; -import { walletWalletSelector } from "$store/wallet"; -export const TabBarBadgeIndicator = () => { +export const TabBarBadgeIndicator: React.FC<{ isVisible: boolean }> = ({ isVisible }) => { const theme = useTheme(); - const notificationsBadge = useNotificationsBadge(); - const route = getCurrentRoute(); - const wallet = useSelector(walletWalletSelector); - - if ( - !!wallet && - notificationsBadge.isVisible && - route.name !== SettingsStackRouteNames.Notifications - ) { + if (isVisible) { return ( { } return null; -} +}; diff --git a/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx b/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx index 9f0321a62..b364f3d38 100644 --- a/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx +++ b/packages/mobile/src/navigation/MainStack/TabStack/TabStack.tsx @@ -19,6 +19,8 @@ import { FONT } from '$styled'; import { useCheckForUpdates } from '$hooks/useCheckForUpdates'; import { useLoadExpiringDomains } from '$store/zustand/domains/useExpiringDomains'; import { ActivityStack } from '$navigation/ActivityStack/ActivityStack'; +import { useNotificationsStore } from '$store'; +import { NotificationsIndicator } from '$navigation/MainStack/TabStack/NotificationsIndicator'; const Tab = createBottomTabNavigator(); @@ -26,6 +28,7 @@ export const TabStack: FC = () => { const { bottomSeparatorStyle } = useContext(ScrollPositionContext); const safeArea = useSafeAreaInsets(); const theme = useTheme(); + const shouldShowRedDot = useNotificationsStore((state) => state.should_show_red_dot); useLoadExpiringDomains(); useNotificationsSubscribe(); @@ -91,7 +94,12 @@ export const TabStack: FC = () => { name={TabsStackRouteNames.Activity} options={{ tabBarLabel: t('activity.screen_title'), - tabBarIcon: ({ color }) => , + tabBarIcon: ({ color }) => ( + + + + + ), }} /> { tabBarIcon: ({ color }) => ( - + ), }} diff --git a/packages/mobile/src/store/zustand/connectedApps/helpers.ts b/packages/mobile/src/store/zustand/connectedApps/helpers.ts index d3d967c3c..37755988a 100644 --- a/packages/mobile/src/store/zustand/connectedApps/helpers.ts +++ b/packages/mobile/src/store/zustand/connectedApps/helpers.ts @@ -8,7 +8,7 @@ import { IConnectedAppConnectionRemote, } from './types'; import { useConnectedAppsStore } from './useConnectedAppsStore'; -import app from '@tonkeeper/web/src/App'; +import messaging from '@react-native-firebase/messaging'; export const saveAppConnection = ( walletAddress: string, @@ -20,31 +20,39 @@ export const saveAppConnection = ( .actions.saveAppConnection(getChainName(), walletAddress, appData, connection); }; -export const enableNotifications = ( +export const enableNotifications = async ( walletAddress: string, url: IConnectedApp['url'], sessionId: string | undefined, - firebaseToken: string, ) => { - useConnectedAppsStore - .getState() - .actions.enableNotifications( - getChainName(), - walletAddress, - url, - sessionId, - firebaseToken, - ); + try { + const firebaseToken = await messaging().getToken(); + useConnectedAppsStore + .getState() + .actions.enableNotifications( + getChainName(), + walletAddress, + url, + sessionId, + firebaseToken, + ); + } catch (e) { + console.log(e); + } }; -export const disableNotifications = ( +export const disableNotifications = async ( walletAddress: string, url: IConnectedApp['url'], - firebaseToken: string, ) => { - useConnectedAppsStore - .getState() - .actions.disableNotifications(getChainName(), walletAddress, url, firebaseToken); + try { + const firebaseToken = await messaging().getToken(); + useConnectedAppsStore + .getState() + .actions.disableNotifications(getChainName(), walletAddress, url, firebaseToken); + } catch (e) { + console.log(e); + } }; export const removeConnectedApp = (url: string) => { diff --git a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts index 9552d121a..07897eb06 100644 --- a/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts +++ b/packages/mobile/src/store/zustand/connectedApps/useConnectedAppsStore.ts @@ -5,8 +5,8 @@ import { persist, subscribeWithSelector } from 'zustand/middleware'; import { IConnectedAppsStore, TonConnectBridgeType } from './types'; import { Tonapi } from '$libs/Tonapi'; import messaging from '@react-native-firebase/messaging'; -import { useNotificationsStore } from '$store/zustand'; import * as SecureStore from 'expo-secure-store'; +import { useNotificationsStore } from '$store/zustand'; const initialState: Omit = { connectedApps: { @@ -56,12 +56,7 @@ export const useConnectedAppsStore = create( removeInjectedConnection: async (chainName, walletAddress, url) => { const fixedUrl = getFixedLastSlashUrl(url); - get().actions.disableNotifications( - chainName, - walletAddress, - url, - await messaging().getToken(), - ); + get().actions.disableNotifications(chainName, walletAddress, url); set(({ connectedApps }) => { const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); @@ -101,12 +96,7 @@ export const useConnectedAppsStore = create( ) => { const fixedUrl = getFixedLastSlashUrl(url); - get().actions.disableNotifications( - chainName, - walletAddress, - url, - await messaging().getToken(), - ); + get().actions.disableNotifications(chainName, walletAddress, url); set(({ connectedApps }) => { const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); @@ -188,6 +178,8 @@ export const useConnectedAppsStore = create( return; } + useNotificationsStore.getState().actions.removeNotificationsByDappUrl(url); + Tonapi.unsubscribeFromNotifications(token, { firebase_token, app_url: fixedUrl, @@ -212,9 +204,11 @@ export const useConnectedAppsStore = create( return { connectedApps }; }); }, - removeApp: (chainName, walletAddress, url) => { + removeApp: async (chainName, walletAddress, url) => { const fixedUrl = getFixedLastSlashUrl(url); + get().actions.disableNotifications(chainName, walletAddress, url); + set(({ connectedApps }) => { const keys = Object.keys(connectedApps[chainName][walletAddress] || {}); diff --git a/packages/mobile/src/store/zustand/notifications/types.ts b/packages/mobile/src/store/zustand/notifications/types.ts index cd8560c1a..759acb2fa 100644 --- a/packages/mobile/src/store/zustand/notifications/types.ts +++ b/packages/mobile/src/store/zustand/notifications/types.ts @@ -10,10 +10,13 @@ export interface INotification { export interface INotificationsStore { notifications: INotification[]; last_seen: number; + should_show_red_dot: boolean; actions: { updateLastSeen: () => void; addNotification: (notification: INotification) => void; reset: () => void; deleteNotificationByReceivedAt: (receivedAt: number) => void; + removeNotificationsByDappUrl: (dapp_url: string) => void; + removeRedDot: () => void; }; } diff --git a/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts b/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts index 6300d4a08..a8edc45d4 100644 --- a/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts +++ b/packages/mobile/src/store/zustand/notifications/useNotificationsStore.ts @@ -2,9 +2,11 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; import { create } from 'zustand'; import { persist } from 'zustand/middleware'; import { INotification, INotificationsStore } from './types'; +import { getDomainFromURL } from '$utils'; const initialState: Omit = { - last_seen: 0, + last_seen: Date.now(), + should_show_red_dot: false, notifications: [], }; @@ -17,21 +19,34 @@ export const useNotificationsStore = create( addNotification: (notification: INotification) => set((state) => ({ notifications: [notification, ...state.notifications], + should_show_red_dot: true, })), + removeRedDot: () => set({ should_show_red_dot: false }), deleteNotificationByReceivedAt: (receivedAt) => set((state) => ({ + should_show_red_dot: false, notifications: state.notifications.filter( (notification) => notification.received_at !== receivedAt, ), })), + removeNotificationsByDappUrl: (dapp_url) => { + set((state) => ({ + should_show_red_dot: false, + notifications: state.notifications.filter( + (notification) => + notification.dapp_url && + getDomainFromURL(notification.dapp_url) !== getDomainFromURL(dapp_url), + ), + })); + }, reset: () => set({ last_seen: 0, notifications: [] }), }, }), { name: 'notifications', getStorage: () => AsyncStorage, - partialize: ({ notifications, last_seen }) => - ({ notifications, last_seen } as INotificationsStore), + partialize: ({ notifications, last_seen, should_show_red_dot }) => + ({ notifications, last_seen, should_show_red_dot } as INotificationsStore), }, ), ); diff --git a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx index 9eb1db8fe..940a01a8c 100644 --- a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx +++ b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx @@ -47,6 +47,7 @@ export const ActivityScreen: FC = () => { } = useSelector(eventsSelector); const notifications = useNotificationsStore((state) => state.notifications); const lastSeenAt = useNotificationsStore((state) => state.last_seen); + const removeRedDot = useNotificationsStore((state) => state.actions.removeRedDot); const netInfo = useNetInfo(); const prevNetInfo = usePrevious(netInfo); @@ -55,6 +56,12 @@ export const ActivityScreen: FC = () => { const isEventsLoadingMore = !isRefreshing && isEventsLoading && !!wallet; + useEffect(() => { + if (isFocused) { + removeRedDot(); + } + }, [isFocused, removeRedDot]); + useEffect(() => { const timer = setTimeout(() => { dispatch(mainActions.mainStackInited()); @@ -221,7 +228,10 @@ export const ActivityScreen: FC = () => { } }, [wallet]); - if (isLoaded && (!wallet || Object.keys(eventsInfo).length < 1)) { + if ( + isLoaded && + (!wallet || (Object.keys(eventsInfo).length < 1 && notifications.length < 1)) + ) { return ( diff --git a/packages/mobile/src/tonconnect/TonConnect.ts b/packages/mobile/src/tonconnect/TonConnect.ts index cfd6400d2..9bfc467bb 100644 --- a/packages/mobile/src/tonconnect/TonConnect.ts +++ b/packages/mobile/src/tonconnect/TonConnect.ts @@ -142,8 +142,7 @@ class TonConnectService { ); if (notificationsEnabled) { - const token = await messaging().getToken(); - enableNotifications(address, manifest.url, clientSessionId, token); + enableNotifications(address, manifest.url, clientSessionId); } return { @@ -227,6 +226,7 @@ class TonConnectService { name: connectedApp.name, url: connectedApp.url, icon: connectedApp.icon, + notificationsEnabled: connectedApp.notificationsEnabled, }, { type: TonConnectBridgeType.Injected, replyItems }, ); diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index 451b96ba9..2f28b5f57 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -445,8 +445,8 @@ "account_deleted": "Account deleted", "notifications_title": "Notifications", - "notifications_switch_title": "Notifications", - "notification_switch_description": "Get notifications when you receive TON, tokens and NFTs", + "notifications_switch_title": "Push notifications", + "notification_switch_description": "Get notifications when you receive TON, tokens and NFTs. Notifications from connected apps.", "notifications_disabled_title": "Notifications are disabled", "notifications_disabled_description": "You turned off notifications in your phone’s settings. To activate notifications, go to Settings on this device.", "notifications_disabled_action": "Open Settings", @@ -837,6 +837,17 @@ "disconnected_app": "Disconnected app", "earlier": "Earlier", "apps": "Apps", - "allow_notifications": "Allow notifications" + "apps_description": "Notifications from connected apps in your activity", + "allow_notifications": "Allow notifications", + "placeholder": { + "title": "Notifications will be shown here", + "description": "Explore apps and services in Tonkeeper browser." + }, + "alert": { + "title": "Are you sure you want to open an external link?", + "description": "Link address from the notification doesn't match with app address.", + "open": "Open anyway", + "cancel": "Cancel" + } } } diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index f73330529..b94c04243 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -406,6 +406,7 @@ "about_dapps_learn_more": "Подробнее", "actions": { "refresh": "Обновить", + "mute": "Заглушить", "share": "Поделиться", "copy_link": "Скопировать ссылку", "disconnect": "Отключить" @@ -460,8 +461,8 @@ "account_deleted": "Аккаунт удалён", "notifications_title": "Уведомления", - "notifications_switch_title": "Уведомления", - "notification_switch_description": "Получайте уведомления при получении TON, токенов и NFT", + "notifications_switch_title": "Push-уведомления", + "notification_switch_description": "Получайте уведомления при получении TON, токенов, NFT и уведомления от подключенных приложений.", "notifications_disabled_title": "Уведомления отключены", "notifications_disabled_description": "Вы отключили уведомления в настройках устройства. Чтобы ничего не пропустить разрешите уведомления.", "notifications_disabled_action": "Открыть настройки", @@ -602,7 +603,7 @@ "reminder_notifications_later_button": "Позже", "ton_login_title": "Войти в %{name}", - "ton_login_caption": "%{name} запрашивает доступ к адресу вашего кошелька\u2028", + "ton_login_caption": "%{name} запрашивает доступ к адресу вашего кошелька\n", "ton_login_connect_button": "Подключить кошелёк", "ton_login_back_to_button": "Вернуться в %{name}", "ton_login_success": "Готово", @@ -858,7 +859,18 @@ "disconnected_app": "Disconnected app", "earlier": "Ранее", "apps": "Приложения", - "allow_notifications": "Разрешить уведомления" + "apps_description": "Уведомления от подключенных приложений в вашей активности", + "allow_notifications": "Разрешить уведомления", + "placeholder": { + "title": "Уведомления будут отображаться здесь", + "description": "Исследуйте приложения и сервисы в браузере Tonkeeper." + }, + "alert": { + "title": "Вы уверены, что хотите открыть внешнюю ссылку?", + "description": "Адрес ссылки из уведомления не совпадает с адресом приложения.", + "open": "Открыть всё равно", + "cancel": "Отмена" + } } } From fb659fd21fba16630f953e625777cacda7e06857 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 7 Jul 2023 16:29:41 +0400 Subject: [PATCH 49/73] fix: auto-approve contractDeploy addresses too --- .../core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mobile/src/core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx b/packages/mobile/src/core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx index 8f9d59a50..a08deeee4 100644 --- a/packages/mobile/src/core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx +++ b/packages/mobile/src/core/ModalContainer/NFTOperations/Modals/SignRawModal.tsx @@ -58,6 +58,7 @@ export const SignRawModal = memo((props) => { const tokens = actions .map((action) => ({ address: + (action.type === 'ContractDeploy' && action[action.type].address) || action[action.type]?.nft?.collection?.address || action[action.type]?.nft?.address || action[action.type]?.nft || From fad9d1a3471ac271de662c39bb1898313add5f9c Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 7 Jul 2023 16:57:14 +0400 Subject: [PATCH 50/73] fix: review fixes --- .../core/HideableAmount/HideableAmount.tsx | 23 ++++++++++++++----- .../HideableAmount/HideableAmountProvider.tsx | 15 +++++++++--- .../src/core/HideableAmount/HideableImage.tsx | 7 ++++-- .../src/core/HideableAmount/ShowBalance.tsx | 19 +++++++++++---- .../HideableAmount/useHideableFormatter.tsx | 6 ++--- .../mobile/src/tabs/Wallet/NFTCardItem.tsx | 21 ++++++++++++----- 6 files changed, 66 insertions(+), 25 deletions(-) diff --git a/packages/mobile/src/core/HideableAmount/HideableAmount.tsx b/packages/mobile/src/core/HideableAmount/HideableAmount.tsx index 818e42626..a7f07f339 100644 --- a/packages/mobile/src/core/HideableAmount/HideableAmount.tsx +++ b/packages/mobile/src/core/HideableAmount/HideableAmount.tsx @@ -1,17 +1,28 @@ -import React, { useContext } from 'react'; +import React from 'react'; import { Text } from '$uikit'; import { TextProps } from '$uikit/Text/Text'; import Animated, { interpolate, useAnimatedStyle } from 'react-native-reanimated'; import { Steezy } from '$styles'; -import { HideableAmountContext } from '$core/HideableAmount/HideableAmountProvider'; +import { useHideableAmount } from '$core/HideableAmount/HideableAmountProvider'; -const HideableAmountComponent: React.FC = ({ +export enum AnimationDirection { + Left = -1, + Right = 1, + None = 0, +} + +const HideableAmountComponent: React.FC< + TextProps & { stars?: string; animationDirection?: AnimationDirection } +> = ({ children, style, + animationDirection = AnimationDirection.Right, stars = '* * *', ...rest }) => { - const animationProgress = useContext(HideableAmountContext); + const animationProgress = useHideableAmount(); + + const translateXTo = 10 * animationDirection; const amountStyle = useAnimatedStyle(() => { return { @@ -19,7 +30,7 @@ const HideableAmountComponent: React.FC = ({ opacity: interpolate(animationProgress.value, [0, 0.5], [1, 0]), transform: [ { - translateX: interpolate(animationProgress.value, [0, 0.5], [0, 10]), + translateX: interpolate(animationProgress.value, [0, 0.5], [0, translateXTo]), }, { scale: interpolate(animationProgress.value, [0, 0.5], [1, 0.85]), @@ -34,7 +45,7 @@ const HideableAmountComponent: React.FC = ({ opacity: interpolate(animationProgress.value, [1, 0.5], [1, 0]), transform: [ { - translateX: interpolate(animationProgress.value, [1, 0.5], [0, 10]), + translateX: interpolate(animationProgress.value, [1, 0.5], [0, translateXTo]), }, { scale: interpolate(animationProgress.value, [1, 0.5], [1, 0.85]), diff --git a/packages/mobile/src/core/HideableAmount/HideableAmountProvider.tsx b/packages/mobile/src/core/HideableAmount/HideableAmountProvider.tsx index 5f9062505..e4f337e98 100644 --- a/packages/mobile/src/core/HideableAmount/HideableAmountProvider.tsx +++ b/packages/mobile/src/core/HideableAmount/HideableAmountProvider.tsx @@ -1,9 +1,8 @@ -import { createContext, ReactNode } from 'react'; +import React, { createContext, ReactNode, useContext } from 'react'; import { SharedValue, useSharedValue, withTiming } from 'react-native-reanimated'; import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; -// @ts-ignore -export const HideableAmountContext = createContext>(null); +export const HideableAmountContext = createContext | null>(null); const ANIMATION_DURATION = 300; @@ -23,3 +22,13 @@ export const HideableAmountProvider: React.FC<{ children: ReactNode }> = ({ ); }; + +export const useHideableAmount = () => { + const context = useContext(HideableAmountContext); + + if (context === null) { + throw new Error('Need wrap HideableAmountContext'); + } + + return context; +}; diff --git a/packages/mobile/src/core/HideableAmount/HideableImage.tsx b/packages/mobile/src/core/HideableAmount/HideableImage.tsx index 91a42363b..738581c20 100644 --- a/packages/mobile/src/core/HideableAmount/HideableImage.tsx +++ b/packages/mobile/src/core/HideableAmount/HideableImage.tsx @@ -1,6 +1,9 @@ import { StyleProp, ViewStyle, StyleSheet, ImageStyle } from 'react-native'; import React, { memo, ReactNode, useContext } from 'react'; -import { HideableAmountContext } from '$core/HideableAmount/HideableAmountProvider'; +import { + HideableAmountContext, + useHideableAmount, +} from '$core/HideableAmount/HideableAmountProvider'; import { useAnimatedStyle } from 'react-native-reanimated'; import { View } from '$uikit'; import Animated from 'react-native-reanimated'; @@ -23,7 +26,7 @@ const HideableImageComponent: React.FC = ({ imageStyle, image, }) => { - const animationProgress = useContext(HideableAmountContext); + const animationProgress = useHideableAmount(); const blurContainerStyle = useAnimatedStyle(() => { return { opacity: animationProgress.value, diff --git a/packages/mobile/src/core/HideableAmount/ShowBalance.tsx b/packages/mobile/src/core/HideableAmount/ShowBalance.tsx index 3bd87b1b8..742d377f4 100644 --- a/packages/mobile/src/core/HideableAmount/ShowBalance.tsx +++ b/packages/mobile/src/core/HideableAmount/ShowBalance.tsx @@ -1,8 +1,11 @@ import React, { useCallback, useContext } from 'react'; -import { HideableAmount } from '$core/HideableAmount/HideableAmount'; +import { AnimationDirection, HideableAmount } from '$core/HideableAmount/HideableAmount'; import { TouchableHighlight, TouchableOpacity } from 'react-native-gesture-handler'; import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; -import { HideableAmountContext } from '$core/HideableAmount/HideableAmountProvider'; +import { + HideableAmountContext, + useHideableAmount, +} from '$core/HideableAmount/HideableAmountProvider'; import Animated, { useAnimatedStyle } from 'react-native-reanimated'; import { Steezy } from '$styles'; import { Pressable, View } from '$uikit'; @@ -14,7 +17,7 @@ const TouchableComponent = isAndroid ? Pressable : TouchableHighlight; export const ShowBalance: React.FC<{ amount: string }> = ({ amount }) => { const hideAmounts = usePrivacyStore((state) => state.actions.toggleHiddenAmounts); - const animationProgress = useContext(HideableAmountContext); + const animationProgress = useHideableAmount(); const { colors } = useTheme(); const handleToggleHideAmounts = useCallback(() => { @@ -39,7 +42,9 @@ export const ShowBalance: React.FC<{ amount: string }> = ({ amount }) => { - {amount} + + {amount} + @@ -48,7 +53,11 @@ export const ShowBalance: React.FC<{ amount: string }> = ({ amount }) => { underlayColor={DarkTheme.colors.backgroundHighlighted} onPress={handleToggleHideAmounts} > - + {amount} diff --git a/packages/mobile/src/core/HideableAmount/useHideableFormatter.tsx b/packages/mobile/src/core/HideableAmount/useHideableFormatter.tsx index 994ea18e0..4b9b3459e 100644 --- a/packages/mobile/src/core/HideableAmount/useHideableFormatter.tsx +++ b/packages/mobile/src/core/HideableAmount/useHideableFormatter.tsx @@ -3,14 +3,14 @@ import { useCallback } from 'react'; import { usePrivacyStore } from '$store/zustand/privacy/usePrivacyStore'; import { AmountFormatOptions, AmountNumber } from '$libs/AmountFormatter'; -export const useHideableFormatter = (countOfStars = 3) => { +export const useHideableFormatter = () => { const isHidden = usePrivacyStore((state) => state.hiddenAmounts); const format = useCallback( (amount: AmountNumber = 0, options: AmountFormatOptions = {}) => { - return !isHidden ? formatter.format(amount, options) : '*'.repeat(countOfStars); + return !isHidden ? formatter.format(amount, options) : '* * *'; }, - [countOfStars, isHidden], + [isHidden], ); return format; }; diff --git a/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx b/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx index 652e7945b..003c09d37 100644 --- a/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx +++ b/packages/mobile/src/tabs/Wallet/NFTCardItem.tsx @@ -1,8 +1,7 @@ import { useTranslator } from '$hooks'; import { openNFT } from '$navigation'; -import { DarkTheme } from '$styles'; -import { Steezy } from '$styles'; -import { View, Icon, Pressable } from '$uikit'; +import { DarkTheme, Steezy } from '$styles'; +import { Icon, Pressable, View } from '$uikit'; import { checkIsTonDiamondsNFT, maskifyTonAddress } from '$utils'; import { useFlags } from '$utils/flags'; import _ from 'lodash'; @@ -10,7 +9,7 @@ import React, { memo, useCallback, useMemo } from 'react'; import * as S from '../../core/NFTs/NFTItem/NFTItem.style'; import { useExpiringDomains } from '$store/zustand/domains/useExpiringDomains'; import { Address } from '$libs/Ton'; -import { HideableAmount } from '$core/HideableAmount/HideableAmount'; +import { AnimationDirection, HideableAmount } from '$core/HideableAmount/HideableAmount'; import { HideableImage } from '$core/HideableAmount/HideableImage'; interface NFTCardItemProps { @@ -74,10 +73,20 @@ export const NFTCardItem = memo((props) => { )} - + {title} - + {isDNS ? 'TON DNS' : item?.collection From f20965de844e106c2936eadfd6c942e772b3e304 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 7 Jul 2023 17:39:42 +0400 Subject: [PATCH 51/73] fix: calculate width properly in PopupSelect --- .../DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx | 2 +- packages/mobile/src/uikit/PopupSelect/PopupSelect.tsx | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx b/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx index 7789040fa..919682892 100644 --- a/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx +++ b/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx @@ -163,7 +163,7 @@ const BrowserNavBarComponent: FC = (props) => { onChange={handlePressAction} renderItem={(item) => {item.label}} keyExtractor={(item) => item.label} - autoWidth={true} + autoWidth minWidth={180} > Date: Fri, 7 Jul 2023 17:48:26 +0400 Subject: [PATCH 52/73] fix: proper icon --- .../assets/icons/png/ic-bell-disable-16@4x.png | Bin 0 -> 1917 bytes .../assets/icons/svg/16/ic-bell-disable-16.svg | 10 ++++++++++ .../components/BrowserNavBar/BrowserNavBar.tsx | 2 +- .../mobile/src/uikit/Icon/IconsMobileList.ts | 1 + .../mobile/src/uikit/Icon/generated.types.ts | 3 +++ 5 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 packages/mobile/src/assets/icons/png/ic-bell-disable-16@4x.png create mode 100644 packages/mobile/src/assets/icons/svg/16/ic-bell-disable-16.svg diff --git a/packages/mobile/src/assets/icons/png/ic-bell-disable-16@4x.png b/packages/mobile/src/assets/icons/png/ic-bell-disable-16@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..f362b7cb0382ebea161221b1532b79193f853780 GIT binary patch literal 1917 zcmV-@2ZH#CP)EMG+DZ6(TA`3j~rhIIT!? zsUMIKgck$>Bq~4^Qo#jY0C5o%B;cWxTTznQEszB21YBsu10aw9A*c!}ATC9{xUJWY zFMD`ML(_C-Gmdw+LGV8%GiS~me>*;NTLb^=zb$g2la=oss?AUMnuu@}z?U%i0)XlO zR0A*oWB}R+@E!tvXMlGVDZew-S$oLt*lY#Rx>a8W;)eiS2f$lq^AZT7#QeJ39~>NM zrwJQElml4P&%U%LyMe*COd8T=w?7b54Wu=my%sRW0JtrP^EZH=Dx?E1rg|x7fxmy` zl2sh?WFKMhIsl6REMoAwVopy)hPg`3wXqh~e0Tsj3*e`GA^n@y!A!eFJ^`2jpkq&d zh9asE7+hOXWI~@<3>Su0Y|Xsbw2A#z_>=-Lkt&4YxdfylCfwl->ARY@A3dW|Us3=J z+HBHpRtR2y@EI^(#blNTfCB&qiEz6Cx~fF(3n{2ohl^TO!CR_>fh!1nD}YS^{#1y) z(OshP74KxvSFn{zngk=mTvf{H+ZedPr2UA;uXUOw#x>bEC17M?na5`f6?{u(fvg`I)Emo~IHC%9bnq@>@Lro_Rpk`EQ5Vm8nWK=dK@ zxq^X40A^EQMm!WNTt0J00I^ZD@ydu)Ssse0v(Uxgko^LN^{j& zK$uWGhOu}0|0C@*QAlfDa1cV?Q`#%8p@k~#RRM@kcdDxo&n!yyQZ8K7Ry(z9uFEbs zDTZTOpweCyfbeOJM35Ji4@4;+E@?fc5EyOVu)eKQ2m?{d17Jaw56rV}_U3XVrX(jJ zR3h5|0RIjMwgLd=KLpzW0P`DyBLIN;3&Ak}!2E>ZC;(voL2w)ZU<-ubXBH6f2Z%)L zgA+6>fR=4XFNF=)=mSy87Y=Jtm@S)C&l8y5IH`!~HI+DK1>jeE9_IpEm96-dx z%$9ox=?GZU&pr?fkDM5Eq)_C?tO~;E4b*f=0i-?IK7fRKY8Q-0Q_<=_tPI4`oKS{@ z046)&2SjxQ>~Z^p&si0~bXk=X%8?L2DW|tGaHgn^neMmq{?BO$LI5m3P~4U5))JL= zI-8~-IB_d21VDsyB=&Ds(pfoj>S|s*0t^jS`|Kc z@ULJq5kCu{WNCoTXx7B2oXMNxxq26j+d$k5Mm>NUOG0!;(wt!FRMr~L`~={N=s6%f@CF zS_*&|p9{-@zLx$2Ayq$3iGyJ<`Xs(S6P2q#V8L%7ECs;qeiP!G+C}8?y{xi~j>XvJ zW#223?KqdnE!~hQj)W6rDS%{;e>bGlCPl{^GFu|U`=!YZ%gP)4dzcFhx;cHHWKr@K5uY00OX39dIGIt#@zr;m$Wks#+75; zLE%?mrXs^!Rm^2KO#SqSL7P4Pz{4|>pe-AkmPF + + + + + + + + + diff --git a/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx b/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx index 7789040fa..5098f93a6 100644 --- a/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx +++ b/packages/mobile/src/core/DAppBrowser/components/BrowserNavBar/BrowserNavBar.tsx @@ -77,7 +77,7 @@ const BrowserNavBarComponent: FC = (props) => { items.push({ type: PopupActionType.MUTE, label: t('browser.actions.mute'), - icon: 'ic-disconnect-16', + icon: 'ic-bell-disable-16', }); } diff --git a/packages/mobile/src/uikit/Icon/IconsMobileList.ts b/packages/mobile/src/uikit/Icon/IconsMobileList.ts index 5ee9bf4ce..73f9c2673 100644 --- a/packages/mobile/src/uikit/Icon/IconsMobileList.ts +++ b/packages/mobile/src/uikit/Icon/IconsMobileList.ts @@ -11,6 +11,7 @@ export const MobileIconsList = { 'ic-appearance-16': require('$assets/icons/png/ic-appearance-16.png'), 'ic-arrow-down-16': require('$assets/icons/png/ic-arrow-down-16.png'), 'ic-arrow-up-16': require('$assets/icons/png/ic-arrow-up-16.png'), + 'ic-bell-disable-16': require('$assets/icons/png/ic-bell-disable-16.png'), 'ic-chevron-16': require('$assets/icons/png/ic-chevron-16.png'), 'ic-chevron-down-16': require('$assets/icons/png/ic-chevron-down-16.png'), 'ic-chevron-left-16': require('$assets/icons/png/ic-chevron-left-16.png'), diff --git a/packages/mobile/src/uikit/Icon/generated.types.ts b/packages/mobile/src/uikit/Icon/generated.types.ts index 690fcce00..7ce7342db 100644 --- a/packages/mobile/src/uikit/Icon/generated.types.ts +++ b/packages/mobile/src/uikit/Icon/generated.types.ts @@ -11,6 +11,7 @@ export type IconNames = | 'ic-appearance-16' | 'ic-arrow-down-16' | 'ic-arrow-up-16' + | 'ic-bell-disable-16' | 'ic-chevron-16' | 'ic-chevron-down-16' | 'ic-chevron-left-16' @@ -132,6 +133,7 @@ export const AllIcons = [ 'ic-appearance-16', 'ic-arrow-down-16', 'ic-arrow-up-16', + 'ic-bell-disable-16', 'ic-chevron-16', 'ic-chevron-down-16', 'ic-chevron-left-16', @@ -254,6 +256,7 @@ export const IconSizes = { 'ic-appearance-16': 16, 'ic-arrow-down-16': 16, 'ic-arrow-up-16': 16, + 'ic-bell-disable-16': 16, 'ic-chevron-16': 16, 'ic-chevron-down-16': 16, 'ic-chevron-left-16': 16, From 90f373187c84e0d29c16d6b6035aca1b918480cb Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 7 Jul 2023 18:18:03 +0400 Subject: [PATCH 53/73] fix: don't go to Amount step if address is set --- packages/mobile/src/core/Send/Send.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/mobile/src/core/Send/Send.tsx b/packages/mobile/src/core/Send/Send.tsx index b9a95ebaf..443809390 100644 --- a/packages/mobile/src/core/Send/Send.tsx +++ b/packages/mobile/src/core/Send/Send.tsx @@ -49,10 +49,7 @@ export const Send: FC = ({ route }) => { if (initialAmount !== '0' && initialFee !== '0') { return SendSteps.CONFIRM; } - if (initialAddress) { - return SendSteps.AMOUNT; - } - }, [initialAmount, initialFee, initialAddress]); + }, [initialAmount, initialFee]); const t = useTranslator(); From 047e8926e1a4d1b26e606d5111459ddc1ee07ccc Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Mon, 10 Jul 2023 23:01:16 +0400 Subject: [PATCH 54/73] fix: use background with dominant color on Android --- packages/mobile/android/app/build.gradle | 2 +- packages/mobile/package.json | 1 + .../src/core/HideableAmount/HideableImage.tsx | 17 +- .../DominantColorBackground.tsx | 39 ++ packages/mobile/src/uikit/index.ts | 1 + yarn.lock | 347 +++++++++++++++++- 6 files changed, 388 insertions(+), 19 deletions(-) create mode 100644 packages/mobile/src/uikit/DominantColorBackground/DominantColorBackground.tsx diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index 40c967846..aad04d3f0 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,7 +123,7 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 330 + versionCode 335 versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 4eb180072..a4771c905 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -97,6 +97,7 @@ "react-native-gesture-handler": "^2.9.0", "react-native-get-random-values": "^1.8.0", "react-native-haptic-feedback": "^1.11.0", + "react-native-image-colors": "^2.3.0", "react-native-keyboard-aware-scroll-view": "^0.9.5", "react-native-linear-gradient": "^2.6.2", "react-native-localize": "^2.2.4", diff --git a/packages/mobile/src/core/HideableAmount/HideableImage.tsx b/packages/mobile/src/core/HideableAmount/HideableImage.tsx index 738581c20..1adf3fb77 100644 --- a/packages/mobile/src/core/HideableAmount/HideableImage.tsx +++ b/packages/mobile/src/core/HideableAmount/HideableImage.tsx @@ -1,11 +1,8 @@ -import { StyleProp, ViewStyle, StyleSheet, ImageStyle } from 'react-native'; -import React, { memo, ReactNode, useContext } from 'react'; -import { - HideableAmountContext, - useHideableAmount, -} from '$core/HideableAmount/HideableAmountProvider'; +import { StyleProp, ViewStyle, StyleSheet, ImageStyle, Platform } from 'react-native'; +import React, { memo, ReactNode } from 'react'; +import { useHideableAmount } from '$core/HideableAmount/HideableAmountProvider'; import { useAnimatedStyle } from 'react-native-reanimated'; -import { View } from '$uikit'; +import { DominantColorBackground, View } from '$uikit'; import Animated from 'react-native-reanimated'; import { Steezy } from '$styles'; import { BlurView } from 'expo-blur'; @@ -43,7 +40,11 @@ const HideableImageComponent: React.FC = ({ blurContainerStyle, ]} > - + {Platform.OS === 'ios' ? ( + + ) : ( + + )} {image ?? ( ; +} + +const DominantColorBackgroundComponent: React.FC = ({ + uri, + style, +}) => { + const [colors, setColors] = React.useState(null); + + React.useEffect(() => { + if (!uri) { + return; + } + + getColors(uri, { + fallback: '#ffffff', + cache: true, + key: uri, + }).then(setColors); + }, [uri]); + return ( + + ); +}; + +export const DominantColorBackground = memo(DominantColorBackgroundComponent); diff --git a/packages/mobile/src/uikit/index.ts b/packages/mobile/src/uikit/index.ts index 396f9b7aa..78d0f88b6 100644 --- a/packages/mobile/src/uikit/index.ts +++ b/packages/mobile/src/uikit/index.ts @@ -48,3 +48,4 @@ export { ListButton } from './ListButton/ListButton'; export { DraggableFlashList } from './DraggableFlashList'; export { SwapIcon } from './SwapIcon/SwapIcon'; export { Checkbox } from './Checkbox'; +export { DominantColorBackground } from './DominantColorBackground/DominantColorBackground'; diff --git a/yarn.lock b/yarn.lock index e8907a51c..cc02a3c22 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2441,6 +2441,105 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jimp/bmp@^0.16.13": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.13.tgz#57ffa5b17417b5a181f6f184bdabc8218e8448ef" + integrity sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.13" + bmp-js "^0.1.0" + +"@jimp/core@^0.16.13": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.16.13.tgz#7171745a912b5b847f8bf53e70b0672c5ca92744" + integrity sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.13" + any-base "^1.1.0" + buffer "^5.2.0" + exif-parser "^0.1.12" + file-type "^16.5.4" + load-bmfont "^1.3.1" + mkdirp "^0.5.1" + phin "^2.9.1" + pixelmatch "^4.0.2" + tinycolor2 "^1.4.1" + +"@jimp/custom@^0.16.1": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.16.13.tgz#2e4ed447b7410b81fe9103682b4166af904daf84" + integrity sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/core" "^0.16.13" + +"@jimp/gif@^0.16.13": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.16.13.tgz#fa72f35d8ad67d6ce3a3d7ef6c8d04a462afaaf9" + integrity sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.13" + gifwrap "^0.9.2" + omggif "^1.0.9" + +"@jimp/jpeg@^0.16.13": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.16.13.tgz#e1c128a591bd7f8a26c8731fd0bc65d32d4ba32a" + integrity sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.13" + jpeg-js "^0.4.2" + +"@jimp/plugin-resize@^0.16.1": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.16.13.tgz#6267087f724d47e7bb8824c5b842d9315f50b8e7" + integrity sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.13" + +"@jimp/png@^0.16.13": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.16.13.tgz#8b130cc5e1e754c074c42fa3fe2609897cefdf7c" + integrity sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.13" + pngjs "^3.3.3" + +"@jimp/tiff@^0.16.13": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.16.13.tgz#9cf8d19f2b0b0c46758e81acfc7d656835ee6da1" + integrity sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q== + dependencies: + "@babel/runtime" "^7.7.2" + utif "^2.0.1" + +"@jimp/types@^0.16.1": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.16.13.tgz#39be1886cbfa4fb5e77e17441a046a1f961d3046" + integrity sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/bmp" "^0.16.13" + "@jimp/gif" "^0.16.13" + "@jimp/jpeg" "^0.16.13" + "@jimp/png" "^0.16.13" + "@jimp/tiff" "^0.16.13" + timm "^1.6.1" + +"@jimp/utils@^0.16.13": + version "0.16.13" + resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.16.13.tgz#afde41b9c6cdadfb45d83cb5e16deb65f369bf99" + integrity sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA== + dependencies: + "@babel/runtime" "^7.7.2" + regenerator-runtime "^0.13.3" + "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" @@ -3349,6 +3448,11 @@ "@svgr/plugin-svgo" "^5.5.0" loader-utils "^2.0.0" +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + "@tonapps/tonlogin-client@0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@tonapps/tonlogin-client/-/tonlogin-client-0.2.5.tgz#08ef432209ee879d5d937272f97358dc7453da69" @@ -3622,6 +3726,11 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.192.tgz#5790406361a2852d332d41635d927f1600811285" integrity sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A== +"@types/lodash@^4.14.53": + version "4.14.195" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" + integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + "@types/mime@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" @@ -3637,6 +3746,16 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== +"@types/node@16.9.1": + version "16.9.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708" + integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g== + +"@types/node@^10.11.7": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + "@types/node@^14.14.35": version "14.18.42" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.42.tgz#fa39b2dc8e0eba61bdf51c66502f84e23b66e114" @@ -4524,6 +4643,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +any-base@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" + integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -5235,6 +5359,11 @@ blueimp-md5@^2.10.0: resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w== +bmp-js@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" + integrity sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw== + bn.js@4.11.6: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -5514,6 +5643,11 @@ buffer-equal-constant-time@1.0.1: resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA== + buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" @@ -5543,7 +5677,7 @@ buffer@^4.3.0, buffer@^4.9.1: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.0.0, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.0.0, buffer@^5.2.0, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -7204,6 +7338,11 @@ dom-serializer@^2.0.0: domhandler "^5.0.2" entities "^4.2.0" +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + domain-browser@^1.1.1, domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -8010,6 +8149,11 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +exif-parser@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" + integrity sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw== + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -8415,6 +8559,15 @@ file-loader@~6.0.0: loader-utils "^2.0.0" schema-utils "^2.6.5" +file-type@^16.5.4: + version "16.5.4" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.4.tgz#474fb4f704bee427681f98dd390058a172a6c2fd" + integrity sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -8891,6 +9044,14 @@ getenv@^1.0.0: resolved "https://registry.yarnpkg.com/getenv/-/getenv-1.0.0.tgz#874f2e7544fbca53c7a4738f37de8605c3fcfc31" integrity sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg== +gifwrap@^0.9.2: + version "0.9.4" + resolved "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.4.tgz#f4eb6169ba027d61df64aafbdcb1f8ae58ccc0c5" + integrity sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ== + dependencies: + image-q "^4.0.0" + omggif "^1.0.10" + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -8969,6 +9130,14 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" +global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -9526,6 +9695,13 @@ ignore@^5.0.5, ignore@^5.1.4, ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +image-q@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/image-q/-/image-q-4.0.0.tgz#31e075be7bae3c1f42a85c469b4732c358981776" + integrity sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw== + dependencies: + "@types/node" "16.9.1" + image-size@^0.6.0: version "0.6.3" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" @@ -9904,6 +10080,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" @@ -11154,6 +11335,11 @@ join-component@^1.1.0: resolved "https://registry.yarnpkg.com/join-component/-/join-component-1.1.0.tgz#b8417b750661a392bee2c2537c68b2a9d4977cd5" integrity sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ== +jpeg-js@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.4.tgz#a9f1c6f1f9f0fa80cdb3484ed9635054d28936aa" + integrity sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg== + js-base64@^2.5.1: version "2.6.4" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" @@ -11617,6 +11803,20 @@ linkify-it@^3.0.2: dependencies: uc.micro "^1.0.1" +load-bmfont@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" + integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -12493,7 +12693,7 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, dependencies: mime-db "1.52.0" -mime@1.6.0: +mime@1.6.0, mime@^1.3.4: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -12513,6 +12713,13 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + mini-css-extract-plugin@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" @@ -12905,6 +13112,19 @@ node-stream-zip@^1.9.1: resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== +node-vibrant@3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/node-vibrant/-/node-vibrant-3.1.6.tgz#8554c3108903232cbe1e722f928469ee4379aa18" + integrity sha512-Wlc/hQmBMOu6xon12ZJHS2N3M+I6J8DhrD3Yo6m5175v8sFkVIN+UjhKVRcO+fqvre89ASTpmiFEP3nPO13SwA== + dependencies: + "@jimp/custom" "^0.16.1" + "@jimp/plugin-resize" "^0.16.1" + "@jimp/types" "^0.16.1" + "@types/lodash" "^4.14.53" + "@types/node" "^10.11.7" + lodash "^4.17.20" + url "^0.11.0" + normalize-css-color@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d" @@ -13133,6 +13353,11 @@ octal@^1.0.0: resolved "https://registry.yarnpkg.com/octal/-/octal-1.0.0.tgz#63e7162a68efbeb9e213588d58e989d1e5c4530b" integrity sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ== +omggif@^1.0.10, omggif@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -13363,16 +13588,16 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pako@^1.0.5, pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -13408,6 +13633,29 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" + integrity sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA== + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" + integrity sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA== + +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + dependencies: + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" + +parse-headers@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -13572,11 +13820,21 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + picocolors@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" @@ -13619,6 +13877,13 @@ pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.5: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== +pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + integrity sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA== + dependencies: + pngjs "^3.0.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -13648,7 +13913,7 @@ plist@^3.0.5: base64-js "^1.5.1" xmlbuilder "^15.1.1" -pngjs@^3.3.0: +pngjs@^3.0.0, pngjs@^3.3.0, pngjs@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== @@ -15143,6 +15408,13 @@ react-native-haptic-feedback@^1.11.0: resolved "https://registry.yarnpkg.com/react-native-haptic-feedback/-/react-native-haptic-feedback-1.14.0.tgz#b50f49dedda4980b3c37c5780823f753cf3ee717" integrity sha512-dSXZ6gAzl+W/L7BPjOpnT0bx0cgQiSr0sB3DjyDJbGIdVr4ISaktZC6gC9xYFTv2kMq0+KtbKi+dpd0WtxYZMw== +react-native-image-colors@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/react-native-image-colors/-/react-native-image-colors-2.3.0.tgz#a4dcd6e486b5bd2bc1c07600467d925f56fed36e" + integrity sha512-zC858erFF9W+6vUDkoU9Ryqx8IT5a9chp+ZkBShvKHmX3pAkGG2H3JlLjQFOiPw8/n7IZjLJovru9zvnACIhxg== + dependencies: + node-vibrant "3.1.6" + react-native-iphone-x-helper@^1.0.3: version "1.3.1" resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz#20c603e9a0e765fd6f97396638bdeb0e5a60b010" @@ -15603,6 +15875,13 @@ readable-stream@~1.0.26, readable-stream@~1.0.26-4: isarray "0.0.1" string_decoder "~0.10.x" +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -15693,7 +15972,7 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.9: +regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.9: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== @@ -16999,6 +17278,14 @@ strnum@^1.0.5: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== +strtok3@^6.2.4: + version "6.3.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + structured-headers@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/structured-headers/-/structured-headers-0.4.1.tgz#77abd9410622c6926261c09b9d16cf10592694d1" @@ -17433,11 +17720,21 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +timm@^1.6.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" + integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== + timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== +tinycolor2@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" + integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -17497,6 +17794,14 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +token-types@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.1.tgz#0f897f03665846982806e138977dbe72d44df753" + integrity sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + ton-core@^0.47.1: version "0.47.1" resolved "https://registry.yarnpkg.com/ton-core/-/ton-core-0.47.1.tgz#22298d79e345ea1a34825b4044dda5a7c5995474" @@ -18012,6 +18317,13 @@ utf8@^3.0.0: resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== +utif@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" + integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + dependencies: + pako "^1.0.5" + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -18864,6 +19176,16 @@ xcode@^3.0.0, xcode@^3.0.1: simple-plist "^1.1.0" uuid "^7.0.3" +xhr@^2.0.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + xml-js@^1.6.11: version "1.6.11" resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" @@ -18876,7 +19198,12 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xml2js@0.4.23: +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" + integrity sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g== + +xml2js@0.4.23, xml2js@^0.4.5: version "0.4.23" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== From 17abd8f364a039dc8eaee2980d5936af4c77e5d1 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Wed, 12 Jul 2023 15:47:28 +0300 Subject: [PATCH 55/73] fix(mobile): remove tc notifications --- packages/mobile/index.js | 1 + packages/mobile/src/core/DevMenu/DevMenu.tsx | 18 ++--- .../src/core/TonConnect/TonConnectModal.tsx | 6 +- .../MainStack/TabStack/TabStack.tsx | 4 +- .../src/tabs/Activity/ActivityScreen.tsx | 69 +++---------------- 5 files changed, 25 insertions(+), 73 deletions(-) diff --git a/packages/mobile/index.js b/packages/mobile/index.js index c96b40a53..c4351e1f1 100644 --- a/packages/mobile/index.js +++ b/packages/mobile/index.js @@ -32,6 +32,7 @@ if (__DEV__) { async function handleDappMessage(remoteMessage) { // handle data-only messages + return; if (remoteMessage.notification?.body) { return null; } diff --git a/packages/mobile/src/core/DevMenu/DevMenu.tsx b/packages/mobile/src/core/DevMenu/DevMenu.tsx index 1274c0d74..93cc0b1f5 100644 --- a/packages/mobile/src/core/DevMenu/DevMenu.tsx +++ b/packages/mobile/src/core/DevMenu/DevMenu.tsx @@ -21,7 +21,7 @@ import { jettonsActions } from '$store/jettons'; import { Switch } from 'react-native-gesture-handler'; import { DevFeature, Toast, useDevFeaturesToggle } from '$store'; import { tags } from '$translation'; -import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; +// import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; export const DevMenu: FC = () => { const tabBarHeight = useBottomTabBarHeight(); @@ -30,7 +30,7 @@ export const DevMenu: FC = () => { const t = useTranslator(); const isTestnet = useSelector(isTestnetSelector); const alwaysShowV4R1 = useSelector(alwaysShowV4R1Selector); - const addNotification = useNotificationsStore((state) => state.actions.addNotification); + // const addNotification = useNotificationsStore((state) => state.actions.addNotification); const handleToggleTestnet = useCallback(() => { Alert.alert(t('settings_network_alert_title'), '', [ @@ -90,13 +90,13 @@ export const DevMenu: FC = () => { }, [nav]); const handlePushNotification = useCallback(() => { - addNotification({ - message: 'Test notification added', - dapp_url: 'https://getgems.io', - received_at: Date.now(), - link: 'https://getgems.io', - }); - }, [addNotification]); + // addNotification({ + // message: 'Test notification added', + // dapp_url: 'https://getgems.io', + // received_at: Date.now(), + // link: 'https://getgems.io', + // }); + }, []); const handleCopyVersion = useCallback(() => { Clipboard.setString(DeviceInfo.getVersion() + ` (${DeviceInfo.getBuildNumber()})`); diff --git a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx index cef9e9e64..cb1fea18a 100644 --- a/packages/mobile/src/core/TonConnect/TonConnectModal.tsx +++ b/packages/mobile/src/core/TonConnect/TonConnectModal.tsx @@ -29,7 +29,7 @@ import { t } from '$translation'; import { TonConnectModalProps } from './models'; import { useEffect } from 'react'; import { Modal, useNavigation } from '$libs/navigation'; -import { store, Toast, useNotificationsStore } from '$store'; +import { store, Toast } from '$store'; import { openRequireWalletModal, push } from '$navigation'; import { SheetActions } from '$libs/navigation/components/Modal/Sheet/SheetsProvider'; import { mainSelector } from '$store/main'; @@ -337,7 +337,7 @@ export const TonConnectModal = (props: TonConnectModalProps) => { : null} - {isTonConnectV2 ? ( + {/* {isTonConnectV2 ? ( <> { - ) : null} + ) : null} */} { const { bottomSeparatorStyle } = useContext(ScrollPositionContext); const safeArea = useSafeAreaInsets(); const theme = useTheme(); - const shouldShowRedDot = useNotificationsStore((state) => state.should_show_red_dot); + // const shouldShowRedDot = useNotificationsStore((state) => state.should_show_red_dot); useLoadExpiringDomains(); useNotificationsSubscribe(); @@ -97,7 +97,7 @@ export const TabStack: FC = () => { tabBarIcon: ({ color }) => ( - + {/* */} ), }} diff --git a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx index 940a01a8c..d4ed4dd2f 100644 --- a/packages/mobile/src/tabs/Activity/ActivityScreen.tsx +++ b/packages/mobile/src/tabs/Activity/ActivityScreen.tsx @@ -21,7 +21,7 @@ import { useAppStateActive, usePrevious, useTheme, useTranslator } from '$hooks' import { walletActions, walletSelector } from '$store/wallet'; import { ns } from '$utils'; import { NavBarHeight, TabletMaxWidth } from '$shared/constants'; -import { openNotificationsScreen, openRequireWalletModal } from '$navigation'; +import { openRequireWalletModal } from '$navigation'; import { eventsActions, eventsSelector } from '$store/events'; import { mainActions } from '$store/main'; import { LargeNavBarInteractiveDistance } from '$uikit/LargeNavBar/LargeNavBar'; @@ -30,8 +30,6 @@ import { TransactionsList } from '$core/Balances/TransactionsList/TransactionsLi import { useNavigation } from '$libs/navigation'; import { useNotificationsStore } from '$store/zustand/notifications/useNotificationsStore'; import { Steezy } from '$styles'; -import { Notification } from '$core/Notifications/Notification'; -import { getNewNotificationsCount } from '$core/Notifications/NotificationsActivity'; export const ActivityScreen: FC = () => { const nav = useNavigation(); @@ -45,9 +43,9 @@ export const ActivityScreen: FC = () => { eventsInfo, canLoadMore, } = useSelector(eventsSelector); - const notifications = useNotificationsStore((state) => state.notifications); - const lastSeenAt = useNotificationsStore((state) => state.last_seen); - const removeRedDot = useNotificationsStore((state) => state.actions.removeRedDot); + // const notifications = useNotificationsStore((state) => state.notifications); + // const lastSeenAt = useNotificationsStore((state) => state.last_seen); + // const removeRedDot = useNotificationsStore((state) => state.actions.removeRedDot); const netInfo = useNetInfo(); const prevNetInfo = usePrevious(netInfo); @@ -56,11 +54,11 @@ export const ActivityScreen: FC = () => { const isEventsLoadingMore = !isRefreshing && isEventsLoading && !!wallet; - useEffect(() => { - if (isFocused) { - removeRedDot(); - } - }, [isFocused, removeRedDot]); + // useEffect(() => { + // if (isFocused) { + // removeRedDot(); + // } + // }, [isFocused, removeRedDot]); useEffect(() => { const timer = setTimeout(() => { @@ -82,10 +80,6 @@ export const ActivityScreen: FC = () => { dispatch(walletActions.refreshBalancesPage(true)); }, [dispatch]); - const handleOpenNotificationsScreen = useCallback(() => { - openNotificationsScreen(); - }, []); - const initialData = useMemo(() => { const result: { isFirst?: boolean; @@ -108,48 +102,6 @@ export const ActivityScreen: FC = () => { LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); }, []); - const renderNotificationsHeader = useCallback(() => { - if (!notifications.length) { - return null; - } - - const newNotificationsCount = getNewNotificationsCount(notifications, lastSeenAt); - - return ( - - - {notifications - .slice(0, Math.min(newNotificationsCount, 2)) - .map((notification) => ( - - ))} - - - - - } - rightContent={ - newNotificationsCount > 0 ? ( - - {newNotificationsCount} - - ) : null - } - onPress={handleOpenNotificationsScreen} - title={t('notifications.notifications')} - subtitle={t('notifications.from_connected')} - chevron - /> - - - ); - }, [notifications, lastSeenAt, handleOpenNotificationsScreen, t, onRemoveNotification]); function renderFooter() { return ( @@ -177,7 +129,6 @@ export const ActivityScreen: FC = () => { return ( { if ( isLoaded && - (!wallet || (Object.keys(eventsInfo).length < 1 && notifications.length < 1)) + (!wallet || (Object.keys(eventsInfo).length < 1)) ) { return ( From 99ae175680a1d81dc2b715a3bb98ceab6e3f26a8 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Wed, 12 Jul 2023 15:47:40 +0300 Subject: [PATCH 56/73] bump(mobile): 3.3 336 --- packages/mobile/android/app/build.gradle | 2 +- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index aad04d3f0..8d3f9f1e2 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,7 +123,7 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 335 + versionCode 336 versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index b85f37c5e..f13c2a2bc 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 328; + CURRENT_PROJECT_VERSION = 336; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 328; + CURRENT_PROJECT_VERSION = 336; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; From d341806ce0ac891f75d07a8ab17e98f60fa1de90 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Wed, 12 Jul 2023 19:46:22 +0300 Subject: [PATCH 57/73] fix(mobile): renew domain amount --- packages/mobile/src/core/NFT/RenewDomainButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/core/NFT/RenewDomainButton.tsx b/packages/mobile/src/core/NFT/RenewDomainButton.tsx index 97ea2034f..c235b0492 100644 --- a/packages/mobile/src/core/NFT/RenewDomainButton.tsx +++ b/packages/mobile/src/core/NFT/RenewDomainButton.tsx @@ -54,7 +54,7 @@ export const RenewDomainButton = forwardRef Date: Wed, 12 Jul 2023 19:46:47 +0300 Subject: [PATCH 58/73] fix(mobile): hide tc notifications --- packages/mobile/src/core/Notifications/Notifications.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mobile/src/core/Notifications/Notifications.tsx b/packages/mobile/src/core/Notifications/Notifications.tsx index bc2fc99de..206ce7ee1 100644 --- a/packages/mobile/src/core/Notifications/Notifications.tsx +++ b/packages/mobile/src/core/Notifications/Notifications.tsx @@ -124,7 +124,7 @@ export const Notifications: React.FC = () => { value={isSubscribeNotifications} /> - {connectedApps.length ? ( + {/* {connectedApps.length ? ( <> {t('notifications.apps')} @@ -155,7 +155,7 @@ export const Notifications: React.FC = () => { ))} - ) : null} + ) : null} */} ); From 0e4b4d02b2e0a5f96d64d2307b74ed0c78e52f94 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Wed, 12 Jul 2023 19:49:28 +0300 Subject: [PATCH 59/73] fix(mobile): line break --- packages/mobile/src/translation/locales/en.json | 4 ++-- packages/mobile/src/translation/locales/it.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index 2f28b5f57..1433d2d32 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -502,7 +502,7 @@ "import_wallet_title": "Enter your\nrecovery phrase", "import_wallet_caption": "To restore access to your wallet, enter the 24 secret recovery words given to you when you created your wallet.", "import_wallet_wrong_words_err": "Incorrect phrase", - "import_wallet_reset_caption": "Please restore access to your wallet\u2028by entering 24 secret words you wrote down then creating the wallet.", + "import_wallet_reset_caption": "Please restore access to your wallet\n8by entering 24 secret words you wrote down then creating the wallet.", "create_wallet_generating": "Generating wallet...", "create_wallet_generated": "Your wallet has\njust been created!", @@ -587,7 +587,7 @@ "reminder_notifications_later_button": "Later", "ton_login_title": "Connect to %{name}?", - "ton_login_caption": "%{name} is requesting access to your wallet address\u2028", + "ton_login_caption": "%{name} is requesting access to your wallet address\n", "ton_login_connect_button": "Connect wallet", "ton_login_back_to_button": "Back to %{name}", "ton_login_success": "Done", diff --git a/packages/mobile/src/translation/locales/it.json b/packages/mobile/src/translation/locales/it.json index 6abbcd2d1..bcdfe5757 100644 --- a/packages/mobile/src/translation/locales/it.json +++ b/packages/mobile/src/translation/locales/it.json @@ -415,7 +415,7 @@ "import_wallet_title": "Inserisci la tua\frase di recupero", "import_wallet_caption": "Per ripristinare l'accesso al tuo wallet, inserisci le 24 parole di recupero segrete che ti sono state fornite quando hai creato il tuo wallet.", "import_wallet_wrong_words_err": "Frase errata", - "import_wallet_reset_caption": "Ripristina l'accesso al tuo wallet\u2028 immettendo 24 parole segrete che hai annotato e creando il wallet.", + "import_wallet_reset_caption": "Ripristina l'accesso al tuo wallet\n immettendo 24 parole segrete che hai annotato e creando il wallet.", "create_wallet_generating": "Generazione del wallet...", "create_wallet_generated": "Il tuo portafoglio è\nappena stato creato!", From 8774a3d10761957bae90f9a94bea8c9e5ae7adff Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Wed, 12 Jul 2023 19:58:41 +0300 Subject: [PATCH 60/73] fix(mobile): indent bottom for ton connect --- packages/mobile/src/core/TonConnect/TonConnect.style.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/core/TonConnect/TonConnect.style.ts b/packages/mobile/src/core/TonConnect/TonConnect.style.ts index d3281d2f4..2afd26c27 100644 --- a/packages/mobile/src/core/TonConnect/TonConnect.style.ts +++ b/packages/mobile/src/core/TonConnect/TonConnect.style.ts @@ -76,6 +76,7 @@ export const Picture = styled(FastImage)` export const Container = styled(Animated.View)` padding-horizontal: ${ns(16)}px; + padding-bottom: ${ns(16)}px; `; export const Content = styled.View` @@ -128,5 +129,4 @@ export const NoticeText = styled(Text).attrs(() => ({ textAlign: 'center', }))` margin-top: ${ns(16)}px; - padding: 0 ${ns(16)}px; `; From c9e406ae76e1a23b7e5186423296f3d9e8b147de Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Wed, 12 Jul 2023 20:03:49 +0300 Subject: [PATCH 61/73] fix(mobile): remove line break --- packages/mobile/src/translation/locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index 1433d2d32..caf2b811a 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -587,7 +587,7 @@ "reminder_notifications_later_button": "Later", "ton_login_title": "Connect to %{name}?", - "ton_login_caption": "%{name} is requesting access to your wallet address\n", + "ton_login_caption": "%{name} is requesting access to your wallet address ", "ton_login_connect_button": "Connect wallet", "ton_login_back_to_button": "Back to %{name}", "ton_login_success": "Done", From 182b59d46652bcea3619333fb30fe3b6e7218e84 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Wed, 12 Jul 2023 20:08:20 +0300 Subject: [PATCH 62/73] fix(mobile): remove round for renew domain --- packages/mobile/src/utils/date.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mobile/src/utils/date.ts b/packages/mobile/src/utils/date.ts index 11248c8b7..d3c1010a0 100644 --- a/packages/mobile/src/utils/date.ts +++ b/packages/mobile/src/utils/date.ts @@ -109,7 +109,7 @@ export function getCountOfDays(start: number, end: number) { const oneDay = 1000 * 60 * 60 * 24; const diffInTime = date2.getTime() - date1.getTime(); - const diffInDays = Math.round(diffInTime / oneDay); + const diffInDays = Math.ceil(diffInTime / oneDay); return diffInDays; } From 0c35fbee26e79ddd190ea3ee7d17a9d65d93b9a4 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Wed, 12 Jul 2023 22:53:33 +0300 Subject: [PATCH 63/73] bump(mobile): 3.3 337 --- packages/mobile/android/app/build.gradle | 2 +- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index 8d3f9f1e2..bbb1e3a52 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,7 +123,7 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 336 + versionCode 337 versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index f13c2a2bc..0b332884f 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 336; + CURRENT_PROJECT_VERSION = 337; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 336; + CURRENT_PROJECT_VERSION = 337; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; From a47123097e7e0a118679d654f69638ff3433142a Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Fri, 14 Jul 2023 16:54:11 +0300 Subject: [PATCH 64/73] fix(mobile): some fixes for release --- packages/mobile/src/translation/locales/en.json | 4 ++-- packages/mobile/src/translation/locales/ru.json | 4 ++-- packages/mobile/src/utils/date.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/mobile/src/translation/locales/en.json b/packages/mobile/src/translation/locales/en.json index caf2b811a..0ce5745b6 100644 --- a/packages/mobile/src/translation/locales/en.json +++ b/packages/mobile/src/translation/locales/en.json @@ -445,8 +445,8 @@ "account_deleted": "Account deleted", "notifications_title": "Notifications", - "notifications_switch_title": "Push notifications", - "notification_switch_description": "Get notifications when you receive TON, tokens and NFTs. Notifications from connected apps.", + "notifications_switch_title": "Notifications", + "notification_switch_description": "Get notifications when you receive TON, tokens and NFTs.", "notifications_disabled_title": "Notifications are disabled", "notifications_disabled_description": "You turned off notifications in your phone’s settings. To activate notifications, go to Settings on this device.", "notifications_disabled_action": "Open Settings", diff --git a/packages/mobile/src/translation/locales/ru.json b/packages/mobile/src/translation/locales/ru.json index b94c04243..cf97f6e75 100644 --- a/packages/mobile/src/translation/locales/ru.json +++ b/packages/mobile/src/translation/locales/ru.json @@ -461,8 +461,8 @@ "account_deleted": "Аккаунт удалён", "notifications_title": "Уведомления", - "notifications_switch_title": "Push-уведомления", - "notification_switch_description": "Получайте уведомления при получении TON, токенов, NFT и уведомления от подключенных приложений.", + "notifications_switch_title": "Уведомления", + "notification_switch_description": "Получайте уведомления при получении TON, токенов и NFT", "notifications_disabled_title": "Уведомления отключены", "notifications_disabled_description": "Вы отключили уведомления в настройках устройства. Чтобы ничего не пропустить разрешите уведомления.", "notifications_disabled_action": "Открыть настройки", diff --git a/packages/mobile/src/utils/date.ts b/packages/mobile/src/utils/date.ts index d3c1010a0..c56c282f1 100644 --- a/packages/mobile/src/utils/date.ts +++ b/packages/mobile/src/utils/date.ts @@ -109,7 +109,7 @@ export function getCountOfDays(start: number, end: number) { const oneDay = 1000 * 60 * 60 * 24; const diffInTime = date2.getTime() - date1.getTime(); - const diffInDays = Math.ceil(diffInTime / oneDay); + const diffInDays = Math.floor(diffInTime / oneDay); return diffInDays; } From 3fa87a3091cc1df613f87fffeb2c02ce23807542 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Fri, 14 Jul 2023 16:55:29 +0300 Subject: [PATCH 65/73] feat(mobile): support diamond for ton icon --- packages/mobile/src/components/TonIcon.tsx | 39 ++++++++++++++----- packages/mobile/src/core/Wallet/Wallet.tsx | 5 +-- .../tabs/Wallet/components/BalancesList.tsx | 2 +- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/packages/mobile/src/components/TonIcon.tsx b/packages/mobile/src/components/TonIcon.tsx index 414f7b2d9..b6de4472b 100644 --- a/packages/mobile/src/components/TonIcon.tsx +++ b/packages/mobile/src/components/TonIcon.tsx @@ -1,28 +1,44 @@ +import { accentSelector, accentTonIconSelector } from '$store/main'; +import { AccentKey } from '$styled'; import { Steezy } from '$styles'; -import { Icon, View } from '$uikit'; +import { Icon, TonDiamondIcon, View } from '$uikit'; import React, { memo, useMemo } from 'react'; +import { useSelector } from 'react-redux'; -type TonIconSizes = 'small'; +type TonIconSizes = 'small' | 'medium'; export interface TonIconProps { size?: TonIconSizes; transparent?: boolean; locked?: boolean; + showDiamond?: boolean; } const iconSizes: { [key in TonIconSizes]: number } = { - 'small': 44 + 'medium': 40, + 'small': 28, +} + +const containerSizes: { [key in TonIconSizes]: number } = { + 'medium': 64, + 'small': 44, } export const TonIcon = memo((props) => { - const { size = 'small', transparent, locked } = props; + const { size = 'small', transparent, showDiamond, locked } = props; - const sizeNum = iconSizes[size]; + const accentTonIcon = useSelector(accentTonIconSelector); + const accent = useSelector(accentSelector); + + const shouldShowCustomTonIcon = showDiamond && accent !== AccentKey.default; + + const containerSize = containerSizes[size]; + const iconSize = iconSizes[size]; const sizeStyle = useMemo(() => ({ - width: sizeNum, - height: sizeNum, - borderRadius: sizeNum / 2, + width: containerSize, + height: containerSize, + borderRadius: containerSize / 2, }), []); const containerStyle = useMemo(() => [ @@ -33,7 +49,11 @@ export const TonIcon = memo((props) => { return ( - + {shouldShowCustomTonIcon && accentTonIcon ? ( + + ) : ( + + )} {locked && ( @@ -48,6 +68,7 @@ const styles = Steezy.create(({ colors }) => ({ backgroundColor: '#0088CC', justifyContent: 'center', alignItems: 'center', + overflow: 'hidden', }, backgroundTransparent: { backgroundColor: colors.backgroundContentTint diff --git a/packages/mobile/src/core/Wallet/Wallet.tsx b/packages/mobile/src/core/Wallet/Wallet.tsx index 8aa969b97..14a5b7f60 100644 --- a/packages/mobile/src/core/Wallet/Wallet.tsx +++ b/packages/mobile/src/core/Wallet/Wallet.tsx @@ -42,6 +42,7 @@ import { formatter } from '$utils/formatter'; import { Toast } from '$store'; import { useFlags } from '$utils/flags'; import { HideableAmount } from '$core/HideableAmount/HideableAmount'; +import { TonIcon } from '../../components/TonIcon'; const exploreActions = [ { @@ -257,9 +258,7 @@ export const Wallet: FC = ({ route }) => { {formattedFiatAmount} - - - + diff --git a/packages/mobile/src/tabs/Wallet/components/BalancesList.tsx b/packages/mobile/src/tabs/Wallet/components/BalancesList.tsx index 77c1c6d96..78456fab8 100644 --- a/packages/mobile/src/tabs/Wallet/components/BalancesList.tsx +++ b/packages/mobile/src/tabs/Wallet/components/BalancesList.tsx @@ -65,7 +65,7 @@ const RenderItem = ({ item }: { item: Content }) => { if (typeof item.tonIcon === 'object') { return ; } else if (typeof item.tonIcon === 'boolean') { - return ; + return ; } }; From 05839ffe1afe0cbff0da227f97c7b0163bd6f18a Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Fri, 14 Jul 2023 16:56:19 +0300 Subject: [PATCH 66/73] bump(mobile): 3.3 338 --- packages/mobile/android/app/build.gradle | 2 +- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index bbb1e3a52..e0bd493bc 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,7 +123,7 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 337 + versionCode 338 versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index 0b332884f..4151b5b43 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 337; + CURRENT_PROJECT_VERSION = 338; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 337; + CURRENT_PROJECT_VERSION = 338; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; From 4a4cbdab4604493846440b81aff21fe33143fee2 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 14 Jul 2023 18:02:50 +0400 Subject: [PATCH 67/73] fix: fully hide subscribe amount --- .../mobile/src/hooks/usePrepareAction.tsx | 30 ++++++++----------- .../src/hooks/usePrepareDetailedAction.tsx | 5 ++-- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/packages/mobile/src/hooks/usePrepareAction.tsx b/packages/mobile/src/hooks/usePrepareAction.tsx index c19bd031c..f4fbc938c 100644 --- a/packages/mobile/src/hooks/usePrepareAction.tsx +++ b/packages/mobile/src/hooks/usePrepareAction.tsx @@ -107,31 +107,25 @@ export function usePrepareAction( ? t('transaction_type_subscription') : t('transaction_type_unsubscription'); } - label = isSubscription ? prefix + ' ' + format(amount.toString()) : '-'; + label = isSubscription + ? format(amount.toString(), { + prefix: `${prefix} `, + currencySeparator: 'wide', + currency: CryptoCurrencies.Ton.toLocaleUpperCase(), + }) + : '-'; type = isSubscription ? 'subscription' : 'unsubscription'; - currency = isSubscription - ? formatCryptoCurrency( - '', - CryptoCurrencies.Ton, - Decimals[CryptoCurrencies.Ton], - undefined, - true, - ).trim() - : ''; } if (ActionType.AuctionBid === ActionType[rawAction.type]) { const amount = TonWeb.utils.fromNano(Math.abs(action.amount.value).toString()); - label = prefix + ' ' + format(amount.toString()); + label = format(amount.toString(), { + prefix: `${prefix} `, + currencySeparator: 'wide', + currency: CryptoCurrencies.Ton.toLocaleUpperCase(), + }); typeLabel = t('transaction_type_bid'); type = action.auctionType === 'DNS.tg' ? 'tg_dns' : 'sent'; - currency = formatCryptoCurrency( - '', - CryptoCurrencies.Ton, - Decimals[CryptoCurrencies.Ton], - undefined, - true, - ).trim(); } if (ActionType.ContractDeploy === ActionType[rawAction.type]) { diff --git a/packages/mobile/src/hooks/usePrepareDetailedAction.tsx b/packages/mobile/src/hooks/usePrepareDetailedAction.tsx index f68d4e847..c8e23686c 100644 --- a/packages/mobile/src/hooks/usePrepareDetailedAction.tsx +++ b/packages/mobile/src/hooks/usePrepareDetailedAction.tsx @@ -138,7 +138,7 @@ export function usePrepareDetailedAction( }); } else { sentLabelTranslationString = 'transaction_subscription_date'; - label = formatter.format(amount, { + label = format(amount, { prefix: `- `, withoutTruncate: true, decimals: Decimals[CryptoCurrencies.Ton], @@ -147,7 +147,7 @@ export function usePrepareDetailedAction( }); } fiatValue = !isFailed - ? formatter.format(fiatRate.today * parseFloat(amount), { + ? format(fiatRate.today * parseFloat(amount), { currency: fiatCurrency.toLocaleUpperCase(), currencySeparator: 'wide', }) @@ -310,6 +310,7 @@ export function usePrepareDetailedAction( event.timestamp, event.isScam, t, + format, fiatRate.today, fiatCurrency, getJettonPrice, From 31f81b46b102302b798a70e3ba6e1031afa74aef Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Fri, 14 Jul 2023 17:18:31 +0300 Subject: [PATCH 68/73] fix(mobile): disable renew button --- packages/mobile/src/core/NFT/NFT.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mobile/src/core/NFT/NFT.tsx b/packages/mobile/src/core/NFT/NFT.tsx index 2ad03fade..74146fb54 100644 --- a/packages/mobile/src/core/NFT/NFT.tsx +++ b/packages/mobile/src/core/NFT/NFT.tsx @@ -250,6 +250,7 @@ export const NFT: React.FC = ({ route }) => { )} {isDNS && ( Date: Fri, 14 Jul 2023 17:18:58 +0300 Subject: [PATCH 69/73] bump(mobile): 3.3 339 --- packages/mobile/android/app/build.gradle | 2 +- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index e0bd493bc..f3ac4c84d 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,7 +123,7 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 338 + versionCode 339 versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index 4151b5b43..ef75c443c 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 338; + CURRENT_PROJECT_VERSION = 339; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 338; + CURRENT_PROJECT_VERSION = 339; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; From a6b04143288007046b6c766b119fbe4624ceea2e Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Fri, 14 Jul 2023 19:04:33 +0300 Subject: [PATCH 70/73] fix(android): corner radius for diamond icon --- packages/mobile/src/components/TonIcon.tsx | 9 +++++---- .../src/uikit/TonDiamondIcon/TonDiamondIcon.style.ts | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mobile/src/components/TonIcon.tsx b/packages/mobile/src/components/TonIcon.tsx index b6de4472b..2c6a9cef4 100644 --- a/packages/mobile/src/components/TonIcon.tsx +++ b/packages/mobile/src/components/TonIcon.tsx @@ -31,6 +31,7 @@ export const TonIcon = memo((props) => { const accent = useSelector(accentSelector); const shouldShowCustomTonIcon = showDiamond && accent !== AccentKey.default; + const isTransparent = transparent ?? shouldShowCustomTonIcon; const containerSize = containerSizes[size]; const iconSize = iconSizes[size]; @@ -39,13 +40,13 @@ export const TonIcon = memo((props) => { width: containerSize, height: containerSize, borderRadius: containerSize / 2, - }), []); + }), [containerSize]); const containerStyle = useMemo(() => [ styles.container, - transparent && styles.backgroundTransparent, + isTransparent && styles.backgroundTransparent, sizeStyle, - ], []); + ], [isTransparent, sizeStyle]); return ( @@ -68,7 +69,7 @@ const styles = Steezy.create(({ colors }) => ({ backgroundColor: '#0088CC', justifyContent: 'center', alignItems: 'center', - overflow: 'hidden', + // overflow: 'hidden', }, backgroundTransparent: { backgroundColor: colors.backgroundContentTint diff --git a/packages/mobile/src/uikit/TonDiamondIcon/TonDiamondIcon.style.ts b/packages/mobile/src/uikit/TonDiamondIcon/TonDiamondIcon.style.ts index cf77349c4..6f0db6603 100644 --- a/packages/mobile/src/uikit/TonDiamondIcon/TonDiamondIcon.style.ts +++ b/packages/mobile/src/uikit/TonDiamondIcon/TonDiamondIcon.style.ts @@ -11,6 +11,7 @@ export const IconContainer = styled.View<{ size: number; isDefault?: boolean }>` : theme.colors.backgroundTertiary}; width: ${({ size }) => ns(size)}px; height: ${({ size }) => ns(size)}px; + border-radius: ${({ size }) => ns(size / 2)}px; align-items: center; justify-content: center; position: relative; From 4a48c79b48e93587e778f08e28a351557b96ecee Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Fri, 14 Jul 2023 19:05:34 +0300 Subject: [PATCH 71/73] bump(mobile): 3.3 340 --- packages/mobile/android/app/build.gradle | 2 +- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index f3ac4c84d..778dc5560 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,7 +123,7 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 339 + versionCode 340 versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index ef75c443c..2ddac674e 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 339; + CURRENT_PROJECT_VERSION = 340; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 339; + CURRENT_PROJECT_VERSION = 340; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist; From 20008ac91a9e03ab1f48ceae9b4c41fea9b7015b Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Sat, 15 Jul 2023 02:45:46 +0300 Subject: [PATCH 72/73] fix(mobile): renew domain --- packages/mobile/src/core/NFT/RenewDomainButton.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/mobile/src/core/NFT/RenewDomainButton.tsx b/packages/mobile/src/core/NFT/RenewDomainButton.tsx index c235b0492..e8b3010f2 100644 --- a/packages/mobile/src/core/NFT/RenewDomainButton.tsx +++ b/packages/mobile/src/core/NFT/RenewDomainButton.tsx @@ -14,9 +14,12 @@ import { openSignRawModal } from '$core/ModalContainer/NFTOperations/Modals/Sign import { getTimeSec } from '$utils/getTimeSec'; import { Ton } from '$libs/Ton'; +import TonWeb from 'tonweb'; + import { openAddressMismatchModal } from '$core/ModalContainer/AddressMismatch/AddressMismatch'; import { compareAddresses } from '$utils/address'; import { useWallet } from '$hooks'; +import { Base64 } from '$utils'; export type RenewDomainButtonRef = { renewUpdated: () => void; @@ -40,13 +43,19 @@ export const RenewDomainButton = forwardRef setIsPending(false), })); - const openRenew = useCallback(() => { + const openRenew = useCallback(async () => { if (!wallet || !wallet.address?.rawAddress) { return; } const valid_until = getTimeSec() + 10 * 60; + const payload = new TonWeb.boc.Cell(); + + payload.bits.writeUint(0x4eb1f0f9, 32); + payload.bits.writeUint(0, 64) + payload.bits.writeUint(0, 256); + openSignRawModal( { source: wallet.address.rawAddress, @@ -55,6 +64,7 @@ export const RenewDomainButton = forwardRef Date: Sat, 15 Jul 2023 02:46:30 +0300 Subject: [PATCH 73/73] bump(mobile): 3.3 341 --- packages/mobile/android/app/build.gradle | 2 +- packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index 778dc5560..5c285e437 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -123,7 +123,7 @@ android { applicationId "com.ton_keeper" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 340 + versionCode 341 versionName "3.3" missingDimensionStrategy 'react-native-camera', 'general' } diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index 2ddac674e..01fddd0c7 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -1218,7 +1218,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 340; + CURRENT_PROJECT_VERSION = 341; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; ENABLE_BITCODE = NO; @@ -1253,7 +1253,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = ton_keeper/ton_keeper.entitlements; - CURRENT_PROJECT_VERSION = 340; + CURRENT_PROJECT_VERSION = 341; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = CT523DK2KC; INFOPLIST_FILE = ton_keeper/SupportingFiles/Info.plist;