0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2024-12-30 20:33:54 -05:00

refactor: remove jest

This commit is contained in:
Gao Sun 2024-03-28 14:49:15 +08:00
parent 02833b0c39
commit 3f152a8cab
No known key found for this signature in database
GPG key ID: 13EBE123E4773688
17 changed files with 69 additions and 151 deletions

View file

@ -1,13 +0,0 @@
/** @type {import('jest').Config} */
const config = {
transform: {},
coveragePathIgnorePatterns: ['/node_modules/', '/src/__mocks__/'],
coverageReporters: ['text-summary', 'lcov'],
coverageProvider: 'v8',
roots: ['./lib'],
moduleNameMapper: {
'^(chalk|inquirer)$': '<rootDir>/../shared/lib/esm/module-proxy.js',
},
};
export default config;

View file

@ -26,15 +26,14 @@
"generate": "./generate.sh", "generate": "./generate.sh",
"build:alterations": "rm -rf alterations-js && tsc -p tsconfig.build.alterations.json", "build:alterations": "rm -rf alterations-js && tsc -p tsconfig.build.alterations.json",
"build": "pnpm generate && rm -rf lib/ && tsc -p tsconfig.build.json && pnpm build:alterations", "build": "pnpm generate && rm -rf lib/ && tsc -p tsconfig.build.json && pnpm build:alterations",
"build:test": "pnpm generate && rm -rf lib/ && tsc -p tsconfig.test.json --sourcemap", "build:test": "pnpm build",
"dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput --incremental", "dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput --incremental",
"lint": "eslint --ext .ts src", "lint": "eslint --ext .ts src",
"lint:report": "pnpm lint --format json --output-file report.json", "lint:report": "pnpm lint --format json --output-file report.json",
"prepublishOnly": "! ls alterations/next-*", "prepublishOnly": "! ls alterations/next-*",
"prepack": "pnpm build", "prepack": "pnpm build",
"test:only": "NODE_OPTIONS=--experimental-vm-modules jest", "test": "vitest src",
"test": "pnpm build:test && pnpm test:only", "test:ci": "pnpm run test --silent --coverage"
"test:ci": "pnpm test:only"
}, },
"engines": { "engines": {
"node": "^20.9.0" "node": "^20.9.0"
@ -42,21 +41,21 @@
"devDependencies": { "devDependencies": {
"@silverhand/eslint-config": "5.0.0", "@silverhand/eslint-config": "5.0.0",
"@silverhand/essentials": "^2.9.0", "@silverhand/essentials": "^2.9.0",
"@silverhand/slonik": "31.0.0-beta.2",
"@silverhand/ts-config": "5.0.0", "@silverhand/ts-config": "5.0.0",
"@types/inquirer": "^9.0.0", "@types/inquirer": "^9.0.0",
"@types/jest": "^29.4.0",
"@types/node": "^20.9.5", "@types/node": "^20.9.5",
"@types/pluralize": "^0.0.33", "@types/pluralize": "^0.0.33",
"@vitest/coverage-v8": "^1.4.0",
"camelcase": "^8.0.0", "camelcase": "^8.0.0",
"chalk": "^5.0.0", "chalk": "^5.0.0",
"eslint": "^8.44.0", "eslint": "^8.44.0",
"jest": "^29.7.0",
"lint-staged": "^15.0.0", "lint-staged": "^15.0.0",
"pluralize": "^8.0.0", "pluralize": "^8.0.0",
"prettier": "^3.0.0", "prettier": "^3.0.0",
"roarr": "^7.11.0", "roarr": "^7.11.0",
"@silverhand/slonik": "31.0.0-beta.2", "typescript": "^5.3.3",
"typescript": "^5.3.3" "vitest": "^1.4.0"
}, },
"eslintConfig": { "eslintConfig": {
"extends": "@silverhand", "extends": "@silverhand",

View file

@ -1,3 +1,5 @@
import { describe, it, expect } from 'vitest';
import { parseType, getType, splitTableFieldDefinitions } from './utils.js'; import { parseType, getType, splitTableFieldDefinitions } from './utils.js';
describe('splitTableFieldDefinitions', () => { describe('splitTableFieldDefinitions', () => {

View file

@ -1,3 +1,5 @@
import { describe, it, expect } from 'vitest';
import { findDuplicatedOrBlockedEmailDomains } from './domain.js'; import { findDuplicatedOrBlockedEmailDomains } from './domain.js';
describe('findDuplicatedOrBlockedEmailDomains', () => { describe('findDuplicatedOrBlockedEmailDomains', () => {

View file

@ -1,8 +0,0 @@
{
"extends": "./tsconfig",
"compilerOptions": {
"isolatedModules": false,
"allowJs": true
},
"include": ["src"]
}

View file

@ -1,13 +0,0 @@
/** @type {import('jest').Config} */
const config = {
transform: {},
coveragePathIgnorePatterns: ['/node_modules/', '/src/__mocks__/'],
coverageReporters: ['text-summary', 'lcov'],
coverageProvider: 'v8',
roots: ['./lib'],
moduleNameMapper: {
'^(chalk|inquirer)$': '<rootDir>/../shared/lib/esm/module-proxy.js',
},
};
export default config;

View file

@ -28,26 +28,26 @@
"scripts": { "scripts": {
"precommit": "lint-staged", "precommit": "lint-staged",
"build": "rm -rf lib/ && tsc -p tsconfig.build.json", "build": "rm -rf lib/ && tsc -p tsconfig.build.json",
"build:test": "rm -rf lib/ && tsc -p tsconfig.test.json --sourcemap", "build:test": "pnpm build",
"dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput --incremental", "dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput --incremental",
"lint": "eslint --ext .ts src", "lint": "eslint --ext .ts src",
"lint:report": "pnpm lint --format json --output-file report.json", "lint:report": "pnpm lint --format json --output-file report.json",
"prepack": "pnpm build", "prepack": "pnpm build",
"test:only": "NODE_OPTIONS=--experimental-vm-modules jest", "test": "vitest src",
"test": "pnpm build:test && pnpm test:only", "test:ci": "pnpm run test --silent --coverage"
"test:ci": "pnpm test:only"
}, },
"devDependencies": { "devDependencies": {
"@jest/globals": "^29.7.0",
"@logto/connector-kit": "workspace:^2.1.0", "@logto/connector-kit": "workspace:^2.1.0",
"@silverhand/eslint-config": "5.0.0", "@silverhand/eslint-config": "5.0.0",
"@silverhand/ts-config": "5.0.0", "@silverhand/ts-config": "5.0.0",
"@types/jest": "^29.4.0",
"@types/node": "^20.9.5", "@types/node": "^20.9.5",
"@vitest/coverage-v8": "^1.4.0",
"eslint": "^8.44.0", "eslint": "^8.44.0",
"jest": "^29.7.0",
"lint-staged": "^15.0.0", "lint-staged": "^15.0.0",
"prettier": "^3.0.0", "prettier": "^3.0.0",
"typescript": "^5.3.3" "typescript": "^5.3.3",
"vitest": "^1.4.0"
}, },
"engines": { "engines": {
"node": "^20.9.0" "node": "^20.9.0"

View file

@ -1,3 +1,7 @@
/**
* @fileoverview This file is used for jest only. This package does not need jest for testing.
*/
const { jest } = import.meta; const { jest } = import.meta;
// For testing // For testing

View file

@ -1,10 +1,4 @@
interface ImportMeta { interface ImportMeta {
jest: typeof jest & { // eslint-disable-next-line @typescript-eslint/consistent-type-imports -- import from outside will invalid this module augmentation
// Almost same as `jest.mock()`, but factory is required jest: typeof import('@jest/globals').jest;
unstable_mockModule: <T = unknown>(
moduleName: string,
factory: () => T,
options?: jest.MockOptions
) => typeof jest;
};
} }

View file

@ -1,3 +1,5 @@
import { afterEach, describe, expect, it } from 'vitest';
import UrlSet from './UrlSet.js'; import UrlSet from './UrlSet.js';
describe('UrlSet', () => { describe('UrlSet', () => {

View file

@ -1,3 +1,5 @@
import { describe, expect, it } from 'vitest';
import { generateStandardId, generateStandardSecret, generateStandardShortId } from './id.js'; import { generateStandardId, generateStandardSecret, generateStandardShortId } from './id.js';
describe('standard id generator', () => { describe('standard id generator', () => {

View file

@ -1,3 +1,5 @@
import { describe, expect, it } from 'vitest';
import { isValidSubdomain } from './sub-domain.js'; import { isValidSubdomain } from './sub-domain.js';
describe('isValidSubdomain()', () => { describe('isValidSubdomain()', () => {

View file

@ -1,31 +1,31 @@
import { TtlCache } from './ttl-cache.js'; import { afterEach, describe, expect, it, beforeEach, vi } from 'vitest';
const { jest } = import.meta; import { TtlCache } from './ttl-cache.js';
describe('TtlCache', () => { describe('TtlCache', () => {
beforeEach(() => { beforeEach(() => {
jest.useFakeTimers(); vi.useFakeTimers();
}); });
afterEach(() => { afterEach(() => {
jest.useRealTimers(); vi.useRealTimers();
}); });
it('should return cached value after a long time if ttl is not set', () => { it('should return cached value after a long time if ttl is not set', () => {
jest.setSystemTime(0); vi.setSystemTime(0);
const cache = new TtlCache(); const cache = new TtlCache();
const someObject = Object.freeze({ foo: 'bar', baz: 123 }); const someObject = Object.freeze({ foo: 'bar', baz: 123 });
cache.set('foo', someObject); cache.set('foo', someObject);
jest.setSystemTime(100_000_000); vi.setSystemTime(100_000_000);
expect(cache.get('foo')).toBe(someObject); expect(cache.get('foo')).toBe(someObject);
expect(cache.has('foo')).toBe(true); expect(cache.has('foo')).toBe(true);
}); });
it('should return cached value and honor ttl', () => { it('should return cached value and honor ttl', () => {
jest.setSystemTime(0); vi.setSystemTime(0);
const cache = new TtlCache(100); const cache = new TtlCache(100);
const someObject = Object.freeze({ foo: 'bar', baz: 123 }); const someObject = Object.freeze({ foo: 'bar', baz: 123 });
@ -33,7 +33,7 @@ describe('TtlCache', () => {
cache.set(123, someObject); cache.set(123, someObject);
cache.set('foo', someObject, 99); cache.set('foo', someObject, 99);
jest.setSystemTime(100); vi.setSystemTime(100);
expect(cache.get(123)).toBe(someObject); expect(cache.get(123)).toBe(someObject);
expect(cache.has(123)).toBe(true); expect(cache.has(123)).toBe(true);
expect(cache.get('123')).toBe(undefined); expect(cache.get('123')).toBe(undefined);
@ -41,7 +41,7 @@ describe('TtlCache', () => {
expect(cache.get('foo')).toBe(undefined); expect(cache.get('foo')).toBe(undefined);
expect(cache.has('foo')).toBe(false); expect(cache.has('foo')).toBe(false);
jest.setSystemTime(101); vi.setSystemTime(101);
expect(cache.get(123)).toBe(undefined); expect(cache.get(123)).toBe(undefined);
expect(cache.has(123)).toBe(false); expect(cache.has(123)).toBe(false);
}); });

View file

@ -1,3 +1,5 @@
import { describe, expect, it } from 'vitest';
import { getUserDisplayName } from './user-display-name.js'; import { getUserDisplayName } from './user-display-name.js';
describe('getUserDisplayName', () => { describe('getUserDisplayName', () => {

View file

@ -2,7 +2,7 @@
"extends": "@silverhand/ts-config/tsconfig.base", "extends": "@silverhand/ts-config/tsconfig.base",
"compilerOptions": { "compilerOptions": {
"outDir": "lib", "outDir": "lib",
"types": ["node", "jest"] "types": ["node"]
}, },
"include": [ "include": [
"src" "src"

View file

@ -1,3 +0,0 @@
{
"extends": "./tsconfig"
}

View file

@ -3814,15 +3814,15 @@ importers:
'@types/inquirer': '@types/inquirer':
specifier: ^9.0.0 specifier: ^9.0.0
version: 9.0.3 version: 9.0.3
'@types/jest':
specifier: ^29.4.0
version: 29.4.0
'@types/node': '@types/node':
specifier: ^20.9.5 specifier: ^20.9.5
version: 20.10.4 version: 20.10.4
'@types/pluralize': '@types/pluralize':
specifier: ^0.0.33 specifier: ^0.0.33
version: 0.0.33 version: 0.0.33
'@vitest/coverage-v8':
specifier: ^1.4.0
version: 1.4.0(vitest@1.4.0)
camelcase: camelcase:
specifier: ^8.0.0 specifier: ^8.0.0
version: 8.0.0 version: 8.0.0
@ -3832,9 +3832,6 @@ importers:
eslint: eslint:
specifier: ^8.44.0 specifier: ^8.44.0
version: 8.44.0 version: 8.44.0
jest:
specifier: ^29.7.0
version: 29.7.0(@types/node@20.10.4)
lint-staged: lint-staged:
specifier: ^15.0.0 specifier: ^15.0.0
version: 15.0.2 version: 15.0.2
@ -3850,6 +3847,9 @@ importers:
typescript: typescript:
specifier: ^5.3.3 specifier: ^5.3.3
version: 5.3.3 version: 5.3.3
vitest:
specifier: ^1.4.0
version: 1.4.0(@types/node@20.10.4)
packages/shared: packages/shared:
dependencies: dependencies:
@ -3869,6 +3869,9 @@ importers:
specifier: ^5.0.1 specifier: ^5.0.1
version: 5.0.1 version: 5.0.1
devDependencies: devDependencies:
'@jest/globals':
specifier: ^29.7.0
version: 29.7.0
'@logto/connector-kit': '@logto/connector-kit':
specifier: workspace:^2.1.0 specifier: workspace:^2.1.0
version: link:../toolkit/connector-kit version: link:../toolkit/connector-kit
@ -3878,18 +3881,15 @@ importers:
'@silverhand/ts-config': '@silverhand/ts-config':
specifier: 5.0.0 specifier: 5.0.0
version: 5.0.0(typescript@5.3.3) version: 5.0.0(typescript@5.3.3)
'@types/jest':
specifier: ^29.4.0
version: 29.4.0
'@types/node': '@types/node':
specifier: ^20.9.5 specifier: ^20.9.5
version: 20.10.4 version: 20.10.4
'@vitest/coverage-v8':
specifier: ^1.4.0
version: 1.4.0(vitest@1.4.0)
eslint: eslint:
specifier: ^8.44.0 specifier: ^8.44.0
version: 8.44.0 version: 8.44.0
jest:
specifier: ^29.7.0
version: 29.7.0(@types/node@20.10.4)
lint-staged: lint-staged:
specifier: ^15.0.0 specifier: ^15.0.0
version: 15.0.2 version: 15.0.2
@ -3899,6 +3899,9 @@ importers:
typescript: typescript:
specifier: ^5.3.3 specifier: ^5.3.3
version: 5.3.3 version: 5.3.3
vitest:
specifier: ^1.4.0
version: 1.4.0(@types/node@20.10.4)
packages/toolkit/connector-kit: packages/toolkit/connector-kit:
dependencies: dependencies:
@ -5959,7 +5962,7 @@ packages:
resolution: {integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==} resolution: {integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
dependencies: dependencies:
'@babel/types': 7.20.2 '@babel/types': 7.24.0
'@jridgewell/gen-mapping': 0.3.5 '@jridgewell/gen-mapping': 0.3.5
jsesc: 2.5.2 jsesc: 2.5.2
dev: true dev: true
@ -6001,7 +6004,7 @@ packages:
resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
dependencies: dependencies:
'@babel/types': 7.20.2 '@babel/types': 7.24.0
dev: true dev: true
/@babel/helper-module-transforms@7.20.2: /@babel/helper-module-transforms@7.20.2:
@ -6015,7 +6018,7 @@ packages:
'@babel/helper-validator-identifier': 7.22.5 '@babel/helper-validator-identifier': 7.22.5
'@babel/template': 7.18.10 '@babel/template': 7.18.10
'@babel/traverse': 7.20.1 '@babel/traverse': 7.20.1
'@babel/types': 7.20.2 '@babel/types': 7.24.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -6033,14 +6036,14 @@ packages:
resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
dependencies: dependencies:
'@babel/types': 7.20.2 '@babel/types': 7.24.0
dev: true dev: true
/@babel/helper-split-export-declaration@7.18.6: /@babel/helper-split-export-declaration@7.18.6:
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
dependencies: dependencies:
'@babel/types': 7.20.2 '@babel/types': 7.24.0
dev: true dev: true
/@babel/helper-string-parser@7.19.4: /@babel/helper-string-parser@7.19.4:
@ -6074,7 +6077,7 @@ packages:
dependencies: dependencies:
'@babel/template': 7.18.10 '@babel/template': 7.18.10
'@babel/traverse': 7.20.1 '@babel/traverse': 7.20.1
'@babel/types': 7.20.2 '@babel/types': 7.24.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -6093,7 +6096,7 @@ packages:
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
hasBin: true hasBin: true
dependencies: dependencies:
'@babel/types': 7.20.2 '@babel/types': 7.24.0
dev: true dev: true
/@babel/parser@7.24.0: /@babel/parser@7.24.0:
@ -6296,8 +6299,8 @@ packages:
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
dependencies: dependencies:
'@babel/code-frame': 7.22.5 '@babel/code-frame': 7.22.5
'@babel/parser': 7.20.3 '@babel/parser': 7.24.0
'@babel/types': 7.20.2 '@babel/types': 7.24.0
dev: true dev: true
/@babel/traverse@7.20.1: /@babel/traverse@7.20.1:
@ -7255,13 +7258,6 @@ packages:
jest-mock: 29.7.0 jest-mock: 29.7.0
dev: true dev: true
/@jest/expect-utils@29.5.0:
resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
jest-get-type: 29.4.3
dev: true
/@jest/expect-utils@29.7.0: /@jest/expect-utils@29.7.0:
resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -10053,8 +10049,8 @@ packages:
/@types/jest@29.4.0: /@types/jest@29.4.0:
resolution: {integrity: sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==} resolution: {integrity: sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==}
dependencies: dependencies:
expect: 29.5.0 expect: 29.7.0
pretty-format: 29.5.0 pretty-format: 29.7.0
dev: true dev: true
/@types/jsdom@20.0.0: /@types/jsdom@20.0.0:
@ -12420,11 +12416,6 @@ packages:
semver: 5.7.2 semver: 5.7.2
dev: false dev: false
/diff-sequences@29.4.3:
resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
/diff-sequences@29.6.3: /diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -13345,17 +13336,6 @@ packages:
engines: {node: '>=16'} engines: {node: '>=16'}
dev: true dev: true
/expect@29.5.0:
resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/expect-utils': 29.5.0
jest-get-type: 29.4.3
jest-matcher-utils: 29.5.0
jest-message-util: 29.5.0
jest-util: 29.5.0
dev: true
/expect@29.7.0: /expect@29.7.0:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -15069,7 +15049,7 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
dependencies: dependencies:
'@babel/core': 7.20.2 '@babel/core': 7.20.2
'@babel/parser': 7.20.3 '@babel/parser': 7.24.0
'@istanbuljs/schema': 0.1.3 '@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2 istanbul-lib-coverage: 3.2.2
semver: 7.6.0 semver: 7.6.0
@ -15335,16 +15315,6 @@ packages:
- supports-color - supports-color
dev: true dev: true
/jest-diff@29.5.0:
resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
chalk: 4.1.2
diff-sequences: 29.4.3
jest-get-type: 29.6.3
pretty-format: 29.7.0
dev: true
/jest-diff@29.7.0: /jest-diff@29.7.0:
resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -15423,11 +15393,6 @@ packages:
- typescript - typescript
dev: true dev: true
/jest-get-type@29.4.3:
resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true
/jest-get-type@29.6.3: /jest-get-type@29.6.3:
resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -15483,16 +15448,6 @@ packages:
resolution: {integrity: sha512-thJdy9ibhDo8k+0arFalNCQBJ0u7eqTfpTzS2MzL3iCLmbRCkI+yhhKSiAxEi55e5ZUyf01ySa0fMqzF+sblAw==} resolution: {integrity: sha512-thJdy9ibhDo8k+0arFalNCQBJ0u7eqTfpTzS2MzL3iCLmbRCkI+yhhKSiAxEi55e5ZUyf01ySa0fMqzF+sblAw==}
dev: true dev: true
/jest-matcher-utils@29.5.0:
resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
chalk: 4.1.2
jest-diff: 29.5.0
jest-get-type: 29.4.3
pretty-format: 29.7.0
dev: true
/jest-matcher-utils@29.7.0: /jest-matcher-utils@29.7.0:
resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -18642,15 +18597,6 @@ packages:
react-is: 17.0.2 react-is: 17.0.2
dev: true dev: true
/pretty-format@29.5.0:
resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/schemas': 29.4.3
ansi-styles: 5.2.0
react-is: 18.2.0
dev: true
/pretty-format@29.7.0: /pretty-format@29.7.0:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}