diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index e8d9f9abba..0e686b45b0 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -82,5 +82,4 @@ jobs:
- name: Check & compile i18n
run: pnpm intl:build
- name: Run tests
- run: |
- NODE_ENV=test pnpm test --forceExit
+ run: pnpm test-ci
diff --git a/__mocks__/@gorhom/bottom-sheet.tsx b/__mocks__/@gorhom/bottom-sheet.tsx
index 87bbe7d3a8..601284f508 100644
--- a/__mocks__/@gorhom/bottom-sheet.tsx
+++ b/__mocks__/@gorhom/bottom-sheet.tsx
@@ -1,5 +1,6 @@
import React, {type ReactNode} from 'react'
import {FlatList, Modal, ScrollView, TextInput, View} from 'react-native'
+import {vi} from 'vitest'
const BottomSheetModalContext = React.createContext(null)
BottomSheetModalContext.displayName = 'BottomSheetModalContext'
@@ -33,12 +34,12 @@ const BottomSheetScrollView = (props: any) =>
const BottomSheetFlatList = (props: any) =>
const BottomSheetTextInput = (props: any) =>
-const useBottomSheet = jest.fn()
-const useBottomSheetModal = jest.fn()
-const useBottomSheetSpringConfigs = jest.fn()
-const useBottomSheetTimingConfigs = jest.fn()
-const useBottomSheetInternal = jest.fn()
-const useBottomSheetDynamicSnapPoints = jest.fn()
+const useBottomSheet = vi.fn()
+const useBottomSheetModal = vi.fn()
+const useBottomSheetSpringConfigs = vi.fn()
+const useBottomSheetTimingConfigs = vi.fn()
+const useBottomSheetInternal = vi.fn()
+const useBottomSheetDynamicSnapPoints = vi.fn()
export {useBottomSheet}
export {useBottomSheetModal}
diff --git a/__mocks__/expo-localization.js b/__mocks__/expo-localization.js
index 8bd537cf6c..e44c142c49 100644
--- a/__mocks__/expo-localization.js
+++ b/__mocks__/expo-localization.js
@@ -1 +1,3 @@
-export const getLocales = jest.fn().mockResolvedValue([])
+import {vi} from 'vitest'
+
+export const getLocales = vi.fn().mockResolvedValue([])
diff --git a/__mocks__/multiformats/cid.js b/__mocks__/multiformats/cid.js
index 788505c189..cc2a55ca68 100644
--- a/__mocks__/multiformats/cid.js
+++ b/__mocks__/multiformats/cid.js
@@ -1,3 +1,5 @@
-export const CID = jest.fn().mockImplementation(() => {
+import {vi} from 'vitest'
+
+export const CID = vi.fn().mockImplementation(() => {
return {}
})
diff --git a/__mocks__/multiformats/hashes/hasher.js b/__mocks__/multiformats/hashes/hasher.js
index a525f1310c..1dc5269fe5 100644
--- a/__mocks__/multiformats/hashes/hasher.js
+++ b/__mocks__/multiformats/hashes/hasher.js
@@ -1,6 +1,8 @@
-export const from = jest.fn().mockImplementation(() => {
+import {vi} from 'vitest'
+
+export const from = vi.fn().mockImplementation(() => {
return {
- digest: jest.fn().mockImplementation(() => {
+ digest: vi.fn().mockImplementation(() => {
return Promise.resolve('')
}),
}
diff --git a/__mocks__/sentry-expo.js b/__mocks__/sentry-expo.js
index 5a0e644e8a..19d9f2a598 100644
--- a/__mocks__/sentry-expo.js
+++ b/__mocks__/sentry-expo.js
@@ -1,3 +1,5 @@
-jest.mock('sentry-expo', () => ({
- init: () => jest.fn(),
+import {vi} from 'vitest'
+
+vi.mock('sentry-expo', () => ({
+ init: () => vi.fn(),
}))
diff --git a/__tests__/lib/async/bundle.test.ts b/__tests__/lib/async/bundle.test.ts
index 8718f54a60..77a7cff26b 100644
--- a/__tests__/lib/async/bundle.test.ts
+++ b/__tests__/lib/async/bundle.test.ts
@@ -1,3 +1,5 @@
+import {describe, expect, it} from 'vitest'
+
import {bundleAsync} from '../../../src/lib/async/bundle'
describe('bundle', () => {
diff --git a/__tests__/lib/email.test.ts b/__tests__/lib/email.test.ts
index 4dfda658f7..65ace20ff9 100644
--- a/__tests__/lib/email.test.ts
+++ b/__tests__/lib/email.test.ts
@@ -1,4 +1,4 @@
-import {describe, expect, it} from '@jest/globals'
+import {describe, expect, it} from 'vitest'
import tldts from 'tldts'
import {isEmailMaybeInvalid} from '#/lib/strings/email'
diff --git a/__tests__/lib/errors.test.ts b/__tests__/lib/errors.test.ts
index e721396845..ed481b0e9a 100644
--- a/__tests__/lib/errors.test.ts
+++ b/__tests__/lib/errors.test.ts
@@ -1,3 +1,5 @@
+import {describe, expect, it} from 'vitest'
+
import {isNetworkError} from '../../src/lib/strings/errors'
describe('isNetworkError', () => {
diff --git a/__tests__/lib/images.test.ts b/__tests__/lib/images.test.ts
index afe47c2793..e18ef8996c 100644
--- a/__tests__/lib/images.test.ts
+++ b/__tests__/lib/images.test.ts
@@ -1,5 +1,6 @@
import {createDownloadResumable, deleteAsync} from 'expo-file-system/legacy'
import {manipulateAsync, SaveFormat} from 'expo-image-manipulator'
+import {afterEach, beforeEach, describe, expect, it, type Mock, vi} from 'vitest'
import {
downloadAndResize,
@@ -16,10 +17,10 @@ const mockResizedImage = {
}
describe('downloadAndResize', () => {
- const errorSpy = jest.spyOn(global.console, 'error')
+ const errorSpy = vi.spyOn(global.console, 'error')
beforeEach(() => {
- const mockedCreateResizedImage = manipulateAsync as jest.Mock
+ const mockedCreateResizedImage = manipulateAsync as Mock
mockedCreateResizedImage.mockResolvedValue({
uri: 'file://resized-image.jpg',
...mockResizedImage,
@@ -27,13 +28,13 @@ describe('downloadAndResize', () => {
})
afterEach(() => {
- jest.clearAllMocks()
+ vi.clearAllMocks()
})
it('should return resized image for valid URI and options', async () => {
- const mockedFetch = createDownloadResumable as jest.Mock
+ const mockedFetch = createDownloadResumable as Mock
mockedFetch.mockReturnValue({
- cancelAsync: jest.fn(),
+ cancelAsync: vi.fn(),
downloadAsync: jest
.fn()
.mockResolvedValue({uri: 'file://resized-image.jpg'}),
diff --git a/__tests__/lib/link-meta.test.ts b/__tests__/lib/link-meta.test.ts
index bcd3acff47..d7b961c731 100644
--- a/__tests__/lib/link-meta.test.ts
+++ b/__tests__/lib/link-meta.test.ts
@@ -1,3 +1,5 @@
+import {describe, expect, it} from 'vitest'
+
import {getLikelyType, LikelyType} from '../../src/lib/link-meta/link-meta'
describe('getLikelyType', () => {
diff --git a/__tests__/lib/numbers.test.ts b/__tests__/lib/numbers.test.ts
index be92d6c0f6..6f89052774 100644
--- a/__tests__/lib/numbers.test.ts
+++ b/__tests__/lib/numbers.test.ts
@@ -1,3 +1,5 @@
+import {describe, expect, it} from 'vitest'
+
import {clamp} from '../../src/lib/numbers'
describe('clamp', () => {
diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts
index 8a56423796..18f2010072 100644
--- a/__tests__/lib/string.test.ts
+++ b/__tests__/lib/string.test.ts
@@ -1,5 +1,6 @@
import {RichText} from '@atproto/api'
import {i18n} from '@lingui/core'
+import {describe, expect, it} from 'vitest'
import {parseEmbedPlayerFromUrl} from '#/lib/strings/embed-player'
import {
diff --git a/__tests__/lib/strings/handles.test.ts b/__tests__/lib/strings/handles.test.ts
index f3b289afdf..2bdb4023c3 100644
--- a/__tests__/lib/strings/handles.test.ts
+++ b/__tests__/lib/strings/handles.test.ts
@@ -1,3 +1,5 @@
+import {describe, expect, it} from 'vitest'
+
import {type IsValidHandle, validateServiceHandle} from '#/lib/strings/handles'
describe('handle validation', () => {
diff --git a/__tests__/lib/strings/mention-manip.test.ts b/__tests__/lib/strings/mention-manip.test.ts
index ece69e195e..7b136a2efe 100644
--- a/__tests__/lib/strings/mention-manip.test.ts
+++ b/__tests__/lib/strings/mention-manip.test.ts
@@ -1,3 +1,5 @@
+import {describe, expect, it} from 'vitest'
+
import {
getMentionAt,
insertMentionAt,
diff --git a/__tests__/lib/strings/url-helpers.test.ts b/__tests__/lib/strings/url-helpers.test.ts
index 0b1b750281..cfd8861afc 100644
--- a/__tests__/lib/strings/url-helpers.test.ts
+++ b/__tests__/lib/strings/url-helpers.test.ts
@@ -1,4 +1,4 @@
-import {describe, expect, it} from '@jest/globals'
+import {describe, expect, it} from 'vitest'
import {
isPossiblyAUrl,
diff --git a/babel.config.js b/babel.config.js
index 63afeb3769..66e03926ce 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -1,6 +1,5 @@
module.exports = function (api) {
api.cache(true)
- const isTestEnv = process.env.NODE_ENV === 'test'
return {
presets: [
[
@@ -9,8 +8,7 @@ module.exports = function (api) {
lazyImports: true,
native: {
// Disable ESM -> CJS compilation because Metro takes care of it.
- // However, we need it in Jest tests since those run without Metro.
- disableImportExportTransform: !isTestEnv,
+ disableImportExportTransform: true,
},
},
],
diff --git a/eslint/__tests__/avoid-unwrapped-text.test.js b/eslint/__tests__/avoid-unwrapped-text.test.js
index 52138b334a..bc303fe933 100644
--- a/eslint/__tests__/avoid-unwrapped-text.test.js
+++ b/eslint/__tests__/avoid-unwrapped-text.test.js
@@ -1,6 +1,12 @@
-const {RuleTester} = require('eslint')
-const tseslint = require('typescript-eslint')
-const avoidUnwrappedText = require('../avoid-unwrapped-text')
+import {RuleTester} from 'eslint'
+import tseslint from 'typescript-eslint'
+import {describe, it} from 'vitest'
+
+import avoidUnwrappedText from '../avoid-unwrapped-text.js'
+
+RuleTester.describe = describe
+RuleTester.it = it
+RuleTester.itOnly = it.only
const ruleTester = new RuleTester({
languageOptions: {
diff --git a/eslint/__tests__/lingui-msg-rule.test.js b/eslint/__tests__/lingui-msg-rule.test.js
index 74c94f4142..5bc29938cd 100644
--- a/eslint/__tests__/lingui-msg-rule.test.js
+++ b/eslint/__tests__/lingui-msg-rule.test.js
@@ -1,6 +1,12 @@
-const {RuleTester} = require('eslint')
-const tseslint = require('typescript-eslint')
-const linguiMsgRule = require('../lingui-msg-rule')
+import {RuleTester} from 'eslint'
+import tseslint from 'typescript-eslint'
+import {describe, it} from 'vitest'
+
+import linguiMsgRule from '../lingui-msg-rule.js'
+
+RuleTester.describe = describe
+RuleTester.it = it
+RuleTester.itOnly = it.only
const ruleTester = new RuleTester({
languageOptions: {
diff --git a/jest/jestSetup.js b/jest/jestSetup.js
deleted file mode 100644
index 73a509d036..0000000000
--- a/jest/jestSetup.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/* global jest */
-import 'react-native-gesture-handler/jestSetup'
-
-import {configure} from '@testing-library/react-native'
-
-configure({asyncUtilTimeout: 20000})
-
-jest.mock('@react-native-async-storage/async-storage', () =>
- require('@react-native-async-storage/async-storage/jest/async-storage-mock'),
-)
-jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter', () => {
- // eslint-disable-next-line import-x/no-nodejs-modules
- const {EventEmitter} = require('events')
- return {
- __esModule: true,
- default: EventEmitter,
- }
-})
-
-jest.mock('@fortawesome/react-native-fontawesome', () => ({
- FontAwesomeIcon: '',
-}))
-
-jest.mock('react-native-safe-area-context', () => {
- const inset = {top: 0, right: 0, bottom: 0, left: 0}
- return {
- SafeAreaProvider: jest.fn().mockImplementation(({children}) => children),
- SafeAreaConsumer: jest
- .fn()
- .mockImplementation(({children}) => children(inset)),
- useSafeAreaInsets: jest.fn().mockImplementation(() => inset),
- }
-})
-
-jest.mock('expo-file-system/legacy', () => ({
- getInfoAsync: jest.fn().mockResolvedValue({exists: true, size: 100}),
- deleteAsync: jest.fn(),
- moveAsync: jest.fn().mockResolvedValue(undefined),
- createDownloadResumable: jest.fn(),
-}))
-
-jest.mock('expo-image-manipulator', () => ({
- manipulateAsync: jest.fn().mockResolvedValue({
- uri: 'file://resized-image',
- }),
- SaveFormat: {
- JPEG: 'jpeg',
- WEBP: 'webp',
- },
-}))
-
-jest.mock('expo-camera', () => ({
- Camera: {
- useCameraPermissions: jest.fn(() => [true]),
- },
-}))
-
-jest.mock('expo-media-library', () => ({
- __esModule: true, // this property makes it work
- default: jest.fn(),
- usePermissions: jest.fn(() => [true]),
-}))
-
-jest.mock('@bsky.app/expo-guess-language', () => ({
- guessLanguageSync: jest
- .fn()
- .mockReturnValue([{language: 'en', confidence: 1}]),
- guessLanguageAsync: jest
- .fn()
- .mockResolvedValue([{language: 'en', confidence: 1}]),
-}))
-
-jest.mock('sentry-expo', () => ({
- init: () => jest.fn(),
- Native: {
- ReactNativeTracing: jest.fn().mockImplementation(() => ({
- start: jest.fn(),
- stop: jest.fn(),
- })),
- ReactNavigationInstrumentation: jest.fn(),
- },
-}))
-
-jest.mock('crypto', () => ({}))
-
-jest.mock('expo-application', () => ({
- nativeApplicationVersion: '1.0.0',
- nativeBuildVersion: '1',
-}))
-
-jest.mock('expo-modules-core', () => ({
- requireNativeModule: jest.fn().mockImplementation(moduleName => {
- if (moduleName === 'ExpoPlatformInfo') {
- return {
- getIsReducedMotionEnabled: () => false,
- }
- }
- if (moduleName === 'BottomSheet') {
- return {
- dismissAll: () => {},
- }
- }
- }),
- requireNativeViewManager: jest.fn().mockImplementation(_ => {
- return () => null
- }),
- createPermissionHook: () => () => [true],
-}))
-
-jest.mock('expo-localization', () => ({
- getLocales: () => [],
-}))
diff --git a/package.json b/package.json
index 72f0aa48f1..ec12104848 100644
--- a/package.json
+++ b/package.json
@@ -44,10 +44,10 @@
"build-embed": "cd bskyembed && yarn build && yarn build-snippet && cd .. && node ./scripts/post-embed-build.js",
"start": "expo start --dev-client",
"start:prod": "expo start --dev-client --no-dev --minify",
- "test": "NODE_ENV=test jest --forceExit --testTimeout=20000 --bail",
- "test-watch": "NODE_ENV=test jest --watchAll",
- "test-ci": "NODE_ENV=test jest --ci --forceExit --reporters=default --reporters=jest-junit",
- "test-coverage": "NODE_ENV=test jest --coverage",
+ "test": "NODE_ENV=test vitest run --bail=1",
+ "test-watch": "NODE_ENV=test vitest",
+ "test-ci": "NODE_ENV=test vitest run --reporter=default --reporter=junit --outputFile.junit=./junit.xml",
+ "test-coverage": "NODE_ENV=test vitest run --coverage",
"lint": "eslint --cache --quiet src",
"lint-native": "swiftlint ./modules && ktlint ./modules",
"lint-native:fix": "swiftlint --fix ./modules && ktlint --format ./modules",
@@ -226,7 +226,7 @@
"react-native-uitextview": "^1.4.0",
"react-native-uuid": "^2.0.3",
"react-native-view-shot": "^4.0.3",
- "react-native-web": "^0.21.0",
+ "react-native-web": "^0.21.2",
"react-native-web-webview": "^1.0.2",
"react-native-webview": "^13.15.0",
"react-remove-scroll-bar": "^2.3.8",
@@ -250,12 +250,11 @@
"@eslint/js": "^9.39.2",
"@lingui/babel-plugin-lingui-macro": "^5.9.2",
"@lingui/cli": "^5.9.2",
+ "@lingui/vite-plugin": "^6.0.1",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
"@react-native/babel-preset": "0.81.5",
"@react-native/typescript-config": "^0.81.5",
"@sentry/webpack-plugin": "^3.2.2",
- "@testing-library/react-native": "^13.2.0",
- "@types/jest": "29.5.14",
"@types/lodash.chunk": "^4.2.7",
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.shuffle": "^4.2.7",
@@ -263,7 +262,7 @@
"@types/react": "^19.1.17",
"@types/react-dom": "^19.1.11",
"@typescript/native-preview": "^7.0.0-dev.20260428.1",
- "babel-jest": "^29.7.0",
+ "@vitest/coverage-v8": "^4.0.0",
"babel-plugin-module-resolver": "^5.0.2",
"babel-plugin-react-compiler": "19.1.0-rc.3",
"babel-preset-expo": "~54.0.10",
@@ -282,9 +281,6 @@
"globals": "^17.0.0",
"husky": "^8.0.3",
"is-ci": "^3.0.1",
- "jest": "^29.7.0",
- "jest-expo": "~54.0.17",
- "jest-junit": "^16.0.0",
"lint-staged": "^13.2.3",
"prettier": "^3.8.3",
"react-native-dotenv": "^3.4.11",
@@ -293,45 +289,9 @@
"ts-plugin-sort-import-suggestions": "^1.0.4",
"typescript": "^6.0.2",
"typescript-eslint": "^8.58.0",
+ "vitest": "^4.0.0",
"webpack-bundle-analyzer": "^4.10.1"
},
- "jest": {
- "preset": "jest-expo/ios",
- "setupFilesAfterEnv": [
- "./jest/jestSetup.js"
- ],
- "moduleFileExtensions": [
- "ts",
- "tsx",
- "js",
- "jsx",
- "json",
- "node"
- ],
- "transform": {
- "\\.[jt]sx?$": "babel-jest"
- },
- "transformIgnorePatterns": [
- "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|@discord|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|nanoid|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|normalize-url|react-native-svg|@sentry/.*|sentry-expo|bcp-47-match)"
- ],
- "modulePathIgnorePatterns": [
- "__tests__/.*/__mocks__",
- "__e2e__/.*",
- "bskylink/.*"
- ],
- "coveragePathIgnorePatterns": [
- "/node_modules/",
- "/src/platform",
- "/src/third-party",
- "/src/view/com/util",
- "/src/state/lib",
- "/__tests__/test-utils.js"
- ],
- "reporters": [
- "default",
- "jest-junit"
- ]
- },
"browserslist": {
"production": [
">0.2%",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9106ab6211..787875cd4f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -479,7 +479,7 @@ importers:
specifier: ^4.0.3
version: 4.0.3(patch_hash=a2457dc30a82cc8c21f371a6f860d9396d450a2a1b4265b1a4ee13bdb24d3268)(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(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-web-webview:
specifier: ^1.0.2
@@ -545,6 +545,9 @@ importers:
'@lingui/cli':
specifier: ^5.9.2
version: 5.9.5(typescript@6.0.3)
+ '@lingui/vite-plugin':
+ specifier: ^6.0.1
+ version: 6.0.1(@babel/core@7.29.0)(@lingui/babel-plugin-lingui-macro@5.9.5(typescript@6.0.3))(rolldown@1.0.1)(vite@8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0))
'@pmmmwh/react-refresh-webpack-plugin':
specifier: ^0.5.15
version: 0.5.17(react-refresh@0.14.2)(type-fest@1.4.0)(webpack-dev-server@4.15.2(webpack@5.106.2(postcss@8.5.14)))(webpack@5.106.2(postcss@8.5.14))
@@ -557,12 +560,6 @@ importers:
'@sentry/webpack-plugin':
specifier: ^3.2.2
version: 3.6.1(webpack@5.106.2(postcss@8.5.14))
- '@testing-library/react-native':
- specifier: ^13.2.0
- version: 13.3.3(jest@29.7.0(@types/node@24.12.4))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)
- '@types/jest':
- specifier: 29.5.14
- version: 29.5.14
'@types/lodash.chunk':
specifier: ^4.2.7
version: 4.2.9
@@ -584,9 +581,9 @@ importers:
'@typescript/native-preview':
specifier: ^7.0.0-dev.20260428.1
version: 7.0.0-dev.20260512.1
- babel-jest:
- specifier: ^29.7.0
- version: 29.7.0(@babel/core@7.29.0)
+ '@vitest/coverage-v8':
+ specifier: ^4.0.0
+ version: 4.1.6(vitest@4.1.6)
babel-plugin-module-resolver:
specifier: ^5.0.2
version: 5.0.3
@@ -641,15 +638,6 @@ importers:
is-ci:
specifier: ^3.0.1
version: 3.0.1
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@24.12.4)
- jest-expo:
- specifier: ~54.0.17
- version: 54.0.17(@babel/core@7.29.0)(expo@54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@24.12.4))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- jest-junit:
- specifier: ^16.0.0
- version: 16.0.0
lint-staged:
specifier: ^13.2.3
version: 13.3.0
@@ -674,6 +662,9 @@ importers:
typescript-eslint:
specifier: ^8.58.0
version: 8.59.3(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)
+ vitest:
+ specifier: ^4.0.0
+ version: 4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(vite@8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0))
webpack-bundle-analyzer:
specifier: ^4.10.1
version: 4.10.2
@@ -1413,8 +1404,9 @@ packages:
resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
engines: {node: '>=6.9.0'}
- '@bcoe/v8-coverage@0.2.3':
- resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+ '@bcoe/v8-coverage@1.0.2':
+ resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==}
+ engines: {node: '>=18'}
'@bitdrift/react-native@0.6.14':
resolution: {integrity: sha512-thZIjkosyi7mru7NAP3Ie4a/84EJPf1YROUCuZ81NWSJv+fWLvEp4KfuVCJj265bkdFgRVB/JIqKPhbiC16SMw==}
@@ -1487,6 +1479,10 @@ packages:
react: '*'
react-native: '*'
+ '@colors/colors@1.5.0':
+ resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
+ engines: {node: '>=0.1.90'}
+
'@crowdin/cli@4.14.2':
resolution: {integrity: sha512-JRrHvitc0w+r/h6XXSOq917HxsjRoxPEtyNYSmylKirjiPNrRx84VKtqFlOIWIFCOZI5BoXg6hNpE0Zq7CwVBA==}
hasBin: true
@@ -1989,80 +1985,22 @@ packages:
resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==}
engines: {node: '>=8'}
- '@jest/console@29.7.0':
- resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.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:
- node-notifier:
- optional: true
-
'@jest/create-cache-key-function@29.7.0':
resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/diff-sequences@30.4.0':
- resolution: {integrity: sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==}
- 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/expect-utils@29.7.0':
- resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.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/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@29.7.0':
- resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.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:
- node-notifier:
- optional: true
-
'@jest/schemas@29.6.3':
resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/schemas@30.4.1':
- resolution: {integrity: sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==}
- 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@29.7.0':
- resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.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}
@@ -2097,6 +2035,10 @@ packages:
resolution: {integrity: sha512-XOAXMPOkpy45784q5bCNN5PizoAecxkBm8kv8CEusI/f9kR3vMCcpH4kvSchU05JkKAVE8eIsdxb2zM6eDJTeA==}
engines: {node: '>=20.0.0'}
+ '@lingui/babel-plugin-extract-messages@6.0.1':
+ resolution: {integrity: sha512-E9quPJxYZFz2f1t8lRyPILWKrqrUI32EYBQMjC9CcneKh9ZLtvm7K1IAM+tPMYW5BDDqlXIVr8XHhGrkv/3OSA==}
+ engines: {node: '>=22.19.0'}
+
'@lingui/babel-plugin-lingui-macro@5.9.5':
resolution: {integrity: sha512-TDIrOa2hAz8kXrZ0JfMGaIiFIE4TEdqI2he4OpkTSCfBh3ec/gSCn1kNW5HdviO7x46Gvy567YOgHNOI9/e4Fg==}
engines: {node: '>=20.0.0'}
@@ -2106,15 +2048,28 @@ packages:
babel-plugin-macros:
optional: true
+ '@lingui/babel-plugin-lingui-macro@6.0.1':
+ resolution: {integrity: sha512-ZVsi04ZeqkvOfLn+fVZPEv6//SKHvrJlD+T0oJWDdymMKQVGsuFUSHFq3eFBpKilPMzYSCCj0wHgmljdUQionw==}
+ engines: {node: '>=22.19.0'}
+
'@lingui/cli@5.9.5':
resolution: {integrity: sha512-gonY7U75nzKic8GvEciy1/otQv1WpfwGW5wGMjmBXUMaMnIsycm/wo3t0+2hzqFp+RNfEKZcScoM7aViK3XuLQ==}
engines: {node: '>=20.0.0'}
hasBin: true
+ '@lingui/cli@6.0.1':
+ resolution: {integrity: sha512-xojK0f0JjgcZArNU4m3vydhG+ngQOxbovV8wDav3TT1R8PXSvKrmGfCoPffQczpbl86/0NOSdvteN8Da5MQlqg==}
+ engines: {node: '>=22.19.0'}
+ hasBin: true
+
'@lingui/conf@5.9.5':
resolution: {integrity: sha512-k5r9ssOZirhS5BlqdsK5L0rzlqnHeryoJHAQIpUpeh8g5ymgpbUN7L4+4C4hAX/tddAFiCFN8boHTiu6Wbt83Q==}
engines: {node: '>=20.0.0'}
+ '@lingui/conf@6.0.1':
+ resolution: {integrity: sha512-6NJIOTh7Pt1MXMNkUsxjA6tlKX7LB1QLh/A5H3a1SmZTSZgcbes/BvF4lEh7zAfhNIU5A5Y8PljX+n4fBGO7Hg==}
+ engines: {node: '>=22.19.0'}
+
'@lingui/core@5.9.5':
resolution: {integrity: sha512-Y+iZq9NqnqZOqHNgPomUFP21KH/zs4oTTizWoz0AKAkBbq9T9yb1DSz/ugtBRjF1YLtKMF9tq28v3thMHANSiQ==}
engines: {node: '>=20.0.0'}
@@ -2127,14 +2082,31 @@ packages:
babel-plugin-macros:
optional: true
+ '@lingui/core@6.0.1':
+ resolution: {integrity: sha512-3dtvQmPv7qpu6j4SwX8h/TQu3ADujdw9/ZV3qb6OwsYa0AhBUPaydVGOEDvkNA7v/fQh6CNUc6qqZrBbDBvdHA==}
+ engines: {node: '>=22.19.0'}
+ peerDependencies:
+ babel-plugin-macros: 2 || 3
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+
'@lingui/format-po@5.9.5':
resolution: {integrity: sha512-abawxkaEMhAUCqxrnim2NTTeu2gd55X9tkFN8jfRM0B1LE2KjZLWCA8gSD90J/DblDwej8jK8A2BynXlcQdluQ==}
engines: {node: '>=20.0.0'}
+ '@lingui/format-po@6.0.1':
+ resolution: {integrity: sha512-kt3naP/2kpAPJ4dwwFnkhbvR5XkGaNdbK8W6ofpIJFhY3MvGZJ9rYY0KMp++3DAaXf7r6tHq0W0To3akSDejvg==}
+ engines: {node: '>=22.19.0'}
+
'@lingui/message-utils@5.9.5':
resolution: {integrity: sha512-t3dNbjb1dWkvcpXGMXIEyBDO3l4B8J2ColZXi0NTG1ioAj+sDfFxFB8fepVgd3JAk+AwARlOLvF14oS0mAdgpw==}
engines: {node: '>=20.0.0'}
+ '@lingui/message-utils@6.0.1':
+ resolution: {integrity: sha512-cw1X5mqDODbYDkwvA9i6/4j7Ix0ptl+E9RfhBRLI2NsoLzHHX+ePryGkShFdUHYsDL+C9qkq8W0drgRVEl9LgA==}
+ engines: {node: '>=22.19.0'}
+
'@lingui/react@5.9.5':
resolution: {integrity: sha512-jzYoA/f4jrTfpOB+jrMhlC835UwqSXJdepr7cfWsmg+Rpp3HBSREtfrogaz1LqLI/AVnkmfp10Mo6VOp/8qeOQ==}
engines: {node: '>=20.0.0'}
@@ -2148,6 +2120,28 @@ packages:
babel-plugin-macros:
optional: true
+ '@lingui/vite-plugin@6.0.1':
+ resolution: {integrity: sha512-RgHkaC76p8NLj2DqA4JqC1/+pFIZWSkv4dJm/D8O+GSoJlst7WMl4h08qpPpAdTKgZpDZB8d22O6ejFohe6PTw==}
+ engines: {node: '>=22.19.0'}
+ peerDependencies:
+ '@babel/core': ^7.29.0 || ^8.0.0-rc.1
+ '@lingui/babel-plugin-lingui-macro': ^5 || ^6
+ '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0
+ rolldown: ^1.0.0-rc.5
+ vite: ^6.3.0 || ^7 || ^8
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ '@lingui/babel-plugin-lingui-macro':
+ optional: true
+ '@rolldown/plugin-babel':
+ optional: true
+ rolldown:
+ optional: true
+
+ '@messageformat/date-skeleton@1.1.0':
+ resolution: {integrity: sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==}
+
'@messageformat/parser@5.1.1':
resolution: {integrity: sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==}
@@ -2167,6 +2161,12 @@ packages:
'@napi-rs/wasm-runtime@0.2.12':
resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
+ '@napi-rs/wasm-runtime@1.1.4':
+ resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==}
+ peerDependencies:
+ '@emnapi/core': ^1.7.1
+ '@emnapi/runtime': ^1.7.1
+
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -2179,6 +2179,9 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
+ '@oxc-project/types@0.130.0':
+ resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==}
+
'@package-json/types@0.0.12':
resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==}
@@ -3025,6 +3028,104 @@ packages:
'@remirror/core-constants@3.0.0':
resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
+ '@rolldown/binding-android-arm64@1.0.1':
+ resolution: {integrity: sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [android]
+
+ '@rolldown/binding-darwin-arm64@1.0.1':
+ resolution: {integrity: sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rolldown/binding-darwin-x64@1.0.1':
+ resolution: {integrity: sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rolldown/binding-freebsd-x64@1.0.1':
+ resolution: {integrity: sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.1':
+ resolution: {integrity: sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@rolldown/binding-linux-arm64-gnu@1.0.1':
+ resolution: {integrity: sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-arm64-musl@1.0.1':
+ resolution: {integrity: sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@rolldown/binding-linux-ppc64-gnu@1.0.1':
+ resolution: {integrity: sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-s390x-gnu@1.0.1':
+ resolution: {integrity: sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-x64-gnu@1.0.1':
+ resolution: {integrity: sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@rolldown/binding-linux-x64-musl@1.0.1':
+ resolution: {integrity: sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@rolldown/binding-openharmony-arm64@1.0.1':
+ resolution: {integrity: sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rolldown/binding-wasm32-wasi@1.0.1':
+ resolution: {integrity: sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [wasm32]
+
+ '@rolldown/binding-win32-arm64-msvc@1.0.1':
+ resolution: {integrity: sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rolldown/binding-win32-x64-msvc@1.0.1':
+ resolution: {integrity: sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@rolldown/pluginutils@1.0.1':
+ resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
+
'@sentry-internal/browser-utils@8.55.0':
resolution: {integrity: sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==}
engines: {node: '>=14.18'}
@@ -3206,15 +3307,15 @@ packages:
'@sinclair/typebox@0.27.10':
resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==}
- '@sinclair/typebox@0.34.49':
- resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==}
-
'@sinonjs/commons@3.0.1':
resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
'@sinonjs/fake-timers@10.3.0':
resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
+ '@standard-schema/spec@1.1.0':
+ resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
+
'@tanstack/query-async-storage-persister@5.100.10':
resolution: {integrity: sha512-NbxsCI9qyMbEooFnFsAR2dbVQ6cmxZpOWSjLFy62qfMkxXnNjkskqex7YgtzWSaD/ozOOLgrbDiyYWEPYKmMyQ==}
@@ -3235,18 +3336,6 @@ packages:
peerDependencies:
react: ^18 || ^19
- '@testing-library/react-native@13.3.3':
- resolution: {integrity: sha512-k6Mjsd9dbZgvY4Bl7P1NIpePQNi+dfYtlJ5voi9KQlynxSyQkfOgJmYGCYmw/aSgH/rUcFvG8u5gd4npzgRDyg==}
- engines: {node: '>=18'}
- peerDependencies:
- jest: '>=29.0.0'
- react: '>=18.2.0'
- react-native: '>=0.71'
- react-test-renderer: '>=18.2.0'
- peerDependenciesMeta:
- jest:
- optional: true
-
'@tiptap/core@2.27.2':
resolution: {integrity: sha512-ABL1N6eoxzDzC1bYvkMbvyexHacszsKdVPYqhl5GwHLOvpZcv9VE9QaKwDILTyz5voCA0lGcAAXZp+qnXOk5lQ==}
peerDependencies:
@@ -3326,10 +3415,6 @@ packages:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tootallnate/once@2.0.1':
- resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==}
- engines: {node: '>= 10'}
-
'@tybys/wasm-util@0.10.2':
resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==}
@@ -3351,12 +3436,18 @@ packages:
'@types/bonjour@3.5.13':
resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==}
+ '@types/chai@5.2.3':
+ resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
+
'@types/connect-history-api-fallback@1.5.4':
resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==}
'@types/connect@3.4.38':
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+ '@types/deep-eql@4.0.2':
+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
@@ -3405,12 +3496,6 @@ packages:
'@types/istanbul-reports@3.0.4':
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
- '@types/jest@29.5.14':
- resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
-
- '@types/jsdom@20.0.1':
- resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
-
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -3489,9 +3574,6 @@ packages:
'@types/stack-utils@2.0.3':
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
- '@types/tough-cookie@4.0.5':
- resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
-
'@types/use-sync-external-store@0.0.6':
resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
@@ -3724,6 +3806,44 @@ packages:
peerDependencies:
'@urql/core': ^5.0.0
+ '@vitest/coverage-v8@4.1.6':
+ resolution: {integrity: sha512-36l628fQ/9a/8ihy97eOtEnvWQEdqULQOJtcaxtoNq0G1w3Mxd4szSahOaMM9/NGyZ+hyKcMtIW/WIxq0XQViQ==}
+ peerDependencies:
+ '@vitest/browser': 4.1.6
+ vitest: 4.1.6
+ peerDependenciesMeta:
+ '@vitest/browser':
+ optional: true
+
+ '@vitest/expect@4.1.6':
+ resolution: {integrity: sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==}
+
+ '@vitest/mocker@4.1.6':
+ resolution: {integrity: sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
+ '@vitest/pretty-format@4.1.6':
+ resolution: {integrity: sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==}
+
+ '@vitest/runner@4.1.6':
+ resolution: {integrity: sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==}
+
+ '@vitest/snapshot@4.1.6':
+ resolution: {integrity: sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==}
+
+ '@vitest/spy@4.1.6':
+ resolution: {integrity: sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==}
+
+ '@vitest/utils@4.1.6':
+ resolution: {integrity: sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==}
+
'@webassemblyjs/ast@1.14.1':
resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
@@ -3795,9 +3915,6 @@ packages:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
- acorn-globals@7.0.1:
- resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
-
acorn-import-phases@1.0.4:
resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==}
engines: {node: '>=10.13.0'}
@@ -3869,10 +3986,6 @@ packages:
resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==}
engines: {node: '>=12'}
- ansi-escapes@6.2.1:
- resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==}
- engines: {node: '>=14.16'}
-
ansi-html-community@0.0.8:
resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
engines: {'0': node >= 0.8.0}
@@ -3983,9 +4096,16 @@ packages:
assert@2.1.0:
resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
+
ast-types-flow@0.0.7:
resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
+ ast-v8-to-istanbul@1.0.0:
+ resolution: {integrity: sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==}
+
async-function@1.0.0:
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
engines: {node: '>= 0.4'}
@@ -3993,9 +4113,6 @@ packages:
async-limiter@1.0.1:
resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
- asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
-
available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
@@ -4230,14 +4347,14 @@ packages:
resolution: {integrity: sha512-BDbSRIp6XrQXkTc7g+DN0RB9RrDPTUfals2ecWUlt3juPLjbAvy/V72mJcXY0Ehu0Dq/3WpNCOCT68HUTbW+lw==}
hasBin: true
+ chai@6.2.2:
+ resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
+ engines: {node: '>=18'}
+
chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
- chalk@3.0.0:
- resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
- engines: {node: '>=8'}
-
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
@@ -4246,13 +4363,9 @@ packages:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
- char-regex@1.0.2:
- resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
- engines: {node: '>=10'}
-
- char-regex@2.0.2:
- resolution: {integrity: sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==}
- engines: {node: '>=12.20'}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
chokidar@3.5.1:
resolution: {integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==}
@@ -4262,6 +4375,10 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
+ chokidar@5.0.0:
+ resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
+ engines: {node: '>= 20.19.0'}
+
chownr@3.0.0:
resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
engines: {node: '>=18'}
@@ -4285,9 +4402,6 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
- cjs-module-lexer@1.4.3:
- resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==}
-
clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
@@ -4310,10 +4424,22 @@ packages:
resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ cli-cursor@5.0.0:
+ resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
+ engines: {node: '>=18'}
+
cli-spinners@2.9.2:
resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
engines: {node: '>=6'}
+ cli-spinners@3.4.0:
+ resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==}
+ engines: {node: '>=18.20'}
+
+ cli-table3@0.6.5:
+ resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==}
+ engines: {node: 10.* || >= 12.*}
+
cli-table@0.3.11:
resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==}
engines: {node: '>= 0.2.0'}
@@ -4333,13 +4459,6 @@ packages:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
- co@4.6.0:
- resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
- engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
-
- collect-v8-coverage@1.0.3:
- resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==}
-
color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
@@ -4370,10 +4489,6 @@ packages:
resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
engines: {node: '>=0.1.90'}
- combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
-
command-exists-promise@2.0.2:
resolution: {integrity: sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA==}
engines: {node: '>=6'}
@@ -4390,6 +4505,10 @@ packages:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
+ commander@14.0.3:
+ resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
+ engines: {node: '>=20'}
+
commander@2.20.0:
resolution: {integrity: sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==}
@@ -4476,11 +4595,6 @@ 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
-
crelt@1.0.6:
resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
@@ -4590,23 +4704,9 @@ packages:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
- cssom@0.3.8:
- resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
-
- cssom@0.5.0:
- resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
-
- cssstyle@2.3.0:
- resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
- engines: {node: '>=8'}
-
csstype@3.2.3:
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
- data-urls@3.0.2:
- resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
- engines: {node: '>=12'}
-
data-view-buffer@1.0.2:
resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
engines: {node: '>= 0.4'}
@@ -4674,14 +4774,6 @@ packages:
resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
engines: {node: '>=0.10'}
- dedent@1.7.2:
- resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==}
- peerDependencies:
- babel-plugin-macros: ^3.1.0
- peerDependenciesMeta:
- babel-plugin-macros:
- optional: true
-
deep-extend@0.6.0:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
@@ -4716,10 +4808,6 @@ packages:
resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==}
engines: {node: '>=6'}
- delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
-
depd@1.1.2:
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
engines: {node: '>= 0.6'}
@@ -4740,20 +4828,12 @@ packages:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
- detect-newline@3.1.0:
- resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
- engines: {node: '>=8'}
-
detect-node-es@1.1.0:
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
detect-node@2.1.0:
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
- diff-sequences@29.6.3:
- resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
dijkstrajs@1.0.3:
resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==}
@@ -4785,11 +4865,6 @@ packages:
domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
- domexception@4.0.0:
- resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
- engines: {node: '>=12'}
- deprecated: Use your platform's native DOMException instead
-
domhandler@4.3.1:
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'}
@@ -4839,10 +4914,6 @@ packages:
resolution: {integrity: sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==}
engines: {node: '>4.0'}
- emittery@0.13.1:
- resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
- engines: {node: '>=12'}
-
emoji-mart@5.6.0:
resolution: {integrity: sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==}
@@ -4882,10 +4953,6 @@ packages:
resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==}
engines: {node: '>=0.12'}
- entities@6.0.1:
- resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
- engines: {node: '>=0.12'}
-
env-editor@0.4.2:
resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==}
engines: {node: '>=8'}
@@ -4955,11 +5022,6 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- escodegen@2.1.0:
- resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
- engines: {node: '>=6.0'}
- hasBin: true
-
eslint-import-context@0.1.9:
resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
@@ -5098,6 +5160,9 @@ packages:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
+ estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+
esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
@@ -5128,13 +5193,9 @@ packages:
resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
- exit@0.1.2:
- resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
- engines: {node: '>= 0.8.0'}
-
- expect@29.7.0:
- resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ expect-type@1.3.0:
+ resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
+ engines: {node: '>=12.0.0'}
expo-application@7.0.8:
resolution: {integrity: sha512-qFGyxk7VJbrNOQWBbE09XUuGuvkOgFS9QfToaK2FdagM2aQ+x3CvGV2DuVgl/l4ZxPgIf3b/MNh9xHpwSwn74Q==}
@@ -5574,10 +5635,6 @@ packages:
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
- form-data@4.0.5:
- resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
- engines: {node: '>= 6'}
-
forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@@ -5631,6 +5688,10 @@ packages:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
+ get-east-asian-width@1.6.0:
+ resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==}
+ engines: {node: '>=18'}
+
get-intrinsic@1.3.0:
resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines: {node: '>= 0.4'}
@@ -5801,10 +5862,6 @@ packages:
hpack.js@2.1.6:
resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
- html-encoding-sniffer@3.0.0:
- resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
- engines: {node: '>=12'}
-
html-entities@2.6.0:
resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==}
@@ -5849,10 +5906,6 @@ packages:
http-parser-js@0.5.10:
resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==}
- http-proxy-agent@5.0.0:
- resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
- engines: {node: '>= 6'}
-
http-proxy-middleware@2.0.9:
resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==}
engines: {node: '>=12.0.0'}
@@ -5930,19 +5983,10 @@ packages:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
- import-local@3.2.0:
- resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
- engines: {node: '>=8'}
- hasBin: true
-
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
- indent-string@4.0.0:
- resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
- engines: {node: '>=8'}
-
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.
@@ -6054,10 +6098,6 @@ packages:
resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
engines: {node: '>=12'}
- is-generator-fn@2.1.0:
- 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'}
@@ -6070,6 +6110,10 @@ packages:
resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
engines: {node: '>=8'}
+ is-interactive@2.0.0:
+ 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'}
@@ -6114,9 +6158,6 @@ packages:
resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==}
engines: {node: '>=10'}
- is-potential-custom-element-name@1.0.1:
- resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
-
is-regex@1.2.1:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
@@ -6153,6 +6194,10 @@ packages:
resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
engines: {node: '>=10'}
+ is-unicode-supported@2.1.0:
+ 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'}
@@ -6189,18 +6234,10 @@ packages:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
engines: {node: '>=8'}
- istanbul-lib-instrument@6.0.3:
- resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
- engines: {node: '>=10'}
-
istanbul-lib-report@3.0.1:
resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
engines: {node: '>=10'}
- 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'}
@@ -6216,76 +6253,10 @@ packages:
resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==}
engines: {node: 20 || >=22}
- 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@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@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
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- 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': '*'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- '@types/node':
- optional: true
- ts-node:
- optional: true
-
- jest-diff@29.7.0:
- resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-diff@30.4.1:
- resolution: {integrity: sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==}
- 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@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-jsdom@29.7.0:
- resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- canvas: ^2.5.0
- peerDependenciesMeta:
- canvas:
- optional: true
-
jest-environment-node@29.7.0:
resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-expo@54.0.17:
- resolution: {integrity: sha512-LyIhrsP4xvHEEcR1R024u/LBj3uPpAgB+UljgV+YXWkEHjprnr0KpE4tROsMNYCVTM1pPlAnPuoBmn5gnAN9KA==}
- hasBin: true
- peerDependencies:
- expo: '*'
- react-native: '*'
- react-server-dom-webpack: ~19.0.4 || ~19.1.5 || ~19.2.4
- peerDependenciesMeta:
- react-server-dom-webpack:
- optional: true
-
jest-get-type@29.6.3:
resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -6294,22 +6265,6 @@ packages:
resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-junit@16.0.0:
- resolution: {integrity: sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==}
- engines: {node: '>=10.12.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@29.7.0:
- resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-matcher-utils@30.4.1:
- resolution: {integrity: sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.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}
@@ -6318,39 +6273,10 @@ packages:
resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-pnp-resolver@1.2.3:
- resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
- engines: {node: '>=6'}
- peerDependencies:
- jest-resolve: '*'
- peerDependenciesMeta:
- jest-resolve:
- optional: true
-
jest-regex-util@29.6.3:
resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.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@29.7.0:
- resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-runner@29.7.0:
- resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.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@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}
@@ -6359,19 +6285,6 @@ packages:
resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-watch-select-projects@2.0.0:
- resolution: {integrity: sha512-j00nW4dXc2NiCW6znXgFLF9g8PJ0zP25cpQ1xRro/HU2GBfZQFZD0SoXnAlaoKkIY4MlfTMkKGbNXFpvCdjl1w==}
-
- jest-watch-typeahead@2.2.1:
- resolution: {integrity: sha512-jYpYmUnTzysmVnwq49TAxlmtOAwp8QIqvZyoofQFn8fiWhEDZj33ZXzg3JA4nGnzWFm1hbWf3ADpteUokvXgFA==}
- engines: {node: ^14.17.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- jest: ^27.0.0 || ^28.0.0 || ^29.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@27.5.1:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
@@ -6380,16 +6293,6 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.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
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
jimp-compact@0.16.1:
resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==}
@@ -6403,6 +6306,9 @@ packages:
js-sha256@0.9.0:
resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==}
+ js-tokens@10.0.0:
+ resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==}
+
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -6417,15 +6323,6 @@ packages:
jsc-safe-url@0.2.4:
resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==}
- jsdom@20.0.3:
- resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
- engines: {node: '>=14'}
- peerDependencies:
- canvas: ^2.5.0
- peerDependenciesMeta:
- canvas:
- optional: true
-
jsesc@3.1.0:
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
engines: {node: '>=6'}
@@ -6574,6 +6471,10 @@ packages:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'}
+ lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@@ -6646,6 +6547,10 @@ packages:
resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
engines: {node: '>=10'}
+ log-symbols@7.0.1:
+ resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==}
+ engines: {node: '>=18'}
+
log-update@5.0.1:
resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -6671,10 +6576,16 @@ packages:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
magic-string@0.30.8:
resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==}
engines: {node: '>=12'}
+ magicast@0.5.3:
+ resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==}
+
make-dir@3.1.0:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
@@ -6839,9 +6750,9 @@ packages:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
- min-indent@1.0.1:
- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
- engines: {node: '>=4'}
+ mimic-function@5.0.1:
+ resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
+ engines: {node: '>=18'}
mini-css-extract-plugin@2.10.2:
resolution: {integrity: sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==}
@@ -7004,9 +6915,6 @@ packages:
nullthrows@1.1.1:
resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
- nwsapi@2.2.23:
- resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==}
-
ob1@0.83.3:
resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==}
engines: {node: '>=20.19.4'}
@@ -7049,6 +6957,9 @@ packages:
obuf@1.1.2:
resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
+ obug@2.1.1:
+ resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==}
+
on-finished@2.3.0:
resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
engines: {node: '>= 0.8'}
@@ -7076,6 +6987,10 @@ packages:
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
engines: {node: '>=12'}
+ onetime@7.0.0:
+ resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
+ engines: {node: '>=18'}
+
open@7.4.2:
resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==}
engines: {node: '>=8'}
@@ -7100,6 +7015,10 @@ packages:
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
engines: {node: '>=10'}
+ ora@9.4.0:
+ resolution: {integrity: sha512-84cglkRILFxdtA8hAvLNdMrtBpPNBTrQ9/ulg0FA7xLMnD6mifv+enAIeRmvtv+WgdCE+LPGOfQmtJRrVaIVhQ==}
+ engines: {node: '>=20'}
+
orderedmap@2.1.1:
resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
@@ -7157,9 +7076,6 @@ packages:
resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==}
engines: {node: '>=10'}
- parse5@7.3.0:
- resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
-
parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
@@ -7208,6 +7124,9 @@ packages:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
pend@1.2.0:
resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
@@ -7498,10 +7417,6 @@ packages:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- pretty-format@30.4.1:
- resolution: {integrity: sha512-K6KiKMHTL4jjX4u3Kir2EW07nRfcqVTXIImx50wbjHQTcZPgg+gjVeNTIT3l3L1Rd4UefxfogquC9J37SoFyyw==}
- 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}
@@ -7607,9 +7522,6 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- pure-rand@6.1.0:
- resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
-
qrcode-terminal@0.11.0:
resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==}
hasBin: true
@@ -7627,9 +7539,6 @@ packages:
resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==}
engines: {node: '>=6'}
- querystringify@2.2.0:
- resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
-
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -7906,11 +7815,6 @@ packages:
'@types/react':
optional: true
- react-test-renderer@19.1.0:
- resolution: {integrity: sha512-jXkSl3CpvPYEF+p/eGDLB4sPoDX8pKkYvRl9+rR8HxLY0X04vW7hCm1/0zHoUSjPZ3bDa+wXWNTDVIw/R8aDVw==}
- peerDependencies:
- react: ^19.1.0
-
react-textarea-autosize@8.5.9:
resolution: {integrity: sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==}
engines: {node: '>=10'}
@@ -7936,9 +7840,9 @@ packages:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
- redent@3.0.0:
- resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
- engines: {node: '>=8'}
+ readdirp@5.0.0:
+ resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==}
+ engines: {node: '>= 20.19.0'}
reflect.getprototypeof@1.0.10:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
@@ -8004,10 +7908,6 @@ packages:
reselect@4.1.8:
resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==}
- resolve-cwd@3.0.0:
- resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
- engines: {node: '>=8'}
-
resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -8051,6 +7951,10 @@ packages:
resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ restore-cursor@5.1.0:
+ resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
+ engines: {node: '>=18'}
+
retry@0.13.1:
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
engines: {node: '>= 4'}
@@ -8072,6 +7976,11 @@ packages:
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
+ rolldown@1.0.1:
+ resolution: {integrity: sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+
rope-sequence@1.3.4:
resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
@@ -8106,10 +8015,6 @@ packages:
resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==}
engines: {node: '>=11.0.0'}
- saxes@6.0.0:
- resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
- engines: {node: '>=v12.22.7'}
-
scheduler@0.26.0:
resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
@@ -8165,9 +8070,6 @@ packages:
resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==}
engines: {node: '>= 0.8.0'}
- server-only@0.0.1:
- resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==}
-
set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
@@ -8228,6 +8130,9 @@ packages:
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines: {node: '>= 0.4'}
+ siginfo@2.0.0:
+ resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
+
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@@ -8256,10 +8161,6 @@ packages:
resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
engines: {node: '>=12'}
- slash@5.1.0:
- resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
- engines: {node: '>=14.16'}
-
slice-ansi@5.0.0:
resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
engines: {node: '>=12'}
@@ -8301,16 +8202,9 @@ packages:
peerDependencies:
webpack: ^5.0.0
- source-map-support@0.5.13:
- resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
-
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
- source-map@0.5.6:
- resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
- engines: {node: '>=0.10.0'}
-
source-map@0.5.7:
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
engines: {node: '>=0.10.0'}
@@ -8345,22 +8239,16 @@ packages:
resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
- stack-generator@2.0.10:
- resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
-
stack-utils@2.0.6:
resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
engines: {node: '>=10'}
+ stackback@0.0.2:
+ resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
+
stackframe@1.3.4:
resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
- stacktrace-gps@3.1.2:
- resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
-
- stacktrace-js@2.0.2:
- resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
-
stacktrace-parser@0.1.11:
resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==}
engines: {node: '>=6'}
@@ -8373,6 +8261,13 @@ packages:
resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
engines: {node: '>= 0.8'}
+ std-env@4.1.0:
+ resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==}
+
+ stdin-discarder@0.3.2:
+ resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==}
+ engines: {node: '>=18'}
+
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: '>= 0.4'}
@@ -8389,14 +8284,6 @@ packages:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
- string-length@4.0.2:
- resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
- engines: {node: '>=10'}
-
- string-length@5.0.1:
- resolution: {integrity: sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==}
- engines: {node: '>=12.20'}
-
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -8405,6 +8292,10 @@ packages:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines: {node: '>=12'}
+ string-width@8.2.1:
+ resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==}
+ engines: {node: '>=20'}
+
string.prototype.matchall@4.0.12:
resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
engines: {node: '>= 0.4'}
@@ -8442,10 +8333,6 @@ packages:
resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
engines: {node: '>=12'}
- strip-bom@4.0.0:
- resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
- engines: {node: '>=8'}
-
strip-final-newline@2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
@@ -8454,10 +8341,6 @@ packages:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
- strip-indent@3.0.0:
- resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
- engines: {node: '>=8'}
-
strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
@@ -8519,9 +8402,6 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
- symbol-tree@3.2.4:
- resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
-
tapable@2.3.3:
resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==}
engines: {node: '>=6'}
@@ -8608,10 +8488,25 @@ packages:
tiny-worker@2.3.0:
resolution: {integrity: sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==}
+ tinybench@2.9.0:
+ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
+
+ tinyexec@1.1.2:
+ resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==}
+ engines: {node: '>=18'}
+
tinyglobby@0.2.16:
resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==}
engines: {node: '>=12.0.0'}
+ tinypool@2.1.0:
+ resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==}
+ engines: {node: ^20.0.0 || >=22.0.0}
+
+ tinyrainbow@3.1.0:
+ resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==}
+ engines: {node: '>=14.0.0'}
+
tippy.js@6.3.7:
resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
@@ -8641,20 +8536,12 @@ packages:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
- tough-cookie@4.1.4:
- resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
- engines: {node: '>=6'}
-
toygrad@2.6.0:
resolution: {integrity: sha512-g4zBmlSbvzOE5FOILxYkAybTSxijKLkj1WoNqVGnbMcWDyj4wWQ+eYSr3ik7XOpIgMq/7eBcPRTJX3DM2E0YMg==}
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
- tr46@3.0.0:
- resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
- engines: {node: '>=12'}
-
ts-api-utils@2.5.0:
resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
engines: {node: '>=18.12'}
@@ -8766,10 +8653,6 @@ packages:
unicode-segmenter@0.14.5:
resolution: {integrity: sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==}
- universalify@0.2.0:
- resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
- engines: {node: '>= 4.0.0'}
-
universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
@@ -8796,9 +8679,6 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
- url-parse@1.5.10:
- resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
-
use-callback-ref@1.3.3:
resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
engines: {node: '>=10'}
@@ -8887,10 +8767,6 @@ packages:
deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
hasBin: true
- v8-to-istanbul@9.3.0:
- resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
- engines: {node: '>=10.12.0'}
-
validate-npm-package-name@5.0.1:
resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -8899,16 +8775,96 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
+ vite@8.0.13:
+ resolution: {integrity: sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ '@vitejs/devtools': ^0.1.18
+ esbuild: ^0.27.0 || ^0.28.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ '@vitejs/devtools':
+ optional: true
+ esbuild:
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ vitest@4.1.6:
+ resolution: {integrity: sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==}
+ engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@opentelemetry/api': ^1.9.0
+ '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
+ '@vitest/browser-playwright': 4.1.6
+ '@vitest/browser-preview': 4.1.6
+ '@vitest/browser-webdriverio': 4.1.6
+ '@vitest/coverage-istanbul': 4.1.6
+ '@vitest/coverage-v8': 4.1.6
+ '@vitest/ui': 4.1.6
+ happy-dom: '*'
+ jsdom: '*'
+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@opentelemetry/api':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser-playwright':
+ optional: true
+ '@vitest/browser-preview':
+ optional: true
+ '@vitest/browser-webdriverio':
+ optional: true
+ '@vitest/coverage-istanbul':
+ optional: true
+ '@vitest/coverage-v8':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+
vlq@1.0.1:
resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==}
w3c-keyname@2.2.8:
resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
- w3c-xmlserializer@4.0.0:
- resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
- engines: {node: '>=14'}
-
walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
@@ -8932,10 +8888,6 @@ packages:
resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==}
engines: {node: '>=8'}
- webidl-conversions@7.0.0:
- resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
- engines: {node: '>=12'}
-
webpack-bundle-analyzer@4.10.2:
resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==}
engines: {node: '>= 10.13.0'}
@@ -8995,26 +8947,13 @@ packages:
resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
engines: {node: '>=0.8.0'}
- whatwg-encoding@2.0.0:
- resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
- engines: {node: '>=12'}
- deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation
-
whatwg-fetch@3.6.20:
resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==}
- whatwg-mimetype@3.0.0:
- resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
- engines: {node: '>=12'}
-
whatwg-url-without-unicode@8.0.0-3:
resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==}
engines: {node: '>=10'}
- whatwg-url@11.0.0:
- resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
- engines: {node: '>=12'}
-
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
@@ -9042,6 +8981,11 @@ packages:
engines: {node: '>= 8'}
hasBin: true
+ why-is-node-running@2.3.0:
+ resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
+ engines: {node: '>=8'}
+ hasBin: true
+
wonka@6.3.6:
resolution: {integrity: sha512-MXH+6mDHAZ2GuMpgKS055FR6v0xVP3XwquxIMYXgiW+FejHQlMGlvVRZT4qMCxR+bEo/FCtIdKxwej9WV3YQag==}
@@ -9107,17 +9051,10 @@ packages:
resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==}
engines: {node: '>=10.0.0'}
- xml-name-validator@4.0.0:
- resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
- engines: {node: '>=12'}
-
xml2js@0.6.0:
resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==}
engines: {node: '>=4.0.0'}
- xml@1.0.1:
- resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==}
-
xmlbuilder@11.0.1:
resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
engines: {node: '>=4.0'}
@@ -9126,9 +9063,6 @@ packages:
resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==}
engines: {node: '>=8.0'}
- xmlchars@2.2.0:
- resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
-
y18n@4.0.3:
resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
@@ -9183,6 +9117,10 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
+ yoctocolors@2.1.2:
+ resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==}
+ engines: {node: '>=18'}
+
zeed-dom@0.15.1:
resolution: {integrity: sha512-dtZ0aQSFyZmoJS0m06/xBN1SazUBPL5HpzlAcs/KcRW0rzadYw12deQBjeMhGKMMeGEp7bA9vmikMLaO4exBcg==}
engines: {node: '>=14.13.1'}
@@ -10144,7 +10082,7 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
- '@bcoe/v8-coverage@0.2.3': {}
+ '@bcoe/v8-coverage@1.0.2': {}
'@bitdrift/react-native@0.6.14(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
dependencies:
@@ -10212,6 +10150,9 @@ snapshots:
react: 19.1.0
react-native: 0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0)
+ '@colors/colors@1.5.0':
+ optional: true
+
'@crowdin/cli@4.14.2':
dependencies:
command-exists-promise: 2.0.2
@@ -10909,56 +10850,10 @@ snapshots:
'@istanbuljs/schema@0.1.6': {}
- '@jest/console@29.7.0':
- dependencies:
- '@jest/types': 29.6.3
- '@types/node': 24.12.4
- chalk: 4.1.2
- jest-message-util: 29.7.0
- jest-util: 29.7.0
- slash: 3.0.0
-
- '@jest/core@29.7.0':
- dependencies:
- '@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': 24.12.4
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- ci-info: 3.9.0
- exit: 0.1.2
- graceful-fs: 4.2.11
- jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@24.12.4)
- 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: 29.7.0
- slash: 3.0.0
- strip-ansi: 6.0.1
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
- - ts-node
-
'@jest/create-cache-key-function@29.7.0':
dependencies:
'@jest/types': 29.6.3
- '@jest/diff-sequences@30.4.0': {}
-
'@jest/environment@29.7.0':
dependencies:
'@jest/fake-timers': 29.7.0
@@ -10966,17 +10861,6 @@ snapshots:
'@types/node': 24.12.4
jest-mock: 29.7.0
- '@jest/expect-utils@29.7.0':
- dependencies:
- jest-get-type: 29.6.3
-
- '@jest/expect@29.7.0':
- dependencies:
- expect: 29.7.0
- jest-snapshot: 29.7.0
- transitivePeerDependencies:
- - supports-color
-
'@jest/fake-timers@29.7.0':
dependencies:
'@jest/types': 29.6.3
@@ -10986,74 +10870,10 @@ snapshots:
jest-mock: 29.7.0
jest-util: 29.7.0
- '@jest/get-type@30.1.0': {}
-
- '@jest/globals@29.7.0':
- dependencies:
- '@jest/environment': 29.7.0
- '@jest/expect': 29.7.0
- '@jest/types': 29.6.3
- jest-mock: 29.7.0
- transitivePeerDependencies:
- - supports-color
-
- '@jest/reporters@29.7.0':
- dependencies:
- '@bcoe/v8-coverage': 0.2.3
- '@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': 24.12.4
- chalk: 4.1.2
- collect-v8-coverage: 1.0.3
- 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: 4.0.1
- istanbul-reports: 3.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
-
'@jest/schemas@29.6.3':
dependencies:
'@sinclair/typebox': 0.27.10
- '@jest/schemas@30.4.1':
- dependencies:
- '@sinclair/typebox': 0.34.49
-
- '@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@29.7.0':
- dependencies:
- '@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@29.7.0':
- dependencies:
- '@jest/test-result': 29.7.0
- graceful-fs: 4.2.11
- jest-haste-map: 29.7.0
- slash: 3.0.0
-
'@jest/transform@29.7.0':
dependencies:
'@babel/core': 7.29.0
@@ -11111,6 +10931,8 @@ snapshots:
'@lingui/babel-plugin-extract-messages@5.9.5': {}
+ '@lingui/babel-plugin-extract-messages@6.0.1': {}
+
'@lingui/babel-plugin-lingui-macro@5.9.5(typescript@6.0.3)':
dependencies:
'@babel/core': 7.29.0
@@ -11123,6 +10945,15 @@ snapshots:
- supports-color
- typescript
+ '@lingui/babel-plugin-lingui-macro@6.0.1':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/types': 7.29.0
+ '@lingui/conf': 6.0.1
+ '@lingui/message-utils': 6.0.1
+ transitivePeerDependencies:
+ - supports-color
+
'@lingui/cli@5.9.5(typescript@6.0.3)':
dependencies:
'@babel/core': 7.29.0
@@ -11157,6 +10988,34 @@ snapshots:
- supports-color
- typescript
+ '@lingui/cli@6.0.1':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/parser': 7.29.3
+ '@babel/types': 7.29.0
+ '@lingui/babel-plugin-extract-messages': 6.0.1
+ '@lingui/babel-plugin-lingui-macro': 6.0.1
+ '@lingui/conf': 6.0.1
+ '@lingui/core': 6.0.1
+ '@lingui/format-po': 6.0.1
+ '@lingui/message-utils': 6.0.1
+ chokidar: 5.0.0
+ cli-table3: 0.6.5
+ commander: 14.0.3
+ esbuild: 0.25.12
+ jiti: 2.7.0
+ micromatch: 4.0.8
+ ms: 2.1.3
+ normalize-path: 3.0.0
+ ora: 9.4.0
+ pseudolocale: 2.2.0
+ source-map: 0.7.6
+ tinypool: 2.1.0
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
'@lingui/conf@5.9.5(typescript@6.0.3)':
dependencies:
'@babel/runtime': 7.29.2
@@ -11167,6 +11026,13 @@ snapshots:
transitivePeerDependencies:
- typescript
+ '@lingui/conf@6.0.1':
+ dependencies:
+ jest-validate: 29.7.0
+ jiti: 2.7.0
+ lilconfig: 3.1.3
+ normalize-path: 3.0.0
+
'@lingui/core@5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(typescript@6.0.3))':
dependencies:
'@babel/runtime': 7.29.2
@@ -11174,6 +11040,13 @@ snapshots:
optionalDependencies:
'@lingui/babel-plugin-lingui-macro': 5.9.5(typescript@6.0.3)
+ '@lingui/core@6.0.1':
+ dependencies:
+ '@lingui/babel-plugin-lingui-macro': 6.0.1
+ '@lingui/message-utils': 6.0.1
+ transitivePeerDependencies:
+ - supports-color
+
'@lingui/format-po@5.9.5(typescript@6.0.3)':
dependencies:
'@lingui/conf': 5.9.5(typescript@6.0.3)
@@ -11183,11 +11056,23 @@ snapshots:
transitivePeerDependencies:
- typescript
+ '@lingui/format-po@6.0.1':
+ dependencies:
+ '@lingui/conf': 6.0.1
+ '@lingui/message-utils': 6.0.1
+ pofile: 1.1.4
+
'@lingui/message-utils@5.9.5':
dependencies:
'@messageformat/parser': 5.1.1
js-sha256: 0.10.1
+ '@lingui/message-utils@6.0.1':
+ dependencies:
+ '@messageformat/date-skeleton': 1.1.0
+ '@messageformat/parser': 5.1.1
+ js-sha256: 0.10.1
+
'@lingui/react@5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(typescript@6.0.3))(react@19.1.0)':
dependencies:
'@babel/runtime': 7.29.2
@@ -11196,6 +11081,21 @@ snapshots:
optionalDependencies:
'@lingui/babel-plugin-lingui-macro': 5.9.5(typescript@6.0.3)
+ '@lingui/vite-plugin@6.0.1(@babel/core@7.29.0)(@lingui/babel-plugin-lingui-macro@5.9.5(typescript@6.0.3))(rolldown@1.0.1)(vite@8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0))':
+ dependencies:
+ '@lingui/cli': 6.0.1
+ '@lingui/conf': 6.0.1
+ vite: 8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0)
+ optionalDependencies:
+ '@babel/core': 7.29.0
+ '@lingui/babel-plugin-lingui-macro': 5.9.5(typescript@6.0.3)
+ rolldown: 1.0.1
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
+ '@messageformat/date-skeleton@1.1.0': {}
+
'@messageformat/parser@5.1.1':
dependencies:
moo: 0.5.3
@@ -11220,6 +11120,13 @@ snapshots:
'@tybys/wasm-util': 0.10.2
optional: true
+ '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@tybys/wasm-util': 0.10.2
+ optional: true
+
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -11232,6 +11139,8 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.20.1
+ '@oxc-project/types@0.130.0': {}
+
'@package-json/types@0.0.12': {}
'@pkgjs/parseargs@0.11.0':
@@ -12194,6 +12103,57 @@ snapshots:
'@remirror/core-constants@3.0.0': {}
+ '@rolldown/binding-android-arm64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-darwin-arm64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-darwin-x64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-freebsd-x64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm64-gnu@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-arm64-musl@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-ppc64-gnu@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-s390x-gnu@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-x64-gnu@1.0.1':
+ optional: true
+
+ '@rolldown/binding-linux-x64-musl@1.0.1':
+ optional: true
+
+ '@rolldown/binding-openharmony-arm64@1.0.1':
+ optional: true
+
+ '@rolldown/binding-wasm32-wasi@1.0.1':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
+ optional: true
+
+ '@rolldown/binding-win32-arm64-msvc@1.0.1':
+ optional: true
+
+ '@rolldown/binding-win32-x64-msvc@1.0.1':
+ optional: true
+
+ '@rolldown/pluginutils@1.0.1': {}
+
'@sentry-internal/browser-utils@8.55.0':
dependencies:
'@sentry/core': 8.55.0
@@ -12378,8 +12338,6 @@ snapshots:
'@sinclair/typebox@0.27.10': {}
- '@sinclair/typebox@0.34.49': {}
-
'@sinonjs/commons@3.0.1':
dependencies:
type-detect: 4.0.8
@@ -12388,6 +12346,8 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
+ '@standard-schema/spec@1.1.0': {}
+
'@tanstack/query-async-storage-persister@5.100.10':
dependencies:
'@tanstack/query-core': 5.100.10
@@ -12410,18 +12370,6 @@ snapshots:
'@tanstack/query-core': 5.100.10
react: 19.1.0
- '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@24.12.4))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)':
- dependencies:
- jest-matcher-utils: 30.4.1
- picocolors: 1.1.1
- pretty-format: 30.4.1
- react: 19.1.0
- react-native: 0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0)
- react-test-renderer: 19.1.0(react@19.1.0)
- redent: 3.0.0
- optionalDependencies:
- jest: 29.7.0(@types/node@24.12.4)
-
'@tiptap/core@2.27.2(@tiptap/pm@2.27.2)':
dependencies:
'@tiptap/pm': 2.27.2
@@ -12514,8 +12462,6 @@ snapshots:
'@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
'@tiptap/pm': 2.27.2
- '@tootallnate/once@2.0.1': {}
-
'@tybys/wasm-util@0.10.2':
dependencies:
tslib: 2.8.1
@@ -12551,6 +12497,11 @@ snapshots:
dependencies:
'@types/node': 24.12.4
+ '@types/chai@5.2.3':
+ dependencies:
+ '@types/deep-eql': 4.0.2
+ assertion-error: 2.0.1
+
'@types/connect-history-api-fallback@1.5.4':
dependencies:
'@types/express-serve-static-core': 5.1.1
@@ -12560,6 +12511,8 @@ snapshots:
dependencies:
'@types/node': 24.12.4
+ '@types/deep-eql@4.0.2': {}
+
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
@@ -12624,17 +12577,6 @@ snapshots:
dependencies:
'@types/istanbul-lib-report': 3.0.3
- '@types/jest@29.5.14':
- dependencies:
- expect: 29.7.0
- pretty-format: 29.7.0
-
- '@types/jsdom@20.0.1':
- dependencies:
- '@types/node': 24.12.4
- '@types/tough-cookie': 4.0.5
- parse5: 7.3.0
-
'@types/json-schema@7.0.15': {}
'@types/linkify-it@5.0.0': {}
@@ -12719,8 +12661,6 @@ snapshots:
'@types/stack-utils@2.0.3': {}
- '@types/tough-cookie@4.0.5': {}
-
'@types/use-sync-external-store@0.0.6': {}
'@types/ws@8.18.1':
@@ -12928,6 +12868,61 @@ snapshots:
'@urql/core': 5.2.0
wonka: 6.3.6
+ '@vitest/coverage-v8@4.1.6(vitest@4.1.6)':
+ dependencies:
+ '@bcoe/v8-coverage': 1.0.2
+ '@vitest/utils': 4.1.6
+ ast-v8-to-istanbul: 1.0.0
+ istanbul-lib-coverage: 3.2.2
+ istanbul-lib-report: 3.0.1
+ istanbul-reports: 3.2.0
+ magicast: 0.5.3
+ obug: 2.1.1
+ std-env: 4.1.0
+ tinyrainbow: 3.1.0
+ vitest: 4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(vite@8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0))
+
+ '@vitest/expect@4.1.6':
+ dependencies:
+ '@standard-schema/spec': 1.1.0
+ '@types/chai': 5.2.3
+ '@vitest/spy': 4.1.6
+ '@vitest/utils': 4.1.6
+ chai: 6.2.2
+ tinyrainbow: 3.1.0
+
+ '@vitest/mocker@4.1.6(vite@8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0))':
+ dependencies:
+ '@vitest/spy': 4.1.6
+ estree-walker: 3.0.3
+ magic-string: 0.30.21
+ optionalDependencies:
+ vite: 8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0)
+
+ '@vitest/pretty-format@4.1.6':
+ dependencies:
+ tinyrainbow: 3.1.0
+
+ '@vitest/runner@4.1.6':
+ dependencies:
+ '@vitest/utils': 4.1.6
+ pathe: 2.0.3
+
+ '@vitest/snapshot@4.1.6':
+ dependencies:
+ '@vitest/pretty-format': 4.1.6
+ '@vitest/utils': 4.1.6
+ magic-string: 0.30.21
+ pathe: 2.0.3
+
+ '@vitest/spy@4.1.6': {}
+
+ '@vitest/utils@4.1.6':
+ dependencies:
+ '@vitest/pretty-format': 4.1.6
+ convert-source-map: 2.0.0
+ tinyrainbow: 3.1.0
+
'@webassemblyjs/ast@1.14.1':
dependencies:
'@webassemblyjs/helper-numbers': 1.13.2
@@ -13023,11 +13018,6 @@ snapshots:
mime-types: 2.1.35
negotiator: 0.6.3
- acorn-globals@7.0.1:
- dependencies:
- acorn: 8.16.0
- acorn-walk: 8.3.5
-
acorn-import-phases@1.0.4(acorn@8.16.0):
dependencies:
acorn: 8.16.0
@@ -13091,8 +13081,6 @@ snapshots:
dependencies:
type-fest: 1.4.0
- ansi-escapes@6.2.1: {}
-
ansi-html-community@0.0.8: {}
ansi-html@0.0.9: {}
@@ -13213,14 +13201,20 @@ snapshots:
object.assign: 4.1.7
util: 0.12.5
+ assertion-error@2.0.1: {}
+
ast-types-flow@0.0.7: {}
+ ast-v8-to-istanbul@1.0.0:
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ estree-walker: 3.0.3
+ js-tokens: 10.0.0
+
async-function@1.0.0: {}
async-limiter@1.0.1: {}
- asynckit@0.4.0: {}
-
available-typed-arrays@1.0.7:
dependencies:
possible-typed-array-names: 1.1.0
@@ -13538,17 +13532,14 @@ snapshots:
cborg@5.1.1: {}
+ chai@6.2.2: {}
+
chalk@2.4.2:
dependencies:
ansi-styles: 3.2.1
escape-string-regexp: 1.0.5
supports-color: 5.5.0
- chalk@3.0.0:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
@@ -13556,9 +13547,7 @@ snapshots:
chalk@5.3.0: {}
- char-regex@1.0.2: {}
-
- char-regex@2.0.2: {}
+ chalk@5.6.2: {}
chokidar@3.5.1:
dependencies:
@@ -13584,6 +13573,10 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ chokidar@5.0.0:
+ dependencies:
+ readdirp: 5.0.0
+
chownr@3.0.0: {}
chrome-launcher@0.15.2:
@@ -13612,8 +13605,6 @@ snapshots:
ci-info@3.9.0: {}
- cjs-module-lexer@1.4.3: {}
-
clean-css@5.3.3:
dependencies:
source-map: 0.6.1
@@ -13635,8 +13626,20 @@ snapshots:
dependencies:
restore-cursor: 4.0.0
+ cli-cursor@5.0.0:
+ dependencies:
+ restore-cursor: 5.1.0
+
cli-spinners@2.9.2: {}
+ cli-spinners@3.4.0: {}
+
+ cli-table3@0.6.5:
+ dependencies:
+ string-width: 4.2.3
+ optionalDependencies:
+ '@colors/colors': 1.5.0
+
cli-table@0.3.11:
dependencies:
colors: 1.0.3
@@ -13660,10 +13663,6 @@ snapshots:
clone@1.0.4: {}
- co@4.6.0: {}
-
- collect-v8-coverage@1.0.3: {}
-
color-convert@1.9.3:
dependencies:
color-name: 1.1.3
@@ -13692,10 +13691,6 @@ snapshots:
colors@1.0.3: {}
- combined-stream@1.0.8:
- dependencies:
- delayed-stream: 1.0.0
-
command-exists-promise@2.0.2: {}
commander@10.0.1: {}
@@ -13704,6 +13699,8 @@ snapshots:
commander@12.1.0: {}
+ commander@14.0.3: {}
+
commander@2.20.0: {}
commander@2.20.3: {}
@@ -13786,21 +13783,6 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
- create-jest@29.7.0(@types/node@24.12.4):
- 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@24.12.4)
- jest-util: 29.7.0
- prompts: 2.4.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
crelt@1.0.6: {}
cross-fetch@3.2.0:
@@ -13939,22 +13921,8 @@ snapshots:
dependencies:
css-tree: 2.2.1
- cssom@0.3.8: {}
-
- cssom@0.5.0: {}
-
- cssstyle@2.3.0:
- dependencies:
- cssom: 0.3.8
-
csstype@3.2.3: {}
- data-urls@3.0.2:
- dependencies:
- abab: 2.0.6
- whatwg-mimetype: 3.0.0
- whatwg-url: 11.0.0
-
data-view-buffer@1.0.2:
dependencies:
call-bound: 1.0.4
@@ -14003,8 +13971,6 @@ snapshots:
decode-uri-component@0.2.2: {}
- dedent@1.7.2: {}
-
deep-extend@0.6.0: {}
deep-is@0.1.4: {}
@@ -14043,8 +14009,6 @@ snapshots:
pify: 4.0.1
rimraf: 2.7.1
- delayed-stream@1.0.0: {}
-
depd@1.1.2: {}
depd@2.0.0: {}
@@ -14055,14 +14019,10 @@ snapshots:
detect-libc@2.1.2: {}
- detect-newline@3.1.0: {}
-
detect-node-es@1.1.0: {}
detect-node@2.1.0: {}
- diff-sequences@29.6.3: {}
-
dijkstrajs@1.0.3: {}
dir-glob@3.0.1:
@@ -14097,10 +14057,6 @@ snapshots:
domelementtype@2.3.0: {}
- domexception@4.0.0:
- dependencies:
- webidl-conversions: 7.0.0
-
domhandler@4.3.1:
dependencies:
domelementtype: 2.3.0
@@ -14150,8 +14106,6 @@ snapshots:
email-validator@2.0.4: {}
- emittery@0.13.1: {}
-
emoji-mart@5.6.0: {}
emoji-regex@10.6.0: {}
@@ -14177,8 +14131,6 @@ snapshots:
entities@5.0.0: {}
- entities@6.0.1: {}
-
env-editor@0.4.2: {}
error-ex@1.3.4:
@@ -14331,14 +14283,6 @@ snapshots:
escape-string-regexp@4.0.0: {}
- escodegen@2.1.0:
- dependencies:
- esprima: 4.0.1
- estraverse: 5.3.0
- esutils: 2.0.3
- optionalDependencies:
- source-map: 0.6.1
-
eslint-import-context@0.1.9(unrs-resolver@1.11.1):
dependencies:
get-tsconfig: 4.14.0
@@ -14531,6 +14475,10 @@ snapshots:
estraverse@5.3.0: {}
+ estree-walker@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.6
+
esutils@2.0.3: {}
etag@1.8.1: {}
@@ -14567,15 +14515,7 @@ snapshots:
signal-exit: 3.0.7
strip-final-newline: 3.0.0
- exit@0.1.2: {}
-
- expect@29.7.0:
- dependencies:
- '@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
+ expect-type@1.3.0: {}
expo-application@7.0.8(expo@54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
dependencies:
@@ -15108,14 +15048,6 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
- form-data@4.0.5:
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- es-set-tostringtag: 2.1.0
- hasown: 2.0.3
- mime-types: 2.1.35
-
forwarded@0.2.0: {}
freeport-async@2.0.0: {}
@@ -15156,6 +15088,8 @@ snapshots:
get-caller-file@2.0.5: {}
+ get-east-asian-width@1.6.0: {}
+
get-intrinsic@1.3.0:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -15341,10 +15275,6 @@ snapshots:
readable-stream: 2.3.8
wbuf: 1.7.3
- html-encoding-sniffer@3.0.0:
- dependencies:
- whatwg-encoding: 2.0.0
-
html-entities@2.6.0: {}
html-escaper@2.0.2: {}
@@ -15401,14 +15331,6 @@ snapshots:
http-parser-js@0.5.10: {}
- http-proxy-agent@5.0.0:
- dependencies:
- '@tootallnate/once': 2.0.1
- agent-base: 6.0.2
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
http-proxy-middleware@2.0.9(@types/express@4.17.25):
dependencies:
'@types/http-proxy': 1.17.17
@@ -15482,15 +15404,8 @@ snapshots:
parent-module: 1.0.1
resolve-from: 4.0.0
- import-local@3.2.0:
- dependencies:
- pkg-dir: 4.2.0
- resolve-cwd: 3.0.0
-
imurmurhash@0.1.4: {}
- indent-string@4.0.0: {}
-
inflight@1.0.6:
dependencies:
once: 1.4.0
@@ -15600,8 +15515,6 @@ snapshots:
is-fullwidth-code-point@4.0.0: {}
- is-generator-fn@2.1.0: {}
-
is-generator-function@1.1.2:
dependencies:
call-bound: 1.0.4
@@ -15616,6 +15529,8 @@ snapshots:
is-interactive@1.0.0: {}
+ is-interactive@2.0.0: {}
+
is-map@2.0.3: {}
is-nan@1.3.2:
@@ -15648,8 +15563,6 @@ snapshots:
is-plain-obj@3.0.0: {}
- is-potential-custom-element-name@1.0.1: {}
-
is-regex@1.2.1:
dependencies:
call-bound: 1.0.4
@@ -15684,6 +15597,8 @@ snapshots:
is-unicode-supported@0.1.0: {}
+ is-unicode-supported@2.1.0: {}
+
is-weakmap@2.0.2: {}
is-weakref@1.1.1:
@@ -15719,30 +15634,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- istanbul-lib-instrument@6.0.3:
- dependencies:
- '@babel/core': 7.29.0
- '@babel/parser': 7.29.3
- '@istanbuljs/schema': 0.1.6
- istanbul-lib-coverage: 3.2.2
- semver: 7.8.0
- transitivePeerDependencies:
- - supports-color
-
istanbul-lib-report@3.0.1:
dependencies:
istanbul-lib-coverage: 3.2.2
make-dir: 4.0.0
supports-color: 7.2.0
- istanbul-lib-source-maps@4.0.1:
- dependencies:
- debug: 4.4.3
- istanbul-lib-coverage: 3.2.2
- source-map: 0.6.1
- transitivePeerDependencies:
- - supports-color
-
istanbul-reports@3.2.0:
dependencies:
html-escaper: 2.0.2
@@ -15767,128 +15664,6 @@ snapshots:
dependencies:
'@isaacs/cliui': 9.0.0
- jest-changed-files@29.7.0:
- dependencies:
- execa: 5.1.1
- jest-util: 29.7.0
- p-limit: 3.1.0
-
- jest-circus@29.7.0:
- dependencies:
- '@jest/environment': 29.7.0
- '@jest/expect': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 24.12.4
- chalk: 4.1.2
- co: 4.6.0
- dedent: 1.7.2
- is-generator-fn: 2.1.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: 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@29.7.0(@types/node@24.12.4):
- dependencies:
- '@jest/core': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/types': 29.6.3
- chalk: 4.1.2
- create-jest: 29.7.0(@types/node@24.12.4)
- exit: 0.1.2
- import-local: 3.2.0
- jest-config: 29.7.0(@types/node@24.12.4)
- jest-util: 29.7.0
- jest-validate: 29.7.0
- yargs: 17.7.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
- jest-config@29.7.0(@types/node@24.12.4):
- dependencies:
- '@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: 3.9.0
- deepmerge: 4.3.1
- glob: 7.2.3
- graceful-fs: 4.2.11
- 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: 29.7.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 24.12.4
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-diff@29.7.0:
- dependencies:
- chalk: 4.1.2
- diff-sequences: 29.6.3
- jest-get-type: 29.6.3
- pretty-format: 29.7.0
-
- jest-diff@30.4.1:
- dependencies:
- '@jest/diff-sequences': 30.4.0
- '@jest/get-type': 30.1.0
- chalk: 4.1.2
- pretty-format: 30.4.1
-
- jest-docblock@29.7.0:
- dependencies:
- detect-newline: 3.1.0
-
- jest-each@29.7.0:
- dependencies:
- '@jest/types': 29.6.3
- chalk: 4.1.2
- jest-get-type: 29.6.3
- jest-util: 29.7.0
- pretty-format: 29.7.0
-
- jest-environment-jsdom@29.7.0:
- dependencies:
- '@jest/environment': 29.7.0
- '@jest/fake-timers': 29.7.0
- '@jest/types': 29.6.3
- '@types/jsdom': 20.0.1
- '@types/node': 24.12.4
- jest-mock: 29.7.0
- jest-util: 29.7.0
- jsdom: 20.0.3
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
jest-environment-node@29.7.0:
dependencies:
'@jest/environment': 29.7.0
@@ -15898,33 +15673,6 @@ snapshots:
jest-mock: 29.7.0
jest-util: 29.7.0
- jest-expo@54.0.17(@babel/core@7.29.0)(expo@54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@24.12.4))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
- dependencies:
- '@expo/config': 12.0.13
- '@expo/json-file': 10.0.14
- '@jest/create-cache-key-function': 29.7.0
- '@jest/globals': 29.7.0
- babel-jest: 29.7.0(@babel/core@7.29.0)
- expo: 54.0.34(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- jest-environment-jsdom: 29.7.0
- jest-snapshot: 29.7.0
- jest-watch-select-projects: 2.0.0
- jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@24.12.4))
- json5: 2.2.3
- lodash: 4.18.1
- react-native: 0.81.5(patch_hash=2656ac6deb71b92a4df4af4593d13ace6a5740936432e5e7e8ef32bc3cd05194)(@babel/core@7.29.0)(@types/react@19.1.17)(react@19.1.0)
- react-test-renderer: 19.1.0(react@19.1.0)
- server-only: 0.0.1
- stacktrace-js: 2.0.2
- transitivePeerDependencies:
- - '@babel/core'
- - bufferutil
- - canvas
- - jest
- - react
- - supports-color
- - utf-8-validate
-
jest-get-type@29.6.3: {}
jest-haste-map@29.7.0:
@@ -15943,32 +15691,6 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- jest-junit@16.0.0:
- dependencies:
- mkdirp: 1.0.4
- strip-ansi: 6.0.1
- uuid: 8.3.2
- xml: 1.0.1
-
- jest-leak-detector@29.7.0:
- dependencies:
- jest-get-type: 29.6.3
- pretty-format: 29.7.0
-
- jest-matcher-utils@29.7.0:
- dependencies:
- chalk: 4.1.2
- jest-diff: 29.7.0
- jest-get-type: 29.6.3
- pretty-format: 29.7.0
-
- jest-matcher-utils@30.4.1:
- dependencies:
- '@jest/get-type': 30.1.0
- chalk: 4.1.2
- jest-diff: 30.4.1
- pretty-format: 30.4.1
-
jest-message-util@29.7.0:
dependencies:
'@babel/code-frame': 7.29.0
@@ -15987,109 +15709,8 @@ snapshots:
'@types/node': 24.12.4
jest-util: 29.7.0
- jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
- optionalDependencies:
- jest-resolve: 29.7.0
-
jest-regex-util@29.6.3: {}
- jest-resolve-dependencies@29.7.0:
- dependencies:
- jest-regex-util: 29.6.3
- jest-snapshot: 29.7.0
- transitivePeerDependencies:
- - supports-color
-
- jest-resolve@29.7.0:
- dependencies:
- chalk: 4.1.2
- graceful-fs: 4.2.11
- 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.12
- resolve.exports: 2.0.3
- slash: 3.0.0
-
- jest-runner@29.7.0:
- dependencies:
- '@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': 24.12.4
- chalk: 4.1.2
- emittery: 0.13.1
- graceful-fs: 4.2.11
- 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@29.7.0:
- dependencies:
- '@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': 24.12.4
- chalk: 4.1.2
- cjs-module-lexer: 1.4.3
- collect-v8-coverage: 1.0.3
- glob: 7.2.3
- graceful-fs: 4.2.11
- 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@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': 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: 29.7.0
- graceful-fs: 4.2.11
- 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.8.0
- transitivePeerDependencies:
- - supports-color
-
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
@@ -16108,34 +15729,6 @@ snapshots:
leven: 3.1.0
pretty-format: 29.7.0
- jest-watch-select-projects@2.0.0:
- dependencies:
- ansi-escapes: 4.3.2
- chalk: 3.0.0
- prompts: 2.4.2
-
- jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@24.12.4)):
- dependencies:
- ansi-escapes: 6.2.1
- chalk: 4.1.2
- jest: 29.7.0(@types/node@24.12.4)
- jest-regex-util: 29.6.3
- jest-watcher: 29.7.0
- slash: 5.1.0
- string-length: 5.0.1
- strip-ansi: 7.2.0
-
- jest-watcher@29.7.0:
- dependencies:
- '@jest/test-result': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 24.12.4
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- emittery: 0.13.1
- jest-util: 29.7.0
- string-length: 4.0.2
-
jest-worker@27.5.1:
dependencies:
'@types/node': 24.12.4
@@ -16149,18 +15742,6 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@24.12.4):
- dependencies:
- '@jest/core': 29.7.0
- '@jest/types': 29.6.3
- import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@24.12.4)
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
jimp-compact@0.16.1: {}
jiti@2.7.0: {}
@@ -16169,6 +15750,8 @@ snapshots:
js-sha256@0.9.0: {}
+ js-tokens@10.0.0: {}
+
js-tokens@4.0.0: {}
js-yaml@3.14.2:
@@ -16182,39 +15765,6 @@ snapshots:
jsc-safe-url@0.2.4: {}
- jsdom@20.0.3:
- dependencies:
- abab: 2.0.6
- acorn: 8.16.0
- acorn-globals: 7.0.1
- cssom: 0.5.0
- cssstyle: 2.3.0
- data-urls: 3.0.2
- decimal.js: 10.6.0
- domexception: 4.0.0
- escodegen: 2.1.0
- form-data: 4.0.5
- html-encoding-sniffer: 3.0.0
- http-proxy-agent: 5.0.0
- https-proxy-agent: 5.0.1
- is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.23
- parse5: 7.3.0
- saxes: 6.0.0
- symbol-tree: 3.2.4
- tough-cookie: 4.1.4
- w3c-xmlserializer: 4.0.0
- webidl-conversions: 7.0.0
- whatwg-encoding: 2.0.0
- whatwg-mimetype: 3.0.0
- whatwg-url: 11.0.0
- ws: 8.20.0
- xml-name-validator: 4.0.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
jsesc@3.1.0: {}
json-buffer@3.0.1: {}
@@ -16332,6 +15882,8 @@ snapshots:
lilconfig@2.1.0: {}
+ lilconfig@3.1.3: {}
+
lines-and-columns@1.2.4: {}
linkify-it@5.0.0:
@@ -16409,6 +15961,11 @@ snapshots:
chalk: 4.1.2
is-unicode-supported: 0.1.0
+ log-symbols@7.0.1:
+ dependencies:
+ is-unicode-supported: 2.1.0
+ yoctocolors: 2.1.2
+
log-update@5.0.1:
dependencies:
ansi-escapes: 5.0.0
@@ -16437,10 +15994,20 @@ snapshots:
dependencies:
yallist: 4.0.0
+ magic-string@0.30.21:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
magic-string@0.30.8:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
+ magicast@0.5.3:
+ dependencies:
+ '@babel/parser': 7.29.3
+ '@babel/types': 7.29.0
+ source-map-js: 1.2.1
+
make-dir@3.1.0:
dependencies:
semver: 6.3.1
@@ -16701,7 +16268,7 @@ snapshots:
mimic-fn@4.0.0: {}
- min-indent@1.0.1: {}
+ mimic-function@5.0.1: {}
mini-css-extract-plugin@2.10.2(webpack@5.106.2(postcss@8.5.14)):
dependencies:
@@ -16832,8 +16399,6 @@ snapshots:
nullthrows@1.1.1: {}
- nwsapi@2.2.23: {}
-
ob1@0.83.3:
dependencies:
flow-enums-runtime: 0.0.6
@@ -16883,6 +16448,8 @@ snapshots:
obuf@1.1.2: {}
+ obug@2.1.1: {}
+
on-finished@2.3.0:
dependencies:
ee-first: 1.1.1
@@ -16909,6 +16476,10 @@ snapshots:
dependencies:
mimic-fn: 4.0.0
+ onetime@7.0.0:
+ dependencies:
+ mimic-function: 5.0.1
+
open@7.4.2:
dependencies:
is-docker: 2.2.1
@@ -16952,6 +16523,17 @@ snapshots:
strip-ansi: 6.0.1
wcwidth: 1.0.1
+ ora@9.4.0:
+ dependencies:
+ chalk: 5.6.2
+ cli-cursor: 5.0.0
+ cli-spinners: 3.4.0
+ is-interactive: 2.0.0
+ is-unicode-supported: 2.1.0
+ log-symbols: 7.0.1
+ stdin-discarder: 0.3.2
+ string-width: 8.2.1
+
orderedmap@2.1.1: {}
own-keys@1.0.1:
@@ -17011,10 +16593,6 @@ snapshots:
dependencies:
pngjs: 3.4.0
- parse5@7.3.0:
- dependencies:
- entities: 6.0.1
-
parseurl@1.3.3: {}
pascal-case@3.1.2:
@@ -17050,6 +16628,8 @@ snapshots:
path-type@4.0.0: {}
+ pathe@2.0.3: {}
+
pend@1.2.0: {}
picocolors@1.1.1: {}
@@ -17304,13 +16884,6 @@ snapshots:
ansi-styles: 5.2.0
react-is: 18.3.1
- pretty-format@30.4.1:
- dependencies:
- '@jest/schemas': 30.4.1
- ansi-styles: 5.2.0
- react-is-18: react-is@18.3.1
- react-is-19: react-is@19.2.6
-
proc-log@4.2.0: {}
process-nextick-args@2.0.1: {}
@@ -17456,8 +17029,6 @@ snapshots:
punycode@2.3.1: {}
- pure-rand@6.1.0: {}
-
qrcode-terminal@0.11.0: {}
qrcode@1.5.4:
@@ -17477,8 +17048,6 @@ snapshots:
split-on-first: 1.1.0
strict-uri-encode: 2.0.0
- querystringify@2.2.0: {}
-
queue-microtask@1.2.3: {}
queue@6.0.2:
@@ -17854,12 +17423,6 @@ snapshots:
optionalDependencies:
'@types/react': 19.1.17
- react-test-renderer@19.1.0(react@19.1.0):
- dependencies:
- react: 19.1.0
- react-is: 19.2.6
- scheduler: 0.26.0
-
react-textarea-autosize@8.5.9(@types/react@19.1.17)(react@19.1.0):
dependencies:
'@babel/runtime': 7.29.2
@@ -17895,10 +17458,7 @@ snapshots:
dependencies:
picomatch: 2.3.2
- redent@3.0.0:
- dependencies:
- indent-string: 4.0.0
- strip-indent: 3.0.0
+ readdirp@5.0.0: {}
reflect.getprototypeof@1.0.10:
dependencies:
@@ -17978,10 +17538,6 @@ snapshots:
reselect@4.1.8: {}
- resolve-cwd@3.0.0:
- dependencies:
- resolve-from: 5.0.0
-
resolve-from@4.0.0: {}
resolve-from@5.0.0: {}
@@ -18027,6 +17583,11 @@ snapshots:
onetime: 5.1.2
signal-exit: 3.0.7
+ restore-cursor@5.1.0:
+ dependencies:
+ onetime: 7.0.0
+ signal-exit: 4.1.0
+
retry@0.13.1: {}
reusify@1.1.0: {}
@@ -18041,6 +17602,27 @@ snapshots:
dependencies:
glob: 7.2.3
+ rolldown@1.0.1:
+ dependencies:
+ '@oxc-project/types': 0.130.0
+ '@rolldown/pluginutils': 1.0.1
+ optionalDependencies:
+ '@rolldown/binding-android-arm64': 1.0.1
+ '@rolldown/binding-darwin-arm64': 1.0.1
+ '@rolldown/binding-darwin-x64': 1.0.1
+ '@rolldown/binding-freebsd-x64': 1.0.1
+ '@rolldown/binding-linux-arm-gnueabihf': 1.0.1
+ '@rolldown/binding-linux-arm64-gnu': 1.0.1
+ '@rolldown/binding-linux-arm64-musl': 1.0.1
+ '@rolldown/binding-linux-ppc64-gnu': 1.0.1
+ '@rolldown/binding-linux-s390x-gnu': 1.0.1
+ '@rolldown/binding-linux-x64-gnu': 1.0.1
+ '@rolldown/binding-linux-x64-musl': 1.0.1
+ '@rolldown/binding-openharmony-arm64': 1.0.1
+ '@rolldown/binding-wasm32-wasi': 1.0.1
+ '@rolldown/binding-win32-arm64-msvc': 1.0.1
+ '@rolldown/binding-win32-x64-msvc': 1.0.1
+
rope-sequence@1.3.4: {}
rtl-detect@1.1.2: {}
@@ -18076,10 +17658,6 @@ snapshots:
sax@1.6.0: {}
- saxes@6.0.0:
- dependencies:
- xmlchars: 2.2.0
-
scheduler@0.26.0: {}
schema-utils@2.7.1:
@@ -18161,8 +17739,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- server-only@0.0.1: {}
-
set-blocking@2.0.0: {}
set-function-length@1.2.2:
@@ -18236,6 +17812,8 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
+ siginfo@2.0.0: {}
+
signal-exit@3.0.7: {}
signal-exit@4.1.0: {}
@@ -18262,8 +17840,6 @@ snapshots:
slash@4.0.0: {}
- slash@5.1.0: {}
-
slice-ansi@5.0.0:
dependencies:
ansi-styles: 6.2.3
@@ -18303,18 +17879,11 @@ snapshots:
source-map-js: 1.2.1
webpack: 5.106.2(postcss@8.5.14)
- source-map-support@0.5.13:
- dependencies:
- buffer-from: 1.1.2
- source-map: 0.6.1
-
source-map-support@0.5.21:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
- source-map@0.5.6: {}
-
source-map@0.5.7: {}
source-map@0.6.1: {}
@@ -18350,27 +17919,14 @@ snapshots:
stable@0.1.8: {}
- stack-generator@2.0.10:
- dependencies:
- stackframe: 1.3.4
-
stack-utils@2.0.6:
dependencies:
escape-string-regexp: 2.0.0
+ stackback@0.0.2: {}
+
stackframe@1.3.4: {}
- stacktrace-gps@3.1.2:
- dependencies:
- source-map: 0.5.6
- stackframe: 1.3.4
-
- stacktrace-js@2.0.2:
- dependencies:
- error-stack-parser: 2.1.4
- stack-generator: 2.0.10
- stacktrace-gps: 3.1.2
-
stacktrace-parser@0.1.11:
dependencies:
type-fest: 0.7.1
@@ -18379,6 +17935,10 @@ snapshots:
statuses@2.0.2: {}
+ std-env@4.1.0: {}
+
+ stdin-discarder@0.3.2: {}
+
stop-iteration-iterator@1.1.0:
dependencies:
es-errors: 1.3.0
@@ -18390,16 +17950,6 @@ snapshots:
string-argv@0.3.2: {}
- string-length@4.0.2:
- dependencies:
- char-regex: 1.0.2
- strip-ansi: 6.0.1
-
- string-length@5.0.1:
- dependencies:
- char-regex: 2.0.2
- strip-ansi: 7.2.0
-
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -18412,6 +17962,11 @@ snapshots:
emoji-regex: 9.2.2
strip-ansi: 7.2.0
+ string-width@8.2.1:
+ dependencies:
+ get-east-asian-width: 1.6.0
+ strip-ansi: 7.2.0
+
string.prototype.matchall@4.0.12:
dependencies:
call-bind: 1.0.9
@@ -18476,16 +18031,10 @@ snapshots:
dependencies:
ansi-regex: 6.2.2
- strip-bom@4.0.0: {}
-
strip-final-newline@2.0.0: {}
strip-final-newline@3.0.0: {}
- strip-indent@3.0.0:
- dependencies:
- min-indent: 1.0.1
-
strip-json-comments@2.0.1: {}
strip-json-comments@3.1.1: {}
@@ -18553,8 +18102,6 @@ snapshots:
picocolors: 1.1.1
sax: 1.6.0
- symbol-tree@3.2.4: {}
-
tapable@2.3.3: {}
tar@7.5.15:
@@ -18625,11 +18172,19 @@ snapshots:
esm: 3.2.25
optional: true
+ tinybench@2.9.0: {}
+
+ tinyexec@1.1.2: {}
+
tinyglobby@0.2.16:
dependencies:
fdir: 6.5.0(picomatch@4.0.4)
picomatch: 4.0.4
+ tinypool@2.1.0: {}
+
+ tinyrainbow@3.1.0: {}
+
tippy.js@6.3.7:
dependencies:
'@popperjs/core': 2.11.8
@@ -18652,21 +18207,10 @@ snapshots:
totalist@3.0.1: {}
- tough-cookie@4.1.4:
- dependencies:
- psl: 1.9.0
- punycode: 2.3.1
- universalify: 0.2.0
- url-parse: 1.5.10
-
toygrad@2.6.0: {}
tr46@0.0.3: {}
- tr46@3.0.0:
- dependencies:
- punycode: 2.3.1
-
ts-api-utils@2.5.0(typescript@6.0.3):
dependencies:
typescript: 6.0.3
@@ -18774,8 +18318,6 @@ snapshots:
unicode-segmenter@0.14.5: {}
- universalify@0.2.0: {}
-
universalify@2.0.1: {}
unpipe@1.0.0: {}
@@ -18826,11 +18368,6 @@ snapshots:
dependencies:
punycode: 2.3.1
- url-parse@1.5.10:
- dependencies:
- querystringify: 2.2.0
- requires-port: 1.0.0
-
use-callback-ref@1.3.3(@types/react@19.1.17)(react@19.1.0):
dependencies:
react: 19.1.0
@@ -18897,24 +18434,56 @@ snapshots:
uuid@9.0.1: {}
- v8-to-istanbul@9.3.0:
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- '@types/istanbul-lib-coverage': 2.0.6
- convert-source-map: 2.0.0
-
validate-npm-package-name@5.0.1: {}
vary@1.1.2: {}
+ vite@8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0):
+ dependencies:
+ lightningcss: 1.32.0
+ picomatch: 4.0.4
+ postcss: 8.5.14
+ rolldown: 1.0.1
+ tinyglobby: 0.2.16
+ optionalDependencies:
+ '@types/node': 24.12.4
+ fsevents: 2.3.3
+ jiti: 2.7.0
+ terser: 5.47.1
+ yaml: 2.9.0
+
+ vitest@4.1.6(@types/node@24.12.4)(@vitest/coverage-v8@4.1.6)(vite@8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0)):
+ dependencies:
+ '@vitest/expect': 4.1.6
+ '@vitest/mocker': 4.1.6(vite@8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0))
+ '@vitest/pretty-format': 4.1.6
+ '@vitest/runner': 4.1.6
+ '@vitest/snapshot': 4.1.6
+ '@vitest/spy': 4.1.6
+ '@vitest/utils': 4.1.6
+ es-module-lexer: 2.1.0
+ expect-type: 1.3.0
+ magic-string: 0.30.21
+ obug: 2.1.1
+ pathe: 2.0.3
+ picomatch: 4.0.4
+ std-env: 4.1.0
+ tinybench: 2.9.0
+ tinyexec: 1.1.2
+ tinyglobby: 0.2.16
+ tinyrainbow: 3.1.0
+ vite: 8.0.13(@types/node@24.12.4)(jiti@2.7.0)(terser@5.47.1)(yaml@2.9.0)
+ why-is-node-running: 2.3.0
+ optionalDependencies:
+ '@types/node': 24.12.4
+ '@vitest/coverage-v8': 4.1.6(vitest@4.1.6)
+ transitivePeerDependencies:
+ - msw
+
vlq@1.0.1: {}
w3c-keyname@2.2.8: {}
- w3c-xmlserializer@4.0.0:
- dependencies:
- xml-name-validator: 4.0.0
-
walker@1.0.8:
dependencies:
makeerror: 1.0.12
@@ -18938,8 +18507,6 @@ snapshots:
webidl-conversions@5.0.0: {}
- webidl-conversions@7.0.0: {}
-
webpack-bundle-analyzer@4.10.2:
dependencies:
'@discoveryjs/json-ext': 0.5.7
@@ -19070,25 +18637,14 @@ snapshots:
websocket-extensions@0.1.4: {}
- whatwg-encoding@2.0.0:
- dependencies:
- iconv-lite: 0.6.3
-
whatwg-fetch@3.6.20: {}
- whatwg-mimetype@3.0.0: {}
-
whatwg-url-without-unicode@8.0.0-3:
dependencies:
buffer: 5.7.1
punycode: 2.3.1
webidl-conversions: 5.0.0
- whatwg-url@11.0.0:
- dependencies:
- tr46: 3.0.0
- webidl-conversions: 7.0.0
-
whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
@@ -19141,6 +18697,11 @@ snapshots:
dependencies:
isexe: 2.0.0
+ why-is-node-running@2.3.0:
+ dependencies:
+ siginfo: 2.0.0
+ stackback: 0.0.2
+
wonka@6.3.6: {}
word-wrap@1.2.5: {}
@@ -19183,21 +18744,15 @@ snapshots:
simple-plist: 1.3.1
uuid: 7.0.3
- xml-name-validator@4.0.0: {}
-
xml2js@0.6.0:
dependencies:
sax: 1.6.0
xmlbuilder: 11.0.1
- xml@1.0.1: {}
-
xmlbuilder@11.0.1: {}
xmlbuilder@15.1.1: {}
- xmlchars@2.2.0: {}
-
y18n@4.0.3: {}
y18n@5.0.8: {}
@@ -19252,6 +18807,8 @@ snapshots:
yocto-queue@0.1.0: {}
+ yoctocolors@2.1.2: {}
+
zeed-dom@0.15.1:
dependencies:
css-what: 6.2.2
diff --git a/src/alf/util/__tests__/colors.test.ts b/src/alf/util/__tests__/colors.test.ts
index 1ecb7394bd..29eb7d0ec2 100644
--- a/src/alf/util/__tests__/colors.test.ts
+++ b/src/alf/util/__tests__/colors.test.ts
@@ -1,10 +1,10 @@
-import {jest} from '@jest/globals'
+import {beforeEach, describe, expect, it, vi} from 'vitest'
import {transparentifyColor} from '../colorGeneration'
describe('transparentifyColor', () => {
beforeEach(() => {
- jest.clearAllMocks()
+ vi.clearAllMocks()
})
it('converts hsl() to hsla()', () => {
diff --git a/src/analytics/identifiers/session.test.ts b/src/analytics/identifiers/session.test.ts
index ab334ff497..f1df157e9c 100644
--- a/src/analytics/identifiers/session.test.ts
+++ b/src/analytics/identifiers/session.test.ts
@@ -1,39 +1,41 @@
-jest.mock('#/storage', () => ({
+import {beforeEach, describe, expect, it, vi} from 'vitest'
+
+vi.mock('#/storage', () => ({
device: {
- get: jest.fn(),
- set: jest.fn(),
+ get: vi.fn(),
+ set: vi.fn(),
},
}))
-jest.mock('#/analytics/identifiers/util', () => ({
- isSessionIdExpired: jest.fn(),
+vi.mock('#/analytics/identifiers/util', () => ({
+ isSessionIdExpired: vi.fn(),
}))
-jest.mock('#/lib/appState', () => ({
- onAppStateChange: jest.fn(() => ({remove: jest.fn()})),
+vi.mock('#/lib/appState', () => ({
+ onAppStateChange: vi.fn(() => ({remove: vi.fn()})),
}))
beforeEach(() => {
- jest.resetModules()
- jest.clearAllMocks()
+ vi.resetModules()
+ vi.clearAllMocks()
})
-function getMocks() {
- const {device} = require('#/storage')
- const {isSessionIdExpired} = require('#/analytics/identifiers/util')
+async function getMocks() {
+ const {device} = await import('#/storage')
+ const {isSessionIdExpired} = await import('#/analytics/identifiers/util')
return {
- device: jest.mocked(device),
- isSessionIdExpired: jest.mocked(isSessionIdExpired),
+ device: vi.mocked(device),
+ isSessionIdExpired: vi.mocked(isSessionIdExpired),
}
}
describe('session initialization', () => {
- it('creates new session and sets timestamp when none exists', () => {
- const {device, isSessionIdExpired} = getMocks()
+ it('creates new session and sets timestamp when none exists', async () => {
+ const {device, isSessionIdExpired} = await getMocks()
device.get.mockReturnValue(undefined)
isSessionIdExpired.mockReturnValue(false)
- const {getInitialSessionId} = require('./session')
+ const {getInitialSessionId} = await import('./session')
const id = getInitialSessionId()
expect(id).toBeDefined()
@@ -45,8 +47,8 @@ describe('session initialization', () => {
)
})
- it('reuses existing session when not expired', () => {
- const {device, isSessionIdExpired} = getMocks()
+ it('reuses existing session when not expired', async () => {
+ const {device, isSessionIdExpired} = await getMocks()
const existingId = 'existing-session-id'
device.get.mockImplementation((key: string[]) => {
if (key[0] === 'nativeSessionId') return existingId
@@ -55,13 +57,13 @@ describe('session initialization', () => {
})
isSessionIdExpired.mockReturnValue(false)
- const {getInitialSessionId} = require('./session')
+ const {getInitialSessionId} = await import('./session')
expect(getInitialSessionId()).toBe(existingId)
})
- it('creates new session when existing is expired', () => {
- const {device, isSessionIdExpired} = getMocks()
+ it('creates new session when existing is expired', async () => {
+ const {device, isSessionIdExpired} = await getMocks()
const existingId = 'existing-session-id'
device.get.mockImplementation((key: string[]) => {
if (key[0] === 'nativeSessionId') return existingId
@@ -70,7 +72,7 @@ describe('session initialization', () => {
})
isSessionIdExpired.mockReturnValue(true)
- const {getInitialSessionId} = require('./session')
+ const {getInitialSessionId} = await import('./session')
const id = getInitialSessionId()
expect(id).not.toBe(existingId)
diff --git a/src/analytics/metrics/client.test.ts b/src/analytics/metrics/client.test.ts
index 000e2894bf..8b5e0c1960 100644
--- a/src/analytics/metrics/client.test.ts
+++ b/src/analytics/metrics/client.test.ts
@@ -1,26 +1,28 @@
+import {afterEach, beforeEach, describe, expect, it, type Mock, vi} from 'vitest'
+
import {MetricsClient} from './client'
let appStateCallback: (state: string) => void
-jest.mock('#/lib/appState', () => ({
- onAppStateChange: jest.fn(cb => {
+vi.mock('#/lib/appState', () => ({
+ onAppStateChange: vi.fn(cb => {
appStateCallback = cb
- return {remove: jest.fn()}
+ return {remove: vi.fn()}
}),
}))
-jest.mock('#/logger', () => ({
+vi.mock('#/logger', () => ({
Logger: {
create: () => ({
- info: jest.fn(),
- debug: jest.fn(),
- error: jest.fn(),
+ info: vi.fn(),
+ debug: vi.fn(),
+ error: vi.fn(),
}),
Context: {Metric: 'metric'},
},
}))
-jest.mock('#/env', () => ({
+vi.mock('#/env', () => ({
METRICS_API_HOST: 'https://test.metrics.api',
IS_WEB: false,
}))
@@ -31,13 +33,13 @@ type TestEvents = {
}
describe('MetricsClient', () => {
- let fetchMock: jest.Mock
+ let fetchMock: Mock
let fetchRequests: {body: any}[]
beforeEach(() => {
- jest.useFakeTimers({advanceTimers: true})
+ vi.useFakeTimers({shouldAdvanceTime: true})
fetchRequests = []
- fetchMock = jest.fn().mockImplementation(async (_url, options) => {
+ fetchMock = vi.fn().mockImplementation(async (_url, options) => {
const body = JSON.parse(options.body)
fetchRequests.push({body})
return {ok: true, status: 200}
@@ -46,8 +48,8 @@ describe('MetricsClient', () => {
})
afterEach(() => {
- jest.useRealTimers()
- jest.clearAllMocks()
+ vi.useRealTimers()
+ vi.clearAllMocks()
})
it('flushes events on interval', async () => {
@@ -58,7 +60,7 @@ describe('MetricsClient', () => {
expect(fetchRequests).toHaveLength(0)
// Advance past the 10 second interval
- await jest.advanceTimersByTimeAsync(10_000)
+ await vi.advanceTimersByTimeAsync(10_000)
expect(fetchRequests).toHaveLength(1)
expect(fetchRequests[0].body.events).toHaveLength(2)
@@ -81,7 +83,7 @@ describe('MetricsClient', () => {
client.track('click', {button: 'btn-trigger'})
// Allow microtasks to run
- await jest.advanceTimersByTimeAsync(0)
+ await vi.advanceTimersByTimeAsync(0)
expect(fetchRequests).toHaveLength(1)
expect(fetchRequests[0].body.events).toHaveLength(6)
@@ -112,14 +114,14 @@ describe('MetricsClient', () => {
client.track('click', {button: 'submit'})
// Trigger flush via interval
- await jest.advanceTimersByTimeAsync(10_000)
+ await vi.advanceTimersByTimeAsync(10_000)
expect(requestCount).toBe(1)
expect(fetchRequests).toHaveLength(0)
// Simulate app coming to foreground to trigger retry
appStateCallback('active')
- await jest.advanceTimersByTimeAsync(0)
+ await vi.advanceTimersByTimeAsync(0)
expect(requestCount).toBe(2)
expect(fetchRequests).toHaveLength(1)
@@ -144,19 +146,19 @@ describe('MetricsClient', () => {
client.track('click', {button: 'submit'})
// First flush fails
- await jest.advanceTimersByTimeAsync(10_000)
+ await vi.advanceTimersByTimeAsync(10_000)
expect(requestCount).toBe(1)
// Retry also fails
appStateCallback('active')
- await jest.advanceTimersByTimeAsync(0)
+ await vi.advanceTimersByTimeAsync(0)
expect(requestCount).toBe(2)
// Another foreground event should not retry again (events are dropped)
appStateCallback('active')
- await jest.advanceTimersByTimeAsync(0)
+ await vi.advanceTimersByTimeAsync(0)
expect(requestCount).toBe(2) // No additional requests
})
@@ -169,7 +171,7 @@ describe('MetricsClient', () => {
// Simulate app going to background
appStateCallback('background')
- await jest.advanceTimersByTimeAsync(0)
+ await vi.advanceTimersByTimeAsync(0)
expect(fetchRequests).toHaveLength(1)
})
diff --git a/src/components/PolicyUpdateOverlay/__tests__/useAnnouncementState.test.ts b/src/components/PolicyUpdateOverlay/__tests__/useAnnouncementState.test.ts
index f6055bf34a..38da9fdfea 100644
--- a/src/components/PolicyUpdateOverlay/__tests__/useAnnouncementState.test.ts
+++ b/src/components/PolicyUpdateOverlay/__tests__/useAnnouncementState.test.ts
@@ -1,11 +1,11 @@
-import {describe, test} from '@jest/globals'
+import {describe, expect, test, vi} from 'vitest'
import {
computeCompletedState,
syncCompletedState,
} from '#/components/PolicyUpdateOverlay/usePolicyUpdateState'
-jest.mock('../../../state/queries/nuxs')
+vi.mock('../../../state/queries/nuxs')
describe('computeCompletedState', () => {
test(`initial state`, () => {
@@ -67,8 +67,8 @@ describe('computeCompletedState', () => {
describe('syncCompletedState', () => {
describe('!nuxIsReady', () => {
test(`!completedForDevice, no-op`, () => {
- const save = jest.fn()
- const setCompletedForDevice = jest.fn()
+ const save = vi.fn()
+ const setCompletedForDevice = vi.fn()
syncCompletedState({
nuxIsReady: false,
nuxIsCompleted: false,
@@ -83,8 +83,8 @@ describe('syncCompletedState', () => {
})
test(`completedForDevice, no-op`, () => {
- const save = jest.fn()
- const setCompletedForDevice = jest.fn()
+ const save = vi.fn()
+ const setCompletedForDevice = vi.fn()
syncCompletedState({
nuxIsReady: false,
nuxIsCompleted: false,
@@ -103,8 +103,8 @@ describe('syncCompletedState', () => {
describe(`!nuxIsCompleted`, () => {
describe(`!nuxIsOptimisticallyCompleted`, () => {
test(`!completedForDevice, no-op`, () => {
- const save = jest.fn()
- const setCompletedForDevice = jest.fn()
+ const save = vi.fn()
+ const setCompletedForDevice = vi.fn()
syncCompletedState({
nuxIsReady: true,
nuxIsCompleted: false,
@@ -119,8 +119,8 @@ describe('syncCompletedState', () => {
})
test(`completedForDevice, syncs to server`, () => {
- const save = jest.fn()
- const setCompletedForDevice = jest.fn()
+ const save = vi.fn()
+ const setCompletedForDevice = vi.fn()
syncCompletedState({
nuxIsReady: true,
nuxIsCompleted: false,
@@ -141,8 +141,8 @@ describe('syncCompletedState', () => {
*/
describe(`nuxIsOptimisticallyCompleted`, () => {
test(`completedForDevice, no-op`, () => {
- const save = jest.fn()
- const setCompletedForDevice = jest.fn()
+ const save = vi.fn()
+ const setCompletedForDevice = vi.fn()
syncCompletedState({
nuxIsReady: true,
nuxIsCompleted: false,
@@ -160,8 +160,8 @@ describe('syncCompletedState', () => {
describe(`nuxIsCompleted`, () => {
test(`!completedForDevice, syncs to device`, () => {
- const save = jest.fn()
- const setCompletedForDevice = jest.fn()
+ const save = vi.fn()
+ const setCompletedForDevice = vi.fn()
syncCompletedState({
nuxIsReady: true,
nuxIsCompleted: true,
@@ -176,8 +176,8 @@ describe('syncCompletedState', () => {
})
test(`completedForDevice, no-op`, () => {
- const save = jest.fn()
- const setCompletedForDevice = jest.fn()
+ const save = vi.fn()
+ const setCompletedForDevice = vi.fn()
syncCompletedState({
nuxIsReady: true,
nuxIsCompleted: true,
diff --git a/src/lib/__tests__/parseLinkingUrl.test.ts b/src/lib/__tests__/parseLinkingUrl.test.ts
index 48bb927e01..d87468eb69 100644
--- a/src/lib/__tests__/parseLinkingUrl.test.ts
+++ b/src/lib/__tests__/parseLinkingUrl.test.ts
@@ -1,4 +1,4 @@
-import {describe, expect, it} from '@jest/globals'
+import {describe, expect, it} from 'vitest'
import {parseLinkingUrl} from '../parseLinkingUrl'
diff --git a/src/lib/__tests__/persisted-query-storage.test.ts b/src/lib/__tests__/persisted-query-storage.test.ts
index fe6a61884b..e61f92f529 100644
--- a/src/lib/__tests__/persisted-query-storage.test.ts
+++ b/src/lib/__tests__/persisted-query-storage.test.ts
@@ -1,6 +1,6 @@
-import {beforeEach, describe, expect, it, jest} from '@jest/globals'
+import {beforeEach, describe, expect, it, vi} from 'vitest'
-jest.mock('@bsky.app/react-native-mmkv', () => ({
+vi.mock('@bsky.app/react-native-mmkv', () => ({
MMKV: class MMKVMock {
_store = new Map()
diff --git a/src/lib/hooks/__tests__/useTimeAgo.test.ts b/src/lib/hooks/__tests__/useTimeAgo.test.ts
index 68eb6e43a9..c86e08189a 100644
--- a/src/lib/hooks/__tests__/useTimeAgo.test.ts
+++ b/src/lib/hooks/__tests__/useTimeAgo.test.ts
@@ -1,4 +1,4 @@
-import {describe, expect, it} from '@jest/globals'
+import {describe, expect, it} from 'vitest'
import {addDays, subDays, subHours, subMinutes, subSeconds} from 'date-fns'
import {dateDiff} from '../useTimeAgo'
diff --git a/src/locale/__tests__/helpers.test.ts b/src/locale/__tests__/helpers.test.ts
index 44f0901f13..9c53861eee 100644
--- a/src/locale/__tests__/helpers.test.ts
+++ b/src/locale/__tests__/helpers.test.ts
@@ -1,4 +1,4 @@
-import {expect, test} from '@jest/globals'
+import {expect, test} from 'vitest'
import {sanitizeAppLanguageSetting} from '#/locale/helpers'
import {AppLanguage} from '#/locale/languages'
diff --git a/src/logger/__tests__/logDump.test.ts b/src/logger/__tests__/logDump.test.ts
index 9575b70623..cc249fdf16 100644
--- a/src/logger/__tests__/logDump.test.ts
+++ b/src/logger/__tests__/logDump.test.ts
@@ -1,4 +1,4 @@
-import {expect, test} from '@jest/globals'
+import {expect, test} from 'vitest'
import {add, type ConsoleTransportEntry, getEntries} from '#/logger/logDump'
import {LogContext, LogLevel} from '#/logger/types'
diff --git a/src/logger/__tests__/logger.test.ts b/src/logger/__tests__/logger.test.ts
index 2f6915a4b3..48dd4bb0eb 100644
--- a/src/logger/__tests__/logger.test.ts
+++ b/src/logger/__tests__/logger.test.ts
@@ -1,4 +1,4 @@
-import {beforeAll, describe, expect, jest, test} from '@jest/globals'
+import {beforeAll, describe, expect, test, vi} from 'vitest'
import * as Sentry from '@sentry/react-native'
import {nanoid} from 'nanoid/non-secure'
@@ -6,14 +6,14 @@ import {Logger} from '#/logger'
import {sentryTransport} from '#/logger/transports/sentry'
import {LogLevel} from '#/logger/types'
-jest.mock('@sentry/react-native', () => ({
- addBreadcrumb: jest.fn(),
- captureException: jest.fn(),
- captureMessage: jest.fn(),
+vi.mock('@sentry/react-native', () => ({
+ addBreadcrumb: vi.fn(),
+ captureException: vi.fn(),
+ captureMessage: vi.fn(),
}))
beforeAll(() => {
- jest.useFakeTimers()
+ vi.useFakeTimers()
})
describe('general functionality', () => {
@@ -41,7 +41,7 @@ describe('general functionality', () => {
const timestamp = Date.now()
const logger = new Logger({})
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
logger.addTransport(mockTransport)
@@ -63,7 +63,7 @@ describe('general functionality', () => {
metadata: {bar: true},
})
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
logger.addTransport(mockTransport)
@@ -83,7 +83,7 @@ describe('general functionality', () => {
const timestamp = Date.now()
const logger = new Logger({})
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
const remove = logger.addTransport(mockTransport)
@@ -181,7 +181,7 @@ describe('general functionality', () => {
level: 'log',
timestamp: sentryTimestamp,
})
- jest.runAllTimers()
+ vi.runAllTimers()
expect(Sentry.captureMessage).toHaveBeenCalledWith(message, {
level: 'log',
tags: {category: 'logger'},
@@ -203,7 +203,7 @@ describe('general functionality', () => {
level: 'warning',
timestamp: sentryTimestamp,
})
- jest.runAllTimers()
+ vi.runAllTimers()
expect(Sentry.captureMessage).toHaveBeenCalledWith(message, {
level: 'warning',
tags: {category: 'logger'},
@@ -262,7 +262,7 @@ describe('general functionality', () => {
test('add/remove transport', () => {
const timestamp = Date.now()
const logger = new Logger({})
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
const remove = logger.addTransport(mockTransport)
@@ -286,7 +286,7 @@ describe('general functionality', () => {
describe('create', () => {
test('create', () => {
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
const timestamp = Date.now()
const message = nanoid()
const logger = Logger.create(Logger.Context.Default)
@@ -306,7 +306,7 @@ describe('create', () => {
describe('debug contexts', () => {
test('specific', () => {
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
const timestamp = Date.now()
const message = nanoid()
const logger = new Logger({
@@ -328,7 +328,7 @@ describe('debug contexts', () => {
})
test('namespaced', () => {
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
const timestamp = Date.now()
const message = nanoid()
const logger = new Logger({
@@ -351,7 +351,7 @@ describe('debug contexts', () => {
})
test('ignores inactive', () => {
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
const timestamp = Date.now()
const message = nanoid()
const logger = new Logger({
@@ -380,7 +380,7 @@ describe('supports levels', () => {
level: LogLevel.Debug,
})
const message = nanoid()
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
logger.addTransport(mockTransport)
@@ -428,7 +428,7 @@ describe('supports levels', () => {
level: LogLevel.Info,
})
const message = nanoid()
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
logger.addTransport(mockTransport)
@@ -451,7 +451,7 @@ describe('supports levels', () => {
level: LogLevel.Warn,
})
const message = nanoid()
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
logger.addTransport(mockTransport)
@@ -477,7 +477,7 @@ describe('supports levels', () => {
level: LogLevel.Error,
})
const message = nanoid()
- const mockTransport = jest.fn()
+ const mockTransport = vi.fn()
logger.addTransport(mockTransport)
diff --git a/src/screens/Search/__tests__/utils.test.ts b/src/screens/Search/__tests__/utils.test.ts
index 81610cc59a..d83cd76b10 100644
--- a/src/screens/Search/__tests__/utils.test.ts
+++ b/src/screens/Search/__tests__/utils.test.ts
@@ -1,4 +1,4 @@
-import {describe, expect, it} from '@jest/globals'
+import {describe, expect, it} from 'vitest'
import {parseSearchQuery} from '#/screens/Search/utils'
diff --git a/src/state/messages/__tests__/convo.test.ts b/src/state/messages/__tests__/convo.test.ts
index 34df5f94ab..62c593015b 100644
--- a/src/state/messages/__tests__/convo.test.ts
+++ b/src/state/messages/__tests__/convo.test.ts
@@ -1,4 +1,4 @@
-import {describe, it} from '@jest/globals'
+import {describe, it} from 'vitest'
describe(`#/state/messages/convo`, () => {
describe(`init`, () => {
diff --git a/src/state/queries/nuxs/__mocks__/index.ts b/src/state/queries/nuxs/__mocks__/index.ts
index c718b15940..8fa6f50846 100644
--- a/src/state/queries/nuxs/__mocks__/index.ts
+++ b/src/state/queries/nuxs/__mocks__/index.ts
@@ -1,25 +1,25 @@
-import {jest} from '@jest/globals'
+import {vi} from 'vitest'
export {Nux} from '#/state/queries/nuxs/definitions'
-export const useNuxs = jest.fn(() => {
+export const useNuxs = vi.fn(() => {
return {
nuxs: undefined,
status: 'loading' as const,
}
})
-export const useNux = jest.fn((id: string) => {
+export const useNux = vi.fn((id: string) => {
return {
nux: undefined,
status: 'loading' as const,
}
})
-export const useSaveNux = jest.fn(() => {
+export const useSaveNux = vi.fn(() => {
return {}
})
-export const useResetNuxs = jest.fn(() => {
+export const useResetNuxs = vi.fn(() => {
return {}
})
diff --git a/src/state/session/__tests__/session-test.ts b/src/state/session/__tests__/session-test.ts
index 4b014d6448..37d90869c8 100644
--- a/src/state/session/__tests__/session-test.ts
+++ b/src/state/session/__tests__/session-test.ts
@@ -1,21 +1,21 @@
import {BskyAgent} from '@atproto/api'
-import {describe, expect, it, jest} from '@jest/globals'
+import {describe, expect, it, vi} from 'vitest'
import {agentToSessionAccountOrThrow} from '../agent'
import {type Action, getInitialState, reducer, type State} from '../reducer'
-jest.mock('jwt-decode', () => ({
+vi.mock('jwt-decode', () => ({
jwtDecode(_token: string) {
return {}
},
}))
-jest.mock('../../birthdate')
-jest.mock('../../../ageAssurance/data')
-jest.mock('../../../ageAssurance/state', () => ({
+vi.mock('../../birthdate')
+vi.mock('../../../ageAssurance/data')
+vi.mock('../../../ageAssurance/state', () => ({
getAndComputeAgeAssuranceState: () => ({}),
}))
-jest.mock('#/lib/notifications/notifications', () => ({
+vi.mock('#/lib/notifications/notifications', () => ({
unregisterPushToken(_agents: BskyAgent[]) {
return Promise.resolve()
},
diff --git a/src/storage/__tests__/index.test.ts b/src/storage/__tests__/index.test.ts
index 0b57d365ff..e4ede83154 100644
--- a/src/storage/__tests__/index.test.ts
+++ b/src/storage/__tests__/index.test.ts
@@ -1,8 +1,8 @@
-import {beforeEach, expect, jest, test} from '@jest/globals'
+import {beforeEach, expect, test, vi} from 'vitest'
import {Storage} from '#/storage'
-jest.mock('@bsky.app/react-native-mmkv', () => ({
+vi.mock('@bsky.app/react-native-mmkv', () => ({
MMKV: class MMKVMock {
_store = new Map()
diff --git a/tsconfig.json b/tsconfig.json
index 8d76de8a00..3dd63f11f3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,7 +4,7 @@
"jsx": "react-jsx",
"module": "esnext",
"lib": ["dom", "esnext"],
- "types": ["node", "jest"],
+ "types": ["node"],
"paths": {
"#/*": ["./src/*"],
"crypto": ["./src/platform/crypto.ts"],
diff --git a/vitest.config.ts b/vitest.config.ts
new file mode 100644
index 0000000000..b4d928ea86
--- /dev/null
+++ b/vitest.config.ts
@@ -0,0 +1,63 @@
+import {fileURLToPath} from 'node:url'
+
+import {lingui} from '@lingui/vite-plugin'
+import {defineConfig} from 'vitest/config'
+
+export default defineConfig({
+ plugins: [lingui()],
+ define: {
+ __DEV__: 'true',
+ },
+ resolve: {
+ tsconfigPaths: true,
+ alias: {
+ crypto: fileURLToPath(new URL('./src/platform/crypto.ts', import.meta.url)),
+ },
+ },
+ test: {
+ globals: false,
+ environment: 'node',
+ setupFiles: ['./vitest/setup.ts'],
+ include: [
+ '__tests__/**/*.test.{ts,tsx,js,jsx}',
+ 'src/**/*.test.{ts,tsx}',
+ 'src/**/__tests__/**/*.{ts,tsx}',
+ 'eslint/**/*.test.{js,ts}',
+ ],
+ exclude: [
+ '**/node_modules/**',
+ '**/__mocks__/**',
+ '__e2e__/**',
+ 'bskylink/**',
+ 'bskyembed/**',
+ ],
+ testTimeout: 20000,
+ coverage: {
+ provider: 'v8',
+ exclude: [
+ 'node_modules/**',
+ 'src/platform/**',
+ 'src/third-party/**',
+ 'src/view/com/util/**',
+ 'src/state/lib/**',
+ '__tests__/test-utils.js',
+ ],
+ },
+ server: {
+ deps: {
+ inline: [
+ /^react-native($|\/)/,
+ /^@react-native($|\/)/,
+ /^expo($|-|\/)/,
+ /^@expo($|\/)/,
+ /^@react-navigation($|\/)/,
+ /^react-native-svg($|\/)/,
+ /^nanoid($|\/)/,
+ /^@sentry($|\/)/,
+ /^sentry-expo($|\/)/,
+ /^bcp-47-match($|\/)/,
+ ],
+ },
+ },
+ },
+})
diff --git a/vitest/setup.ts b/vitest/setup.ts
new file mode 100644
index 0000000000..f8b5e83cd0
--- /dev/null
+++ b/vitest/setup.ts
@@ -0,0 +1,134 @@
+import {EventEmitter} from 'node:events'
+
+import {vi} from 'vitest'
+
+// react-native ships Flow syntax in its index.js entry point, which Vitest's
+// rolldown parser cannot handle. None of the tests exercise actual RN runtime
+// behavior, so stub the whole module to satisfy transitive imports.
+vi.mock('react-native', () => ({
+ Platform: {OS: 'ios', select: (obj: any) => obj.ios ?? obj.default},
+ StyleSheet: {create: (s: any) => s, flatten: (s: any) => s, hairlineWidth: 1},
+ View: 'View',
+ Text: 'Text',
+ ScrollView: 'ScrollView',
+ FlatList: 'FlatList',
+ TextInput: 'TextInput',
+ Modal: 'Modal',
+ Image: 'Image',
+ Pressable: 'Pressable',
+ TouchableOpacity: 'TouchableOpacity',
+ TouchableWithoutFeedback: 'TouchableWithoutFeedback',
+ NativeModules: {},
+ NativeEventEmitter: EventEmitter,
+ AppState: {addEventListener: () => ({remove: () => {}}), currentState: 'active'},
+ Linking: {openURL: vi.fn(), canOpenURL: vi.fn().mockResolvedValue(true)},
+ Dimensions: {get: () => ({width: 375, height: 812}), addEventListener: () => ({remove: () => {}})},
+ PixelRatio: {get: () => 2, getFontScale: () => 1},
+ Keyboard: {addListener: () => ({remove: () => {}}), dismiss: () => {}},
+ InteractionManager: {runAfterInteractions: (fn: () => void) => fn()},
+ Animated: {View: 'AnimatedView', Value: class {}, timing: () => ({start: () => {}})},
+ UIManager: {},
+}))
+
+vi.mock('@react-native-async-storage/async-storage', () =>
+ require('@react-native-async-storage/async-storage/jest/async-storage-mock'),
+)
+
+vi.mock('react-native/Libraries/EventEmitter/NativeEventEmitter', () => ({
+ __esModule: true,
+ default: EventEmitter,
+}))
+
+vi.mock('@fortawesome/react-native-fontawesome', () => ({
+ FontAwesomeIcon: '',
+}))
+
+vi.mock('react-native-safe-area-context', () => {
+ const inset = {top: 0, right: 0, bottom: 0, left: 0}
+ return {
+ SafeAreaProvider: vi.fn().mockImplementation(({children}) => children),
+ SafeAreaConsumer: vi
+ .fn()
+ .mockImplementation(({children}) => children(inset)),
+ useSafeAreaInsets: vi.fn().mockImplementation(() => inset),
+ }
+})
+
+vi.mock('expo-file-system/legacy', () => ({
+ getInfoAsync: vi.fn().mockResolvedValue({exists: true, size: 100}),
+ deleteAsync: vi.fn(),
+ moveAsync: vi.fn().mockResolvedValue(undefined),
+ createDownloadResumable: vi.fn(),
+}))
+
+vi.mock('expo-image-manipulator', () => ({
+ manipulateAsync: vi.fn().mockResolvedValue({
+ uri: 'file://resized-image',
+ }),
+ SaveFormat: {
+ JPEG: 'jpeg',
+ WEBP: 'webp',
+ },
+}))
+
+vi.mock('expo-camera', () => ({
+ Camera: {
+ useCameraPermissions: vi.fn(() => [true]),
+ },
+}))
+
+vi.mock('expo-media-library', () => ({
+ __esModule: true,
+ default: vi.fn(),
+ usePermissions: vi.fn(() => [true]),
+}))
+
+vi.mock('@bsky.app/expo-guess-language', () => ({
+ guessLanguageSync: vi
+ .fn()
+ .mockReturnValue([{language: 'en', confidence: 1}]),
+ guessLanguageAsync: vi
+ .fn()
+ .mockResolvedValue([{language: 'en', confidence: 1}]),
+}))
+
+vi.mock('sentry-expo', () => ({
+ init: () => vi.fn(),
+ Native: {
+ ReactNativeTracing: vi.fn().mockImplementation(() => ({
+ start: vi.fn(),
+ stop: vi.fn(),
+ })),
+ ReactNavigationInstrumentation: vi.fn(),
+ },
+}))
+
+vi.mock('crypto', () => ({}))
+
+vi.mock('expo-application', () => ({
+ nativeApplicationVersion: '1.0.0',
+ nativeBuildVersion: '1',
+}))
+
+vi.mock('expo-modules-core', () => ({
+ requireNativeModule: vi.fn().mockImplementation(moduleName => {
+ if (moduleName === 'ExpoPlatformInfo') {
+ return {
+ getIsReducedMotionEnabled: () => false,
+ }
+ }
+ if (moduleName === 'BottomSheet') {
+ return {
+ dismissAll: () => {},
+ }
+ }
+ }),
+ requireNativeViewManager: vi.fn().mockImplementation(_ => {
+ return () => null
+ }),
+ createPermissionHook: () => () => [true],
+}))
+
+vi.mock('expo-localization', () => ({
+ getLocales: () => [],
+}))