@@ -413,22 +405,22 @@ describe('error handling in a component', () => {
);
}
- const { getByText, getByTestId } = render(
, { wrapper: storeRef.wrapper });
+ render(
, { wrapper: storeRef.wrapper });
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- fireEvent.click(getByText('Update User'));
- expect(getByTestId('isLoading').textContent).toBe('true');
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ fireEvent.click(screen.getByText('Update User'));
+ expect(screen.getByTestId('isLoading').textContent).toBe('true');
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
// Make sure the hook and the unwrapped action return the same things in an error state
- expect(getByTestId('error').textContent).toEqual(getByTestId('manuallySetError').textContent);
-
- fireEvent.click(getByText('Update User'));
- expect(getByTestId('isLoading').textContent).toBe('true');
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('error').textContent).toBeFalsy());
- await waitFor(() => expect(getByTestId('manuallySetError').textContent).toBeFalsy());
- await waitFor(() => expect(getByTestId('data').textContent).toEqual(JSON.stringify(mockSuccessResponse)));
+ expect(screen.getByTestId('error').textContent).toEqual(screen.getByTestId('manuallySetError').textContent);
+
+ fireEvent.click(screen.getByText('Update User'));
+ expect(screen.getByTestId('isLoading').textContent).toBe('true');
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('error').textContent).toBeFalsy());
+ await waitFor(() => expect(screen.getByTestId('manuallySetError').textContent).toBeFalsy());
+ await waitFor(() => expect(screen.getByTestId('data').textContent).toEqual(JSON.stringify(mockSuccessResponse)));
});
for (const track of [true, false]) {
diff --git a/test/jest.setup.ts b/test/jest.setup.ts
index 2c799ac0..9de5b077 100644
--- a/test/jest.setup.ts
+++ b/test/jest.setup.ts
@@ -1,3 +1,4 @@
+//@ts-ignore
import { default as nodeFetch, Request } from 'node-fetch';
//@ts-ignore
global.fetch = nodeFetch;
diff --git a/test/optimisticUpdates.test.tsx b/test/optimisticUpdates.test.tsx
index e4b0c58a..48df591e 100644
--- a/test/optimisticUpdates.test.tsx
+++ b/test/optimisticUpdates.test.tsx
@@ -1,7 +1,12 @@
import { createApi } from '@rtk-incubator/rtk-query/react';
-import { renderHook, act } from '@testing-library/react-hooks';
import { actionsReducer, hookWaitFor, setupApiStore, waitMs } from './helpers';
-import { Patch } from 'immer';
+import { renderHook, act } from '@testing-library/react-hooks';
+
+interface Patch {
+ op: 'replace' | 'remove' | 'add';
+ path: (string | number)[];
+ value?: any;
+}
interface Post {
id: string;
@@ -66,7 +71,7 @@ describe('basic lifecycle', () => {
});
test('success', async () => {
- const { result } = renderHook(() => extendedApi.useTestMutation(), {
+ const { result } = renderHook(() => extendedApi.endpoints.test.useMutation(), {
wrapper: storeRef.wrapper,
});
@@ -86,7 +91,7 @@ describe('basic lifecycle', () => {
});
test('error', async () => {
- const { result } = renderHook(() => extendedApi.useTestMutation(), {
+ const { result } = renderHook(() => extendedApi.endpoints.test.useMutation(), {
wrapper: storeRef.wrapper,
});
@@ -109,8 +114,7 @@ describe('basic lifecycle', () => {
describe('updateQueryResult', () => {
test('updates cache values, can apply inverse patch', async () => {
baseQuery.mockResolvedValueOnce({ id: '3', title: 'All about cheese.', contents: 'TODO' });
-
- const { result } = renderHook(() => api.usePostQuery('3'), {
+ const { result } = renderHook(() => api.endpoints.post.useQuery('3'), {
wrapper: storeRef.wrapper,
});
await hookWaitFor(() => expect(result.current.isSuccess).toBeTruthy());
@@ -144,8 +148,7 @@ describe('updateQueryResult', () => {
test('does not update non-existing values', async () => {
baseQuery.mockResolvedValueOnce({ id: '3', title: 'All about cheese.', contents: 'TODO' });
-
- const { result } = renderHook(() => api.usePostQuery('3'), {
+ const { result } = renderHook(() => api.endpoints.post.useQuery('3'), {
wrapper: storeRef.wrapper,
});
await hookWaitFor(() => expect(result.current.isSuccess).toBeTruthy());
@@ -179,8 +182,8 @@ describe('full integration', () => {
.mockResolvedValueOnce({ id: '3', title: 'Meanwhile, this changed server-side.', contents: 'Delicious cheese!' });
const { result } = renderHook(
() => ({
- query: api.usePostQuery('3'),
- mutation: api.useUpdatePostMutation(),
+ query: api.endpoints.post.useQuery('3'),
+ mutation: api.endpoints.updatePost.useMutation(),
}),
{
wrapper: storeRef.wrapper,
@@ -213,8 +216,8 @@ describe('full integration', () => {
const { result } = renderHook(
() => ({
- query: api.usePostQuery('3'),
- mutation: api.useUpdatePostMutation(),
+ query: api.endpoints.post.useQuery('3'),
+ mutation: api.endpoints.updatePost.useMutation(),
}),
{
wrapper: storeRef.wrapper,
diff --git a/test/refetchingBehaviors.test.tsx b/test/refetchingBehaviors.test.tsx
index da6c12f7..24a7be38 100644
--- a/test/refetchingBehaviors.test.tsx
+++ b/test/refetchingBehaviors.test.tsx
@@ -1,6 +1,6 @@
import * as React from 'react';
import { createApi, setupListeners } from '@rtk-incubator/rtk-query/react';
-import { act, fireEvent, render, waitFor } from '@testing-library/react';
+import { act, fireEvent, render, waitFor, screen } from '@testing-library/react';
import { setupApiStore, waitMs } from './helpers';
import { AnyAction } from '@reduxjs/toolkit';
@@ -52,11 +52,11 @@ describe('refetchOnFocus tests', () => {
);
}
- let { getByTestId } = render(
, { wrapper: storeRef.wrapper });
+ render(
, { wrapper: storeRef.wrapper });
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
act(() => {
fireEvent.focus(window);
@@ -64,7 +64,7 @@ describe('refetchOnFocus tests', () => {
await waitMs();
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('2'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('2'));
});
test('useQuery hook respects refetchOnFocus: false from a hook and overrides createApi defaults', async () => {
@@ -83,11 +83,11 @@ describe('refetchOnFocus tests', () => {
);
}
- let { getByTestId } = render(
, { wrapper: storeRef.wrapper });
+ render(
, { wrapper: storeRef.wrapper });
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
act(() => {
fireEvent.focus(window);
@@ -95,7 +95,7 @@ describe('refetchOnFocus tests', () => {
await waitMs();
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
});
test('useQuery hook prefers refetchOnFocus: true when multiple components have different configurations', async () => {
@@ -121,7 +121,7 @@ describe('refetchOnFocus tests', () => {
return
;
}
- let { getByTestId } = render(
+ render(
@@ -129,17 +129,17 @@ describe('refetchOnFocus tests', () => {
{ wrapper: storeRef.wrapper }
);
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
act(() => {
fireEvent.focus(window);
});
- expect(getByTestId('isLoading').textContent).toBe('false');
- await waitFor(() => expect(getByTestId('isFetching').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isFetching').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('2'));
+ expect(screen.getByTestId('isLoading').textContent).toBe('false');
+ await waitFor(() => expect(screen.getByTestId('isFetching').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isFetching').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('2'));
});
});
@@ -158,20 +158,20 @@ describe('refetchOnReconnect tests', () => {
);
}
- let { getByTestId } = render(
, { wrapper: storeRef.wrapper });
+ render(
, { wrapper: storeRef.wrapper });
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
act(() => {
window.dispatchEvent(new Event('offline'));
window.dispatchEvent(new Event('online'));
});
- await waitFor(() => expect(getByTestId('isFetching').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isFetching').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('2'));
+ await waitFor(() => expect(screen.getByTestId('isFetching').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isFetching').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('2'));
});
test('useQuery hook should not refetch when refetchOnReconnect: false from a hook and overrides createApi defaults', async () => {
@@ -190,18 +190,18 @@ describe('refetchOnReconnect tests', () => {
);
}
- let { getByTestId } = render(
, { wrapper: storeRef.wrapper });
+ render(
, { wrapper: storeRef.wrapper });
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
act(() => {
window.dispatchEvent(new Event('offline'));
window.dispatchEvent(new Event('online'));
});
- expect(getByTestId('isFetching').textContent).toBe('false');
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ expect(screen.getByTestId('isFetching').textContent).toBe('false');
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
});
test('useQuery hook prefers refetchOnReconnect: true when multiple components have different configurations', async () => {
@@ -227,7 +227,7 @@ describe('refetchOnReconnect tests', () => {
return
;
}
- let { getByTestId } = render(
+ render(
@@ -235,18 +235,18 @@ describe('refetchOnReconnect tests', () => {
{ wrapper: storeRef.wrapper }
);
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
act(() => {
window.dispatchEvent(new Event('offline'));
window.dispatchEvent(new Event('online'));
});
- await waitFor(() => expect(getByTestId('isFetching').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isFetching').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('2'));
+ await waitFor(() => expect(screen.getByTestId('isFetching').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isFetching').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('2'));
});
});
@@ -286,13 +286,13 @@ describe('customListenersHandler', () => {
);
}
- let { getByTestId } = render(, { wrapper: storeRef.wrapper });
+ render(, { wrapper: storeRef.wrapper });
expect(consoleSpy).toHaveBeenCalledWith('setup!');
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isLoading').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('1'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isLoading').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('1'));
act(() => {
window.dispatchEvent(new Event('offline'));
@@ -301,9 +301,9 @@ describe('customListenersHandler', () => {
expect(dispatchSpy).toHaveBeenCalled();
expect(defaultApi.internalActions.onOnline.match(dispatchSpy.mock.calls[1][0] as AnyAction)).toBe(true);
- await waitFor(() => expect(getByTestId('isFetching').textContent).toBe('true'));
- await waitFor(() => expect(getByTestId('isFetching').textContent).toBe('false'));
- await waitFor(() => expect(getByTestId('amount').textContent).toBe('2'));
+ await waitFor(() => expect(screen.getByTestId('isFetching').textContent).toBe('true'));
+ await waitFor(() => expect(screen.getByTestId('isFetching').textContent).toBe('false'));
+ await waitFor(() => expect(screen.getByTestId('amount').textContent).toBe('2'));
unsubscribe();
expect(consoleSpy).toHaveBeenCalledWith('cleanup!');
diff --git a/test/tsconfig.json b/test/tsconfig.json
index 4710d146..70a84307 100644
--- a/test/tsconfig.json
+++ b/test/tsconfig.json
@@ -9,9 +9,10 @@
"target": "es2018",
"jsx": "react",
"baseUrl": ".",
+ "skipLibCheck": true,
"paths": {
"@rtk-incubator/rtk-query": ["../src"],
- "@rtk-incubator/rtk-query/react": ["../src/react"],
+ "@rtk-incubator/rtk-query/*": ["../src/*"],
"@internal/*": ["../src/*"]
}
}
diff --git a/test/unionTypes.test.ts b/test/unionTypes.test.ts
index dadb1565..deaad6a4 100644
--- a/test/unionTypes.test.ts
+++ b/test/unionTypes.test.ts
@@ -110,7 +110,7 @@ describe.skip('TS only tests', () => {
expectType(result);
}
});
-
+ // pre41-remove-start
test('useQuery TS4.1 union', () => {
const result = api.useTestQuery();
@@ -167,6 +167,7 @@ describe.skip('TS only tests', () => {
expectType(result);
}
});
+ // pre41-remove-end
test('useLazyQuery union', () => {
const [_trigger, result] = api.endpoints.test.useLazyQuery();
@@ -225,6 +226,7 @@ describe.skip('TS only tests', () => {
}
});
+ // pre41-remove-start
test('useLazyQuery TS4.1 union', () => {
const [_trigger, result] = api.useLazyTestQuery();
@@ -281,6 +283,7 @@ describe.skip('TS only tests', () => {
expectType(result);
}
});
+ // pre41-remove-end
test('queryHookResult (without selector) union', () => {
const useQueryStateResult = api.endpoints.test.useQueryState();
@@ -357,6 +360,7 @@ describe.skip('TS only tests', () => {
}
});
+ // pre41-remove-start
test('useMutation TS4.1 union', () => {
const [_trigger, result] = api.useMutationMutation();
@@ -400,4 +404,5 @@ describe.skip('TS only tests', () => {
expectType(result);
}
});
+ // pre41-remove-end
});
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 871bd662..7c5d36f0 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -109,7 +109,7 @@ module.exports = {
extractorSettings: {
tsconfig: resolve(__dirname, '../docs/tsconfig.json'),
basedir: resolve(__dirname, '../src'),
- rootFiles: ['index.ts'],
+ rootFiles: ['index.ts', 'react-hooks/ApiProvider.tsx'],
},
},
],
diff --git a/website/package.json b/website/package.json
index afa4f88c..8e4a44a1 100644
--- a/website/package.json
+++ b/website/package.json
@@ -18,7 +18,7 @@
"clsx": "^1.1.1",
"react": "^16.8.4",
"react-dom": "^16.8.4",
- "remark-typescript-tools": "^1.0.3",
+ "remark-typescript-tools": "^1.0.4",
"typescript": "^4.0.5"
},
"browserslist": {
diff --git a/website/yarn.lock b/website/yarn.lock
index ec35c5fc..19ca4f62 100644
--- a/website/yarn.lock
+++ b/website/yarn.lock
@@ -8418,10 +8418,10 @@ remark-squeeze-paragraphs@4.0.0:
dependencies:
mdast-squeeze-paragraphs "^4.0.0"
-remark-typescript-tools@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/remark-typescript-tools/-/remark-typescript-tools-1.0.3.tgz#7d1f3fd7c09a394e45ae89f6a8866ec6506d596a"
- integrity sha512-qpugQhArrY4LhHhZThVq6krjJL9kuq/VPANUPK6EoyOIxN1oMPivBE1sdpsO0EU+AjSjUH8wFSTrKwYQ14Eufw==
+remark-typescript-tools@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/remark-typescript-tools/-/remark-typescript-tools-1.0.4.tgz#387ea0beab3502e59a1c70b1579f48e432b8c66d"
+ integrity sha512-bRDtrMve5riKqhz8hHE3ha/lmA72SVfml/R2ueF9MfJFnsluKwmt6pUORipnx6h3BGzFV55nPOW+vqEnT3FRww==
dependencies:
"@microsoft/tsdoc" "^0.12.21"
prettier "^2.1.1"
@@ -9651,9 +9651,9 @@ unist-util-generated@^1.0.0:
integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==
unist-util-is@^4.0.0:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50"
- integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797"
+ integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==
unist-util-position@^3.0.0:
version "3.1.0"
diff --git a/yarn.lock b/yarn.lock
index 3640bf04..06e54f94 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1421,10 +1421,18 @@
dependencies:
"@types/istanbul-lib-report" "*"
-"@types/jest@^25.2.1", "@types/jest@^26.0.15", "@types/jest@^26.0.22":
- version "26.0.22"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.22.tgz#8308a1debdf1b807aa47be2838acdcd91e88fbe6"
- integrity sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw==
+"@types/jest@26.0.15", "@types/jest@^25.2.1":
+ version "26.0.15"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.15.tgz#12e02c0372ad0548e07b9f4e19132b834cb1effe"
+ integrity sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==
+ dependencies:
+ jest-diff "^26.0.0"
+ pretty-format "^26.0.0"
+
+"@types/jest@^26.0.21":
+ version "26.0.21"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.21.tgz#3a73c2731e7e4f0fbaea56ce7ff8c79cf812bd24"
+ integrity sha512-ab9TyM/69yg7eew9eOwKMUmvIZAKEGZYlq/dhe5/0IMUd/QLJv5ldRMdddSn+u22N13FP3s5jYyktxuBwY0kDA==
dependencies:
jest-diff "^26.0.0"
pretty-format "^26.0.0"
@@ -1444,14 +1452,6 @@
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
-"@types/node-fetch@^2.5.9":
- version "2.5.9"
- resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.9.tgz#c04a12115aa436f189e39579272b305e477621b4"
- integrity sha512-6cUyqLK+JBsATAqNQqk10jURoBFrzfRCDh4kaYxg8ivKhRPIpyBgAvuY7zM/3E4AwsYJSh5HCHBCJRM4DsCTaQ==
- dependencies:
- "@types/node" "*"
- form-data "^3.0.0"
-
"@types/node@*":
version "14.14.37"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e"
@@ -1482,6 +1482,13 @@
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24"
integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==
+"@types/react-dom@^17.0.2":
+ version "17.0.2"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.2.tgz#35654cf6c49ae162d5bc90843d5437dc38008d43"
+ integrity sha512-Icd9KEgdnFfJs39KyRyr0jQ7EKhq8U6CcHRMGAS45fp5qgUvxL3ujUCfWFttUK2UErqZNj97t9gsVPNAqcwoCg==
+ dependencies:
+ "@types/react" "*"
+
"@types/react-redux@^7.1.16", "@types/react-redux@^7.1.9":
version "7.1.16"
resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.16.tgz#0fbd04c2500c12105494c83d4a3e45c084e3cb21"
@@ -2856,7 +2863,7 @@ colorette@^1.2.1, colorette@^1.2.2:
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
-combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
+combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -3039,9 +3046,9 @@ create-require@^1.1.0:
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
cross-fetch@^3.1.3-alpha.6:
- version "3.1.3-alpha.6"
- resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.3-alpha.6.tgz#55c565bf00b2d3b0457754a7c76bab34c1466b7a"
- integrity sha512-0ite+zahD3S235L7PnAeBQ4/gR0g8XmMMzRIk5js4EhCKB2uJPgSen3xrxdQh9Qu1lWMyWBFmF1LKinBUSc4+w==
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39"
+ integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==
dependencies:
node-fetch "2.6.1"
@@ -4201,15 +4208,6 @@ forever-agent@~0.6.1:
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-form-data@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
- integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.8"
- mime-types "^2.1.12"
-
form-data@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
@@ -4647,16 +4645,16 @@ ignore@^5.1.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
-immer@>=8.0.0:
- version "9.0.1"
- resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.1.tgz#1116368e051f9a0fd188c5136b6efb74ed69c57f"
- integrity sha512-7CCw1DSgr8kKYXTYOI1qMM/f5qxT5vIVMeGLDCDX8CSxsggr1Sjdoha4OhsP0AZ1UvWbyZlILHvLjaynuu02Mg==
-
immer@^8.0.0, immer@^8.0.1:
version "8.0.4"
resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.4.tgz#3a21605a4e2dded852fb2afd208ad50969737b7a"
integrity sha512-jMfL18P+/6P6epANRvRk6q8t+3gGhqsJ9EuJ25AXE+9bNTYtssvzeYbEd0mXRYWCmmXSIbnlpz6vd6iJlmGGGQ==
+immer@^8.0.3:
+ version "8.0.3"
+ resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.3.tgz#26b360596e091eb26370d15db86bad3d5eb73972"
+ integrity sha512-UqLcFkrCZPmb0Lgs+TcaSa/mCAWrL7EcGB+7dHq7RzLkVQCevaRPL9+DZZ/bInuRAkamBoNKkG/OMIW91QFxOQ==
+
import-fresh@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"