diff --git a/.changeset/wet-pears-report.md b/.changeset/wet-pears-report.md new file mode 100644 index 000000000..3d1b78af5 --- /dev/null +++ b/.changeset/wet-pears-report.md @@ -0,0 +1,5 @@ +--- +'gqty': patch +--- + +Upgrade jest for Prettier v3 diff --git a/packages/gqty/package.json b/packages/gqty/package.json index 1ef9ff1e6..97446c42d 100644 --- a/packages/gqty/package.json +++ b/packages/gqty/package.json @@ -71,7 +71,7 @@ "graphql": "^16.8.2", "graphql-sse": "^2.5.3", "graphql-ws": "^5.16.0", - "jest": "^29.7.0", + "jest": "^30.0.0-alpha.5", "just-memoize": "^2.2.0", "open-cli": "^8.0.0", "p-lazy": "^3.1.0", diff --git a/packages/gqty/src/Accessor/resolve.ts b/packages/gqty/src/Accessor/resolve.ts index bd82239b0..118ab60ec 100644 --- a/packages/gqty/src/Accessor/resolve.ts +++ b/packages/gqty/src/Accessor/resolve.ts @@ -530,11 +530,13 @@ const arrayProxyHandler: ProxyHandler = { }; export const createArrayAccessor = < - TSchemaType extends GeneratedSchemaObject[] + TSchemaType extends GeneratedSchemaObject[], >( meta: Meta ) => { - if (!Array.isArray(meta.cache.data)) { + const { cache } = meta; + + if (!Array.isArray(cache.data)) { if (verbose) { console.warn( 'Invalid cache for an array accessor, monkey-patch by wrapping it with an array.', @@ -543,10 +545,10 @@ export const createArrayAccessor = < ); } - meta.cache.data = [meta.cache.data]; + cache.data = [cache.data]; } - const proxy = new Proxy(meta.cache.data as TSchemaType, arrayProxyHandler); + const proxy = new Proxy(cache.data as TSchemaType, arrayProxyHandler); $meta.set(proxy, meta); diff --git a/packages/gqty/test/accessor.test.ts b/packages/gqty/test/accessor.test.ts index 84fa80ba1..3d0cf6ccd 100644 --- a/packages/gqty/test/accessor.test.ts +++ b/packages/gqty/test/accessor.test.ts @@ -218,7 +218,7 @@ describe('setCache', () => { unsubscribe(); expect(query.hello).toBe('12345'); - expect(mockedFn).toBeCalledTimes(1); + expect(mockedFn).toHaveBeenCalledTimes(1); expect(selections).toMatchInlineSnapshot(` [ [ @@ -247,7 +247,7 @@ describe('setCache', () => { unsubscribe(); - expect(mockedFn).toBeCalledTimes(1); + expect(mockedFn).toHaveBeenCalledTimes(1); expect(selections).toMatchInlineSnapshot(` [ [ @@ -274,28 +274,32 @@ describe('setCache', () => { expect(() => { // @ts-expect-error setCache((_args?: { a: string }) => {}, undefined); - }).toThrowError('Subject must be an accessor.'); + }).toThrow(new Error('Subject must be an accessor.')); expect(() => { setCache(query, (() => {}) as any); - }).toThrowError( - 'Data must be a subset of the schema object, got type: ' + 'function' + }).toThrow( + new Error( + 'Data must be a subset of the schema object, got type: ' + 'function.' + ) ); expect(() => { setCache(query, 123123 as any); - }).toThrowError( - 'Data must be a subset of the schema object, got type: ' + 'number' + }).toThrow( + new Error( + 'Data must be a subset of the schema object, got type: ' + 'number.' + ) ); expect(() => { setCache({}, {}); - }).toThrowError('Subject must be an accessor.'); + }).toThrow(new Error('Subject must be an accessor.')); expect(() => { // @ts-expect-error query.human({ name: 'ñññ' }).sons['hello'] = null; - }).toThrowError('Invalid array assignment.'); + }).toThrow(new Error('Invalid array assignment.')); }); }); @@ -360,7 +364,7 @@ describe('assign selections', () => { assignSelections(human, human); - expect(spy).toBeCalledTimes(1); + expect(spy).toHaveBeenCalledTimes(1); const prevNodeEnv = process.env.NODE_ENV; try { @@ -371,7 +375,7 @@ describe('assign selections', () => { process.env.NODE_ENV = prevNodeEnv; } - expect(spy).toBeCalledTimes(1); + expect(spy).toHaveBeenCalledTimes(1); spy.mockRestore(); }); @@ -388,11 +392,11 @@ describe('assign selections', () => { expect(() => { assignSelections({}, {}); - }).toThrowError('Invalid source proxy'); + }).toThrow(new Error('Invalid source proxy')); expect(() => { assignSelections(query, {} as any); - }).toThrowError('Invalid target proxy'); + }).toThrow(new Error('Invalid target proxy')); }); }); diff --git a/packages/gqty/test/cache.test.ts b/packages/gqty/test/cache.test.ts index f651ad8e1..5fae921e2 100644 --- a/packages/gqty/test/cache.test.ts +++ b/packages/gqty/test/cache.test.ts @@ -1,7 +1,5 @@ -import { assertIsDefined } from 'test-utils'; -import { $meta, createSchemaAccessor } from '../src/Accessor'; -import { createObjectAccessor } from '../src/Accessor/resolve'; -import { Cache, CacheRoot } from '../src/Cache'; +import { createSchemaAccessor } from '../src/Accessor'; +import { Cache, type CacheRoot } from '../src/Cache'; import { Selection } from '../src/Selection'; describe('Cache#dataAccessors', () => { @@ -28,43 +26,6 @@ describe('Cache#dataAccessors', () => { hasCacheMiss: false, } as const; - /** - * Before we figure out how to cache sub-selections for null values, caching - * accessors adds a lot of complixity with little performance gain. - * - * Skip this for now. - */ - it('should return the cached accessor', () => { - const cache = new Cache(); - const selection = Selection.createRoot('query').getChild('a'); - const cacheValue = { a: 1 }; - - const obj = cache.getAccessor(selection, () => - createObjectAccessor({ - cache: { - data: cacheValue, - expiresAt: Infinity, - swrBefore: 0, - }, - context: { ...mockContext, cache }, - selection, - type: { __type: 'query' }, - }) - ); - - expect($meta(obj)).toBeDefined(); - expect($meta(obj)?.cache.data).toEqual({ a: 1 }); - - const obj2 = cache.getAccessor(selection, () => { - throw Error("This shouldn't be called"); - }); - - expect(obj).toBe(obj2); - assertIsDefined(selection); - expect(selection.key).toBe('a'); - expect(selection.cacheKeys).toEqual(['query', 'a']); - }); - it('should make selections', () => { const cache = new Cache(); const schema = createSchemaAccessor<{ query: { b: { c: string } } }>({ @@ -463,7 +424,7 @@ describe('Cache#subscribe', () => { }, }); - expect(listener).toBeCalledTimes(1); + expect(listener).toHaveBeenCalledTimes(1); expect(cache).toMatchInlineSnapshot(` { "query": { @@ -508,7 +469,7 @@ describe('Cache#subscribe', () => { }, }); - expect(listener).toBeCalledTimes(1); + expect(listener).toHaveBeenCalledTimes(1); expect(listener).toHaveBeenCalledWith({ query: { c: { __typename: 'B', id: 2, b: 4 }, diff --git a/packages/gqty/test/client.test.ts b/packages/gqty/test/client.test.ts index c0af3afc8..6a1a0e133 100644 --- a/packages/gqty/test/client.test.ts +++ b/packages/gqty/test/client.test.ts @@ -146,7 +146,7 @@ describe('core#resolve', () => { await expect(() => resolve(({ query }) => query.hello, { cachePolicy: 'only-if-cached' }) - ).rejects.toThrowError(new TypeError('Failed to fetch')); + ).rejects.toThrow(new TypeError('Failed to fetch')); await expect(resolve(({ query }) => query.hello)).resolves.toBe( 'hello world' @@ -268,7 +268,7 @@ describe('compat', () => { resolved(() => query.hello, { refetch: true, onCacheData }) ).resolves.toBe('hello world'); - expect(onCacheData).toBeCalledTimes(1); + expect(onCacheData).toHaveBeenCalledTimes(1); const onCacheData2 = jest .fn() @@ -282,7 +282,7 @@ describe('compat', () => { resolved(() => query.hello, { refetch: true, onCacheData: onCacheData2 }) ).resolves.toBe('hello world'); - expect(onCacheData2).toBeCalledTimes(1); + expect(onCacheData2).toHaveBeenCalledTimes(1); }); test('resolved with operationName', async () => { diff --git a/packages/gqty/test/helpers.test.ts b/packages/gqty/test/helpers.test.ts index 158574ee9..9df5c4e6f 100644 --- a/packages/gqty/test/helpers.test.ts +++ b/packages/gqty/test/helpers.test.ts @@ -1156,7 +1156,7 @@ describe('refetch function', () => { }); expect(value).toBe(123); - expect(spy).toBeCalledTimes(1); + expect(spy).toHaveBeenCalledTimes(1); process.env.NODE_ENV = 'production'; @@ -1165,7 +1165,7 @@ describe('refetch function', () => { }); expect(value2).toBe(456); - expect(spy).toBeCalledTimes(1); + expect(spy).toHaveBeenCalledTimes(1); } finally { process.env.NODE_ENV = prevEnv; spy.mockRestore(); @@ -1247,14 +1247,14 @@ describe('refetch function', () => { const invalidProxy = {}; const refetchData = await refetch(invalidProxy); - expect(spy).toBeCalledTimes(1); + expect(spy).toHaveBeenCalledTimes(1); expect(refetchData).toBe(invalidProxy); process.env.NODE_ENV = 'production'; const refetchData2 = await refetch(invalidProxy); - expect(spy).toBeCalledTimes(1); + expect(spy).toHaveBeenCalledTimes(1); expect(refetchData2).toBe(invalidProxy); } finally { process.env.NODE_ENV = prevNODE_ENV; @@ -1498,11 +1498,10 @@ test('prepass works', () => { }); test('type casters', async () => { - type Equals = (() => T extends X ? 1 : 2) extends < - T - >() => T extends Y ? 1 : 2 - ? true - : false; + type Equals = + (() => T extends X ? 1 : 2) extends () => T extends Y ? 1 : 2 + ? true + : false; const a1: { a: string | undefined; @@ -1541,7 +1540,7 @@ test('type casters', async () => { h: [ { i: number | undefined; - } + }, ]; }; } diff --git a/packages/gqty/test/interfaces-unions.test.ts b/packages/gqty/test/interfaces-unions.test.ts index e93f1e6f5..4bd6f3175 100644 --- a/packages/gqty/test/interfaces-unions.test.ts +++ b/packages/gqty/test/interfaces-unions.test.ts @@ -122,23 +122,23 @@ describe('interfaces and unions', () => { `); expect(queries).toMatchInlineSnapshot(` - [ - { - "query": "query($a18aa4:NodeType!){a0b55f:node(type:$a18aa4){__typename ...on A{a}...on B{b}id}}", - "result": { - "data": { - "a0b55f": { - "__typename": "A", - "a": 1, - "id": "1", - }, - }, - }, - "variables": { - "a18aa4": "A", - }, - }, - ] + [ + { + "query": "query($a18aa4:NodeType!){a0b55f:node(type:$a18aa4){__typename ...on A{a}...on B{b}id}}", + "result": { + "data": { + "a0b55f": { + "__typename": "A", + "a": 1, + "id": "1", + }, + }, + }, + "variables": { + "a18aa4": "A", + }, + }, + ] `); expect(nodeResult).toStrictEqual({ @@ -185,31 +185,31 @@ describe('interfaces and unions', () => { } `); expect(queries).toMatchInlineSnapshot(` - [ - { - "query": "query($a18aa4:NodeType!){a0b55f:node(type:$a18aa4){__typename ...on A{a node{__typename ...on A{id node{__typename ...on C{node{__typename ...on A{id}id}}id}}id}}...on B{b}id}}", - "result": { - "data": { - "a0b55f": { - "__typename": "A", - "a": 1, - "id": "1", - "node": { - "__typename": "A", - "id": "1", - "node": { - "__typename": "A", - "id": "1", - }, - }, - }, - }, - }, - "variables": { - "a18aa4": "A", - }, - }, - ] + [ + { + "query": "query($a18aa4:NodeType!){a0b55f:node(type:$a18aa4){__typename ...on A{a node{__typename ...on A{id node{__typename ...on C{node{__typename ...on A{id}id}}id}}id}}...on B{b}id}}", + "result": { + "data": { + "a0b55f": { + "__typename": "A", + "a": 1, + "id": "1", + "node": { + "__typename": "A", + "id": "1", + "node": { + "__typename": "A", + "id": "1", + }, + }, + }, + }, + }, + "variables": { + "a18aa4": "A", + }, + }, + ] `); }); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 47df83f7a..47a62795d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -601,8 +601,8 @@ importers: specifier: ^5.16.0 version: 5.16.0(graphql@16.8.2) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2) + specifier: ^30.0.0-alpha.5 + version: 30.0.0-alpha.5(@types/node@20.14.2)(ts-node@10.9.2) open-cli: specifier: ^8.0.0 version: 8.0.0 @@ -5165,6 +5165,18 @@ packages: jest-util: 29.7.0 slash: 3.0.0 + /@jest/console@30.0.0-alpha.5: + resolution: {integrity: sha512-60bIFNdU3otnWJljjfnbIntLJ9JUiULI3o+uslyao2j2yP7rYfKdg8sye7NfQ29Zb0IoluBefpEN7s2hVzyz3A==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + chalk: 4.1.2 + jest-message-util: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + slash: 3.0.0 + dev: true + /@jest/core@29.7.0(ts-node@10.9.2): resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5207,6 +5219,50 @@ packages: - supports-color - ts-node + /@jest/core@30.0.0-alpha.5(ts-node@10.9.2): + resolution: {integrity: sha512-AozuDUK5nPLStNN5W6D4MArMIbA2zxV2NqK+wiJEXQQA2PapiWuOxpLo+mUKMwoA1VQ/afOre1neZ6NpkjPNaw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 30.0.0-alpha.5 + '@jest/pattern': 30.0.0-alpha.5 + '@jest/reporters': 30.0.0-alpha.5 + '@jest/test-result': 30.0.0-alpha.5 + '@jest/transform': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 4.0.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 30.0.0-alpha.5 + jest-config: 30.0.0-alpha.5(@types/node@20.14.2)(ts-node@10.9.2) + jest-haste-map: 30.0.0-alpha.5 + jest-message-util: 30.0.0-alpha.5 + jest-regex-util: 30.0.0-alpha.5 + jest-resolve: 30.0.0-alpha.5 + jest-resolve-dependencies: 30.0.0-alpha.5 + jest-runner: 30.0.0-alpha.5 + jest-runtime: 30.0.0-alpha.5 + jest-snapshot: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + jest-validate: 30.0.0-alpha.5 + jest-watcher: 30.0.0-alpha.5 + micromatch: 4.0.7 + pretty-format: 30.0.0-alpha.5 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /@jest/environment@29.7.0: resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5216,12 +5272,29 @@ packages: '@types/node': 20.14.2 jest-mock: 29.7.0 + /@jest/environment@30.0.0-alpha.5: + resolution: {integrity: sha512-uWnbbtArBcrR6T2XKPlNp5eCxe/48U0imDJMr2t63FIqoIZJOvrVbRtKQEhjzt+c9YkzNoVBOvgu7aLdwVrZ8g==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/fake-timers': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + jest-mock: 30.0.0-alpha.5 + dev: true + /@jest/expect-utils@29.7.0: resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 + /@jest/expect-utils@30.0.0-alpha.5: + resolution: {integrity: sha512-DwWb4vqgp+Wc/vyrPY3afa5J2PnrKpzW+ckrViWMhp5gu4hnktatBiad9/E8+buUEZWFZLamcqpqk6KtuPQBXw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + jest-get-type: 30.0.0-alpha.5 + dev: true + /@jest/expect@29.7.0: resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5231,6 +5304,16 @@ packages: transitivePeerDependencies: - supports-color + /@jest/expect@30.0.0-alpha.5: + resolution: {integrity: sha512-Gp4hyR6UUPyplIO9ipcXSSM19xMoWro3+W8VbPrqw9IuOpOs/rVfh3Tn62WP8ZfYYK7CAtUI+Fhx/jiqwTGPtw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + expect: 30.0.0-alpha.5 + jest-snapshot: 30.0.0-alpha.5 + transitivePeerDependencies: + - supports-color + dev: true + /@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} @@ -5242,6 +5325,18 @@ packages: jest-mock: 29.7.0 jest-util: 29.7.0 + /@jest/fake-timers@30.0.0-alpha.5: + resolution: {integrity: sha512-DuQpJP7zz/vBd6/BweFit7+MJVgIEb4gHfoEd9TKIuvoQ4wcIm05LtMDIJYlPe+g/w/Ew01uMYNJ7acvbwxY0g==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/types': 30.0.0-alpha.5 + '@sinonjs/fake-timers': 11.2.2 + '@types/node': 20.14.2 + jest-message-util: 30.0.0-alpha.5 + jest-mock: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + dev: true + /@jest/globals@29.7.0: resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5253,6 +5348,26 @@ packages: transitivePeerDependencies: - supports-color + /@jest/globals@30.0.0-alpha.5: + resolution: {integrity: sha512-4J+6X5IUmrzN3MNLK8BEJxOiA1iDCi7E3gmaIiTxc2w+E+wApxM7XZW7gvJFwqBJLCeo6uSPQ3vr2kcIABxzNQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/environment': 30.0.0-alpha.5 + '@jest/expect': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + jest-mock: 30.0.0-alpha.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/pattern@30.0.0-alpha.5: + resolution: {integrity: sha512-NkN0G84UurVpBkiKyar+S0smZgnDnUCSPzhqCSrTWMRaoWzBQJTAA0hZkz29nBMEYHtDAWNfimcBlfZMU+H+gQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@types/node': 20.14.2 + jest-regex-util: 30.0.0-alpha.5 + dev: true + /@jest/reporters@29.7.0: resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5289,12 +5404,66 @@ packages: transitivePeerDependencies: - supports-color + /@jest/reporters@30.0.0-alpha.5: + resolution: {integrity: sha512-opFmlGKqNvzMc6nrtxPzm15uJaJx8WZE85fLFt5r/kxipIHGuZ2vPFXfjOJvJENgawYSNL+8Emv51Mm9ZhnJ3A==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 30.0.0-alpha.5 + '@jest/test-result': 30.0.0-alpha.5 + '@jest/transform': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 20.14.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 10.3.10 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.4 + istanbul-reports: 3.1.7 + jest-message-util: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + jest-worker: 30.0.0-alpha.5 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.2.0 + transitivePeerDependencies: + - supports-color + 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} dependencies: '@sinclair/typebox': 0.27.8 + /@jest/schemas@30.0.0-alpha.5: + resolution: {integrity: sha512-um74b5FzrExOuilDqOEcBS0C3lAhR/2sjyNPjLypOkksjtmUZbn9oJTMJ3UmYW5CHoRKOXVnjU/CrOtbfFqrqg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@sinclair/typebox': 0.32.32 + dev: true + + /@jest/snapshot-utils@30.0.0-alpha.5: + resolution: {integrity: sha512-dWf93VC3+f1ZI/pvvyng2m1ffk2giooPayKNVwGxKM8i2WnDcI+4CqZlCQ3mX7b7NYkF9L4xRNrJ3KWuvJR5aA==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/types': 30.0.0-alpha.5 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + dev: true + /@jest/source-map@29.6.3: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5303,6 +5472,15 @@ packages: callsites: 3.1.0 graceful-fs: 4.2.11 + /@jest/source-map@30.0.0-alpha.5: + resolution: {integrity: sha512-Um5aULXncGNoj3FTNobPoV0Cj8glvEczqSN3AkyvLgprEnjGNWyQi9NPPPcGWBwHmaJBWCUP8+xeTbGalAB9Og==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + /@jest/test-result@29.7.0: resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5312,6 +5490,16 @@ packages: '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 + /@jest/test-result@30.0.0-alpha.5: + resolution: {integrity: sha512-aI9sw/JkUb1BnnH4JWX7vsFRP9pXrN8Yjm+ZLXdjtejY7z/oBPz6imx6+lRt/H4u/OhvqrnaA46cQmYNh2977w==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/console': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + dev: true + /@jest/test-sequencer@29.7.0: resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5321,6 +5509,16 @@ packages: jest-haste-map: 29.7.0 slash: 3.0.0 + /@jest/test-sequencer@30.0.0-alpha.5: + resolution: {integrity: sha512-h8ZCs9XTPLJCxbc2o0EHCFsogx6j2RFJQsWuEoD7drnGw9cGYoopgZUjf64WaptGxh+WUwuqadfceKDQ//usMg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/test-result': 30.0.0-alpha.5 + graceful-fs: 4.2.11 + jest-haste-map: 30.0.0-alpha.5 + slash: 3.0.0 + dev: true + /@jest/transform@29.7.0: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5343,6 +5541,29 @@ packages: transitivePeerDependencies: - supports-color + /@jest/transform@30.0.0-alpha.5: + resolution: {integrity: sha512-ng0RZBbSVWzkcLscV/orutlgz6WnVA1yUNGruZ6p8QLow628Gndpmd4JrOGRm66v8DFhwtPUkxzucTJ+3VNpkA==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@babel/core': 7.24.7 + '@jest/types': 30.0.0-alpha.5 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.0.0-alpha.5 + jest-regex-util: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + micromatch: 4.0.7 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/types@29.6.3: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5354,6 +5575,19 @@ packages: '@types/yargs': 17.0.32 chalk: 4.1.2 + /@jest/types@30.0.0-alpha.5: + resolution: {integrity: sha512-Qu4PmAPX6sT2RrodqERoBkbrGz6suKDk/PdaL72q6G4ERg8OspP+ODit+JBJe20F+0QW4v6wsf2vD/L6lCzYcw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/pattern': 30.0.0-alpha.5 + '@jest/schemas': 30.0.0-alpha.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.14.2 + '@types/yargs': 17.0.32 + chalk: 4.1.2 + dev: true + /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -5618,6 +5852,11 @@ packages: dev: true optional: true + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + /@pkgr/utils@2.4.2: resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -5880,6 +6119,10 @@ packages: /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + /@sinclair/typebox@0.32.32: + resolution: {integrity: sha512-m+A3zFSI87TCtoz6vQCSnd+t/kDKL78JmzhKYkON+7SnHSa+794qraIVpm6ozFGK+5svnVOt1LJ7BUEhGkIvgg==} + dev: true + /@sindresorhus/merge-streams@2.3.0: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} @@ -5895,6 +6138,12 @@ packages: dependencies: '@sinonjs/commons': 3.0.1 + /@sinonjs/fake-timers@11.2.2: + resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + dependencies: + '@sinonjs/commons': 3.0.1 + dev: true + /@size-limit/esbuild@11.1.4(size-limit@11.1.4): resolution: {integrity: sha512-Nxh+Fw4Z7sFjRLeT7GDZIy297VXyJrMvG20UDSWP31QgglriEBDkW9U77T7W6js5FaEr89bYVrGzpHfmE1CLFw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6975,6 +7224,24 @@ packages: transitivePeerDependencies: - supports-color + /babel-jest@30.0.0-alpha.5(@babel/core@7.24.7): + resolution: {integrity: sha512-58KT2/OgHBdfOmM7FdDmWWVKrvrHborUpNys/tu0nnlTyfAqB/lRvqOGN4y8JFe6q9pdTf2AzxU5prFTDbxVMg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + dependencies: + '@babel/core': 7.24.7 + '@jest/transform': 30.0.0-alpha.5 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 30.0.0-alpha.5(@babel/core@7.24.7) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} @@ -6996,6 +7263,16 @@ packages: '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 + /babel-plugin-jest-hoist@30.0.0-alpha.5: + resolution: {integrity: sha512-Vx32ynouoDRR85S3giKaEfYrZ3Nc73XfCITi4EftNQ16cY/jOPyldrJHIwye79WjTIUj/+bhVgBRZALDYx+Ncw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.5 + dev: true + /babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} @@ -7111,6 +7388,17 @@ packages: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) + /babel-preset-jest@30.0.0-alpha.5(@babel/core@7.24.7): + resolution: {integrity: sha512-LmoEZClo/Bk87e7g7PTJq25Ote7Bjw/M0AgvPJHz7yc6OGN5cEasP5Ovew8A5RgAGvO39HfWE2R+p5fol8lAhQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + dependencies: + '@babel/core': 7.24.7 + babel-plugin-jest-hoist: 30.0.0-alpha.5 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) + dev: true + /backo2@1.0.2: resolution: {integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==} @@ -7520,6 +7808,11 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + /ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + dev: true + /cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} @@ -8126,6 +8419,11 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /diff-sequences@30.0.0-alpha.5: + resolution: {integrity: sha512-zztnoTBNChfe30emTHZw382eoMZlTWS/t4R88HU2UCmiw38dlgTwglI+xqaUhZiEg/CnA20ZRVBaBIio3TazIw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dev: true + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -8786,6 +9084,17 @@ packages: jest-message-util: 29.7.0 jest-util: 29.7.0 + /expect@30.0.0-alpha.5: + resolution: {integrity: sha512-8hBXtSCQuJnZFOUAAiih2GYDRg93h2Ui6XL9BPu6QgSvlSozTLCtCyDsNPq7aL0D43H5uYHwqXiVfWW6MIlJhw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/expect-utils': 30.0.0-alpha.5 + jest-get-type: 30.0.0-alpha.5 + jest-matcher-utils: 30.0.0-alpha.5 + jest-message-util: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + dev: true + /extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} dev: true @@ -9972,6 +10281,17 @@ packages: transitivePeerDependencies: - supports-color + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + engines: {node: '>=10'} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-reports@3.1.7: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} @@ -10009,6 +10329,15 @@ packages: jest-util: 29.7.0 p-limit: 3.1.0 + /jest-changed-files@30.0.0-alpha.5: + resolution: {integrity: sha512-B6GjanWozUsg3tho2CFo4JYZ3iqMOdXexOEre1CQHTUecwAH3uNm9aIy4E1QTX41xEGEbPdBq7b1SHZKe6yPkg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + execa: 5.1.1 + jest-util: 30.0.0-alpha.5 + p-limit: 3.1.0 + dev: true + /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} @@ -10037,6 +10366,35 @@ packages: - babel-plugin-macros - supports-color + /jest-circus@30.0.0-alpha.5: + resolution: {integrity: sha512-ENNme2MvQc7WZ7EvcJclSV+MI7cLQzTXY/727Fwy3EojewKYXH8aPeZsnKssI2T3kdnjqTb/8uXryMX5IznuEg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/environment': 30.0.0-alpha.5 + '@jest/expect': 30.0.0-alpha.5 + '@jest/test-result': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.3 + is-generator-fn: 2.1.0 + jest-each: 30.0.0-alpha.5 + jest-matcher-utils: 30.0.0-alpha.5 + jest-message-util: 30.0.0-alpha.5 + jest-runtime: 30.0.0-alpha.5 + jest-snapshot: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + p-limit: 3.1.0 + pretty-format: 30.0.0-alpha.5 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + /jest-cli@29.7.0(@types/node@20.14.2)(ts-node@10.9.2): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10064,6 +10422,33 @@ packages: - supports-color - ts-node + /jest-cli@30.0.0-alpha.5(@types/node@20.14.2)(ts-node@10.9.2): + resolution: {integrity: sha512-1POf1608rIeein/m7rarK5grGZGQEhAtRolcKM+qKtvYrJ8O7Cj6Siig0fAadqT0LCRHMgwaU2o6JPewORmMyw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 30.0.0-alpha.5(ts-node@10.9.2) + '@jest/test-result': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + chalk: 4.1.2 + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 30.0.0-alpha.5(@types/node@20.14.2)(ts-node@10.9.2) + jest-util: 30.0.0-alpha.5 + jest-validate: 30.0.0-alpha.5 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /jest-config@29.7.0(@types/node@20.14.2)(ts-node@10.9.2): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10104,6 +10489,48 @@ packages: - babel-plugin-macros - supports-color + /jest-config@30.0.0-alpha.5(@types/node@20.14.2)(ts-node@10.9.2): + resolution: {integrity: sha512-nczn/2mp3+j4pO5wT/fT9l7PY1nFdQZkvskFxsjdlKHP0anDK0i3zZTzVpNpdOqA/lX5lncVedzj2yPzWtv1tQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.24.7 + '@jest/pattern': 30.0.0-alpha.5 + '@jest/test-sequencer': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + babel-jest: 30.0.0-alpha.5(@babel/core@7.24.7) + chalk: 4.1.2 + ci-info: 4.0.0 + deepmerge: 4.3.1 + glob: 10.3.10 + graceful-fs: 4.2.11 + jest-circus: 30.0.0-alpha.5 + jest-environment-node: 30.0.0-alpha.5 + jest-get-type: 30.0.0-alpha.5 + jest-regex-util: 30.0.0-alpha.5 + jest-resolve: 30.0.0-alpha.5 + jest-runner: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + jest-validate: 30.0.0-alpha.5 + micromatch: 4.0.7 + parse-json: 5.2.0 + pretty-format: 30.0.0-alpha.5 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.2(@types/node@20.14.2)(typescript@5.4.5) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + /jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10113,12 +10540,29 @@ packages: jest-get-type: 29.6.3 pretty-format: 29.7.0 + /jest-diff@30.0.0-alpha.5: + resolution: {integrity: sha512-IX4X/Ubh3LmlsL5iFUUpYNvGsO+Il1tgu7HFdlrRFEIr0WbpAittobjIQJpoE2PJZbJ8oenxilcVyFjx0tZXNg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 30.0.0-alpha.5 + jest-get-type: 30.0.0-alpha.5 + pretty-format: 30.0.0-alpha.5 + dev: true + /jest-docblock@29.7.0: resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 + /jest-docblock@30.0.0-alpha.5: + resolution: {integrity: sha512-P3BGGmZ7z0pyD1mgVRzsfMmjyj+zpn839p/y44tRS8k50Fg+NCL5qUoKHjDLAUnLHcwQxFfk8nrqraebphHfZA==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + /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} @@ -10129,6 +10573,17 @@ packages: jest-util: 29.7.0 pretty-format: 29.7.0 + /jest-each@30.0.0-alpha.5: + resolution: {integrity: sha512-7a+NZmWFU5oPYjon0uG76rDLMVK2TKrrMZOBtROE3nnnrXuwp5TMKqMV8xpX3I8q7qJA/IIoW7EzFnR/XhnzzQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/types': 30.0.0-alpha.5 + chalk: 4.1.2 + jest-get-type: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + pretty-format: 30.0.0-alpha.5 + dev: true + /jest-environment-jsdom@29.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10163,10 +10618,27 @@ packages: jest-mock: 29.7.0 jest-util: 29.7.0 + /jest-environment-node@30.0.0-alpha.5: + resolution: {integrity: sha512-UzHsz+aarw8e2+JVvpFA1Qi+2Az/nfCcvgir9nP/JvHRqM+I6wG8LLGhpihp1nraYtmhwu5+kxGbEjOe0UYMgg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/environment': 30.0.0-alpha.5 + '@jest/fake-timers': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + jest-mock: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + dev: true + /jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /jest-get-type@30.0.0-alpha.5: + resolution: {integrity: sha512-ARPyHe90hG5fJH7nkxnmSCIUpeCIJcsGAUA2+a0MwptFfNJKBOYpkq/SnFaS7i994R50E4n9Beq8kUC2vVVVkw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dev: true + /jest-haste-map@29.7.0: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10185,6 +10657,24 @@ packages: optionalDependencies: fsevents: 2.3.3 + /jest-haste-map@30.0.0-alpha.5: + resolution: {integrity: sha512-9wCSxvqItNAiXfzEf7zuYG0mcmDCFKnkrneH0M60aDfnsQ5B4dHjs4UHcjtUJiM1txWMCa2fjTvNUP4RhwaGnQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + jest-worker: 30.0.0-alpha.5 + micromatch: 4.0.7 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /jest-leak-detector@29.7.0: resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10192,6 +10682,14 @@ packages: jest-get-type: 29.6.3 pretty-format: 29.7.0 + /jest-leak-detector@30.0.0-alpha.5: + resolution: {integrity: sha512-GTvYhmVSWajONNYHy6XsEjXbz/d97kmyn9JLzT5Cdlzxftwx1j/1c6HrTIYTQPC1JnYoVty5GQRMZilXgSi5kA==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + jest-get-type: 30.0.0-alpha.5 + pretty-format: 30.0.0-alpha.5 + dev: true + /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} @@ -10201,6 +10699,16 @@ packages: jest-get-type: 29.6.3 pretty-format: 29.7.0 + /jest-matcher-utils@30.0.0-alpha.5: + resolution: {integrity: sha512-VYGnROjw1x18rplUzGhccox9AynqQDQgDyhCzAQXmilDlk+quGt6J+sURa7kGwcVcZO+nF/ICGHphrcAvavMqA==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 30.0.0-alpha.5 + jest-get-type: 30.0.0-alpha.5 + pretty-format: 30.0.0-alpha.5 + dev: true + /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} @@ -10215,6 +10723,21 @@ packages: slash: 3.0.0 stack-utils: 2.0.6 + /jest-message-util@30.0.0-alpha.5: + resolution: {integrity: sha512-adNjtJLdcE0r1AlaV/9sSwBm6cT6c8/CdHE6IMTEIItvn/6+eSACom0ZaYVUkz8mCdE87DVp4E9JaI7CyfybNw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@babel/code-frame': 7.24.7 + '@jest/types': 30.0.0-alpha.5 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.7 + pretty-format: 30.0.0-alpha.5 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + /jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10223,6 +10746,15 @@ packages: '@types/node': 20.14.2 jest-util: 29.7.0 + /jest-mock@30.0.0-alpha.5: + resolution: {integrity: sha512-n+KPnCMJOs+W4mhIQzaO0wVJiAbGDH/HMqa/Hq8V/QLNKNzCF9jqN+DHVn3OKmizyjX7fQmp/fg0SVHQTh/SCw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + jest-util: 30.0.0-alpha.5 + dev: true + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -10234,10 +10766,27 @@ packages: dependencies: jest-resolve: 29.7.0 + /jest-pnp-resolver@1.2.3(jest-resolve@30.0.0-alpha.5): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 30.0.0-alpha.5 + dev: 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-regex-util@30.0.0-alpha.5: + resolution: {integrity: sha512-b8LtZJTG17X/1Hm+s2A+YOh3pJbBoOV/K91N2Pl29MjcwsKwwlOUjkeY2GJwid+Z8kFZ7cbLYadDI7YCV+YEOA==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dev: true + /jest-resolve-dependencies@29.7.0: resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10247,6 +10796,16 @@ packages: transitivePeerDependencies: - supports-color + /jest-resolve-dependencies@30.0.0-alpha.5: + resolution: {integrity: sha512-9urYvTflJ2+rnZHbI71gBUXpqIrB/G9OxUybzrw1IJML6jc88pbvE/b5xz1+G2TI4pygEbALRhHGAdw/k1e6+g==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + jest-regex-util: 30.0.0-alpha.5 + jest-snapshot: 30.0.0-alpha.5 + transitivePeerDependencies: + - supports-color + dev: true + /jest-resolve@29.7.0: resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10261,6 +10820,21 @@ packages: resolve.exports: 2.0.2 slash: 3.0.0 + /jest-resolve@30.0.0-alpha.5: + resolution: {integrity: sha512-tuAhahDAPeMzYJDA0FoJV2kXdKWTueLTohy2vPJRp3Xk9eyHwVNxtsB5QwQv/4FWQ3xto9mfGW0F+8RzRAtFkQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 30.0.0-alpha.5 + jest-pnp-resolver: 1.2.3(jest-resolve@30.0.0-alpha.5) + jest-util: 30.0.0-alpha.5 + jest-validate: 30.0.0-alpha.5 + resolve: 1.22.8 + resolve.exports: 2.0.2 + slash: 3.0.0 + dev: true + /jest-runner@29.7.0: resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10289,6 +10863,35 @@ packages: transitivePeerDependencies: - supports-color + /jest-runner@30.0.0-alpha.5: + resolution: {integrity: sha512-w85S1WNna31g/vHpfS5vGDkSEjZGv8YIJUclieJpcbEHZSg5vSs9VlbnMo4N8f5oYYm0TzxBfkcL4JKyIojnWw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/console': 30.0.0-alpha.5 + '@jest/environment': 30.0.0-alpha.5 + '@jest/test-result': 30.0.0-alpha.5 + '@jest/transform': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 30.0.0-alpha.5 + jest-environment-node: 30.0.0-alpha.5 + jest-haste-map: 30.0.0-alpha.5 + jest-leak-detector: 30.0.0-alpha.5 + jest-message-util: 30.0.0-alpha.5 + jest-resolve: 30.0.0-alpha.5 + jest-runtime: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + jest-watcher: 30.0.0-alpha.5 + jest-worker: 30.0.0-alpha.5 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + /jest-runtime@29.7.0: resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10318,6 +10921,36 @@ packages: transitivePeerDependencies: - supports-color + /jest-runtime@30.0.0-alpha.5: + resolution: {integrity: sha512-u49zkJUaWV11sFtIFCOpOPhT2WDEYBjWiQ2vkiIZ+CqkWjjAdojnEJKwU9lVabUNo4JlKOBhbYpXaJyFak0EaQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/environment': 30.0.0-alpha.5 + '@jest/fake-timers': 30.0.0-alpha.5 + '@jest/globals': 30.0.0-alpha.5 + '@jest/source-map': 30.0.0-alpha.5 + '@jest/test-result': 30.0.0-alpha.5 + '@jest/transform': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + chalk: 4.1.2 + cjs-module-lexer: 1.2.3 + collect-v8-coverage: 1.0.2 + glob: 10.3.10 + graceful-fs: 4.2.11 + jest-haste-map: 30.0.0-alpha.5 + jest-message-util: 30.0.0-alpha.5 + jest-mock: 30.0.0-alpha.5 + jest-regex-util: 30.0.0-alpha.5 + jest-resolve: 30.0.0-alpha.5 + jest-snapshot: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /jest-snapshot@29.7.0: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10345,6 +10978,35 @@ packages: transitivePeerDependencies: - supports-color + /jest-snapshot@30.0.0-alpha.5: + resolution: {integrity: sha512-XMAnYEAgehvxNu+Hb+fJFf725XKp7WjbaWaPFpUJaxBXx/dGYCvyZxT+zONU6WbeYAguhQ33HeTxH3uAPAfhUw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@babel/core': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.7) + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.7) + '@babel/types': 7.24.7 + '@jest/expect-utils': 30.0.0-alpha.5 + '@jest/snapshot-utils': 30.0.0-alpha.5 + '@jest/transform': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7) + chalk: 4.1.2 + expect: 30.0.0-alpha.5 + graceful-fs: 4.2.11 + jest-diff: 30.0.0-alpha.5 + jest-get-type: 30.0.0-alpha.5 + jest-matcher-utils: 30.0.0-alpha.5 + jest-message-util: 30.0.0-alpha.5 + jest-util: 30.0.0-alpha.5 + pretty-format: 30.0.0-alpha.5 + semver: 7.6.2 + synckit: 0.9.0 + transitivePeerDependencies: + - supports-color + dev: true + /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10356,6 +11018,18 @@ packages: graceful-fs: 4.2.11 picomatch: 2.3.1 + /jest-util@30.0.0-alpha.5: + resolution: {integrity: sha512-sWme530oJ6RXgXSgORZqV0YnPaG/Mb+VM8EJxr2AMOwc6YS63KDGI/NKT1M+rfFDD+U9VU3IBpnkEo5Ywi8LjQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + chalk: 4.1.2 + ci-info: 4.0.0 + graceful-fs: 4.2.11 + picomatch: 4.0.2 + dev: true + /jest-validate@29.7.0: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10367,6 +11041,18 @@ packages: leven: 3.1.0 pretty-format: 29.7.0 + /jest-validate@30.0.0-alpha.5: + resolution: {integrity: sha512-Xy2X/q2SGx1YYHBZ7XE4k0cNHpvCsW45TI1QngVxzNpnbl+VUgIGb+YTc/EnKFckQj13w9ReMVQwqZViSjSB/g==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/types': 30.0.0-alpha.5 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 30.0.0-alpha.5 + leven: 3.1.0 + pretty-format: 30.0.0-alpha.5 + dev: true + /jest-watch-typeahead@2.2.2(jest@29.7.0): resolution: {integrity: sha512-+QgOFW4o5Xlgd6jGS5X37i08tuuXNW8X0CV9WNFi+3n8ExCIP+E1melYhvYLjv5fE6D0yyzk74vsSO8I6GqtvQ==} engines: {node: ^14.17.0 || ^16.10.0 || >=18.0.0} @@ -10396,6 +11082,20 @@ packages: jest-util: 29.7.0 string-length: 4.0.2 + /jest-watcher@30.0.0-alpha.5: + resolution: {integrity: sha512-TFzV/GtI3tA4ab0IP2HZyaZ7skMS1yu2HmLfznAjhFixZpdkA3zsRevH5nX0YZo+2zAO/jgrJoXdWH8OexjMug==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/test-result': 30.0.0-alpha.5 + '@jest/types': 30.0.0-alpha.5 + '@types/node': 20.14.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 30.0.0-alpha.5 + string-length: 4.0.2 + dev: true + /jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10405,6 +11105,16 @@ packages: merge-stream: 2.0.0 supports-color: 8.1.1 + /jest-worker@30.0.0-alpha.5: + resolution: {integrity: sha512-BNOP7TMpf4Fw+f7IiVxXS//NroCY/nAzR4yAr5ABkHZDTh3eWIBwGWNCBqK/IBZcaStQYqvgTwjVWgfPAUalPQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@types/node': 20.14.2 + jest-util: 30.0.0-alpha.5 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + /jest@29.7.0(@types/node@20.14.2)(ts-node@10.9.2): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10425,6 +11135,27 @@ packages: - supports-color - ts-node + /jest@30.0.0-alpha.5(@types/node@20.14.2)(ts-node@10.9.2): + resolution: {integrity: sha512-9NLqkZFNNONpDxBV95Zm3NRGMssGYH1x7SD+4fnzy5Wf6RaFv1buG3Zwb8nkAeZPIhsTmNFKCMiFCGSrPDeiaQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 30.0.0-alpha.5(ts-node@10.9.2) + '@jest/types': 30.0.0-alpha.5 + import-local: 3.1.0 + jest-cli: 30.0.0-alpha.5(@types/node@20.14.2)(ts-node@10.9.2) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true @@ -11486,6 +12217,11 @@ packages: engines: {node: '>=10'} dev: true + /picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + dev: true + /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -11673,6 +12409,15 @@ packages: ansi-styles: 5.2.0 react-is: 18.3.1 + /pretty-format@30.0.0-alpha.5: + resolution: {integrity: sha512-qRzqj0zWh2CRvL9UbWGksN9YSSuzzvNqexrDBwKiH48RVX00BQCxHwSfWF+sigp3IZGKxjG2nud42SQQU8q3Yg==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + dependencies: + '@jest/schemas': 30.0.0-alpha.5 + ansi-styles: 5.2.0 + react-is: 18.3.1 + dev: true + /pretty-quick@4.0.0(prettier@3.2.5): resolution: {integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==} engines: {node: '>=14'} @@ -12878,6 +13623,14 @@ packages: tslib: 2.6.3 dev: true + /synckit@0.9.0: + resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.3 + dev: true + /tailwindcss@3.4.4(ts-node@10.9.2): resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} engines: {node: '>=14.0.0'} @@ -13840,6 +14593,14 @@ packages: imurmurhash: 0.1.4 signal-exit: 3.0.7 + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + dev: true + /ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@6.0.4): resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} engines: {node: '>=8.3.0'}