diff --git a/functional_tests/feature-flags.test.ts b/functional_tests/feature-flags.test.ts index 25c37f0f4..d6ec89b17 100644 --- a/functional_tests/feature-flags.test.ts +++ b/functional_tests/feature-flags.test.ts @@ -1,12 +1,22 @@ -/* eslint-disable compat/compat */ -import { v4 } from 'uuid' import { createPosthogInstance } from '../src/__tests__/helpers/posthog-instance' import { waitFor } from '@testing-library/dom' import { getRequests, resetRequests } from './mock-server' +import { uuidv7 } from '../src/uuidv7' + +async function shortWait() { + // no need to worry about ie11 compat in tests + // eslint-disable-next-line compat/compat + await new Promise((resolve: () => void) => setTimeout(resolve, 500)) +} describe('FunctionalTests / Feature Flags', () => { + let token: string + + beforeEach(() => { + token = uuidv7() + }) + test('person properties set in identify() with new distinct_id are sent to decide', async () => { - const token = v4() const posthog = await createPosthogInstance(token, { advanced_disable_decide: false }) const anonymousId = posthog.get_distinct_id() @@ -25,14 +35,14 @@ describe('FunctionalTests / Feature Flags', () => { resetRequests(token) // wait for decide callback - await new Promise((resolve: () => void) => setTimeout(resolve, 500)) + await shortWait() // Person properties set here should also be sent to the decide endpoint. posthog.identify('test-id', { email: 'test@email.com', }) - await new Promise((resolve: () => void) => setTimeout(resolve, 500)) + await shortWait() await waitFor(() => { expect(getRequests(token)['/decide/']).toEqual([ @@ -52,7 +62,6 @@ describe('FunctionalTests / Feature Flags', () => { }) test('person properties set in identify() with the same distinct_id are sent to decide', async () => { - const token = v4() const posthog = await createPosthogInstance(token, { advanced_disable_decide: false }) const anonymousId = posthog.get_distinct_id() @@ -71,8 +80,7 @@ describe('FunctionalTests / Feature Flags', () => { resetRequests(token) // wait for decide callback - // eslint-disable-next-line compat/compat - await new Promise((resolve: () => void) => setTimeout(resolve, 500)) + await shortWait() // First we identify with a new distinct_id but with no properties set posthog.identify('test-id') @@ -111,7 +119,6 @@ describe('FunctionalTests / Feature Flags', () => { }) test('identify() triggers new request in queue after first request', async () => { - const token = v4() const posthog = await createPosthogInstance(token, { advanced_disable_decide: false }) const anonymousId = posthog.get_distinct_id() @@ -139,8 +146,7 @@ describe('FunctionalTests / Feature Flags', () => { }) // wait for decide callback - // eslint-disable-next-line compat/compat - await new Promise((resolve: () => void) => setTimeout(resolve, 500)) + await shortWait() // now second call should've fired await waitFor(() => { @@ -157,7 +163,6 @@ describe('FunctionalTests / Feature Flags', () => { }) test('identify() does not trigger new request in queue after first request for loaded callback', async () => { - const token = v4() await createPosthogInstance(token, { advanced_disable_decide: false, bootstrap: { distinctID: 'anon-id' }, diff --git a/functional_tests/identify.test.ts b/functional_tests/identify.test.ts index 316fed1a0..b91f8d2e3 100644 --- a/functional_tests/identify.test.ts +++ b/functional_tests/identify.test.ts @@ -1,18 +1,24 @@ import 'regenerator-runtime/runtime' import { waitFor } from '@testing-library/dom' -import { v4 } from 'uuid' import { getRequests } from './mock-server' import { createPosthogInstance } from '../src/__tests__/helpers/posthog-instance' import { logger } from '../src/utils/logger' +import { uuidv7 } from '../src/uuidv7' +import { PostHog } from '../src/posthog-core' jest.mock('../src/utils/logger') describe('FunctionalTests / Identify', () => { - test('identify sends a identify event', async () => { - const token = v4() - const posthog = await createPosthogInstance(token) - - const anonymousId = posthog.get_distinct_id() + let token: string + let posthog: PostHog + let anonymousId: string + + beforeEach(async () => { + token = uuidv7() + posthog = await createPosthogInstance(token) + anonymousId = posthog.get_distinct_id() + }) + test('identify sends a identify event', async () => { posthog.identify('test-id') await waitFor(() => @@ -34,11 +40,6 @@ describe('FunctionalTests / Identify', () => { test('identify sends an engage request if identify called twice with the same distinct id and with $set/$set_once', async () => { // The intention here is to reduce the number of unncecessary $identify // requests to process. - const token = v4() - const posthog = await createPosthogInstance(token) - - const anonymousId = posthog.get_distinct_id() - // The first time we identify, it calls the /e/ endpoint with an $identify posthog.identify('test-id', { email: 'first@email.com' }, { location: 'first' }) @@ -82,11 +83,6 @@ describe('FunctionalTests / Identify', () => { test('identify sends an $set event if identify called twice with a different distinct_id', async () => { // This is due to $identify only being called for anonymous users. - const token = v4() - const posthog = await createPosthogInstance(token) - - const anonymousId = posthog.get_distinct_id() - // The first time we identify, it calls the /e/ endpoint with an $identify posthog.identify('test-id', { email: 'first@email.com' }, { location: 'first' }) diff --git a/package.json b/package.json index 1d4560b0f..48ff44ca2 100644 --- a/package.json +++ b/package.json @@ -58,18 +58,16 @@ "@rrweb/types": "2.0.0-alpha.13", "@sentry/types": "8.7.0", "@testing-library/dom": "^9.3.0", - "@testing-library/jest-dom": "^6.4.5", + "@testing-library/jest-dom": "^6.5.0", "@testing-library/preact": "^3.2.4", "@types/eslint": "^8.44.6", - "@types/jest": "^29.5.1", + "@types/jest": "^27.5.1", "@types/node": "^22.5.0", "@types/react-dom": "^18.0.10", "@types/sinon": "^17.0.1", - "@types/uuid": "^9.0.1", "@types/web": "^0.0.154", "@typescript-eslint/eslint-plugin": "^8.2.0", "@typescript-eslint/parser": "^8.2.0", - "babel-eslint": "10.1.0", "babel-jest": "^26.6.3", "compare-versions": "^6.1.0", "cypress": "13.6.3", @@ -79,7 +77,7 @@ "eslint-config-posthog-js": "link:eslint-rules", "eslint-config-prettier": "^8.5.0", "eslint-plugin-compat": "^4.1.4", - "eslint-plugin-jest": "^28.8.0", + "eslint-plugin-jest": "^28.8.3", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-posthog-js": "link:eslint-rules", "eslint-plugin-prettier": "^4.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1cd7708c6..2e582d401 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,8 +67,8 @@ devDependencies: specifier: ^9.3.0 version: 9.3.0 '@testing-library/jest-dom': - specifier: ^6.4.5 - version: 6.4.5(@jest/globals@27.5.1)(@types/jest@29.5.1)(jest@27.5.1) + specifier: ^6.5.0 + version: 6.5.0 '@testing-library/preact': specifier: ^3.2.4 version: 3.2.4(preact@10.19.3) @@ -76,8 +76,8 @@ devDependencies: specifier: ^8.44.6 version: 8.44.6 '@types/jest': - specifier: ^29.5.1 - version: 29.5.1 + specifier: ^27.5.1 + version: 27.5.2 '@types/node': specifier: ^22.5.0 version: 22.5.0 @@ -87,9 +87,6 @@ devDependencies: '@types/sinon': specifier: ^17.0.1 version: 17.0.1 - '@types/uuid': - specifier: ^9.0.1 - version: 9.0.1 '@types/web': specifier: ^0.0.154 version: 0.0.154 @@ -99,9 +96,6 @@ devDependencies: '@typescript-eslint/parser': specifier: ^8.2.0 version: 8.2.0(eslint@8.57.0)(typescript@5.5.4) - babel-eslint: - specifier: 10.1.0 - version: 10.1.0(eslint@8.57.0) babel-jest: specifier: ^26.6.3 version: 26.6.3(@babel/core@7.18.9) @@ -130,8 +124,8 @@ devDependencies: specifier: ^4.1.4 version: 4.1.4(eslint@8.57.0) eslint-plugin-jest: - specifier: ^28.8.0 - version: 28.8.0(@typescript-eslint/eslint-plugin@8.2.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.5.4) + specifier: ^28.8.3 + version: 28.8.3(@typescript-eslint/eslint-plugin@8.2.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.5.4) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 @@ -1902,13 +1896,6 @@ packages: - supports-color dev: true - /@jest/schemas@29.4.3: - resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.25.24 - dev: 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} @@ -2731,10 +2718,6 @@ packages: engines: {node: '>=14.18'} dev: true - /@sinclair/typebox@0.25.24: - resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} - dev: true - /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true @@ -2804,36 +2787,15 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.4.5(@jest/globals@27.5.1)(@types/jest@29.5.1)(jest@27.5.1): - resolution: {integrity: sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==} + /@testing-library/jest-dom@6.5.0: + resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - peerDependencies: - '@jest/globals': '>= 28' - '@types/bun': latest - '@types/jest': '>= 28' - jest: '>= 28' - vitest: '>= 0.32' - peerDependenciesMeta: - '@jest/globals': - optional: true - '@types/bun': - optional: true - '@types/jest': - optional: true - jest: - optional: true - vitest: - optional: true dependencies: '@adobe/css-tools': 4.4.0 - '@babel/runtime': 7.13.9 - '@jest/globals': 27.5.1 - '@types/jest': 29.5.1 aria-query: 5.1.3 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 - jest: 27.5.1(ts-node@10.9.2) lodash: 4.17.21 redent: 3.0.0 dev: true @@ -2977,11 +2939,11 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jest@29.5.1: - resolution: {integrity: sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==} + /@types/jest@27.5.2: + resolution: {integrity: sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==} dependencies: - expect: 29.7.0 - pretty-format: 29.5.0 + jest-matcher-utils: 27.5.1 + pretty-format: 27.5.1 dev: true /@types/js-levenshtein@1.1.1: @@ -3057,10 +3019,6 @@ packages: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} - dev: true - /@types/semver@7.5.8: resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true @@ -3097,10 +3055,6 @@ packages: resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} dev: true - /@types/uuid@9.0.1: - resolution: {integrity: sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==} - dev: true - /@types/web@0.0.154: resolution: {integrity: sha512-Tc10Nkpbb8AgM3iGnrvpKVb6x8pzrZpMCPqMJe8htXoEdNDKojEevNAkCjxkjCLZF2p1ZB+gknAwdbkypxwxKg==} dev: true @@ -3183,14 +3137,6 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.19.0: - resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/visitor-keys': 6.19.0 - dev: true - /@typescript-eslint/scope-manager@8.2.0: resolution: {integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3218,38 +3164,11 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.19.0: - resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - /@typescript-eslint/types@8.2.0: resolution: {integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@typescript-eslint/typescript-estree@6.19.0(typescript@5.5.4): - resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/visitor-keys': 6.19.0 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@8.2.0(typescript@5.5.4): resolution: {integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3272,25 +3191,6 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.19.0(eslint@8.57.0)(typescript@5.5.4): - resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.19.0 - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.5.4) - eslint: 8.57.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@typescript-eslint/utils@8.2.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3307,14 +3207,6 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.19.0: - resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.19.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@8.2.0: resolution: {integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3687,24 +3579,6 @@ packages: resolution: {integrity: sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==} dev: true - /babel-eslint@10.1.0(eslint@8.57.0): - resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==} - engines: {node: '>=6'} - deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. - peerDependencies: - eslint: '>= 4.12.1' - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.6 - eslint: 8.57.0 - eslint-visitor-keys: 1.3.0 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - /babel-jest@26.6.3(@babel/core@7.18.9): resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} engines: {node: '>= 10.14.2'} @@ -5189,8 +5063,8 @@ packages: semver: 7.3.8 dev: true - /eslint-plugin-jest@28.8.0(@typescript-eslint/eslint-plugin@8.2.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.5.4): - resolution: {integrity: sha512-Tubj1hooFxCl52G4qQu0edzV/+EZzPUeN8p2NnW5uu4fbDs+Yo7+qDVDc4/oG3FbCqEBmu/OC3LSsyiU22oghw==} + /eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.2.0)(eslint@8.57.0)(jest@27.5.1)(typescript@5.5.4): + resolution: {integrity: sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==} engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -5203,7 +5077,7 @@ packages: optional: true dependencies: '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0)(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 6.19.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 8.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 jest: 27.5.1(ts-node@10.9.2) transitivePeerDependencies: @@ -5273,11 +5147,6 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8209,13 +8078,6 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -8969,15 +8831,6 @@ packages: react-is: 17.0.2 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: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10591,15 +10444,6 @@ packages: utf8-byte-length: 1.0.4 dev: true - /ts-api-utils@1.0.1(typescript@5.5.4): - resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: 5.5.4 - dev: true - /ts-api-utils@1.3.0(typescript@5.5.4): resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'}