From acea6e8e0cd8eebce4691ee489cf420f1dc26ca3 Mon Sep 17 00:00:00 2001 From: jdabbech-ledger Date: Mon, 30 Dec 2024 12:54:34 +0100 Subject: [PATCH] :bug: (rn-ble): Extract ble plx in a static instance to fix ble connnectivity --- .changeset/clever-tables-draw.md | 6 + .changeset/young-bottles-flow.md | 5 + apps/ledger-live-mobile/package.json | 2 +- .../package.json | 2 +- .../src/BlePlxManager.ts | 72 ++ .../src/BleTransport.ts | 196 ++--- pnpm-lock.yaml | 808 ++++++++++++++++-- 7 files changed, 905 insertions(+), 186 deletions(-) create mode 100644 .changeset/clever-tables-draw.md create mode 100644 .changeset/young-bottles-flow.md create mode 100644 libs/ledgerjs/packages/react-native-hw-transport-ble/src/BlePlxManager.ts diff --git a/.changeset/clever-tables-draw.md b/.changeset/clever-tables-draw.md new file mode 100644 index 000000000000..244d69c8a25e --- /dev/null +++ b/.changeset/clever-tables-draw.md @@ -0,0 +1,6 @@ +--- +"@ledgerhq/react-native-hw-transport-ble": patch +--- + +Extract Ble plx instance in a specific class +Update react-native-ble-plx to 3.2.1 diff --git a/.changeset/young-bottles-flow.md b/.changeset/young-bottles-flow.md new file mode 100644 index 000000000000..6c1d8190b069 --- /dev/null +++ b/.changeset/young-bottles-flow.md @@ -0,0 +1,5 @@ +--- +"live-mobile": patch +--- + +Update react-native-ble-plx to 3.2.1 diff --git a/apps/ledger-live-mobile/package.json b/apps/ledger-live-mobile/package.json index 40f9b54e5c0e..ebe0d7bc340a 100644 --- a/apps/ledger-live-mobile/package.json +++ b/apps/ledger-live-mobile/package.json @@ -171,7 +171,7 @@ "react-native-android-location-services-dialog-box": "2.8.2", "react-native-animatable": "1.4.0", "react-native-biometrics": "3.0.1", - "react-native-ble-plx": "3.1.2", + "react-native-ble-plx": "3.2.1", "react-native-config": "1.5.3", "react-native-device-info": "11.1.0", "react-native-easy-markdown": "2.0.0", diff --git a/libs/ledgerjs/packages/react-native-hw-transport-ble/package.json b/libs/ledgerjs/packages/react-native-hw-transport-ble/package.json index 3c1b3d199f99..61907ae076be 100644 --- a/libs/ledgerjs/packages/react-native-hw-transport-ble/package.json +++ b/libs/ledgerjs/packages/react-native-hw-transport-ble/package.json @@ -29,7 +29,7 @@ "@ledgerhq/errors": "workspace:^", "@ledgerhq/hw-transport": "workspace:^", "@ledgerhq/logs": "workspace:^", - "react-native-ble-plx": "3.1.2", + "react-native-ble-plx": "3.2.1", "rxjs": "^7.8.1", "uuid": "^9.0.1" }, diff --git a/libs/ledgerjs/packages/react-native-hw-transport-ble/src/BlePlxManager.ts b/libs/ledgerjs/packages/react-native-hw-transport-ble/src/BlePlxManager.ts new file mode 100644 index 000000000000..2b1535a9eb64 --- /dev/null +++ b/libs/ledgerjs/packages/react-native-hw-transport-ble/src/BlePlxManager.ts @@ -0,0 +1,72 @@ +import { BleManager as RNBleManager, LogLevel, Device, BleError } from "react-native-ble-plx"; +import { awaitsBleOn } from "./awaitsBleOn"; +import { getBluetoothServiceUuids } from "@ledgerhq/devices"; + +export class BlePlxManager { + /** + * Returns the instance of the Bluetooth Low Energy Manager. It initializes it only + * when it's first needed, preventing the permission prompt happening prematurely. + * Important: Do NOT access the _bleManager variable directly. + * Use this function instead. + * @returns {BleManager} - The instance of the BleManager. + */ + static _instance: RNBleManager; + + static get instance(): RNBleManager { + if (!this._instance) { + this._instance = new RNBleManager(); + } + return this._instance; + } + + static waitOn() { + return awaitsBleOn(BlePlxManager.instance); + } + + static async getKnownDevice(identifier: string) { + const devices = await this.instance.devices([identifier]); + return devices[0]; + } + + static getConnectedDevices() { + return this.instance.connectedDevices(getBluetoothServiceUuids()); + } + + static connect(identifier: string, options: Record = {}) { + return this.instance.connectToDevice(identifier, options); + } + /** + * Exposed method from the ble-plx library + * Sets new log level for native module's logging mechanism. + * @param logLevel + */ + static async setLogLevel(logLevel: string) { + if (Object.values(LogLevel).includes(logLevel)) { + await this.instance.setLogLevel(logLevel as LogLevel); + } else { + throw new Error(`${logLevel} is not a valid LogLevel`); + } + } + + static onStateChange(listener: (state: any) => void, emitCurrentState?: boolean) { + return this.instance.onStateChange(listener, emitCurrentState); + } + + static async startScan(callback: (error: BleError | null, device: Device | null) => void) { + await this.instance.startDeviceScan(getBluetoothServiceUuids(), null, (error, device) => { + callback(error, device); + }); + } + + static async stopScan() { + await this.instance.stopDeviceScan(); + } + + static async disconnectDevice(deviceIdentifier: string) { + await this.instance.cancelDeviceConnection(deviceIdentifier); + } + + static async cancelTransaction(transactionId: string) { + await this.instance.cancelTransaction(transactionId); + } +} diff --git a/libs/ledgerjs/packages/react-native-hw-transport-ble/src/BleTransport.ts b/libs/ledgerjs/packages/react-native-hw-transport-ble/src/BleTransport.ts index f8b73dc44ac2..3c83540d3452 100644 --- a/libs/ledgerjs/packages/react-native-hw-transport-ble/src/BleTransport.ts +++ b/libs/ledgerjs/packages/react-native-hw-transport-ble/src/BleTransport.ts @@ -1,9 +1,9 @@ import { v4 as uuid } from "uuid"; -import Transport from "@ledgerhq/hw-transport"; import type { - Subscription as TransportSubscription, Observer as TransportObserver, + Subscription as TransportSubscription, } from "@ledgerhq/hw-transport"; +import Transport from "@ledgerhq/hw-transport"; // --------------------------------------------------------------------------------------------- // Since this is a react-native library and metro bundler does not support // package exports yet (see: https://github.com/facebook/metro/issues/670) @@ -15,64 +15,62 @@ import type { import { sendAPDU } from "@ledgerhq/devices/lib/ble/sendAPDU"; import { receiveAPDU } from "@ledgerhq/devices/lib/ble/receiveAPDU"; import { - BleManager, - ConnectionPriority, + BleError, BleErrorCode, - LogLevel, - DeviceId, - Device, Characteristic, - BleError, + ConnectionPriority, + Device, + DeviceId, Subscription, } from "react-native-ble-plx"; +import type { DeviceModel } from "@ledgerhq/devices"; import { BluetoothInfos, DeviceModelId, getBluetoothServiceUuids, getInfosForServiceUuid, } from "@ledgerhq/devices"; -import type { DeviceModel } from "@ledgerhq/devices"; -import { trace, LocalTracer, TraceContext } from "@ledgerhq/logs"; +import { LocalTracer, trace, TraceContext } from "@ledgerhq/logs"; import { - Observable, defer, - merge, + firstValueFrom, from, + merge, + Observable, + Observer, of, + SchedulerLike, throwError, - Observer, - firstValueFrom, TimeoutError, - SchedulerLike, } from "rxjs"; import { - share, - ignoreElements, + catchError, + finalize, first, + ignoreElements, map, + share, tap, - catchError, timeout, - finalize, } from "rxjs/operators"; import { CantOpenDevice, - TransportError, DisconnectedDeviceDuringOperation, + HwTransportError, PairingFailed, PeerRemovedPairing, - HwTransportError, + TransportError, TransportExchangeTimeoutError, } from "@ledgerhq/errors"; import { monitorCharacteristic } from "./monitorCharacteristic"; -import { awaitsBleOn } from "./awaitsBleOn"; import { decoratePromiseErrors, - remapError, - mapBleErrorToHwTransportError, IOBleErrorRemap, + mapBleErrorToHwTransportError, + remapError, } from "./remapErrors"; import { ReconnectionConfig } from "./types"; +import { BlePlxManager } from "./BlePlxManager"; const LOG_TYPE = "ble-verbose"; @@ -120,22 +118,6 @@ let connectOptions: Record = { connectionPriority: 1, }; -/** - * Returns the instance of the Bluetooth Low Energy Manager. It initializes it only - * when it's first needed, preventing the permission prompt happening prematurely. - * Important: Do NOT access the _bleManager variable directly. - * Use this function instead. - * @returns {BleManager} - The instance of the BleManager. - */ -let _bleManager: BleManager | null = null; -const bleManagerInstance = (): BleManager => { - if (!_bleManager) { - _bleManager = new BleManager(); - } - - return _bleManager; -}; - const clearDisconnectTimeout = (deviceId: string, context?: TraceContext): void => { const cachedTransport = transportsCache[deviceId]; if (cachedTransport && cachedTransport.disconnectTimeout) { @@ -177,20 +159,17 @@ async function open( } tracer.trace(`Trying to open device: ${deviceOrId}`); - await awaitsBleOn(bleManagerInstance()); + await BlePlxManager.waitOn(); // Returns a list of known devices by their identifiers - const devices = await bleManagerInstance().devices([deviceOrId]); - tracer.trace(`Found ${devices.length} already known device(s) with given id`, { deviceOrId }); - [device] = devices; + device = await BlePlxManager.getKnownDevice(deviceOrId); if (!device) { + tracer.trace(`Found already known device with given id`, { deviceOrId }); // Returns a list of the peripherals currently connected to the system // which have discovered services, connected to system doesn't mean // connected to our app, we check that below. - const connectedDevices = await bleManagerInstance().connectedDevices( - getBluetoothServiceUuids(), - ); + const connectedDevices = await BlePlxManager.getConnectedDevices(); const connectedDevicesFiltered = connectedDevices.filter(d => d.id === deviceOrId); tracer.trace( `No known device with given id. Found ${connectedDevicesFiltered.length} devices from already connected devices`, @@ -208,7 +187,7 @@ async function open( // Nb ConnectionOptions dropped since it's not used internally by ble-plx. try { - device = await bleManagerInstance().connectToDevice(deviceOrId, { + device = await BlePlxManager.connect(deviceOrId, { ...connectOptions, timeout: timeoutMs, }); @@ -217,7 +196,7 @@ async function open( if (e.errorCode === BleErrorCode.DeviceMTUChangeFailed) { // If the MTU update did not work, we try to connect without requesting for a specific MTU connectOptions = {}; - device = await bleManagerInstance().connectToDevice(deviceOrId, { timeout: timeoutMs }); + device = await BlePlxManager.connect(deviceOrId, { timeout: timeoutMs }); } else { throw e; } @@ -457,7 +436,7 @@ export default class BleTransport extends Transport { /** * */ - static isSupported = (): Promise => Promise.resolve(typeof BleManager === "function"); + static isSupported = (): Promise => Promise.resolve(typeof BlePlxManager === "function"); /** * @@ -466,21 +445,15 @@ export default class BleTransport extends Transport { throw new Error("not implemented"); }; - /** - * Exposed method from the ble-plx library - * Sets new log level for native module's logging mechanism. - * @param string logLevel New log level to be set. - */ - static setLogLevel = (logLevel: string): void => { - if (Object.values(LogLevel).includes(logLevel)) { - bleManagerInstance().setLogLevel(logLevel as LogLevel); - } else { - throw new Error(`${logLevel} is not a valid LogLevel`); - } - }; + // /** + // * Exposed method from the ble-plx library + // * Sets new log level for native module's logging mechanism. + // * @param string logLevel New log level to be set. + // */ + static setLogLevel = BlePlxManager.setLogLevel; /** - * Listen to state changes on the bleManagerInstance and notify the + * Listen to state changes on the BlePlxManagerInstance and notify the * specified observer. * @param observer * @returns TransportSubscription @@ -498,16 +471,25 @@ export default class BleTransport extends Transport { }); }; - bleManagerInstance().onStateChange(emitFromState, true); + BlePlxManager.onStateChange(emitFromState, true); return { unsubscribe: () => {}, }; } + static safeRemove = (sub: Subscription, tracer: LocalTracer) => { + try { + sub.remove(); + } catch (error) { + tracer.trace("Error removing state subscription", { error }); + } + }; + /** * Scan for bluetooth Ledger devices * @param observer Device is partial in order to avoid the live-common/this dep + * @param context * @returns TransportSubscription */ static listen( @@ -519,49 +501,55 @@ export default class BleTransport extends Transport { let unsubscribed: boolean; - const stateSub = bleManagerInstance().onStateChange(async state => { + const stateSub = BlePlxManager.onStateChange(async state => { if (state === "PoweredOn") { - stateSub.remove(); - const devices = await bleManagerInstance().connectedDevices(getBluetoothServiceUuids()); + BleTransport.safeRemove(stateSub, tracer); + const devices = await BlePlxManager.getConnectedDevices().catch(err => { + // Handle possible connection errors + tracer.trace("Error while fetching connected devices", { err }); + return []; + }); if (unsubscribed) return; if (devices.length) { tracer.trace("Disconnecting from all devices", { deviceCount: devices.length }); - await Promise.all(devices.map(d => BleTransport.disconnectDevice(d.id))); + try { + await Promise.all(devices.map(d => BleTransport.disconnectDevice(d.id))); + } catch (error) { + tracer.trace("Error disconnecting some devices", { error }); + } } if (unsubscribed) return; - bleManagerInstance().startDeviceScan( - getBluetoothServiceUuids(), - null, - (bleError: BleError | null, scannedDevice: Device | null) => { - if (bleError) { - observer.error(mapBleErrorToHwTransportError(bleError)); - unsubscribe(); - return; - } - - const res = retrieveInfos(scannedDevice); - const deviceModel = res && res.deviceModel; - - if (scannedDevice) { - observer.next({ - type: "add", - descriptor: scannedDevice, - deviceModel, - }); - } - }, - ); + await BlePlxManager.startScan((bleError: BleError | null, scannedDevice: Device | null) => { + if (bleError) { + tracer.trace("Listening startDeviceScan error", { scannedDevice, bleError }); + observer.error(mapBleErrorToHwTransportError(bleError)); + unsubscribe(); + return; + } + + const res = retrieveInfos(scannedDevice); + const deviceModel = res && res.deviceModel; + + if (scannedDevice) { + observer.next({ + type: "add", + descriptor: scannedDevice, + deviceModel, + }); + } + }); } }, true); const unsubscribe = () => { + if (unsubscribed) return; unsubscribed = true; - bleManagerInstance().stopDeviceScan(); - stateSub.remove(); - - tracer.trace("Done listening"); + BlePlxManager.stopScan().then(() => { + BleTransport.safeRemove(stateSub, tracer); + tracer.trace("Done listening"); + }); }; return { @@ -598,14 +586,12 @@ export default class BleTransport extends Transport { const tracer = new LocalTracer(LOG_TYPE, context); tracer.trace(`Trying to disconnect device ${id}`); - await bleManagerInstance() - .cancelDeviceConnection(id) - .catch(error => { - // Only log, ignore if disconnect did not work - tracer - .withType("ble-error") - .trace(`Error while trying to cancel device connection`, { error }); - }); + await BlePlxManager.disconnectDevice(id).catch(error => { + // Only log, ignore if disconnect did not work + tracer + .withType("ble-error") + .trace(`Error while trying to cancel device connection`, { error }); + }); tracer.trace(`Device ${id} disconnected`); }; @@ -711,7 +697,7 @@ export default class BleTransport extends Transport { ); // No concurrent exchange should happen at the same time, so all pending operations are part of the same exchange - this.cancelPendingOperations(); + await this.cancelPendingOperations(); throw new TransportExchangeTimeoutError("Exchange aborted due to timeout"); } @@ -750,11 +736,11 @@ export default class BleTransport extends Transport { * but this error should be ignored. (In `exchange` our observable is unsubscribed before `cancelPendingOperations` * is called so the error is ignored) */ - private cancelPendingOperations() { + private async cancelPendingOperations() { for (const transactionId of this.currentTransactionIds) { try { this.tracer.trace("Cancelling operation", { transactionId }); - bleManagerInstance().cancelTransaction(transactionId); + await BlePlxManager.cancelTransaction(transactionId); } catch (error) { this.tracer.trace("Error while cancelling operation", { transactionId, error }); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5b10982a7fb..cb6fbc208461 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1140,8 +1140,8 @@ importers: specifier: 3.0.1 version: 3.0.1(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3)) react-native-ble-plx: - specifier: 3.1.2 - version: 3.1.2(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1) + specifier: 3.2.1 + version: 3.2.1(@babel/core@7.24.3)(expo-modules-autolinking@1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1) react-native-config: specifier: 1.5.3 version: 1.5.3(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3)) @@ -6154,8 +6154,8 @@ importers: specifier: workspace:^ version: link:../logs react-native-ble-plx: - specifier: 3.1.2 - version: 3.1.2 + specifier: 3.2.1 + version: 3.2.1 rxjs: specifier: ^7.8.1 version: 7.8.1 @@ -10671,9 +10671,6 @@ packages: '@expo/config-plugins@7.3.1': resolution: {integrity: sha512-TkDtAP3P/rrjhr7GBQtyYH/l1SQUGAO/gByBCwHjfRa4RIPFs+iiq7hocytAl+oSmVsB28ipZCC3O1IPg1OZ7g==} - '@expo/config-plugins@7.8.4': - resolution: {integrity: sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg==} - '@expo/config-plugins@8.0.11': resolution: {integrity: sha512-oALE1HwnLFthrobAcC9ocnR9KXLzfWEjgIe4CPe+rDsfC6GDs8dGYCXfRFoCEzoLN4TGYs9RdZ8r0KoCcNrm2A==} @@ -10686,9 +10683,6 @@ packages: '@expo/config-types@49.0.0': resolution: {integrity: sha512-8eyREVi+K2acnMBe/rTIu1dOfyR2+AMnTLHlut+YpMV9OZPdeKV0Bs9BxAewGqBA2slslbQ9N39IS2CuTKpXkA==} - '@expo/config-types@50.0.0': - resolution: {integrity: sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw==} - '@expo/config-types@51.0.3': resolution: {integrity: sha512-hMfuq++b8VySb+m9uNNrlpbvGxYc8OcFCUX9yTmi9tlx6A4k8SDabWFBgmnr4ao3wEArvWrtUQIfQCVtPRdpKA==} @@ -10716,10 +10710,6 @@ packages: '@expo/env@0.3.0': resolution: {integrity: sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==} - '@expo/fingerprint@0.6.0': - resolution: {integrity: sha512-KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==} - hasBin: true - '@expo/image-utils@0.3.23': resolution: {integrity: sha512-nhUVvW0TrRE4jtWzHQl8TR4ox7kcmrc2I0itaeJGjxF5A54uk7avgA0wRt7jP1rdvqQo1Ke1lXyLYREdhN9tPw==} @@ -26443,9 +26433,9 @@ packages: peerDependencies: react-native: '>=0.60.0' - react-native-ble-plx@3.1.2: - resolution: {integrity: sha512-QgukxgjrZYMUxyZ9w4XEiR9QdbdKLibhggE+sPRxp6q11rZG9upU5aricnVB2CiSbn164nlYx3j+GNlJKSlaLg==} - engines: {node: '>= 16.0.0'} + react-native-ble-plx@3.2.1: + resolution: {integrity: sha512-cot4pu6qXh7DLcYh91n4BNI5Wm9/oMUSDj24G1tQ86F8sCFJ292AneKxRHkTH2+VxIGQuU2FVvWY1iY6ob0KZQ==} + engines: {node: '>= 18.0.0'} peerDependencies: react: '*' react-native: '*' @@ -31732,6 +31722,18 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.24.1': + dependencies: + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31745,6 +31747,18 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.25.9': + dependencies: + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.25.9 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31758,6 +31772,12 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-regexp-features-plugin@7.22.15': + dependencies: + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31765,6 +31785,12 @@ snapshots: regexpu-core: 5.3.2 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.25.9': + dependencies: + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.2.0 + semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31772,12 +31798,32 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.6.1': + dependencies: + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.25.9 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.25.9 - debug: 4.3.7 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.3': + dependencies: + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -31788,7 +31834,7 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - debug: 4.3.7 + debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -31827,6 +31873,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.23.3': + dependencies: + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31836,6 +31890,14 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-module-transforms@7.26.0': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31857,6 +31919,12 @@ snapshots: '@babel/helper-plugin-utils@7.25.9': {} + '@babel/helper-remap-async-to-generator@7.22.20': + dependencies: + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31864,6 +31932,14 @@ snapshots: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 + '@babel/helper-remap-async-to-generator@7.25.9': + dependencies: + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-wrap-function': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31873,6 +31949,12 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.24.1': + dependencies: + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31880,6 +31962,14 @@ snapshots: '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers@7.25.9': + dependencies: + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/helper-replace-supers@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31951,7 +32041,7 @@ snapshots: '@babel/highlight@7.24.6': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.9 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 @@ -31982,6 +32072,13 @@ snapshots: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-proposal-async-generator-functions@7.20.7': + dependencies: + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20 + '@babel/plugin-syntax-async-generators': 7.8.4 + '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -31990,12 +32087,23 @@ snapshots: '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) + '@babel/plugin-proposal-class-properties@7.18.6': + dependencies: + '@babel/helper-create-class-features-plugin': 7.24.1 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-proposal-decorators@7.24.1': + dependencies: + '@babel/helper-create-class-features-plugin': 7.24.1 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-decorators': 7.24.1 + '@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32009,6 +32117,10 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-proposal-export-default-from@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-proposal-export-default-from@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32020,24 +32132,47 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-proposal-logical-assignment-operators@7.20.7': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4 + '@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3 + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-proposal-numeric-separator@7.18.6': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4 + '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) + '@babel/plugin-proposal-object-rest-spread@7.20.7': + dependencies: + '@babel/compat-data': 7.24.1 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3 + '@babel/plugin-transform-parameters': 7.24.1 + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.3)': dependencies: '@babel/compat-data': 7.24.1 @@ -32047,12 +32182,23 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-proposal-optional-catch-binding@7.18.6': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3 + '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-proposal-optional-chaining@7.21.0': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3 + '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32078,6 +32224,10 @@ snapshots: '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) + '@babel/plugin-syntax-async-generators@7.8.4': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32098,11 +32248,19 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-decorators@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-dynamic-import@7.8.3': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32113,21 +32271,37 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-default-from@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-export-default-from@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-export-namespace-from@7.8.3': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-flow@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-flow@7.26.0': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32162,36 +32336,64 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator@7.10.4': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread@7.8.3': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-chaining@7.8.3': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32207,11 +32409,19 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32223,6 +32433,10 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-arrow-functions@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32243,6 +32457,14 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) + '@babel/plugin-transform-async-to-generator@7.25.9': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-remap-async-to-generator': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32262,6 +32484,10 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-block-scoping@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32292,6 +32518,17 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 + '@babel/plugin-transform-classes@7.25.9': + dependencies: + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-replace-supers': 7.25.9 + '@babel/traverse': 7.25.9 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32310,6 +32547,11 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 + '@babel/plugin-transform-computed-properties@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/template': 7.25.9 + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32321,6 +32563,10 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-destructuring@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32349,6 +32595,11 @@ snapshots: '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-export-namespace-from@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-export-namespace-from': 7.8.3 + '@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32361,6 +32612,11 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-flow-strip-types@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-flow': 7.26.0 + '@babel/plugin-transform-flow-strip-types@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32382,6 +32638,14 @@ snapshots: '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-function-name@7.25.9': + dependencies: + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32402,6 +32666,10 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-literals@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32424,6 +32692,12 @@ snapshots: '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-modules-commonjs@7.24.1': + dependencies: + '@babel/helper-module-transforms': 7.23.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32431,6 +32705,14 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-simple-access': 7.22.5 + '@babel/plugin-transform-modules-commonjs@7.25.9': + dependencies: + '@babel/helper-module-transforms': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-simple-access': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32454,6 +32736,11 @@ snapshots: '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': + dependencies: + '@babel/helper-create-regexp-features-plugin': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32485,6 +32772,12 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-object-rest-spread@7.25.9': + dependencies: + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-parameters': 7.25.9 + '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32519,11 +32812,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-parameters@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-parameters@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32535,6 +32836,13 @@ snapshots: '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-private-methods@7.25.9': + dependencies: + '@babel/helper-create-class-features-plugin': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32551,6 +32859,14 @@ snapshots: '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) + '@babel/plugin-transform-private-property-in-object@7.25.9': + dependencies: + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32570,16 +32886,28 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-react-display-name@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-react-display-name@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-react-jsx-development@7.22.5': + dependencies: + '@babel/plugin-transform-react-jsx': 7.23.4 + '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32590,6 +32918,10 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-react-jsx-self@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32600,11 +32932,23 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-react-jsx-source@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-react-jsx@7.23.4': + dependencies: + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.24.1 + '@babel/types': 7.24.0 + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32614,6 +32958,16 @@ snapshots: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) '@babel/types': 7.24.0 + '@babel/plugin-transform-react-jsx@7.25.9': + dependencies: + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32625,6 +32979,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-react-pure-annotations@7.24.1': + dependencies: + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32654,6 +33013,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-runtime@7.25.9': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + babel-plugin-polyfill-corejs2: 0.4.10 + babel-plugin-polyfill-corejs3: 0.10.6 + babel-plugin-polyfill-regenerator: 0.6.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32666,6 +33036,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-shorthand-properties@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32679,6 +33053,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32692,6 +33073,10 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-sticky-regex@7.25.9': + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32707,6 +33092,13 @@ snapshots: '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-typescript@7.24.1': + dependencies: + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.1 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.24.1 + '@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32715,6 +33107,16 @@ snapshots: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-typescript@7.25.9': + dependencies: + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-typescript@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32743,6 +33145,11 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-transform-unicode-regex@7.25.9': + dependencies: + '@babel/helper-create-regexp-features-plugin': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32855,6 +33262,15 @@ snapshots: '@babel/types': 7.24.0 esutils: 2.0.3 + '@babel/preset-react@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-react-display-name': 7.24.1 + '@babel/plugin-transform-react-jsx': 7.23.4 + '@babel/plugin-transform-react-jsx-development': 7.22.5 + '@babel/plugin-transform-react-pure-annotations': 7.24.1 + '@babel/preset-react@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32865,6 +33281,14 @@ snapshots: '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.3) '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.3) + '@babel/preset-typescript@7.24.1': + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1 + '@babel/plugin-transform-modules-commonjs': 7.24.1 + '@babel/plugin-transform-typescript': 7.24.1 + '@babel/preset-typescript@7.24.1(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -32947,7 +33371,7 @@ snapshots: '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.7 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -34326,7 +34750,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.7 + debug: 4.3.4 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -34629,6 +35053,92 @@ snapshots: mv: 2.1.1 safe-json-stringify: 1.2.0 + '@expo/cli@0.18.31': + dependencies: + '@babel/runtime': 7.24.1 + '@expo/code-signing-certificates': 0.0.5 + '@expo/config': 9.0.4 + '@expo/config-plugins': 8.0.11 + '@expo/devcert': 1.1.4 + '@expo/env': 0.3.0 + '@expo/image-utils': 0.5.1 + '@expo/json-file': 8.3.0 + '@expo/metro-config': 0.18.11 + '@expo/osascript': 2.1.0 + '@expo/package-manager': 1.5.2 + '@expo/plist': 0.1.0 + '@expo/prebuild-config': 7.0.9 + '@expo/rudder-sdk-node': 1.1.1 + '@expo/spawn-async': 1.7.2 + '@expo/xcpretty': 4.3.1 + '@react-native/dev-middleware': 0.74.85 + '@urql/core': 2.3.6(graphql@15.8.0) + '@urql/exchange-retry': 0.3.0(graphql@15.8.0) + accepts: 1.3.8 + arg: 5.0.2 + better-opn: 3.0.2 + bplist-creator: 0.0.7 + bplist-parser: 0.3.2 + cacache: 18.0.4 + chalk: 4.1.2 + ci-info: 3.9.0 + connect: 3.7.0 + debug: 4.3.7 + env-editor: 0.4.2 + fast-glob: 3.3.2 + find-yarn-workspace-root: 2.0.0 + form-data: 3.0.1 + freeport-async: 2.0.0 + fs-extra: 8.1.0 + getenv: 1.0.0 + glob: 7.2.3 + graphql: 15.8.0 + graphql-tag: 2.12.6(graphql@15.8.0) + https-proxy-agent: 5.0.1 + internal-ip: 4.3.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + js-yaml: 3.14.1 + json-schema-deref-sync: 0.13.0 + lodash.debounce: 4.0.8 + md5hex: 1.0.0 + minimatch: 3.1.2 + node-fetch: 2.7.0 + node-forge: 1.3.1 + npm-package-arg: 7.0.0 + open: 8.4.2 + ora: 3.4.0 + picomatch: 3.0.1 + pretty-bytes: 5.6.0 + progress: 2.0.3 + prompts: 2.4.2 + qrcode-terminal: 0.11.0 + require-from-string: 2.0.2 + requireg: 0.2.2 + resolve: 1.22.8 + resolve-from: 5.0.0 + resolve.exports: 2.0.2 + semver: 7.6.3 + send: 0.18.0 + slugify: 1.6.6 + source-map-support: 0.5.21 + stacktrace-parser: 0.1.10 + structured-headers: 0.4.1 + tar: 6.2.1 + temp-dir: 2.0.0 + tempy: 0.7.1 + terminal-link: 2.1.1 + text-table: 0.2.0 + url-join: 4.0.0 + wrap-ansi: 7.0.0 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - encoding + - expo-modules-autolinking + - supports-color + - utf-8-validate + '@expo/cli@0.18.31(expo-modules-autolinking@1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))': dependencies: '@babel/runtime': 7.24.1 @@ -34869,28 +35379,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/config-plugins@7.8.4': - dependencies: - '@expo/config-types': 50.0.0 - '@expo/fingerprint': 0.6.0 - '@expo/json-file': 8.3.0 - '@expo/plist': 0.1.0 - '@expo/sdk-runtime-versions': 1.0.0 - '@react-native/normalize-color': 2.1.0 - chalk: 4.1.2 - debug: 4.3.7 - find-up: 5.0.0 - getenv: 1.0.0 - glob: 7.1.6 - resolve-from: 5.0.0 - semver: 7.5.4 - slash: 3.0.0 - slugify: 1.6.6 - xcode: 3.0.1 - xml2js: 0.6.0 - transitivePeerDependencies: - - supports-color - '@expo/config-plugins@8.0.11': dependencies: '@expo/config-types': 51.0.3 @@ -34898,7 +35386,7 @@ snapshots: '@expo/plist': 0.1.0 '@expo/sdk-runtime-versions': 1.0.0 chalk: 4.1.2 - debug: 4.3.7 + debug: 4.3.4 find-up: 5.0.0 getenv: 1.0.0 glob: 7.1.6 @@ -34934,8 +35422,6 @@ snapshots: '@expo/config-types@49.0.0': {} - '@expo/config-types@50.0.0': {} - '@expo/config-types@51.0.3': {} '@expo/config-types@52.0.1': {} @@ -35036,25 +35522,13 @@ snapshots: '@expo/env@0.3.0': dependencies: chalk: 4.1.2 - debug: 4.3.7 + debug: 4.3.4 dotenv: 16.4.5 dotenv-expand: 11.0.6 getenv: 1.0.0 transitivePeerDependencies: - supports-color - '@expo/fingerprint@0.6.0': - dependencies: - '@expo/spawn-async': 1.7.2 - chalk: 4.1.2 - debug: 4.3.7 - find-up: 5.0.0 - minimatch: 3.1.2 - p-limit: 3.1.0 - resolve-from: 5.0.0 - transitivePeerDependencies: - - supports-color - '@expo/image-utils@0.3.23': dependencies: '@expo/spawn-async': 1.5.0 @@ -35203,7 +35677,7 @@ snapshots: '@expo/image-utils': 0.5.1 '@expo/json-file': 8.3.0 '@react-native/normalize-colors': 0.74.85 - debug: 4.3.7 + debug: 4.3.4 fs-extra: 9.1.0 resolve-from: 5.0.0 semver: 7.6.3 @@ -35220,7 +35694,7 @@ snapshots: '@expo/image-utils': 0.5.1 '@expo/json-file': 8.3.0 '@react-native/normalize-colors': 0.74.85 - debug: 4.3.7 + debug: 4.3.4 expo-modules-autolinking: 1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1) fs-extra: 9.1.0 resolve-from: 5.0.0 @@ -35797,7 +36271,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.2 - debug: 4.3.7 + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -36791,7 +37265,7 @@ snapshots: '@kwsites/file-exists@1.1.1': dependencies: - debug: 4.3.7 + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -37308,7 +37782,7 @@ snapshots: '@npmcli/fs@3.1.1': dependencies: - semver: 7.6.3 + semver: 7.5.4 '@octokit/auth-app@6.1.1': dependencies: @@ -39104,6 +39578,54 @@ snapshots: - '@babel/preset-env' - supports-color + '@react-native/babel-preset@0.74.87': + dependencies: + '@babel/plugin-proposal-async-generator-functions': 7.20.7 + '@babel/plugin-proposal-class-properties': 7.18.6 + '@babel/plugin-proposal-export-default-from': 7.25.9 + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6 + '@babel/plugin-proposal-numeric-separator': 7.18.6 + '@babel/plugin-proposal-object-rest-spread': 7.20.7 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6 + '@babel/plugin-proposal-optional-chaining': 7.21.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3 + '@babel/plugin-syntax-export-default-from': 7.25.9 + '@babel/plugin-syntax-flow': 7.26.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3 + '@babel/plugin-syntax-optional-chaining': 7.8.3 + '@babel/plugin-transform-arrow-functions': 7.24.1 + '@babel/plugin-transform-async-to-generator': 7.25.9 + '@babel/plugin-transform-block-scoping': 7.25.9 + '@babel/plugin-transform-classes': 7.25.9 + '@babel/plugin-transform-computed-properties': 7.25.9 + '@babel/plugin-transform-destructuring': 7.25.9 + '@babel/plugin-transform-flow-strip-types': 7.25.9 + '@babel/plugin-transform-function-name': 7.25.9 + '@babel/plugin-transform-literals': 7.25.9 + '@babel/plugin-transform-modules-commonjs': 7.25.9 + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5 + '@babel/plugin-transform-parameters': 7.25.9 + '@babel/plugin-transform-private-methods': 7.25.9 + '@babel/plugin-transform-private-property-in-object': 7.25.9 + '@babel/plugin-transform-react-display-name': 7.25.9 + '@babel/plugin-transform-react-jsx': 7.25.9 + '@babel/plugin-transform-react-jsx-self': 7.25.9 + '@babel/plugin-transform-react-jsx-source': 7.25.9 + '@babel/plugin-transform-runtime': 7.25.9 + '@babel/plugin-transform-shorthand-properties': 7.24.1 + '@babel/plugin-transform-spread': 7.25.9 + '@babel/plugin-transform-sticky-regex': 7.25.9 + '@babel/plugin-transform-typescript': 7.25.9 + '@babel/plugin-transform-unicode-regex': 7.25.9 + '@babel/template': 7.25.9 + '@react-native/babel-plugin-codegen': 0.74.87 + babel-plugin-transform-flow-enums: 0.0.2 + react-refresh: 0.14.0 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + '@react-native/babel-preset@0.74.87(@babel/core@7.24.3)': dependencies: '@babel/core': 7.24.3 @@ -44729,7 +45251,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -44743,7 +45265,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -44757,7 +45279,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7 + debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -45609,7 +46131,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7 + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -46280,6 +46802,14 @@ snapshots: dependencies: '@babel/core': 7.24.3 + babel-plugin-polyfill-corejs2@0.4.10: + dependencies: + '@babel/compat-data': 7.24.1 + '@babel/helper-define-polyfill-provider': 0.6.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): dependencies: '@babel/compat-data': 7.24.1 @@ -46297,6 +46827,13 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.10.6: + dependencies: + '@babel/helper-define-polyfill-provider': 0.6.3 + core-js-compat: 3.39.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 @@ -46305,6 +46842,12 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.1: + dependencies: + '@babel/helper-define-polyfill-provider': 0.6.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): dependencies: '@babel/core': 7.24.3 @@ -46394,6 +46937,12 @@ snapshots: babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} + babel-plugin-transform-flow-enums@0.0.2: + dependencies: + '@babel/plugin-syntax-flow': 7.24.1 + transitivePeerDependencies: + - '@babel/core' + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.3): dependencies: '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.3) @@ -46418,6 +46967,23 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) + babel-preset-expo@11.0.15: + dependencies: + '@babel/plugin-proposal-decorators': 7.24.1 + '@babel/plugin-transform-export-namespace-from': 7.24.1 + '@babel/plugin-transform-object-rest-spread': 7.25.9 + '@babel/plugin-transform-parameters': 7.25.9 + '@babel/preset-react': 7.24.1 + '@babel/preset-typescript': 7.24.1 + '@react-native/babel-preset': 0.74.87 + babel-plugin-react-compiler: 0.0.0-experimental-592953e-20240517 + babel-plugin-react-native-web: 0.19.13 + react-refresh: 0.14.2 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - supports-color + babel-preset-expo@11.0.15(@babel/core@7.24.3): dependencies: '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.3) @@ -50418,6 +50984,17 @@ snapshots: transitivePeerDependencies: - supports-color + expo-asset@10.0.10(expo-file-system@17.0.1(expo@51.0.39))(expo@51.0.39): + dependencies: + expo: 51.0.39 + expo-constants: 16.0.2(expo@51.0.39) + invariant: 2.2.4 + md5-file: 3.2.3 + optionalDependencies: + expo-file-system: 17.0.1(expo@51.0.39) + transitivePeerDependencies: + - supports-color + expo-asset@8.10.1(expo-constants@14.5.1)(expo-modules-core@1.12.26)(expo@51.0.39)(react-native@0.75.4(@babel/core@7.24.3)(@babel/preset-env@7.24.3(@babel/core@7.24.3))(@types/react@18.2.73)(metro-resolver@0.80.12)(metro-transform-worker@0.80.12)(react@18.3.1)(typescript@5.4.3))(react@18.3.1): dependencies: blueimp-md5: 2.19.0 @@ -50482,6 +51059,16 @@ snapshots: transitivePeerDependencies: - supports-color + expo-constants@16.0.2(expo@51.0.39): + dependencies: + '@expo/config': 9.0.4 + '@expo/env': 0.3.0 + expo: 51.0.39 + optionalDependencies: + expo-constants: 16.0.2(expo@51.0.39) + transitivePeerDependencies: + - supports-color + expo-crypto@10.2.0: {} expo-crypto@13.0.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo@51.0.39(@babel/core@7.24.3)(expo-modules-autolinking@1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1): @@ -50520,6 +51107,10 @@ snapshots: react: 18.3.1 react-native: 0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3) + expo-file-system@17.0.1(expo@51.0.39): + dependencies: + expo: 51.0.39 + expo-font@11.10.3(expo-asset@8.10.1(expo-constants@14.5.1)(expo-modules-core@1.12.26)(expo@51.0.39)(react-native@0.75.4(@babel/core@7.24.3)(@babel/preset-env@7.24.3(@babel/core@7.24.3))(@types/react@18.2.73)(metro-resolver@0.80.12)(metro-transform-worker@0.80.12)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo-constants@14.5.1)(expo-modules-core@1.12.26)(expo@51.0.39)(react-native@0.75.4(@babel/core@7.24.3)(@babel/preset-env@7.24.3(@babel/core@7.24.3))(@types/react@18.2.73)(metro-resolver@0.80.12)(metro-transform-worker@0.80.12)(react@18.3.1)(typescript@5.4.3))(react@18.3.1): dependencies: expo: 51.0.39(@babel/core@7.24.3)(@babel/preset-env@7.24.3(@babel/core@7.24.3))(expo-constants@14.5.1)(expo-modules-core@1.12.26)(metro-core@0.80.12)(metro@0.80.12)(react-native@0.75.4(@babel/core@7.24.3)(@babel/preset-env@7.24.3(@babel/core@7.24.3))(@types/react@18.2.73)(metro-resolver@0.80.12)(metro-transform-worker@0.80.12)(react@18.3.1)(typescript@5.4.3))(react@18.3.1) @@ -50552,6 +51143,13 @@ snapshots: react: 18.3.1 react-native: 0.75.4(@babel/core@7.24.3)(@babel/preset-env@7.24.3(@babel/core@7.24.3))(@types/react@18.2.73)(metro-resolver@0.80.12)(metro-transform-worker@0.80.12)(react@18.3.1)(typescript@5.4.3) + expo-font@12.0.10(expo-asset@10.0.10(expo-file-system@17.0.1(expo@51.0.39))(expo@51.0.39))(expo@51.0.39): + dependencies: + expo: 51.0.39 + fontfaceobserver: 2.3.0 + optionalDependencies: + expo-asset: 10.0.10(expo-file-system@17.0.1(expo@51.0.39))(expo@51.0.39) + expo-image-loader@4.7.0(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo@51.0.39(@babel/core@7.24.3)(expo-modules-autolinking@1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1): dependencies: expo: 51.0.39(@babel/core@7.24.3)(expo-modules-autolinking@1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1) @@ -50586,6 +51184,10 @@ snapshots: react: 18.3.1 react-native: 0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3) + expo-keep-awake@13.0.2(expo@51.0.39): + dependencies: + expo: 51.0.39 + expo-modules-autolinking@1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1): dependencies: chalk: 4.1.2 @@ -50638,6 +51240,32 @@ snapshots: dependencies: base64-js: 1.5.1 + expo@51.0.39: + dependencies: + '@babel/runtime': 7.24.1 + '@expo/cli': 0.18.31 + '@expo/config': 9.0.4 + '@expo/config-plugins': 8.0.11 + '@expo/metro-config': 0.18.11 + '@expo/vector-icons': 14.0.4 + babel-preset-expo: 11.0.15 + expo-asset: 10.0.10(expo-file-system@17.0.1(expo@51.0.39))(expo@51.0.39) + expo-file-system: 17.0.1(expo@51.0.39) + expo-font: 12.0.10(expo-asset@10.0.10(expo-file-system@17.0.1(expo@51.0.39))(expo@51.0.39))(expo@51.0.39) + expo-keep-awake: 13.0.2(expo@51.0.39) + fbemitter: 3.0.0 + whatwg-url-without-unicode: 8.0.0-3 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - expo-constants + - metro + - metro-core + - supports-color + - utf-8-validate + expo@51.0.39(@babel/core@7.24.3)(@babel/preset-env@7.24.3(@babel/core@7.24.3))(expo-constants@14.5.1)(expo-modules-core@1.12.26)(metro-core@0.80.12)(metro@0.80.12)(react-native@0.75.4(@babel/core@7.24.3)(@babel/preset-env@7.24.3(@babel/core@7.24.3))(@types/react@18.2.73)(metro-resolver@0.80.12)(metro-transform-worker@0.80.12)(react@18.3.1)(typescript@5.4.3))(react@18.3.1): dependencies: '@babel/runtime': 7.24.1 @@ -52030,7 +52658,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.7 + debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -55325,7 +55953,7 @@ snapshots: koa-route@3.2.0: dependencies: - debug: 4.3.7 + debug: 4.3.4 methods: 1.1.2 path-to-regexp: 1.8.0 transitivePeerDependencies: @@ -55333,7 +55961,7 @@ snapshots: koa-send@5.0.1: dependencies: - debug: 4.3.7 + debug: 4.3.4 http-errors: 1.8.1 resolve-path: 1.4.0 transitivePeerDependencies: @@ -55353,7 +55981,7 @@ snapshots: content-disposition: 0.5.4 content-type: 1.0.5 cookies: 0.9.1 - debug: 4.3.7 + debug: 4.3.4 delegates: 1.0.0 depd: 2.0.0 destroy: 1.2.0 @@ -57465,7 +58093,7 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 - semver: 7.6.3 + semver: 7.5.4 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -59322,19 +59950,41 @@ snapshots: dependencies: react-native: 0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3) - react-native-ble-plx@3.1.2: + react-native-ble-plx@3.2.1: dependencies: - '@expo/config-plugins': 7.8.4 + '@expo/config-plugins': 8.0.11 + expo: 51.0.39 transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - expo-constants + - expo-modules-autolinking + - expo-modules-core + - metro + - metro-core - supports-color + - utf-8-validate - react-native-ble-plx@3.1.2(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1): + react-native-ble-plx@3.2.1(@babel/core@7.24.3)(expo-modules-autolinking@1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1): dependencies: - '@expo/config-plugins': 7.8.4 + '@expo/config-plugins': 8.0.11 + expo: 51.0.39(@babel/core@7.24.3)(expo-modules-autolinking@1.11.2(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(expo-modules-core@1.12.26(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1))(react-native@0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3))(react@18.3.1) react: 18.3.1 react-native: 0.75.4(@babel/core@7.24.3)(@types/react@18.2.73)(react@18.3.1)(typescript@5.4.3) transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - expo-constants + - expo-modules-autolinking + - expo-modules-core + - metro + - metro-core - supports-color + - utf-8-validate react-native-bundle-visualizer@3.1.3: dependencies: @@ -61139,7 +61789,7 @@ snapshots: dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.7 + debug: 4.3.4 transitivePeerDependencies: - supports-color