From 322678d432e7640c743be4d9c23037823c2e6e5f Mon Sep 17 00:00:00 2001 From: xobotyi Date: Mon, 10 Oct 2022 18:50:51 +0200 Subject: [PATCH 01/20] feat: rework useStorageValue to more simple and robust variant BREAKING CHANGE: new implementation brings different API. It is not backward compatible! --- .../__docs__/example.stories.tsx | 22 +- .../useLocalStorageValue.ts | 76 +-- .../__docs__/example.stories.tsx | 21 +- .../useSessionStorageValue.ts | 80 ++-- src/useStorageValue/__tests__/dom.ts | 411 +++++----------- src/useStorageValue/__tests__/misc.ts | 13 + src/useStorageValue/__tests__/ssr.ts | 97 ++-- src/useStorageValue/useStorageValue.ts | 441 ++++++++---------- 8 files changed, 414 insertions(+), 747 deletions(-) create mode 100644 src/useStorageValue/__tests__/misc.ts diff --git a/src/useLocalStorageValue/__docs__/example.stories.tsx b/src/useLocalStorageValue/__docs__/example.stories.tsx index f39c2564..052f1527 100644 --- a/src/useLocalStorageValue/__docs__/example.stories.tsx +++ b/src/useLocalStorageValue/__docs__/example.stories.tsx @@ -10,25 +10,15 @@ interface ExampleProps { * LocalStorage key to manage. */ key: string; - /** - * Subscribe to window's `storage` event. - */ - handleStorageEvent: boolean; - /** - * Isolate hook from others on page - it will not receive updates from other hooks with the same key. - */ - isolated: boolean; } export const Example: React.FC = ({ key = 'react-hookz-ls-test', defaultValue = '@react-hookz is awesome', - handleStorageEvent = true, - isolated = false, }) => { - const [value, setValue, removeValue] = useLocalStorageValue(key, defaultValue, { - handleStorageEvent, - isolated, + const lsVal = useLocalStorageValue(key, { + defaultValue, + initializeWithValue: true, }); return ( @@ -40,12 +30,12 @@ export const Example: React.FC = ({
{ - setValue(ev.currentTarget.value); + lsVal.set(ev.currentTarget.value); }} />{' '} - + ); }; diff --git a/src/useLocalStorageValue/useLocalStorageValue.ts b/src/useLocalStorageValue/useLocalStorageValue.ts index fa39c664..fdfe61af 100644 --- a/src/useLocalStorageValue/useLocalStorageValue.ts +++ b/src/useLocalStorageValue/useLocalStorageValue.ts @@ -1,11 +1,11 @@ import { - HookReturn, - UseStorageValueOptions, useStorageValue, + UseStorageValueOptions, + UseStorageValueResult, } from '../useStorageValue/useStorageValue'; import { isBrowser, noop } from '../util/const'; -let IS_LOCAL_STORAGE_AVAILABLE = false; +let IS_LOCAL_STORAGE_AVAILABLE: boolean; try { IS_LOCAL_STORAGE_AVAILABLE = isBrowser && !!window.localStorage; @@ -15,62 +15,34 @@ try { IS_LOCAL_STORAGE_AVAILABLE = false; } -interface UseLocalStorageValue { - (key: string, defaultValue?: null, options?: UseStorageValueOptions): HookReturn< - T, - typeof defaultValue, - UseStorageValueOptions - >; - - ( - key: string, - defaultValue: null, - options: UseStorageValueOptions - ): HookReturn; - - (key: string, defaultValue: T, options?: UseStorageValueOptions): HookReturn< - T, - typeof defaultValue, - UseStorageValueOptions - >; - - (key: string, defaultValue: T, options: UseStorageValueOptions): HookReturn< - T, - typeof defaultValue, - typeof options - >; - - (key: string, defaultValue?: T | null, options?: UseStorageValueOptions): HookReturn< - T, - typeof defaultValue, - typeof options - >; -} +type UseLocalStorageValue = < + Type, + Default extends Type = Type, + Initialize extends boolean | undefined = boolean | undefined +>( + key: string, + options?: UseStorageValueOptions +) => UseStorageValueResult; /** * Manages a single localStorage key. - * - * @param key Storage key to manage - * @param defaultValue Default value to yield in case the key is not in storage - * @param options */ -export const useLocalStorageValue: UseLocalStorageValue = IS_LOCAL_STORAGE_AVAILABLE - ? ( - key: string, - defaultValue: T | null = null, - options: UseStorageValueOptions = {} - ): HookReturn => - useStorageValue(localStorage, key, defaultValue, options) - : ( - key: string, - defaultValue: T | null = null, - options: UseStorageValueOptions = {} - ): HookReturn => { - /* istanbul ignore next */ +export const useLocalStorageValue: UseLocalStorageValue = !IS_LOCAL_STORAGE_AVAILABLE + ? < + Type, + Default extends Type = Type, + Initialize extends boolean | undefined = boolean | undefined + >( + _key: string, + _options?: UseStorageValueOptions + ): UseStorageValueResult => { if (isBrowser && process.env.NODE_ENV === 'development') { // eslint-disable-next-line no-console console.warn('LocalStorage is not available in this environment'); } - return [undefined, noop, noop, noop]; + return { value: undefined as Type, set: noop, remove: noop, fetch: noop }; + } + : (key, options) => { + return useStorageValue(localStorage, key, options); }; diff --git a/src/useSessionStorageValue/__docs__/example.stories.tsx b/src/useSessionStorageValue/__docs__/example.stories.tsx index af98853d..427b3859 100644 --- a/src/useSessionStorageValue/__docs__/example.stories.tsx +++ b/src/useSessionStorageValue/__docs__/example.stories.tsx @@ -10,26 +10,13 @@ interface ExampleProps { * SessionStorage key to manage. */ key: string; - /** - * Subscribe to window's `storage` event. - */ - handleStorageEvent: boolean; - /** - * Isolate hook from others on page - it will not receive updates from other hooks with the same key. - */ - isolated: boolean; } export const Example: React.FC = ({ key = 'react-hookz-ss-test', defaultValue = '@react-hookz is awesome', - handleStorageEvent = true, - isolated = false, }) => { - const [value, setValue, removeValue] = useSessionStorageValue(key, defaultValue, { - handleStorageEvent, - isolated, - }); + const ssVal = useSessionStorageValue(key, { defaultValue, initializeWithValue: true }); return (
@@ -40,12 +27,12 @@ export const Example: React.FC = ({
{ - setValue(ev.currentTarget.value); + ssVal.set(ev.currentTarget.value); }} />{' '} - +
); }; diff --git a/src/useSessionStorageValue/useSessionStorageValue.ts b/src/useSessionStorageValue/useSessionStorageValue.ts index 9c2bf4fe..0d607c17 100644 --- a/src/useSessionStorageValue/useSessionStorageValue.ts +++ b/src/useSessionStorageValue/useSessionStorageValue.ts @@ -1,76 +1,48 @@ import { - HookReturn, - UseStorageValueOptions, useStorageValue, + UseStorageValueOptions, + UseStorageValueResult, } from '../useStorageValue/useStorageValue'; import { isBrowser, noop } from '../util/const'; -let IS_SESSION_STORAGE_AVAILABLE = false; +let IS_LOCAL_STORAGE_AVAILABLE: boolean; try { - IS_SESSION_STORAGE_AVAILABLE = isBrowser && !!window.sessionStorage; + IS_LOCAL_STORAGE_AVAILABLE = isBrowser && !!window.sessionStorage; } catch { // no need to test this flag leads to noop behaviour /* istanbul ignore next */ - IS_SESSION_STORAGE_AVAILABLE = false; + IS_LOCAL_STORAGE_AVAILABLE = false; } -interface UseSessionStorageValue { - (key: string, defaultValue?: null, options?: UseStorageValueOptions): HookReturn< - T, - typeof defaultValue, - UseStorageValueOptions - >; - - ( - key: string, - defaultValue: null, - options: UseStorageValueOptions - ): HookReturn; - - (key: string, defaultValue: T, options?: UseStorageValueOptions): HookReturn< - T, - typeof defaultValue, - UseStorageValueOptions - >; - - (key: string, defaultValue: T, options: UseStorageValueOptions): HookReturn< - T, - typeof defaultValue, - typeof options - >; - - (key: string, defaultValue?: T | null, options?: UseStorageValueOptions): HookReturn< - T, - typeof defaultValue, - typeof options - >; -} +type UseSessionStorageValue = < + Type, + Default extends Type = Type, + Initialize extends boolean | undefined = boolean | undefined +>( + key: string, + options?: UseStorageValueOptions +) => UseStorageValueResult; /** * Manages a single sessionStorage key. - * - * @param key Storage key to manage - * @param defaultValue Default value to yield in case the key is not in storage - * @param options */ -export const useSessionStorageValue: UseSessionStorageValue = IS_SESSION_STORAGE_AVAILABLE - ? ( - key: string, - defaultValue: T | null = null, - options: UseStorageValueOptions = {} - ): HookReturn => - useStorageValue(sessionStorage, key, defaultValue, options) - : ( - key: string, - defaultValue: T | null = null, - options: UseStorageValueOptions = {} - ): HookReturn => { - /* istanbul ignore next */ +export const useSessionStorageValue: UseSessionStorageValue = !IS_LOCAL_STORAGE_AVAILABLE + ? < + Type, + Default extends Type = Type, + Initialize extends boolean | undefined = boolean | undefined + >( + _key: string, + _options?: UseStorageValueOptions + ): UseStorageValueResult => { if (isBrowser && process.env.NODE_ENV === 'development') { // eslint-disable-next-line no-console console.warn('SessionStorage is not available in this environment'); } - return [undefined, noop, noop, noop]; + return { value: undefined as Type, set: noop, remove: noop, fetch: noop }; + } + : (key, options) => { + return useStorageValue(sessionStorage, key, options); }; diff --git a/src/useStorageValue/__tests__/dom.ts b/src/useStorageValue/__tests__/dom.ts index 85aab306..939761e3 100644 --- a/src/useStorageValue/__tests__/dom.ts +++ b/src/useStorageValue/__tests__/dom.ts @@ -1,302 +1,204 @@ import { act, renderHook } from '@testing-library/react-hooks/dom'; import { useStorageValue } from '../useStorageValue'; -import Mocked = jest.Mocked; +import { newStorage } from './misc'; describe('useStorageValue', () => { it('should be defined', () => { expect(useStorageValue).toBeDefined(); }); - const adapter = { - getItem: jest.fn(() => null), - - setItem: jest.fn(() => {}), - - removeItem: jest.fn(() => {}), - } as unknown as Mocked; - - beforeEach(() => { - adapter.getItem.mockClear().mockImplementation(() => null); - adapter.setItem.mockClear(); - adapter.removeItem.mockClear(); - }); - it('should render', () => { - const { result } = renderHook(() => useStorageValue(adapter, 'foo')); + const { result } = renderHook(() => useStorageValue(newStorage(), 'foo')); + expect(result.error).toBeUndefined(); }); it('should fetch value from storage only on init', () => { - adapter.getItem.mockImplementationOnce((key) => `"${key}"`); - const { result, rerender } = renderHook(() => useStorageValue(adapter, 'foo')); - expect(result.current[0]).toBe('foo'); - expect(adapter.getItem).toHaveBeenCalledWith('foo'); + const storage = newStorage((key) => `"${key}"`); + const { result, rerender } = renderHook(() => useStorageValue(storage, 'foo')); + + expect(result.current.value).toBe('foo'); + expect(storage.getItem).toHaveBeenCalledWith('foo'); + rerender(); rerender(); rerender(); - expect(adapter.getItem).toHaveBeenCalledTimes(1); + + expect(storage.getItem).toHaveBeenCalledTimes(1); }); it('should pass value through JSON.parse during fetch', () => { const JSONParseSpy = jest.spyOn(JSON, 'parse'); - adapter.getItem.mockImplementationOnce((key) => `"${key}"`); - const { result } = renderHook(() => useStorageValue(adapter, 'foo')); - expect(result.current[0]).toBe('foo'); + const storage = newStorage((key) => `"${key}"`); + const { result } = renderHook(() => useStorageValue(storage, 'foo')); + + expect(result.current.value).toBe('foo'); expect(JSONParseSpy).toHaveBeenCalledWith('"foo"'); + JSONParseSpy.mockRestore(); }); it('should yield default value in case storage returned null during fetch', () => { - adapter.getItem.mockImplementationOnce(() => null); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', 'defaultValue')); - expect(result.current[0]).toBe('defaultValue'); - expect(adapter.getItem).toHaveBeenCalledWith('foo'); + const { result } = renderHook(() => + useStorageValue(newStorage(), 'foo', { defaultValue: 'defaultValue' }) + ); + + expect(result.current.value).toBe('defaultValue'); }); it('should yield default value and console.warn in case storage returned corrupted JSON', () => { const warnSpy = jest.spyOn(console, 'warn').mockImplementationOnce(() => {}); - adapter.getItem.mockImplementationOnce(() => 'corrupted JSON'); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', 'defaultValue')); - expect(result.current[0]).toBe('defaultValue'); + const { result } = renderHook(() => + useStorageValue( + newStorage(() => 'corrupted JSON'), + 'foo', + { defaultValue: 'defaultValue' } + ) + ); + + expect(result.current.value).toBe('defaultValue'); expect(warnSpy.mock.calls[0][0]).toBeInstanceOf(SyntaxError); + warnSpy.mockRestore(); }); - it('should not fetch value on first render in case `initializeWithStorageValue` options is set to false', () => { - adapter.getItem.mockImplementationOnce(() => '"bar"'); + it('should not fetch value on first render in case `initializeWithValue` options is set to false', () => { const { result } = renderHook(() => - useStorageValue(adapter, 'foo', null, { initializeWithStorageValue: false }) + useStorageValue( + newStorage(() => '"bar"'), + 'foo', + { initializeWithValue: false } + ) ); + // @ts-expect-error invalid typings of testing library - expect(result.all[0][0]).toBe(undefined); + expect(result.all[0].value).toBe(undefined); + // @ts-expect-error invalid typings of testing library + expect(result.all[1].value).toBe('bar'); + }); + + it('should fetch value on first render in case `initializeWithValue` options is set to true', () => { + const { result } = renderHook(() => + useStorageValue( + newStorage(() => '"bar"'), + 'foo', + { initializeWithValue: true } + ) + ); // @ts-expect-error invalid typings of testing library - expect(result.all[1][0]).toBe('bar'); + expect(result.all[0].value).toBe('bar'); }); - it('should set storage value on setState call', () => { - adapter.getItem.mockImplementationOnce(() => null); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', null)); + it('should set storage value on .set() call', () => { + const { result } = renderHook(() => useStorageValue(newStorage(), 'foo')); - expect(result.current[0]).toBe(null); + expect(result.current.value).toBe(null); act(() => { - result.current[1]('bar'); + result.current.set('bar'); }); - expect(result.current[0]).toBe('bar'); + expect(result.current.value).toBe('bar'); const spySetter = jest.fn(() => 'baz'); act(() => { - result.current[1](spySetter); + result.current.set(spySetter); }); - expect(result.current[0]).toBe('baz'); + expect(result.current.value).toBe('baz'); expect(spySetter).toHaveBeenCalledWith('bar'); }); it('should call JSON.stringify on setState call', () => { const JSONStringifySpy = jest.spyOn(JSON, 'stringify'); - adapter.getItem.mockImplementationOnce(() => null); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', null)); + const { result } = renderHook(() => useStorageValue(newStorage(), 'foo')); - expect(result.current[0]).toBe(null); + expect(result.current.value).toBe(null); act(() => { - result.current[1]('bar'); + result.current.set('bar'); }); - expect(result.current[0]).toBe('bar'); + expect(result.current.value).toBe('bar'); expect(JSONStringifySpy).toHaveBeenCalledWith('bar'); JSONStringifySpy.mockRestore(); }); - it('should not store null or data that cannot be processed by JSON serializer and emit console.warn', () => { - const warnSpy = jest.spyOn(console, 'warn').mockImplementationOnce(() => {}); - adapter.getItem.mockImplementationOnce(() => '"bar"'); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', 'default value')); + it('should not store null or data that cannot be processed by JSON serializer', () => { + const { result } = renderHook(() => + useStorageValue( + newStorage(() => '"bar"'), + 'foo', + { defaultValue: 'default value' } + ) + ); const invalidData: { a?: unknown } = {}; invalidData.a = { b: invalidData }; - expect(result.current[0]).toBe('bar'); + expect(result.current.value).toBe('bar'); act(() => { // @ts-expect-error testing inappropriate use - result.current[1](null); + result.current.set(null); }); - expect(result.current[0]).toBe('bar'); - expect(warnSpy).toHaveBeenCalledWith( - `'null' is not a valid data for useStorageValue hook, this operation will take no effect` - ); - - warnSpy.mockRestore(); + expect(result.current.value).toBe('bar'); }); - it('should call storage`s removeItem on item remove', () => { - adapter.getItem.mockImplementationOnce(() => null); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', null)); + it('should call storage`s removeItem on .remove() call', () => { + const storage = newStorage(); + const { result } = renderHook(() => useStorageValue(storage, 'foo')); act(() => { - result.current[2](); + result.current.remove(); }); - expect(adapter.removeItem).toHaveBeenCalledWith('foo'); + expect(storage.removeItem).toHaveBeenCalledWith('foo'); }); it('should set state to default value on item remove', () => { - adapter.getItem.mockImplementationOnce(() => '"bar"'); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', 'default value')); - - expect(result.current[0]).toBe('bar'); - act(() => { - result.current[2](); - }); - expect(result.current[0]).toBe('default value'); - }); - - it('should refetch value from store on fetchItem call', () => { - adapter.getItem.mockImplementationOnce(() => '"bar"'); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', 'default value')); - - expect(adapter.getItem).toHaveBeenCalledTimes(1); - expect(result.current[0]).toBe('bar'); - adapter.getItem.mockImplementationOnce(() => '"baz"'); - act(() => { - result.current[3](); - }); - expect(adapter.getItem).toHaveBeenCalledTimes(2); - expect(result.current[0]).toBe('baz'); - }); - - it('should refetch value on key change', () => { - adapter.getItem.mockImplementation((key) => `"${key}"`); - const { result, rerender } = renderHook( - ({ key }) => useStorageValue(adapter, key, 'default value'), - { initialProps: { key: 'foo' } } - ); - - expect(result.current[0]).toBe('foo'); - rerender({ key: 'bar' }); - expect(result.current[0]).toBe('bar'); - }); - - it('should store initially default value to storage if configured', () => { - adapter.getItem.mockImplementationOnce(() => null); const { result } = renderHook(() => - useStorageValue(adapter, 'foo', 'default value', { - storeDefaultValue: true, - }) + useStorageValue( + newStorage(() => '"bar"'), + 'foo', + { defaultValue: 'default value' } + ) ); - expect(result.current[0]).toBe('default value'); - expect(adapter.setItem).toHaveBeenCalledWith('foo', '"default value"'); + expect(result.current.value).toBe('bar'); + act(() => { + result.current.remove(); + }); + expect(result.current.value).toBe('default value'); }); - it('should store default value if it became default after initial render', () => { - adapter.getItem.mockImplementationOnce(() => '"bar"'); + it('should refetch value from store on .fetch() call', () => { + const storage = newStorage(() => '"bar"'); const { result } = renderHook(() => - useStorageValue(adapter, 'foo', 'default value', { - storeDefaultValue: true, - }) + useStorageValue(storage, 'foo', { defaultValue: 'default value' }) ); - adapter.getItem.mockImplementationOnce(() => null); - expect(result.current[0]).toBe('bar'); - expect(adapter.setItem).not.toHaveBeenCalled(); + expect(storage.getItem).toHaveBeenCalledTimes(1); + expect(result.current.value).toBe('bar'); + storage.getItem.mockImplementationOnce(() => '"baz"'); act(() => { - result.current[2](); + result.current.fetch(); }); - expect(result.current[0]).toBe('default value'); - expect(adapter.setItem).toHaveBeenCalledWith('foo', '"default value"'); - }); - - it('should not store default value on rerenders with persisted state', () => { - adapter.getItem.mockImplementationOnce(() => null); - const { result, rerender } = renderHook(() => - useStorageValue(adapter, 'foo', 'default value', { - storeDefaultValue: true, - }) - ); - - expect(result.current[0]).toBe('default value'); - expect(adapter.setItem).toHaveBeenCalledWith('foo', '"default value"'); - rerender(); - rerender(); - rerender(); - expect(adapter.setItem).toHaveBeenCalledTimes(1); + expect(storage.getItem).toHaveBeenCalledTimes(2); + expect(result.current.value).toBe('baz'); }); - it('should not store null default value to store', () => { - adapter.getItem.mockImplementationOnce(() => null); - renderHook(() => - useStorageValue(adapter, 'foo', null, { - storeDefaultValue: true, - }) + it('should refetch value on key change', () => { + const storage = newStorage((k) => `"${k}"`); + const { result, rerender } = renderHook( + ({ key }) => useStorageValue(storage, key, { defaultValue: 'default value' }), + { initialProps: { key: 'foo' } } ); - expect(adapter.setItem).not.toHaveBeenCalled(); + expect(result.current.value).toBe('foo'); + rerender({ key: 'bar' }); + expect(result.current.value).toBe('bar'); }); describe('should handle window`s `storage` event', () => { - const addEventListenerSpy = jest.spyOn(window, 'addEventListener'); - const removeEventListenerSpy = jest.spyOn(window, 'removeEventListener'); - - beforeEach(() => { - addEventListenerSpy.mockClear(); - removeEventListenerSpy.mockClear(); - }); - - it('should subscribe to event on mount', () => { - renderHook(() => useStorageValue(adapter, 'foo')); - - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const subscribeCall = addEventListenerSpy.mock.calls.find((i) => i[0] === 'storage')!; - expect(subscribeCall).not.toBe(undefined); - expect(subscribeCall[1]).toBeInstanceOf(Function); - expect(subscribeCall[2]).toStrictEqual({ passive: true }); - }); - - it('should not subscribe to event on mount if synchronisations is disabled', () => { - renderHook(() => - useStorageValue(adapter, 'foo', null, { handleStorageEvent: false }) - ); - - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const subscribeCall = addEventListenerSpy.mock.calls.find((i) => i[0] === 'storage')!; - expect(subscribeCall).toBe(undefined); - }); - - it('should not resubscribe for event even if key has changed', () => { - const { rerender } = renderHook(({ key }) => useStorageValue(adapter, key), { - initialProps: { key: 'foo' }, - }); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const subscribeCall = addEventListenerSpy.mock.calls.find((i) => i[0] === 'storage')!; - const storageEventHandler = subscribeCall[1]; - - addEventListenerSpy.mockClear(); - removeEventListenerSpy.mockClear(); - - rerender({ key: 'bar' }); - expect(removeEventListenerSpy.mock.calls.find((i) => i[1] === storageEventHandler)).toBe( - undefined - ); - }); - - it('should unsubscribe on unmount', () => { - const { unmount } = renderHook(() => useStorageValue(adapter, 'foo')); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const subscribeCall = addEventListenerSpy.mock.calls.find((i) => i[0] === 'storage')!; - const storageEventHandler = subscribeCall[1]; - - addEventListenerSpy.mockClear(); - removeEventListenerSpy.mockClear(); - - unmount(); - expect(removeEventListenerSpy.mock.calls.find((i) => i[1] === storageEventHandler)).not.toBe( - undefined - ); - }); - - it('should update state if managed key is updated, without calls to storage', () => { + it('should update state if tracked key is updated', () => { const { result } = renderHook(() => useStorageValue(localStorage, 'foo')); - - expect(result.current[0]).toBe(null); + expect(result.current.value).toBe(null); localStorage.setItem('foo', 'bar'); act(() => { @@ -305,14 +207,13 @@ describe('useStorageValue', () => { ); }); - expect(result.current[0]).toBe('foo'); + expect(result.current.value).toBe('foo'); localStorage.removeItem('foo'); }); it('should not update data on event storage or key mismatch', () => { const { result } = renderHook(() => useStorageValue(localStorage, 'foo')); - - expect(result.current[0]).toBe(null); + expect(result.current.value).toBe(null); act(() => { window.dispatchEvent( @@ -323,7 +224,7 @@ describe('useStorageValue', () => { }) ); }); - expect(result.current[0]).toBe(null); + expect(result.current.value).toBe(null); act(() => { window.dispatchEvent( @@ -334,7 +235,7 @@ describe('useStorageValue', () => { }) ); }); - expect(result.current[0]).toBe(null); + expect(result.current.value).toBe(null); localStorage.removeItem('foo'); }); @@ -343,95 +244,29 @@ describe('useStorageValue', () => { describe('synchronisation', () => { it('should update state of all hooks with the same key in same storage', () => { const { result: res } = renderHook(() => useStorageValue(localStorage, 'foo')); - const { result: res1 } = renderHook(() => useStorageValue(localStorage, 'foo')); - expect(res.current[0]).toBe(null); - expect(res1.current[0]).toBe(null); - - act(() => { - res.current[1]('bar'); - }); - expect(res.current[0]).toBe('bar'); - expect(res1.current[0]).toBe('bar'); - - act(() => { - res.current[2](); - }); - expect(res.current[0]).toBe(null); - expect(res1.current[0]).toBe(null); - - localStorage.setItem('foo', '"123"'); - act(() => { - res.current[3](); - }); - expect(res.current[0]).toBe('123'); - expect(res1.current[0]).toBe('123'); - localStorage.removeItem('foo'); - }); - - it('should not synchronize isolated hooks', () => { - const { result: res } = renderHook(() => useStorageValue(localStorage, 'foo')); - - const { result: res1 } = renderHook(() => - useStorageValue(localStorage, 'foo', null, { isolated: true }) - ); - - expect(res.current[0]).toBe(null); - expect(res1.current[0]).toBe(null); - - act(() => { - res.current[1]('bar'); - }); - expect(res.current[0]).toBe('bar'); - expect(res1.current[0]).toBe(null); - - act(() => { - res.current[2](); - }); - expect(res.current[0]).toBe(null); - expect(res1.current[0]).toBe(null); - - localStorage.setItem('foo', '"123"'); - act(() => { - res.current[3](); - }); - act(() => { - res.current[3](); - }); - expect(res.current[0]).toBe('123'); - expect(res1.current[0]).toBe(null); - localStorage.removeItem('foo'); - }); - - it('should not be synchronized by isolated hooks', () => { - const { result: res } = renderHook(() => useStorageValue(localStorage, 'foo')); - - const { result: res1 } = renderHook(() => - useStorageValue(localStorage, 'foo', null, { isolated: true }) - ); - - expect(res.current[0]).toBe(null); - expect(res1.current[0]).toBe(null); + expect(res.current.value).toBe(null); + expect(res1.current.value).toBe(null); act(() => { - res1.current[1]('bar'); + res.current.set('bar'); }); - expect(res.current[0]).toBe(null); - expect(res1.current[0]).toBe('bar'); + expect(res.current.value).toBe('bar'); + expect(res1.current.value).toBe('bar'); act(() => { - res1.current[2](); + res.current.remove(); }); - expect(res.current[0]).toBe(null); - expect(res1.current[0]).toBe(null); + expect(res.current.value).toBe(null); + expect(res1.current.value).toBe(null); localStorage.setItem('foo', '"123"'); act(() => { - res1.current[3](); + res.current.fetch(); }); - expect(res.current[0]).toBe(null); - expect(res1.current[0]).toBe('123'); + expect(res.current.value).toBe('123'); + expect(res1.current.value).toBe('123'); localStorage.removeItem('foo'); }); }); diff --git a/src/useStorageValue/__tests__/misc.ts b/src/useStorageValue/__tests__/misc.ts new file mode 100644 index 00000000..69959685 --- /dev/null +++ b/src/useStorageValue/__tests__/misc.ts @@ -0,0 +1,13 @@ +import Mocked = jest.Mocked; + +export const newStorage = ( + get: Storage['getItem'] = () => null, + set: Storage['setItem'] = () => {}, + remove: Storage['removeItem'] = () => {} +) => { + return { + getItem: jest.fn(get), + setItem: jest.fn(set), + removeItem: jest.fn(remove), + } as unknown as Mocked; +}; diff --git a/src/useStorageValue/__tests__/ssr.ts b/src/useStorageValue/__tests__/ssr.ts index 6d5dce8b..39d0b5b5 100644 --- a/src/useStorageValue/__tests__/ssr.ts +++ b/src/useStorageValue/__tests__/ssr.ts @@ -1,100 +1,69 @@ import { act, renderHook } from '@testing-library/react-hooks/server'; import { useStorageValue } from '../useStorageValue'; -import Mocked = jest.Mocked; +import { newStorage } from './misc'; describe('useStorageValue', () => { it('should be defined', () => { expect(useStorageValue).toBeDefined(); }); - const adapter = { - getItem: jest.fn(() => null), - - setItem: jest.fn(() => {}), - - removeItem: jest.fn(() => {}), - } as unknown as Mocked; - - beforeEach(() => { - adapter.getItem.mockClear().mockImplementation(() => null); - adapter.setItem.mockClear(); - adapter.removeItem.mockClear(); - }); - it('should render', () => { - const { result } = renderHook(() => useStorageValue(adapter, 'foo')); + const { result } = renderHook(() => useStorageValue(newStorage(), 'foo')); expect(result.error).toBeUndefined(); }); it('should not fetch value from storage on init', () => { - const { result } = renderHook(() => useStorageValue(adapter, 'foo')); - expect(result.current[0]).toBe(undefined); - expect(adapter.getItem).not.toHaveBeenCalled(); - }); - - it('should not set storage value on setState call', () => { - const { result } = renderHook(() => useStorageValue(adapter, 'foo')); + const storage = newStorage(); + const { result } = renderHook(() => useStorageValue(storage, 'foo')); - expect(result.current[0]).toBe(undefined); - act(() => { - result.current[1]('bar'); - }); - expect(result.current[0]).toBe(undefined); - expect(adapter.setItem).not.toHaveBeenCalled(); + expect(result.current.value).toBe(undefined); + expect(storage.getItem).not.toHaveBeenCalled(); }); - it('should not call storage`s removeItem on item remove', () => { - adapter.getItem.mockImplementationOnce(() => null); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', null)); + it('should not fetch value from storage on .fetch() call', () => { + const storage = newStorage(); + const { result } = renderHook(() => useStorageValue(storage, 'foo')); + expect(result.current.value).toBe(undefined); act(() => { - result.current[2](); + result.current.fetch(); }); - expect(adapter.removeItem).not.toHaveBeenCalled(); + expect(result.current.value).toBe(undefined); + expect(storage.getItem).not.toHaveBeenCalled(); }); - it('should not set state to default value on item remove', () => { - adapter.getItem.mockImplementationOnce(() => '"bar"'); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', 'default value')); + it('should not set storage value on .set() call', () => { + const storage = newStorage(); + const { result } = renderHook(() => useStorageValue(storage, 'foo')); - expect(result.current[0]).toBe(undefined); + expect(result.current.value).toBe(undefined); act(() => { - result.current[2](); + result.current.set('bar'); }); - expect(result.current[0]).toBe(undefined); + expect(result.current.value).toBe(undefined); + expect(storage.setItem).not.toHaveBeenCalled(); }); - it('should not re-fetch value from store on fetchItem call', () => { - adapter.getItem.mockImplementationOnce(() => '"bar"'); - const { result } = renderHook(() => useStorageValue(adapter, 'foo', 'default value')); + it('should not call storage`s removeItem on .remove() call', () => { + const storage = newStorage(); + const { result } = renderHook(() => useStorageValue(storage, 'foo')); - expect(adapter.getItem).not.toHaveBeenCalled(); act(() => { - result.current[3](); + result.current.remove(); }); - expect(adapter.getItem).not.toHaveBeenCalled(); + expect(storage.removeItem).not.toHaveBeenCalled(); }); - it('should not store initially default value to storage if configured', () => { - adapter.getItem.mockImplementationOnce(() => null); + it('should not set state to default value on item remove', () => { + const storage = newStorage(() => '"bar"'); const { result } = renderHook(() => - useStorageValue(adapter, 'foo', 'default value', { - storeDefaultValue: true, - }) - ); - - expect(result.current[0]).toBe(undefined); - expect(adapter.setItem).not.toHaveBeenCalled(); - }); - - it('should not store null default value to store', () => { - adapter.getItem.mockImplementationOnce(() => null); - renderHook(() => - useStorageValue(adapter, 'foo', null, { - storeDefaultValue: true, - }) + useStorageValue(storage, 'foo', { defaultValue: 'default value' }) ); - expect(adapter.setItem).not.toHaveBeenCalled(); + expect(result.current.value).toBe(undefined); + act(() => { + result.current.remove(); + }); + expect(result.current.value).toBe(undefined); }); }); diff --git a/src/useStorageValue/useStorageValue.ts b/src/useStorageValue/useStorageValue.ts index ba593b75..6e2523c2 100644 --- a/src/useStorageValue/useStorageValue.ts +++ b/src/useStorageValue/useStorageValue.ts @@ -1,336 +1,265 @@ /* eslint-disable @typescript-eslint/no-use-before-define,no-use-before-define */ -import { useCallback } from 'react'; -import { useConditionalEffect } from '../useConditionalEffect/useConditionalEffect'; -import { useFirstMountState } from '../useFirstMountState/useFirstMountState'; +import { useEffect, useMemo, useState } from 'react'; import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect'; -import { useMountEffect } from '../useMountEffect/useMountEffect'; -import { usePrevious } from '../usePrevious/usePrevious'; -import { useSafeState } from '../useSafeState/useSafeState'; import { useSyncedRef } from '../useSyncedRef/useSyncedRef'; import { useUpdateEffect } from '../useUpdateEffect/useUpdateEffect'; -import { NextState, resolveHookState } from '../util/resolveHookState'; import { isBrowser } from '../util/const'; import { off, on } from '../util/misc'; +import { NextState, resolveHookState } from '../util/resolveHookState'; -export type UseStorageValueOptions< - InitializeWithValue extends boolean | undefined = boolean | undefined -> = { - /** - * Whether to store default value to store. - * - * @default false - */ - storeDefaultValue?: boolean; +const storageListeners = new Map>>(); +const invokeStorageKeyListeners = ( + s: Storage, + key: string, + value: string | null, + skipListener?: CallableFunction +) => { + storageListeners + .get(s) + ?.get(key) + ?.forEach((listener) => { + if (listener !== skipListener) { + listener(value); + } + }); +}; + +const storageEventHandler = (evt: StorageEvent) => { + if (evt.storageArea && evt.key && evt.newValue) { + invokeStorageKeyListeners(evt.storageArea, evt.key, evt.newValue); + } +}; + +const addStorageListener = (s: Storage, key: string, listener: CallableFunction) => { + // in case of first listener added within browser environment we + // want to bind single storage event handler + if (isBrowser && storageListeners.size === 0) { + on(window, 'storage', storageEventHandler, { passive: true }); + } + + let keys = storageListeners.get(s); + if (!keys) { + keys = new Map(); + storageListeners.set(s, keys); + } + + let listeners = keys.get(key); + if (!listeners) { + listeners = new Set(); + keys.set(key, listeners); + } + + listeners.add(listener); +}; + +const removeStorageListener = (s: Storage, key: string, listener: CallableFunction) => { + const keys = storageListeners.get(s); + /* istanbul ignore next */ + if (!keys) { + return; + } + + const listeners = keys.get(key); + /* istanbul ignore next */ + if (!listeners) { + return; + } + + listeners.delete(listener); + + if (!listeners.size) { + keys.delete(key); + } + + if (!keys.size) { + storageListeners.delete(s); + } + + // unbind storage event handler in browser environment in case there is no + // storage keys listeners left + if (isBrowser && !storageListeners.size) { + off(window, 'storage', storageEventHandler); + } +}; + +export interface UseStorageValueOptions { /** - * Disable synchronisation with other hook instances with the same key on the same page. + * Default value that will be used in absence of value in storage. * - * @default false + * @default undefined */ - isolated?: boolean; + defaultValue?: T; /** - * Subscribe to window's `storage` event. + * Whether to initialize state with storage value or initialize with `undefined` state. * - * @default true + * @default false */ - handleStorageEvent?: boolean; -} & (InitializeWithValue extends undefined - ? { - /** - * Whether to initialize state with storage value or initialize with `undefined` state. - * - * Default to false during SSR - * - * @default true - */ - initializeWithStorageValue?: InitializeWithValue; - } - : { - initializeWithStorageValue: InitializeWithValue; - }); + initializeWithValue?: InitializeWithValue; +} -export type ReturnState< - T, - D, - O, - N = D extends null | undefined ? null | T : T, - U = O extends { initializeWithStorageValue: false } ? undefined | N : N +type UseStorageValueValue< + Type, + Default extends Type = Type, + Initialize extends boolean | undefined = boolean | undefined, + N = Default extends null | undefined ? null | Type : Type, + U = Initialize extends false | undefined ? undefined | N : N > = U; -export type HookReturn = [ - ReturnState, - (val: NextState>) => void, - () => void, - () => void -]; +export interface UseStorageValueResult< + Type, + Default extends Type = Type, + Initialize extends boolean | undefined = boolean | undefined +> { + value: UseStorageValueValue; -export function useStorageValue( - storage: Storage, - key: string, - defaultValue?: null, - options?: UseStorageValueOptions -): HookReturn>; -export function useStorageValue( - storage: Storage, - key: string, - defaultValue: null, - options: UseStorageValueOptions -): HookReturn; + set: (val: NextState>) => void; + remove: () => void; + fetch: () => void; +} -export function useStorageValue( - storage: Storage, - key: string, - defaultValue: T, - options?: UseStorageValueOptions -): HookReturn>; -export function useStorageValue( - storage: Storage, - key: string, - defaultValue: T, - options: UseStorageValueOptions -): HookReturn; +const DEFAULT_OPTIONS: UseStorageValueOptions = { + defaultValue: null, + initializeWithValue: true, +}; -export function useStorageValue( - storage: Storage, - key: string, - defaultValue?: T | null, - options?: UseStorageValueOptions -): HookReturn; - -/** - * Manages a single storage key. - * - * @param storage Storage instance that will be managed - * @param key Storage key to manage - * @param defaultValue Default value to yield in case the key is not in storage - * @param options - */ -export function useStorageValue( +export function useStorageValue< + Type, + Default extends Type = Type, + Initialize extends boolean | undefined = boolean | undefined +>( storage: Storage, key: string, - defaultValue: T | null = null, - options: UseStorageValueOptions = {} -): HookReturn { - const { isolated } = options; - let { - initializeWithStorageValue = true, - handleStorageEvent = true, - storeDefaultValue = false, - } = options; - - // avoid fetching data from storage during SSR - if (!isBrowser) { - storeDefaultValue = false; - initializeWithStorageValue = false; - handleStorageEvent = false; - } - - // needed to provide stable API - const methods = useSyncedRef({ - fetchVal: () => parse(storage.getItem(key), defaultValue), - storeVal: (val: T) => { + options?: UseStorageValueOptions +): UseStorageValueResult { + const optionsRef = useSyncedRef({ ...DEFAULT_OPTIONS, ...options }); + const storageActions = useSyncedRef({ + fetchRaw: () => storage.getItem(key), + fetch: () => + parse( + storageActions.current.fetchRaw(), + optionsRef.current.defaultValue as Required | null + ), + remove: () => storage.removeItem(key), + store: (val: Type): string | null => { const stringified = stringify(val); - if (stringified) { + if (stringified !== null) { storage.setItem(key, stringified); - return true; } - return false; - }, - removeVal: () => { - storage.removeItem(key); - }, - setVal: (val: string | null) => { - setState(parse(val, defaultValue) as T); - }, - fetchState: () => { - const newVal = methods.current.fetchVal() as T; - setState(newVal); - - return newVal !== stateRef.current ? newVal : null; - }, - setState: (nextState: T | null) => { - setState(nextState === null ? defaultValue : nextState); + return stringified; }, }); - const isFirstMount = useFirstMountState(); - const [state, setState] = useSafeState( - initializeWithStorageValue && isFirstMount ? (methods.current.fetchVal() as T) : undefined + const [state, setState] = useState( + options?.initializeWithValue ? storageActions.current.fetch() : undefined ); - const prevState = usePrevious(state); const stateRef = useSyncedRef(state); - const keyRef = useSyncedRef(key); - const isolatedRef = useSyncedRef(isolated); - - // fetch value on mount for the case `initializeWithStorageValue` is false, - // effects are not invoked during SSR, so there is no need to check isBrowser here - useMountEffect(() => { - if (!initializeWithStorageValue) { - methods.current.fetchState(); - } - }); - // store default value if it is not null and options configured to store default value - useConditionalEffect( - () => { - methods.current.storeVal(defaultValue as T); + const stateActions = useSyncedRef({ + fetch: () => setState(storageActions.current.fetch()), + setRawVal: (val: string | null) => { + setState(parse(val, optionsRef.current.defaultValue)); }, - undefined, - [prevState !== state, storeDefaultValue && state === defaultValue && defaultValue !== null] - ); + }); - // refetch value when key changed useUpdateEffect(() => { - methods.current.fetchState(); + stateActions.current.fetch(); }, [key]); - // subscribe hook for storage events - useIsomorphicLayoutEffect(() => { - if (!handleStorageEvent) return; - - // eslint-disable-next-line unicorn/consistent-function-scoping - const storageHandler = (ev: StorageEvent) => { - if (ev.storageArea !== storage) return; - if (ev.key !== keyRef.current) return; - - methods.current.setVal(ev.newValue); - }; - - on(window, 'storage', storageHandler, { passive: true }); - - return () => { - off(window, 'storage', storageHandler); - }; + useEffect(() => { + if (!options?.initializeWithValue) { + stateActions.current.fetch(); + } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [handleStorageEvent]); + }, []); - // register hook for same-page synchronisation useIsomorphicLayoutEffect(() => { - if (isolated) return; + const handler = stateActions.current.setRawVal; - let storageKeys = storageKeysUsed.get(storage); - - if (!storageKeys) { - storageKeys = new Map(); - storageKeysUsed.set(storage, storageKeys); - } - - let keySetters = storageKeys.get(key); - - if (!keySetters) { - keySetters = new Set(); - storageKeys.set(key, keySetters); - } - - const mSetState = methods.current.setState; - keySetters.add(mSetState); + addStorageListener(storage, key, handler); return () => { - keySetters?.delete(mSetState); + removeStorageListener(storage, key, handler); }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [isolated, key]); - - return [ - state, - useCallback( - (newState) => { - if (!isBrowser) return; - - const s = resolveHookState(newState, stateRef.current); - - if (methods.current.storeVal(s)) { - methods.current.setState(s); - - if (!isolatedRef.current) { - // update all other hooks state - storageKeysUsed - .get(storage) - ?.get(keyRef.current) - ?.forEach((setter) => { - if (setter === methods.current.setState) return; - - setter(s); - }); - } - } - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [] - ), - useCallback(() => { - if (!isBrowser) return; + }, [storage, key]); - methods.current.removeVal(); - methods.current.setState(null); + const actions = useSyncedRef({ + set: (val: NextState>) => { + if (!isBrowser) return; - if (!isolatedRef.current) { - // update all other hooks state - storageKeysUsed - .get(storage) - ?.get(keyRef.current) - ?.forEach((setter) => { - if (setter === methods.current.setState) return; + const s = resolveHookState( + val, + stateRef.current as UseStorageValueValue + ); - setter(null); - }); + const storeVal = storageActions.current.store(s); + if (storeVal !== null) { + invokeStorageKeyListeners(storage, key, storeVal); } + }, + delete: () => { + if (!isBrowser) return; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []), - useCallback(() => { + storageActions.current.remove(); + invokeStorageKeyListeners(storage, key, null); + }, + fetch: () => { if (!isBrowser) return; - const newVal = methods.current.fetchState(); - if (newVal !== null && !isolatedRef.current) { - // update all other hooks state - storageKeysUsed - .get(storage) - ?.get(keyRef.current) - ?.forEach((setter) => { - if (setter === methods.current.setState) return; - - setter(newVal); - }); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []), - ]; -} + invokeStorageKeyListeners(storage, key, storageActions.current.fetchRaw()); + }, + }); -const storageKeysUsed = new Map>>(); + return useMemo( + () => ({ + value: state as UseStorageValueValue, + set: actions.current.set, + remove: actions.current.delete, + fetch: actions.current.fetch, + }), + // eslint-disable-next-line react-hooks/exhaustive-deps + [state] + ); +} const stringify = (data: unknown): string | null => { if (data === null) { - // eslint-disable-next-line no-console - console.warn( - `'null' is not a valid data for useStorageValue hook, this operation will take no effect` - ); + /* istanbul ignore next */ + if (process.env.NODE_ENV === 'development') { + // eslint-disable-next-line no-console + console.warn( + `'null' is not a valid data for useStorageValue hook, this operation will take no effect` + ); + } + return null; } try { return JSON.stringify(data); } catch (error) /* istanbul ignore next */ { - // i have absolutely no idea how to cover this, since modern JSON.stringify does not throw on + // I have absolutely no idea how to cover this, since modern JSON.stringify does not throw on // cyclic references anymore // eslint-disable-next-line no-console console.warn(error); + return null; } }; -const parse = (str: string | null, fallback: unknown): unknown => { +const parse = (str: string | null, fallback: T | null): T | null => { if (str === null) return fallback; try { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return return JSON.parse(str); } catch (error) { // eslint-disable-next-line no-console console.warn(error); + return fallback; } }; From 33222db2fb9b75dd62fc8cdd936f4850cac59490 Mon Sep 17 00:00:00 2001 From: xobotyi Date: Tue, 11 Oct 2022 11:16:20 +0200 Subject: [PATCH 02/20] fix: make value fetched only during first render --- src/useStorageValue/useStorageValue.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/useStorageValue/useStorageValue.ts b/src/useStorageValue/useStorageValue.ts index 6e2523c2..61036dc5 100644 --- a/src/useStorageValue/useStorageValue.ts +++ b/src/useStorageValue/useStorageValue.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/no-use-before-define,no-use-before-define */ import { useEffect, useMemo, useState } from 'react'; +import { useFirstMountState } from '../useFirstMountState/useFirstMountState'; import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect'; import { useSyncedRef } from '../useSyncedRef/useSyncedRef'; import { useUpdateEffect } from '../useUpdateEffect/useUpdateEffect'; @@ -153,8 +154,9 @@ export function useStorageValue< }, }); + const isFirstMount = useFirstMountState(); const [state, setState] = useState( - options?.initializeWithValue ? storageActions.current.fetch() : undefined + options?.initializeWithValue && isFirstMount ? storageActions.current.fetch() : undefined ); const stateRef = useSyncedRef(state); From cc54df0ed56644771c7b893011966ed12d57d91c Mon Sep 17 00:00:00 2001 From: Arttu Olli Date: Wed, 19 Oct 2022 19:16:19 +0300 Subject: [PATCH 03/20] refactor(useSessionStorage): Fix wrongly named constant --- src/useSessionStorageValue/useSessionStorageValue.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/useSessionStorageValue/useSessionStorageValue.ts b/src/useSessionStorageValue/useSessionStorageValue.ts index 0d607c17..50904811 100644 --- a/src/useSessionStorageValue/useSessionStorageValue.ts +++ b/src/useSessionStorageValue/useSessionStorageValue.ts @@ -5,14 +5,14 @@ import { } from '../useStorageValue/useStorageValue'; import { isBrowser, noop } from '../util/const'; -let IS_LOCAL_STORAGE_AVAILABLE: boolean; +let IS_SESSION_STORAGE_AVAILABLE: boolean; try { - IS_LOCAL_STORAGE_AVAILABLE = isBrowser && !!window.sessionStorage; + IS_SESSION_STORAGE_AVAILABLE = isBrowser && !!window.sessionStorage; } catch { - // no need to test this flag leads to noop behaviour + // no need to test as this flag leads to noop behaviour /* istanbul ignore next */ - IS_LOCAL_STORAGE_AVAILABLE = false; + IS_SESSION_STORAGE_AVAILABLE = false; } type UseSessionStorageValue = < @@ -27,7 +27,7 @@ type UseSessionStorageValue = < /** * Manages a single sessionStorage key. */ -export const useSessionStorageValue: UseSessionStorageValue = !IS_LOCAL_STORAGE_AVAILABLE +export const useSessionStorageValue: UseSessionStorageValue = !IS_SESSION_STORAGE_AVAILABLE ? < Type, Default extends Type = Type, From 19e99126b0b99979ef0b1c7d1a9f6ff3e8609680 Mon Sep 17 00:00:00 2001 From: Arttu Olli Date: Wed, 19 Oct 2022 19:17:58 +0300 Subject: [PATCH 04/20] docs(useSessionStorageValue): Write documentation for the new API --- .../__docs__/example.stories.tsx | 2 +- src/useSessionStorageValue/__docs__/story.mdx | 38 ++++++++----------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/src/useSessionStorageValue/__docs__/example.stories.tsx b/src/useSessionStorageValue/__docs__/example.stories.tsx index 427b3859..7fe77823 100644 --- a/src/useSessionStorageValue/__docs__/example.stories.tsx +++ b/src/useSessionStorageValue/__docs__/example.stories.tsx @@ -31,7 +31,7 @@ export const Example: React.FC = ({ onChange={(ev) => { ssVal.set(ev.currentTarget.value); }} - />{' '} + /> ); diff --git a/src/useSessionStorageValue/__docs__/story.mdx b/src/useSessionStorageValue/__docs__/story.mdx index ead56adc..a01b9940 100644 --- a/src/useSessionStorageValue/__docs__/story.mdx +++ b/src/useSessionStorageValue/__docs__/story.mdx @@ -1,6 +1,6 @@ -import { Example } from './example.stories'; -import { ImportPath } from '../../__docs__/ImportPath'; -import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs'; +import { Example } from './example.stories' +import { ImportPath } from '../../__docs__/ImportPath' +import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs' @@ -13,16 +13,14 @@ Manages a single SessionStorage key. - Synchronized between all hooks on the page with the same key. - SSR compatible. -> **_This hook provides stable API, meaning returned methods does not change between renders_** - -> This hook uses `useSafeState` underneath, so it is safe to use its `setState` in async hooks. +> **_This hook provides stable API, meaning the returned methods do not change between renders._** > Does not allow usage of `null` value, since JSON allows serializing `null` values - it would be > impossible to separate null value fom 'no such value' API result which is also `null`. -> While using SSR, to avoid hydration mismatch, consider setting `initializeWithStorageValue` option -> to `false`, this will yield `undefined` state on first render and defer value fetch till effects -> execution stage. +> While using SSR, to avoid hydration mismatch, consider setting `initializeWithValue` option +> to `false` - this will yield `undefined` state on first render and defer value fetching until effects +> are executed. #### Example @@ -53,20 +51,16 @@ function useSessionStorageValue( #### Arguments - **key** _`string`_ - SessionStorage key to manage. -- **defaultValue** _`T | null`_ _(default: null)_ - Default value to return in case key not - presented in SessionStorage. - **options** _`object`_ - Hook options: - - **isolated** _`boolean`_ _(default: false)_ - Disable synchronisation with other hook instances - with the same key on same page. - - **handleStorageEvent** _`boolean`_ _(default: true)_ - Subscribe to window's `storage` event. - - **storeDefaultValue** _`boolean`_ _(default: false)_ - store default value. - - **initializeWithStorageValue** _`boolean`_ _(default: true)_ - fetch storage value on first - render. If set to `false` will make hook to yield `undefined` state on first render and defer - value fetch till effects execution stage. + - **defaultValue** _`T | null`_ - Value to return if `key` is not present in SessionStorage. + - **initializeWithValue** _`boolean`_ _(default: true)_ - Fetch storage value on first render. If + set to `false` will make the hook yield `undefined` on first render and defer fetching of the + value until effects are executed. #### Return -0. **state** - SessionStorage item value or default value in case of item absence. -1. **setValue** - Method to set new item value. -2. **removeValue** - Method to remove item from storage. -3. **fetchValue** - Method to pull value from sessionStorage. +0. **value** - SessionStorage value of the given `key` argument or `defaultValue`, if the key was not +present. +1. **set** - Method to set a new value for the managed `key`. +2. **remove** - Method to remove the current value of `key`. +3. **fetch** - Method to manually retrieve the value of `key`. From b3ae86a6b58488f6a95790f49b98ee9c595e914d Mon Sep 17 00:00:00 2001 From: Arttu Olli Date: Wed, 19 Oct 2022 19:41:49 +0300 Subject: [PATCH 05/20] docs(useLocalStorage): Write documentation for the new API --- .../__docs__/example.stories.tsx | 2 +- src/useLocalStorageValue/__docs__/story.mdx | 39 ++++++++----------- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/src/useLocalStorageValue/__docs__/example.stories.tsx b/src/useLocalStorageValue/__docs__/example.stories.tsx index 052f1527..d23255a8 100644 --- a/src/useLocalStorageValue/__docs__/example.stories.tsx +++ b/src/useLocalStorageValue/__docs__/example.stories.tsx @@ -34,7 +34,7 @@ export const Example: React.FC = ({ onChange={(ev) => { lsVal.set(ev.currentTarget.value); }} - />{' '} + /> ); diff --git a/src/useLocalStorageValue/__docs__/story.mdx b/src/useLocalStorageValue/__docs__/story.mdx index e052cdae..b4e5c0c3 100644 --- a/src/useLocalStorageValue/__docs__/story.mdx +++ b/src/useLocalStorageValue/__docs__/story.mdx @@ -1,6 +1,6 @@ -import { Example } from './example.stories'; -import { ImportPath } from '../../__docs__/ImportPath'; -import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs'; +import { Example } from './example.stories' +import { ImportPath } from '../../__docs__/ImportPath' +import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs' @@ -13,16 +13,14 @@ Manages a single LocalStorage key. - Synchronized between all hooks on the page with the same key. - SSR compatible. -> **_This hook provides stable API, meaning returned methods does not change between renders_** - -> This hook uses `useSafeState` underneath, so it is safe to use its `setState` in async hooks. +> **_This hook provides stable API, meaning the returned methods do not change between renders._** > Does not allow usage of `null` value, since JSON allows serializing `null` values - it would be > impossible to separate null value fom 'no such value' API result which is also `null`. -> While using SSR, to avoid hydration mismatch, consider setting `initializeWithStorageValue` option -> to `false`, this will yield `undefined` state on first render and defer value fetch till effects -> execution stage. +> While using SSR, to avoid hydration mismatch, consider setting `initializeWithValue` option +> to `false` - this will yield `undefined` state on first render and defer value fetching until effects +> are executed. #### Example @@ -50,23 +48,20 @@ function useLocalStorageValue( + #### Arguments - **key** _`string`_ - LocalStorage key to manage. -- **defaultValue** _`T | null`_ _(default: null)_ - Default value to return in case key not - presented in LocalStorage. - **options** _`object`_ - Hook options: - - **isolated** _`boolean`_ _(default: false)_ - Disable synchronisation with other hook instances - with the same key on the same page. - - **handleStorageEvent** _`boolean`_ _(default: true)_ - Subscribe to window's `storage` event. - - **storeDefaultValue** _`boolean`_ _(default: false)_ - store default value. - - **initializeWithStorageValue** _`boolean`_ _(default: true)_ - fetch storage value on first - render. If set to `false` will make hook to yield `undefined` state on first render and defer - value fetch till effects execution stage. + - **defaultValue** _`T | null`_ - Value to return if `key` is not present in LocalStorage. + - **initializeWithValue** _`boolean`_ _(default: true)_ - Fetch storage value on first render. If + set to `false` will make the hook yield `undefined` on first render and defer fetching of the + value until effects are executed. #### Return -0. **state** - LocalStorage item value or default value in case of item absence. -1. **setValue** - Method to set new item value. -2. **removeValue** - Method to remove item from storage. -3. **fetchValue** - Method to pull value from localStorage. +0. **value** - LocalStorage value of the given `key` argument or `defaultValue`, if the key was not +present. +1. **set** - Method to set a new value for the managed `key`. +2. **remove** - Method to remove the current value of `key`. +3. **fetch** - Method to manually retrieve the value of `key`. From 3cf5a1cda40a03ba4b60e3e5ad68dbce86cda643 Mon Sep 17 00:00:00 2001 From: Arttu Olli Date: Wed, 19 Oct 2022 19:50:22 +0300 Subject: [PATCH 06/20] docs(useStorageValue): Fix wrong default value for initializeWithValue in documentation comment --- src/useStorageValue/useStorageValue.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/useStorageValue/useStorageValue.ts b/src/useStorageValue/useStorageValue.ts index 61036dc5..42d80c8f 100644 --- a/src/useStorageValue/useStorageValue.ts +++ b/src/useStorageValue/useStorageValue.ts @@ -95,7 +95,7 @@ export interface UseStorageValueOptions Date: Sun, 9 Oct 2022 11:05:54 +0000 Subject: [PATCH 07/20] chore(release): 16.0.0 [skip ci] # [16.0.0](https://github.com/react-hookz/web/compare/v15.1.0...v16.0.0) (2022-10-09) ### Styles * remove I prefix from types and interfaces ([c2a1ff4](https://github.com/react-hookz/web/commit/c2a1ff40909f1ddf5066c5d038b800bd42410a21)) ### BREAKING CHANGES * `I` prefix removed from all types having it. --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef58a6fc..d193de00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [16.0.0](https://github.com/react-hookz/web/compare/v15.1.0...v16.0.0) (2022-10-09) + + +### Styles + +* remove I prefix from types and interfaces ([c2a1ff4](https://github.com/react-hookz/web/commit/c2a1ff40909f1ddf5066c5d038b800bd42410a21)) + + +### BREAKING CHANGES + +* `I` prefix removed from all types having it. + # [15.1.0](https://github.com/react-hookz/web/compare/v15.0.1...v15.1.0) (2022-08-14) diff --git a/package.json b/package.json index c1356db1..46813098 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@react-hookz/web", - "version": "15.1.0", + "version": "16.0.0", "description": "React hooks done right, for browser and SSR.", "keywords": [ "react", From 24203f7acd1a678a979355d263e676076608a7fe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 9 Oct 2022 11:11:34 +0000 Subject: [PATCH 08/20] docs(contributor): contrib-readme-action has updated readme --- README.md | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index fc983066..13aa98b1 100644 --- a/README.md +++ b/README.md @@ -219,20 +219,6 @@ Coming from `react-use`? Check out our Joe Duncko - - - semantic-release-bot -
- Semantic Release Bot -
- - - - lint-action -
- Lint Action -
- kylemh @@ -260,8 +246,7 @@ Coming from `react-use`? Check out our
Rey Wang
- - + axelboc @@ -275,7 +260,8 @@ Coming from `react-use`? Check out our
Birant İyigün
- + + punkle From ca2886b2490e14a87655b0e2323d0180566398ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Oct 2022 00:47:50 +0000 Subject: [PATCH 09/20] chore(deps-dev): bump jest-environment-jsdom from 29.1.2 to 29.2.0 (#965) Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 29.1.2 to 29.2.0. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.2.0/packages/jest-environment-jsdom) --- updated-dependencies: - dependency-name: jest-environment-jsdom dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 102 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 64 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index 46813098..45ddc5db 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "concurrently": "^7.4.0", "husky": "^8.0.1", "jest": "^29.1.2", - "jest-environment-jsdom": "^29.1.2", + "jest-environment-jsdom": "^29.2.0", "js-cookie": "^3.0.1", "lint-staged": "^13.0.3", "prettier": "^2.7.1", diff --git a/yarn.lock b/yarn.lock index c8a43332..ad8c9b00 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1492,15 +1492,15 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.1.2.tgz#bb51a43fce9f960ba9a48f0b5b556f30618ebc0a" - integrity sha512-rG7xZ2UeOfvOVzoLIJ0ZmvPl4tBEQ2n73CZJSlzUjPw4or1oSWC0s0Rk0ZX+pIBJ04aVr6hLWFn1DFtrnf8MhQ== +"@jest/environment@^29.1.2", "@jest/environment@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.0.tgz#7e5604e4ead098572056a962a970f3d79379fbd8" + integrity sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q== dependencies: - "@jest/fake-timers" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/fake-timers" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" - jest-mock "^29.1.2" + jest-mock "^29.2.0" "@jest/expect-utils@^29.1.2": version "29.1.2" @@ -1517,17 +1517,17 @@ expect "^29.1.2" jest-snapshot "^29.1.2" -"@jest/fake-timers@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.1.2.tgz#f157cdf23b4da48ce46cb00fea28ed1b57fc271a" - integrity sha512-GppaEqS+QQYegedxVMpCe2xCXxxeYwQ7RsNx55zc8f+1q1qevkZGKequfTASI7ejmg9WwI+SJCrHe9X11bLL9Q== +"@jest/fake-timers@^29.1.2", "@jest/fake-timers@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.0.tgz#e43635c1bd73b23886e80ca12307092ef2ee1929" + integrity sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.1.2" - jest-mock "^29.1.2" - jest-util "^29.1.2" + jest-message-util "^29.2.0" + jest-mock "^29.2.0" + jest-util "^29.2.0" "@jest/globals@^29.1.2": version "29.1.2" @@ -1701,10 +1701,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.1.2.tgz#7442d32b16bcd7592d9614173078b8c334ec730a" - integrity sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg== +"@jest/types@^29.1.2", "@jest/types@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.0.tgz#c0d1ef8bc1e4f4b358e7877e34157371e7881b0b" + integrity sha512-mfgpQz4Z2xGo37m6KD8xEpKelaVzvYVRijmLPePn9pxgaPEtX+SqIyPNzzoeCPXKYbB4L/wYSgXDL8o3Gop78Q== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -9279,18 +9279,18 @@ jest-each@^29.1.2: jest-util "^29.1.2" pretty-format "^29.1.2" -jest-environment-jsdom@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.1.2.tgz#59c5d7c53c999e1518cc2f1cd4ee19ab4b68eb68" - integrity sha512-D+XNIKia5+uDjSMwL/G1l6N9MCb7LymKI8FpcLo7kkISjc/Sa9w+dXXEa7u1Wijo3f8sVLqfxdGqYtRhmca+Xw== +jest-environment-jsdom@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.0.tgz#a45aa6bb8737e7ab93ebb9111c7e5b1c9ae6aa51" + integrity sha512-DgHbBxC4RmHpDLFLMt00NjXXimGvtNALRyxQYOo3e6vwq1qsIDqXsEZiuEpjTg0BueENE1mx8BKFKHXArEdRQQ== dependencies: - "@jest/environment" "^29.1.2" - "@jest/fake-timers" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/environment" "^29.2.0" + "@jest/fake-timers" "^29.2.0" + "@jest/types" "^29.2.0" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.1.2" - jest-util "^29.1.2" + jest-mock "^29.2.0" + jest-util "^29.2.0" jsdom "^20.0.0" jest-environment-node@^29.1.2: @@ -9398,14 +9398,29 @@ jest-message-util@^29.1.2: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.1.2.tgz#de47807edbb9d4abf8423f1d8d308d670105678c" - integrity sha512-PFDAdjjWbjPUtQPkQufvniXIS3N9Tv7tbibePEjIIprzjgo0qQlyUiVMrT4vL8FaSJo1QXifQUOuPH3HQC/aMA== +jest-message-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.0.tgz#cbd43fd9a20a8facd4267ac37556bc5c9a525ec0" + integrity sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg== dependencies: - "@jest/types" "^29.1.2" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.2.0" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.2.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.1.2, jest-mock@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.0.tgz#3531012881178f59f4b5fd1e243acc329d08d6a1" + integrity sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg== + dependencies: + "@jest/types" "^29.2.0" "@types/node" "*" - jest-util "^29.1.2" + jest-util "^29.2.0" jest-pnp-resolver@^1.2.2: version "1.2.2" @@ -9564,12 +9579,12 @@ jest-util@^26.6.2: is-ci "^2.0.0" micromatch "^4.0.2" -jest-util@^29.0.0, jest-util@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.1.2.tgz#ac5798e93cb6a6703084e194cfa0898d66126df1" - integrity sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ== +jest-util@^29.0.0, jest-util@^29.1.2, jest-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.0.tgz#797935697e83a5722aeba401ed6cd01264295566" + integrity sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -12526,6 +12541,15 @@ pretty-format@^29.0.0, pretty-format@^29.1.2: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.0.tgz#1d4ea56fb46079b44efd9ed59c14f70f2950a61b" + integrity sha512-QCSUFdwOi924g24czhOH5eTkXxUCqlLGZBRCySlwDYHIXRJkdGyjJc9nZaqhlFBZws8dq5Dvk0lCilsmlfsPxw== + dependencies: + "@jest/schemas" "^29.0.0" + ansi-styles "^5.0.0" + react-is "^18.0.0" + pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" From d93d0e74c78dfad2f2893a8ebed577b850a3d3f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Oct 2022 01:39:54 +0000 Subject: [PATCH 10/20] chore(deps-dev): bump jest from 29.1.2 to 29.2.0 (#966) Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.1.2 to 29.2.0. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.2.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 597 +++++++++++++++++++++++++++------------------------ 2 files changed, 323 insertions(+), 276 deletions(-) diff --git a/package.json b/package.json index 45ddc5db..3f82bfc3 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "commitlint": "^17.1.2", "concurrently": "^7.4.0", "husky": "^8.0.1", - "jest": "^29.1.2", + "jest": "^29.2.0", "jest-environment-jsdom": "^29.2.0", "js-cookie": "^3.0.1", "lint-staged": "^13.0.3", diff --git a/yarn.lock b/yarn.lock index ad8c9b00..78dace41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1446,53 +1446,53 @@ jest-util "^26.6.2" slash "^3.0.0" -"@jest/console@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.1.2.tgz#0ae975a70004696f8320490fcaa1a4152f7b62e4" - integrity sha512-ujEBCcYs82BTmRxqfHMQggSlkUZP63AE5YEaTPj7eFyJOzukkTorstOUC7L6nE3w5SYadGVAnTsQ/ZjTGL0qYQ== +"@jest/console@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.0.tgz#e906bdbfc83baf79590f05b515dad900b3b71fed" + integrity sha512-Xz1Wu+ZZxcB3RS8U3HdkFxlRJ7kLXI/by9X7d2/gvseIWPwYu/c1EsYy77cB5iyyHGOy3whS2HycjcuzIF4Jow== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.1.2" - jest-util "^29.1.2" + jest-message-util "^29.2.0" + jest-util "^29.2.0" slash "^3.0.0" -"@jest/core@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.1.2.tgz#e5ce7a71e7da45156a96fb5eeed11d18b67bd112" - integrity sha512-sCO2Va1gikvQU2ynDN8V4+6wB7iVrD2CvT0zaRst4rglf56yLly0NQ9nuRRAWFeimRf+tCdFsb1Vk1N9LrrMPA== +"@jest/core@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.0.tgz#beed57c552be65d4e4ab2f4161d0abe8ea6bf3a8" + integrity sha512-+gyJ3bX+kGEW/eqt/0kI7fLjqiFr3AN8O+rlEl1fYRf7D8h4Sj4tBGo9YOSirvWgvemoH2EPRya35bgvcPFzHQ== dependencies: - "@jest/console" "^29.1.2" - "@jest/reporters" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/console" "^29.2.0" + "@jest/reporters" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.0.0" - jest-config "^29.1.2" - jest-haste-map "^29.1.2" - jest-message-util "^29.1.2" - jest-regex-util "^29.0.0" - jest-resolve "^29.1.2" - jest-resolve-dependencies "^29.1.2" - jest-runner "^29.1.2" - jest-runtime "^29.1.2" - jest-snapshot "^29.1.2" - jest-util "^29.1.2" - jest-validate "^29.1.2" - jest-watcher "^29.1.2" + jest-changed-files "^29.2.0" + jest-config "^29.2.0" + jest-haste-map "^29.2.0" + jest-message-util "^29.2.0" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.0" + jest-resolve-dependencies "^29.2.0" + jest-runner "^29.2.0" + jest-runtime "^29.2.0" + jest-snapshot "^29.2.0" + jest-util "^29.2.0" + jest-validate "^29.2.0" + jest-watcher "^29.2.0" micromatch "^4.0.4" - pretty-format "^29.1.2" + pretty-format "^29.2.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.1.2", "@jest/environment@^29.2.0": +"@jest/environment@^29.2.0": version "29.2.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.0.tgz#7e5604e4ead098572056a962a970f3d79379fbd8" integrity sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q== @@ -1509,15 +1509,22 @@ dependencies: jest-get-type "^29.0.0" -"@jest/expect@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.1.2.tgz#334a86395f621f1ab63ad95b06a588b9114d7b7a" - integrity sha512-FXw/UmaZsyfRyvZw3M6POgSNqwmuOXJuzdNiMWW9LCYo0GRoRDhg+R5iq5higmRTHQY7hx32+j7WHwinRmoILQ== +"@jest/expect-utils@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.0.tgz#3c0c472115d98211e7e0a0a8fa00719bf081987f" + integrity sha512-nz2IDF7nb1qmj9hx8Ja3MFab2q9Ml8QbOaaeJNyX5JQJHU8QUvEDiMctmhGEkk3Kzr8w8vAqz4hPk/ogJSrUhg== + dependencies: + jest-get-type "^29.2.0" + +"@jest/expect@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.0.tgz#25316d2ae930e7bb9df96cce7521053d377c4c0d" + integrity sha512-+3lxcYL9e0xPJGOR33utxxejn+Mulz40kY0oy0FVsmIESW87NZDJ7B1ovaIqeX0xIgPX4laS5SGlqD2uSoBMcw== dependencies: - expect "^29.1.2" - jest-snapshot "^29.1.2" + expect "^29.2.0" + jest-snapshot "^29.2.0" -"@jest/fake-timers@^29.1.2", "@jest/fake-timers@^29.2.0": +"@jest/fake-timers@^29.2.0": version "29.2.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.0.tgz#e43635c1bd73b23886e80ca12307092ef2ee1929" integrity sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw== @@ -1529,15 +1536,15 @@ jest-mock "^29.2.0" jest-util "^29.2.0" -"@jest/globals@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.1.2.tgz#826ede84bc280ae7f789cb72d325c48cd048b9d3" - integrity sha512-uMgfERpJYoQmykAd0ffyMq8wignN4SvLUG6orJQRe9WAlTRc9cdpCaE/29qurXixYJVZWUqIBXhSk8v5xN1V9g== +"@jest/globals@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.0.tgz#5cfc41c028efaf511624ba086d64113d5a8a92b3" + integrity sha512-JQxtEVNWiai1p3PIzAJZSyEqQdAJGvNKvinZDPfu0mhiYEVx6E+PiBuDWj1sVUW8hzu+R3DVqaWC9K2xcLRIAA== dependencies: - "@jest/environment" "^29.1.2" - "@jest/expect" "^29.1.2" - "@jest/types" "^29.1.2" - jest-mock "^29.1.2" + "@jest/environment" "^29.2.0" + "@jest/expect" "^29.2.0" + "@jest/types" "^29.2.0" + jest-mock "^29.2.0" "@jest/reporters@^26.6.2": version "26.6.2" @@ -1571,16 +1578,16 @@ optionalDependencies: node-notifier "^8.0.0" -"@jest/reporters@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.1.2.tgz#5520898ed0a4ecf69d8b671e1dc8465d0acdfa6e" - integrity sha512-X4fiwwyxy9mnfpxL0g9DD0KcTmEIqP0jUdnc2cfa9riHy+I6Gwwp5vOZiwyg0vZxfSDxrOlK9S4+340W4d+DAA== +"@jest/reporters@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.0.tgz#24cac16d997ec91a9c615db2621805ee485689e0" + integrity sha512-BXoAJatxTZ18U0cwD7C8qBo8V6vef8AXYRBZdhqE5DF9CmpqmhMfw9c7OUvYqMTnBBK9A0NgXGO4Lc9EJzdHvw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/console" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1593,13 +1600,12 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.1.2" - jest-util "^29.1.2" - jest-worker "^29.1.2" + jest-message-util "^29.2.0" + jest-util "^29.2.0" + jest-worker "^29.2.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" - terminal-link "^2.0.0" v8-to-istanbul "^9.0.1" "@jest/schemas@^29.0.0": @@ -1609,10 +1615,10 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/source-map@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.0.0.tgz#f8d1518298089f8ae624e442bbb6eb870ee7783c" - integrity sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ== +"@jest/source-map@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" + integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== dependencies: "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" @@ -1628,24 +1634,24 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-result@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.1.2.tgz#6a8d006eb2b31ce0287d1fc10d12b8ff8504f3c8" - integrity sha512-jjYYjjumCJjH9hHCoMhA8PCl1OxNeGgAoZ7yuGYILRJX9NjgzTN0pCT5qAoYR4jfOP8htIByvAlz9vfNSSBoVg== +"@jest/test-result@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.0.tgz#3dcc7123b8f0fb5ba1f650ce17af45cce91a0323" + integrity sha512-l76EPJ6QqtzsCLS4aimJqWO53pxZ82o3aE+Brcmo1HJ/phb9+MR7gPhyDdN6VSGaLJCRVJBZgWEhAEz+qON0Fw== dependencies: - "@jest/console" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/console" "^29.2.0" + "@jest/types" "^29.2.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.1.2.tgz#10bfd89c08bfdba382eb05cc79c1d23a01238a93" - integrity sha512-fU6dsUqqm8sA+cd85BmeF7Gu9DsXVWFdGn9taxM6xN1cKdcP/ivSgXh5QucFRFz1oZxKv3/9DYYbq0ULly3P/Q== +"@jest/test-sequencer@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.0.tgz#acd875533f7ad01cb22da59ff4047de18e9d64da" + integrity sha512-NCnjZcGnVdva6IDqF7TCuFsXs2F1tohiNF9sasSJNzD7VfN5ic9XgcS/oPDalGiPLxCmGKj4kewqqrKAqBACcQ== dependencies: - "@jest/test-result" "^29.1.2" + "@jest/test-result" "^29.2.0" graceful-fs "^4.2.9" - jest-haste-map "^29.1.2" + jest-haste-map "^29.2.0" slash "^3.0.0" "@jest/transform@^26.6.2": @@ -1669,22 +1675,22 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.1.2.tgz#20f814696e04f090421f6d505c14bbfe0157062a" - integrity sha512-2uaUuVHTitmkx1tHF+eBjb4p7UuzBG7SXIaA/hNIkaMP6K+gXYGxP38ZcrofzqN0HeZ7A90oqsOa97WU7WZkSw== +"@jest/transform@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.0.tgz#1c55ca549f64810351df999265a29f8ead51be15" + integrity sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.1.2" - jest-regex-util "^29.0.0" - jest-util "^29.1.2" + jest-haste-map "^29.2.0" + jest-regex-util "^29.2.0" + jest-util "^29.2.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -4494,15 +4500,15 @@ axobject-query@^2.2.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-jest@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.1.2.tgz#540d3241925c55240fb0c742e3ffc5f33a501978" - integrity sha512-IuG+F3HTHryJb7gacC7SQ59A9kO56BctUsT67uJHp1mMCHUOMXpDwOHWGifWqdWVknN2WNkCVQELPjXx0aLJ9Q== +babel-jest@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.0.tgz#088624f037da90e69a06073305276cbd111d68a8" + integrity sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw== dependencies: - "@jest/transform" "^29.1.2" + "@jest/transform" "^29.2.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.0.2" + babel-preset-jest "^29.2.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -4555,10 +4561,10 @@ babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz#ae61483a829a021b146c016c6ad39b8bcc37c2c8" - integrity sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg== +babel-plugin-jest-hoist@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" + integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -4638,12 +4644,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz#e14a7124e22b161551818d89e5bdcfb3b2b0eac7" - integrity sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA== +babel-preset-jest@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" + integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== dependencies: - babel-plugin-jest-hoist "^29.0.2" + babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" bail@^1.0.0: @@ -6332,6 +6338,11 @@ diff-sequences@^29.0.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== +diff-sequences@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" + integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -7173,7 +7184,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.0.0, expect@^29.1.2: +expect@^29.0.0: version "29.1.2" resolved "https://registry.yarnpkg.com/expect/-/expect-29.1.2.tgz#82f8f28d7d408c7c68da3a386a490ee683e1eced" integrity sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw== @@ -7184,6 +7195,17 @@ expect@^29.0.0, expect@^29.1.2: jest-message-util "^29.1.2" jest-util "^29.1.2" +expect@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.0.tgz#b90c6df52be7abfd9f206f273fbcf8b33d8f332d" + integrity sha512-03ClF3GWwUqd9Grgkr9ZSdaCJGMRA69PQ8jT7o+Bx100VlGiAFf9/8oIm9Qve7ZVJhuJxFftqFhviZJRxxNfvg== + dependencies: + "@jest/expect-utils" "^29.2.0" + jest-get-type "^29.2.0" + jest-matcher-utils "^29.2.0" + jest-message-util "^29.2.0" + jest-util "^29.2.0" + express@^4.17.1: version "4.18.1" resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" @@ -9172,82 +9194,82 @@ java-properties@^1.0.0: resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== -jest-changed-files@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.0.0.tgz#aa238eae42d9372a413dd9a8dadc91ca1806dce0" - integrity sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ== +jest-changed-files@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" + integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.1.2.tgz#4551068e432f169a53167fe1aef420cf51c8a735" - integrity sha512-ajQOdxY6mT9GtnfJRZBRYS7toNIJayiiyjDyoZcnvPRUPwJ58JX0ci0PKAKUo2C1RyzlHw0jabjLGKksO42JGA== +jest-circus@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.0.tgz#692ddf3b12a5ae6326f2f37b9d176c68777fcf4c" + integrity sha512-bpJRMe+VtvYlF3q8JNx+/cAo4FYvNCiR5s7Z0Scf8aC+KJ2ineSjZKtw1cIZbythlplkiro0My8nc65pfCqJ3A== dependencies: - "@jest/environment" "^29.1.2" - "@jest/expect" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/environment" "^29.2.0" + "@jest/expect" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.1.2" - jest-matcher-utils "^29.1.2" - jest-message-util "^29.1.2" - jest-runtime "^29.1.2" - jest-snapshot "^29.1.2" - jest-util "^29.1.2" + jest-each "^29.2.0" + jest-matcher-utils "^29.2.0" + jest-message-util "^29.2.0" + jest-runtime "^29.2.0" + jest-snapshot "^29.2.0" + jest-util "^29.2.0" p-limit "^3.1.0" - pretty-format "^29.1.2" + pretty-format "^29.2.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.1.2.tgz#423b9c5d3ea20a50b1354b8bf3f2a20e72110e89" - integrity sha512-vsvBfQ7oS2o4MJdAH+4u9z76Vw5Q8WBQF5MchDbkylNknZdrPTX1Ix7YRJyTlOWqRaS7ue/cEAn+E4V1MWyMzw== +jest-cli@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.0.tgz#c6ca40889d6671c38b1cf9119d3b653809f31a3a" + integrity sha512-/581TzbXeO+5kbtSlhXEthGiVJCC8AP0jgT0iZINAAMW+tTFj2uWU7z+HNUH5yIYdHV7AvRr0fWLrmHJGIruHg== dependencies: - "@jest/core" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/core" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/types" "^29.2.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.1.2" - jest-util "^29.1.2" - jest-validate "^29.1.2" + jest-config "^29.2.0" + jest-util "^29.2.0" + jest-validate "^29.2.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.1.2.tgz#7d004345ca4c09f5d8f802355f54494e90842f4d" - integrity sha512-EC3Zi86HJUOz+2YWQcJYQXlf0zuBhJoeyxLM6vb6qJsVmpP7KcCP1JnyF0iaqTaXdBP8Rlwsvs7hnKWQWWLwwA== +jest-config@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.0.tgz#8823f35255f696444a882721e624d7ad352e208b" + integrity sha512-IkdCsrHIoxDPZAyFcdtQrCQ3uftLqns6Joj0tlbxiAQW4k/zTXmIygqWBmPNxO9FbFkDrhtYZiLHXjaJh9rS+Q== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.1.2" - "@jest/types" "^29.1.2" - babel-jest "^29.1.2" + "@jest/test-sequencer" "^29.2.0" + "@jest/types" "^29.2.0" + babel-jest "^29.2.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.1.2" - jest-environment-node "^29.1.2" - jest-get-type "^29.0.0" - jest-regex-util "^29.0.0" - jest-resolve "^29.1.2" - jest-runner "^29.1.2" - jest-util "^29.1.2" - jest-validate "^29.1.2" + jest-circus "^29.2.0" + jest-environment-node "^29.2.0" + jest-get-type "^29.2.0" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.0" + jest-runner "^29.2.0" + jest-util "^29.2.0" + jest-validate "^29.2.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.1.2" + pretty-format "^29.2.0" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -9261,23 +9283,33 @@ jest-diff@^29.1.2: jest-get-type "^29.0.0" pretty-format "^29.1.2" -jest-docblock@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.0.0.tgz#3151bcc45ed7f5a8af4884dcc049aee699b4ceae" - integrity sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw== +jest-diff@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.0.tgz#b1e11ac1a1401fc4792ef8ba406b48f1ae7d2bc5" + integrity sha512-GsH07qQL+/D/GxlnU+sSg9GL3fBOcuTlmtr3qr2pnkiODCwubNN2/7slW4m3CvxDsEus/VEOfQKRFLyXsUlnZw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.2.0" + jest-get-type "^29.2.0" + pretty-format "^29.2.0" + +jest-docblock@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" + integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== dependencies: detect-newline "^3.0.0" -jest-each@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.1.2.tgz#d4c8532c07a846e79f194f7007ce7cb1987d1cd0" - integrity sha512-AmTQp9b2etNeEwMyr4jc0Ql/LIX/dhbgP21gHAizya2X6rUspHn2gysMXaj6iwWuOJ2sYRgP8c1P4cXswgvS1A== +jest-each@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.0.tgz#0f89c1233d65f22c7dba265ccd319611f1d662de" + integrity sha512-h4LeC3L/R7jIMfTdYowevPIssvcPYQ7Qzs+pCSYsJgPztIizXwKmnfhZXBA4WVqdmvMcpmseYEXb67JT7IJ2eg== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" chalk "^4.0.0" - jest-get-type "^29.0.0" - jest-util "^29.1.2" - pretty-format "^29.1.2" + jest-get-type "^29.2.0" + jest-util "^29.2.0" + pretty-format "^29.2.0" jest-environment-jsdom@^29.2.0: version "29.2.0" @@ -9293,23 +9325,28 @@ jest-environment-jsdom@^29.2.0: jest-util "^29.2.0" jsdom "^20.0.0" -jest-environment-node@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.1.2.tgz#005e05cc6ea4b9b5ba55906ab1ce53c82f6907a7" - integrity sha512-C59yVbdpY8682u6k/lh8SUMDJPbOyCHOTgLVVi1USWFxtNV+J8fyIwzkg+RJIVI30EKhKiAGNxYaFr3z6eyNhQ== +jest-environment-node@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.0.tgz#49c39d4f9df64fc74da3725cbcaeee6da01a6dd6" + integrity sha512-b4qQGVStPMvtZG97Ac0rvnmSIjCZturFU7MQRMp4JDFl7zoaDLTtXmFjFP1tNmi9te6kR8d+Htbv3nYeoaIz6g== dependencies: - "@jest/environment" "^29.1.2" - "@jest/fake-timers" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/environment" "^29.2.0" + "@jest/fake-timers" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" - jest-mock "^29.1.2" - jest-util "^29.1.2" + jest-mock "^29.2.0" + jest-util "^29.2.0" jest-get-type@^29.0.0: version "29.0.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== +jest-get-type@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" + integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== + jest-haste-map@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" @@ -9331,32 +9368,32 @@ jest-haste-map@^26.6.2: optionalDependencies: fsevents "^2.1.2" -jest-haste-map@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.1.2.tgz#93f3634aa921b6b654e7c94137b24e02e7ca6ac9" - integrity sha512-xSjbY8/BF11Jh3hGSPfYTa/qBFrm3TPM7WU8pU93m2gqzORVLkHFWvuZmFsTEBPRKndfewXhMOuzJNHyJIZGsw== +jest-haste-map@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.0.tgz#2410f2ec93958e0bd894818de6c8056eb1b4d6fc" + integrity sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.0.0" - jest-util "^29.1.2" - jest-worker "^29.1.2" + jest-regex-util "^29.2.0" + jest-util "^29.2.0" + jest-worker "^29.2.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.1.2.tgz#4c846db14c58219430ccbc4f01a1ec52ebee4fc2" - integrity sha512-TG5gAZJpgmZtjb6oWxBLf2N6CfQ73iwCe6cofu/Uqv9iiAm6g502CAnGtxQaTfpHECBdVEMRBhomSXeLnoKjiQ== +jest-leak-detector@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.0.tgz#7c0eace293cf05a130a09beb1b9318ecc2f77692" + integrity sha512-FXT9sCFdct42+oOqGIr/9kmUw3RbhvpkwidCBT5ySHHoWNGd3c9n7HXpFKjEz9UnUITRCGdn0q2s6Sxrq36kwg== dependencies: - jest-get-type "^29.0.0" - pretty-format "^29.1.2" + jest-get-type "^29.2.0" + pretty-format "^29.2.0" jest-matcher-utils@^29.1.2: version "29.1.2" @@ -9368,6 +9405,16 @@ jest-matcher-utils@^29.1.2: jest-get-type "^29.0.0" pretty-format "^29.1.2" +jest-matcher-utils@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.0.tgz#d1d73add0e0efb0e316a50f296977505dc053e02" + integrity sha512-FcEfKZ4vm28yCdBsvC69EkrEhcfex+IYlRctNJXsRG9+WC3WxgBNORnECIgqUtj7o/h1d8o7xB/dFUiLi4bqtw== + dependencies: + chalk "^4.0.0" + jest-diff "^29.2.0" + jest-get-type "^29.2.0" + pretty-format "^29.2.0" + jest-message-util@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" @@ -9413,7 +9460,7 @@ jest-message-util@^29.2.0: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.1.2, jest-mock@^29.2.0: +jest-mock@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.0.tgz#3531012881178f59f4b5fd1e243acc329d08d6a1" integrity sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg== @@ -9432,18 +9479,18 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-regex-util@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" - integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== +jest-regex-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" + integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.1.2.tgz#a6919e58a0c7465582cb8ec2d745b4e64ae8647f" - integrity sha512-44yYi+yHqNmH3OoWZvPgmeeiwKxhKV/0CfrzaKLSkZG9gT973PX8i+m8j6pDrTYhhHoiKfF3YUFg/6AeuHw4HQ== +jest-resolve-dependencies@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.0.tgz#a127b7d6b7df69d4eaf2c7c99f652f17ba0fed71" + integrity sha512-Cd0Z39sDntEnfR9PoUdFHUAGDvtKI0/7Wt73l3lt03A3yQ+A6Qi3XmBuqGjdFl2QbXaPa937oLhilG612P8HGQ== dependencies: - jest-regex-util "^29.0.0" - jest-snapshot "^29.1.2" + jest-regex-util "^29.2.0" + jest-snapshot "^29.2.0" jest-resolve@^26.6.2: version "26.6.2" @@ -9459,73 +9506,73 @@ jest-resolve@^26.6.2: resolve "^1.18.1" slash "^3.0.0" -jest-resolve@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.1.2.tgz#9dd8c2fc83e59ee7d676b14bd45a5f89e877741d" - integrity sha512-7fcOr+k7UYSVRJYhSmJHIid3AnDBcLQX3VmT9OSbPWsWz1MfT7bcoerMhADKGvKCoMpOHUQaDHtQoNp/P9JMGg== +jest-resolve@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.0.tgz#cb9f9770164382785cd68598a9fb0b7e4bb95a9f" + integrity sha512-f5c0ljNg2guDBCC7wi92vAhNuA0BtAG5vkY7Fob0c7sUMU1g87mTXqRmjrVFe2XvdwP5m5T/e5KJsCKu9hRvBA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.1.2" + jest-haste-map "^29.2.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.1.2" - jest-validate "^29.1.2" + jest-util "^29.2.0" + jest-validate "^29.2.0" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.1.2.tgz#f18b2b86101341e047de8c2f51a5fdc4e97d053a" - integrity sha512-yy3LEWw8KuBCmg7sCGDIqKwJlULBuNIQa2eFSVgVASWdXbMYZ9H/X0tnXt70XFoGf92W2sOQDOIFAA6f2BG04Q== +jest-runner@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.0.tgz#d621e67a2d59d5bc302eca1f5348615ce166712c" + integrity sha512-VPBrCwl9fM2mc5yk6yZhNrgXzRJMD5jfLmntkMLlrVq4hQPWbRK998iJlR+DOGCO04TC9PPYLntOJ001Vnf28g== dependencies: - "@jest/console" "^29.1.2" - "@jest/environment" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/console" "^29.2.0" + "@jest/environment" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" - jest-docblock "^29.0.0" - jest-environment-node "^29.1.2" - jest-haste-map "^29.1.2" - jest-leak-detector "^29.1.2" - jest-message-util "^29.1.2" - jest-resolve "^29.1.2" - jest-runtime "^29.1.2" - jest-util "^29.1.2" - jest-watcher "^29.1.2" - jest-worker "^29.1.2" + jest-docblock "^29.2.0" + jest-environment-node "^29.2.0" + jest-haste-map "^29.2.0" + jest-leak-detector "^29.2.0" + jest-message-util "^29.2.0" + jest-resolve "^29.2.0" + jest-runtime "^29.2.0" + jest-util "^29.2.0" + jest-watcher "^29.2.0" + jest-worker "^29.2.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.1.2.tgz#dbcd57103d61115479108d5864bdcd661d9c6783" - integrity sha512-jr8VJLIf+cYc+8hbrpt412n5jX3tiXmpPSYTGnwcvNemY+EOuLNiYnHJ3Kp25rkaAcTWOEI4ZdOIQcwYcXIAZw== - dependencies: - "@jest/environment" "^29.1.2" - "@jest/fake-timers" "^29.1.2" - "@jest/globals" "^29.1.2" - "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" +jest-runtime@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.0.tgz#6b10d9539c1f7af32d06fccd7d16b6c9996c9cb2" + integrity sha512-+GDmzCrswQF+mvI0upTYMe/OPYnlRRNLLDHM9AFLp2y7zxWoDoYgb8DL3WwJ8d9m743AzrnvBV9JQHi/0ed7dg== + dependencies: + "@jest/environment" "^29.2.0" + "@jest/fake-timers" "^29.2.0" + "@jest/globals" "^29.2.0" + "@jest/source-map" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.1.2" - jest-message-util "^29.1.2" - jest-mock "^29.1.2" - jest-regex-util "^29.0.0" - jest-resolve "^29.1.2" - jest-snapshot "^29.1.2" - jest-util "^29.1.2" + jest-haste-map "^29.2.0" + jest-message-util "^29.2.0" + jest-mock "^29.2.0" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.0" + jest-snapshot "^29.2.0" + jest-util "^29.2.0" slash "^3.0.0" strip-bom "^4.0.0" @@ -9537,10 +9584,10 @@ jest-serializer@^26.6.2: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.1.2.tgz#7dd277e88c45f2d2ff5888de1612e63c7ceb575b" - integrity sha512-rYFomGpVMdBlfwTYxkUp3sjD6usptvZcONFYNqVlaz4EpHPnDvlWjvmOQ9OCSNKqYZqLM2aS3wq01tWujLg7gg== +jest-snapshot@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.0.tgz#fb3d4e1d9df579f37d7c60072877ee99376b6090" + integrity sha512-YCKrOR0PLRXROmww73fHO9oeY4tL+LPQXWR3yml1+hKbQDR8j1VUrVzB65hKSJJgxBOr1vWx+hmz2by8JjAU5w== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -9548,23 +9595,23 @@ jest-snapshot@^29.1.2: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/expect-utils" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.1.2" + expect "^29.2.0" graceful-fs "^4.2.9" - jest-diff "^29.1.2" - jest-get-type "^29.0.0" - jest-haste-map "^29.1.2" - jest-matcher-utils "^29.1.2" - jest-message-util "^29.1.2" - jest-util "^29.1.2" + jest-diff "^29.2.0" + jest-get-type "^29.2.0" + jest-haste-map "^29.2.0" + jest-matcher-utils "^29.2.0" + jest-message-util "^29.2.0" + jest-util "^29.2.0" natural-compare "^1.4.0" - pretty-format "^29.1.2" + pretty-format "^29.2.0" semver "^7.3.5" jest-util@^26.6.2: @@ -9591,30 +9638,30 @@ jest-util@^29.0.0, jest-util@^29.1.2, jest-util@^29.2.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.1.2.tgz#83a728b8f6354da2e52346878c8bc7383516ca51" - integrity sha512-k71pOslNlV8fVyI+mEySy2pq9KdXdgZtm7NHrBX8LghJayc3wWZH0Yr0mtYNGaCU4F1OLPXRkwZR0dBm/ClshA== +jest-validate@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.0.tgz#e40faf33759365c12ead6a45165349d660d09ba4" + integrity sha512-4Vl51bPNeFeDok9aJiOnrC6tqJbOp4iMCYlewoC2ZzYJZ5+6pfr3KObAdx5wP8auHcg2MRaguiqj5OdScZa72g== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.0.0" + jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.1.2" + pretty-format "^29.2.0" -jest-watcher@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.1.2.tgz#de21439b7d889e2fcf62cc2a4779ef1a3f1f3c62" - integrity sha512-6JUIUKVdAvcxC6bM8/dMgqY2N4lbT+jZVsxh0hCJRbwkIEnbr/aPjMQ28fNDI5lB51Klh00MWZZeVf27KBUj5w== +jest-watcher@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.0.tgz#d0c58ff76d3dd22fff79f3f9cbeadaa749d2ca6e" + integrity sha512-bRh0JdUeN+cl9XfK7tMnXLm4Mv70hG2SZlqbkFe5CTs7oeCkbwlGBk/mEfEJ63mrxZ8LPbnfaMpfSmkhEQBEGA== dependencies: - "@jest/test-result" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/test-result" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.1.2" + jest-util "^29.2.0" string-length "^4.0.1" jest-worker@^26.5.0, jest-worker@^26.6.2: @@ -9635,25 +9682,25 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.1.2.tgz#a68302af61bce82b42a9a57285ca7499d29b2afc" - integrity sha512-AdTZJxKjTSPHbXT/AIOjQVmoFx0LHFcVabWu0sxI7PAy7rFf8c0upyvgBKgguVXdM4vY74JdwkyD4hSmpTW8jA== +jest-worker@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.0.tgz#b2bd1a81fc7a1ae79a500b05f5feb0d1c0b1a19e" + integrity sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A== dependencies: "@types/node" "*" - jest-util "^29.1.2" + jest-util "^29.2.0" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.1.2.tgz#f821a1695ffd6cd0efc3b59d2dfcc70a98582499" - integrity sha512-5wEIPpCezgORnqf+rCaYD1SK+mNN7NsstWzIsuvsnrhR/hSxXWd82oI7DkrbJ+XTD28/eG8SmxdGvukrGGK6Tw== +jest@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.0.tgz#e7997bc603f31e04edbbe87dd24cf6e7c432abac" + integrity sha512-6krPemKUXCEu5Fh3j6ZVoLMjpTQVm0OCU+7f3K/9gllX8wNIE6NSCQ6s0q2RDoiKLRaQlVRHyscjSPRPqCI0Fg== dependencies: - "@jest/core" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/core" "^29.2.0" + "@jest/types" "^29.2.0" import-local "^3.0.2" - jest-cli "^29.1.2" + jest-cli "^29.2.0" js-cookie@^3.0.1: version "3.0.1" From 4189dd63d9c7787ea5d79714827b4e3a0053a728 Mon Sep 17 00:00:00 2001 From: Arttu Olli Date: Tue, 18 Oct 2022 11:35:52 +0300 Subject: [PATCH 11/20] docs(Add example for useDeepCompareEffect): Added missing example for useDeepCompareEffect (#964) Added missing example for useDeepCompareEffect. fix #582 --- .../__docs__/example.stories.tsx | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/useDeepCompareEffect/__docs__/example.stories.tsx b/src/useDeepCompareEffect/__docs__/example.stories.tsx index 4c36cdaa..a95d9ba0 100644 --- a/src/useDeepCompareEffect/__docs__/example.stories.tsx +++ b/src/useDeepCompareEffect/__docs__/example.stories.tsx @@ -1,15 +1,34 @@ +/* eslint-disable no-console */ import * as React from 'react'; -import { useDeepCompareEffect } from '../..'; +import { useEffect } from 'react'; +import { useDeepCompareEffect } from '../useDeepCompareEffect'; +import { useRerender } from '../../useRerender/useRerender'; export const Example: React.FC = () => { - useDeepCompareEffect(() => {}, []); + const rerender = useRerender(); + + // eslint-disable-next-line react-hooks/exhaustive-deps + const newOnEveryRender = { + name: 'Foo', + }; + + useEffect(() => { + console.log('I do get logged on every render.'); + }, [newOnEveryRender]); + + useDeepCompareEffect(() => { + console.log('I do not get logged on every render.'); + }, [newOnEveryRender]); return ( -
+ <> +

Open you browser console and the code for this example.

- We don't have an example for useDeepCompareEffect yet. Want to{' '} - contribute one? + Repeatedly press the button below. Notice, how the useEffect gets run on every render, but + useDeepCompareEffect does not. This is because useDeepCompareEffect determines dependency + changes by deep comparison instead of by reference like useEffect.

-
+ + ); }; From ff5804a95fd05ff6d99b834ea5b7491483b09f4c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Oct 2022 08:40:35 +0000 Subject: [PATCH 12/20] docs(contributor): contrib-readme-action has updated readme --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 13aa98b1..18676f49 100644 --- a/README.md +++ b/README.md @@ -219,6 +219,13 @@ Coming from `react-use`? Check out our Joe Duncko + + + ArttuOll +
+ Arttu Olli +
+ kylemh @@ -233,13 +240,6 @@ Coming from `react-use`? Check out our Andreas Nel - - - ArttuOll -
- Arttu Olli -
- Rey-Wang From e510b8c36de9fe778293e6e23e7faa2651d25f1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Oct 2022 00:23:48 +0000 Subject: [PATCH 13/20] chore(deps-dev): bump @react-hookz/eslint-config from 1.7.3 to 1.7.4 (#967) Bumps [@react-hookz/eslint-config](https://github.com/react-hookz/eslint-config) from 1.7.3 to 1.7.4. - [Release notes](https://github.com/react-hookz/eslint-config/releases) - [Changelog](https://github.com/react-hookz/eslint-config/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-hookz/eslint-config/compare/v1.7.3...v1.7.4) --- updated-dependencies: - dependency-name: "@react-hookz/eslint-config" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 261 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 157 insertions(+), 106 deletions(-) diff --git a/package.json b/package.json index 3f82bfc3..d25689d9 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "@commitlint/config-conventional": "^17.1.0", "@commitlint/cz-commitlint": "^17.1.2", "@jamesacarr/jest-reporter-github-actions": "^0.0.4", - "@react-hookz/eslint-config": "^1.7.3", + "@react-hookz/eslint-config": "^1.7.4", "@react-hookz/eslint-formatter-gha": "^1.0.1", "@semantic-release/changelog": "^6.0.1", "@semantic-release/git": "^10.0.1", diff --git a/yarn.lock b/yarn.lock index 78dace41..5a9c5168 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1361,10 +1361,10 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@eslint/eslintrc@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" - integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== +"@eslint/eslintrc@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" + integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1381,20 +1381,15 @@ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== +"@humanwhocodes/config-array@^0.10.5": + version "0.10.7" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc" + integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== - "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" @@ -2164,29 +2159,29 @@ resolved "https://registry.yarnpkg.com/@react-hookz/deep-equal/-/deep-equal-1.0.3.tgz#e044bca38c1612ea8c1596ef858ef7cfea49dd7a" integrity sha512-lGZR5l3YRjzeIOHtJhiq96vQKrsq+9lsCyv+0fROMQeSNWtLLzX3R+psHNi6nsoP3XEhspiZ92nsiPmdNo8ztQ== -"@react-hookz/eslint-config@^1.7.3": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@react-hookz/eslint-config/-/eslint-config-1.7.3.tgz#0f2e5861ecab69216eb40410dc490f9478d5fa43" - integrity sha512-vQJp6mLUTuwWR+pKeUWJBX0q0MzhZyUErekTNM6ElLB+zil6fgXum1ZU0s7Oun3ENgwBEleaDwXG1nl26NwfSQ== +"@react-hookz/eslint-config@^1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@react-hookz/eslint-config/-/eslint-config-1.7.4.tgz#9755d5a2f94c71063d8abf3656aa2dbff6e1cf31" + integrity sha512-BMFzBfKrcLc+zLSCK1mmnx7SUzDwGHiBXutz3at81Blub8f9qPVoRZ8HLFy0HMSTARQaCf+lJJjQhVU49J8IXQ== dependencies: - "@typescript-eslint/eslint-plugin" "^5.35.1" - "@typescript-eslint/parser" "^5.35.1" - eslint "^8.23.0" + "@typescript-eslint/eslint-plugin" "^5.40.1" + "@typescript-eslint/parser" "^5.40.1" + eslint "^8.25.0" eslint-config-airbnb "^19.0.4" eslint-config-airbnb-base "^15.0.0" eslint-config-airbnb-typescript "^17.0.0" eslint-config-prettier "^8.5.0" - eslint-mdx "^2.0.2" + eslint-mdx "^2.0.5" eslint-plugin-eslint-comments "^3.2.0" eslint-plugin-import "^2.26.0" - eslint-plugin-jest "^27.0.1" + eslint-plugin-jest "^27.1.2" eslint-plugin-jsx-a11y "^6.6.1" - eslint-plugin-mdx "^2.0.2" + eslint-plugin-mdx "^2.0.5" eslint-plugin-prettier "^4.2.1" - eslint-plugin-promise "^6.0.1" - eslint-plugin-react "^7.31.1" + eslint-plugin-promise "^6.1.0" + eslint-plugin-react "^7.31.10" eslint-plugin-react-hooks "^4.6.0" - eslint-plugin-unicorn "^43.0.2" + eslint-plugin-unicorn "^44.0.2" prettier "^2.7.1" "@react-hookz/eslint-formatter-gha@^1.0.1": @@ -3548,6 +3543,11 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/semver@^7.3.12": + version "7.3.12" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" + integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -3625,29 +3625,28 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.35.1": - version "5.36.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.0.tgz#8f159c4cdb3084eb5d4b72619a2ded942aa109e5" - integrity sha512-X3In41twSDnYRES7hO2xna4ZC02SY05UN9sGW//eL1P5k4CKfvddsdC2hOq0O3+WU1wkCPQkiTY9mzSnXKkA0w== +"@typescript-eslint/eslint-plugin@^5.40.1": + version "5.40.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.40.1.tgz#3203a6ff396b1194083faaa6e5110c401201d7d5" + integrity sha512-FsWboKkWdytGiXT5O1/R9j37YgcjO8MKHSUmWnIEjVaz0krHkplPnYi7mwdb+5+cs0toFNQb0HIrN7zONdIEWg== dependencies: - "@typescript-eslint/scope-manager" "5.36.0" - "@typescript-eslint/type-utils" "5.36.0" - "@typescript-eslint/utils" "5.36.0" + "@typescript-eslint/scope-manager" "5.40.1" + "@typescript-eslint/type-utils" "5.40.1" + "@typescript-eslint/utils" "5.40.1" debug "^4.3.4" - functional-red-black-tree "^1.0.1" ignore "^5.2.0" regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.35.1": - version "5.36.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.36.0.tgz#c08883073fb65acaafd268a987fd2314ce80c789" - integrity sha512-dlBZj7EGB44XML8KTng4QM0tvjI8swDh8MdpE5NX5iHWgWEfIuqSfSE+GPeCrCdj7m4tQLuevytd57jNDXJ2ZA== +"@typescript-eslint/parser@^5.40.1": + version "5.40.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.40.1.tgz#e7f8295dd8154d0d37d661ddd8e2f0ecfdee28dd" + integrity sha512-IK6x55va5w4YvXd4b3VrXQPldV9vQTxi5ov+g4pMANsXPTXOcfjx08CRR1Dfrcc51syPtXHF5bgLlMHYFrvQtg== dependencies: - "@typescript-eslint/scope-manager" "5.36.0" - "@typescript-eslint/types" "5.36.0" - "@typescript-eslint/typescript-estree" "5.36.0" + "@typescript-eslint/scope-manager" "5.40.1" + "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/typescript-estree" "5.40.1" debug "^4.3.4" "@typescript-eslint/scope-manager@5.36.0": @@ -3658,13 +3657,21 @@ "@typescript-eslint/types" "5.36.0" "@typescript-eslint/visitor-keys" "5.36.0" -"@typescript-eslint/type-utils@5.36.0": - version "5.36.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.36.0.tgz#5d2f94a36a298ae240ceca54b3bc230be9a99f0a" - integrity sha512-W/E3yJFqRYsjPljJ2gy0YkoqLJyViWs2DC6xHkXcWyhkIbCDdaVnl7mPLeQphVI+dXtY05EcXFzWLXhq8Mm/lQ== +"@typescript-eslint/scope-manager@5.40.1": + version "5.40.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.40.1.tgz#a7a5197dfd234622a2421ea590ee0ccc02e18dfe" + integrity sha512-jkn4xsJiUQucI16OLCXrLRXDZ3afKhOIqXs4R3O+M00hdQLKR58WuyXPZZjhKLFCEP2g+TXdBRtLQ33UfAdRUg== dependencies: - "@typescript-eslint/typescript-estree" "5.36.0" - "@typescript-eslint/utils" "5.36.0" + "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/visitor-keys" "5.40.1" + +"@typescript-eslint/type-utils@5.40.1": + version "5.40.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.40.1.tgz#091e4ce3bebbdb68f4980bae9dee2e4e1725f601" + integrity sha512-DLAs+AHQOe6n5LRraXiv27IYPhleF0ldEmx6yBqBgBLaNRKTkffhV1RPsjoJBhVup2zHxfaRtan8/YRBgYhU9Q== + dependencies: + "@typescript-eslint/typescript-estree" "5.40.1" + "@typescript-eslint/utils" "5.40.1" debug "^4.3.4" tsutils "^3.21.0" @@ -3673,6 +3680,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.36.0.tgz#cde7b94d1c09a4f074f46db99e7bd929fb0a5559" integrity sha512-3JJuLL1r3ljRpFdRPeOtgi14Vmpx+2JcR6gryeORmW3gPBY7R1jNYoq4yBN1L//ONZjMlbJ7SCIwugOStucYiQ== +"@typescript-eslint/types@5.40.1": + version "5.40.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.40.1.tgz#de37f4f64de731ee454bb2085d71030aa832f749" + integrity sha512-Icg9kiuVJSwdzSQvtdGspOlWNjVDnF3qVIKXdJ103o36yRprdl3Ge5cABQx+csx960nuMF21v8qvO31v9t3OHw== + "@typescript-eslint/typescript-estree@5.36.0": version "5.36.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.0.tgz#0acce61b4850bdb0e578f0884402726680608789" @@ -3686,7 +3698,34 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.36.0", "@typescript-eslint/utils@^5.10.0": +"@typescript-eslint/typescript-estree@5.40.1": + version "5.40.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.40.1.tgz#9a7d25492f02c69882ce5e0cd1857b0c55645d72" + integrity sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA== + dependencies: + "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/visitor-keys" "5.40.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.40.1": + version "5.40.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.40.1.tgz#3204fb73a559d3b7bab7dc9d3c44487c2734a9ca" + integrity sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.40.1" + "@typescript-eslint/types" "5.40.1" + "@typescript-eslint/typescript-estree" "5.40.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + +"@typescript-eslint/utils@^5.10.0": version "5.36.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.36.0.tgz#104c864ecc1448417606359275368bf3872bbabb" integrity sha512-wAlNhXXYvAAUBbRmoJDywF/j2fhGLBP4gnreFvYvFbtlsmhMJ4qCKVh/Z8OP4SgGR3xbciX2nmG639JX0uw1OQ== @@ -3706,6 +3745,14 @@ "@typescript-eslint/types" "5.36.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@5.40.1": + version "5.40.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.40.1.tgz#f3d2bf5af192f4432b84cec6fdcb387193518754" + integrity sha512-A2DGmeZ+FMja0geX5rww+DpvILpwo1OsiQs0M+joPWJYsiEFBLsH0y1oFymPNul6Z5okSmHpP4ivkc2N0Cgfkw== + dependencies: + "@typescript-eslint/types" "5.40.1" + eslint-visitor-keys "^3.3.0" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -5327,11 +5374,16 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.2.0, ci-info@^3.3.2: +ci-info@^3.2.0: version "3.3.2" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== +ci-info@^3.4.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" + integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== + cidr-regex@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-3.1.1.tgz#ba1972c57c66f61875f18fd7dd487469770b571d" @@ -6784,23 +6836,23 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-mdx@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eslint-mdx/-/eslint-mdx-2.0.2.tgz#ef7db81517459517f5f63b170c05ece10f59426f" - integrity sha512-MEVpk4Up8DNvabR9chGE2sKhInmSgSdtqEW9CueYTExZB0t+qaT3KGctbDjbcD5YkDbvYhgSCYo/J72ncIPIbw== +eslint-mdx@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/eslint-mdx/-/eslint-mdx-2.0.5.tgz#f26ae220192dd368b1c1ee670282cc28c50c244a" + integrity sha512-1ZzcJwJNfladtuK+uuG/MdC0idc1e3d1vCI2STOq/pLcJBGuao2biWh90vEh2M93zDiNoHJGUIU7UAxupiiHFw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" cosmiconfig "^7.0.1" - espree "^9.3.2" - estree-util-visit "^1.1.0" - remark-mdx "^2.1.2" + espree "^9.4.0" + estree-util-visit "^1.2.0" + remark-mdx "^2.1.3" remark-parse "^10.0.1" remark-stringify "^10.0.2" - synckit "^0.8.1" + synckit "^0.8.4" tslib "^2.4.0" unified "^10.1.2" - unist-util-visit "^4.1.0" + unist-util-visit "^4.1.1" uvu "^0.5.6" vfile "^5.3.4" @@ -6838,10 +6890,10 @@ eslint-plugin-import@^2.26.0: resolve "^1.22.0" tsconfig-paths "^3.14.1" -eslint-plugin-jest@^27.0.1: - version "27.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.0.1.tgz#3e67ee2051411540988c62075e8788702a1064da" - integrity sha512-LosUsrkwVSs/8Z/I8Hqn5vWgTEsHrfIquDEKOsV8/cl+gbFR4tiRCE1AimEotsHjSC0Rx1tYm6vPhw8C3ktmmg== +eslint-plugin-jest@^27.1.2: + version "27.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.1.3.tgz#9f359eeac0c720a825f658e7e261a9eef869dc8d" + integrity sha512-7DrIfYRQPa7JQd1Le8G/BJsfYHVUKQdJQ/6vULSp/4NjKZmSMJ/605G2hhScEra++SiH68zPEjLnrO74nHrMLg== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -6871,14 +6923,14 @@ eslint-plugin-markdown@^3.0.0: dependencies: mdast-util-from-markdown "^0.8.5" -eslint-plugin-mdx@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-mdx/-/eslint-plugin-mdx-2.0.2.tgz#df870d86db8924b23940c918407956fb17d35a46" - integrity sha512-9mHBCxfB15YaewEHRwmFZVOlnYn7CAWKA4F43oJ8UGYWERTxJjiEqZgfK3QL9wP3zOIubOWcq4gUKzNmGbolVg== +eslint-plugin-mdx@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-mdx/-/eslint-plugin-mdx-2.0.5.tgz#7717a6e2f5c8f28530b1ef7a612f55430fb4726e" + integrity sha512-j2xN97jSlc5IoH94rJTHqYMztl46+hHzyC8Zqjx+OI1Rvv33isyf8xSSBHN6f0z8IJmgPgGsb/fH90JbvKplXg== dependencies: - eslint-mdx "^2.0.2" + eslint-mdx "^2.0.5" eslint-plugin-markdown "^3.0.0" - remark-mdx "^2.1.2" + remark-mdx "^2.1.3" remark-parse "^10.0.1" remark-stringify "^10.0.2" tslib "^2.4.0" @@ -6892,20 +6944,20 @@ eslint-plugin-prettier@^4.2.1: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-promise@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz#a8cddf96a67c4059bdabf4d724a29572188ae423" - integrity sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw== +eslint-plugin-promise@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.0.tgz#99e54d07272df5a6440209cb36d0d692be0610dd" + integrity sha512-NYCfDZF/KHt27p06nFAttgWuFyIDSUMnNaJBIY1FY9GpBFhdT2vMG64HlFguSgcJeyM5by6Yr5csSOuJm60eXQ== eslint-plugin-react-hooks@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@^7.31.1: - version "7.31.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz#d29793ed27743f3ed8a473c347b1bf5a0a8fb9af" - integrity sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg== +eslint-plugin-react@^7.31.10: + version "7.31.10" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz#6782c2c7fe91c09e715d536067644bbb9491419a" + integrity sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA== dependencies: array-includes "^3.1.5" array.prototype.flatmap "^1.3.0" @@ -6922,18 +6974,18 @@ eslint-plugin-react@^7.31.1: semver "^6.3.0" string.prototype.matchall "^4.0.7" -eslint-plugin-unicorn@^43.0.2: - version "43.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-43.0.2.tgz#b189d58494c8a0985a4b89dba5dbfde3ad7575a5" - integrity sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg== +eslint-plugin-unicorn@^44.0.2: + version "44.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-44.0.2.tgz#6324a001c0a5e2ac00fb51b30db27d14c6c36ab3" + integrity sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - ci-info "^3.3.2" + "@babel/helper-validator-identifier" "^7.19.1" + ci-info "^3.4.0" clean-regexp "^1.0.0" eslint-utils "^3.0.0" esquery "^1.4.0" indent-string "^4.0.0" - is-builtin-module "^3.1.0" + is-builtin-module "^3.2.0" lodash "^4.17.21" pluralize "^8.0.0" read-pkg-up "^7.0.1" @@ -6983,14 +7035,13 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.23.0: - version "8.23.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040" - integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA== +eslint@^8.25.0: + version "8.25.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b" + integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A== dependencies: - "@eslint/eslintrc" "^1.3.1" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@eslint/eslintrc" "^1.3.3" + "@humanwhocodes/config-array" "^0.10.5" "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" chalk "^4.0.0" @@ -7007,7 +7058,6 @@ eslint@^8.23.0: fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" globals "^13.15.0" globby "^11.1.0" @@ -7016,6 +7066,7 @@ eslint@^8.23.0: import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -7028,7 +7079,7 @@ eslint@^8.23.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.3.2, espree@^9.4.0: +espree@^9.4.0: version "9.4.0" resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== @@ -7080,7 +7131,7 @@ estree-util-is-identifier-name@^2.0.0: resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz#cf07867f42705892718d9d89eb2d85eaa8f0fcb5" integrity sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ== -estree-util-visit@^1.0.0, estree-util-visit@^1.1.0: +estree-util-visit@^1.0.0, estree-util-visit@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-1.2.0.tgz#aa0311a9c2f2aa56e9ae5e8b9d87eac14e4ec8f8" integrity sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg== @@ -7714,11 +7765,6 @@ function.prototype.name@^1.1.0, function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - functions-have-names@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -8704,7 +8750,7 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-builtin-module@^3.1.0: +is-builtin-module@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.0.tgz#bb0310dfe881f144ca83f30100ceb10cf58835e0" integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== @@ -9707,6 +9753,11 @@ js-cookie@^3.0.1: resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414" integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw== +js-sdsl@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" + integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== + js-string-escape@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" @@ -13228,10 +13279,10 @@ remark-mdx@1.6.22: remark-parse "8.0.3" unified "9.2.0" -remark-mdx@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.1.3.tgz#6273e8b94d27ade35407a63bc8cdd04592f7be9f" - integrity sha512-3SmtXOy9+jIaVctL8Cs3VAQInjRLGOwNXfrBB9KCT+EpJpKD3PQiy0x8hUNGyjQmdyOs40BqgPU7kYtH9uoR6w== +remark-mdx@^2.1.3: + version "2.1.5" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.1.5.tgz#69b19ec42d30a289e0663c3fc7656ebdca0a8d8e" + integrity sha512-A8vw5s+BgOa968Irt8BO7DfWJTE0Fe7Ge3hX8zzDB1DnwMZTNdK6qF2IcFao+/7nzk1vSysKcFp+3ku4vhMpaQ== dependencies: mdast-util-mdx "^2.0.0" micromark-extension-mdxjs "^1.0.0" @@ -14436,7 +14487,7 @@ synchronous-promise@^2.0.15: resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.16.tgz#669b75e86b4295fdcc1bb0498de9ac1af6fd51a9" integrity sha512-qImOD23aDfnIDNqlG1NOehdB9IYsn1V9oByPjKY1nakv2MQYCEMyX033/q+aEtYCpmYK1cv2+NTmlH+ra6GA5A== -synckit@^0.8.1: +synckit@^0.8.4: version "0.8.4" resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.4.tgz#0e6b392b73fafdafcde56692e3352500261d64ec" integrity sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw== @@ -15129,7 +15180,7 @@ unist-util-visit@2.0.3, unist-util-visit@^2.0.0: unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" -unist-util-visit@^4.0.0, unist-util-visit@^4.1.0: +unist-util-visit@^4.0.0, unist-util-visit@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== From c5c52df574be22db97455f605e28ede9e885d246 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Oct 2022 00:25:12 +0000 Subject: [PATCH 14/20] chore(deps-dev): bump jest and @types/jest (#968) Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) and [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest). These dependencies needed to be updated together. Updates `jest` from 29.2.0 to 29.2.1 - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.2.1/packages/jest) Updates `@types/jest` from 29.1.2 to 29.2.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: "@types/jest" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- yarn.lock | 650 +++++++++++++++++++++++++-------------------------- 2 files changed, 320 insertions(+), 334 deletions(-) diff --git a/package.json b/package.json index d25689d9..745124dc 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "@storybook/storybook-deployer": "^2.8.12", "@storybook/theming": "^6.5.10", "@testing-library/react-hooks": "^8.0.1", - "@types/jest": "^29.1.2", + "@types/jest": "^29.2.0", "@types/js-cookie": "^3.0.2", "@types/react": "^18.0.17", "@types/react-dom": "^18.0.6", @@ -109,7 +109,7 @@ "commitlint": "^17.1.2", "concurrently": "^7.4.0", "husky": "^8.0.1", - "jest": "^29.2.0", + "jest": "^29.2.1", "jest-environment-jsdom": "^29.2.0", "js-cookie": "^3.0.1", "lint-staged": "^13.0.3", diff --git a/yarn.lock b/yarn.lock index 5a9c5168..78559a03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1441,28 +1441,28 @@ jest-util "^26.6.2" slash "^3.0.0" -"@jest/console@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.0.tgz#e906bdbfc83baf79590f05b515dad900b3b71fed" - integrity sha512-Xz1Wu+ZZxcB3RS8U3HdkFxlRJ7kLXI/by9X7d2/gvseIWPwYu/c1EsYy77cB5iyyHGOy3whS2HycjcuzIF4Jow== +"@jest/console@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090" + integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-message-util "^29.2.1" + jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.0.tgz#beed57c552be65d4e4ab2f4161d0abe8ea6bf3a8" - integrity sha512-+gyJ3bX+kGEW/eqt/0kI7fLjqiFr3AN8O+rlEl1fYRf7D8h4Sj4tBGo9YOSirvWgvemoH2EPRya35bgvcPFzHQ== +"@jest/core@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.1.tgz#30af794ebd73bfb87cd8ba36718738dfe38b772e" + integrity sha512-kuLKYqnqgerXkBUwlHVxeSuhSnd+JMnMCLfU98bpacBSfWEJPegytDh3P2m15/JHzet32hGGld4KR4OzMb6/Tg== dependencies: - "@jest/console" "^29.2.0" - "@jest/reporters" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/console" "^29.2.1" + "@jest/reporters" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -1470,20 +1470,20 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.2.0" - jest-haste-map "^29.2.0" - jest-message-util "^29.2.0" + jest-config "^29.2.1" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-resolve-dependencies "^29.2.0" - jest-runner "^29.2.0" - jest-runtime "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" - jest-watcher "^29.2.0" + jest-resolve "^29.2.1" + jest-resolve-dependencies "^29.2.1" + jest-runner "^29.2.1" + jest-runtime "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" + jest-watcher "^29.2.1" micromatch "^4.0.4" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" strip-ansi "^6.0.0" @@ -1497,27 +1497,30 @@ "@types/node" "*" jest-mock "^29.2.0" -"@jest/expect-utils@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.1.2.tgz#66dbb514d38f7d21456bc774419c9ae5cca3f88d" - integrity sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg== +"@jest/environment@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665" + integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg== dependencies: - jest-get-type "^29.0.0" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" + "@types/node" "*" + jest-mock "^29.2.1" -"@jest/expect-utils@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.0.tgz#3c0c472115d98211e7e0a0a8fa00719bf081987f" - integrity sha512-nz2IDF7nb1qmj9hx8Ja3MFab2q9Ml8QbOaaeJNyX5JQJHU8QUvEDiMctmhGEkk3Kzr8w8vAqz4hPk/ogJSrUhg== +"@jest/expect-utils@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.1.tgz#eae61c90f2066540f60d23b8f254f03b7869b22f" + integrity sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.0.tgz#25316d2ae930e7bb9df96cce7521053d377c4c0d" - integrity sha512-+3lxcYL9e0xPJGOR33utxxejn+Mulz40kY0oy0FVsmIESW87NZDJ7B1ovaIqeX0xIgPX4laS5SGlqD2uSoBMcw== +"@jest/expect@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.1.tgz#8d99be3886ebfcffd6cabb2b46602a301b976ffe" + integrity sha512-o14R2t2tHHHudwji43UKkzmmH49xfF5T++FQBK2tl88qwuBWQOcx7fNUYl+mA/9TPNAN0FkQ3usnpyS8FUwsvQ== dependencies: - expect "^29.2.0" - jest-snapshot "^29.2.0" + expect "^29.2.1" + jest-snapshot "^29.2.1" "@jest/fake-timers@^29.2.0": version "29.2.0" @@ -1531,15 +1534,27 @@ jest-mock "^29.2.0" jest-util "^29.2.0" -"@jest/globals@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.0.tgz#5cfc41c028efaf511624ba086d64113d5a8a92b3" - integrity sha512-JQxtEVNWiai1p3PIzAJZSyEqQdAJGvNKvinZDPfu0mhiYEVx6E+PiBuDWj1sVUW8hzu+R3DVqaWC9K2xcLRIAA== +"@jest/fake-timers@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb" + integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA== dependencies: - "@jest/environment" "^29.2.0" - "@jest/expect" "^29.2.0" - "@jest/types" "^29.2.0" - jest-mock "^29.2.0" + "@jest/types" "^29.2.1" + "@sinonjs/fake-timers" "^9.1.2" + "@types/node" "*" + jest-message-util "^29.2.1" + jest-mock "^29.2.1" + jest-util "^29.2.1" + +"@jest/globals@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.1.tgz#6933beb8b4e43b990409a19c462fde7b71210e63" + integrity sha512-Z4EejYPP1OPVq2abk1+9urAwJqkgw5jB2UJGlPjb5ZwzPQF8WLMcigKEfFzZb2OHhEVPP0RZD0/DbVTY1R6iQA== + dependencies: + "@jest/environment" "^29.2.1" + "@jest/expect" "^29.2.1" + "@jest/types" "^29.2.1" + jest-mock "^29.2.1" "@jest/reporters@^26.6.2": version "26.6.2" @@ -1573,16 +1588,16 @@ optionalDependencies: node-notifier "^8.0.0" -"@jest/reporters@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.0.tgz#24cac16d997ec91a9c615db2621805ee485689e0" - integrity sha512-BXoAJatxTZ18U0cwD7C8qBo8V6vef8AXYRBZdhqE5DF9CmpqmhMfw9c7OUvYqMTnBBK9A0NgXGO4Lc9EJzdHvw== +"@jest/reporters@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.1.tgz#599e4376823751fdda50f2ca97243e013da10c4d" + integrity sha512-sCsfUKM/yIF4nNed3e/rIgVIS58EiASGMDEPWqItfLZ9UO1ALW2ASDNJzdWkxEt0T8o2Ztj619G0KKrvK+McAw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/console" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1595,9 +1610,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.2.0" - jest-util "^29.2.0" - jest-worker "^29.2.0" + jest-message-util "^29.2.1" + jest-util "^29.2.1" + jest-worker "^29.2.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -1629,24 +1644,24 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-result@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.0.tgz#3dcc7123b8f0fb5ba1f650ce17af45cce91a0323" - integrity sha512-l76EPJ6QqtzsCLS4aimJqWO53pxZ82o3aE+Brcmo1HJ/phb9+MR7gPhyDdN6VSGaLJCRVJBZgWEhAEz+qON0Fw== +"@jest/test-result@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb" + integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA== dependencies: - "@jest/console" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/console" "^29.2.1" + "@jest/types" "^29.2.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.0.tgz#acd875533f7ad01cb22da59ff4047de18e9d64da" - integrity sha512-NCnjZcGnVdva6IDqF7TCuFsXs2F1tohiNF9sasSJNzD7VfN5ic9XgcS/oPDalGiPLxCmGKj4kewqqrKAqBACcQ== +"@jest/test-sequencer@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.1.tgz#cafd2c5f3528c70bd4cc243800459ac366e480cc" + integrity sha512-O/pnk0/xGj3lxPVNwB6HREJ7AYvUdyP2xo/s14/9Dtf091HoOeyIhWLKQE/4HzB8lNQBMo6J5mg0bHz/uCWK7w== dependencies: - "@jest/test-result" "^29.2.0" + "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" slash "^3.0.0" "@jest/transform@^26.6.2": @@ -1670,22 +1685,22 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.0.tgz#1c55ca549f64810351df999265a29f8ead51be15" - integrity sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw== +"@jest/transform@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2" + integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" jest-regex-util "^29.2.0" - jest-util "^29.2.0" + jest-util "^29.2.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1702,10 +1717,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^29.1.2", "@jest/types@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.0.tgz#c0d1ef8bc1e4f4b358e7877e34157371e7881b0b" - integrity sha512-mfgpQz4Z2xGo37m6KD8xEpKelaVzvYVRijmLPePn9pxgaPEtX+SqIyPNzzoeCPXKYbB4L/wYSgXDL8o3Gop78Q== +"@jest/types@^29.2.0", "@jest/types@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" + integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -3395,10 +3410,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.1.2.tgz#7ad8077043ab5f6c108c8111bcc1d224e5600a87" - integrity sha512-y+nlX0h87U0R+wsGn6EBuoRWYyv3KFtwRNP3QWp9+k2tJ2/bqcGS3UxD7jgT+tiwJWWq3UsyV4Y+T6rsMT4XMg== +"@types/jest@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.0.tgz#fa98e08b46ab119f1a74a9552c48c589f5378a96" + integrity sha512-KO7bPV21d65PKwv3LLsD8Jn3E05pjNjRZvkm+YTacWhVmykAb07wW6IkZUmQAltwQafNcDUEUrMO2h3jeBSisg== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -4547,12 +4562,12 @@ axobject-query@^2.2.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.0.tgz#088624f037da90e69a06073305276cbd111d68a8" - integrity sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw== +babel-jest@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1" + integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw== dependencies: - "@jest/transform" "^29.2.0" + "@jest/transform" "^29.2.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -6385,11 +6400,6 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diff-sequences@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" - integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== - diff-sequences@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" @@ -7235,27 +7245,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.0.0: - version "29.1.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.1.2.tgz#82f8f28d7d408c7c68da3a386a490ee683e1eced" - integrity sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw== +expect@^29.0.0, expect@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.1.tgz#25752d0df92d3daa5188dc8804de1f30759658cf" + integrity sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ== dependencies: - "@jest/expect-utils" "^29.1.2" - jest-get-type "^29.0.0" - jest-matcher-utils "^29.1.2" - jest-message-util "^29.1.2" - jest-util "^29.1.2" - -expect@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.0.tgz#b90c6df52be7abfd9f206f273fbcf8b33d8f332d" - integrity sha512-03ClF3GWwUqd9Grgkr9ZSdaCJGMRA69PQ8jT7o+Bx100VlGiAFf9/8oIm9Qve7ZVJhuJxFftqFhviZJRxxNfvg== - dependencies: - "@jest/expect-utils" "^29.2.0" + "@jest/expect-utils" "^29.2.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-util "^29.2.1" express@^4.17.1: version "4.18.1" @@ -9248,96 +9247,86 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.0.tgz#692ddf3b12a5ae6326f2f37b9d176c68777fcf4c" - integrity sha512-bpJRMe+VtvYlF3q8JNx+/cAo4FYvNCiR5s7Z0Scf8aC+KJ2ineSjZKtw1cIZbythlplkiro0My8nc65pfCqJ3A== +jest-circus@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.1.tgz#1385353d9bca6acf58f916068bbeffcfc95bef02" + integrity sha512-W+ZQQ5ln4Db2UZNM4NJIeasnhCdDhSuYW4eLgNAUi0XiSSpF634Kc5wiPvGiHvTgXMFVn1ZgWIijqhi9+kLNLg== dependencies: - "@jest/environment" "^29.2.0" - "@jest/expect" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/expect" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-runtime "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" + jest-each "^29.2.1" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-runtime "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" p-limit "^3.1.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.0.tgz#c6ca40889d6671c38b1cf9119d3b653809f31a3a" - integrity sha512-/581TzbXeO+5kbtSlhXEthGiVJCC8AP0jgT0iZINAAMW+tTFj2uWU7z+HNUH5yIYdHV7AvRr0fWLrmHJGIruHg== +jest-cli@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.1.tgz#fbfa90b87b27a04e1041cc9d33ee80f32e2f2528" + integrity sha512-UIMD5aNqvPKpdlJSaeUAoLfxsh9TZvOkaMETx5qXnkboc317bcbb0eLHbIj8sFBHdcJAIAM+IRKnIU7Wi61MBw== dependencies: - "@jest/core" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/core" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-config "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.0.tgz#8823f35255f696444a882721e624d7ad352e208b" - integrity sha512-IkdCsrHIoxDPZAyFcdtQrCQ3uftLqns6Joj0tlbxiAQW4k/zTXmIygqWBmPNxO9FbFkDrhtYZiLHXjaJh9rS+Q== +jest-config@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.1.tgz#2182af014d6c73978208626335db5134803dd183" + integrity sha512-EV5F1tQYW/quZV2br2o88hnYEeRzG53Dfi6rSG3TZBuzGQ6luhQBux/RLlU5QrJjCdq3LXxRRM8F1LP6DN1ycA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.2.0" - "@jest/types" "^29.2.0" - babel-jest "^29.2.0" + "@jest/test-sequencer" "^29.2.1" + "@jest/types" "^29.2.1" + babel-jest "^29.2.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.2.0" - jest-environment-node "^29.2.0" + jest-circus "^29.2.1" + jest-environment-node "^29.2.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-runner "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-resolve "^29.2.1" + jest-runner "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.1.2.tgz#bb7aaf5353227d6f4f96c5e7e8713ce576a607dc" - integrity sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.0.0" - jest-get-type "^29.0.0" - pretty-format "^29.1.2" - -jest-diff@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.0.tgz#b1e11ac1a1401fc4792ef8ba406b48f1ae7d2bc5" - integrity sha512-GsH07qQL+/D/GxlnU+sSg9GL3fBOcuTlmtr3qr2pnkiODCwubNN2/7slW4m3CvxDsEus/VEOfQKRFLyXsUlnZw== +jest-diff@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" + integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== dependencies: chalk "^4.0.0" diff-sequences "^29.2.0" jest-get-type "^29.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" jest-docblock@^29.2.0: version "29.2.0" @@ -9346,16 +9335,16 @@ jest-docblock@^29.2.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.0.tgz#0f89c1233d65f22c7dba265ccd319611f1d662de" - integrity sha512-h4LeC3L/R7jIMfTdYowevPIssvcPYQ7Qzs+pCSYsJgPztIizXwKmnfhZXBA4WVqdmvMcpmseYEXb67JT7IJ2eg== +jest-each@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29" + integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.2.0" - pretty-format "^29.2.0" + jest-util "^29.2.1" + pretty-format "^29.2.1" jest-environment-jsdom@^29.2.0: version "29.2.0" @@ -9371,22 +9360,17 @@ jest-environment-jsdom@^29.2.0: jest-util "^29.2.0" jsdom "^20.0.0" -jest-environment-node@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.0.tgz#49c39d4f9df64fc74da3725cbcaeee6da01a6dd6" - integrity sha512-b4qQGVStPMvtZG97Ac0rvnmSIjCZturFU7MQRMp4JDFl7zoaDLTtXmFjFP1tNmi9te6kR8d+Htbv3nYeoaIz6g== +jest-environment-node@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.1.tgz#f90311d0f0e8ef720349f83c97a076e403f90665" + integrity sha512-PulFKwEMz6nTAdLUwglFKei3b/LixwlRiqTN6nvPE1JtrLtlnpd6LXnFI1NFHYJGlTmIWilMP2n9jEtPPKX50g== dependencies: - "@jest/environment" "^29.2.0" - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.0" - jest-util "^29.2.0" - -jest-get-type@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" - integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== + jest-mock "^29.2.1" + jest-util "^29.2.1" jest-get-type@^29.2.0: version "29.2.0" @@ -9414,52 +9398,42 @@ jest-haste-map@^26.6.2: optionalDependencies: fsevents "^2.1.2" -jest-haste-map@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.0.tgz#2410f2ec93958e0bd894818de6c8056eb1b4d6fc" - integrity sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg== +jest-haste-map@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" + integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.2.0" - jest-worker "^29.2.0" + jest-util "^29.2.1" + jest-worker "^29.2.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.0.tgz#7c0eace293cf05a130a09beb1b9318ecc2f77692" - integrity sha512-FXT9sCFdct42+oOqGIr/9kmUw3RbhvpkwidCBT5ySHHoWNGd3c9n7HXpFKjEz9UnUITRCGdn0q2s6Sxrq36kwg== +jest-leak-detector@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc" + integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.2.0" - -jest-matcher-utils@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz#e68c4bcc0266e70aa1a5c13fb7b8cd4695e318a1" - integrity sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw== - dependencies: - chalk "^4.0.0" - jest-diff "^29.1.2" - jest-get-type "^29.0.0" - pretty-format "^29.1.2" + pretty-format "^29.2.1" -jest-matcher-utils@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.0.tgz#d1d73add0e0efb0e316a50f296977505dc053e02" - integrity sha512-FcEfKZ4vm28yCdBsvC69EkrEhcfex+IYlRctNJXsRG9+WC3WxgBNORnECIgqUtj7o/h1d8o7xB/dFUiLi4bqtw== +jest-matcher-utils@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.1.tgz#2bf876c5f891b33786aadf5d65d5da5970744122" + integrity sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww== dependencies: chalk "^4.0.0" - jest-diff "^29.2.0" + jest-diff "^29.2.1" jest-get-type "^29.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" jest-message-util@^26.6.2: version "26.6.2" @@ -9476,33 +9450,33 @@ jest-message-util@^26.6.2: slash "^3.0.0" stack-utils "^2.0.2" -jest-message-util@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.1.2.tgz#c21a33c25f9dc1ebfcd0f921d89438847a09a501" - integrity sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ== +jest-message-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.0.tgz#cbd43fd9a20a8facd4267ac37556bc5c9a525ec0" + integrity sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.1.2" + pretty-format "^29.2.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.0.tgz#cbd43fd9a20a8facd4267ac37556bc5c9a525ec0" - integrity sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg== +jest-message-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" + integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" @@ -9515,6 +9489,15 @@ jest-mock@^29.2.0: "@types/node" "*" jest-util "^29.2.0" +jest-mock@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775" + integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA== + dependencies: + "@jest/types" "^29.2.1" + "@types/node" "*" + jest-util "^29.2.1" + jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -9530,13 +9513,13 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.0.tgz#a127b7d6b7df69d4eaf2c7c99f652f17ba0fed71" - integrity sha512-Cd0Z39sDntEnfR9PoUdFHUAGDvtKI0/7Wt73l3lt03A3yQ+A6Qi3XmBuqGjdFl2QbXaPa937oLhilG612P8HGQ== +jest-resolve-dependencies@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.1.tgz#8d717dd41dc615fef1d412d395ea3deccfb1b9fa" + integrity sha512-o3mUGX2j08usj1jIAIE8KmUVpqVAn54k80kI27ldbZf2oJn6eghhB6DvJxjrcH40va9CQgWTfU5f2Ag/MoUqgQ== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.2.0" + jest-snapshot "^29.2.1" jest-resolve@^26.6.2: version "26.6.2" @@ -9552,73 +9535,73 @@ jest-resolve@^26.6.2: resolve "^1.18.1" slash "^3.0.0" -jest-resolve@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.0.tgz#cb9f9770164382785cd68598a9fb0b7e4bb95a9f" - integrity sha512-f5c0ljNg2guDBCC7wi92vAhNuA0BtAG5vkY7Fob0c7sUMU1g87mTXqRmjrVFe2XvdwP5m5T/e5KJsCKu9hRvBA== +jest-resolve@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.1.tgz#a4d2f76db88aeb6ec5f5453c9a40b52483d17799" + integrity sha512-1dJTW76Z9622Viq4yRcwBuEXuzGtE9B2kdl05RC8Om/lAzac9uEgC+M8Q5osVidbuBPmxm8wSrcItYhca2ZAtQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-util "^29.2.1" + jest-validate "^29.2.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.0.tgz#d621e67a2d59d5bc302eca1f5348615ce166712c" - integrity sha512-VPBrCwl9fM2mc5yk6yZhNrgXzRJMD5jfLmntkMLlrVq4hQPWbRK998iJlR+DOGCO04TC9PPYLntOJ001Vnf28g== +jest-runner@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.1.tgz#885afe64661cb2f51f84c1b97afb713d1093c124" + integrity sha512-PojFI+uVhQ4u4YZKCN/a3yU0/l/pJJXhq1sW3JpCp8CyvGBYGddRFPKZ1WihApusxqWRTHjBJmGyPWv6Av2lWA== dependencies: - "@jest/console" "^29.2.0" - "@jest/environment" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/console" "^29.2.1" + "@jest/environment" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.2.0" - jest-haste-map "^29.2.0" - jest-leak-detector "^29.2.0" - jest-message-util "^29.2.0" - jest-resolve "^29.2.0" - jest-runtime "^29.2.0" - jest-util "^29.2.0" - jest-watcher "^29.2.0" - jest-worker "^29.2.0" + jest-environment-node "^29.2.1" + jest-haste-map "^29.2.1" + jest-leak-detector "^29.2.1" + jest-message-util "^29.2.1" + jest-resolve "^29.2.1" + jest-runtime "^29.2.1" + jest-util "^29.2.1" + jest-watcher "^29.2.1" + jest-worker "^29.2.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.0.tgz#6b10d9539c1f7af32d06fccd7d16b6c9996c9cb2" - integrity sha512-+GDmzCrswQF+mvI0upTYMe/OPYnlRRNLLDHM9AFLp2y7zxWoDoYgb8DL3WwJ8d9m743AzrnvBV9JQHi/0ed7dg== +jest-runtime@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.1.tgz#62e3a23c33710ae4d9c3304dda851a5fb225b574" + integrity sha512-PSQ880OoIW9y8E6/jjhGn3eQNgNc6ndMzCZaKqy357bv7FqCfSyYepu3yDC6Sp1Vkt+GhP2M/PVgldS2uZSFZg== dependencies: - "@jest/environment" "^29.2.0" - "@jest/fake-timers" "^29.2.0" - "@jest/globals" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/fake-timers" "^29.2.1" + "@jest/globals" "^29.2.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" - jest-message-util "^29.2.0" - jest-mock "^29.2.0" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" + jest-mock "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" + jest-resolve "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" @@ -9630,10 +9613,10 @@ jest-serializer@^26.6.2: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.0.tgz#fb3d4e1d9df579f37d7c60072877ee99376b6090" - integrity sha512-YCKrOR0PLRXROmww73fHO9oeY4tL+LPQXWR3yml1+hKbQDR8j1VUrVzB65hKSJJgxBOr1vWx+hmz2by8JjAU5w== +jest-snapshot@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.1.tgz#f3843b3099c8fec7e6218dea18cc506f10ea5d30" + integrity sha512-KZdLD7iEz5M4ZYd+ezZ/kk73z+DtNbk/yJ4Qx7408Vb0CCuclJIZPa/HmIwSsCfIlOBNcYTKufr7x/Yv47oYlg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -9641,23 +9624,23 @@ jest-snapshot@^29.2.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/expect-utils" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.2.0" + expect "^29.2.1" graceful-fs "^4.2.9" - jest-diff "^29.2.0" + jest-diff "^29.2.1" jest-get-type "^29.2.0" - jest-haste-map "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-haste-map "^29.2.1" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-util "^29.2.1" natural-compare "^1.4.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" semver "^7.3.5" jest-util@^26.6.2: @@ -9672,7 +9655,7 @@ jest-util@^26.6.2: is-ci "^2.0.0" micromatch "^4.0.2" -jest-util@^29.0.0, jest-util@^29.1.2, jest-util@^29.2.0: +jest-util@^29.0.0, jest-util@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.0.tgz#797935697e83a5722aeba401ed6cd01264295566" integrity sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw== @@ -9684,30 +9667,42 @@ jest-util@^29.0.0, jest-util@^29.1.2, jest-util@^29.2.0: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.0.tgz#e40faf33759365c12ead6a45165349d660d09ba4" - integrity sha512-4Vl51bPNeFeDok9aJiOnrC6tqJbOp4iMCYlewoC2ZzYJZ5+6pfr3KObAdx5wP8auHcg2MRaguiqj5OdScZa72g== +jest-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" + integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.1.tgz#db814ce12c4c7e4746044922762e56eb177d066c" + integrity sha512-DZVX5msG6J6DL5vUUw+++6LEkXUsPwB5R7fsfM7BXdz2Ipr0Ib046ak+8egrwAR++pvSM/5laxLK977ieIGxkQ== + dependencies: + "@jest/types" "^29.2.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" -jest-watcher@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.0.tgz#d0c58ff76d3dd22fff79f3f9cbeadaa749d2ca6e" - integrity sha512-bRh0JdUeN+cl9XfK7tMnXLm4Mv70hG2SZlqbkFe5CTs7oeCkbwlGBk/mEfEJ63mrxZ8LPbnfaMpfSmkhEQBEGA== +jest-watcher@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.1.tgz#1cb91f8aa9e77b1332af139944ad65e51430d7c3" + integrity sha512-7jFaHUaRq50l4w/f6RuY713bvI5XskMmjWCE54NGYcY74fLkShS8LucXJke1QfGnwDSCoIqGnGGGKPwdaBYz2Q== dependencies: - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.2.0" + jest-util "^29.2.1" string-length "^4.0.1" jest-worker@^26.5.0, jest-worker@^26.6.2: @@ -9728,25 +9723,25 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.0.tgz#b2bd1a81fc7a1ae79a500b05f5feb0d1c0b1a19e" - integrity sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A== +jest-worker@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" + integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== dependencies: "@types/node" "*" - jest-util "^29.2.0" + jest-util "^29.2.1" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.0.tgz#e7997bc603f31e04edbbe87dd24cf6e7c432abac" - integrity sha512-6krPemKUXCEu5Fh3j6ZVoLMjpTQVm0OCU+7f3K/9gllX8wNIE6NSCQ6s0q2RDoiKLRaQlVRHyscjSPRPqCI0Fg== +jest@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.1.tgz#352ec0b81a0e436691d546d984cd7d8f72ffd26a" + integrity sha512-K0N+7rx+fv3Us3KhuwRSJt55MMpZPs9Q3WSO/spRZSnsalX8yEYOTQ1PiSN7OvqzoRX4JEUXCbOJRlP4n8m5LA== dependencies: - "@jest/core" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/core" "^29.2.1" + "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^29.2.0" + jest-cli "^29.2.1" js-cookie@^3.0.1: version "3.0.1" @@ -12630,19 +12625,10 @@ pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^29.0.0, pretty-format@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.1.2.tgz#b1f6b75be7d699be1a051f5da36e8ae9e76a8e6a" - integrity sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg== - dependencies: - "@jest/schemas" "^29.0.0" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-format@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.0.tgz#1d4ea56fb46079b44efd9ed59c14f70f2950a61b" - integrity sha512-QCSUFdwOi924g24czhOH5eTkXxUCqlLGZBRCySlwDYHIXRJkdGyjJc9nZaqhlFBZws8dq5Dvk0lCilsmlfsPxw== +pretty-format@^29.0.0, pretty-format@^29.2.0, pretty-format@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" + integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From b65db7eee00b0dceed16e3f08648a2267370d542 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Oct 2022 00:52:28 +0000 Subject: [PATCH 15/20] chore(deps-dev): bump jest-environment-jsdom from 29.2.0 to 29.2.1 (#969) Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 29.2.0 to 29.2.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.2.1/packages/jest-environment-jsdom) --- updated-dependencies: - dependency-name: jest-environment-jsdom dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 82 ++++++++-------------------------------------------- 2 files changed, 13 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index 745124dc..5f4058ca 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "concurrently": "^7.4.0", "husky": "^8.0.1", "jest": "^29.2.1", - "jest-environment-jsdom": "^29.2.0", + "jest-environment-jsdom": "^29.2.1", "js-cookie": "^3.0.1", "lint-staged": "^13.0.3", "prettier": "^2.7.1", diff --git a/yarn.lock b/yarn.lock index 78559a03..9a37d3b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1487,16 +1487,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.0.tgz#7e5604e4ead098572056a962a970f3d79379fbd8" - integrity sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q== - dependencies: - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" - "@types/node" "*" - jest-mock "^29.2.0" - "@jest/environment@^29.2.1": version "29.2.1" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665" @@ -1522,18 +1512,6 @@ expect "^29.2.1" jest-snapshot "^29.2.1" -"@jest/fake-timers@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.0.tgz#e43635c1bd73b23886e80ca12307092ef2ee1929" - integrity sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw== - dependencies: - "@jest/types" "^29.2.0" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^29.2.0" - jest-mock "^29.2.0" - jest-util "^29.2.0" - "@jest/fake-timers@^29.2.1": version "29.2.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb" @@ -1717,7 +1695,7 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^29.2.0", "@jest/types@^29.2.1": +"@jest/types@^29.2.1": version "29.2.1" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== @@ -9346,18 +9324,18 @@ jest-each@^29.2.1: jest-util "^29.2.1" pretty-format "^29.2.1" -jest-environment-jsdom@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.0.tgz#a45aa6bb8737e7ab93ebb9111c7e5b1c9ae6aa51" - integrity sha512-DgHbBxC4RmHpDLFLMt00NjXXimGvtNALRyxQYOo3e6vwq1qsIDqXsEZiuEpjTg0BueENE1mx8BKFKHXArEdRQQ== +jest-environment-jsdom@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.1.tgz#5bfbbc52a74b333c7e69ff3a4f540af850a7a718" + integrity sha512-MipBdmrjgzEdQMkK7b7wBShOfv1VqO6FVwa9S43bZwKYLC4dlWnPiCgNpZX3ypNEpJO8EMpMhg4HrUkWUZXGiw== dependencies: - "@jest/environment" "^29.2.0" - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.2.0" - jest-util "^29.2.0" + jest-mock "^29.2.1" + jest-util "^29.2.1" jsdom "^20.0.0" jest-environment-node@^29.2.1: @@ -9450,21 +9428,6 @@ jest-message-util@^26.6.2: slash "^3.0.0" stack-utils "^2.0.2" -jest-message-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.0.tgz#cbd43fd9a20a8facd4267ac37556bc5c9a525ec0" - integrity sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.0" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.2.0" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-message-util@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" @@ -9480,15 +9443,6 @@ jest-message-util@^29.2.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.0.tgz#3531012881178f59f4b5fd1e243acc329d08d6a1" - integrity sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg== - dependencies: - "@jest/types" "^29.2.0" - "@types/node" "*" - jest-util "^29.2.0" - jest-mock@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775" @@ -9655,19 +9609,7 @@ jest-util@^26.6.2: is-ci "^2.0.0" micromatch "^4.0.2" -jest-util@^29.0.0, jest-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.0.tgz#797935697e83a5722aeba401ed6cd01264295566" - integrity sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw== - dependencies: - "@jest/types" "^29.2.0" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-util@^29.2.1: +jest-util@^29.0.0, jest-util@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== @@ -12625,7 +12567,7 @@ pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^29.0.0, pretty-format@^29.2.0, pretty-format@^29.2.1: +pretty-format@^29.0.0, pretty-format@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== From ec20f413efaacded14df7e55c02a9f4c1e95ba59 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 00:26:47 +0000 Subject: [PATCH 16/20] chore(deps-dev): bump @storybook/storybook-deployer (#971) Bumps [@storybook/storybook-deployer](https://github.com/storybooks/storybook-deployer) from 2.8.12 to 2.8.16. - [Release notes](https://github.com/storybooks/storybook-deployer/releases) - [Changelog](https://github.com/storybookjs/storybook-deployer/blob/master/CHANGELOG.md) - [Commits](https://github.com/storybooks/storybook-deployer/compare/v2.8.12...v2.8.16) --- updated-dependencies: - dependency-name: "@storybook/storybook-deployer" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 95 +++++++++++++++++----------------------------------- 2 files changed, 32 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index 5f4058ca..d84f8721 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "@storybook/builder-webpack5": "^6.5.12", "@storybook/manager-webpack5": "^6.5.12", "@storybook/react": "^6.5.12", - "@storybook/storybook-deployer": "^2.8.12", + "@storybook/storybook-deployer": "^2.8.16", "@storybook/theming": "^6.5.10", "@testing-library/react-hooks": "^8.0.1", "@types/jest": "^29.2.0", diff --git a/yarn.lock b/yarn.lock index 9a37d3b5..67224bfb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3160,12 +3160,12 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/storybook-deployer@^2.8.12": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@storybook/storybook-deployer/-/storybook-deployer-2.8.12.tgz#c068939509f470185b787d836f894341837c7327" - integrity sha512-1mPVG+kYLoKSTg2/cCCaY0CwS55+t7pcLEbIDx3KY+16gyFIW01UvlHdIJWRIm4d6GIGuEL1a4ChDgIJ464Ihw== +"@storybook/storybook-deployer@^2.8.16": + version "2.8.16" + resolved "https://registry.yarnpkg.com/@storybook/storybook-deployer/-/storybook-deployer-2.8.16.tgz#890abe4fd81b6fbc028dffb6314016f208aba6c2" + integrity sha512-DRQrjyLKaRLXMYo7SNUznyGabtOLJ0b9yfBKNVMu6PsUHJifGPabXuNXmRPZ6qvyhHUSKLQgeLaX8L3Og6uFUg== dependencies: - git-url-parse "^11.1.2" + git-url-parse "^12.0.0" glob "^7.1.3" parse-repo "^1.0.4" shelljs "^0.8.1" @@ -7450,11 +7450,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -7853,20 +7848,20 @@ git-raw-commits@^2.0.0: split2 "^3.0.0" through2 "^4.0.0" -git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== +git-up@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-6.0.0.tgz#dbd6e4eee270338be847a0601e6d0763c90b74db" + integrity sha512-6RUFSNd1c/D0xtGnyWN2sxza2bZtZ/EmI9448n6rCZruFwV/ezeEn2fJP7XnUQGwf0RAtd/mmUCbtH6JPYA2SA== dependencies: - is-ssh "^1.3.0" - parse-url "^6.0.0" + is-ssh "^1.4.0" + parse-url "^7.0.2" -git-url-parse@^11.1.2: - version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== +git-url-parse@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-12.0.0.tgz#4ba70bc1e99138321c57e3765aaf7428e5abb793" + integrity sha512-I6LMWsxV87vysX1WfsoglXsXg6GjQRKq7+Dgiseo+h0skmp5Hp2rzmcEIRQot9CPA+uzU7x1x7jZdqvTFGnB+Q== dependencies: - git-up "^4.0.0" + git-up "^6.0.0" github-slugger@^1.0.0: version "1.4.0" @@ -8999,7 +8994,7 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-ssh@^1.3.0: +is-ssh@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== @@ -12151,30 +12146,27 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== -parse-path@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" - integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== +parse-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-5.0.0.tgz#f933152f3c6d34f4cf36cfc3d07b138ac113649d" + integrity sha512-qOpH55/+ZJ4jUu/oLO+ifUKjFPNZGfnPJtzvGzKN/4oLMil5m9OH4VpOj6++9/ytJcfks4kzH2hhi87GL/OU9A== dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" + protocols "^2.0.0" parse-repo@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/parse-repo/-/parse-repo-1.0.4.tgz#74b91d2cb8675d11b99976a0065f6ce17fa1bcc8" integrity sha512-RdwYLh7cmxByP/BfeZX0QfIVfeNrH2fWgK1aLsGK+G6nCO4WTlCks4J7aW0O3Ap9BCPDF/e8rGTT50giQr10zg== -parse-url@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.5.tgz#4acab8982cef1846a0f8675fa686cef24b2f6f9b" - integrity sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA== +parse-url@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-7.0.2.tgz#d21232417199b8d371c6aec0cedf1406fd6393f0" + integrity sha512-PqO4Z0eCiQ08Wj6QQmrmp5YTTxpYfONdOEamrtvK63AmzXpcavIVQubGHxOEwiIoDZFb8uDOoQFS0NCcjqIYQg== dependencies: - is-ssh "^1.3.0" + is-ssh "^1.4.0" normalize-url "^6.1.0" - parse-path "^4.0.0" - protocols "^1.4.0" + parse-path "^5.0.0" + protocols "^2.0.1" parse5@^6.0.0: version "6.0.1" @@ -12671,12 +12663,7 @@ property-information@^5.0.0, property-information@^5.3.0: dependencies: xtend "^4.0.0" -protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== - -protocols@^2.0.1: +protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== @@ -12768,23 +12755,13 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -qs@^6.10.0, qs@^6.9.4: +qs@^6.10.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -14014,11 +13991,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -14153,11 +14125,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - string-argv@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" From 3d393f45feda0b95bd7ca34f73133904f95e8829 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Oct 2022 00:54:27 +0000 Subject: [PATCH 17/20] chore(deps-dev): bump @babel/core from 7.19.3 to 7.19.6 (#972) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.19.3 to 7.19.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.19.6/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 105 +++++++++++++++++++++++++++------------------------ 2 files changed, 57 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index d84f8721..53550ab1 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ } }, "devDependencies": { - "@babel/core": "^7.19.3", + "@babel/core": "^7.19.6", "@commitlint/cli": "^17.1.2", "@commitlint/config-conventional": "^17.1.0", "@commitlint/cz-commitlint": "^17.1.2", diff --git a/yarn.lock b/yarn.lock index 67224bfb..2d4f9063 100644 --- a/yarn.lock +++ b/yarn.lock @@ -64,33 +64,33 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.19.3", "@babel/core@^7.7.5": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" - integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== +"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.19.6", "@babel/core@^7.7.5": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f" + integrity sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" + "@babel/generator" "^7.19.6" "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helpers" "^7.19.4" + "@babel/parser" "^7.19.6" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.3" - "@babel/types" "^7.19.3" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.19.3", "@babel/generator@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" - integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.19.6", "@babel/generator@^7.7.2": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d" + integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA== dependencies: - "@babel/types" "^7.19.3" + "@babel/types" "^7.19.4" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -215,19 +215,19 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9", "@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9", "@babel/helper-module-transforms@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz#6c52cc3ac63b70952d33ee987cbee1c9368b533f" + integrity sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.19.4" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -274,6 +274,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-simple-access@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" + integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== + dependencies: + "@babel/types" "^7.19.4" + "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" @@ -288,10 +295,10 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-string-parser@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" - integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== "@babel/helper-validator-identifier@^7.18.6": version "7.18.6" @@ -318,14 +325,14 @@ "@babel/traverse" "^7.18.11" "@babel/types" "^7.18.10" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" - integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== +"@babel/helpers@^7.12.5", "@babel/helpers@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5" + integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw== dependencies: "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.4" + "@babel/types" "^7.19.4" "@babel/highlight@^7.18.6": version "7.18.6" @@ -336,10 +343,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" - integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8" + integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -1134,28 +1141,28 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3", "@babel/traverse@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" - integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== +"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.4", "@babel/traverse@^7.19.6", "@babel/traverse@^7.7.2": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc" + integrity sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" + "@babel/generator" "^7.19.6" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.3" - "@babel/types" "^7.19.3" + "@babel/parser" "^7.19.6" + "@babel/types" "^7.19.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" - integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== +"@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.4", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" + integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== dependencies: - "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" From a3f45ea93af1275fa4cef4806b3b05bf2ac0f79e Mon Sep 17 00:00:00 2001 From: Bart Lens Date: Sat, 22 Oct 2022 16:00:52 +0200 Subject: [PATCH 18/20] docs: add `useWindowSize` to migration guide (#973) --- src/__docs__/migrating-from-react-use.story.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/__docs__/migrating-from-react-use.story.mdx b/src/__docs__/migrating-from-react-use.story.mdx index 4b7f87eb..4971babe 100644 --- a/src/__docs__/migrating-from-react-use.story.mdx +++ b/src/__docs__/migrating-from-react-use.story.mdx @@ -163,7 +163,7 @@ Not implemented yet #### useWindowSize -Not implemented yet +Implemented as [useWindowSize](/docs/dom-usewindowsize--example) #### useMeasure From de13428df904cb8b65458a6c55479ebacd9ad428 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 22 Oct 2022 14:04:55 +0000 Subject: [PATCH 19/20] docs(contributor): contrib-readme-action has updated readme --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 18676f49..55b06705 100644 --- a/README.md +++ b/README.md @@ -254,14 +254,21 @@ Coming from `react-use`? Check out our Axel Bocciarelli + + + lensbart +
+ Bart Lens +
+ + birant
Birant İyigün
- - + punkle From e5b56a2e9a69d2e4078772bbc6c7c425f7657fbe Mon Sep 17 00:00:00 2001 From: xobotyi Date: Sat, 22 Oct 2022 21:51:15 +0200 Subject: [PATCH 20/20] fix: actualize description a bit --- src/useLocalStorageValue/__docs__/story.mdx | 15 ++++++++------- src/useSessionStorageValue/__docs__/story.mdx | 15 ++++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/useLocalStorageValue/__docs__/story.mdx b/src/useLocalStorageValue/__docs__/story.mdx index b4e5c0c3..aba7440d 100644 --- a/src/useLocalStorageValue/__docs__/story.mdx +++ b/src/useLocalStorageValue/__docs__/story.mdx @@ -18,9 +18,8 @@ Manages a single LocalStorage key. > Does not allow usage of `null` value, since JSON allows serializing `null` values - it would be > impossible to separate null value fom 'no such value' API result which is also `null`. -> While using SSR, to avoid hydration mismatch, consider setting `initializeWithValue` option -> to `false` - this will yield `undefined` state on first render and defer value fetching until effects -> are executed. +> Due to support of SSR this hook returns undefined on first render even if value is there, to avoid +> this behavior set the `initializeWithValue` option to true. #### Example @@ -60,8 +59,10 @@ function useLocalStorageValue( #### Return -0. **value** - LocalStorage value of the given `key` argument or `defaultValue`, if the key was not +Object with following properties. Note that this object changes with value while its methods are +stable between renders, thus it is safe to pass them as props. +- **value** - LocalStorage value of the given `key` argument or `defaultValue`, if the key was not present. -1. **set** - Method to set a new value for the managed `key`. -2. **remove** - Method to remove the current value of `key`. -3. **fetch** - Method to manually retrieve the value of `key`. +- **set** - Method to set a new value for the managed `key`. +- **remove** - Method to remove the current value of `key`. +- **fetch** - Method to manually retrieve the value of `key`. diff --git a/src/useSessionStorageValue/__docs__/story.mdx b/src/useSessionStorageValue/__docs__/story.mdx index a01b9940..a6475888 100644 --- a/src/useSessionStorageValue/__docs__/story.mdx +++ b/src/useSessionStorageValue/__docs__/story.mdx @@ -18,9 +18,8 @@ Manages a single SessionStorage key. > Does not allow usage of `null` value, since JSON allows serializing `null` values - it would be > impossible to separate null value fom 'no such value' API result which is also `null`. -> While using SSR, to avoid hydration mismatch, consider setting `initializeWithValue` option -> to `false` - this will yield `undefined` state on first render and defer value fetching until effects -> are executed. +> Due to support of SSR this hook returns undefined on first render even if value is there, to avoid +> this behavior set the `initializeWithValue` option to true. #### Example @@ -59,8 +58,10 @@ function useSessionStorageValue( #### Return -0. **value** - SessionStorage value of the given `key` argument or `defaultValue`, if the key was not +Object with following properties. Note that this object changes with value while its methods are +stable between renders, thus it is safe to pass them as props. +- **value** - SessionStorage value of the given `key` argument or `defaultValue`, if the key was not present. -1. **set** - Method to set a new value for the managed `key`. -2. **remove** - Method to remove the current value of `key`. -3. **fetch** - Method to manually retrieve the value of `key`. +- **set** - Method to set a new value for the managed `key`. +- **remove** - Method to remove the current value of `key`. +- **fetch** - Method to manually retrieve the value of `key`.