diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8db2ffb..7fa1c51 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -4,8 +4,6 @@ on:
branches:
- main
pull_request:
- branches:
- - main
merge_group:
types:
- checks_requested
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c8cd94a..abc594b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -49,17 +49,17 @@ To run the example app on Web:
pnpm example web
```
-Make sure your code passes TypeScript and ESLint. Run the following to verify:
+Make sure your code passes TypeScript and Biome. Run the following to verify:
```sh
pnpm typecheck
pnpm lint
```
-To fix formatting errors, run the following:
+To fix lint and formatting errors, run the following:
```sh
-pnpm lint --fix
+pnpm lint:fix
```
Remember to add tests for your change if possible. Run the unit tests by:
@@ -83,9 +83,9 @@ Our pre-commit hooks verify that your commit message matches this format when co
### Linting and tests
-[ESLint](https://eslint.org/), [Prettier](https://prettier.io/), [TypeScript](https://www.typescriptlang.org/)
+[Biome](https://biomejs.dev/), [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.
+We use [TypeScript](https://www.typescriptlang.org/) for type checking, [Biome](https://biomejs.dev/) 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.
@@ -105,7 +105,7 @@ The `package.json` file contains various scripts for common tasks:
- `pnpm install`: setup project by installing dependencies.
- `pnpm typecheck`: type-check files with TypeScript.
-- `pnpm lint`: lint files with ESLint.
+- `pnpm lint`: lint and check formatting with Biome.
- `pnpm test`: run unit tests with Jest.
- `pnpm example start`: start the Metro server for the example app.
- `pnpm example android`: run the example app on Android.
diff --git a/babel.config.js b/babel.config.js
index 5d51f25..893d243 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -1,3 +1,3 @@
module.exports = {
- presets: ['module:react-native-builder-bob/babel-preset'],
+ presets: ["module:react-native-builder-bob/babel-preset"],
};
diff --git a/biome.json b/biome.json
new file mode 100644
index 0000000..a6bbf79
--- /dev/null
+++ b/biome.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
+ "vcs": {
+ "clientKind": "git",
+ "defaultBranch": "main",
+ "enabled": true,
+ "useIgnoreFile": true
+ }
+}
diff --git a/eslint.config.mjs b/eslint.config.mjs
deleted file mode 100644
index 922dd52..0000000
--- a/eslint.config.mjs
+++ /dev/null
@@ -1,39 +0,0 @@
-import { fixupConfigRules } from '@eslint/compat';
-import { FlatCompat } from '@eslint/eslintrc';
-import js from '@eslint/js';
-import prettier from 'eslint-plugin-prettier';
-import { defineConfig } from 'eslint/config';
-import path from 'node:path';
-import { fileURLToPath } from 'node:url';
-
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = path.dirname(__filename);
-const compat = new FlatCompat({
- baseDirectory: __dirname,
- recommendedConfig: js.configs.recommended,
- allConfig: js.configs.all,
-});
-
-export default defineConfig([
- {
- extends: fixupConfigRules(compat.extends('@react-native', 'prettier')),
- plugins: { prettier },
- rules: {
- 'react/react-in-jsx-scope': 'off',
- 'prettier/prettier': [
- 'error',
- {
- quoteProps: 'consistent',
- singleQuote: true,
- tabWidth: 2,
- trailingComma: 'es5',
- useTabs: false,
- },
- ],
- 'no-console': 'error',
- },
- },
- {
- ignores: ['node_modules/', 'lib/'],
- },
-]);
diff --git a/example/app.json b/example/app.json
index 8e5634c..001ebd6 100644
--- a/example/app.json
+++ b/example/app.json
@@ -1,30 +1,30 @@
{
- "expo": {
- "name": "example",
- "slug": "example",
- "version": "1.0.0",
- "orientation": "portrait",
- "icon": "./assets/icon.png",
- "userInterfaceStyle": "light",
- "newArchEnabled": true,
- "splash": {
- "image": "./assets/splash-icon.png",
- "resizeMode": "contain",
- "backgroundColor": "#ffffff"
- },
- "ios": {
- "supportsTablet": true,
- "bundleIdentifier": "alertqueue.example"
- },
- "android": {
- "adaptiveIcon": {
- "foregroundImage": "./assets/adaptive-icon.png",
- "backgroundColor": "#ffffff"
- },
- "package": "alertqueue.example"
- },
- "web": {
- "favicon": "./assets/favicon.png"
- }
- }
+ "expo": {
+ "name": "React Native Alert Queue",
+ "slug": "rn.alert.queue.example",
+ "version": "1.0.0",
+ "orientation": "portrait",
+ "icon": "./assets/icon.png",
+ "userInterfaceStyle": "light",
+ "newArchEnabled": true,
+ "splash": {
+ "image": "./assets/splash-icon.png",
+ "resizeMode": "contain",
+ "backgroundColor": "#ffffff"
+ },
+ "ios": {
+ "supportsTablet": true,
+ "bundleIdentifier": "rn.alert.queue.example"
+ },
+ "android": {
+ "adaptiveIcon": {
+ "foregroundImage": "./assets/adaptive-icon.png",
+ "backgroundColor": "#ffffff"
+ },
+ "package": "rn.alert.queue.example"
+ },
+ "web": {
+ "favicon": "./assets/favicon.png"
+ }
+ }
}
diff --git a/example/babel.config.js b/example/babel.config.js
index 7a437af..6901d94 100644
--- a/example/babel.config.js
+++ b/example/babel.config.js
@@ -1,16 +1,16 @@
-const path = require('path');
-const { getConfig } = require('react-native-builder-bob/babel-config');
-const pkg = require('../package.json');
+const path = require("node:path");
+const { getConfig } = require("react-native-builder-bob/babel-config");
+const pkg = require("../package.json");
-const root = path.resolve(__dirname, '..');
+const root = path.resolve(__dirname, "..");
-module.exports = function (api) {
- api.cache(true);
+module.exports = (api) => {
+ api.cache(true);
- return getConfig(
- {
- presets: ['babel-preset-expo'],
- },
- { root, pkg }
- );
+ return getConfig(
+ {
+ presets: ["babel-preset-expo"],
+ },
+ { root, pkg },
+ );
};
diff --git a/example/index.js b/example/index.js
index 018d06f..fc82eb1 100644
--- a/example/index.js
+++ b/example/index.js
@@ -1,6 +1,6 @@
-import { registerRootComponent } from 'expo';
+import { registerRootComponent } from "expo";
-import App from './src/App';
+import App from "./src/App";
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
// It also ensures that whether you load the app in Expo Go or in a native build,
diff --git a/example/metro.config.js b/example/metro.config.js
index 403c771..df077e4 100644
--- a/example/metro.config.js
+++ b/example/metro.config.js
@@ -1,11 +1,11 @@
-const path = require('path');
-const { getDefaultConfig } = require('@expo/metro-config');
-const { mergeConfig } = require('@react-native/metro-config');
+const path = require("node:path");
+const { getDefaultConfig } = require("@expo/metro-config");
+const { mergeConfig } = require("@react-native/metro-config");
const defaultConfig = getDefaultConfig(__dirname);
const projectRoot = __dirname;
-const monorepoRoot = path.resolve(projectRoot, '..');
+const monorepoRoot = path.resolve(projectRoot, "..");
/**
* Metro configuration
@@ -14,14 +14,14 @@ const monorepoRoot = path.resolve(projectRoot, '..');
* @type {import('@react-native/metro-config').MetroConfig}
*/
const config = {
- watchFolders: [monorepoRoot],
- resolver: {
- nodeModulesPaths: [
- path.resolve(projectRoot, 'node_modules'),
- path.resolve(monorepoRoot, 'node_modules'),
- ],
- unstable_enablePackageExports: true,
- },
+ watchFolders: [monorepoRoot],
+ resolver: {
+ nodeModulesPaths: [
+ path.resolve(projectRoot, "node_modules"),
+ path.resolve(monorepoRoot, "node_modules"),
+ ],
+ unstable_enablePackageExports: true,
+ },
};
module.exports = mergeConfig(defaultConfig, config);
diff --git a/example/package.json b/example/package.json
index f50a666..818317b 100644
--- a/example/package.json
+++ b/example/package.json
@@ -1,30 +1,30 @@
{
- "name": "react-native-alert-queue-example",
- "version": "1.0.0",
- "main": "index.js",
- "scripts": {
- "start": "expo start",
- "android": "expo start --android",
- "ios": "expo start --ios",
- "web": "expo start --web"
- },
- "dependencies": {
- "react-native-alert-queue": "workspace:*",
- "@expo/metro-runtime": "~6.1.2",
- "expo": "~54.0.32",
- "expo-status-bar": "~3.0.9",
- "react": "19.1.0",
- "react-dom": "19.1.0",
- "react-native": "0.81.5",
- "react-native-reanimated": "~4.1.1",
- "react-native-safe-area-context": "~5.6.0",
- "react-native-web": "^0.21.0",
- "react-native-worklets": "0.5.1"
- },
- "devDependencies": {
- "@babel/core": "^7.20.0",
- "@react-native/metro-config": "0.81.5",
- "react-native-builder-bob": "^0.40.17"
- },
- "private": true
+ "name": "react-native-alert-queue-example",
+ "version": "1.0.0",
+ "main": "index.js",
+ "scripts": {
+ "start": "expo start",
+ "android": "expo start --android",
+ "ios": "expo start --ios",
+ "web": "expo start --web"
+ },
+ "dependencies": {
+ "react-native-alert-queue": "workspace:*",
+ "@expo/metro-runtime": "~6.1.2",
+ "expo": "~54.0.33",
+ "expo-status-bar": "~3.0.9",
+ "react": "19.1.0",
+ "react-dom": "19.1.0",
+ "react-native": "0.81.5",
+ "react-native-reanimated": "~4.1.1",
+ "react-native-safe-area-context": "~5.6.2",
+ "react-native-web": "^0.21.2",
+ "react-native-worklets": "0.5.1"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.29.0",
+ "@react-native/metro-config": "0.81.5",
+ "react-native-builder-bob": "^0.40.18"
+ },
+ "private": true
}
diff --git a/example/src/App.tsx b/example/src/App.tsx
index 2dc4637..692b505 100644
--- a/example/src/App.tsx
+++ b/example/src/App.tsx
@@ -1,49 +1,49 @@
-import { Text, View, StyleSheet, ScrollView } from 'react-native';
+import { ScrollView, StyleSheet, Text, View } from "react-native";
-import { AlertContainer } from 'react-native-alert-queue';
+import { AlertContainer } from "react-native-alert-queue";
-import { SafeAreaView, SafeAreaProvider } from 'react-native-safe-area-context';
-import { Basics } from './containers/Basics';
-import { Customizations } from './containers/Customizations';
-import { Updating } from './containers/Updating';
-import { KeyboardAvoiding } from './containers/Keyboard';
-import { Confetti } from './containers/Confetti';
+import { SafeAreaProvider, SafeAreaView } from "react-native-safe-area-context";
+import { Basics } from "./containers/Basics";
+import { Confetti } from "./containers/Confetti";
+import { Customizations } from "./containers/Customizations";
+import { KeyboardAvoiding } from "./containers/Keyboard";
+import { Updating } from "./containers/Updating";
export default function App() {
- return (
-
-
-
- React Native Alert Queue
-
-
-
-
-
-
-
-
-
-
-
- );
+ return (
+
+
+
+ React Native Alert Queue
+
+
+
+
+
+
+
+
+
+
+
+ );
}
const styles = StyleSheet.create({
- container: {
- flex: 1,
- },
- wrapper: {
- flex: 1,
- },
- scrollViewContent: {
- paddingHorizontal: 20,
- paddingBottom: 20,
- },
- title: {
- fontSize: 26,
- fontWeight: 'bold',
- marginVertical: 20,
- textAlign: 'center',
- },
+ container: {
+ flex: 1,
+ },
+ wrapper: {
+ flex: 1,
+ },
+ scrollViewContent: {
+ paddingHorizontal: 20,
+ paddingBottom: 20,
+ },
+ title: {
+ fontSize: 26,
+ fontWeight: "bold",
+ marginVertical: 20,
+ textAlign: "center",
+ },
});
diff --git a/example/src/components/Button/index.tsx b/example/src/components/Button/index.tsx
index 68b8570..995196c 100644
--- a/example/src/components/Button/index.tsx
+++ b/example/src/components/Button/index.tsx
@@ -1,29 +1,29 @@
-import { Pressable, StyleSheet, Text } from 'react-native';
+import { Pressable, StyleSheet, Text } from "react-native";
export const Button = ({
- onPress,
- text,
+ onPress,
+ text,
}: {
- onPress: () => void;
- text: string;
+ onPress: () => void;
+ text: string;
}) => {
- return (
-
- {text}
-
- );
+ return (
+
+ {text}
+
+ );
};
const styles = StyleSheet.create({
- button: {
- backgroundColor: '#f0f0f0',
- borderRadius: 10,
- paddingVertical: 10,
- paddingHorizontal: 20,
- },
- text: {
- color: 'black',
- fontSize: 16,
- textAlign: 'center',
- },
+ button: {
+ backgroundColor: "#f0f0f0",
+ borderRadius: 10,
+ paddingVertical: 10,
+ paddingHorizontal: 20,
+ },
+ text: {
+ color: "black",
+ fontSize: 16,
+ textAlign: "center",
+ },
});
diff --git a/example/src/components/Section/index.tsx b/example/src/components/Section/index.tsx
index bf05388..7deb004 100644
--- a/example/src/components/Section/index.tsx
+++ b/example/src/components/Section/index.tsx
@@ -1,26 +1,26 @@
-import type { FC, PropsWithChildren } from 'react';
-import { StyleSheet, Text, View } from 'react-native';
+import type { FC, PropsWithChildren } from "react";
+import { StyleSheet, Text, View } from "react-native";
type Props = PropsWithChildren<{
- title: string;
+ title: string;
}>;
export const Section: FC = ({ children, title }) => {
- return (
-
- {title}
- {children}
-
- );
+ return (
+
+ {title}
+ {children}
+
+ );
};
const styles = StyleSheet.create({
- title: {
- fontSize: 20,
- fontWeight: 'bold',
- marginVertical: 20,
- },
- container: {
- gap: 10,
- },
+ title: {
+ fontSize: 20,
+ fontWeight: "bold",
+ marginVertical: 20,
+ },
+ container: {
+ gap: 10,
+ },
});
diff --git a/example/src/components/icons/Danger.tsx b/example/src/components/icons/Danger.tsx
index 7444a19..664b414 100644
--- a/example/src/components/icons/Danger.tsx
+++ b/example/src/components/icons/Danger.tsx
@@ -1,15 +1,15 @@
-import Svg, { type SvgProps, Path } from 'react-native-svg';
+import Svg, { Path, type SvgProps } from "react-native-svg";
export const DangerIcon = (props: SvgProps) => (
-
+
);
diff --git a/example/src/containers/Basics.tsx b/example/src/containers/Basics.tsx
index bb38e94..3bf998f 100644
--- a/example/src/containers/Basics.tsx
+++ b/example/src/containers/Basics.tsx
@@ -1,115 +1,115 @@
-import { alert } from 'react-native-alert-queue';
-import { Button } from '../components/Button';
-import { Section } from '../components/Section';
+import { alert } from "react-native-alert-queue";
+import { Button } from "../components/Button";
+import { Section } from "../components/Section";
export const Basics = () => {
- return (
-
-
+ );
};
diff --git a/example/src/containers/Confetti.tsx b/example/src/containers/Confetti.tsx
index 0ec1643..94d1537 100644
--- a/example/src/containers/Confetti.tsx
+++ b/example/src/containers/Confetti.tsx
@@ -1,71 +1,68 @@
-/* eslint-disable react/no-unstable-nested-components */
-/* eslint-disable react-native/no-inline-styles */
-
-import { alert } from 'react-native-alert-queue';
-import { Button } from '../components/Button';
-import { Section } from '../components/Section';
-import { Text, View } from 'react-native';
+import { Text, View } from "react-native";
+import { alert } from "react-native-alert-queue";
+import { Button } from "../components/Button";
+import { Section } from "../components/Section";
export const Confetti = () => {
- return (
-
-
- alert.show({
- title: 'Congrats!',
- confetti: true,
- })
- }
- text="Confetti Alert"
- />
-
- alert.success({
- title: 'Congratulations!',
- message: 'You are a winner!',
- confetti: {
- colors: [
- '#4CAF50',
- '#8BC34A',
- '#CDDC39',
- '#81C784',
- '#A5D6A7',
- '#C8E6C9',
- ],
- numberOfPieces: 200,
- pieceDimensions: {
- height: 10,
- width: 30,
- },
- },
- })
- }
- text="Custom Confetti"
- />
-
- alert.show({
- beforeTitleSlot: () => (
- 🎂
- ),
- title: 'Happy Birthday!',
- message: 'Best wishes on your special day!',
- confetti: {
- numberOfPieces: 300,
- pieceDimensions: {
- height: 20,
- width: 20,
- },
- renderPiece: ({ style }) => (
-
- ),
- },
- })
- }
- text="Custom Confetti Piece"
- />
-
- );
+ return (
+
+
+ alert.show({
+ title: "Congrats!",
+ confetti: true,
+ })
+ }
+ text="Confetti Alert"
+ />
+
+ alert.success({
+ title: "Congratulations!",
+ message: "You are a winner!",
+ confetti: {
+ colors: [
+ "#4CAF50",
+ "#8BC34A",
+ "#CDDC39",
+ "#81C784",
+ "#A5D6A7",
+ "#C8E6C9",
+ ],
+ numberOfPieces: 200,
+ pieceDimensions: {
+ height: 10,
+ width: 30,
+ },
+ },
+ })
+ }
+ text="Custom Confetti"
+ />
+
+ alert.show({
+ beforeTitleSlot: () => (
+ 🎂
+ ),
+ title: "Happy Birthday!",
+ message: "Best wishes on your special day!",
+ confetti: {
+ numberOfPieces: 300,
+ pieceDimensions: {
+ height: 20,
+ width: 20,
+ },
+ renderPiece: ({ style }) => (
+
+ ),
+ },
+ })
+ }
+ text="Custom Confetti Piece"
+ />
+
+ );
};
diff --git a/example/src/containers/Customizations.tsx b/example/src/containers/Customizations.tsx
index 498d1a4..e294e03 100644
--- a/example/src/containers/Customizations.tsx
+++ b/example/src/containers/Customizations.tsx
@@ -1,258 +1,255 @@
-/* eslint-disable react-native/no-inline-styles */
-/* eslint-disable react/no-unstable-nested-components */
-
-import { alert, type AlertButtonCustomProps } from 'react-native-alert-queue';
-import { Button } from '../components/Button';
-import { Section } from '../components/Section';
import {
- Pressable,
- StyleSheet,
- Text,
- View,
- type ColorValue,
- type StyleProp,
- type ViewStyle,
-} from 'react-native';
-import { DangerIcon } from '../components/icons/Danger';
+ type ColorValue,
+ Pressable,
+ type StyleProp,
+ StyleSheet,
+ Text,
+ View,
+ type ViewStyle,
+} from "react-native";
+import { type AlertButtonCustomProps, alert } from "react-native-alert-queue";
+import { Button } from "../components/Button";
+import { DangerIcon } from "../components/icons/Danger";
+import { Section } from "../components/Section";
export const Customizations = () => {
- return (
-
-
- alert.show({
- title: 'Hello',
- message: 'Message',
- icon: DangerIcon,
- beforeTitleSlot: () => (
-
- ),
- beforeMessageSlot: () => (
-
- ),
- beforeButtonsSlot: () => (
-
- ),
- afterButtonsSlot: () => ,
- })
- }
- text="Slots"
- />
-
- alert.show({
- renderTitle: ({ style }) => (
-
- Custom title
-
- ),
- })
- }
- text="Custom title"
- />
-
- alert.show({
- title: 'Custom message',
- renderMessage: ({ style }) => (
-
- {
- 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos.'
- }
-
- ),
- })
- }
- text="Custom message"
- />
-
- alert.show({
- title: 'Custom icon',
- icon: DangerIcon,
- iconColor: 'red',
- iconSize: 150,
- })
- }
- text="Custom icon"
- />
-
- alert.show({
- title: 'Custom dismiss button',
- isDismissible: true,
- renderDismissButton: ({ onPress }) => (
-
- ❌
-
- ),
- })
- }
- text="Custom dismiss button"
- />
-
- alert.show({
- title: 'Custom buttons',
- buttons: [
- {
- text: 'Button 1 (default)',
- onPress: () => alert.success({ message: 'Button 1 pressed' }),
- },
- {
- text: 'Button 2 (primary)',
- onPress: () => alert.success({ message: 'Button 2 pressed' }),
- customProps: {
- scheme: 'primary',
- },
- },
- {
- text: 'Button 3 (secondary)',
- onPress: () => alert.success({ message: 'Button 3 pressed' }),
- customProps: {
- scheme: 'secondary',
- },
- },
- ],
- renderButton: CustomButton,
- })
- }
- text="Custom buttons"
- />
- {
- const result = await alert.confirm({
- title: 'Custom confirm buttons',
- buttons: [
- {
- text: 'Ok',
- customProps: {
- scheme: 'primary',
- },
- },
- {
- text: 'Cancel',
- customProps: {
- scheme: 'secondary',
- },
- },
- ],
- renderButton: CustomButton,
- });
+ return (
+
+
+ alert.show({
+ title: "Hello",
+ message: "Message",
+ icon: DangerIcon,
+ beforeTitleSlot: () => (
+
+ ),
+ beforeMessageSlot: () => (
+
+ ),
+ beforeButtonsSlot: () => (
+
+ ),
+ afterButtonsSlot: () => ,
+ })
+ }
+ text="Slots"
+ />
+
+ alert.show({
+ renderTitle: ({ style }) => (
+
+ Custom title
+
+ ),
+ })
+ }
+ text="Custom title"
+ />
+
+ alert.show({
+ title: "Custom message",
+ renderMessage: ({ style }) => (
+
+ {
+ "Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, quos."
+ }
+
+ ),
+ })
+ }
+ text="Custom message"
+ />
+
+ alert.show({
+ title: "Custom icon",
+ icon: DangerIcon,
+ iconColor: "red",
+ iconSize: 150,
+ })
+ }
+ text="Custom icon"
+ />
+
+ alert.show({
+ title: "Custom dismiss button",
+ isDismissible: true,
+ renderDismissButton: ({ onPress }) => (
+
+ ❌
+
+ ),
+ })
+ }
+ text="Custom dismiss button"
+ />
+
+ alert.show({
+ title: "Custom buttons",
+ buttons: [
+ {
+ text: "Button 1 (default)",
+ onPress: () => alert.success({ message: "Button 1 pressed" }),
+ },
+ {
+ text: "Button 2 (primary)",
+ onPress: () => alert.success({ message: "Button 2 pressed" }),
+ customProps: {
+ scheme: "primary",
+ },
+ },
+ {
+ text: "Button 3 (secondary)",
+ onPress: () => alert.success({ message: "Button 3 pressed" }),
+ customProps: {
+ scheme: "secondary",
+ },
+ },
+ ],
+ renderButton: CustomButton,
+ })
+ }
+ text="Custom buttons"
+ />
+ {
+ const result = await alert.confirm({
+ title: "Custom confirm buttons",
+ buttons: [
+ {
+ text: "Ok",
+ customProps: {
+ scheme: "primary",
+ },
+ },
+ {
+ text: "Cancel",
+ customProps: {
+ scheme: "secondary",
+ },
+ },
+ ],
+ renderButton: CustomButton,
+ });
- if (result) {
- alert.success({ message: 'Ok pressed' });
- } else {
- alert.error(new Error('Cancel pressed'));
- }
- }}
- text="Custom confirm buttons"
- />
-
- );
+ if (result) {
+ alert.success({ message: "Ok pressed" });
+ } else {
+ alert.error(new Error("Cancel pressed"));
+ }
+ }}
+ text="Custom confirm buttons"
+ />
+
+ );
};
const Slot = ({
- text,
- style,
+ text,
+ style,
}: {
- text: string;
- style?: StyleProp;
+ text: string;
+ style?: StyleProp;
}) => {
- return (
-
- {text}
-
- );
+ return (
+
+ {text}
+
+ );
};
const CustomButton = ({
- text,
- onPress,
- disabled,
- testID,
- customProps,
+ text,
+ onPress,
+ disabled,
+ testID,
+ customProps,
}: {
- text: string;
- onPress: () => void;
- disabled?: boolean;
- testID?: string;
- customProps?: AlertButtonCustomProps;
+ text: string;
+ onPress: () => void;
+ disabled?: boolean;
+ testID?: string;
+ customProps?: AlertButtonCustomProps;
}) => {
- const { scheme } = customProps || {};
+ const { scheme } = customProps || {};
- let backgroundColor: ColorValue = 'black';
+ let backgroundColor: ColorValue = "black";
- switch (scheme) {
- case 'primary':
- backgroundColor = 'green';
- break;
- case 'secondary':
- backgroundColor = 'blue';
- break;
- }
+ switch (scheme) {
+ case "primary":
+ backgroundColor = "green";
+ break;
+ case "secondary":
+ backgroundColor = "blue";
+ break;
+ }
- return (
-
- {text}
-
- );
+ return (
+
+ {text}
+
+ );
};
const styles = StyleSheet.create({
- slot: {
- backgroundColor: 'black',
- padding: 10,
- },
- slotText: {
- color: 'white',
- fontSize: 16,
- fontWeight: 'bold',
- },
- button: {
- backgroundColor: 'black',
- padding: 10,
- borderRadius: 999,
- },
- buttonText: {
- color: 'white',
- fontSize: 16,
- fontWeight: 'bold',
- textAlign: 'center',
- },
+ slot: {
+ backgroundColor: "black",
+ padding: 10,
+ },
+ slotText: {
+ color: "white",
+ fontSize: 16,
+ fontWeight: "bold",
+ },
+ button: {
+ backgroundColor: "black",
+ padding: 10,
+ borderRadius: 999,
+ },
+ buttonText: {
+ color: "white",
+ fontSize: 16,
+ fontWeight: "bold",
+ textAlign: "center",
+ },
});
diff --git a/example/src/containers/Keyboard.tsx b/example/src/containers/Keyboard.tsx
index ca98c54..d902f3d 100644
--- a/example/src/containers/Keyboard.tsx
+++ b/example/src/containers/Keyboard.tsx
@@ -1,51 +1,47 @@
-/* eslint-disable react-native/no-inline-styles */
-
-import { alert } from 'react-native-alert-queue';
-import { Button } from '../components/Button';
-import { Section } from '../components/Section';
-import { TextInput } from 'react-native';
+import { TextInput } from "react-native";
+import { alert } from "react-native-alert-queue";
+import { Button } from "../components/Button";
+import { Section } from "../components/Section";
export const KeyboardAvoiding = () => {
- return (
-
- {
- let reason = '';
+ return (
+
+ {
+ let reason = "";
- await alert.show({
- title: 'Type the reason',
- renderMessage: () => {
- return (
- {
- reason = text;
- }}
- style={[
- {
- textAlignVertical: 'top',
- borderWidth: 1,
- borderColor: 'gray',
- borderRadius: 5,
- padding: 10,
- height: 100,
- },
- ]}
- multiline
- />
- );
- },
- });
+ await alert.show({
+ title: "Type the reason",
+ renderMessage: () => {
+ return (
+ {
+ reason = text;
+ }}
+ style={{
+ textAlignVertical: "top",
+ borderWidth: 1,
+ borderColor: "gray",
+ borderRadius: 5,
+ padding: 10,
+ height: 100,
+ }}
+ multiline
+ />
+ );
+ },
+ });
- if (reason) {
- alert.success({ message: `Reason: ${reason}` });
- } else {
- alert.error(new Error('Reason is required'));
- }
- }}
- text="Show reason alert"
- />
-
- );
+ if (reason) {
+ alert.success({ message: `Reason: ${reason}` });
+ } else {
+ alert.error(new Error("Reason is required"));
+ }
+ }}
+ text="Show reason alert"
+ />
+
+ );
};
diff --git a/example/src/containers/Updating.tsx b/example/src/containers/Updating.tsx
index 1173559..dc6cff9 100644
--- a/example/src/containers/Updating.tsx
+++ b/example/src/containers/Updating.tsx
@@ -1,103 +1,101 @@
-/* eslint-disable react-native/no-inline-styles */
-
-import { alert } from 'react-native-alert-queue';
-import { Button } from '../components/Button';
-import { Section } from '../components/Section';
-import { ActivityIndicator, Text, View } from 'react-native';
+import { ActivityIndicator, Text, View } from "react-native";
+import { alert } from "react-native-alert-queue";
+import { Button } from "../components/Button";
+import { Section } from "../components/Section";
export const Updating = () => {
- return (
-
- {
- alert.show({
- id: 'alert_id',
- title: 'Alert',
- message: 'This is the an alert',
- buttons: [
- {
- text: 'Show data',
- hideAlertOnPress: false,
- onPress: () => {
- const alertData = alert.getAlertData('alert_id');
+ return (
+
+ {
+ alert.show({
+ id: "alert_id",
+ title: "Alert",
+ message: "This is the an alert",
+ buttons: [
+ {
+ text: "Show data",
+ hideAlertOnPress: false,
+ onPress: () => {
+ const alertData = alert.getAlertData("alert_id");
- alert.update('alert_id', {
- title: 'Alert data',
- renderMessage: ({ style }) => {
- return (
-
- {JSON.stringify(alertData, null, 2)}
-
- );
- },
- });
- },
- },
- ],
- });
- }}
- />
- {
- alert.show({
- id: 'fetching-data',
- title: 'Fetching data...',
- isDismissible: true,
- renderMessage: () => {
- return (
-
-
- The alert will be updated in 3 seconds
-
- );
- },
- buttons: [
- {
- text: 'OK',
- disabled: true,
- },
- ],
- });
+ alert.update("alert_id", {
+ title: "Alert data",
+ renderMessage: ({ style }) => {
+ return (
+
+ {JSON.stringify(alertData, null, 2)}
+
+ );
+ },
+ });
+ },
+ },
+ ],
+ });
+ }}
+ />
+ {
+ alert.show({
+ id: "fetching-data",
+ title: "Fetching data...",
+ isDismissible: true,
+ renderMessage: () => {
+ return (
+
+
+ The alert will be updated in 3 seconds
+
+ );
+ },
+ buttons: [
+ {
+ text: "OK",
+ disabled: true,
+ },
+ ],
+ });
- setTimeout(() => {
- alert.update('fetching-data', {
- title: 'Data fetched!',
- message: 'Data fetched successfully!',
- });
- }, 3000);
- }}
- text="Update alert"
- />
- {
- const result = await alert.confirm({
- id: 'interactive-confirm',
- hideAlertOnButtonPress: false,
- });
+ setTimeout(() => {
+ alert.update("fetching-data", {
+ title: "Data fetched!",
+ message: "Data fetched successfully!",
+ });
+ }, 3000);
+ }}
+ text="Update alert"
+ />
+ {
+ const result = await alert.confirm({
+ id: "interactive-confirm",
+ hideAlertOnButtonPress: false,
+ });
- if (result) {
- alert.update('interactive-confirm', {
- title: 'Great!',
- message: 'You confirmed the alert!',
- });
- } else {
- alert.update('interactive-confirm', {
- title: 'Oops!',
- message: 'You rejected the alert!',
- });
- }
- }}
- text="Interactive confirm"
- />
-
- );
+ if (result) {
+ alert.update("interactive-confirm", {
+ title: "Great!",
+ message: "You confirmed the alert!",
+ });
+ } else {
+ alert.update("interactive-confirm", {
+ title: "Oops!",
+ message: "You rejected the alert!",
+ });
+ }
+ }}
+ text="Interactive confirm"
+ />
+
+ );
};
diff --git a/example/src/types/react-native-alert-queue.d.ts b/example/src/types/react-native-alert-queue.d.ts
index 6aab935..493ee64 100644
--- a/example/src/types/react-native-alert-queue.d.ts
+++ b/example/src/types/react-native-alert-queue.d.ts
@@ -1,7 +1,7 @@
-import 'react-native-alert-queue';
+import "react-native-alert-queue";
-declare module 'react-native-alert-queue' {
- export interface AlertButtonCustomProps {
- scheme?: 'primary' | 'secondary';
- }
+declare module "react-native-alert-queue" {
+ export interface AlertButtonCustomProps {
+ scheme?: "primary" | "secondary";
+ }
}
diff --git a/example/tsconfig.json b/example/tsconfig.json
index facc3ec..6abaf87 100644
--- a/example/tsconfig.json
+++ b/example/tsconfig.json
@@ -1,6 +1,6 @@
{
- "extends": "../tsconfig",
- "compilerOptions": {
- // Avoid expo-cli auto-generating a tsconfig
- }
+ "extends": "../tsconfig",
+ "compilerOptions": {
+ // Avoid expo-cli auto-generating a tsconfig
+ }
}
diff --git a/lefthook.yml b/lefthook.yml
index 9695c12..b69ae55 100644
--- a/lefthook.yml
+++ b/lefthook.yml
@@ -3,7 +3,7 @@ pre-commit:
commands:
lint:
glob: "*.{js,ts,jsx,tsx}"
- run: npx eslint {staged_files}
+ run: pnpm exec biome check --write --no-errors-on-unmatched {staged_files}
types:
glob: "*.{js,ts, jsx, tsx}"
run: npx tsc
diff --git a/package.json b/package.json
index eb82c20..ac98ee5 100644
--- a/package.json
+++ b/package.json
@@ -1,170 +1,159 @@
{
- "name": "react-native-alert-queue",
- "version": "2.2.0",
- "description": "Fully customizable, promise-based alert system for React Native with queue and async/await support.",
- "source": "./src/index.tsx",
- "main": "./lib/module/index.js",
- "types": "./lib/typescript/src/index.d.ts",
- "exports": {
- ".": {
- "types": "./lib/typescript/src/index.d.ts",
- "default": "./lib/module/index.js"
- },
- "./package.json": "./package.json"
- },
- "files": [
- "src",
- "lib",
- "android",
- "ios",
- "cpp",
- "*.podspec",
- "react-native.config.js",
- "!ios/build",
- "!android/build",
- "!android/gradle",
- "!android/gradlew",
- "!android/gradlew.bat",
- "!android/local.properties",
- "!**/__tests__",
- "!**/__fixtures__",
- "!**/__mocks__",
- "!**/.*"
- ],
- "scripts": {
- "example": "pnpm --filter react-native-alert-queue-example run",
- "test": "jest",
- "typecheck": "tsc",
- "lint": "eslint \"**/*.{js,ts,tsx}\"",
- "clean": "del-cli lib",
- "prepare": "bob build",
- "release": "release-it"
- },
- "keywords": [
- "react-native",
- "react native",
- "alert",
- "dialog",
- "promise",
- "async",
- "queue",
- "modal",
- "ui",
- "react"
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/xxsnakerxx/react-native-alert-queue.git"
- },
- "author": "Dmitrii Kolesnikov (https://github.com/xxsnakerxx)",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/xxsnakerxx/react-native-alert-queue/issues"
- },
- "homepage": "https://github.com/xxsnakerxx/react-native-alert-queue#readme",
- "publishConfig": {
- "registry": "https://registry.npmjs.org/"
- },
- "devDependencies": {
- "@commitlint/config-conventional": "^20.3.1",
- "@eslint/compat": "^2.0.1",
- "@eslint/eslintrc": "^3.3.3",
- "@eslint/js": "^9.39.2",
- "@evilmartians/lefthook": "^1.13.6",
- "@react-native/eslint-config": "^0.78.0",
- "@release-it/conventional-changelog": "^10.0.4",
- "@types/jest": "^30.0.0",
- "@types/react": "^19.0.12",
- "commitlint": "^20.3.1",
- "del-cli": "^5.1.0",
- "eslint": "^9.39.2",
- "eslint-config-prettier": "^10.1.8",
- "eslint-plugin-prettier": "^5.5.5",
- "jest": "^30.2.0",
- "prettier": "^3.8.1",
- "react": "19.1.0",
- "react-native": "0.81.5",
- "react-native-builder-bob": "^0.40.17",
- "react-native-reanimated": "~4.1.1",
- "react-native-svg": "15.8.0",
- "release-it": "^19.2.4",
- "typescript": "^5.9.3"
- },
- "peerDependencies": {
- "react": "*",
- "react-native": "*",
- "react-native-reanimated": ">=3.0.0"
- },
- "workspaces": [
- "example"
- ],
- "packageManager": "pnpm@10.30.1",
- "jest": {
- "preset": "react-native",
- "modulePathIgnorePatterns": [
- "/example/node_modules",
- "/lib/"
- ]
- },
- "commitlint": {
- "extends": [
- "@commitlint/config-conventional"
- ],
- "rules": {
- "header-max-length": [
- 2,
- "always",
- 140
- ]
- }
- },
- "release-it": {
- "git": {
- "commitMessage": "chore: release ${version}",
- "tagName": "v${version}"
- },
- "npm": {
- "publish": true
- },
- "github": {
- "release": true
- },
- "plugins": {
- "@release-it/conventional-changelog": {
- "preset": {
- "name": "angular"
- }
- }
- }
- },
- "prettier": {
- "quoteProps": "consistent",
- "singleQuote": true,
- "tabWidth": 2,
- "trailingComma": "es5",
- "useTabs": false
- },
- "react-native-builder-bob": {
- "source": "src",
- "output": "lib",
- "targets": [
- [
- "module",
- {
- "esm": true
- }
- ],
- [
- "typescript",
- {
- "project": "tsconfig.build.json"
- }
- ]
- ]
- },
- "create-react-native-library": {
- "languages": "js",
- "type": "library",
- "version": "0.49.8"
- }
+ "name": "react-native-alert-queue",
+ "version": "2.2.0",
+ "description": "Fully customizable, promise-based alert system for React Native with queue and async/await support.",
+ "source": "./src/index.tsx",
+ "main": "./lib/module/index.js",
+ "types": "./lib/typescript/src/index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./lib/typescript/src/index.d.ts",
+ "default": "./lib/module/index.js"
+ },
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "src",
+ "lib",
+ "android",
+ "ios",
+ "cpp",
+ "*.podspec",
+ "react-native.config.js",
+ "!ios/build",
+ "!android/build",
+ "!android/gradle",
+ "!android/gradlew",
+ "!android/gradlew.bat",
+ "!android/local.properties",
+ "!**/__tests__",
+ "!**/__fixtures__",
+ "!**/__mocks__",
+ "!**/.*"
+ ],
+ "scripts": {
+ "example": "pnpm --filter react-native-alert-queue-example run",
+ "test": "jest",
+ "typecheck": "tsc",
+ "lint": "biome check .",
+ "lint:fix": "biome check --write .",
+ "format": "biome format --write .",
+ "clean": "del-cli lib",
+ "prepare": "bob build",
+ "release": "release-it",
+ "update-deps": "pnpm dlx npm-check-updates -i --workspaces --format group,repo"
+ },
+ "keywords": [
+ "react-native",
+ "react native",
+ "alert",
+ "dialog",
+ "promise",
+ "async",
+ "queue",
+ "modal",
+ "ui",
+ "react"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/xxsnakerxx/react-native-alert-queue.git"
+ },
+ "author": "Dmitrii Kolesnikov (https://github.com/xxsnakerxx)",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/xxsnakerxx/react-native-alert-queue/issues"
+ },
+ "homepage": "https://github.com/xxsnakerxx/react-native-alert-queue#readme",
+ "publishConfig": {
+ "registry": "https://registry.npmjs.org/"
+ },
+ "devDependencies": {
+ "@biomejs/biome": "^2.4.4",
+ "@commitlint/config-conventional": "^20.4.2",
+ "@evilmartians/lefthook": "^2.1.1",
+ "@release-it/conventional-changelog": "^10.0.5",
+ "@types/jest": "^29.5.14",
+ "@types/react": "^19.1.17",
+ "commitlint": "^20.4.2",
+ "del-cli": "^7.0.0",
+ "jest": "^29.7.0",
+ "react": "19.1.0",
+ "react-native": "0.81.5",
+ "react-native-builder-bob": "^0.40.18",
+ "react-native-reanimated": "~4.1.1",
+ "react-native-svg": "15.12.1",
+ "release-it": "^19.2.4",
+ "typescript": "^5.9.3"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*",
+ "react-native-reanimated": ">=3.0.0"
+ },
+ "workspaces": [
+ "example"
+ ],
+ "packageManager": "pnpm@10.30.1",
+ "jest": {
+ "preset": "react-native",
+ "modulePathIgnorePatterns": [
+ "/example/node_modules",
+ "/lib/"
+ ]
+ },
+ "commitlint": {
+ "extends": [
+ "@commitlint/config-conventional"
+ ],
+ "rules": {
+ "header-max-length": [
+ 2,
+ "always",
+ 140
+ ]
+ }
+ },
+ "release-it": {
+ "git": {
+ "commitMessage": "chore: release ${version}",
+ "tagName": "v${version}"
+ },
+ "npm": {
+ "publish": true
+ },
+ "github": {
+ "release": true
+ },
+ "plugins": {
+ "@release-it/conventional-changelog": {
+ "preset": {
+ "name": "angular"
+ }
+ }
+ }
+ },
+ "react-native-builder-bob": {
+ "source": "src",
+ "output": "lib",
+ "targets": [
+ [
+ "module",
+ {
+ "esm": true
+ }
+ ],
+ [
+ "typescript",
+ {
+ "project": "tsconfig.build.json"
+ }
+ ]
+ ]
+ },
+ "create-react-native-library": {
+ "languages": "js",
+ "type": "library",
+ "version": "0.49.8"
+ }
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2377dc0..90fb2c0 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,54 +8,33 @@ importers:
.:
devDependencies:
+ '@biomejs/biome':
+ specifier: ^2.4.4
+ version: 2.4.4
'@commitlint/config-conventional':
- specifier: ^20.3.1
+ specifier: ^20.4.2
version: 20.4.2
- '@eslint/compat':
- specifier: ^2.0.1
- version: 2.0.2(eslint@9.39.3(jiti@2.6.1))
- '@eslint/eslintrc':
- specifier: ^3.3.3
- version: 3.3.3
- '@eslint/js':
- specifier: ^9.39.2
- version: 9.39.3
'@evilmartians/lefthook':
- specifier: ^1.13.6
- version: 1.13.6
- '@react-native/eslint-config':
- specifier: ^0.78.0
- version: 0.78.3(eslint@9.39.3(jiti@2.6.1))(jest@30.2.0(@types/node@25.3.0))(prettier@3.8.1)(typescript@5.9.3)
+ specifier: ^2.1.1
+ version: 2.1.1
'@release-it/conventional-changelog':
- specifier: ^10.0.4
+ specifier: ^10.0.5
version: 10.0.5(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.1)(release-it@19.2.4(@types/node@25.3.0))
'@types/jest':
- specifier: ^30.0.0
- version: 30.0.0
+ specifier: ^29.5.14
+ version: 29.5.14
'@types/react':
- specifier: ^19.0.12
+ specifier: ^19.1.17
version: 19.2.14
commitlint:
- specifier: ^20.3.1
+ specifier: ^20.4.2
version: 20.4.2(@types/node@25.3.0)(typescript@5.9.3)
del-cli:
- specifier: ^5.1.0
- version: 5.1.0
- eslint:
- specifier: ^9.39.2
- version: 9.39.3(jiti@2.6.1)
- eslint-config-prettier:
- specifier: ^10.1.8
- version: 10.1.8(eslint@9.39.3(jiti@2.6.1))
- eslint-plugin-prettier:
- specifier: ^5.5.5
- version: 5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.3(jiti@2.6.1)))(eslint@9.39.3(jiti@2.6.1))(prettier@3.8.1)
+ specifier: ^7.0.0
+ version: 7.0.0
jest:
- specifier: ^30.2.0
- version: 30.2.0(@types/node@25.3.0)
- prettier:
- specifier: ^3.8.1
- version: 3.8.1
+ specifier: ^29.7.0
+ version: 29.7.0(@types/node@25.3.0)
react:
specifier: 19.1.0
version: 19.1.0
@@ -63,14 +42,14 @@ importers:
specifier: 0.81.5
version: 0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0)
react-native-builder-bob:
- specifier: ^0.40.17
+ specifier: ^0.40.18
version: 0.40.18
react-native-reanimated:
specifier: ~4.1.1
version: 4.1.6(@babel/core@7.29.0)(react-native-worklets@0.5.1(@babel/core@7.29.0)(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)
react-native-svg:
- specifier: 15.8.0
- version: 15.8.0(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)
+ specifier: 15.12.1
+ version: 15.12.1(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)
release-it:
specifier: ^19.2.4
version: 19.2.4(@types/node@25.3.0)
@@ -84,7 +63,7 @@ importers:
specifier: ~6.1.2
version: 6.1.2(expo@54.0.33)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)
expo:
- specifier: ~54.0.32
+ specifier: ~54.0.33
version: 54.0.33(@babel/core@7.29.0)(@expo/metro-runtime@6.1.2)(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)
expo-status-bar:
specifier: ~3.0.9
@@ -105,23 +84,23 @@ importers:
specifier: ~4.1.1
version: 4.1.6(@babel/core@7.29.0)(react-native-worklets@0.5.1(@babel/core@7.29.0)(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)
react-native-safe-area-context:
- specifier: ~5.6.0
+ specifier: ~5.6.2
version: 5.6.2(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)
react-native-web:
- specifier: ^0.21.0
+ specifier: ^0.21.2
version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react-native-worklets:
specifier: 0.5.1
version: 0.5.1(@babel/core@7.29.0)(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0)
devDependencies:
'@babel/core':
- specifier: ^7.20.0
+ specifier: ^7.29.0
version: 7.29.0
'@react-native/metro-config':
specifier: 0.81.5
version: 0.81.5(@babel/core@7.29.0)
react-native-builder-bob:
- specifier: ^0.40.17
+ specifier: ^0.40.18
version: 0.40.18
packages:
@@ -155,13 +134,6 @@ packages:
resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==}
engines: {node: '>=6.9.0'}
- '@babel/eslint-parser@7.28.6':
- resolution: {integrity: sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA==}
- engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
- peerDependencies:
- '@babel/core': ^7.11.0
- eslint: ^7.5.0 || ^8.0.0 || ^9.0.0
-
'@babel/generator@7.29.1':
resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==}
engines: {node: '>=6.9.0'}
@@ -844,6 +816,63 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+ '@biomejs/biome@2.4.4':
+ resolution: {integrity: sha512-tigwWS5KfJf0cABVd52NVaXyAVv4qpUXOWJ1rxFL8xF1RVoeS2q/LK+FHgYoKMclJCuRoCWAPy1IXaN9/mS61Q==}
+ engines: {node: '>=14.21.3'}
+ hasBin: true
+
+ '@biomejs/cli-darwin-arm64@2.4.4':
+ resolution: {integrity: sha512-jZ+Xc6qvD6tTH5jM6eKX44dcbyNqJHssfl2nnwT6vma6B1sj7ZLTGIk6N5QwVBs5xGN52r3trk5fgd3sQ9We9A==}
+ engines: {node: '>=14.21.3'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@biomejs/cli-darwin-x64@2.4.4':
+ resolution: {integrity: sha512-Dh1a/+W+SUCXhEdL7TiX3ArPTFCQKJTI1mGncZNWfO+6suk+gYA4lNyJcBB+pwvF49uw0pEbUS49BgYOY4hzUg==}
+ engines: {node: '>=14.21.3'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@biomejs/cli-linux-arm64-musl@2.4.4':
+ resolution: {integrity: sha512-+sPAXq3bxmFwhVFJnSwkSF5Rw2ZAJMH3MF6C9IveAEOdSpgajPhoQhbbAK12SehN9j2QrHpk4J/cHsa/HqWaYQ==}
+ engines: {node: '>=14.21.3'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@biomejs/cli-linux-arm64@2.4.4':
+ resolution: {integrity: sha512-V/NFfbWhsUU6w+m5WYbBenlEAz8eYnSqRMDMAW3K+3v0tYVkNyZn8VU0XPxk/lOqNXLSCCrV7FmV/u3SjCBShg==}
+ engines: {node: '>=14.21.3'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@biomejs/cli-linux-x64-musl@2.4.4':
+ resolution: {integrity: sha512-gGvFTGpOIQDb5CQ2VC0n9Z2UEqlP46c4aNgHmAMytYieTGEcfqhfCFnhs6xjt0S3igE6q5GLuIXtdQt3Izok+g==}
+ engines: {node: '>=14.21.3'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@biomejs/cli-linux-x64@2.4.4':
+ resolution: {integrity: sha512-R4+ZCDtG9kHArasyBO+UBD6jr/FcFCTH8QkNTOCu0pRJzCWyWC4EtZa2AmUZB5h3e0jD7bRV2KvrENcf8rndBg==}
+ engines: {node: '>=14.21.3'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@biomejs/cli-win32-arm64@2.4.4':
+ resolution: {integrity: sha512-trzCqM7x+Gn832zZHgr28JoYagQNX4CZkUZhMUac2YxvvyDRLJDrb5m9IA7CaZLlX6lTQmADVfLEKP1et1Ma4Q==}
+ engines: {node: '>=14.21.3'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@biomejs/cli-win32-x64@2.4.4':
+ resolution: {integrity: sha512-gnOHKVPFAAPrpoPt2t+Q6FZ7RPry/FDV3GcpU53P3PtLNnQjBmKyN2Vh/JtqXet+H4pme8CC76rScwdjDcT1/A==}
+ engines: {node: '>=14.21.3'}
+ cpu: [x64]
+ os: [win32]
+
'@commitlint/cli@20.4.2':
resolution: {integrity: sha512-YjYSX2yj/WsVoxh9mNiymfFS2ADbg2EK4+1WAsMuckwKMCqJ5PDG0CJU/8GvmHWcv4VRB2V02KqSiecRksWqZQ==}
engines: {node: '>=v18'}
@@ -925,68 +954,8 @@ packages:
conventional-commits-parser:
optional: true
- '@emnapi/core@1.8.1':
- resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==}
-
- '@emnapi/runtime@1.8.1':
- resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==}
-
- '@emnapi/wasi-threads@1.1.0':
- resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
-
- '@eslint-community/eslint-utils@4.9.1':
- resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
-
- '@eslint-community/regexpp@4.12.2':
- resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
- engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
-
- '@eslint/compat@2.0.2':
- resolution: {integrity: sha512-pR1DoD0h3HfF675QZx0xsyrsU8q70Z/plx7880NOhS02NuWLgBCOMDL787nUeQ7EWLkxv3bPQJaarjcPQb2Dwg==}
- engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- peerDependencies:
- eslint: ^8.40 || 9 || 10
- peerDependenciesMeta:
- eslint:
- optional: true
-
- '@eslint/config-array@0.21.1':
- resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/config-helpers@0.4.2':
- resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/core@0.17.0':
- resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/core@1.1.0':
- resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==}
- engines: {node: ^20.19.0 || ^22.13.0 || >=24}
-
- '@eslint/eslintrc@3.3.3':
- resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/js@9.39.3':
- resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/object-schema@2.1.7':
- resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/plugin-kit@0.4.1':
- resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@evilmartians/lefthook@1.13.6':
- resolution: {integrity: sha512-79vplrUBWL4Fkt59YkEBdSpqBVhNrY8t5+jEp+wX5QbsmbQLcSULqwS7FmbNRyECa2LWMrUWpe6ENIfNwB4jiw==}
+ '@evilmartians/lefthook@2.1.1':
+ resolution: {integrity: sha512-+nyEG9SCmI8wRhMbMr1GUFWfbIGeY/vlzenrMZgYWRVhEKOn/pQt4nQSQlQmaoxo4uOY13Vl53SaijFoE58bYg==}
cpu: [x64, arm64, ia32]
os: [darwin, linux, win32]
hasBin: true
@@ -1107,22 +1076,6 @@ packages:
resolution: {integrity: sha512-o2qDlTqJ606h4xR36H2zWTywmZ3v3842K6TU8Ik2n1mfW0S580VHlt3eItVYdLYz+klaPp7CXqanja8eASZjRw==}
hasBin: true
- '@humanfs/core@0.19.1':
- resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
- engines: {node: '>=18.18.0'}
-
- '@humanfs/node@0.16.7':
- resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
- engines: {node: '>=18.18.0'}
-
- '@humanwhocodes/module-importer@1.0.1':
- resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
- engines: {node: '>=12.22'}
-
- '@humanwhocodes/retry@0.4.3':
- resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
- engines: {node: '>=18.18'}
-
'@inquirer/ansi@1.0.2':
resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==}
engines: {node: '>=18'}
@@ -1277,13 +1230,13 @@ packages:
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines: {node: '>=8'}
- '@jest/console@30.2.0':
- resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/console@29.7.0':
+ resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/core@30.2.0':
- resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/core@29.7.0':
+ resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
@@ -1294,49 +1247,29 @@ packages:
resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/diff-sequences@30.0.1':
- resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
'@jest/environment@29.7.0':
resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/environment@30.2.0':
- resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/expect-utils@30.2.0':
- resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/expect-utils@29.7.0':
+ resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/expect@30.2.0':
- resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/expect@29.7.0':
+ resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
'@jest/fake-timers@29.7.0':
resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/fake-timers@30.2.0':
- resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/get-type@30.1.0':
- resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/globals@30.2.0':
- resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/pattern@30.0.1':
- resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/globals@29.7.0':
+ resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/reporters@30.2.0':
- resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/reporters@29.7.0':
+ resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
@@ -1347,42 +1280,26 @@ packages:
resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/schemas@30.0.5':
- resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/snapshot-utils@30.2.0':
- resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/source-map@30.0.1':
- resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/source-map@29.6.3':
+ resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/test-result@30.2.0':
- resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/test-result@29.7.0':
+ resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/test-sequencer@30.2.0':
- resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/test-sequencer@29.7.0':
+ resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
'@jest/transform@29.7.0':
resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/transform@30.2.0':
- resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
'@jest/types@29.6.3':
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/types@30.2.0':
- resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -1402,12 +1319,6 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
- '@napi-rs/wasm-runtime@0.2.12':
- resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
-
- '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
- resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
-
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -1483,10 +1394,6 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@pkgr/core@0.2.9':
- resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
-
'@react-native/assets-registry@0.81.5':
resolution: {integrity: sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==}
engines: {node: '>= 20.19.4'}
@@ -1527,17 +1434,6 @@ packages:
resolution: {integrity: sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==}
engines: {node: '>= 20.19.4'}
- '@react-native/eslint-config@0.78.3':
- resolution: {integrity: sha512-YcJsVfOHLgA9OXTfHPV0dSSVhk9Ceu+WzNl8m3mBB8oejEdkjM9VBDrArg64AGCzdRLAMbgiUrWy7vI47yNbmQ==}
- engines: {node: '>=18'}
- peerDependencies:
- eslint: '>=8'
- prettier: '>=2'
-
- '@react-native/eslint-plugin@0.78.3':
- resolution: {integrity: sha512-PvFAL9J/Jk93K5ibr5Cj5RfiYdMJNqPej6NcDoOSj1kalM6fE22dHxnxF9A1/YApN1F972n+tW16T1+c4F9opw==}
- engines: {node: '>=18'}
-
'@react-native/gradle-plugin@0.81.5':
resolution: {integrity: sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==}
engines: {node: '>= 20.19.4'}
@@ -1590,8 +1486,9 @@ packages:
'@sinclair/typebox@0.27.10':
resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==}
- '@sinclair/typebox@0.34.48':
- resolution: {integrity: sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==}
+ '@sindresorhus/merge-streams@2.3.0':
+ resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
+ engines: {node: '>=18'}
'@sinonjs/commons@3.0.1':
resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
@@ -1599,15 +1496,9 @@ packages:
'@sinonjs/fake-timers@10.3.0':
resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
- '@sinonjs/fake-timers@13.0.5':
- resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==}
-
'@tootallnate/quickjs-emscripten@0.23.0':
resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
- '@tybys/wasm-util@0.10.1':
- resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
-
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -1620,9 +1511,6 @@ packages:
'@types/babel__traverse@7.28.0':
resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
- '@types/estree@1.0.8':
- resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
-
'@types/graceful-fs@4.1.9':
resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
@@ -1635,14 +1523,8 @@ packages:
'@types/istanbul-reports@3.0.4':
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
- '@types/jest@30.0.0':
- resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==}
-
- '@types/json-schema@7.0.15':
- resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
-
- '@types/minimist@1.2.5':
- resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
+ '@types/jest@29.5.14':
+ resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
'@types/node@22.19.11':
resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==}
@@ -1660,9 +1542,6 @@ packages:
'@types/react@19.2.14':
resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==}
- '@types/semver@7.7.1':
- resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
-
'@types/stack-utils@2.0.3':
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
@@ -1672,197 +1551,9 @@ packages:
'@types/yargs@17.0.35':
resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==}
- '@typescript-eslint/eslint-plugin@7.18.0':
- resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==}
- engines: {node: ^18.18.0 || >=20.0.0}
- peerDependencies:
- '@typescript-eslint/parser': ^7.0.0
- eslint: ^8.56.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- '@typescript-eslint/parser@7.18.0':
- resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==}
- engines: {node: ^18.18.0 || >=20.0.0}
- peerDependencies:
- eslint: ^8.56.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- '@typescript-eslint/scope-manager@5.62.0':
- resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- '@typescript-eslint/scope-manager@7.18.0':
- resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
- engines: {node: ^18.18.0 || >=20.0.0}
-
- '@typescript-eslint/type-utils@7.18.0':
- resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==}
- engines: {node: ^18.18.0 || >=20.0.0}
- peerDependencies:
- eslint: ^8.56.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- '@typescript-eslint/types@5.62.0':
- resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- '@typescript-eslint/types@7.18.0':
- resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
- engines: {node: ^18.18.0 || >=20.0.0}
-
- '@typescript-eslint/typescript-estree@5.62.0':
- resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- '@typescript-eslint/typescript-estree@7.18.0':
- resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
- engines: {node: ^18.18.0 || >=20.0.0}
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- '@typescript-eslint/utils@5.62.0':
- resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
-
- '@typescript-eslint/utils@7.18.0':
- resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
- engines: {node: ^18.18.0 || >=20.0.0}
- peerDependencies:
- eslint: ^8.56.0
-
- '@typescript-eslint/visitor-keys@5.62.0':
- resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- '@typescript-eslint/visitor-keys@7.18.0':
- resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
- engines: {node: ^18.18.0 || >=20.0.0}
-
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
- '@unrs/resolver-binding-android-arm-eabi@1.11.1':
- resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
- cpu: [arm]
- os: [android]
-
- '@unrs/resolver-binding-android-arm64@1.11.1':
- resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==}
- cpu: [arm64]
- os: [android]
-
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
- resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==}
- cpu: [arm64]
- os: [darwin]
-
- '@unrs/resolver-binding-darwin-x64@1.11.1':
- resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==}
- cpu: [x64]
- os: [darwin]
-
- '@unrs/resolver-binding-freebsd-x64@1.11.1':
- resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==}
- cpu: [x64]
- os: [freebsd]
-
- '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
- resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==}
- cpu: [arm]
- os: [linux]
-
- '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
- resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==}
- cpu: [arm]
- os: [linux]
-
- '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
- resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
- cpu: [arm64]
- os: [linux]
- libc: [glibc]
-
- '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
- resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
- cpu: [arm64]
- os: [linux]
- libc: [musl]
-
- '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
- resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
- cpu: [ppc64]
- os: [linux]
- libc: [glibc]
-
- '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
- resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
- cpu: [riscv64]
- os: [linux]
- libc: [glibc]
-
- '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
- resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
- cpu: [riscv64]
- os: [linux]
- libc: [musl]
-
- '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
- resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
- cpu: [s390x]
- os: [linux]
- libc: [glibc]
-
- '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
- resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
- cpu: [x64]
- os: [linux]
- libc: [glibc]
-
- '@unrs/resolver-binding-linux-x64-musl@1.11.1':
- resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
- cpu: [x64]
- os: [linux]
- libc: [musl]
-
- '@unrs/resolver-binding-wasm32-wasi@1.11.1':
- resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
- engines: {node: '>=14.0.0'}
- cpu: [wasm32]
-
- '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
- resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==}
- cpu: [arm64]
- os: [win32]
-
- '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
- resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==}
- cpu: [ia32]
- os: [win32]
-
- '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
- resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==}
- cpu: [x64]
- os: [win32]
-
'@urql/core@5.2.0':
resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==}
@@ -1887,11 +1578,6 @@ packages:
resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
engines: {node: '>= 0.6'}
- acorn-jsx@5.3.2:
- resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-
acorn@8.16.0:
resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
engines: {node: '>=0.4.0'}
@@ -1905,13 +1591,6 @@ packages:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'}
- aggregate-error@4.0.1:
- resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==}
- engines: {node: '>=12'}
-
- ajv@6.14.0:
- resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==}
-
ajv@8.18.0:
resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==}
@@ -1972,45 +1651,13 @@ packages:
arktype@2.1.29:
resolution: {integrity: sha512-jyfKk4xIOzvYNayqnD8ZJQqOwcrTOUbIU4293yrzAjA3O1dWh61j71ArMQ6tS/u4pD7vabSPe7nG3RCyoXW6RQ==}
- array-buffer-byte-length@1.0.2:
- resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
- engines: {node: '>= 0.4'}
-
array-ify@1.0.0:
resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
- array-includes@3.1.9:
- resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==}
- engines: {node: '>= 0.4'}
-
array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
- array.prototype.findlast@1.2.5:
- resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
- engines: {node: '>= 0.4'}
-
- array.prototype.flat@1.3.3:
- resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
- engines: {node: '>= 0.4'}
-
- array.prototype.flatmap@1.3.3:
- resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
- engines: {node: '>= 0.4'}
-
- array.prototype.tosorted@1.1.4:
- resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
- engines: {node: '>= 0.4'}
-
- arraybuffer.prototype.slice@1.0.4:
- resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
- engines: {node: '>= 0.4'}
-
- arrify@1.0.1:
- resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
- engines: {node: '>=0.10.0'}
-
asap@2.0.6:
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
@@ -2018,48 +1665,26 @@ packages:
resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
engines: {node: '>=4'}
- async-function@1.0.0:
- resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
- engines: {node: '>= 0.4'}
-
async-limiter@1.0.1:
resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
async-retry@1.3.3:
resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==}
- available-typed-arrays@1.0.7:
- resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
- engines: {node: '>= 0.4'}
-
babel-jest@29.7.0:
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.8.0
- babel-jest@30.2.0:
- resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- '@babel/core': ^7.11.0 || ^8.0.0-0
-
babel-plugin-istanbul@6.1.1:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
engines: {node: '>=8'}
- babel-plugin-istanbul@7.0.1:
- resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==}
- engines: {node: '>=12'}
-
babel-plugin-jest-hoist@29.6.3:
resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- babel-plugin-jest-hoist@30.2.0:
- resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
babel-plugin-polyfill-corejs2@0.4.15:
resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==}
peerDependencies:
@@ -2118,12 +1743,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- babel-preset-jest@30.2.0:
- resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- '@babel/core': ^7.11.0 || ^8.0.0-beta.1
-
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -2209,26 +1828,10 @@ packages:
magicast:
optional: true
- call-bind-apply-helpers@1.0.2:
- resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
- engines: {node: '>= 0.4'}
-
- call-bind@1.0.8:
- resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
- engines: {node: '>= 0.4'}
-
- call-bound@1.0.4:
- resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
- engines: {node: '>= 0.4'}
-
callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- camelcase-keys@7.0.2:
- resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==}
- engines: {node: '>=12'}
-
camelcase@5.3.1:
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
engines: {node: '>=6'}
@@ -2292,17 +1895,13 @@ packages:
citty@0.2.1:
resolution: {integrity: sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg==}
- cjs-module-lexer@2.2.0:
- resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==}
+ cjs-module-lexer@1.4.3:
+ resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==}
clean-stack@2.2.0:
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
engines: {node: '>=6'}
- clean-stack@4.2.0:
- resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==}
- engines: {node: '>=12'}
-
cli-cursor@2.1.0:
resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==}
engines: {node: '>=4'}
@@ -2459,6 +2058,11 @@ packages:
typescript:
optional: true
+ create-jest@29.7.0:
+ resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+
cross-fetch@3.2.0:
resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==}
@@ -2495,18 +2099,6 @@ packages:
resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==}
engines: {node: '>= 14'}
- data-view-buffer@1.0.2:
- resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
- engines: {node: '>= 0.4'}
-
- data-view-byte-length@1.0.2:
- resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
- engines: {node: '>= 0.4'}
-
- data-view-byte-offset@1.0.1:
- resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
- engines: {node: '>= 0.4'}
-
debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -2532,18 +2124,6 @@ packages:
supports-color:
optional: true
- decamelize-keys@1.1.1:
- resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
- engines: {node: '>=0.10.0'}
-
- decamelize@1.2.0:
- resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
- engines: {node: '>=0.10.0'}
-
- decamelize@5.0.1:
- resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==}
- engines: {node: '>=10'}
-
dedent@0.7.0:
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
@@ -2559,9 +2139,6 @@ packages:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
- deep-is@0.1.4:
- resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
@@ -2577,10 +2154,6 @@ packages:
defaults@1.0.4:
resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
- define-data-property@1.1.4:
- resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
- engines: {node: '>= 0.4'}
-
define-lazy-prop@2.0.0:
resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
engines: {node: '>=8'}
@@ -2589,10 +2162,6 @@ packages:
resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
engines: {node: '>=12'}
- define-properties@1.2.1:
- resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
- engines: {node: '>= 0.4'}
-
defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
@@ -2600,18 +2169,18 @@ packages:
resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
engines: {node: '>= 14'}
- del-cli@5.1.0:
- resolution: {integrity: sha512-xwMeh2acluWeccsfzE7VLsG3yTr7nWikbfw+xhMnpRrF15pGSkw+3/vJZWlGoE4I86UiLRNHicmKt4tkIX9Jtg==}
- engines: {node: '>=14.16'}
+ del-cli@7.0.0:
+ resolution: {integrity: sha512-fRl4pWJYu9WFQH8jXdQUYvcD0IMtij9WEc7qmB7xOyJEweNJNuE7iKmqNeoOT1DbBUjtRjxlw8Y63qKBI/NQ1g==}
+ engines: {node: '>=18'}
hasBin: true
del@6.1.1:
resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
engines: {node: '>=10'}
- del@7.1.0:
- resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==}
- engines: {node: '>=14.16'}
+ del@8.0.1:
+ resolution: {integrity: sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==}
+ engines: {node: '>=18'}
depd@2.0.0:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
@@ -2632,14 +2201,14 @@ packages:
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
engines: {node: '>=8'}
+ diff-sequences@29.6.3:
+ resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
- doctrine@2.1.0:
- resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
- engines: {node: '>=0.10.0'}
-
dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
@@ -2669,10 +2238,6 @@ packages:
resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==}
engines: {node: '>=12'}
- dunder-proto@1.0.1:
- resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
- engines: {node: '>= 0.4'}
-
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
@@ -2721,41 +2286,9 @@ packages:
error-stack-parser@2.1.4:
resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
- es-abstract@1.24.1:
- resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==}
- engines: {node: '>= 0.4'}
-
- es-define-property@1.0.1:
- resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
- engines: {node: '>= 0.4'}
-
- es-errors@1.3.0:
- resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
- engines: {node: '>= 0.4'}
-
- es-iterator-helpers@1.2.2:
- resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==}
- engines: {node: '>= 0.4'}
-
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
- engines: {node: '>= 0.4'}
-
- es-set-tostringtag@2.1.0:
- resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
- engines: {node: '>= 0.4'}
-
- es-shim-unscopables@1.1.0:
- resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
- engines: {node: '>= 0.4'}
-
- es-to-primitive@1.3.0:
- resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
- engines: {node: '>= 0.4'}
-
- escalade@3.2.0:
- resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
- engines: {node: '>=6'}
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
@@ -2781,129 +2314,11 @@ packages:
engines: {node: '>=6.0'}
hasBin: true
- eslint-config-prettier@10.1.8:
- resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==}
- hasBin: true
- peerDependencies:
- eslint: '>=7.0.0'
-
- eslint-config-prettier@8.10.2:
- resolution: {integrity: sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==}
- hasBin: true
- peerDependencies:
- eslint: '>=7.0.0'
-
- eslint-plugin-eslint-comments@3.2.0:
- resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==}
- engines: {node: '>=6.5.0'}
- peerDependencies:
- eslint: '>=4.19.1'
-
- eslint-plugin-ft-flow@2.0.3:
- resolution: {integrity: sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==}
- engines: {node: '>=12.22.0'}
- peerDependencies:
- '@babel/eslint-parser': ^7.12.0
- eslint: ^8.1.0
-
- eslint-plugin-jest@27.9.0:
- resolution: {integrity: sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 || ^7.0.0
- eslint: ^7.0.0 || ^8.0.0
- jest: '*'
- peerDependenciesMeta:
- '@typescript-eslint/eslint-plugin':
- optional: true
- jest:
- optional: true
-
- eslint-plugin-prettier@5.5.5:
- resolution: {integrity: sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- '@types/eslint': '>=8.0.0'
- eslint: '>=8.0.0'
- eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0'
- prettier: '>=3.0.0'
- peerDependenciesMeta:
- '@types/eslint':
- optional: true
- eslint-config-prettier:
- optional: true
-
- eslint-plugin-react-hooks@4.6.2:
- resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==}
- engines: {node: '>=10'}
- peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
-
- eslint-plugin-react-native-globals@0.1.2:
- resolution: {integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==}
-
- eslint-plugin-react-native@4.1.0:
- resolution: {integrity: sha512-QLo7rzTBOl43FvVqDdq5Ql9IoElIuTdjrz9SKAXCvULvBoRZ44JGSkx9z4999ZusCsb4rK3gjS8gOGyeYqZv2Q==}
- peerDependencies:
- eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8
-
- eslint-plugin-react@7.37.5:
- resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
- engines: {node: '>=4'}
- peerDependencies:
- eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
-
- eslint-scope@5.1.1:
- resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
- engines: {node: '>=8.0.0'}
-
- eslint-scope@8.4.0:
- resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint-visitor-keys@2.1.0:
- resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
- engines: {node: '>=10'}
-
- eslint-visitor-keys@3.4.3:
- resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- eslint-visitor-keys@4.2.1:
- resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint@9.39.3:
- resolution: {integrity: sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- hasBin: true
- peerDependencies:
- jiti: '*'
- peerDependenciesMeta:
- jiti:
- optional: true
-
- espree@10.4.0:
- resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
- esquery@1.7.0:
- resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
- engines: {node: '>=0.10'}
-
- esrecurse@4.3.0:
- resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
- engines: {node: '>=4.0'}
-
- estraverse@4.3.0:
- resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
- engines: {node: '>=4.0'}
-
estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
@@ -2939,13 +2354,13 @@ packages:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
- exit-x@0.2.2:
- resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==}
+ exit@0.1.2:
+ resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
engines: {node: '>= 0.8.0'}
- expect@30.2.0:
- resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ expect@29.7.0:
+ resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
expo-asset@12.0.12:
resolution: {integrity: sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ==}
@@ -3028,9 +2443,6 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- fast-diff@1.3.0:
- resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
-
fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
@@ -3038,9 +2450,6 @@ packages:
fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- fast-levenshtein@2.0.6:
- resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-
fast-uri@3.1.0:
resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
@@ -3068,10 +2477,6 @@ packages:
picomatch:
optional: true
- file-entry-cache@8.0.0:
- resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
- engines: {node: '>=16.0.0'}
-
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -3084,27 +2489,12 @@ packages:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
- find-up@5.0.0:
- resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
- engines: {node: '>=10'}
-
- flat-cache@4.0.1:
- resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
- engines: {node: '>=16'}
-
- flatted@3.3.3:
- resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
-
flow-enums-runtime@0.0.6:
resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==}
fontfaceobserver@2.3.0:
resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==}
- for-each@0.3.5:
- resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
- engines: {node: '>= 0.4'}
-
foreground-child@3.3.1:
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
@@ -3132,17 +2522,6 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- function.prototype.name@1.1.8:
- resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
- engines: {node: '>= 0.4'}
-
- functions-have-names@1.2.3:
- resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
-
- generator-function@2.0.1:
- resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
- engines: {node: '>= 0.4'}
-
gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
@@ -3155,18 +2534,10 @@ packages:
resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==}
engines: {node: '>=18'}
- get-intrinsic@1.3.0:
- resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
- engines: {node: '>= 0.4'}
-
get-package-type@0.1.0:
resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
engines: {node: '>=8.0.0'}
- get-proto@1.0.1:
- resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
- engines: {node: '>= 0.4'}
-
get-stream@5.2.0:
resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
engines: {node: '>=8'}
@@ -3179,10 +2550,6 @@ packages:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
- get-symbol-description@1.1.0:
- resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
- engines: {node: '>= 0.4'}
-
get-uri@6.0.5:
resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==}
engines: {node: '>= 14'}
@@ -3210,10 +2577,6 @@ packages:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
- glob-parent@6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- engines: {node: '>=10.13.0'}
-
glob@10.5.0:
resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
@@ -3235,45 +2598,22 @@ packages:
resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}
engines: {node: '>=4'}
- globals@14.0.0:
- resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
- engines: {node: '>=18'}
-
- globalthis@1.0.4:
- resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
- engines: {node: '>= 0.4'}
-
globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
- globby@13.2.2:
- resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- gopd@1.2.0:
- resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
- engines: {node: '>= 0.4'}
+ globby@14.1.0:
+ resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==}
+ engines: {node: '>=18'}
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- graphemer@1.4.0:
- resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
-
handlebars@4.7.8:
resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
engines: {node: '>=0.4.7'}
hasBin: true
- hard-rejection@2.1.0:
- resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
- engines: {node: '>=6'}
-
- has-bigints@1.1.0:
- resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
- engines: {node: '>= 0.4'}
-
has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
@@ -3282,21 +2622,6 @@ packages:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
- has-property-descriptors@1.0.2:
- resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
-
- has-proto@1.2.0:
- resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
- engines: {node: '>= 0.4'}
-
- has-symbols@1.1.0:
- resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
- engines: {node: '>= 0.4'}
-
- has-tostringtag@1.0.2:
- resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
- engines: {node: '>= 0.4'}
-
hasown@2.0.2:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
@@ -3325,10 +2650,6 @@ packages:
hermes-parser@0.33.3:
resolution: {integrity: sha512-Yg3HgaG4CqgyowtYjX/FsnPAuZdHOqSMtnbpylbptsQ9nwwSKsy6uRWcGO5RK0EqiX12q8HvDWKgeAVajRO5DA==}
- hosted-git-info@4.1.0:
- resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
- engines: {node: '>=10'}
-
hosted-git-info@7.0.2:
resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -3378,6 +2699,10 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
image-size@1.2.1:
resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==}
engines: {node: '>=16.x'}
@@ -3403,10 +2728,6 @@ packages:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
- indent-string@5.0.0:
- resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
- engines: {node: '>=12'}
-
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
@@ -3433,10 +2754,6 @@ packages:
'@types/node':
optional: true
- internal-slot@1.1.0:
- resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
- engines: {node: '>= 0.4'}
-
invariant@2.2.4:
resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
@@ -3448,41 +2765,13 @@ packages:
resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==}
engines: {node: '>=0.10.0'}
- is-array-buffer@3.0.5:
- resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
- engines: {node: '>= 0.4'}
-
is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
- is-async-function@2.1.1:
- resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
- engines: {node: '>= 0.4'}
-
- is-bigint@1.1.0:
- resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
- engines: {node: '>= 0.4'}
-
- is-boolean-object@1.2.2:
- resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
- engines: {node: '>= 0.4'}
-
- is-callable@1.2.7:
- resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
- engines: {node: '>= 0.4'}
-
is-core-module@2.16.1:
resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
engines: {node: '>= 0.4'}
- is-data-view@1.0.2:
- resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
- engines: {node: '>= 0.4'}
-
- is-date-object@1.1.0:
- resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
- engines: {node: '>= 0.4'}
-
is-docker@2.2.1:
resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
engines: {node: '>=8'}
@@ -3497,10 +2786,6 @@ packages:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
- is-finalizationregistry@1.1.1:
- resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
- engines: {node: '>= 0.4'}
-
is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
@@ -3509,10 +2794,6 @@ packages:
resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
engines: {node: '>=6'}
- is-generator-function@1.1.2:
- resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
- engines: {node: '>= 0.4'}
-
is-git-dirty@2.0.2:
resolution: {integrity: sha512-U3YCo+GKR/rDsY7r0v/LBICbQwsx859tDQnAT+v0E/zCDeWbQ1TUt1FtyExeyik7VIJlYOLHCIifLdz71HDalg==}
engines: {node: '>=10'}
@@ -3533,18 +2814,6 @@ packages:
resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
engines: {node: '>=12'}
- is-map@2.0.3:
- resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
- engines: {node: '>= 0.4'}
-
- is-negative-zero@2.0.3:
- resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
- engines: {node: '>= 0.4'}
-
- is-number-object@1.1.1:
- resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
- engines: {node: '>= 0.4'}
-
is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
@@ -3569,30 +2838,14 @@ packages:
resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==}
engines: {node: '>=12'}
- is-plain-obj@1.1.0:
- resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
- engines: {node: '>=0.10.0'}
-
is-plain-obj@4.1.0:
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
engines: {node: '>=12'}
- is-regex@1.2.1:
- resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
- engines: {node: '>= 0.4'}
-
is-relative@1.0.0:
resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==}
engines: {node: '>=0.10.0'}
- is-set@2.0.3:
- resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
- engines: {node: '>= 0.4'}
-
- is-shared-array-buffer@1.0.4:
- resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
- engines: {node: '>= 0.4'}
-
is-ssh@1.4.1:
resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==}
@@ -3604,18 +2857,6 @@ packages:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- is-string@1.1.1:
- resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
- engines: {node: '>= 0.4'}
-
- is-symbol@1.1.1:
- resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
- engines: {node: '>= 0.4'}
-
- is-typed-array@1.1.15:
- resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
- engines: {node: '>= 0.4'}
-
is-unc-path@1.0.0:
resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
engines: {node: '>=0.10.0'}
@@ -3624,18 +2865,6 @@ packages:
resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
engines: {node: '>=18'}
- is-weakmap@2.0.2:
- resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
- engines: {node: '>= 0.4'}
-
- is-weakref@1.1.1:
- resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
- engines: {node: '>= 0.4'}
-
- is-weakset@2.0.4:
- resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
- engines: {node: '>= 0.4'}
-
is-windows@1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
@@ -3648,9 +2877,6 @@ packages:
resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==}
engines: {node: '>=16'}
- isarray@2.0.5:
- resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
-
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
@@ -3674,32 +2900,28 @@ packages:
resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
engines: {node: '>=10'}
- istanbul-lib-source-maps@5.0.6:
- resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
+ istanbul-lib-source-maps@4.0.1:
+ resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: '>=10'}
istanbul-reports@3.2.0:
resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
engines: {node: '>=8'}
- iterator.prototype@1.1.5:
- resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
- engines: {node: '>= 0.4'}
-
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
- jest-changed-files@30.2.0:
- resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-changed-files@29.7.0:
+ resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-circus@30.2.0:
- resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-circus@29.7.0:
+ resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-cli@30.2.0:
- resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-cli@29.7.0:
+ resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
@@ -3707,41 +2929,34 @@ packages:
node-notifier:
optional: true
- jest-config@30.2.0:
- resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-config@29.7.0:
+ resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@types/node': '*'
- esbuild-register: '>=3.4.0'
ts-node: '>=9.0.0'
peerDependenciesMeta:
'@types/node':
optional: true
- esbuild-register:
- optional: true
ts-node:
optional: true
- jest-diff@30.2.0:
- resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-diff@29.7.0:
+ resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-docblock@30.2.0:
- resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-docblock@29.7.0:
+ resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-each@30.2.0:
- resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-each@29.7.0:
+ resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
jest-environment-node@29.7.0:
resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-environment-node@30.2.0:
- resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-get-type@29.6.3:
resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -3750,34 +2965,22 @@ packages:
resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-haste-map@30.2.0:
- resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-leak-detector@30.2.0:
- resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-leak-detector@29.7.0:
+ resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-matcher-utils@30.2.0:
- resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-matcher-utils@29.7.0:
+ resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
jest-message-util@29.7.0:
resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-message-util@30.2.0:
- resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-mock@29.7.0:
resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-mock@30.2.0:
- resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-pnp-resolver@1.2.3:
resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
engines: {node: '>=6'}
@@ -3791,61 +2994,45 @@ packages:
resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-regex-util@30.0.1:
- resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-resolve-dependencies@30.2.0:
- resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-resolve-dependencies@29.7.0:
+ resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-resolve@30.2.0:
- resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-resolve@29.7.0:
+ resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-runner@30.2.0:
- resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-runner@29.7.0:
+ resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-runtime@30.2.0:
- resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-runtime@29.7.0:
+ resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-snapshot@30.2.0:
- resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-snapshot@29.7.0:
+ resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
jest-util@29.7.0:
resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-util@30.2.0:
- resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-validate@29.7.0:
resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-validate@30.2.0:
- resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-watcher@30.2.0:
- resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-watcher@29.7.0:
+ resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
jest-worker@29.7.0:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-worker@30.2.0:
- resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest@30.2.0:
- resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest@29.7.0:
+ resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
@@ -3879,21 +3066,12 @@ packages:
engines: {node: '>=6'}
hasBin: true
- json-buffer@3.0.1:
- resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
-
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
- json-schema-traverse@0.4.1:
- resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
-
json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
- json-stable-stringify-without-jsonify@1.0.1:
- resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
-
json-with-bigint@3.5.3:
resolution: {integrity: sha512-QObKu6nxy7NsxqR0VK4rkXnsNr5L9ElJaGEg+ucJ6J7/suoKZ0n+p76cu9aCqowytxEbwYNzvrMerfMkXneF5A==}
@@ -3905,17 +3083,6 @@ packages:
jsonfile@6.2.0:
resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
- jsx-ast-utils@3.3.5:
- resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
- engines: {node: '>=4.0'}
-
- keyv@4.5.4:
- resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
-
- kind-of@6.0.3:
- resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
- engines: {node: '>=0.10.0'}
-
kleur@3.0.3:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
@@ -3932,10 +3099,6 @@ packages:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
- levn@0.4.1:
- resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
- engines: {node: '>= 0.8.0'}
-
lighthouse-logger@1.4.2:
resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==}
@@ -4020,10 +3183,6 @@ packages:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
- locate-path@6.0.0:
- resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
- engines: {node: '>=10'}
-
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
@@ -4091,10 +3250,6 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
- lru-cache@6.0.0:
- resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
- engines: {node: '>=10'}
-
lru-cache@7.18.3:
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
engines: {node: '>=12'}
@@ -4110,21 +3265,9 @@ packages:
makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
- map-obj@1.0.1:
- resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
- engines: {node: '>=0.10.0'}
-
- map-obj@4.3.0:
- resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
- engines: {node: '>=8'}
-
marky@1.3.0:
resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==}
- math-intrinsics@1.1.0:
- resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
- engines: {node: '>= 0.4'}
-
mdn-data@2.0.14:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
@@ -4134,10 +3277,6 @@ packages:
memoize-one@6.0.0:
resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
- meow@10.1.5:
- resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
meow@12.1.1:
resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
engines: {node: '>=16.10'}
@@ -4146,6 +3285,10 @@ packages:
resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
engines: {node: '>=18'}
+ meow@14.1.0:
+ resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==}
+ engines: {node: '>=20'}
+
merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -4321,10 +3464,6 @@ packages:
resolution: {integrity: sha512-kQAVowdR33euIqeA0+VZTDqU+qo1IeVY+hrKYtZMio3Pg0P0vuh/kwRylLUddJhB6pf3q/botcOvRtx4IN1wqQ==}
engines: {node: '>=16 || 14 >=14.17'}
- minimist-options@4.1.0:
- resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
- engines: {node: '>= 6'}
-
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
@@ -4359,11 +3498,6 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- napi-postinstall@0.3.4:
- resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- hasBin: true
-
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -4393,10 +3527,6 @@ packages:
resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- node-exports-info@1.6.0:
- resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==}
- engines: {node: '>= 0.4'}
-
node-fetch-native@1.6.7:
resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
@@ -4419,10 +3549,6 @@ packages:
node-releases@2.0.27:
resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
- normalize-package-data@3.0.3:
- resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
- engines: {node: '>=10'}
-
normalize-package-data@7.0.1:
resolution: {integrity: sha512-linxNAT6M0ebEYZOx2tO6vBEFsVgnPpv+AVjk0wJHfaUIbq31Jm3T6vvZaarnOeWDh8ShnwXuaAyM7WT3RzErA==}
engines: {node: ^18.17.0 || >=20.5.0}
@@ -4466,30 +3592,6 @@ packages:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
- object-inspect@1.13.4:
- resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
- engines: {node: '>= 0.4'}
-
- object-keys@1.1.1:
- resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
- engines: {node: '>= 0.4'}
-
- object.assign@4.1.7:
- resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
- engines: {node: '>= 0.4'}
-
- object.entries@1.1.9:
- resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==}
- engines: {node: '>= 0.4'}
-
- object.fromentries@2.0.8:
- resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
- engines: {node: '>= 0.4'}
-
- object.values@1.2.1:
- resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
- engines: {node: '>= 0.4'}
-
ohash@2.0.11:
resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
@@ -4536,10 +3638,6 @@ packages:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'}
- optionator@0.9.4:
- resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
- engines: {node: '>= 0.8.0'}
-
ora@3.4.0:
resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==}
engines: {node: '>=6'}
@@ -4552,10 +3650,6 @@ packages:
resolution: {integrity: sha512-zBd1G8HkewNd2A8oQ8c6BN/f/c9EId7rSUueOLGu28govmUctXmM+3765GwsByv9nYUdrLqHphXlYIc86saYsg==}
engines: {node: '>=18'}
- own-keys@1.0.1:
- resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
- engines: {node: '>= 0.4'}
-
p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@@ -4568,17 +3662,13 @@ packages:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines: {node: '>=8'}
- p-locate@5.0.0:
- resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
- engines: {node: '>=10'}
-
p-map@4.0.0:
resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
engines: {node: '>=10'}
- p-map@5.5.0:
- resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==}
- engines: {node: '>=12'}
+ p-map@7.0.4:
+ resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==}
+ engines: {node: '>=18'}
p-try@2.2.0:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
@@ -4649,6 +3739,10 @@ packages:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
+ path-type@6.0.0:
+ resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==}
+ engines: {node: '>=18'}
+
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
@@ -4689,10 +3783,6 @@ packages:
resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==}
engines: {node: '>=4.0.0'}
- possible-typed-array-names@1.1.0:
- resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
- engines: {node: '>= 0.4'}
-
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
@@ -4700,18 +3790,9 @@ packages:
resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
engines: {node: ^10 || ^12 || >=14}
- prelude-ls@1.2.1:
- resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
- engines: {node: '>= 0.8.0'}
-
- prettier-linter-helpers@1.0.1:
- resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==}
- engines: {node: '>=6.0.0'}
-
- prettier@3.8.1:
- resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==}
- engines: {node: '>=14'}
- hasBin: true
+ presentable-error@0.0.1:
+ resolution: {integrity: sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==}
+ engines: {node: '>=16'}
pretty-bytes@5.6.0:
resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
@@ -4721,10 +3802,6 @@ packages:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- pretty-format@30.2.0:
- resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
proc-log@4.2.0:
resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -4743,9 +3820,6 @@ packages:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
- prop-types@15.8.1:
- resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
-
protocols@2.0.2:
resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==}
@@ -4763,8 +3837,8 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- pure-rand@7.0.1:
- resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==}
+ pure-rand@6.1.0:
+ resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
qrcode-terminal@0.11.0:
resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==}
@@ -4776,10 +3850,6 @@ packages:
queue@6.0.2:
resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
- quick-lru@5.1.1:
- resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
- engines: {node: '>=10'}
-
range-parser@1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
@@ -4799,9 +3869,6 @@ packages:
peerDependencies:
react: ^19.1.0
- react-is@16.13.1:
- resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
-
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
@@ -4833,8 +3900,8 @@ packages:
react: '*'
react-native: '*'
- react-native-svg@15.8.0:
- resolution: {integrity: sha512-KHJzKpgOjwj1qeZzsBjxNdoIgv2zNCO9fVcoq2TEhTRsVV5DGTZ9JzUZwybd7q4giT/H3RdtqC3u44dWdO0Ffw==}
+ react-native-svg@15.12.1:
+ resolution: {integrity: sha512-vCuZJDf8a5aNC2dlMovEv4Z0jjEUET53lm/iILFnFewa15b4atjVxU6Wirm6O9y6dEsdjDZVD7Q3QM4T1wlI8g==}
peerDependencies:
react: '*'
react-native: '*'
@@ -4871,14 +3938,6 @@ packages:
resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
engines: {node: '>=0.10.0'}
- read-pkg-up@8.0.0:
- resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==}
- engines: {node: '>=12'}
-
- read-pkg@6.0.0:
- resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==}
- engines: {node: '>=12'}
-
readable-stream@3.6.2:
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
engines: {node: '>= 6'}
@@ -4887,14 +3946,6 @@ packages:
resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==}
engines: {node: '>= 20.19.0'}
- redent@4.0.0:
- resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
- engines: {node: '>=12'}
-
- reflect.getprototypeof@1.0.10:
- resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
- engines: {node: '>= 0.4'}
-
regenerate-unicode-properties@10.2.2:
resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==}
engines: {node: '>=4'}
@@ -4905,10 +3956,6 @@ packages:
regenerator-runtime@0.13.11:
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
- regexp.prototype.flags@1.5.4:
- resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
- engines: {node: '>= 0.4'}
-
regexpu-core@6.4.0:
resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==}
engines: {node: '>=4'}
@@ -4968,11 +4015,6 @@ packages:
resolve@1.7.1:
resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==}
- resolve@2.0.0-next.6:
- resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==}
- engines: {node: '>= 0.4'}
- hasBin: true
-
restore-cursor@2.0.0:
resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==}
engines: {node: '>=4'}
@@ -5008,21 +4050,9 @@ packages:
rxjs@7.8.2:
resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
- safe-array-concat@1.1.3:
- resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
- engines: {node: '>=0.4'}
-
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- safe-push-apply@1.0.0:
- resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
- engines: {node: '>= 0.4'}
-
- safe-regex-test@1.1.0:
- resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
- engines: {node: '>= 0.4'}
-
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -5064,18 +4094,6 @@ packages:
resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==}
engines: {node: '>= 0.8.0'}
- set-function-length@1.2.2:
- resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
- engines: {node: '>= 0.4'}
-
- set-function-name@2.0.2:
- resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
- engines: {node: '>= 0.4'}
-
- set-proto@1.0.0:
- resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
- engines: {node: '>= 0.4'}
-
setimmediate@1.0.5:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
@@ -5094,22 +4112,6 @@ packages:
resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==}
engines: {node: '>= 0.4'}
- side-channel-list@1.0.0:
- resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
- engines: {node: '>= 0.4'}
-
- side-channel-map@1.0.1:
- resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
- engines: {node: '>= 0.4'}
-
- side-channel-weakmap@1.0.2:
- resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
- engines: {node: '>= 0.4'}
-
- side-channel@1.1.0:
- resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
- engines: {node: '>= 0.4'}
-
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@@ -5127,9 +4129,9 @@ packages:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
- slash@4.0.0:
- resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
- engines: {node: '>=12'}
+ slash@5.1.0:
+ resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
+ engines: {node: '>=14.16'}
slugify@1.6.6:
resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==}
@@ -5207,10 +4209,6 @@ packages:
resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==}
engines: {node: '>=18'}
- stop-iteration-iterator@1.1.0:
- resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
- engines: {node: '>= 0.4'}
-
stream-buffers@2.2.0:
resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==}
engines: {node: '>= 0.10.0'}
@@ -5219,9 +4217,6 @@ packages:
resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
engines: {node: '>=10'}
- string-natural-compare@3.0.1:
- resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==}
-
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -5234,25 +4229,6 @@ packages:
resolution: {integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==}
engines: {node: '>=20'}
- string.prototype.matchall@4.0.12:
- resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
- engines: {node: '>= 0.4'}
-
- string.prototype.repeat@1.0.0:
- resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
-
- string.prototype.trim@1.2.10:
- resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
- engines: {node: '>= 0.4'}
-
- string.prototype.trimend@1.0.9:
- resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
- engines: {node: '>= 0.4'}
-
- string.prototype.trimstart@1.0.8:
- resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
- engines: {node: '>= 0.4'}
-
string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
@@ -5280,10 +4256,6 @@ packages:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
- strip-indent@4.1.1:
- resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==}
- engines: {node: '>=12'}
-
strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
@@ -5323,10 +4295,6 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- synckit@0.11.12:
- resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==}
- engines: {node: ^14.18.0 || >=16.0.0}
-
tar@7.5.9:
resolution: {integrity: sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==}
engines: {node: '>=18'}
@@ -5380,35 +4348,12 @@ packages:
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
- trim-newlines@4.1.1:
- resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==}
- engines: {node: '>=12'}
-
- ts-api-utils@1.4.3:
- resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
- engines: {node: '>=16'}
- peerDependencies:
- typescript: '>=4.2.0'
-
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- tslib@1.14.1:
- resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
-
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- tsutils@3.21.0:
- resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
- engines: {node: '>= 6'}
- peerDependencies:
- typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
-
- type-check@0.4.0:
- resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
- engines: {node: '>= 0.8.0'}
-
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
@@ -5421,30 +4366,10 @@ packages:
resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
engines: {node: '>=8'}
- type-fest@1.4.0:
- resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
- engines: {node: '>=10'}
-
type-fest@2.19.0:
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
engines: {node: '>=12.20'}
- typed-array-buffer@1.0.3:
- resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
- engines: {node: '>= 0.4'}
-
- typed-array-byte-length@1.0.3:
- resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
- engines: {node: '>= 0.4'}
-
- typed-array-byte-offset@1.0.4:
- resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
- engines: {node: '>= 0.4'}
-
- typed-array-length@1.0.7:
- resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
- engines: {node: '>= 0.4'}
-
typedarray@0.0.6:
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
@@ -5462,10 +4387,6 @@ packages:
engines: {node: '>=0.8.0'}
hasBin: true
- unbox-primitive@1.1.0:
- resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
- engines: {node: '>= 0.4'}
-
unc-path-regex@0.1.2:
resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==}
engines: {node: '>=0.10.0'}
@@ -5496,6 +4417,10 @@ packages:
resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==}
engines: {node: '>=4'}
+ unicorn-magic@0.3.0:
+ resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
+ engines: {node: '>=18'}
+
unique-string@2.0.0:
resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
engines: {node: '>=8'}
@@ -5511,18 +4436,12 @@ packages:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
- unrs-resolver@1.11.1:
- resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
-
update-browserslist-db@1.2.3:
resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
- uri-js@4.4.1:
- resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
-
url-join@5.0.0:
resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -5586,22 +4505,6 @@ packages:
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
- which-boxed-primitive@1.1.1:
- resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
- engines: {node: '>= 0.4'}
-
- which-builtin-type@1.2.1:
- resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
- engines: {node: '>= 0.4'}
-
- which-collection@1.0.2:
- resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
- engines: {node: '>= 0.4'}
-
- which-typed-array@1.1.20:
- resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
- engines: {node: '>= 0.4'}
-
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
@@ -5617,10 +4520,6 @@ packages:
wonka@6.3.5:
resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==}
- word-wrap@1.2.5:
- resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
- engines: {node: '>=0.10.0'}
-
wordwrap@1.0.0:
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
@@ -5643,10 +4542,6 @@ packages:
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- write-file-atomic@5.0.1:
- resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
ws@6.2.3:
resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==}
peerDependencies:
@@ -5709,9 +4604,6 @@ packages:
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
- yallist@4.0.0:
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
-
yallist@5.0.0:
resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
engines: {node: '>=18'}
@@ -5721,10 +4613,6 @@ packages:
engines: {node: '>= 14.6'}
hasBin: true
- yargs-parser@20.2.9:
- resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
- engines: {node: '>=10'}
-
yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
@@ -5787,14 +4675,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.3(jiti@2.6.1))':
- dependencies:
- '@babel/core': 7.29.0
- '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
- eslint: 9.39.3(jiti@2.6.1)
- eslint-visitor-keys: 2.1.0
- semver: 6.3.1
-
'@babel/generator@7.29.1':
dependencies:
'@babel/parser': 7.29.0
@@ -6640,6 +5520,41 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
+ '@biomejs/biome@2.4.4':
+ optionalDependencies:
+ '@biomejs/cli-darwin-arm64': 2.4.4
+ '@biomejs/cli-darwin-x64': 2.4.4
+ '@biomejs/cli-linux-arm64': 2.4.4
+ '@biomejs/cli-linux-arm64-musl': 2.4.4
+ '@biomejs/cli-linux-x64': 2.4.4
+ '@biomejs/cli-linux-x64-musl': 2.4.4
+ '@biomejs/cli-win32-arm64': 2.4.4
+ '@biomejs/cli-win32-x64': 2.4.4
+
+ '@biomejs/cli-darwin-arm64@2.4.4':
+ optional: true
+
+ '@biomejs/cli-darwin-x64@2.4.4':
+ optional: true
+
+ '@biomejs/cli-linux-arm64-musl@2.4.4':
+ optional: true
+
+ '@biomejs/cli-linux-arm64@2.4.4':
+ optional: true
+
+ '@biomejs/cli-linux-x64-musl@2.4.4':
+ optional: true
+
+ '@biomejs/cli-linux-x64@2.4.4':
+ optional: true
+
+ '@biomejs/cli-win32-arm64@2.4.4':
+ optional: true
+
+ '@biomejs/cli-win32-x64@2.4.4':
+ optional: true
+
'@commitlint/cli@20.4.2(@types/node@25.3.0)(typescript@5.9.3)':
dependencies:
'@commitlint/format': 20.4.0
@@ -6758,79 +5673,7 @@ snapshots:
conventional-commits-filter: 5.0.0
conventional-commits-parser: 6.2.1
- '@emnapi/core@1.8.1':
- dependencies:
- '@emnapi/wasi-threads': 1.1.0
- tslib: 2.8.1
- optional: true
-
- '@emnapi/runtime@1.8.1':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@emnapi/wasi-threads@1.1.0':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@eslint-community/eslint-utils@4.9.1(eslint@9.39.3(jiti@2.6.1))':
- dependencies:
- eslint: 9.39.3(jiti@2.6.1)
- eslint-visitor-keys: 3.4.3
-
- '@eslint-community/regexpp@4.12.2': {}
-
- '@eslint/compat@2.0.2(eslint@9.39.3(jiti@2.6.1))':
- dependencies:
- '@eslint/core': 1.1.0
- optionalDependencies:
- eslint: 9.39.3(jiti@2.6.1)
-
- '@eslint/config-array@0.21.1':
- dependencies:
- '@eslint/object-schema': 2.1.7
- debug: 4.4.3
- minimatch: 3.1.3
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/config-helpers@0.4.2':
- dependencies:
- '@eslint/core': 0.17.0
-
- '@eslint/core@0.17.0':
- dependencies:
- '@types/json-schema': 7.0.15
-
- '@eslint/core@1.1.0':
- dependencies:
- '@types/json-schema': 7.0.15
-
- '@eslint/eslintrc@3.3.3':
- dependencies:
- ajv: 6.14.0
- debug: 4.4.3
- espree: 10.4.0
- globals: 14.0.0
- ignore: 5.3.2
- import-fresh: 3.3.1
- js-yaml: 4.1.1
- minimatch: 3.1.3
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/js@9.39.3': {}
-
- '@eslint/object-schema@2.1.7': {}
-
- '@eslint/plugin-kit@0.4.1':
- dependencies:
- '@eslint/core': 0.17.0
- levn: 0.4.1
-
- '@evilmartians/lefthook@1.13.6': {}
+ '@evilmartians/lefthook@2.1.1': {}
'@expo/cli@54.0.23(expo@54.0.33)(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))':
dependencies:
@@ -7130,17 +5973,6 @@ snapshots:
chalk: 4.1.2
js-yaml: 4.1.1
- '@humanfs/core@0.19.1': {}
-
- '@humanfs/node@0.16.7':
- dependencies:
- '@humanfs/core': 0.19.1
- '@humanwhocodes/retry': 0.4.3
-
- '@humanwhocodes/module-importer@1.0.1': {}
-
- '@humanwhocodes/retry@0.4.3': {}
-
'@inquirer/ansi@1.0.2': {}
'@inquirer/checkbox@4.3.2(@types/node@25.3.0)':
@@ -7291,48 +6123,47 @@ snapshots:
'@istanbuljs/schema@0.1.3': {}
- '@jest/console@30.2.0':
+ '@jest/console@29.7.0':
dependencies:
- '@jest/types': 30.2.0
+ '@jest/types': 29.6.3
'@types/node': 25.3.0
chalk: 4.1.2
- jest-message-util: 30.2.0
- jest-util: 30.2.0
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
slash: 3.0.0
- '@jest/core@30.2.0':
+ '@jest/core@29.7.0':
dependencies:
- '@jest/console': 30.2.0
- '@jest/pattern': 30.0.1
- '@jest/reporters': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/console': 29.7.0
+ '@jest/reporters': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
'@types/node': 25.3.0
ansi-escapes: 4.3.2
chalk: 4.1.2
- ci-info: 4.4.0
- exit-x: 0.2.2
+ ci-info: 3.9.0
+ exit: 0.1.2
graceful-fs: 4.2.11
- jest-changed-files: 30.2.0
- jest-config: 30.2.0(@types/node@25.3.0)
- jest-haste-map: 30.2.0
- jest-message-util: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-resolve-dependencies: 30.2.0
- jest-runner: 30.2.0
- jest-runtime: 30.2.0
- jest-snapshot: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
- jest-watcher: 30.2.0
+ jest-changed-files: 29.7.0
+ jest-config: 29.7.0(@types/node@25.3.0)
+ jest-haste-map: 29.7.0
+ jest-message-util: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-resolve-dependencies: 29.7.0
+ jest-runner: 29.7.0
+ jest-runtime: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ jest-watcher: 29.7.0
micromatch: 4.0.8
- pretty-format: 30.2.0
+ pretty-format: 29.7.0
slash: 3.0.0
+ strip-ansi: 6.0.1
transitivePeerDependencies:
- babel-plugin-macros
- - esbuild-register
- supports-color
- ts-node
@@ -7340,8 +6171,6 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
- '@jest/diff-sequences@30.0.1': {}
-
'@jest/environment@29.7.0':
dependencies:
'@jest/fake-timers': 29.7.0
@@ -7349,21 +6178,14 @@ snapshots:
'@types/node': 25.3.0
jest-mock: 29.7.0
- '@jest/environment@30.2.0':
- dependencies:
- '@jest/fake-timers': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.3.0
- jest-mock: 30.2.0
-
- '@jest/expect-utils@30.2.0':
+ '@jest/expect-utils@29.7.0':
dependencies:
- '@jest/get-type': 30.1.0
+ jest-get-type: 29.6.3
- '@jest/expect@30.2.0':
+ '@jest/expect@29.7.0':
dependencies:
- expect: 30.2.0
- jest-snapshot: 30.2.0
+ expect: 29.7.0
+ jest-snapshot: 29.7.0
transitivePeerDependencies:
- supports-color
@@ -7376,55 +6198,40 @@ snapshots:
jest-mock: 29.7.0
jest-util: 29.7.0
- '@jest/fake-timers@30.2.0':
- dependencies:
- '@jest/types': 30.2.0
- '@sinonjs/fake-timers': 13.0.5
- '@types/node': 25.3.0
- jest-message-util: 30.2.0
- jest-mock: 30.2.0
- jest-util: 30.2.0
-
- '@jest/get-type@30.1.0': {}
-
- '@jest/globals@30.2.0':
+ '@jest/globals@29.7.0':
dependencies:
- '@jest/environment': 30.2.0
- '@jest/expect': 30.2.0
- '@jest/types': 30.2.0
- jest-mock: 30.2.0
+ '@jest/environment': 29.7.0
+ '@jest/expect': 29.7.0
+ '@jest/types': 29.6.3
+ jest-mock: 29.7.0
transitivePeerDependencies:
- supports-color
- '@jest/pattern@30.0.1':
- dependencies:
- '@types/node': 25.3.0
- jest-regex-util: 30.0.1
-
- '@jest/reporters@30.2.0':
+ '@jest/reporters@29.7.0':
dependencies:
'@bcoe/v8-coverage': 0.2.3
- '@jest/console': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/console': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.31
'@types/node': 25.3.0
chalk: 4.1.2
collect-v8-coverage: 1.0.3
- exit-x: 0.2.2
- glob: 10.5.0
+ exit: 0.1.2
+ glob: 7.2.3
graceful-fs: 4.2.11
istanbul-lib-coverage: 3.2.2
istanbul-lib-instrument: 6.0.3
istanbul-lib-report: 3.0.1
- istanbul-lib-source-maps: 5.0.6
+ istanbul-lib-source-maps: 4.0.1
istanbul-reports: 3.2.0
- jest-message-util: 30.2.0
- jest-util: 30.2.0
- jest-worker: 30.2.0
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+ jest-worker: 29.7.0
slash: 3.0.0
string-length: 4.0.2
+ strip-ansi: 6.0.1
v8-to-istanbul: 9.3.0
transitivePeerDependencies:
- supports-color
@@ -7433,35 +6240,24 @@ snapshots:
dependencies:
'@sinclair/typebox': 0.27.10
- '@jest/schemas@30.0.5':
- dependencies:
- '@sinclair/typebox': 0.34.48
-
- '@jest/snapshot-utils@30.2.0':
- dependencies:
- '@jest/types': 30.2.0
- chalk: 4.1.2
- graceful-fs: 4.2.11
- natural-compare: 1.4.0
-
- '@jest/source-map@30.0.1':
+ '@jest/source-map@29.6.3':
dependencies:
'@jridgewell/trace-mapping': 0.3.31
callsites: 3.1.0
graceful-fs: 4.2.11
- '@jest/test-result@30.2.0':
+ '@jest/test-result@29.7.0':
dependencies:
- '@jest/console': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/console': 29.7.0
+ '@jest/types': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
collect-v8-coverage: 1.0.3
- '@jest/test-sequencer@30.2.0':
+ '@jest/test-sequencer@29.7.0':
dependencies:
- '@jest/test-result': 30.2.0
+ '@jest/test-result': 29.7.0
graceful-fs: 4.2.11
- jest-haste-map: 30.2.0
+ jest-haste-map: 29.7.0
slash: 3.0.0
'@jest/transform@29.7.0':
@@ -7484,26 +6280,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@jest/transform@30.2.0':
- dependencies:
- '@babel/core': 7.29.0
- '@jest/types': 30.2.0
- '@jridgewell/trace-mapping': 0.3.31
- babel-plugin-istanbul: 7.0.1
- chalk: 4.1.2
- convert-source-map: 2.0.0
- fast-json-stable-stringify: 2.1.0
- graceful-fs: 4.2.11
- jest-haste-map: 30.2.0
- jest-regex-util: 30.0.1
- jest-util: 30.2.0
- micromatch: 4.0.8
- pirates: 4.0.7
- slash: 3.0.0
- write-file-atomic: 5.0.1
- transitivePeerDependencies:
- - supports-color
-
'@jest/types@29.6.3':
dependencies:
'@jest/schemas': 29.6.3
@@ -7513,16 +6289,6 @@ snapshots:
'@types/yargs': 17.0.35
chalk: 4.1.2
- '@jest/types@30.2.0':
- dependencies:
- '@jest/pattern': 30.0.1
- '@jest/schemas': 30.0.5
- '@types/istanbul-lib-coverage': 2.0.6
- '@types/istanbul-reports': 3.0.4
- '@types/node': 25.3.0
- '@types/yargs': 17.0.35
- chalk: 4.1.2
-
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -7547,17 +6313,6 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
- '@napi-rs/wasm-runtime@0.2.12':
- dependencies:
- '@emnapi/core': 1.8.1
- '@emnapi/runtime': 1.8.1
- '@tybys/wasm-util': 0.10.1
- optional: true
-
- '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
- dependencies:
- eslint-scope: 5.1.1
-
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -7642,8 +6397,6 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@pkgr/core@0.2.9': {}
-
'@react-native/assets-registry@0.81.5': {}
'@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.29.0)':
@@ -7750,29 +6503,6 @@ snapshots:
- supports-color
- utf-8-validate
- '@react-native/eslint-config@0.78.3(eslint@9.39.3(jiti@2.6.1))(jest@30.2.0(@types/node@25.3.0))(prettier@3.8.1)(typescript@5.9.3)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@9.39.3(jiti@2.6.1))
- '@react-native/eslint-plugin': 0.78.3
- '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/parser': 7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.3(jiti@2.6.1)
- eslint-config-prettier: 8.10.2(eslint@9.39.3(jiti@2.6.1))
- eslint-plugin-eslint-comments: 3.2.0(eslint@9.39.3(jiti@2.6.1))
- eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.3(jiti@2.6.1)))(eslint@9.39.3(jiti@2.6.1))
- eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(jest@30.2.0(@types/node@25.3.0))(typescript@5.9.3)
- eslint-plugin-react: 7.37.5(eslint@9.39.3(jiti@2.6.1))
- eslint-plugin-react-hooks: 4.6.2(eslint@9.39.3(jiti@2.6.1))
- eslint-plugin-react-native: 4.1.0(eslint@9.39.3(jiti@2.6.1))
- prettier: 3.8.1
- transitivePeerDependencies:
- - jest
- - supports-color
- - typescript
-
- '@react-native/eslint-plugin@0.78.3': {}
-
'@react-native/gradle-plugin@0.81.5': {}
'@react-native/js-polyfills@0.81.5': {}
@@ -7836,7 +6566,7 @@ snapshots:
'@sinclair/typebox@0.27.10': {}
- '@sinclair/typebox@0.34.48': {}
+ '@sindresorhus/merge-streams@2.3.0': {}
'@sinonjs/commons@3.0.1':
dependencies:
@@ -7846,17 +6576,8 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
- '@sinonjs/fake-timers@13.0.5':
- dependencies:
- '@sinonjs/commons': 3.0.1
-
'@tootallnate/quickjs-emscripten@0.23.0': {}
- '@tybys/wasm-util@0.10.1':
- dependencies:
- tslib: 2.8.1
- optional: true
-
'@types/babel__core@7.20.5':
dependencies:
'@babel/parser': 7.29.0
@@ -7878,8 +6599,6 @@ snapshots:
dependencies:
'@babel/types': 7.29.0
- '@types/estree@1.0.8': {}
-
'@types/graceful-fs@4.1.9':
dependencies:
'@types/node': 25.3.0
@@ -7894,14 +6613,10 @@ snapshots:
dependencies:
'@types/istanbul-lib-report': 3.0.3
- '@types/jest@30.0.0':
+ '@types/jest@29.5.14':
dependencies:
- expect: 30.2.0
- pretty-format: 30.2.0
-
- '@types/json-schema@7.0.15': {}
-
- '@types/minimist@1.2.5': {}
+ expect: 29.7.0
+ pretty-format: 29.7.0
'@types/node@22.19.11':
dependencies:
@@ -7921,8 +6636,6 @@ snapshots:
dependencies:
csstype: 3.2.3
- '@types/semver@7.7.1': {}
-
'@types/stack-utils@2.0.3': {}
'@types/yargs-parser@21.0.3': {}
@@ -7931,189 +6644,8 @@ snapshots:
dependencies:
'@types/yargs-parser': 21.0.3
- '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 7.18.0
- '@typescript-eslint/type-utils': 7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/utils': 7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 7.18.0
- eslint: 9.39.3(jiti@2.6.1)
- graphemer: 1.4.0
- ignore: 5.3.2
- natural-compare: 1.4.0
- ts-api-utils: 1.4.3(typescript@5.9.3)
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/parser@7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/scope-manager': 7.18.0
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 7.18.0
- debug: 4.4.3
- eslint: 9.39.3(jiti@2.6.1)
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/scope-manager@5.62.0':
- dependencies:
- '@typescript-eslint/types': 5.62.0
- '@typescript-eslint/visitor-keys': 5.62.0
-
- '@typescript-eslint/scope-manager@7.18.0':
- dependencies:
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/visitor-keys': 7.18.0
-
- '@typescript-eslint/type-utils@7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3)
- '@typescript-eslint/utils': 7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- debug: 4.4.3
- eslint: 9.39.3(jiti@2.6.1)
- ts-api-utils: 1.4.3(typescript@5.9.3)
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/types@5.62.0': {}
-
- '@typescript-eslint/types@7.18.0': {}
-
- '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/types': 5.62.0
- '@typescript-eslint/visitor-keys': 5.62.0
- debug: 4.4.3
- globby: 11.1.0
- is-glob: 4.0.3
- semver: 7.7.4
- tsutils: 3.21.0(typescript@5.9.3)
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/visitor-keys': 7.18.0
- debug: 4.4.3
- globby: 11.1.0
- is-glob: 4.0.3
- minimatch: 9.0.6
- semver: 7.7.4
- ts-api-utils: 1.4.3(typescript@5.9.3)
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/utils@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1))
- '@types/json-schema': 7.0.15
- '@types/semver': 7.7.1
- '@typescript-eslint/scope-manager': 5.62.0
- '@typescript-eslint/types': 5.62.0
- '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3)
- eslint: 9.39.3(jiti@2.6.1)
- eslint-scope: 5.1.1
- semver: 7.7.4
- transitivePeerDependencies:
- - supports-color
- - typescript
-
- '@typescript-eslint/utils@7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1))
- '@typescript-eslint/scope-manager': 7.18.0
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3)
- eslint: 9.39.3(jiti@2.6.1)
- transitivePeerDependencies:
- - supports-color
- - typescript
-
- '@typescript-eslint/visitor-keys@5.62.0':
- dependencies:
- '@typescript-eslint/types': 5.62.0
- eslint-visitor-keys: 3.4.3
-
- '@typescript-eslint/visitor-keys@7.18.0':
- dependencies:
- '@typescript-eslint/types': 7.18.0
- eslint-visitor-keys: 3.4.3
-
'@ungap/structured-clone@1.3.0': {}
- '@unrs/resolver-binding-android-arm-eabi@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-android-arm64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-darwin-x64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-freebsd-x64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-x64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-wasm32-wasi@1.11.1':
- dependencies:
- '@napi-rs/wasm-runtime': 0.2.12
- optional: true
-
- '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
- optional: true
-
'@urql/core@5.2.0':
dependencies:
'@0no-co/graphql.web': 1.2.0
@@ -8142,10 +6674,6 @@ snapshots:
mime-types: 3.0.2
negotiator: 1.0.0
- acorn-jsx@5.3.2(acorn@8.16.0):
- dependencies:
- acorn: 8.16.0
-
acorn@8.16.0: {}
agent-base@7.1.4: {}
@@ -8155,18 +6683,6 @@ snapshots:
clean-stack: 2.2.0
indent-string: 4.0.0
- aggregate-error@4.0.1:
- dependencies:
- clean-stack: 4.2.0
- indent-string: 5.0.0
-
- ajv@6.14.0:
- dependencies:
- fast-deep-equal: 3.1.3
- fast-json-stable-stringify: 2.1.0
- json-schema-traverse: 0.4.1
- uri-js: 4.4.1
-
ajv@8.18.0:
dependencies:
fast-deep-equal: 3.1.3
@@ -8223,87 +6739,22 @@ snapshots:
'@ark/util': 0.56.0
arkregex: 0.0.5
- array-buffer-byte-length@1.0.2:
- dependencies:
- call-bound: 1.0.4
- is-array-buffer: 3.0.5
-
array-ify@1.0.0: {}
- array-includes@3.1.9:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- is-string: 1.1.1
- math-intrinsics: 1.1.0
-
array-union@2.1.0: {}
- array.prototype.findlast@1.2.5:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- es-shim-unscopables: 1.1.0
-
- array.prototype.flat@1.3.3:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-shim-unscopables: 1.1.0
-
- array.prototype.flatmap@1.3.3:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-shim-unscopables: 1.1.0
-
- array.prototype.tosorted@1.1.4:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-errors: 1.3.0
- es-shim-unscopables: 1.1.0
-
- arraybuffer.prototype.slice@1.0.4:
- dependencies:
- array-buffer-byte-length: 1.0.2
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- is-array-buffer: 3.0.5
-
- arrify@1.0.1: {}
-
asap@2.0.6: {}
ast-types@0.13.4:
dependencies:
tslib: 2.8.1
- async-function@1.0.0: {}
-
async-limiter@1.0.1: {}
async-retry@1.3.3:
dependencies:
retry: 0.13.1
- available-typed-arrays@1.0.7:
- dependencies:
- possible-typed-array-names: 1.1.0
-
babel-jest@29.7.0(@babel/core@7.29.0):
dependencies:
'@babel/core': 7.29.0
@@ -8317,19 +6768,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-jest@30.2.0(@babel/core@7.29.0):
- dependencies:
- '@babel/core': 7.29.0
- '@jest/transform': 30.2.0
- '@types/babel__core': 7.20.5
- babel-plugin-istanbul: 7.0.1
- babel-preset-jest: 30.2.0(@babel/core@7.29.0)
- chalk: 4.1.2
- graceful-fs: 4.2.11
- slash: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
babel-plugin-istanbul@6.1.1:
dependencies:
'@babel/helper-plugin-utils': 7.28.6
@@ -8340,16 +6778,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-plugin-istanbul@7.0.1:
- dependencies:
- '@babel/helper-plugin-utils': 7.28.6
- '@istanbuljs/load-nyc-config': 1.1.0
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-instrument: 6.0.3
- test-exclude: 6.0.0
- transitivePeerDependencies:
- - supports-color
-
babel-plugin-jest-hoist@29.6.3:
dependencies:
'@babel/template': 7.28.6
@@ -8357,10 +6785,6 @@ snapshots:
'@types/babel__core': 7.20.5
'@types/babel__traverse': 7.28.0
- babel-plugin-jest-hoist@30.2.0:
- dependencies:
- '@types/babel__core': 7.20.5
-
babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.29.0):
dependencies:
'@babel/compat-data': 7.29.0
@@ -8470,12 +6894,6 @@ snapshots:
babel-plugin-jest-hoist: 29.6.3
babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0)
- babel-preset-jest@30.2.0(@babel/core@7.29.0):
- dependencies:
- '@babel/core': 7.29.0
- babel-plugin-jest-hoist: 30.2.0
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0)
-
balanced-match@1.0.2: {}
balanced-match@4.0.4: {}
@@ -8561,32 +6979,8 @@ snapshots:
pkg-types: 2.3.0
rc9: 2.1.2
- call-bind-apply-helpers@1.0.2:
- dependencies:
- es-errors: 1.3.0
- function-bind: 1.1.2
-
- call-bind@1.0.8:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- get-intrinsic: 1.3.0
- set-function-length: 1.2.2
-
- call-bound@1.0.4:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- get-intrinsic: 1.3.0
-
callsites@3.1.0: {}
- camelcase-keys@7.0.2:
- dependencies:
- camelcase: 6.3.0
- map-obj: 4.3.0
- quick-lru: 5.1.1
- type-fest: 1.4.0
-
camelcase@5.3.1: {}
camelcase@6.3.0: {}
@@ -8648,14 +7042,10 @@ snapshots:
citty@0.2.1: {}
- cjs-module-lexer@2.2.0: {}
+ cjs-module-lexer@1.4.3: {}
clean-stack@2.2.0: {}
- clean-stack@4.2.0:
- dependencies:
- escape-string-regexp: 5.0.0
-
cli-cursor@2.1.0:
dependencies:
restore-cursor: 2.0.0
@@ -8819,6 +7209,21 @@ snapshots:
optionalDependencies:
typescript: 5.9.3
+ create-jest@29.7.0(@types/node@25.3.0):
+ dependencies:
+ '@jest/types': 29.6.3
+ chalk: 4.1.2
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ jest-config: 29.7.0(@types/node@25.3.0)
+ jest-util: 29.7.0
+ prompts: 2.4.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
cross-fetch@3.2.0:
dependencies:
node-fetch: 2.7.0
@@ -8858,24 +7263,6 @@ snapshots:
data-uri-to-buffer@6.0.2: {}
- data-view-buffer@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
- data-view-byte-length@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
- data-view-byte-offset@1.0.1:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
debug@2.6.9:
dependencies:
ms: 2.0.0
@@ -8888,23 +7275,12 @@ snapshots:
dependencies:
ms: 2.1.3
- decamelize-keys@1.1.1:
- dependencies:
- decamelize: 1.2.0
- map-obj: 1.0.1
-
- decamelize@1.2.0: {}
-
- decamelize@5.0.1: {}
-
dedent@0.7.0: {}
dedent@1.7.1: {}
deep-extend@0.6.0: {}
- deep-is@0.1.4: {}
-
deepmerge@4.3.1: {}
default-browser-id@5.0.1: {}
@@ -8918,22 +7294,10 @@ snapshots:
dependencies:
clone: 1.0.4
- define-data-property@1.1.4:
- dependencies:
- es-define-property: 1.0.1
- es-errors: 1.3.0
- gopd: 1.2.0
-
define-lazy-prop@2.0.0: {}
define-lazy-prop@3.0.0: {}
- define-properties@1.2.1:
- dependencies:
- define-data-property: 1.1.4
- has-property-descriptors: 1.0.2
- object-keys: 1.1.1
-
defu@6.1.4: {}
degenerator@5.0.1:
@@ -8942,10 +7306,11 @@ snapshots:
escodegen: 2.1.0
esprima: 4.0.1
- del-cli@5.1.0:
+ del-cli@7.0.0:
dependencies:
- del: 7.1.0
- meow: 10.1.5
+ del: 8.0.1
+ meow: 14.1.0
+ presentable-error: 0.0.1
del@6.1.1:
dependencies:
@@ -8958,16 +7323,15 @@ snapshots:
rimraf: 3.0.2
slash: 3.0.0
- del@7.1.0:
+ del@8.0.1:
dependencies:
- globby: 13.2.2
- graceful-fs: 4.2.11
+ globby: 14.1.0
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
+ p-map: 7.0.4
+ presentable-error: 0.0.1
+ slash: 5.1.0
depd@2.0.0: {}
@@ -8979,14 +7343,12 @@ snapshots:
detect-newline@3.1.0: {}
+ diff-sequences@29.6.3: {}
+
dir-glob@3.0.1:
dependencies:
path-type: 4.0.0
- doctrine@2.1.0:
- dependencies:
- esutils: 2.0.3
-
dom-serializer@2.0.0:
dependencies:
domelementtype: 2.3.0
@@ -9017,12 +7379,6 @@ snapshots:
dotenv@17.3.1: {}
- dunder-proto@1.0.1:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-errors: 1.3.0
- gopd: 1.2.0
-
eastasianwidth@0.2.0: {}
ee-first@1.1.1: {}
@@ -9057,107 +7413,6 @@ snapshots:
dependencies:
stackframe: 1.3.4
- es-abstract@1.24.1:
- dependencies:
- array-buffer-byte-length: 1.0.2
- arraybuffer.prototype.slice: 1.0.4
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- call-bound: 1.0.4
- data-view-buffer: 1.0.2
- data-view-byte-length: 1.0.2
- data-view-byte-offset: 1.0.1
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- es-set-tostringtag: 2.1.0
- es-to-primitive: 1.3.0
- function.prototype.name: 1.1.8
- get-intrinsic: 1.3.0
- get-proto: 1.0.1
- get-symbol-description: 1.1.0
- globalthis: 1.0.4
- gopd: 1.2.0
- has-property-descriptors: 1.0.2
- has-proto: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- internal-slot: 1.1.0
- is-array-buffer: 3.0.5
- is-callable: 1.2.7
- is-data-view: 1.0.2
- is-negative-zero: 2.0.3
- is-regex: 1.2.1
- is-set: 2.0.3
- is-shared-array-buffer: 1.0.4
- is-string: 1.1.1
- is-typed-array: 1.1.15
- is-weakref: 1.1.1
- math-intrinsics: 1.1.0
- object-inspect: 1.13.4
- object-keys: 1.1.1
- object.assign: 4.1.7
- own-keys: 1.0.1
- regexp.prototype.flags: 1.5.4
- safe-array-concat: 1.1.3
- safe-push-apply: 1.0.0
- safe-regex-test: 1.1.0
- set-proto: 1.0.0
- stop-iteration-iterator: 1.1.0
- string.prototype.trim: 1.2.10
- string.prototype.trimend: 1.0.9
- string.prototype.trimstart: 1.0.8
- typed-array-buffer: 1.0.3
- typed-array-byte-length: 1.0.3
- typed-array-byte-offset: 1.0.4
- typed-array-length: 1.0.7
- unbox-primitive: 1.1.0
- which-typed-array: 1.1.20
-
- es-define-property@1.0.1: {}
-
- es-errors@1.3.0: {}
-
- es-iterator-helpers@1.2.2:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-errors: 1.3.0
- es-set-tostringtag: 2.1.0
- function-bind: 1.1.2
- get-intrinsic: 1.3.0
- globalthis: 1.0.4
- gopd: 1.2.0
- has-property-descriptors: 1.0.2
- has-proto: 1.2.0
- has-symbols: 1.1.0
- internal-slot: 1.1.0
- iterator.prototype: 1.1.5
- safe-array-concat: 1.1.3
-
- es-object-atoms@1.1.1:
- dependencies:
- es-errors: 1.3.0
-
- es-set-tostringtag@2.1.0:
- dependencies:
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
- es-shim-unscopables@1.1.0:
- dependencies:
- hasown: 2.0.2
-
- es-to-primitive@1.3.0:
- dependencies:
- is-callable: 1.2.7
- is-date-object: 1.1.0
- is-symbol: 1.1.1
-
escalade@3.2.0: {}
escape-html@1.0.3: {}
@@ -9178,155 +7433,8 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
- eslint-config-prettier@10.1.8(eslint@9.39.3(jiti@2.6.1)):
- dependencies:
- eslint: 9.39.3(jiti@2.6.1)
-
- eslint-config-prettier@8.10.2(eslint@9.39.3(jiti@2.6.1)):
- dependencies:
- eslint: 9.39.3(jiti@2.6.1)
-
- eslint-plugin-eslint-comments@3.2.0(eslint@9.39.3(jiti@2.6.1)):
- dependencies:
- escape-string-regexp: 1.0.5
- eslint: 9.39.3(jiti@2.6.1)
- ignore: 5.3.2
-
- eslint-plugin-ft-flow@2.0.3(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.3(jiti@2.6.1)))(eslint@9.39.3(jiti@2.6.1)):
- dependencies:
- '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@9.39.3(jiti@2.6.1))
- eslint: 9.39.3(jiti@2.6.1)
- lodash: 4.17.23
- string-natural-compare: 3.0.1
-
- eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(jest@30.2.0(@types/node@25.3.0))(typescript@5.9.3):
- dependencies:
- '@typescript-eslint/utils': 5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.3(jiti@2.6.1)
- optionalDependencies:
- '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)
- jest: 30.2.0(@types/node@25.3.0)
- transitivePeerDependencies:
- - supports-color
- - typescript
-
- eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.3(jiti@2.6.1)))(eslint@9.39.3(jiti@2.6.1))(prettier@3.8.1):
- dependencies:
- eslint: 9.39.3(jiti@2.6.1)
- prettier: 3.8.1
- prettier-linter-helpers: 1.0.1
- synckit: 0.11.12
- optionalDependencies:
- eslint-config-prettier: 10.1.8(eslint@9.39.3(jiti@2.6.1))
-
- eslint-plugin-react-hooks@4.6.2(eslint@9.39.3(jiti@2.6.1)):
- dependencies:
- eslint: 9.39.3(jiti@2.6.1)
-
- eslint-plugin-react-native-globals@0.1.2: {}
-
- eslint-plugin-react-native@4.1.0(eslint@9.39.3(jiti@2.6.1)):
- dependencies:
- eslint: 9.39.3(jiti@2.6.1)
- eslint-plugin-react-native-globals: 0.1.2
-
- eslint-plugin-react@7.37.5(eslint@9.39.3(jiti@2.6.1)):
- dependencies:
- array-includes: 3.1.9
- array.prototype.findlast: 1.2.5
- array.prototype.flatmap: 1.3.3
- array.prototype.tosorted: 1.1.4
- doctrine: 2.1.0
- es-iterator-helpers: 1.2.2
- eslint: 9.39.3(jiti@2.6.1)
- estraverse: 5.3.0
- hasown: 2.0.2
- jsx-ast-utils: 3.3.5
- minimatch: 3.1.3
- object.entries: 1.1.9
- object.fromentries: 2.0.8
- object.values: 1.2.1
- prop-types: 15.8.1
- resolve: 2.0.0-next.6
- semver: 6.3.1
- string.prototype.matchall: 4.0.12
- string.prototype.repeat: 1.0.0
-
- eslint-scope@5.1.1:
- dependencies:
- esrecurse: 4.3.0
- estraverse: 4.3.0
-
- eslint-scope@8.4.0:
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
-
- eslint-visitor-keys@2.1.0: {}
-
- eslint-visitor-keys@3.4.3: {}
-
- eslint-visitor-keys@4.2.1: {}
-
- eslint@9.39.3(jiti@2.6.1):
- dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3(jiti@2.6.1))
- '@eslint-community/regexpp': 4.12.2
- '@eslint/config-array': 0.21.1
- '@eslint/config-helpers': 0.4.2
- '@eslint/core': 0.17.0
- '@eslint/eslintrc': 3.3.3
- '@eslint/js': 9.39.3
- '@eslint/plugin-kit': 0.4.1
- '@humanfs/node': 0.16.7
- '@humanwhocodes/module-importer': 1.0.1
- '@humanwhocodes/retry': 0.4.3
- '@types/estree': 1.0.8
- ajv: 6.14.0
- chalk: 4.1.2
- cross-spawn: 7.0.6
- debug: 4.4.3
- escape-string-regexp: 4.0.0
- eslint-scope: 8.4.0
- eslint-visitor-keys: 4.2.1
- espree: 10.4.0
- esquery: 1.7.0
- esutils: 2.0.3
- fast-deep-equal: 3.1.3
- file-entry-cache: 8.0.0
- find-up: 5.0.0
- glob-parent: 6.0.2
- ignore: 5.3.2
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- json-stable-stringify-without-jsonify: 1.0.1
- lodash.merge: 4.6.2
- minimatch: 3.1.3
- natural-compare: 1.4.0
- optionator: 0.9.4
- optionalDependencies:
- jiti: 2.6.1
- transitivePeerDependencies:
- - supports-color
-
- espree@10.4.0:
- dependencies:
- acorn: 8.16.0
- acorn-jsx: 5.3.2(acorn@8.16.0)
- eslint-visitor-keys: 4.2.1
-
esprima@4.0.1: {}
- esquery@1.7.0:
- dependencies:
- estraverse: 5.3.0
-
- esrecurse@4.3.0:
- dependencies:
- estraverse: 5.3.0
-
- estraverse@4.3.0: {}
-
estraverse@5.3.0: {}
esutils@2.0.3: {}
@@ -9375,16 +7483,15 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
- exit-x@0.2.2: {}
+ exit@0.1.2: {}
- expect@30.2.0:
+ expect@29.7.0:
dependencies:
- '@jest/expect-utils': 30.2.0
- '@jest/get-type': 30.1.0
- jest-matcher-utils: 30.2.0
- jest-message-util: 30.2.0
- jest-mock: 30.2.0
- jest-util: 30.2.0
+ '@jest/expect-utils': 29.7.0
+ jest-get-type: 29.6.3
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
expo-asset@12.0.12(expo@54.0.33)(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0):
dependencies:
@@ -9487,8 +7594,6 @@ snapshots:
fast-deep-equal@3.1.3: {}
- fast-diff@1.3.0: {}
-
fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -9499,8 +7604,6 @@ snapshots:
fast-json-stable-stringify@2.1.0: {}
- fast-levenshtein@2.0.6: {}
-
fast-uri@3.1.0: {}
fastq@1.20.1:
@@ -9533,10 +7636,6 @@ snapshots:
optionalDependencies:
picomatch: 4.0.3
- file-entry-cache@8.0.0:
- dependencies:
- flat-cache: 4.0.1
-
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -9558,26 +7657,10 @@ snapshots:
locate-path: 5.0.0
path-exists: 4.0.0
- find-up@5.0.0:
- dependencies:
- locate-path: 6.0.0
- path-exists: 4.0.0
-
- flat-cache@4.0.1:
- dependencies:
- flatted: 3.3.3
- keyv: 4.5.4
-
- flatted@3.3.3: {}
-
flow-enums-runtime@0.0.6: {}
fontfaceobserver@2.3.0: {}
- for-each@0.3.5:
- dependencies:
- is-callable: 1.2.7
-
foreground-child@3.3.1:
dependencies:
cross-spawn: 7.0.6
@@ -9600,45 +7683,14 @@ snapshots:
function-bind@1.1.2: {}
- function.prototype.name@1.1.8:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- functions-have-names: 1.2.3
- hasown: 2.0.2
- is-callable: 1.2.7
-
- functions-have-names@1.2.3: {}
-
- generator-function@2.0.1: {}
-
gensync@1.0.0-beta.2: {}
get-caller-file@2.0.5: {}
get-east-asian-width@1.5.0: {}
- get-intrinsic@1.3.0:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- function-bind: 1.1.2
- get-proto: 1.0.1
- gopd: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- math-intrinsics: 1.1.0
-
get-package-type@0.1.0: {}
- get-proto@1.0.1:
- dependencies:
- dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
-
get-stream@5.2.0:
dependencies:
pump: 3.0.3
@@ -9647,12 +7699,6 @@ snapshots:
get-stream@8.0.1: {}
- get-symbol-description@1.1.0:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
-
get-uri@6.0.5:
dependencies:
basic-ftp: 5.1.0
@@ -9691,10 +7737,6 @@ snapshots:
dependencies:
is-glob: 4.0.3
- glob-parent@6.0.2:
- dependencies:
- is-glob: 4.0.3
-
glob@10.5.0:
dependencies:
foreground-child: 3.3.1
@@ -9727,13 +7769,6 @@ snapshots:
dependencies:
ini: 1.3.8
- globals@14.0.0: {}
-
- globalthis@1.0.4:
- dependencies:
- define-properties: 1.2.1
- gopd: 1.2.0
-
globby@11.1.0:
dependencies:
array-union: 2.1.0
@@ -9743,20 +7778,17 @@ snapshots:
merge2: 1.4.1
slash: 3.0.0
- globby@13.2.2:
+ globby@14.1.0:
dependencies:
- dir-glob: 3.0.1
+ '@sindresorhus/merge-streams': 2.3.0
fast-glob: 3.3.3
- ignore: 5.3.2
- merge2: 1.4.1
- slash: 4.0.0
-
- gopd@1.2.0: {}
+ ignore: 7.0.5
+ path-type: 6.0.0
+ slash: 5.1.0
+ unicorn-magic: 0.3.0
graceful-fs@4.2.11: {}
- graphemer@1.4.0: {}
-
handlebars@4.7.8:
dependencies:
minimist: 1.2.8
@@ -9766,28 +7798,10 @@ snapshots:
optionalDependencies:
uglify-js: 3.19.3
- hard-rejection@2.1.0: {}
-
- has-bigints@1.1.0: {}
-
has-flag@3.0.0: {}
has-flag@4.0.0: {}
- has-property-descriptors@1.0.2:
- dependencies:
- es-define-property: 1.0.1
-
- has-proto@1.2.0:
- dependencies:
- dunder-proto: 1.0.1
-
- has-symbols@1.1.0: {}
-
- has-tostringtag@1.0.2:
- dependencies:
- has-symbols: 1.1.0
-
hasown@2.0.2:
dependencies:
function-bind: 1.1.2
@@ -9816,10 +7830,6 @@ snapshots:
dependencies:
hermes-estree: 0.33.3
- hosted-git-info@4.1.0:
- dependencies:
- lru-cache: 6.0.0
-
hosted-git-info@7.0.2:
dependencies:
lru-cache: 10.4.3
@@ -9868,6 +7878,8 @@ snapshots:
ignore@5.3.2: {}
+ ignore@7.0.5: {}
+
image-size@1.2.1:
dependencies:
queue: 6.0.2
@@ -9888,8 +7900,6 @@ snapshots:
indent-string@4.0.0: {}
- indent-string@5.0.0: {}
-
inflight@1.0.6:
dependencies:
once: 1.4.0
@@ -9917,12 +7927,6 @@ snapshots:
optionalDependencies:
'@types/node': 25.3.0
- internal-slot@1.1.0:
- dependencies:
- es-errors: 1.3.0
- hasown: 2.0.2
- side-channel: 1.1.0
-
invariant@2.2.4:
dependencies:
loose-envify: 1.4.0
@@ -9934,70 +7938,22 @@ snapshots:
is-relative: 1.0.0
is-windows: 1.0.2
- is-array-buffer@3.0.5:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
-
is-arrayish@0.2.1: {}
- is-async-function@2.1.1:
- dependencies:
- async-function: 1.0.0
- call-bound: 1.0.4
- get-proto: 1.0.1
- has-tostringtag: 1.0.2
- safe-regex-test: 1.1.0
-
- is-bigint@1.1.0:
- dependencies:
- has-bigints: 1.1.0
-
- is-boolean-object@1.2.2:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-callable@1.2.7: {}
-
is-core-module@2.16.1:
dependencies:
hasown: 2.0.2
- is-data-view@1.0.2:
- dependencies:
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
- is-typed-array: 1.1.15
-
- is-date-object@1.1.0:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
is-docker@2.2.1: {}
is-docker@3.0.0: {}
is-extglob@2.1.1: {}
- is-finalizationregistry@1.1.1:
- dependencies:
- call-bound: 1.0.4
-
is-fullwidth-code-point@3.0.0: {}
is-generator-fn@2.1.0: {}
- is-generator-function@1.1.2:
- dependencies:
- call-bound: 1.0.4
- generator-function: 2.0.1
- get-proto: 1.0.1
- has-tostringtag: 1.0.2
- safe-regex-test: 1.1.0
-
is-git-dirty@2.0.2:
dependencies:
execa: 4.1.0
@@ -10018,15 +7974,6 @@ snapshots:
is-interactive@2.0.0: {}
- is-map@2.0.3: {}
-
- is-negative-zero@2.0.3: {}
-
- is-number-object@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
is-number@7.0.0: {}
is-obj@2.0.0: {}
@@ -10039,27 +7986,12 @@ snapshots:
is-path-inside@4.0.0: {}
- is-plain-obj@1.1.0: {}
-
is-plain-obj@4.1.0: {}
- is-regex@1.2.1:
- dependencies:
- call-bound: 1.0.4
- gopd: 1.2.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
is-relative@1.0.0:
dependencies:
is-unc-path: 1.0.0
- is-set@2.0.3: {}
-
- is-shared-array-buffer@1.0.4:
- dependencies:
- call-bound: 1.0.4
-
is-ssh@1.4.1:
dependencies:
protocols: 2.0.2
@@ -10068,38 +8000,12 @@ snapshots:
is-stream@3.0.0: {}
- is-string@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-symbol@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-symbols: 1.1.0
- safe-regex-test: 1.1.0
-
- is-typed-array@1.1.15:
- dependencies:
- which-typed-array: 1.1.20
-
is-unc-path@1.0.0:
dependencies:
unc-path-regex: 0.1.2
is-unicode-supported@2.1.0: {}
- is-weakmap@2.0.2: {}
-
- is-weakref@1.1.1:
- dependencies:
- call-bound: 1.0.4
-
- is-weakset@2.0.4:
- dependencies:
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
-
is-windows@1.0.2: {}
is-wsl@2.2.0:
@@ -10110,8 +8016,6 @@ snapshots:
dependencies:
is-inside-container: 1.0.0
- isarray@2.0.5: {}
-
isexe@2.0.0: {}
issue-parser@7.0.1:
@@ -10150,11 +8054,11 @@ snapshots:
make-dir: 4.0.0
supports-color: 7.2.0
- istanbul-lib-source-maps@5.0.6:
+ istanbul-lib-source-maps@4.0.1:
dependencies:
- '@jridgewell/trace-mapping': 0.3.31
debug: 4.4.3
istanbul-lib-coverage: 3.2.2
+ source-map: 0.6.1
transitivePeerDependencies:
- supports-color
@@ -10163,96 +8067,85 @@ snapshots:
html-escaper: 2.0.2
istanbul-lib-report: 3.0.1
- iterator.prototype@1.1.5:
- dependencies:
- define-data-property: 1.1.4
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- get-proto: 1.0.1
- has-symbols: 1.1.0
- set-function-name: 2.0.2
-
jackspeak@3.4.3:
dependencies:
'@isaacs/cliui': 8.0.2
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
- jest-changed-files@30.2.0:
+ jest-changed-files@29.7.0:
dependencies:
execa: 5.1.1
- jest-util: 30.2.0
+ jest-util: 29.7.0
p-limit: 3.1.0
- jest-circus@30.2.0:
+ jest-circus@29.7.0:
dependencies:
- '@jest/environment': 30.2.0
- '@jest/expect': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/environment': 29.7.0
+ '@jest/expect': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
'@types/node': 25.3.0
chalk: 4.1.2
co: 4.6.0
dedent: 1.7.1
is-generator-fn: 2.1.0
- jest-each: 30.2.0
- jest-matcher-utils: 30.2.0
- jest-message-util: 30.2.0
- jest-runtime: 30.2.0
- jest-snapshot: 30.2.0
- jest-util: 30.2.0
+ jest-each: 29.7.0
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-runtime: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
p-limit: 3.1.0
- pretty-format: 30.2.0
- pure-rand: 7.0.1
+ pretty-format: 29.7.0
+ pure-rand: 6.1.0
slash: 3.0.0
stack-utils: 2.0.6
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
- jest-cli@30.2.0(@types/node@25.3.0):
+ jest-cli@29.7.0(@types/node@25.3.0):
dependencies:
- '@jest/core': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/core': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
chalk: 4.1.2
- exit-x: 0.2.2
+ create-jest: 29.7.0(@types/node@25.3.0)
+ exit: 0.1.2
import-local: 3.2.0
- jest-config: 30.2.0(@types/node@25.3.0)
- jest-util: 30.2.0
- jest-validate: 30.2.0
+ jest-config: 29.7.0(@types/node@25.3.0)
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
yargs: 17.7.2
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
- - esbuild-register
- supports-color
- ts-node
- jest-config@30.2.0(@types/node@25.3.0):
+ jest-config@29.7.0(@types/node@25.3.0):
dependencies:
'@babel/core': 7.29.0
- '@jest/get-type': 30.1.0
- '@jest/pattern': 30.0.1
- '@jest/test-sequencer': 30.2.0
- '@jest/types': 30.2.0
- babel-jest: 30.2.0(@babel/core@7.29.0)
+ '@jest/test-sequencer': 29.7.0
+ '@jest/types': 29.6.3
+ babel-jest: 29.7.0(@babel/core@7.29.0)
chalk: 4.1.2
- ci-info: 4.4.0
+ ci-info: 3.9.0
deepmerge: 4.3.1
- glob: 10.5.0
+ glob: 7.2.3
graceful-fs: 4.2.11
- jest-circus: 30.2.0
- jest-docblock: 30.2.0
- jest-environment-node: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-runner: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
+ jest-circus: 29.7.0
+ jest-environment-node: 29.7.0
+ jest-get-type: 29.6.3
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-runner: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
micromatch: 4.0.8
parse-json: 5.2.0
- pretty-format: 30.2.0
+ pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
@@ -10261,24 +8154,24 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-diff@30.2.0:
+ jest-diff@29.7.0:
dependencies:
- '@jest/diff-sequences': 30.0.1
- '@jest/get-type': 30.1.0
chalk: 4.1.2
- pretty-format: 30.2.0
+ diff-sequences: 29.6.3
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
- jest-docblock@30.2.0:
+ jest-docblock@29.7.0:
dependencies:
detect-newline: 3.1.0
- jest-each@30.2.0:
+ jest-each@29.7.0:
dependencies:
- '@jest/get-type': 30.1.0
- '@jest/types': 30.2.0
+ '@jest/types': 29.6.3
chalk: 4.1.2
- jest-util: 30.2.0
- pretty-format: 30.2.0
+ jest-get-type: 29.6.3
+ jest-util: 29.7.0
+ pretty-format: 29.7.0
jest-environment-node@29.7.0:
dependencies:
@@ -10289,16 +8182,6 @@ snapshots:
jest-mock: 29.7.0
jest-util: 29.7.0
- jest-environment-node@30.2.0:
- dependencies:
- '@jest/environment': 30.2.0
- '@jest/fake-timers': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.3.0
- jest-mock: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
-
jest-get-type@29.6.3: {}
jest-haste-map@29.7.0:
@@ -10317,32 +8200,17 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- jest-haste-map@30.2.0:
- dependencies:
- '@jest/types': 30.2.0
- '@types/node': 25.3.0
- anymatch: 3.1.3
- fb-watchman: 2.0.2
- graceful-fs: 4.2.11
- jest-regex-util: 30.0.1
- jest-util: 30.2.0
- jest-worker: 30.2.0
- micromatch: 4.0.8
- walker: 1.0.8
- optionalDependencies:
- fsevents: 2.3.3
-
- jest-leak-detector@30.2.0:
+ jest-leak-detector@29.7.0:
dependencies:
- '@jest/get-type': 30.1.0
- pretty-format: 30.2.0
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
- jest-matcher-utils@30.2.0:
+ jest-matcher-utils@29.7.0:
dependencies:
- '@jest/get-type': 30.1.0
chalk: 4.1.2
- jest-diff: 30.2.0
- pretty-format: 30.2.0
+ jest-diff: 29.7.0
+ jest-get-type: 29.6.3
+ pretty-format: 29.7.0
jest-message-util@29.7.0:
dependencies:
@@ -10356,133 +8224,112 @@ snapshots:
slash: 3.0.0
stack-utils: 2.0.6
- jest-message-util@30.2.0:
- dependencies:
- '@babel/code-frame': 7.29.0
- '@jest/types': 30.2.0
- '@types/stack-utils': 2.0.3
- chalk: 4.1.2
- graceful-fs: 4.2.11
- micromatch: 4.0.8
- pretty-format: 30.2.0
- slash: 3.0.0
- stack-utils: 2.0.6
-
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
'@types/node': 25.3.0
jest-util: 29.7.0
- jest-mock@30.2.0:
- dependencies:
- '@jest/types': 30.2.0
- '@types/node': 25.3.0
- jest-util: 30.2.0
-
- jest-pnp-resolver@1.2.3(jest-resolve@30.2.0):
+ jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
optionalDependencies:
- jest-resolve: 30.2.0
+ jest-resolve: 29.7.0
jest-regex-util@29.6.3: {}
- jest-regex-util@30.0.1: {}
-
- jest-resolve-dependencies@30.2.0:
+ jest-resolve-dependencies@29.7.0:
dependencies:
- jest-regex-util: 30.0.1
- jest-snapshot: 30.2.0
+ jest-regex-util: 29.6.3
+ jest-snapshot: 29.7.0
transitivePeerDependencies:
- supports-color
- jest-resolve@30.2.0:
+ jest-resolve@29.7.0:
dependencies:
chalk: 4.1.2
graceful-fs: 4.2.11
- jest-haste-map: 30.2.0
- jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0)
- jest-util: 30.2.0
- jest-validate: 30.2.0
+ jest-haste-map: 29.7.0
+ jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ resolve: 1.22.11
+ resolve.exports: 2.0.3
slash: 3.0.0
- unrs-resolver: 1.11.1
- jest-runner@30.2.0:
+ jest-runner@29.7.0:
dependencies:
- '@jest/console': 30.2.0
- '@jest/environment': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/console': 29.7.0
+ '@jest/environment': 29.7.0
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
'@types/node': 25.3.0
chalk: 4.1.2
emittery: 0.13.1
- exit-x: 0.2.2
graceful-fs: 4.2.11
- jest-docblock: 30.2.0
- jest-environment-node: 30.2.0
- jest-haste-map: 30.2.0
- jest-leak-detector: 30.2.0
- jest-message-util: 30.2.0
- jest-resolve: 30.2.0
- jest-runtime: 30.2.0
- jest-util: 30.2.0
- jest-watcher: 30.2.0
- jest-worker: 30.2.0
+ jest-docblock: 29.7.0
+ jest-environment-node: 29.7.0
+ jest-haste-map: 29.7.0
+ jest-leak-detector: 29.7.0
+ jest-message-util: 29.7.0
+ jest-resolve: 29.7.0
+ jest-runtime: 29.7.0
+ jest-util: 29.7.0
+ jest-watcher: 29.7.0
+ jest-worker: 29.7.0
p-limit: 3.1.0
source-map-support: 0.5.13
transitivePeerDependencies:
- supports-color
- jest-runtime@30.2.0:
+ jest-runtime@29.7.0:
dependencies:
- '@jest/environment': 30.2.0
- '@jest/fake-timers': 30.2.0
- '@jest/globals': 30.2.0
- '@jest/source-map': 30.0.1
- '@jest/test-result': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/environment': 29.7.0
+ '@jest/fake-timers': 29.7.0
+ '@jest/globals': 29.7.0
+ '@jest/source-map': 29.6.3
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
'@types/node': 25.3.0
chalk: 4.1.2
- cjs-module-lexer: 2.2.0
+ cjs-module-lexer: 1.4.3
collect-v8-coverage: 1.0.3
- glob: 10.5.0
+ glob: 7.2.3
graceful-fs: 4.2.11
- jest-haste-map: 30.2.0
- jest-message-util: 30.2.0
- jest-mock: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-snapshot: 30.2.0
- jest-util: 30.2.0
+ jest-haste-map: 29.7.0
+ jest-message-util: 29.7.0
+ jest-mock: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
slash: 3.0.0
strip-bom: 4.0.0
transitivePeerDependencies:
- supports-color
- jest-snapshot@30.2.0:
+ jest-snapshot@29.7.0:
dependencies:
'@babel/core': 7.29.0
'@babel/generator': 7.29.1
'@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0)
'@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0)
'@babel/types': 7.29.0
- '@jest/expect-utils': 30.2.0
- '@jest/get-type': 30.1.0
- '@jest/snapshot-utils': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/expect-utils': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0)
chalk: 4.1.2
- expect: 30.2.0
+ expect: 29.7.0
graceful-fs: 4.2.11
- jest-diff: 30.2.0
- jest-matcher-utils: 30.2.0
- jest-message-util: 30.2.0
- jest-util: 30.2.0
- pretty-format: 30.2.0
+ jest-diff: 29.7.0
+ jest-get-type: 29.6.3
+ jest-matcher-utils: 29.7.0
+ jest-message-util: 29.7.0
+ jest-util: 29.7.0
+ natural-compare: 1.4.0
+ pretty-format: 29.7.0
semver: 7.7.4
- synckit: 0.11.12
transitivePeerDependencies:
- supports-color
@@ -10495,15 +8342,6 @@ snapshots:
graceful-fs: 4.2.11
picomatch: 2.3.1
- jest-util@30.2.0:
- dependencies:
- '@jest/types': 30.2.0
- '@types/node': 25.3.0
- chalk: 4.1.2
- ci-info: 4.4.0
- graceful-fs: 4.2.11
- picomatch: 4.0.3
-
jest-validate@29.7.0:
dependencies:
'@jest/types': 29.6.3
@@ -10513,24 +8351,15 @@ snapshots:
leven: 3.1.0
pretty-format: 29.7.0
- jest-validate@30.2.0:
- dependencies:
- '@jest/get-type': 30.1.0
- '@jest/types': 30.2.0
- camelcase: 6.3.0
- chalk: 4.1.2
- leven: 3.1.0
- pretty-format: 30.2.0
-
- jest-watcher@30.2.0:
+ jest-watcher@29.7.0:
dependencies:
- '@jest/test-result': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/test-result': 29.7.0
+ '@jest/types': 29.6.3
'@types/node': 25.3.0
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
- jest-util: 30.2.0
+ jest-util: 29.7.0
string-length: 4.0.2
jest-worker@29.7.0:
@@ -10540,24 +8369,15 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest-worker@30.2.0:
+ jest@29.7.0(@types/node@25.3.0):
dependencies:
- '@types/node': 25.3.0
- '@ungap/structured-clone': 1.3.0
- jest-util: 30.2.0
- merge-stream: 2.0.0
- supports-color: 8.1.1
-
- jest@30.2.0(@types/node@25.3.0):
- dependencies:
- '@jest/core': 30.2.0
- '@jest/types': 30.2.0
+ '@jest/core': 29.7.0
+ '@jest/types': 29.6.3
import-local: 3.2.0
- jest-cli: 30.2.0(@types/node@25.3.0)
+ jest-cli: 29.7.0(@types/node@25.3.0)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
- - esbuild-register
- supports-color
- ts-node
@@ -10580,16 +8400,10 @@ snapshots:
jsesc@3.1.0: {}
- json-buffer@3.0.1: {}
-
json-parse-even-better-errors@2.3.1: {}
- json-schema-traverse@0.4.1: {}
-
json-schema-traverse@1.0.0: {}
- json-stable-stringify-without-jsonify@1.0.1: {}
-
json-with-bigint@3.5.3: {}
json5@2.2.3: {}
@@ -10600,19 +8414,6 @@ snapshots:
optionalDependencies:
graceful-fs: 4.2.11
- jsx-ast-utils@3.3.5:
- dependencies:
- array-includes: 3.1.9
- array.prototype.flat: 1.3.3
- object.assign: 4.1.7
- object.values: 1.2.1
-
- keyv@4.5.4:
- dependencies:
- json-buffer: 3.0.1
-
- kind-of@6.0.3: {}
-
kleur@3.0.3: {}
kleur@4.1.5: {}
@@ -10621,11 +8422,6 @@ snapshots:
leven@3.1.0: {}
- levn@0.4.1:
- dependencies:
- prelude-ls: 1.2.1
- type-check: 0.4.0
-
lighthouse-logger@1.4.2:
dependencies:
debug: 2.6.9
@@ -10688,10 +8484,6 @@ snapshots:
dependencies:
p-locate: 4.1.0
- locate-path@6.0.0:
- dependencies:
- p-locate: 5.0.0
-
lodash.camelcase@4.3.0: {}
lodash.capitalize@4.2.1: {}
@@ -10743,10 +8535,6 @@ snapshots:
dependencies:
yallist: 3.1.1
- lru-cache@6.0.0:
- dependencies:
- yallist: 4.0.0
-
lru-cache@7.18.3: {}
macos-release@3.4.0: {}
@@ -10759,39 +8547,20 @@ snapshots:
dependencies:
tmpl: 1.0.5
- map-obj@1.0.1: {}
-
- map-obj@4.3.0: {}
-
marky@1.3.0: {}
- math-intrinsics@1.1.0: {}
-
mdn-data@2.0.14: {}
memoize-one@5.2.1: {}
memoize-one@6.0.0: {}
- meow@10.1.5:
- dependencies:
- '@types/minimist': 1.2.5
- camelcase-keys: 7.0.2
- decamelize: 5.0.1
- decamelize-keys: 1.1.1
- hard-rejection: 2.1.0
- minimist-options: 4.1.0
- normalize-package-data: 3.0.3
- read-pkg-up: 8.0.0
- redent: 4.0.0
- trim-newlines: 4.1.1
- type-fest: 1.4.0
- yargs-parser: 20.2.9
-
meow@12.1.1: {}
meow@13.2.0: {}
+ meow@14.1.0: {}
+
merge-stream@2.0.0: {}
merge2@1.4.1: {}
@@ -11184,12 +8953,6 @@ snapshots:
dependencies:
brace-expansion: 5.0.3
- minimist-options@4.1.0:
- dependencies:
- arrify: 1.0.1
- is-plain-obj: 1.1.0
- kind-of: 6.0.3
-
minimist@1.2.8: {}
minipass@7.1.3: {}
@@ -11214,8 +8977,6 @@ snapshots:
nanoid@3.3.11: {}
- napi-postinstall@0.3.4: {}
-
natural-compare@1.4.0: {}
negotiator@0.6.3: {}
@@ -11234,13 +8995,6 @@ snapshots:
dependencies:
type-fest: 2.19.0
- node-exports-info@1.6.0:
- dependencies:
- array.prototype.flatmap: 1.3.3
- es-errors: 1.3.0
- object.entries: 1.1.9
- semver: 6.3.1
-
node-fetch-native@1.6.7: {}
node-fetch@2.7.0:
@@ -11253,13 +9007,6 @@ snapshots:
node-releases@2.0.27: {}
- normalize-package-data@3.0.3:
- dependencies:
- hosted-git-info: 4.1.0
- is-core-module: 2.16.1
- semver: 7.7.4
- validate-npm-package-license: 3.0.4
-
normalize-package-data@7.0.1:
dependencies:
hosted-git-info: 8.1.0
@@ -11305,40 +9052,6 @@ snapshots:
object-assign@4.1.1: {}
- object-inspect@1.13.4: {}
-
- object-keys@1.1.1: {}
-
- object.assign@4.1.7:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
- has-symbols: 1.1.0
- object-keys: 1.1.1
-
- object.entries@1.1.9:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
- object.fromentries@2.0.8:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-object-atoms: 1.1.1
-
- object.values@1.2.1:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
ohash@2.0.11: {}
on-finished@2.3.0:
@@ -11389,15 +9102,6 @@ snapshots:
is-docker: 2.2.1
is-wsl: 2.2.0
- optionator@0.9.4:
- dependencies:
- deep-is: 0.1.4
- fast-levenshtein: 2.0.6
- levn: 0.4.1
- prelude-ls: 1.2.1
- type-check: 0.4.0
- word-wrap: 1.2.5
-
ora@3.4.0:
dependencies:
chalk: 2.4.2
@@ -11424,12 +9128,6 @@ snapshots:
macos-release: 3.4.0
windows-release: 6.1.0
- own-keys@1.0.1:
- dependencies:
- get-intrinsic: 1.3.0
- object-keys: 1.1.1
- safe-push-apply: 1.0.0
-
p-limit@2.3.0:
dependencies:
p-try: 2.2.0
@@ -11442,17 +9140,11 @@ snapshots:
dependencies:
p-limit: 2.3.0
- p-locate@5.0.0:
- dependencies:
- p-limit: 3.1.0
-
p-map@4.0.0:
dependencies:
aggregate-error: 3.1.0
- p-map@5.5.0:
- dependencies:
- aggregate-error: 4.0.1
+ p-map@7.0.4: {}
p-try@2.2.0: {}
@@ -11524,6 +9216,8 @@ snapshots:
path-type@4.0.0: {}
+ path-type@6.0.0: {}
+
pathe@2.0.3: {}
perfect-debounce@2.1.0: {}
@@ -11556,8 +9250,6 @@ snapshots:
pngjs@3.4.0: {}
- possible-typed-array-names@1.1.0: {}
-
postcss-value-parser@4.2.0: {}
postcss@8.4.49:
@@ -11566,13 +9258,7 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
- prelude-ls@1.2.1: {}
-
- prettier-linter-helpers@1.0.1:
- dependencies:
- fast-diff: 1.3.0
-
- prettier@3.8.1: {}
+ presentable-error@0.0.1: {}
pretty-bytes@5.6.0: {}
@@ -11582,12 +9268,6 @@ snapshots:
ansi-styles: 5.2.0
react-is: 18.3.1
- pretty-format@30.2.0:
- dependencies:
- '@jest/schemas': 30.0.5
- ansi-styles: 5.2.0
- react-is: 18.3.1
-
proc-log@4.2.0: {}
progress@2.0.3: {}
@@ -11605,12 +9285,6 @@ snapshots:
kleur: 3.0.3
sisteransi: 1.0.5
- prop-types@15.8.1:
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- react-is: 16.13.1
-
protocols@2.0.2: {}
proxy-agent@6.5.0:
@@ -11635,7 +9309,7 @@ snapshots:
punycode@2.3.1: {}
- pure-rand@7.0.1: {}
+ pure-rand@6.1.0: {}
qrcode-terminal@0.11.0: {}
@@ -11645,8 +9319,6 @@ snapshots:
dependencies:
inherits: 2.0.4
- quick-lru@5.1.1: {}
-
range-parser@1.2.1: {}
rc9@2.1.2:
@@ -11674,8 +9346,6 @@ snapshots:
react: 19.1.0
scheduler: 0.26.0
- react-is@16.13.1: {}
-
react-is@18.3.1: {}
react-native-builder-bob@0.40.18:
@@ -11729,7 +9399,7 @@ snapshots:
react: 19.1.0
react-native: 0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0)
- react-native-svg@15.8.0(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0):
+ react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.29.0)(@react-native/metro-config@0.81.5(@babel/core@7.29.0))(@types/react@19.2.14)(react@19.1.0))(react@19.1.0):
dependencies:
css-select: 5.2.2
css-tree: 1.1.3
@@ -11822,19 +9492,6 @@ snapshots:
react@19.1.0: {}
- read-pkg-up@8.0.0:
- dependencies:
- find-up: 5.0.0
- read-pkg: 6.0.0
- type-fest: 1.4.0
-
- read-pkg@6.0.0:
- dependencies:
- '@types/normalize-package-data': 2.4.4
- normalize-package-data: 3.0.3
- parse-json: 5.2.0
- type-fest: 1.4.0
-
readable-stream@3.6.2:
dependencies:
inherits: 2.0.4
@@ -11843,22 +9500,6 @@ snapshots:
readdirp@5.0.0: {}
- redent@4.0.0:
- dependencies:
- indent-string: 5.0.0
- strip-indent: 4.1.1
-
- reflect.getprototypeof@1.0.10:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- get-proto: 1.0.1
- which-builtin-type: 1.2.1
-
regenerate-unicode-properties@10.2.2:
dependencies:
regenerate: 1.4.2
@@ -11867,15 +9508,6 @@ snapshots:
regenerator-runtime@0.13.11: {}
- regexp.prototype.flags@1.5.4:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-errors: 1.3.0
- get-proto: 1.0.1
- gopd: 1.2.0
- set-function-name: 2.0.2
-
regexpu-core@6.4.0:
dependencies:
regenerate: 1.4.2
@@ -11957,15 +9589,6 @@ snapshots:
dependencies:
path-parse: 1.0.7
- resolve@2.0.0-next.6:
- dependencies:
- es-errors: 1.3.0
- is-core-module: 2.16.1
- node-exports-info: 1.6.0
- object-keys: 1.1.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
-
restore-cursor@2.0.0:
dependencies:
onetime: 2.0.1
@@ -11996,27 +9619,8 @@ snapshots:
dependencies:
tslib: 2.8.1
- safe-array-concat@1.1.3:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
- has-symbols: 1.1.0
- isarray: 2.0.5
-
safe-buffer@5.2.1: {}
- safe-push-apply@1.0.0:
- dependencies:
- es-errors: 1.3.0
- isarray: 2.0.5
-
- safe-regex-test@1.1.0:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-regex: 1.2.1
-
safer-buffer@2.1.2: {}
sax@1.4.4: {}
@@ -12060,28 +9664,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- set-function-length@1.2.2:
- dependencies:
- define-data-property: 1.1.4
- es-errors: 1.3.0
- function-bind: 1.1.2
- get-intrinsic: 1.3.0
- gopd: 1.2.0
- has-property-descriptors: 1.0.2
-
- set-function-name@2.0.2:
- dependencies:
- define-data-property: 1.1.4
- es-errors: 1.3.0
- functions-have-names: 1.2.3
- has-property-descriptors: 1.0.2
-
- set-proto@1.0.0:
- dependencies:
- dunder-proto: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
-
setimmediate@1.0.5: {}
setprototypeof@1.2.0: {}
@@ -12094,34 +9676,6 @@ snapshots:
shell-quote@1.8.3: {}
- side-channel-list@1.0.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-map@1.0.1:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-weakmap@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
- side-channel-map: 1.0.1
-
- side-channel@1.1.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
- side-channel-list: 1.0.0
- side-channel-map: 1.0.1
- side-channel-weakmap: 1.0.2
-
signal-exit@3.0.7: {}
signal-exit@4.1.0: {}
@@ -12136,7 +9690,7 @@ snapshots:
slash@3.0.0: {}
- slash@4.0.0: {}
+ slash@5.1.0: {}
slugify@1.6.6: {}
@@ -12205,11 +9759,6 @@ snapshots:
stdin-discarder@0.2.2: {}
- stop-iteration-iterator@1.1.0:
- dependencies:
- es-errors: 1.3.0
- internal-slot: 1.1.0
-
stream-buffers@2.2.0: {}
string-length@4.0.2:
@@ -12217,8 +9766,6 @@ snapshots:
char-regex: 1.0.2
strip-ansi: 6.0.1
- string-natural-compare@3.0.1: {}
-
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -12236,50 +9783,6 @@ snapshots:
get-east-asian-width: 1.5.0
strip-ansi: 7.1.2
- string.prototype.matchall@4.0.12:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- gopd: 1.2.0
- has-symbols: 1.1.0
- internal-slot: 1.1.0
- regexp.prototype.flags: 1.5.4
- set-function-name: 2.0.2
- side-channel: 1.1.0
-
- string.prototype.repeat@1.0.0:
- dependencies:
- define-properties: 1.2.1
- es-abstract: 1.24.1
-
- string.prototype.trim@1.2.10:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-data-property: 1.1.4
- define-properties: 1.2.1
- es-abstract: 1.24.1
- es-object-atoms: 1.1.1
- has-property-descriptors: 1.0.2
-
- string.prototype.trimend@1.0.9:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
- string.prototype.trimstart@1.0.8:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
string_decoder@1.3.0:
dependencies:
safe-buffer: 5.2.1
@@ -12302,8 +9805,6 @@ snapshots:
strip-final-newline@3.0.0: {}
- strip-indent@4.1.1: {}
-
strip-json-comments@2.0.1: {}
strip-json-comments@3.1.1: {}
@@ -12341,10 +9842,6 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- synckit@0.11.12:
- dependencies:
- '@pkgr/core': 0.2.9
-
tar@7.5.9:
dependencies:
'@isaacs/fs-minipass': 4.0.1
@@ -12400,70 +9897,18 @@ snapshots:
tr46@0.0.3: {}
- trim-newlines@4.1.1: {}
-
- ts-api-utils@1.4.3(typescript@5.9.3):
- dependencies:
- typescript: 5.9.3
-
ts-interface-checker@0.1.13: {}
- tslib@1.14.1: {}
-
tslib@2.8.1: {}
- tsutils@3.21.0(typescript@5.9.3):
- dependencies:
- tslib: 1.14.1
- typescript: 5.9.3
-
- type-check@0.4.0:
- dependencies:
- prelude-ls: 1.2.1
-
type-detect@4.0.8: {}
type-fest@0.21.3: {}
type-fest@0.7.1: {}
- type-fest@1.4.0: {}
-
type-fest@2.19.0: {}
- typed-array-buffer@1.0.3:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-typed-array: 1.1.15
-
- typed-array-byte-length@1.0.3:
- dependencies:
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- has-proto: 1.2.0
- is-typed-array: 1.1.15
-
- typed-array-byte-offset@1.0.4:
- dependencies:
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- has-proto: 1.2.0
- is-typed-array: 1.1.15
- reflect.getprototypeof: 1.0.10
-
- typed-array-length@1.0.7:
- dependencies:
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- is-typed-array: 1.1.15
- possible-typed-array-names: 1.1.0
- reflect.getprototypeof: 1.0.10
-
typedarray@0.0.6: {}
typescript@5.9.3: {}
@@ -12473,13 +9918,6 @@ snapshots:
uglify-js@3.19.3:
optional: true
- unbox-primitive@1.1.0:
- dependencies:
- call-bound: 1.0.4
- has-bigints: 1.1.0
- has-symbols: 1.1.0
- which-boxed-primitive: 1.1.1
-
unc-path-regex@0.1.2: {}
undici-types@6.21.0: {}
@@ -12499,6 +9937,8 @@ snapshots:
unicode-property-aliases-ecmascript@2.2.0: {}
+ unicorn-magic@0.3.0: {}
+
unique-string@2.0.0:
dependencies:
crypto-random-string: 2.0.0
@@ -12509,40 +9949,12 @@ snapshots:
unpipe@1.0.0: {}
- unrs-resolver@1.11.1:
- dependencies:
- napi-postinstall: 0.3.4
- optionalDependencies:
- '@unrs/resolver-binding-android-arm-eabi': 1.11.1
- '@unrs/resolver-binding-android-arm64': 1.11.1
- '@unrs/resolver-binding-darwin-arm64': 1.11.1
- '@unrs/resolver-binding-darwin-x64': 1.11.1
- '@unrs/resolver-binding-freebsd-x64': 1.11.1
- '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1
- '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1
- '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-arm64-musl': 1.11.1
- '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1
- '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1
- '@unrs/resolver-binding-linux-x64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-x64-musl': 1.11.1
- '@unrs/resolver-binding-wasm32-wasi': 1.11.1
- '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1
- '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
- '@unrs/resolver-binding-win32-x64-msvc': 1.11.1
-
update-browserslist-db@1.2.3(browserslist@4.28.1):
dependencies:
browserslist: 4.28.1
escalade: 3.2.0
picocolors: 1.1.1
- uri-js@4.4.1:
- dependencies:
- punycode: 2.3.1
-
url-join@5.0.0: {}
util-deprecate@1.0.2: {}
@@ -12597,47 +10009,6 @@ snapshots:
tr46: 0.0.3
webidl-conversions: 3.0.1
- which-boxed-primitive@1.1.1:
- dependencies:
- is-bigint: 1.1.0
- is-boolean-object: 1.2.2
- is-number-object: 1.1.1
- is-string: 1.1.1
- is-symbol: 1.1.1
-
- which-builtin-type@1.2.1:
- dependencies:
- call-bound: 1.0.4
- function.prototype.name: 1.1.8
- has-tostringtag: 1.0.2
- is-async-function: 2.1.1
- is-date-object: 1.1.0
- is-finalizationregistry: 1.1.1
- is-generator-function: 1.1.2
- is-regex: 1.2.1
- is-weakref: 1.1.1
- isarray: 2.0.5
- which-boxed-primitive: 1.1.1
- which-collection: 1.0.2
- which-typed-array: 1.1.20
-
- which-collection@1.0.2:
- dependencies:
- is-map: 2.0.3
- is-set: 2.0.3
- is-weakmap: 2.0.2
- is-weakset: 2.0.4
-
- which-typed-array@1.1.20:
- dependencies:
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- call-bound: 1.0.4
- for-each: 0.3.5
- get-proto: 1.0.1
- gopd: 1.2.0
- has-tostringtag: 1.0.2
-
which@2.0.2:
dependencies:
isexe: 2.0.0
@@ -12650,8 +10021,6 @@ snapshots:
wonka@6.3.5: {}
- word-wrap@1.2.5: {}
-
wordwrap@1.0.0: {}
wrap-ansi@6.2.0:
@@ -12679,11 +10048,6 @@ snapshots:
imurmurhash: 0.1.4
signal-exit: 3.0.7
- write-file-atomic@5.0.1:
- dependencies:
- imurmurhash: 0.1.4
- signal-exit: 4.1.0
-
ws@6.2.3:
dependencies:
async-limiter: 1.0.1
@@ -12714,14 +10078,10 @@ snapshots:
yallist@3.1.1: {}
- yallist@4.0.0: {}
-
yallist@5.0.0: {}
yaml@2.8.2: {}
- yargs-parser@20.2.9: {}
-
yargs-parser@21.1.1: {}
yargs@17.7.2:
diff --git a/src/components/Alert/controller.ts b/src/components/Alert/controller.ts
index b2570f8..fe2c217 100755
--- a/src/components/Alert/controller.ts
+++ b/src/components/Alert/controller.ts
@@ -1,49 +1,48 @@
-import { useCallback } from 'react';
-
-import type { AlertButton, AlertViewProps } from './types';
-import { alert } from '../../containers/AlertContainer/alert.api';
+import { useCallback } from "react";
+import { alert } from "../../containers/AlertContainer/alert.api";
+import type { AlertButton, AlertViewProps } from "./types";
export const useController = ({
- onAwaitableDismiss,
- onDismiss,
- resolve,
+ onAwaitableDismiss,
+ onDismiss,
+ resolve,
}: AlertViewProps) => {
- const onButtonPress = useCallback(
- (button: AlertButton) => {
- const resolveWrapper = (value: R) => {
- resolve(value);
-
- if (button.hideAlertOnPress !== false) {
- alert.hide();
- }
- };
-
- if (button.onAwaitablePress) {
- button.onAwaitablePress(resolveWrapper);
- } else {
- button.onPress?.();
-
- resolveWrapper(undefined as R);
- }
- },
- [resolve]
- );
-
- const onDismissButtonPress = useCallback(() => {
- const resolveWrapper = (value: R) => {
- resolve(value);
-
- alert.hide();
- };
-
- if (onAwaitableDismiss) {
- onAwaitableDismiss(resolveWrapper);
- } else {
- onDismiss?.();
-
- resolveWrapper(undefined as R);
- }
- }, [onAwaitableDismiss, onDismiss, resolve]);
-
- return { onDismissButtonPress, onButtonPress };
+ const onButtonPress = useCallback(
+ (button: AlertButton) => {
+ const resolveWrapper = (value: R) => {
+ resolve(value);
+
+ if (button.hideAlertOnPress !== false) {
+ alert.hide();
+ }
+ };
+
+ if (button.onAwaitablePress) {
+ button.onAwaitablePress(resolveWrapper);
+ } else {
+ button.onPress?.();
+
+ resolveWrapper(undefined as R);
+ }
+ },
+ [resolve],
+ );
+
+ const onDismissButtonPress = useCallback(() => {
+ const resolveWrapper = (value: R) => {
+ resolve(value);
+
+ alert.hide();
+ };
+
+ if (onAwaitableDismiss) {
+ onAwaitableDismiss(resolveWrapper);
+ } else {
+ onDismiss?.();
+
+ resolveWrapper(undefined as R);
+ }
+ }, [onAwaitableDismiss, onDismiss, resolve]);
+
+ return { onDismissButtonPress, onButtonPress };
};
diff --git a/src/components/Alert/hooks/useContainerDimensions.ts b/src/components/Alert/hooks/useContainerDimensions.ts
index 5f4eab0..d595efb 100644
--- a/src/components/Alert/hooks/useContainerDimensions.ts
+++ b/src/components/Alert/hooks/useContainerDimensions.ts
@@ -1,19 +1,19 @@
-import type { ViewStyle, StyleProp } from 'react-native';
+import type { StyleProp, ViewStyle } from "react-native";
-import { Platform, useWindowDimensions } from 'react-native';
+import { Platform, useWindowDimensions } from "react-native";
export const useContainerDimensions = (): StyleProp => {
- const { width: windowWidth, height: windowHeight } = useWindowDimensions();
+ const { width: windowWidth, height: windowHeight } = useWindowDimensions();
- const maxWidth = Platform.select({
- web: 450,
- default: 340,
- });
- const maxHeight = Math.round(windowHeight * 0.85);
+ const maxWidth = Platform.select({
+ web: 450,
+ default: 340,
+ });
+ const maxHeight = Math.round(windowHeight * 0.85);
- return {
- width: windowWidth - 10 * 2,
- maxWidth,
- maxHeight,
- };
+ return {
+ width: windowWidth - 10 * 2,
+ maxWidth,
+ maxHeight,
+ };
};
diff --git a/src/components/Alert/index.tsx b/src/components/Alert/index.tsx
index 93ae1cd..9f086ee 100755
--- a/src/components/Alert/index.tsx
+++ b/src/components/Alert/index.tsx
@@ -1,261 +1,260 @@
import {
- type FC,
- Fragment,
- type ReactElement,
- useCallback,
- useMemo,
-} from 'react';
+ type FC,
+ Fragment,
+ type ReactElement,
+ useCallback,
+ useMemo,
+} from "react";
import {
- Pressable,
- ScrollView,
- StyleSheet,
- Text,
- View,
- type StyleProp,
- type ViewStyle,
- Platform,
-} from 'react-native';
+ Platform,
+ Pressable,
+ ScrollView,
+ type StyleProp,
+ StyleSheet,
+ Text,
+ View,
+ type ViewStyle,
+} from "react-native";
import Animated, {
- useAnimatedStyle,
- interpolate,
- CurvedTransition,
-} from 'react-native-reanimated';
-
-import type { AlertViewProps } from './types';
-
-import { CloseIcon } from '../../components/icons/Close';
-
-import { useAnimation } from '../../hooks/useAnimation';
-import { useController } from './controller';
-import { styles } from './styles';
-import { Button } from '../Button';
-import { useContainerDimensions } from './hooks/useContainerDimensions';
+ CurvedTransition,
+ interpolate,
+ useAnimatedStyle,
+} from "react-native-reanimated";
+import { CloseIcon } from "../../components/icons/Close";
+import { useAnimation } from "../../hooks/useAnimation";
+import { Button } from "../Button";
+import { useController } from "./controller";
+import { useContainerDimensions } from "./hooks/useContainerDimensions";
+import { styles } from "./styles";
+import type { AlertViewProps } from "./types";
export const Alert: FC = (props) => {
- const {
- afterButtonsSlot,
- animationDuration,
- beforeButtonsSlot,
- beforeMessageSlot,
- beforeTitleSlot,
- renderDismissButton,
- icon,
- iconColor,
- iconSize,
- isDismissible,
- isHiding,
- testID,
- buttons,
- buttonsDirection = 'column',
- renderButton,
- title,
- renderTitle,
- message,
- renderMessage,
- config,
- } = props;
-
- const { animation } = useAnimation({
- animationDuration,
- isHiding,
- });
-
- const { onDismissButtonPress, onButtonPress } = useController(props);
-
- const containerDimensions = useContainerDimensions();
-
- const containerAnimation = useAnimatedStyle(() => {
- return {
- opacity: interpolate(animation.value, [0, 1], [0, 1]),
- transform: [
- {
- scaleX: interpolate(animation.value, [0, 1], [0.8, 1]),
- },
- {
- scaleY: interpolate(animation.value, [0, 1], [0.8, 1]),
- },
- ],
- };
- });
-
- const containerStyle = useMemo(
- () =>
- StyleSheet.flatten([
- styles.container,
- containerDimensions,
- config?.alertStyle,
- ]),
- [containerDimensions, config?.alertStyle]
- );
-
- const beforeTitleSlotElement = useMemo(() => {
- return beforeTitleSlot?.() || config?.beforeTitleSlot?.() || null;
- }, [beforeTitleSlot, config]);
-
- const titleContainerStyle = useMemo(() => {
- const style: StyleProp[] = [styles.titleContainer];
-
- if (isDismissible && !(icon || beforeTitleSlotElement)) {
- style.push(styles.dismissibleTitleContainer);
- }
-
- return StyleSheet.flatten(style);
- }, [isDismissible, icon, beforeTitleSlotElement]);
-
- const renderTitleCb = useCallback(() => {
- const renderTitleFn = renderTitle || config?.renderTitle;
-
- let titleElement: ReactElement | null = null;
-
- if (renderTitleFn) {
- titleElement = renderTitleFn({ style: styles.title, text: title ?? '' });
- } else if (title) {
- titleElement = (
-
- {title}
-
- );
- }
-
- return titleElement ? (
- {titleElement}
- ) : null;
- }, [title, renderTitle, titleContainerStyle, config]);
-
- const beforeMessageSlotElement = useMemo(() => {
- return beforeMessageSlot?.() || config?.beforeMessageSlot?.() || null;
- }, [beforeMessageSlot, config]);
-
- const renderMessageCb = useCallback(() => {
- const renderMessageFn = renderMessage || config?.renderMessage;
-
- let messageElement: ReactElement | null = null;
-
- if (renderMessageFn) {
- messageElement = renderMessageFn({
- style: styles.message,
- text: message ?? '',
- });
- } else if (message) {
- messageElement = {message};
- }
-
- return messageElement ? (
-
- {messageElement}
-
- ) : null;
- }, [message, renderMessage, config]);
-
- const renderIconCb = useCallback(() => {
- const Svg = icon;
-
- const iconConfig = config?.icon;
-
- const defaultIconSize = iconSize || iconConfig?.size || 72;
- const defaultIconColor = iconColor || iconConfig?.color || 'black';
-
- return Svg ? (
-
-
-
- ) : null;
- }, [icon, iconColor, iconSize, config]);
-
- const renderDismissButtonCb = useCallback(() => {
- const defaultDismissButton = (
-
-
-
- );
-
- const dismissButton = isDismissible
- ? renderDismissButton?.({ onPress: onDismissButtonPress }) ||
- config?.renderDismissButton?.({ onPress: onDismissButtonPress }) ||
- defaultDismissButton
- : null;
-
- return dismissButton;
- }, [isDismissible, onDismissButtonPress, renderDismissButton, config]);
-
- const buttonsContainerStyle = useMemo(() => {
- return StyleSheet.compose(styles.buttonsContainer, {
- flexDirection: buttonsDirection,
- gap: config?.buttons?.gap || 10,
- });
- }, [buttonsDirection, config]);
-
- const beforeButtonsSlotElement = useMemo(() => {
- return beforeButtonsSlot?.() || config?.beforeButtonsSlot?.() || null;
- }, [beforeButtonsSlot, config]);
-
- const afterButtonsSlotElement = useMemo(() => {
- return afterButtonsSlot?.() || config?.afterButtonsSlot?.() || null;
- }, [afterButtonsSlot, config]);
-
- const renderButtonsCb = useCallback(() => {
- if (buttons?.length) {
- return (
-
- {buttons.map((button, i) => {
- const renderFn = renderButton || config?.buttons?.render;
-
- if (renderFn) {
- return (
-
- {renderFn({
- text: button.text,
- onPress: () => onButtonPress(button),
- disabled: button.disabled,
- testID: button.testID,
- customProps: button.customProps,
- })}
-
- );
- }
-
- return (
- onButtonPress(button)}
- disabled={button.disabled}
- testID={button.testID}
- />
- );
- })}
-
- );
- }
-
- return null;
- }, [buttons, onButtonPress, buttonsContainerStyle, renderButton, config]);
-
- const layoutAnimation = useMemo(() => {
- return Platform.select({
- web: undefined,
- default: CurvedTransition,
- });
- }, []);
-
- return (
-
-
- {renderIconCb()}
- {beforeTitleSlotElement}
- {renderTitleCb()}
- {beforeMessageSlotElement}
- {renderMessageCb()}
- {beforeButtonsSlotElement}
- {renderDismissButtonCb()}
- {renderButtonsCb()}
- {afterButtonsSlotElement}
-
-
- );
+ const {
+ afterButtonsSlot,
+ animationDuration,
+ beforeButtonsSlot,
+ beforeMessageSlot,
+ beforeTitleSlot,
+ renderDismissButton,
+ icon,
+ iconColor,
+ iconSize,
+ isDismissible,
+ isHiding,
+ testID,
+ buttons,
+ buttonsDirection = "column",
+ renderButton,
+ title,
+ renderTitle,
+ message,
+ renderMessage,
+ config,
+ } = props;
+
+ const { animation } = useAnimation({
+ animationDuration,
+ isHiding,
+ });
+
+ const { onDismissButtonPress, onButtonPress } = useController(props);
+
+ const containerDimensions = useContainerDimensions();
+
+ const containerAnimation = useAnimatedStyle(() => {
+ return {
+ opacity: interpolate(animation.value, [0, 1], [0, 1]),
+ transform: [
+ {
+ scaleX: interpolate(animation.value, [0, 1], [0.8, 1]),
+ },
+ {
+ scaleY: interpolate(animation.value, [0, 1], [0.8, 1]),
+ },
+ ],
+ };
+ });
+
+ const containerStyle = useMemo(
+ () =>
+ StyleSheet.flatten([
+ styles.container,
+ containerDimensions,
+ config?.alertStyle,
+ ]),
+ [containerDimensions, config?.alertStyle],
+ );
+
+ const beforeTitleSlotElement = useMemo(() => {
+ return beforeTitleSlot?.() || config?.beforeTitleSlot?.() || null;
+ }, [beforeTitleSlot, config]);
+
+ const titleContainerStyle = useMemo(() => {
+ const style: StyleProp[] = [styles.titleContainer];
+
+ if (isDismissible && !(icon || beforeTitleSlotElement)) {
+ style.push(styles.dismissibleTitleContainer);
+ }
+
+ return StyleSheet.flatten(style);
+ }, [isDismissible, icon, beforeTitleSlotElement]);
+
+ const renderTitleCb = useCallback(() => {
+ const renderTitleFn = renderTitle || config?.renderTitle;
+
+ let titleElement: ReactElement | null = null;
+
+ if (renderTitleFn) {
+ titleElement = renderTitleFn({ style: styles.title, text: title ?? "" });
+ } else if (title) {
+ titleElement = (
+
+ {title}
+
+ );
+ }
+
+ return titleElement ? (
+ {titleElement}
+ ) : null;
+ }, [title, renderTitle, titleContainerStyle, config]);
+
+ const beforeMessageSlotElement = useMemo(() => {
+ return beforeMessageSlot?.() || config?.beforeMessageSlot?.() || null;
+ }, [beforeMessageSlot, config]);
+
+ const renderMessageCb = useCallback(() => {
+ const renderMessageFn = renderMessage || config?.renderMessage;
+
+ let messageElement: ReactElement | null = null;
+
+ if (renderMessageFn) {
+ messageElement = renderMessageFn({
+ style: styles.message,
+ text: message ?? "",
+ });
+ } else if (message) {
+ messageElement = {message};
+ }
+
+ return messageElement ? (
+
+ {messageElement}
+
+ ) : null;
+ }, [message, renderMessage, config]);
+
+ const renderIconCb = useCallback(() => {
+ const Svg = icon;
+
+ const iconConfig = config?.icon;
+
+ const defaultIconSize = iconSize || iconConfig?.size || 72;
+ const defaultIconColor = iconColor || iconConfig?.color || "black";
+
+ return Svg ? (
+
+
+
+ ) : null;
+ }, [icon, iconColor, iconSize, config]);
+
+ const renderDismissButtonCb = useCallback(() => {
+ const defaultDismissButton = (
+
+
+
+ );
+
+ const dismissButton = isDismissible
+ ? renderDismissButton?.({ onPress: onDismissButtonPress }) ||
+ config?.renderDismissButton?.({ onPress: onDismissButtonPress }) ||
+ defaultDismissButton
+ : null;
+
+ return dismissButton;
+ }, [isDismissible, onDismissButtonPress, renderDismissButton, config]);
+
+ const buttonsContainerStyle = useMemo(() => {
+ return StyleSheet.compose(styles.buttonsContainer, {
+ flexDirection: buttonsDirection,
+ gap: config?.buttons?.gap || 10,
+ });
+ }, [buttonsDirection, config]);
+
+ const beforeButtonsSlotElement = useMemo(() => {
+ return beforeButtonsSlot?.() || config?.beforeButtonsSlot?.() || null;
+ }, [beforeButtonsSlot, config]);
+
+ const afterButtonsSlotElement = useMemo(() => {
+ return afterButtonsSlot?.() || config?.afterButtonsSlot?.() || null;
+ }, [afterButtonsSlot, config]);
+
+ const renderButtonsCb = useCallback(() => {
+ if (buttons?.length) {
+ return (
+
+ {buttons.map((button, i) => {
+ const renderFn = renderButton || config?.buttons?.render;
+
+ if (renderFn) {
+ return (
+ // biome-ignore lint/suspicious/noArrayIndexKey: it's ok here
+
+ {renderFn({
+ text: button.text,
+ onPress: () => onButtonPress(button),
+ disabled: button.disabled,
+ testID: button.testID,
+ customProps: button.customProps,
+ })}
+
+ );
+ }
+
+ return (
+ onButtonPress(button)}
+ disabled={button.disabled}
+ testID={button.testID}
+ />
+ );
+ })}
+
+ );
+ }
+
+ return null;
+ }, [buttons, onButtonPress, buttonsContainerStyle, renderButton, config]);
+
+ const layoutAnimation = useMemo(() => {
+ return Platform.select({
+ web: undefined,
+ default: CurvedTransition,
+ });
+ }, []);
+
+ return (
+
+
+ {renderIconCb()}
+ {beforeTitleSlotElement}
+ {renderTitleCb()}
+ {beforeMessageSlotElement}
+ {renderMessageCb()}
+ {beforeButtonsSlotElement}
+ {renderDismissButtonCb()}
+ {renderButtonsCb()}
+ {afterButtonsSlotElement}
+
+
+ );
};
diff --git a/src/components/Alert/styles.ts b/src/components/Alert/styles.ts
index 4c5e5f9..51d8c34 100755
--- a/src/components/Alert/styles.ts
+++ b/src/components/Alert/styles.ts
@@ -1,65 +1,65 @@
-import { StyleSheet } from 'react-native';
+import { StyleSheet } from "react-native";
export const styles = StyleSheet.create({
- container: {
- borderRadius: 15,
- paddingTop: 17,
- backgroundColor: '#fff',
- zIndex: 7,
- overflow: 'hidden',
- marginHorizontal: 20,
- },
- iconContainer: {
- alignItems: 'center',
- marginBottom: 10,
- },
- titleContainer: {
- flexDirection: 'row',
- paddingTop: 0,
- paddingBottom: 15,
- paddingHorizontal: 20,
- alignItems: 'center',
- justifyContent: 'center',
- },
- dismissibleTitleContainer: {
- paddingHorizontal: 60,
- },
- title: {
- fontSize: 20,
- lineHeight: 28,
- textAlign: 'center',
- fontWeight: 'bold',
- color: '#000',
- flex: 1,
- },
- dismissButton: {
- width: 28,
- height: 28,
- borderRadius: 14,
- position: 'absolute',
- right: 16,
- top: 16,
- alignItems: 'center',
- justifyContent: 'center',
- backgroundColor: '#ccc',
- },
- messageContainer: {
- paddingHorizontal: 20,
- marginBottom: 20,
- display: 'flex',
- flexDirection: 'column',
- flexGrow: 0,
- },
- message: {
- fontSize: 15,
- lineHeight: 20,
- textAlign: 'center',
- color: '#000',
- },
- buttonsContainer: {
- flexDirection: 'column',
- justifyContent: 'flex-end',
- marginHorizontal: 20,
- marginBottom: 20,
- },
+ container: {
+ borderRadius: 15,
+ paddingTop: 17,
+ backgroundColor: "#fff",
+ zIndex: 7,
+ overflow: "hidden",
+ marginHorizontal: 20,
+ },
+ iconContainer: {
+ alignItems: "center",
+ marginBottom: 10,
+ },
+ titleContainer: {
+ flexDirection: "row",
+ paddingTop: 0,
+ paddingBottom: 15,
+ paddingHorizontal: 20,
+ alignItems: "center",
+ justifyContent: "center",
+ },
+ dismissibleTitleContainer: {
+ paddingHorizontal: 60,
+ },
+ title: {
+ fontSize: 20,
+ lineHeight: 28,
+ textAlign: "center",
+ fontWeight: "bold",
+ color: "#000",
+ flex: 1,
+ },
+ dismissButton: {
+ width: 28,
+ height: 28,
+ borderRadius: 14,
+ position: "absolute",
+ right: 16,
+ top: 16,
+ alignItems: "center",
+ justifyContent: "center",
+ backgroundColor: "#ccc",
+ },
+ messageContainer: {
+ paddingHorizontal: 20,
+ marginBottom: 20,
+ display: "flex",
+ flexDirection: "column",
+ flexGrow: 0,
+ },
+ message: {
+ fontSize: 15,
+ lineHeight: 20,
+ textAlign: "center",
+ color: "#000",
+ },
+ buttonsContainer: {
+ flexDirection: "column",
+ justifyContent: "flex-end",
+ marginHorizontal: 20,
+ marginBottom: 20,
+ },
});
diff --git a/src/components/Alert/types.ts b/src/components/Alert/types.ts
index e34930e..a6dc210 100644
--- a/src/components/Alert/types.ts
+++ b/src/components/Alert/types.ts
@@ -1,90 +1,88 @@
-import type { ReactElement, FC } from 'react';
-import type { ColorValue, StyleProp, TextStyle, ViewStyle } from 'react-native';
-import type { AlertConfig } from '../../containers/AlertContainer/types';
+import type { FC, ReactElement } from "react";
+import type { ColorValue, StyleProp, TextStyle, ViewStyle } from "react-native";
+import type { AlertConfig } from "../../containers/AlertContainer/types";
type IconProps = {
- fill?: ColorValue;
- stroke?: ColorValue;
- width?: number;
- height?: number;
+ fill?: ColorValue;
+ stroke?: ColorValue;
+ width?: number;
+ height?: number;
};
export type ConfettiProps = {
- colors?: string[];
- numberOfPieces: number;
- opacity?: number;
- pieceDimensions?: {
- height: number;
- width: number;
- };
- startOffset?: number;
- renderPiece?: (props: { style: StyleProp }) => ReactElement;
+ colors?: string[];
+ numberOfPieces: number;
+ opacity?: number;
+ pieceDimensions?: {
+ height: number;
+ width: number;
+ };
+ startOffset?: number;
+ renderPiece?: (props: { style: StyleProp }) => ReactElement;
};
export interface Props {
- id?: string;
- testID?: string;
- afterButtonsSlot?: () => ReactElement;
- beforeButtonsSlot?: () => ReactElement;
- beforeMessageSlot?: () => ReactElement;
- beforeTitleSlot?: () => ReactElement;
- icon?: FC;
- iconColor?: ColorValue;
- iconSize?: number;
- isDismissible?: boolean;
- message?: string;
- confetti?: boolean | ConfettiProps;
- onAwaitableDismiss?: (resolve: (value: R) => void) => void;
- onDismiss?: (() => Promise) | (() => R);
- renderMessage?: ({
- style,
- text,
- }: {
- style: StyleProp;
- text: string;
- }) => ReactElement;
- renderTitle?: ({
- style,
- text,
- }: {
- style: StyleProp;
- text: string;
- }) => ReactElement;
- renderDismissButton?: ({
- onPress,
- }: {
- onPress: () => void;
- }) => ReactElement;
- buttons?: AlertButton[];
- buttonsDirection?: 'row' | 'column';
- renderButton?: (
- props: Pick & {
- onPress: () => void;
- }
- ) => ReactElement;
- title?: string;
+ id?: string;
+ testID?: string;
+ afterButtonsSlot?: () => ReactElement;
+ beforeButtonsSlot?: () => ReactElement;
+ beforeMessageSlot?: () => ReactElement;
+ beforeTitleSlot?: () => ReactElement;
+ icon?: FC;
+ iconColor?: ColorValue;
+ iconSize?: number;
+ isDismissible?: boolean;
+ message?: string;
+ confetti?: boolean | ConfettiProps;
+ onAwaitableDismiss?: (resolve: (value: R) => void) => void;
+ onDismiss?: (() => Promise) | (() => R);
+ renderMessage?: ({
+ style,
+ text,
+ }: {
+ style: StyleProp;
+ text: string;
+ }) => ReactElement;
+ renderTitle?: ({
+ style,
+ text,
+ }: {
+ style: StyleProp;
+ text: string;
+ }) => ReactElement;
+ renderDismissButton?: ({ onPress }: { onPress: () => void }) => ReactElement;
+ buttons?: AlertButton[];
+ buttonsDirection?: "row" | "column";
+ renderButton?: (
+ props: Pick & {
+ onPress: () => void;
+ },
+ ) => ReactElement;
+ title?: string;
}
-export interface AlertButtonCustomProps {}
+export interface AlertButtonCustomProps {
+ [key: string]: unknown;
+}
export type AlertButton = {
- text: string;
- onPress?: (() => Promise) | (() => R);
- disabled?: boolean;
- testID?: string;
- hideAlertOnPress?: boolean;
- onAwaitablePress?: (resolve: (value: R) => void) => void;
- customProps?: AlertButtonCustomProps;
+ text: string;
+ onPress?: (() => Promise) | (() => R);
+ disabled?: boolean;
+ testID?: string;
+ hideAlertOnPress?: boolean;
+ onAwaitablePress?: (resolve: (value: R) => void) => void;
+ customProps?: AlertButtonCustomProps;
};
-export type ConfirmProps = Omit & {
- buttons?: Pick[];
- hideAlertOnButtonPress?: boolean;
+export type ConfirmProps = Omit & {
+ buttons?: Pick[];
+ hideAlertOnButtonPress?: boolean;
};
export type AlertViewProps = Props & {
- animationDuration: number;
- isHiding: boolean;
- resolve: (value?: R) => void;
- config?: AlertConfig;
+ animationDuration: number;
+ isHiding: boolean;
+ resolve: (value?: R) => void;
+ config?: AlertConfig;
};
diff --git a/src/components/Backdrop/index.tsx b/src/components/Backdrop/index.tsx
index 69fa22b..c6315e3 100755
--- a/src/components/Backdrop/index.tsx
+++ b/src/components/Backdrop/index.tsx
@@ -1,30 +1,29 @@
-import { type FC, useMemo } from 'react';
-import { StyleSheet } from 'react-native';
+import { type FC, useMemo } from "react";
+import { StyleSheet } from "react-native";
+import Animated, { useAnimatedStyle } from "react-native-reanimated";
-import type { Props } from './types';
-
-import { useAnimation } from '../../hooks/useAnimation';
-import Animated, { useAnimatedStyle } from 'react-native-reanimated';
+import { useAnimation } from "../../hooks/useAnimation";
+import type { Props } from "./types";
export const Backdrop: FC = ({
- animationDuration,
- isHiding,
- backgroundColor = 'rgba(0, 0, 0, 0.5)',
+ animationDuration,
+ isHiding,
+ backgroundColor = "rgba(0, 0, 0, 0.5)",
}) => {
- const { animation } = useAnimation({ animationDuration, isHiding });
+ const { animation } = useAnimation({ animationDuration, isHiding });
- const animatedStyle = useAnimatedStyle(() => ({
- opacity: animation.value,
- }));
+ const animatedStyle = useAnimatedStyle(() => ({
+ opacity: animation.value,
+ }));
- const style = useMemo(
- () =>
- StyleSheet.compose(
- StyleSheet.absoluteFillObject,
- StyleSheet.compose(animatedStyle, { backgroundColor })
- ),
- [animatedStyle, backgroundColor]
- );
+ const style = useMemo(
+ () =>
+ StyleSheet.compose(
+ StyleSheet.absoluteFillObject,
+ StyleSheet.compose(animatedStyle, { backgroundColor }),
+ ),
+ [animatedStyle, backgroundColor],
+ );
- return ;
+ return ;
};
diff --git a/src/components/Backdrop/types.ts b/src/components/Backdrop/types.ts
index 05a5e6b..25c499b 100755
--- a/src/components/Backdrop/types.ts
+++ b/src/components/Backdrop/types.ts
@@ -1,7 +1,7 @@
-import type { ColorValue } from 'react-native';
+import type { ColorValue } from "react-native";
export type Props = {
- animationDuration: number;
- isHiding: boolean;
- backgroundColor?: ColorValue;
+ animationDuration: number;
+ isHiding: boolean;
+ backgroundColor?: ColorValue;
};
diff --git a/src/components/Button/index.tsx b/src/components/Button/index.tsx
index 94e2a26..ac4e396 100644
--- a/src/components/Button/index.tsx
+++ b/src/components/Button/index.tsx
@@ -1,47 +1,47 @@
-import { Pressable, StyleSheet, Text } from 'react-native';
+import { Pressable, StyleSheet, Text } from "react-native";
export const Button = ({
- onPress,
- text,
- testID,
- disabled,
+ onPress,
+ text,
+ testID,
+ disabled,
}: {
- onPress?: () => void;
- text: string;
- testID?: string;
- disabled?: boolean;
+ onPress?: () => void;
+ text: string;
+ testID?: string;
+ disabled?: boolean;
}) => {
- return (
-
-
- {text}
-
-
- );
+ return (
+
+
+ {text}
+
+
+ );
};
const styles = StyleSheet.create({
- button: {
- flexGrow: 1,
- backgroundColor: '#f0f0f0',
- borderRadius: 10,
- paddingVertical: 10,
- paddingHorizontal: 20,
- },
- buttonText: {
- color: 'black',
- fontSize: 16,
- textAlign: 'center',
- },
+ button: {
+ flexGrow: 1,
+ backgroundColor: "#f0f0f0",
+ borderRadius: 10,
+ paddingVertical: 10,
+ paddingHorizontal: 20,
+ },
+ buttonText: {
+ color: "black",
+ fontSize: 16,
+ textAlign: "center",
+ },
});
diff --git a/src/components/Confetti/Piece.tsx b/src/components/Confetti/Piece.tsx
index aef5ff0..141db72 100644
--- a/src/components/Confetti/Piece.tsx
+++ b/src/components/Confetti/Piece.tsx
@@ -1,111 +1,111 @@
-import type { FC } from 'react';
-import type { ConfettiPieceProps } from './types';
+import type { FC } from "react";
+import { useEffect } from "react";
+import { StyleSheet, View } from "react-native";
import Animated, {
- useSharedValue,
- useDerivedValue,
- useAnimatedStyle,
- withDelay,
- withTiming,
- cancelAnimation,
-} from 'react-native-reanimated';
-import { useEffect } from 'react';
-import { StyleSheet, View } from 'react-native';
+ cancelAnimation,
+ useAnimatedStyle,
+ useDerivedValue,
+ useSharedValue,
+ withDelay,
+ withTiming,
+} from "react-native-reanimated";
+import type { ConfettiPieceProps } from "./types";
export const ConfettiPiece: FC = ({
- startOffset = 50,
- angle,
- angleVel,
- canvasHeight,
- color,
- delay,
- elasticity,
- opacity,
- pieceDimensions,
- renderPiece,
- x,
- xVel,
- y,
- yVel,
+ startOffset = 50,
+ angle,
+ angleVel,
+ canvasHeight,
+ color,
+ delay,
+ elasticity,
+ opacity,
+ pieceDimensions,
+ renderPiece,
+ x,
+ xVel,
+ y,
+ yVel,
}) => {
- const getDuration = () => {
- // Calculate total distance: from above screen to below screen
- const totalDistance = canvasHeight + startOffset * 2; // Offset for both top and bottom
- return (totalDistance / yVel) * 1000;
- };
+ const getDuration = () => {
+ // Calculate total distance: from above screen to below screen
+ const totalDistance = canvasHeight + startOffset * 2; // Offset for both top and bottom
+ return (totalDistance / yVel) * 1000;
+ };
- const clock = useSharedValue(0);
- const duration = useSharedValue(getDuration());
+ const clock = useSharedValue(0);
+ const duration = useSharedValue(getDuration());
- // Because our clock.value is going from 0 to 1, it's value will let us
- // get the actual number of milliseconds by taking it multiplied by the
- // total duration of the animation.
- const timeDiff = useDerivedValue(() => clock.value * duration.value);
- const dt = useDerivedValue(() => timeDiff.value / 1000);
- const dy = useDerivedValue(() => dt.value * yVel);
- const dx = useDerivedValue(() => dt.value * xVel * -elasticity);
- const localX = useDerivedValue(() => x + dx.value);
- const dAngle = useDerivedValue(() => (dt.value * angleVel * 180) / Math.PI);
- const localY = useDerivedValue(() => y + dy.value);
- const localAngleD = useDerivedValue(() => angle + dAngle.value);
+ // Because our clock.value is going from 0 to 1, it's value will let us
+ // get the actual number of milliseconds by taking it multiplied by the
+ // total duration of the animation.
+ const timeDiff = useDerivedValue(() => clock.value * duration.value);
+ const dt = useDerivedValue(() => timeDiff.value / 1000);
+ const dy = useDerivedValue(() => dt.value * yVel);
+ const dx = useDerivedValue(() => dt.value * xVel * -elasticity);
+ const localX = useDerivedValue(() => x + dx.value);
+ const dAngle = useDerivedValue(() => (dt.value * angleVel * 180) / Math.PI);
+ const localY = useDerivedValue(() => y + dy.value);
+ const localAngleD = useDerivedValue(() => angle + dAngle.value);
- useEffect(() => {
- // delay is multiplied by 1000 to convert into milliseconds
- clock.value = withDelay(
- delay * 1000,
- withTiming(1, { duration: duration.value })
- );
+ // biome-ignore lint/correctness/useExhaustiveDependencies: clock is stable, re-run not needed
+ useEffect(() => {
+ // delay is multiplied by 1000 to convert into milliseconds
+ clock.value = withDelay(
+ delay * 1000,
+ withTiming(1, { duration: duration.value }),
+ );
- return () => {
- cancelAnimation(clock);
- };
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, []);
+ return () => {
+ cancelAnimation(clock);
+ };
+ }, []);
- const uas = useAnimatedStyle(() => {
- return {
- transform: [
- { translateX: localX.value },
- { translateY: localY.value },
- { rotateX: localAngleD.value * 0.2 + 'deg' },
- { rotateY: localAngleD.value * 0.3 + 'deg' },
- ],
- };
- }, []);
+ const uas = useAnimatedStyle(() => {
+ return {
+ transform: [
+ { translateX: localX.value },
+ { translateY: localY.value },
+ { rotateX: `${localAngleD.value * 0.2}deg` },
+ { rotateY: `${localAngleD.value * 0.3}deg` },
+ ],
+ };
+ }, []);
- return (
-
- {renderPiece ? (
- renderPiece({
- style: StyleSheet.compose(styles.piece, {
- backgroundColor: color,
- opacity,
- }),
- })
- ) : (
-
- )}
-
- );
+ return (
+
+ {renderPiece ? (
+ renderPiece({
+ style: StyleSheet.compose(styles.piece, {
+ backgroundColor: color,
+ opacity,
+ }),
+ })
+ ) : (
+
+ )}
+
+ );
};
const styles = StyleSheet.create({
- pieceWrapper: {
- alignItems: 'center',
- justifyContent: 'center',
- left: 0,
- overflow: 'hidden',
- position: 'absolute',
- top: 0,
- },
- piece: {
- left: 0,
- position: 'absolute',
- top: 0,
- },
+ pieceWrapper: {
+ alignItems: "center",
+ justifyContent: "center",
+ left: 0,
+ overflow: "hidden",
+ position: "absolute",
+ top: 0,
+ },
+ piece: {
+ left: 0,
+ position: "absolute",
+ top: 0,
+ },
});
diff --git a/src/components/Confetti/constants.ts b/src/components/Confetti/constants.ts
index 8d899d3..f8d921c 100755
--- a/src/components/Confetti/constants.ts
+++ b/src/components/Confetti/constants.ts
@@ -1,19 +1,19 @@
export const COLORS = [
- '#f44336',
- '#e91e63',
- '#9c27b0',
- '#673ab7',
- '#3f51b5',
- '#2196f3',
- '#03a9f4',
- '#00bcd4',
- '#009688',
- '#4CAF50',
- '#8BC34A',
- '#CDDC39',
- '#FFEB3B',
- '#FFC107',
- '#FF9800',
- '#FF5722',
- '#795548',
+ "#f44336",
+ "#e91e63",
+ "#9c27b0",
+ "#673ab7",
+ "#3f51b5",
+ "#2196f3",
+ "#03a9f4",
+ "#00bcd4",
+ "#009688",
+ "#4CAF50",
+ "#8BC34A",
+ "#CDDC39",
+ "#FFEB3B",
+ "#FFC107",
+ "#FF9800",
+ "#FF5722",
+ "#795548",
];
diff --git a/src/components/Confetti/hooks/useWaitForAnimations.ts b/src/components/Confetti/hooks/useWaitForAnimations.ts
index 220db7b..b862c39 100644
--- a/src/components/Confetti/hooks/useWaitForAnimations.ts
+++ b/src/components/Confetti/hooks/useWaitForAnimations.ts
@@ -1,25 +1,24 @@
+import { useEffect, useState } from "react";
import {
- cancelAnimation,
- runOnJS,
- useSharedValue,
- withTiming,
-} from 'react-native-reanimated';
-
-import { useEffect, useState } from 'react';
+ cancelAnimation,
+ runOnJS,
+ useSharedValue,
+ withTiming,
+} from "react-native-reanimated";
export const useWaitForAnimations = () => {
- const [isReady, setIsReady] = useState(false);
- const progress = useSharedValue(0);
+ const [isReady, setIsReady] = useState(false);
+ const progress = useSharedValue(0);
- useEffect(() => {
- progress.value = withTiming(1, { duration: 0 }, () => {
- runOnJS(setIsReady)(true);
- });
+ useEffect(() => {
+ progress.value = withTiming(1, { duration: 0 }, () => {
+ runOnJS(setIsReady)(true);
+ });
- return () => {
- cancelAnimation(progress);
- };
- }, [progress]);
+ return () => {
+ cancelAnimation(progress);
+ };
+ }, [progress]);
- return isReady;
+ return isReady;
};
diff --git a/src/components/Confetti/index.tsx b/src/components/Confetti/index.tsx
index c603861..3c2acad 100755
--- a/src/components/Confetti/index.tsx
+++ b/src/components/Confetti/index.tsx
@@ -1,87 +1,85 @@
-import { type FC, useMemo } from 'react';
-import { StyleSheet, useWindowDimensions } from 'react-native';
-import Animated, { FadeOutDown } from 'react-native-reanimated';
-
-import type { ConfettiPieceConfig, Props } from './types';
-
-import { COLORS } from './constants';
-import { useWaitForAnimations } from './hooks/useWaitForAnimations';
-import { ConfettiPiece } from './Piece';
+import { type FC, useMemo } from "react";
+import { StyleSheet, useWindowDimensions } from "react-native";
+import Animated, { FadeOutDown } from "react-native-reanimated";
+import { COLORS } from "./constants";
+import { useWaitForAnimations } from "./hooks/useWaitForAnimations";
+import { ConfettiPiece } from "./Piece";
+import type { ConfettiPieceConfig, Props } from "./types";
export const Confetti: FC = ({
- colors = COLORS,
- numberOfPieces = 150,
- opacity = 1,
- renderPiece,
- startOffset = 50,
- ...rest
+ colors = COLORS,
+ numberOfPieces = 150,
+ opacity = 1,
+ renderPiece,
+ startOffset = 50,
+ ...rest
}) => {
- const { height: screenHeight, width: screenWidth } = useWindowDimensions();
- const isReady = useWaitForAnimations();
+ const { height: screenHeight, width: screenWidth } = useWindowDimensions();
+ const isReady = useWaitForAnimations();
- const pieceDimensions = useMemo(() => {
- return (
- rest.pieceDimensions || {
- height: 10,
- width: 20,
- }
- );
- }, [rest.pieceDimensions]);
+ const pieceDimensions = useMemo(() => {
+ return (
+ rest.pieceDimensions || {
+ height: 10,
+ width: 20,
+ }
+ );
+ }, [rest.pieceDimensions]);
- const width = useMemo(() => {
- return rest.width || screenWidth;
- }, [rest.width, screenWidth]);
+ const width = useMemo(() => {
+ return rest.width || screenWidth;
+ }, [rest.width, screenWidth]);
- const height = useMemo(() => {
- return rest.height || screenHeight;
- }, [rest.height, screenHeight]);
+ const height = useMemo(() => {
+ return rest.height || screenHeight;
+ }, [rest.height, screenHeight]);
- const xVelMax = 400;
- const yVelMax = 150;
- const angleVelMax = 15;
+ const xVelMax = 400;
+ const yVelMax = 150;
+ const angleVelMax = 15;
- const confetti: ConfettiPieceConfig[] = useMemo(
- () =>
- [...new Array(numberOfPieces)].map((_, index) => {
- return {
- angle: 0,
- angleVel: (Math.random() * angleVelMax - angleVelMax / 2) * Math.PI,
- color: colors[index % colors.length] || '#000',
- delay: Math.floor(index / 10) * 0.2,
- elasticity: Math.random() * 0.9 + 0.1,
- key: index,
- x: Math.random() * width - (pieceDimensions.width || 20) / 2,
- xVel: Math.random() * xVelMax - xVelMax / 2,
- y: -startOffset, // Start above the screen
- yVel: Math.random() * yVelMax + yVelMax,
- };
- }),
- [colors, numberOfPieces, pieceDimensions, width, startOffset]
- );
+ const confetti: ConfettiPieceConfig[] = useMemo(
+ () =>
+ [...new Array(numberOfPieces)].map((_, index) => {
+ return {
+ angle: 0,
+ angleVel: (Math.random() * angleVelMax - angleVelMax / 2) * Math.PI,
+ color: colors[index % colors.length] || "#000",
+ delay: Math.floor(index / 10) * 0.2,
+ elasticity: Math.random() * 0.9 + 0.1,
+ key: index,
+ x: Math.random() * width - (pieceDimensions.width || 20) / 2,
+ xVel: Math.random() * xVelMax - xVelMax / 2,
+ y: -startOffset, // Start above the screen
+ yVel: Math.random() * yVelMax + yVelMax,
+ };
+ }),
+ [colors, numberOfPieces, pieceDimensions, width, startOffset],
+ );
- if (!isReady) {
- return null;
- }
+ if (!isReady) {
+ return null;
+ }
- return (
-
- {confetti.map((c) => {
- return (
-
- );
- })}
-
- );
+ return (
+
+ {confetti.map((c) => {
+ return (
+
+ );
+ })}
+
+ );
};
diff --git a/src/components/Confetti/types.ts b/src/components/Confetti/types.ts
index b2dc249..cf96063 100644
--- a/src/components/Confetti/types.ts
+++ b/src/components/Confetti/types.ts
@@ -1,36 +1,35 @@
-import type { ReactElement } from 'react';
-import type { StyleProp } from 'react-native';
-import type { ViewStyle } from 'react-native';
+import type { ReactElement } from "react";
+import type { StyleProp, ViewStyle } from "react-native";
export type Props = {
- colors?: string[];
- height?: number;
- numberOfPieces?: number;
- opacity?: number;
- pieceDimensions?: {
- height: number;
- width: number;
- };
- renderPiece?: (props: { style: StyleProp }) => ReactElement;
- width?: number;
- startOffset?: number;
+ colors?: string[];
+ height?: number;
+ numberOfPieces?: number;
+ opacity?: number;
+ pieceDimensions?: {
+ height: number;
+ width: number;
+ };
+ renderPiece?: (props: { style: StyleProp }) => ReactElement;
+ width?: number;
+ startOffset?: number;
};
export type ConfettiPieceConfig = {
- angle: number;
- angleVel: number;
- color: string;
- delay: number;
- elasticity: number;
- key: number;
- x: number;
- xVel: number;
- y: number;
- yVel: number;
+ angle: number;
+ angleVel: number;
+ color: string;
+ delay: number;
+ elasticity: number;
+ key: number;
+ x: number;
+ xVel: number;
+ y: number;
+ yVel: number;
};
export type ConfettiPieceProps = ConfettiPieceConfig &
- Pick & {
- canvasHeight: number;
- canvasWidth: number;
- };
+ Pick & {
+ canvasHeight: number;
+ canvasWidth: number;
+ };
diff --git a/src/components/icons/Close.tsx b/src/components/icons/Close.tsx
index 720f500..d448d2c 100644
--- a/src/components/icons/Close.tsx
+++ b/src/components/icons/Close.tsx
@@ -1,7 +1,7 @@
-import Svg, { type SvgProps, Path } from 'react-native-svg';
+import Svg, { Path, type SvgProps } from "react-native-svg";
export const CloseIcon = (props: SvgProps) => (
-
+
);
diff --git a/src/components/icons/Info.tsx b/src/components/icons/Info.tsx
index 1ff22a3..8aca5c7 100644
--- a/src/components/icons/Info.tsx
+++ b/src/components/icons/Info.tsx
@@ -1,15 +1,15 @@
-import Svg, { type SvgProps, Path } from 'react-native-svg';
+import Svg, { Path, type SvgProps } from "react-native-svg";
export const InfoIcon = (props: SvgProps) => (
-
+
);
diff --git a/src/components/icons/Success.tsx b/src/components/icons/Success.tsx
index aab3e67..9512946 100644
--- a/src/components/icons/Success.tsx
+++ b/src/components/icons/Success.tsx
@@ -1,11 +1,11 @@
-import Svg, { type SvgProps, Path } from 'react-native-svg';
+import Svg, { Path, type SvgProps } from "react-native-svg";
export const SuccessIcon = (props: SvgProps) => (
-
+
);
diff --git a/src/containers/AlertContainer/alert.api.ts b/src/containers/AlertContainer/alert.api.ts
index 1c8f076..77e9e9f 100644
--- a/src/containers/AlertContainer/alert.api.ts
+++ b/src/containers/AlertContainer/alert.api.ts
@@ -1,13 +1,13 @@
-import type { Alert } from './types';
+import type { Alert } from "./types";
export const alert: Alert = {
- clearQueue: () => {},
- confirm: () => Promise.resolve(true),
- error: () => Promise.resolve(undefined as R),
- getAlertData: () => undefined,
- hide: () => {},
- isShown: false,
- show: () => Promise.resolve(undefined as R),
- success: () => Promise.resolve(undefined as R),
- update: () => {},
+ clearQueue: () => {},
+ confirm: () => Promise.resolve(true),
+ error: () => Promise.resolve(undefined as R),
+ getAlertData: () => undefined,
+ hide: () => {},
+ isShown: false,
+ show: () => Promise.resolve(undefined as R),
+ success: () => Promise.resolve(undefined as R),
+ update: () => {},
};
diff --git a/src/containers/AlertContainer/controller.platform.native.ts b/src/containers/AlertContainer/controller.platform.native.ts
index 7fc1b34..4c932c0 100644
--- a/src/containers/AlertContainer/controller.platform.native.ts
+++ b/src/containers/AlertContainer/controller.platform.native.ts
@@ -1,83 +1,83 @@
-import { useCallback, useRef, useState } from 'react';
-import type { KeyboardEvent, NativeEventSubscription } from 'react-native';
+import { useCallback, useRef, useState } from "react";
+import type { KeyboardEvent, NativeEventSubscription } from "react-native";
import {
- BackHandler,
- Keyboard,
- LayoutAnimation,
- Platform,
- TextInput,
-} from 'react-native';
+ BackHandler,
+ Keyboard,
+ LayoutAnimation,
+ Platform,
+ TextInput,
+} from "react-native";
export const usePlatformController = () => {
- const [keyboardHeight, setKeyboardHeight] = useState(0);
+ const [keyboardHeight, setKeyboardHeight] = useState(0);
- const onKeyboardDidShow = useCallback((e: KeyboardEvent) => {
- LayoutAnimation.easeInEaseOut();
+ const onKeyboardDidShow = useCallback((e: KeyboardEvent) => {
+ LayoutAnimation.easeInEaseOut();
- setKeyboardHeight(e.endCoordinates.height);
- }, []);
+ setKeyboardHeight(e.endCoordinates.height);
+ }, []);
- const onKeyboardDidHide = useCallback(() => {
- LayoutAnimation.easeInEaseOut();
+ const onKeyboardDidHide = useCallback(() => {
+ LayoutAnimation.easeInEaseOut();
- setKeyboardHeight(0);
- }, []);
+ setKeyboardHeight(0);
+ }, []);
- const focusedTextInput =
- useRef>(
- null
- );
+ const focusedTextInput =
+ useRef>(
+ null,
+ );
- const androidBackButtonPressSub = useRef(null);
+ const androidBackButtonPressSub = useRef(null);
- const keyboardDidShowSub =
- useRef>(null);
+ const keyboardDidShowSub =
+ useRef>(null);
- const keyboardDidHideSub =
- useRef>(null);
+ const keyboardDidHideSub =
+ useRef>(null);
- const onShow = useCallback(() => {
- focusedTextInput.current = TextInput.State.currentlyFocusedInput();
- TextInput.State.blurTextInput(focusedTextInput.current);
+ const onShow = useCallback(() => {
+ focusedTextInput.current = TextInput.State.currentlyFocusedInput();
+ TextInput.State.blurTextInput(focusedTextInput.current);
- if (Platform.OS === 'android') {
- androidBackButtonPressSub.current = BackHandler.addEventListener(
- 'hardwareBackPress',
- () => {
- return true;
- }
- );
- }
+ if (Platform.OS === "android") {
+ androidBackButtonPressSub.current = BackHandler.addEventListener(
+ "hardwareBackPress",
+ () => {
+ return true;
+ },
+ );
+ }
- if (Platform.OS === 'ios') {
- keyboardDidShowSub.current = Keyboard.addListener(
- 'keyboardDidShow',
- onKeyboardDidShow
- );
+ if (Platform.OS === "ios") {
+ keyboardDidShowSub.current = Keyboard.addListener(
+ "keyboardDidShow",
+ onKeyboardDidShow,
+ );
- keyboardDidHideSub.current = Keyboard.addListener(
- 'keyboardDidHide',
- onKeyboardDidHide
- );
- }
- }, [onKeyboardDidHide, onKeyboardDidShow]);
+ keyboardDidHideSub.current = Keyboard.addListener(
+ "keyboardDidHide",
+ onKeyboardDidHide,
+ );
+ }
+ }, [onKeyboardDidHide, onKeyboardDidShow]);
- const onHide = useCallback(() => {
- if (focusedTextInput.current) {
- TextInput.State.focusTextInput(focusedTextInput.current);
- }
+ const onHide = useCallback(() => {
+ if (focusedTextInput.current) {
+ TextInput.State.focusTextInput(focusedTextInput.current);
+ }
- if (Platform.OS === 'android') {
- androidBackButtonPressSub.current?.remove();
- }
+ if (Platform.OS === "android") {
+ androidBackButtonPressSub.current?.remove();
+ }
- if (Platform.OS === 'ios') {
- keyboardDidShowSub.current?.remove();
- keyboardDidHideSub.current?.remove();
- }
+ if (Platform.OS === "ios") {
+ keyboardDidShowSub.current?.remove();
+ keyboardDidHideSub.current?.remove();
+ }
- setKeyboardHeight(0);
- }, []);
+ setKeyboardHeight(0);
+ }, []);
- return { bottomOffset: keyboardHeight, onHide, onShow };
+ return { bottomOffset: keyboardHeight, onHide, onShow };
};
diff --git a/src/containers/AlertContainer/controller.platform.ts b/src/containers/AlertContainer/controller.platform.ts
index ba8fc23..06e25a0 100755
--- a/src/containers/AlertContainer/controller.platform.ts
+++ b/src/containers/AlertContainer/controller.platform.ts
@@ -1,9 +1,9 @@
-import { useCallback } from 'react';
+import { useCallback } from "react";
export const usePlatformController = () => {
- const onShow = useCallback(() => {}, []);
+ const onShow = useCallback(() => {}, []);
- const onHide = useCallback(() => {}, []);
+ const onHide = useCallback(() => {}, []);
- return { bottomOffset: 0, onHide, onShow };
+ return { bottomOffset: 0, onHide, onShow };
};
diff --git a/src/containers/AlertContainer/controller.ts b/src/containers/AlertContainer/controller.ts
index a0e884a..b059d9f 100644
--- a/src/containers/AlertContainer/controller.ts
+++ b/src/containers/AlertContainer/controller.ts
@@ -1,283 +1,288 @@
-import { useCallback, useEffect, useRef, useState } from 'react';
+import { useCallback, useEffect, useRef, useState } from "react";
+import type { ConfirmProps } from "../../components/Alert/types";
-import type { AlertProps, CurrentAlert, Props } from './types';
+import { InfoIcon } from "../../components/icons/Info";
+import { SuccessIcon } from "../../components/icons/Success";
+import { EventEmitter } from "../../utils/EventEmitter";
-import { InfoIcon } from '../../components/icons/Info';
-import { SuccessIcon } from '../../components/icons/Success';
-import { EventEmitter } from '../../utils/EventEmitter';
-
-import { usePlatformController } from './controller.platform';
-import { processAlertProps } from './utils';
-import type { ConfirmProps } from '../../components/Alert/types';
+import { usePlatformController } from "./controller.platform";
+import type { AlertProps, CurrentAlert, Props } from "./types";
+import { processAlertProps } from "./utils";
export const useController = ({ animationDuration, config }: Props) => {
- const [isShown, setIsShown] = useState(false);
- const [isHiding, setIsHiding] = useState(false);
- const [currentAlert, setCurrentAlert] = useState();
- const [hideEmitter] = useState(() => new EventEmitter());
-
- const isMounted = useRef(false);
- const queue = useRef([]);
- const hideTimeout = useRef(0);
- const isShownRef = useRef(false);
-
- const { bottomOffset, onHide, onShow } = usePlatformController();
-
- useEffect(() => {
- isMounted.current = true;
-
- return () => {
- isMounted.current = false;
- };
- }, []);
-
- useEffect(() => {
- setCurrentAlert((prev) => {
- if (prev) {
- return {
- ...prev,
- resolve: prev.resolve,
- config,
- };
- }
- return prev;
- });
-
- // update config in queue
- queue.current.forEach((alert) => {
- alert.config = config;
- });
- }, [config]);
-
- const show = useCallback(
- (alert: AlertProps) => {
- return new Promise((resolve) => {
- if (!isMounted.current) {
- resolve(undefined);
-
- return;
- }
-
- alert = processAlertProps(alert, config);
-
- if (isShownRef.current) {
- queue.current.push({ ...alert, resolve, config });
-
- return;
- }
-
- setIsShown(true);
-
- isShownRef.current = true;
-
- onShow();
-
- setCurrentAlert({ ...alert, resolve, config });
- });
- },
- [onShow, config]
- );
-
- const update = useCallback(
- (id: string, alert: AlertProps = {}) => {
- if (!isShownRef.current) {
- return;
- }
-
- const isCurrentAlert = currentAlert?.id === id;
-
- if (isCurrentAlert) {
- alert = processAlertProps(alert);
-
- setCurrentAlert((prev) => ({
- ...alert,
- resolve: prev!.resolve,
- config,
- }));
- } else {
- const alertIndex = queue.current.findIndex((a) => a.id === id);
-
- if (alertIndex >= 0) {
- queue.current.splice(alertIndex, 1, {
- ...alert,
- resolve: queue.current[alertIndex]!.resolve,
- config,
- });
- }
- }
- },
- [currentAlert?.id, config]
- );
-
- useEffect(() => {
- const handleHide = () => {
- const nextAlert = queue.current.shift();
-
- if (nextAlert) {
- // prevent automatic batching in React 18
- setTimeout(() => {
- setIsShown(true);
- isShownRef.current = true;
-
- onShow();
-
- setCurrentAlert(nextAlert);
- }, 100);
- }
- };
-
- hideEmitter.on(handleHide);
-
- return () => hideEmitter.off(handleHide);
- }, [onShow, hideEmitter]);
-
- const hide = useCallback(() => {
- if (!isShownRef.current || isHiding) {
- return;
- }
-
- setIsHiding(true);
-
- hideTimeout.current = +setTimeout(() => {
- onHide();
-
- setCurrentAlert(undefined);
- setIsShown(false);
- isShownRef.current = false;
- setIsHiding(false);
-
- hideEmitter.emit();
- }, animationDuration);
- }, [animationDuration, isHiding, onHide, hideEmitter]);
-
- useEffect(() => {
- return () => {
- clearTimeout(hideTimeout.current);
- };
- }, []);
-
- const clearQueue = useCallback(
- (hideDisplayedAlert?: boolean) => {
- queue.current = [];
-
- if (hideDisplayedAlert) {
- hide();
- }
- },
- [hide]
- );
-
- const getAlertData = useCallback(
- (id: string) => {
- return [currentAlert, ...queue.current].find((a) => a?.id === id);
- },
- [currentAlert]
- );
-
- const confirm = useCallback(
- (alert?: ConfirmProps) => {
- const { confirm: confirmConfig } = config || {};
-
- const title = alert?.title || confirmConfig?.title || 'Are you sure?';
-
- const passedButtons = alert?.buttons || confirmConfig?.buttons;
-
- const hideAlertOnPress = alert?.hideAlertOnButtonPress ?? true;
-
- let buttons: Required>['buttons'] = [
- {
- text: 'Yes',
- onAwaitablePress: (resolve) => resolve(true),
- hideAlertOnPress,
- },
- {
- text: 'No',
- onAwaitablePress: (resolve) => resolve(false),
- hideAlertOnPress,
- },
- ];
-
- if (passedButtons && passedButtons.length !== 2) {
- // eslint-disable-next-line no-console
- console.warn(
- `[React Native Alert Queue] Confirm props must have 2 buttons, got ${passedButtons?.length}`,
- alert
- );
- } else if (passedButtons) {
- const [resolveButton, rejectButton] = passedButtons;
-
- buttons = [
- {
- text: resolveButton!.text,
- onAwaitablePress: (resolve) => resolve(true),
- hideAlertOnPress,
- customProps: resolveButton!.customProps,
- },
- {
- text: rejectButton!.text,
- onAwaitablePress: (resolve) => resolve(false),
- hideAlertOnPress,
- customProps: rejectButton!.customProps,
- },
- ];
- }
-
- return show({
- icon: confirmConfig?.icon,
- iconColor: confirmConfig?.iconColor,
- iconSize: confirmConfig?.iconSize,
- ...alert,
- buttons,
- buttonsDirection: 'row',
- title,
- });
- },
-
- [show, config]
- );
-
- const showError = useCallback(
- (error: Error) => {
- const { error: errorConfig } = config || {};
-
- show({
- icon: errorConfig?.icon ?? InfoIcon,
- iconColor: errorConfig?.iconColor ?? 'red',
- iconSize: errorConfig?.iconSize ?? 72,
- message: error.message,
- title: errorConfig?.title ?? 'Oops! Something went wrong!',
- });
- },
- [show, config]
- );
-
- const success = useCallback(
- (alert?: AlertProps) => {
- const { success: successConfig } = config || {};
-
- show({
- icon: successConfig?.icon ?? SuccessIcon,
- iconColor: successConfig?.iconColor ?? 'green',
- iconSize: successConfig?.iconSize ?? 72,
- title: successConfig?.title ?? 'Success!',
- ...alert,
- });
- },
- [show, config]
- );
-
- return {
- bottomOffset,
- clearQueue,
- confirm,
- currentAlert,
- getAlertData,
- hide,
- isHiding,
- isShown,
- show,
- showError,
- success,
- update,
- };
+ const [isShown, setIsShown] = useState(false);
+ const [isHiding, setIsHiding] = useState(false);
+ const [currentAlert, setCurrentAlert] = useState();
+ const [hideEmitter] = useState(() => new EventEmitter());
+
+ const isMounted = useRef(false);
+ const queue = useRef([]);
+ const hideTimeout = useRef(0);
+ const isShownRef = useRef(false);
+
+ const { bottomOffset, onHide, onShow } = usePlatformController();
+
+ useEffect(() => {
+ isMounted.current = true;
+
+ return () => {
+ isMounted.current = false;
+ };
+ }, []);
+
+ useEffect(() => {
+ setCurrentAlert((prev) => {
+ if (prev) {
+ return {
+ ...prev,
+ resolve: prev.resolve,
+ config,
+ };
+ }
+ return prev;
+ });
+
+ // update config in queue
+ queue.current.forEach((alert) => {
+ alert.config = config;
+ });
+ }, [config]);
+
+ const show = useCallback(
+ (alert: AlertProps) => {
+ return new Promise((resolve) => {
+ if (!isMounted.current) {
+ resolve(undefined);
+
+ return;
+ }
+
+ alert = processAlertProps(alert, config);
+
+ if (isShownRef.current) {
+ queue.current.push({ ...alert, resolve, config });
+
+ return;
+ }
+
+ setIsShown(true);
+
+ isShownRef.current = true;
+
+ onShow();
+
+ setCurrentAlert({ ...alert, resolve, config });
+ });
+ },
+ [onShow, config],
+ );
+
+ const update = useCallback(
+ (id: string, alert: AlertProps = {}) => {
+ if (!isShownRef.current) {
+ return;
+ }
+
+ const isCurrentAlert = currentAlert?.id === id;
+
+ if (isCurrentAlert) {
+ alert = processAlertProps(alert);
+
+ setCurrentAlert((prev) =>
+ prev
+ ? {
+ ...alert,
+ resolve: prev.resolve,
+ config,
+ }
+ : prev,
+ );
+ } else {
+ const alertIndex = queue.current.findIndex((a) => a.id === id);
+
+ if (alertIndex >= 0 && queue.current[alertIndex]) {
+ queue.current.splice(alertIndex, 1, {
+ ...alert,
+ resolve: queue.current[alertIndex].resolve,
+ config,
+ });
+ }
+ }
+ },
+ [currentAlert?.id, config],
+ );
+
+ useEffect(() => {
+ const handleHide = () => {
+ const nextAlert = queue.current.shift();
+
+ if (nextAlert) {
+ // prevent automatic batching in React 18
+ setTimeout(() => {
+ setIsShown(true);
+ isShownRef.current = true;
+
+ onShow();
+
+ setCurrentAlert(nextAlert);
+ }, 100);
+ }
+ };
+
+ hideEmitter.on(handleHide);
+
+ return () => hideEmitter.off(handleHide);
+ }, [onShow, hideEmitter]);
+
+ const hide = useCallback(() => {
+ if (!isShownRef.current || isHiding) {
+ return;
+ }
+
+ setIsHiding(true);
+
+ hideTimeout.current = +setTimeout(() => {
+ onHide();
+
+ setCurrentAlert(undefined);
+ setIsShown(false);
+ isShownRef.current = false;
+ setIsHiding(false);
+
+ hideEmitter.emit();
+ }, animationDuration);
+ }, [animationDuration, isHiding, onHide, hideEmitter]);
+
+ useEffect(() => {
+ return () => {
+ clearTimeout(hideTimeout.current);
+ };
+ }, []);
+
+ const clearQueue = useCallback(
+ (hideDisplayedAlert?: boolean) => {
+ queue.current = [];
+
+ if (hideDisplayedAlert) {
+ hide();
+ }
+ },
+ [hide],
+ );
+
+ const getAlertData = useCallback(
+ (id: string) => {
+ return [currentAlert, ...queue.current].find((a) => a?.id === id);
+ },
+ [currentAlert],
+ );
+
+ const confirm = useCallback(
+ (alert?: ConfirmProps) => {
+ const { confirm: confirmConfig } = config || {};
+
+ const title = alert?.title || confirmConfig?.title || "Are you sure?";
+
+ const passedButtons = alert?.buttons || confirmConfig?.buttons;
+
+ const hideAlertOnPress = alert?.hideAlertOnButtonPress ?? true;
+
+ let buttons: Required>["buttons"] = [
+ {
+ text: "Yes",
+ onAwaitablePress: (resolve) => resolve(true),
+ hideAlertOnPress,
+ },
+ {
+ text: "No",
+ onAwaitablePress: (resolve) => resolve(false),
+ hideAlertOnPress,
+ },
+ ];
+
+ if (passedButtons && passedButtons.length !== 2) {
+ console.warn(
+ `[React Native Alert Queue] Confirm props must have 2 buttons, got ${passedButtons?.length}`,
+ alert,
+ );
+ } else if (passedButtons) {
+ // biome-ignore lint/style/noNonNullAssertion: ww checked the length above
+ const resolveButton = passedButtons[0]!;
+ // biome-ignore lint/style/noNonNullAssertion: we checked the length above
+ const rejectButton = passedButtons[1]!;
+
+ buttons = [
+ {
+ text: resolveButton.text,
+ onAwaitablePress: (resolve) => resolve(true),
+ hideAlertOnPress,
+ customProps: resolveButton.customProps,
+ },
+ {
+ text: rejectButton.text,
+ onAwaitablePress: (resolve) => resolve(false),
+ hideAlertOnPress,
+ customProps: rejectButton.customProps,
+ },
+ ];
+ }
+
+ return show({
+ icon: confirmConfig?.icon,
+ iconColor: confirmConfig?.iconColor,
+ iconSize: confirmConfig?.iconSize,
+ ...alert,
+ buttons,
+ buttonsDirection: "row",
+ title,
+ });
+ },
+
+ [show, config],
+ );
+
+ const showError = useCallback(
+ (error: Error) => {
+ const { error: errorConfig } = config || {};
+
+ show({
+ icon: errorConfig?.icon ?? InfoIcon,
+ iconColor: errorConfig?.iconColor ?? "red",
+ iconSize: errorConfig?.iconSize ?? 72,
+ message: error.message,
+ title: errorConfig?.title ?? "Oops! Something went wrong!",
+ });
+ },
+ [show, config],
+ );
+
+ const success = useCallback(
+ (alert?: AlertProps) => {
+ const { success: successConfig } = config || {};
+
+ show({
+ icon: successConfig?.icon ?? SuccessIcon,
+ iconColor: successConfig?.iconColor ?? "green",
+ iconSize: successConfig?.iconSize ?? 72,
+ title: successConfig?.title ?? "Success!",
+ ...alert,
+ });
+ },
+ [show, config],
+ );
+
+ return {
+ bottomOffset,
+ clearQueue,
+ confirm,
+ currentAlert,
+ getAlertData,
+ hide,
+ isHiding,
+ isShown,
+ show,
+ showError,
+ success,
+ update,
+ };
};
diff --git a/src/containers/AlertContainer/index.tsx b/src/containers/AlertContainer/index.tsx
index 30816b6..8c563e5 100644
--- a/src/containers/AlertContainer/index.tsx
+++ b/src/containers/AlertContainer/index.tsx
@@ -1,102 +1,102 @@
-import { useEffect, useMemo, useCallback, type FC } from 'react';
-import type { Props } from './types';
-import { alert } from './alert.api';
-import { useController } from './controller';
-import { Backdrop } from '../../components/Backdrop';
-import { Alert } from '../../components/Alert';
-import { StyleSheet, View } from 'react-native';
-import { styles } from './styles';
-import { ConfettiContainer } from '../ConfettiContainer';
+import { type FC, useCallback, useEffect, useMemo } from "react";
+import { StyleSheet, View } from "react-native";
+import { Alert } from "../../components/Alert";
+import { Backdrop } from "../../components/Backdrop";
+import { ConfettiContainer } from "../ConfettiContainer";
+import { alert } from "./alert.api";
+import { useController } from "./controller";
+import { styles } from "./styles";
+import type { Props } from "./types";
export const AlertContainer: FC = ({
- animationDuration = 200,
- config,
+ animationDuration = 200,
+ config,
}) => {
- const {
- bottomOffset,
- clearQueue,
- confirm,
- currentAlert,
- getAlertData,
- hide,
- isHiding,
- isShown,
- show,
- showError,
- success,
- update,
- } = useController({ animationDuration, config });
+ const {
+ bottomOffset,
+ clearQueue,
+ confirm,
+ currentAlert,
+ getAlertData,
+ hide,
+ isHiding,
+ isShown,
+ show,
+ showError,
+ success,
+ update,
+ } = useController({ animationDuration, config });
- useEffect(() => {
- // @ts-ignore: Type 'unknown' is not assignable to type 'R'
- alert.show = show;
- alert.hide = hide;
- // @ts-ignore: Type 'unknown' is not assignable to type 'R'
- alert.success = success;
- alert.update = update;
- alert.clearQueue = clearQueue;
- // @ts-ignore: Type 'unknown' is not assignable to type 'R'
- alert.getAlertData = getAlertData;
- // @ts-ignore: Type 'unknown' is not assignable to type 'R'
- alert.confirm = confirm;
- // @ts-ignore: Type 'unknown' is not assignable to type 'R'
- alert.error = showError;
- alert.isShown = isShown;
- }, [
- clearQueue,
- hide,
- show,
- success,
- update,
- getAlertData,
- isShown,
- confirm,
- showError,
- ]);
+ useEffect(() => {
+ // @ts-expect-error: Type 'unknown' is not assignable to type 'R'
+ alert.show = show;
+ alert.hide = hide;
+ // @ts-expect-error: Type 'unknown' is not assignable to type 'R'
+ alert.success = success;
+ alert.update = update;
+ alert.clearQueue = clearQueue;
+ // @ts-expect-error: Type 'unknown' is not assignable to type 'R'
+ alert.getAlertData = getAlertData;
+ // @ts-expect-error: Type 'unknown' is not assignable to type 'R'
+ alert.confirm = confirm;
+ // @ts-expect-error: Type 'unknown' is not assignable to type 'R'
+ alert.error = showError;
+ alert.isShown = isShown;
+ }, [
+ clearQueue,
+ hide,
+ show,
+ success,
+ update,
+ getAlertData,
+ isShown,
+ confirm,
+ showError,
+ ]);
- const containerStyle = useMemo(
- () =>
- StyleSheet.compose(styles.container, {
- bottom: bottomOffset,
- }),
- [bottomOffset]
- );
+ const containerStyle = useMemo(
+ () =>
+ StyleSheet.compose(styles.container, {
+ bottom: bottomOffset,
+ }),
+ [bottomOffset],
+ );
- const renderConfetti = useCallback(() => {
- const shouldRender = currentAlert?.confetti;
+ const renderConfetti = useCallback(() => {
+ const shouldRender = currentAlert?.confetti;
- if (shouldRender) {
- const currentAlertConfettiProps =
- typeof currentAlert.confetti === 'boolean'
- ? undefined
- : currentAlert.confetti;
+ if (shouldRender) {
+ const currentAlertConfettiProps =
+ typeof currentAlert.confetti === "boolean"
+ ? undefined
+ : currentAlert.confetti;
- const globalProps = config?.confetti;
+ const globalProps = config?.confetti;
- const confettiProps = {
- ...globalProps,
- ...currentAlertConfettiProps,
- };
+ const confettiProps = {
+ ...globalProps,
+ ...currentAlertConfettiProps,
+ };
- return ;
- }
+ return ;
+ }
- return null;
- }, [currentAlert?.confetti, config?.confetti]);
+ return null;
+ }, [currentAlert?.confetti, config?.confetti]);
- return currentAlert ? (
-
-
- {renderConfetti()}
-
-
- ) : null;
+ return currentAlert ? (
+
+
+ {renderConfetti()}
+
+
+ ) : null;
};
diff --git a/src/containers/AlertContainer/styles.ts b/src/containers/AlertContainer/styles.ts
index 872c0db..e2bd8a1 100644
--- a/src/containers/AlertContainer/styles.ts
+++ b/src/containers/AlertContainer/styles.ts
@@ -1,13 +1,13 @@
-import { StyleSheet } from 'react-native';
+import { StyleSheet } from "react-native";
export const styles = StyleSheet.create({
- container: {
- position: 'absolute',
- top: 0,
- left: 0,
- right: 0,
- bottom: 0,
- justifyContent: 'center',
- alignItems: 'center',
- },
+ container: {
+ position: "absolute",
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ justifyContent: "center",
+ alignItems: "center",
+ },
});
diff --git a/src/containers/AlertContainer/types.ts b/src/containers/AlertContainer/types.ts
index 4538989..c83e6c6 100644
--- a/src/containers/AlertContainer/types.ts
+++ b/src/containers/AlertContainer/types.ts
@@ -1,65 +1,65 @@
-import type { ColorValue, StyleProp, ViewStyle } from 'react-native';
+import type { ColorValue, StyleProp, ViewStyle } from "react-native";
import type {
- AlertButton,
- Props as AlertProps,
- AlertViewProps as AlertViewProps,
- ConfettiProps,
- ConfirmProps,
-} from '../../components/Alert/types';
+ AlertButton,
+ Props as AlertProps,
+ AlertViewProps,
+ ConfettiProps,
+ ConfirmProps,
+} from "../../components/Alert/types";
export type Alert = {
- clearQueue: (hideDisplayedAlert?: boolean) => void;
- confirm: (alert?: ConfirmProps) => Promise;
- error: (error: Error, isFixable?: boolean) => Promise;
- getAlertData: (id: string) => AlertProps | undefined;
- hide: () => void;
- isShown: boolean;
- show: (alert: AlertProps) => Promise;
- success: (alert: AlertProps) => Promise;
- update: (id: string, alert: AlertProps) => void;
+ clearQueue: (hideDisplayedAlert?: boolean) => void;
+ confirm: (alert?: ConfirmProps) => Promise;
+ error: (error: Error, isFixable?: boolean) => Promise;
+ getAlertData: (id: string) => AlertProps | undefined;
+ hide: () => void;
+ isShown: boolean;
+ show: (alert: AlertProps) => Promise;
+ success: (alert: AlertProps) => Promise;
+ update: (id: string, alert: AlertProps) => void;
};
export type CurrentAlert = AlertProps &
- Pick &
- Pick;
+ Pick &
+ Pick;
export type { AlertProps };
export type Props = {
- animationDuration?: number;
- config?: AlertConfig;
+ animationDuration?: number;
+ config?: AlertConfig;
};
export type AlertConfig = {
- testID?: string;
- backdropBackgroundColor?: ColorValue;
- success?: Partial<
- Pick
- >;
- error?: Partial<
- Pick
- >;
- confirm?: Partial<
- Pick
- > & {
- buttons?: Pick[];
- };
- icon?: {
- size?: number;
- color?: ColorValue;
- };
- alertStyle?: StyleProp;
- confetti?: ConfettiProps;
- renderTitle?: AlertViewProps['renderTitle'];
- renderMessage?: AlertViewProps['renderMessage'];
- renderDismissButton?: AlertViewProps['renderDismissButton'];
- afterButtonsSlot?: AlertViewProps['afterButtonsSlot'];
- beforeButtonsSlot?: AlertViewProps['beforeButtonsSlot'];
- beforeMessageSlot?: AlertViewProps['beforeMessageSlot'];
- beforeTitleSlot?: AlertViewProps['beforeTitleSlot'];
- buttons?: {
- gap?: number;
- render?: AlertViewProps['renderButton'];
- default?: Pick;
- };
+ testID?: string;
+ backdropBackgroundColor?: ColorValue;
+ success?: Partial<
+ Pick
+ >;
+ error?: Partial<
+ Pick
+ >;
+ confirm?: Partial<
+ Pick
+ > & {
+ buttons?: Pick[];
+ };
+ icon?: {
+ size?: number;
+ color?: ColorValue;
+ };
+ alertStyle?: StyleProp;
+ confetti?: ConfettiProps;
+ renderTitle?: AlertViewProps["renderTitle"];
+ renderMessage?: AlertViewProps["renderMessage"];
+ renderDismissButton?: AlertViewProps["renderDismissButton"];
+ afterButtonsSlot?: AlertViewProps["afterButtonsSlot"];
+ beforeButtonsSlot?: AlertViewProps["beforeButtonsSlot"];
+ beforeMessageSlot?: AlertViewProps["beforeMessageSlot"];
+ beforeTitleSlot?: AlertViewProps["beforeTitleSlot"];
+ buttons?: {
+ gap?: number;
+ render?: AlertViewProps["renderButton"];
+ default?: Pick;
+ };
};
diff --git a/src/containers/AlertContainer/utils.ts b/src/containers/AlertContainer/utils.ts
index e4d7518..041bc0e 100644
--- a/src/containers/AlertContainer/utils.ts
+++ b/src/containers/AlertContainer/utils.ts
@@ -1,21 +1,21 @@
-import type { Props as AlertProps } from '../../components/Alert/types';
-import type { AlertConfig } from './types';
+import type { Props as AlertProps } from "../../components/Alert/types";
+import type { AlertConfig } from "./types";
export const processAlertProps = (props: AlertProps, config?: AlertConfig) => {
- const result = { ...props };
+ const result = { ...props };
- const shouldAppendOkButton = !result.buttons || !result.buttons?.length;
+ const shouldAppendOkButton = !result.buttons || !result.buttons?.length;
- if (shouldAppendOkButton) {
- result.buttons = config?.buttons?.default
- ? [config.buttons.default]
- : [
- {
- text: 'OK',
- testID: 'Alert.button.ok',
- },
- ];
- }
+ if (shouldAppendOkButton) {
+ result.buttons = config?.buttons?.default
+ ? [config.buttons.default]
+ : [
+ {
+ text: "OK",
+ testID: "Alert.button.ok",
+ },
+ ];
+ }
- return result;
+ return result;
};
diff --git a/src/containers/ConfettiContainer/index.tsx b/src/containers/ConfettiContainer/index.tsx
index 6c394b0..97f5808 100644
--- a/src/containers/ConfettiContainer/index.tsx
+++ b/src/containers/ConfettiContainer/index.tsx
@@ -1,13 +1,12 @@
-import type { FC } from 'react';
-import type { ConfettiProps } from '../../components/Alert/types';
-import { Confetti } from '../../components/Confetti';
-import { View } from 'react-native';
-import { StyleSheet } from 'react-native';
+import type { FC } from "react";
+import { StyleSheet, View } from "react-native";
+import type { ConfettiProps } from "../../components/Alert/types";
+import { Confetti } from "../../components/Confetti";
export const ConfettiContainer: FC> = (props) => {
- return (
-
-
-
- );
+ return (
+
+
+
+ );
};
diff --git a/src/hooks/useAnimation.ts b/src/hooks/useAnimation.ts
index 47f7072..4ee5915 100644
--- a/src/hooks/useAnimation.ts
+++ b/src/hooks/useAnimation.ts
@@ -1,24 +1,24 @@
-import { useEffect, useRef } from 'react';
-import { useSharedValue, withTiming } from 'react-native-reanimated';
+import { useEffect, useRef } from "react";
+import { useSharedValue, withTiming } from "react-native-reanimated";
export const useAnimation = ({
- animationDuration,
- isHiding,
+ animationDuration,
+ isHiding,
}: {
- animationDuration: number;
- isHiding: boolean;
+ animationDuration: number;
+ isHiding: boolean;
}) => {
- const animation = useSharedValue(isHiding ? 1 : 0);
- const prevIsHidingRef = useRef(null);
+ const animation = useSharedValue(isHiding ? 1 : 0);
+ const prevIsHidingRef = useRef(null);
- useEffect(() => {
- if (isHiding !== prevIsHidingRef.current) {
- animation.value = withTiming(isHiding ? 0 : 1, {
- duration: animationDuration,
- });
- }
- prevIsHidingRef.current = isHiding;
- }, [isHiding, animationDuration, animation]);
+ useEffect(() => {
+ if (isHiding !== prevIsHidingRef.current) {
+ animation.value = withTiming(isHiding ? 0 : 1, {
+ duration: animationDuration,
+ });
+ }
+ prevIsHidingRef.current = isHiding;
+ }, [isHiding, animationDuration, animation]);
- return { animation };
+ return { animation };
};
diff --git a/src/index.tsx b/src/index.tsx
index 8b1c967..8c995af 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -1,7 +1,6 @@
-export { alert } from './containers/AlertContainer/alert.api';
+export type { AlertButtonCustomProps } from "./components/Alert/types";
-export { AlertContainer } from './containers/AlertContainer';
+export { AlertContainer } from "./containers/AlertContainer";
+export { alert } from "./containers/AlertContainer/alert.api";
-export type { AlertButtonCustomProps } from './components/Alert/types';
-
-export type { AlertProps } from './containers/AlertContainer/types';
+export type { AlertProps } from "./containers/AlertContainer/types";
diff --git a/src/utils/EventEmitter.ts b/src/utils/EventEmitter.ts
index 7fd0abf..20b5da1 100644
--- a/src/utils/EventEmitter.ts
+++ b/src/utils/EventEmitter.ts
@@ -1,28 +1,30 @@
export class EventEmitter {
- private listeners: Listener[] = [];
+ private listeners: Listener[] = [];
- emit(state?: T): void {
- this.listeners.forEach((listener) => listener(state));
- }
+ emit(state?: T): void {
+ this.listeners.forEach((listener) => {
+ listener(state);
+ });
+ }
- once(listener: Listener): Unsubscribe {
- const onceWrapper = (state?: T) => {
- listener(state);
- this.off(onceWrapper);
- };
+ once(listener: Listener): Unsubscribe {
+ const onceWrapper = (state?: T) => {
+ listener(state);
+ this.off(onceWrapper);
+ };
- return this.on(onceWrapper);
- }
+ return this.on(onceWrapper);
+ }
- on(listener: Listener): Unsubscribe {
- this.listeners.push(listener);
+ on(listener: Listener): Unsubscribe {
+ this.listeners.push(listener);
- return () => this.off(listener);
- }
+ return () => this.off(listener);
+ }
- off(listener: Listener): void {
- this.listeners = this.listeners.filter((l) => l !== listener);
- }
+ off(listener: Listener): void {
+ this.listeners = this.listeners.filter((l) => l !== listener);
+ }
}
type Listener = (value?: T) => void;
diff --git a/tsconfig.build.json b/tsconfig.build.json
index 3c0636a..6999416 100644
--- a/tsconfig.build.json
+++ b/tsconfig.build.json
@@ -1,4 +1,4 @@
{
- "extends": "./tsconfig",
- "exclude": ["example", "lib"]
+ "extends": "./tsconfig",
+ "exclude": ["example", "lib"]
}
diff --git a/tsconfig.json b/tsconfig.json
index 8c124f4..12665fe 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,29 +1,29 @@
{
- "compilerOptions": {
- "rootDir": ".",
- "paths": {
- "react-native-alert-queue": ["./src/index"]
- },
- "allowUnreachableCode": false,
- "allowUnusedLabels": false,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "jsx": "react-jsx",
- "lib": ["ESNext"],
- "module": "ESNext",
- "moduleResolution": "bundler",
- "noEmit": true,
- "noFallthroughCasesInSwitch": true,
- "noImplicitReturns": true,
- "noImplicitUseStrict": false,
- "noStrictGenericChecks": false,
- "noUncheckedIndexedAccess": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "strict": true,
- "target": "ESNext",
- "verbatimModuleSyntax": true
- }
+ "compilerOptions": {
+ "rootDir": ".",
+ "paths": {
+ "react-native-alert-queue": ["./src/index"]
+ },
+ "allowUnreachableCode": false,
+ "allowUnusedLabels": false,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "jsx": "react-jsx",
+ "lib": ["ESNext"],
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "noEmit": true,
+ "noFallthroughCasesInSwitch": true,
+ "noImplicitReturns": true,
+ "noImplicitUseStrict": false,
+ "noStrictGenericChecks": false,
+ "noUncheckedIndexedAccess": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "target": "ESNext",
+ "verbatimModuleSyntax": true
+ }
}