diff --git a/docs/api-reference/cli.md b/docs/api-reference/cli.md index 20b36920d7bf..29e6aa8ea15c 100644 --- a/docs/api-reference/cli.md +++ b/docs/api-reference/cli.md @@ -39,6 +39,8 @@ NODE_OPTIONS='-r esm' next NODE_OPTIONS='--inspect' next ``` +> Note: Running `next` without a command is the same as running `next dev` + ## Build `next build` creates an optimized production build of your application. The output displays information about each route. diff --git a/docs/api-reference/next/image.md b/docs/api-reference/next/image.md index 9f6db8cd9282..dedee45bfb57 100644 --- a/docs/api-reference/next/image.md +++ b/docs/api-reference/next/image.md @@ -50,9 +50,9 @@ When using an external URL, you must add it to The `width` property can represent either the _rendered_ width or _original_ width in pixels, depending on the [`layout`](#layout) and [`sizes`](#sizes) properties. -When using `layout="intrinsic"`, `layout="fixed"`, or `layout="raw"` without `sizes`, the `width` property represents the _rendered_ width in pixels, so it will affect how large the image appears. +When using `layout="intrinsic"`, `layout="fixed"`, or `layout="raw"`, the `width` property represents the _rendered_ width in pixels, so it will affect how large the image appears. -When using `layout="responsive"`, `layout="fill"`, or `layout="raw"` with `sizes`, the `width` property represents the _original_ width in pixels, so it will only affect the aspect ratio. +When using `layout="responsive"`, `layout="fill"`, the `width` property represents the _original_ width in pixels, so it will only affect the aspect ratio. The `width` property is required, except for [statically imported images](#local-images), or those with `layout="fill"`. @@ -60,9 +60,9 @@ The `width` property is required, except for [statically imported images](#local The `height` property can represent either the _rendered_ height or _original_ height in pixels, depending on the [`layout`](#layout) and [`sizes`](#sizes) properties. -When using `layout="intrinsic"`, `layout="fixed"`, or `layout="raw"` without `sizes`, the `height` property represents the _rendered_ height in pixels, so it will affect how large the image appears. +When using `layout="intrinsic"`, `layout="fixed"`, or `layout="raw"`, the `height` property represents the _rendered_ height in pixels, so it will affect how large the image appears. -When using `layout="responsive"`, `layout="fill"`, or `layout="raw"` with `sizes`, the `height` property represents the _original_ height in pixels, so it will only affect the aspect ratio. +When using `layout="responsive"`, `layout="fill"`, the `height` property represents the _original_ height in pixels, so it will only affect the aspect ratio. The `height` property is required, except for [statically imported images](#local-images), or those with `layout="fill"`. @@ -94,8 +94,7 @@ The layout behavior of the image as the viewport changes size. - This is usually paired with the [`objectFit`](#objectFit) property. - Ensure the parent element has `position: relative` in their stylesheet. - When `raw`[\*](#experimental-raw-layout-mode), the image will be rendered as a single image element with no wrappers, sizers or other responsive behavior. - - If your image styling will change the size of a `raw` image, you should include the `sizes` property for proper image serving. Otherwise your image will receive a fixed height and width. - - The other layout modes are optimized for performance and should cover nearly all use cases. It is recommended to try to use those modes before using `raw`. + - If your image styling will change the size of a `raw` image, you should include the `sizes` property for proper image serving. Otherwise your image will be requested as though it has fixed width and height. - [Demo background image](https://image-component.nextjs.gallery/background) ### loader @@ -181,6 +180,8 @@ Allows [passing CSS styles](https://reactjs.org/docs/dom-elements.html#style) to Note that all `layout` modes other than `"raw"`[\*](#experimental-raw-layout-mode) apply their own styles to the image element, and these automatic styles take precedence over the `style` prop. +Also keep in mind that the required `width` and `height` props can interact with your styling. If you use styling to modify an image's `width`, you must set the `height="auto"` style as well, or your image will be distorted. + ### objectFit Defines how the image will fit into its parent container when using `layout="fill"`. @@ -493,10 +494,6 @@ module.exports = { } ``` -> Note on CLS with `layout="raw"`: -> It is possible to cause [layout shift](https://web.dev/cls/) with the image component in `raw` mode. If you include a `sizes` property, the image component will not pass `height` and `width` attributes to the image, to allow you to apply your own responsive sizing. -> An [aspect-ratio](https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio) style property is automatically applied to prevent layout shift, but this won't apply on [older browsers](https://caniuse.com/mdn-css_properties_aspect-ratio). - ### Animated Images The default [loader](#loader) will automatically bypass Image Optimization for animated images and serve the image as-is. diff --git a/docs/basic-features/data-fetching/get-server-side-props.md b/docs/basic-features/data-fetching/get-server-side-props.md index de9bda3cd84d..2470a8e23647 100644 --- a/docs/basic-features/data-fetching/get-server-side-props.md +++ b/docs/basic-features/data-fetching/get-server-side-props.md @@ -74,6 +74,32 @@ export async function getServerSideProps() { export default Page ``` +## Caching with Server-Side Rendering (SSR) + +You can use caching headers (`Cache-Control`) inside `getServerSideProps` to cache dynamic responses. For example, using [`stale-while-revalidate`](https://web.dev/stale-while-revalidate/). + +```jsx +// This value is considered fresh for ten seconds (s-maxage=10). +// If a request is repeated within the next 10 seconds, the previously +// cached value will still be fresh. If the request is repeated before 59 seconds, +// the cached value will be stale but still render (stale-while-revalidate=59). +// +// In the background, a revalidation request will be made to populate the cache +// with a fresh value. If you refresh the page, you will see the new value. +export async function getServerSideProps({ req, res }) { + res.setHeader( + 'Cache-Control', + 'public, s-maxage=10, stale-while-revalidate=59' + ) + + return { + props: {}, + } +} +``` + +Learn more about [caching](/docs/going-to-production.md). + ## Does getServerSideProps render an error page If an error is thrown inside `getServerSideProps`, it will show the `pages/500.js` file. Check out the documentation for [500 page](/docs/advanced-features/custom-error-page#500-page) to learn more on how to create it. During development this file will not be used and the dev overlay will be shown instead. diff --git a/docs/basic-features/data-fetching/incremental-static-regeneration.md b/docs/basic-features/data-fetching/incremental-static-regeneration.md index fa0a1b350e8d..85478a77556a 100644 --- a/docs/basic-features/data-fetching/incremental-static-regeneration.md +++ b/docs/basic-features/data-fetching/incremental-static-regeneration.md @@ -171,6 +171,29 @@ export async function getStaticProps() { } ``` +## Self-hosting ISR + +Incremental Static Regeneration (ISR) works on [self-hosted Next.js sites](/docs/deployment.md#self-hosting) out of the box when you use `next start`. + +You can use this approach when deploying to container orchestrators such as [Kubernetes](https://kubernetes.io/) or [HashiCorp Nomad](https://www.nomadproject.io/). By default, generated assets will be stored in-memory on each pod. This means that each pod will have its own copy of the static files. Stale data may be shown until that specific pod is hit by a request. + +To ensure consistency across all pods, you can disable in-memory caching. This will inform the Next.js server to only leverage assets generated by ISR in the file system. + +You can use a shared network mount in your Kubernetes pods (or similar setup) to reuse the same file-system cache between different containers. By sharing the same mount, the `.next` folder which contains the `next/image` cache will also be shared and re-used. + +To disable in-memory caching, set `isrMemoryCacheSize` to `0` in your `next.config.js` file: + +```js +module.exports = { + experimental: { + // Defaults to 50MB + isrMemoryCacheSize: 0, + }, +} +``` + +> **Note:** You might need to consider a race condition between multiple pods trying to update the cache at the same time, depending on how your shared mount is configured. + ## Related For more information on what to do next, we recommend the following sections: diff --git a/docs/basic-features/font-optimization.md b/docs/basic-features/font-optimization.md index 217267338e5a..bcd1498072fa 100644 --- a/docs/basic-features/font-optimization.md +++ b/docs/basic-features/font-optimization.md @@ -16,6 +16,7 @@ By default, Next.js will automatically inline font CSS at build time, eliminatin /> // After + diff --git a/docs/basic-features/script.md b/docs/basic-features/script.md index ac6999a654dd..cb3905ce4800 100644 --- a/docs/basic-features/script.md +++ b/docs/basic-features/script.md @@ -243,10 +243,7 @@ Or by using the `dangerouslySetInnerHTML` property: /> ``` -There are two limitations to be aware of when using the Script component for inline scripts: - -- Only the `afterInteractive` and `lazyOnload` strategies can be used. The `beforeInteractive` loading strategy injects the contents of an external script into the initial HTML response. Inline scripts already do this, which is why **the `beforeInteractive` strategy cannot be used with inline scripts.** -- An `id` attribute must be defined in order for Next.js to track and optimize the script +The `id` property is required for **inline scripts** in order for Next.js to track and optimize the script. ### Executing Code After Loading (`onLoad`) diff --git a/errors/invalid-script.md b/errors/invalid-script.md new file mode 100644 index 000000000000..f919a25a0087 --- /dev/null +++ b/errors/invalid-script.md @@ -0,0 +1,38 @@ +# Invalid Script + +#### Why This Error Occurred + +Somewhere in your application, you are using the `next/script` component without including an inline script or `src` attribute. + +#### Possible Ways to Fix It + +Look for any usage of the `next/script` component and make sure that `src` is provided or an inline script is used. + +**Compatible `src` attribute** + +```jsx + +``` + +**Compatible inline script with `dangerouslySetInnerHtml`** + +```jsx +` + ) + + try { + browser = await webdriver(next.url, '/') + + const predefinedWorkerScripts = await browser.eval( + `document.querySelectorAll('script[type="text/partytown"]').length` + ) + expect(predefinedWorkerScripts).toEqual(1) + + await waitFor(1000) + + // Partytown modifes type to "text/partytown-x" after it has been executed in the web worker + const processedWorkerScripts = await browser.eval( + `document.querySelectorAll('script[type="text/partytown-x"]').length` + ) + expect(processedWorkerScripts).toEqual(1) + + const text = await browser.elementById('text').text() + expect(text).toBe('abc') + } finally { + if (browser) await browser.close() + await next.destroy() + } + }) + + it('Inline worker script through dangerouslySetInnerHtml is modified by Partytown to execute on a worker thread', async () => { + let next: NextInstance + let browser: BrowserInterface + + next = await createNextApp( + ` +
diff --git a/test/integration/script-loader/test/index.test.js b/test/integration/script-loader/test/index.test.js index 44355c135bb9..d5f08f76a482 100644 --- a/test/integration/script-loader/test/index.test.js +++ b/test/integration/script-loader/test/index.test.js @@ -190,6 +190,19 @@ describe('Next.js Script - Primary Strategies', () => { } }) + it('priority beforeInteractive with inline script', async () => { + const html = await renderViaHTTP(appPort, '/page5') + const $ = cheerio.load(html) + + const script = $('#inline-before') + expect(script.length).toBe(1) + + // Script is inserted before CSS + expect( + $(`#inline-before ~ link[href^="/_next/static/css"]`).length + ).toBeGreaterThan(0) + }) + it('Does not duplicate inline scripts', async () => { let browser try { diff --git a/test/integration/telemetry/test/index.test.js b/test/integration/telemetry/test/index.test.js index b210f3a1cfad..fbd4fa1a6732 100644 --- a/test/integration/telemetry/test/index.test.js +++ b/test/integration/telemetry/test/index.test.js @@ -98,6 +98,25 @@ describe('Telemetry CLI', () => { expect(stderr2).toMatch(/isSrcDir.*?true/) }) + it('emits event when swc fails to load', async () => { + await fs.remove(path.join(appDir, '.next')) + const { stderr } = await runNextCommand(['build', appDir], { + stderr: true, + env: { + // block swc from loading + NODE_OPTIONS: '--no-addons', + NEXT_TELEMETRY_DEBUG: 1, + }, + }) + expect(stderr).toMatch(/NEXT_SWC_LOAD_FAILURE/) + expect(stderr).toContain( + `"nextVersion": "${require('next/package.json').version}"` + ) + expect(stderr).toContain(`"arch": "${process.arch}"`) + expect(stderr).toContain(`"platform": "${process.platform}"`) + expect(stderr).toContain(`"nodeVersion": "${process.versions.node}"`) + }) + it('logs completed `next build` with warnings', async () => { await fs.rename( path.join(appDir, 'pages', 'warning.skip'), diff --git a/test/lib/create-next-install.js b/test/lib/create-next-install.js index bb3abf8bb49e..04aaf6e70b6d 100644 --- a/test/lib/create-next-install.js +++ b/test/lib/create-next-install.js @@ -9,7 +9,8 @@ const { linkPackages } = async function createNextInstall( dependencies, installCommand, - packageJson = {} + packageJson = {}, + packageLockPath = '' ) { const tmpDir = await fs.realpath(process.env.NEXT_TEST_DIR || os.tmpdir()) const origRepoDir = path.join(__dirname, '../../') @@ -49,14 +50,18 @@ async function createNextInstall( }) } - const pkgPaths = await linkPackages(tmpRepoDir) - const combinedDependencies = { - ...Object.keys(dependencies).reduce((prev, pkg) => { - const pkgPath = pkgPaths.get(pkg) - prev[pkg] = pkgPath || dependencies[pkg] - return prev - }, {}), - next: pkgPaths.get('next'), + let combinedDependencies = dependencies + + if (!(packageJson && packageJson.nextPrivateSkipLocalDeps)) { + const pkgPaths = await linkPackages(tmpRepoDir) + combinedDependencies = { + ...Object.keys(dependencies).reduce((prev, pkg) => { + const pkgPath = pkgPaths.get(pkg) + prev[pkg] = pkgPath || dependencies[pkg] + return prev + }, {}), + next: pkgPaths.get('next'), + } } await fs.ensureDir(installDir) @@ -73,6 +78,13 @@ async function createNextInstall( ) ) + if (packageLockPath) { + await fs.copy( + packageLockPath, + path.join(installDir, path.basename(packageLockPath)) + ) + } + if (installCommand) { const installString = typeof installCommand === 'function' diff --git a/test/lib/e2e-utils.ts b/test/lib/e2e-utils.ts index d87d5138b97a..50dda869f45c 100644 --- a/test/lib/e2e-utils.ts +++ b/test/lib/e2e-utils.ts @@ -119,6 +119,7 @@ export async function createNext(opts: { buildCommand?: string packageJson?: PackageJson startCommand?: string + packageLockPath?: string }): Promise { try { if (nextInstance) { @@ -149,7 +150,7 @@ export async function createNext(opts: { } catch (err) { require('console').error('Failed to create next instance', err) try { - await nextInstance.destroy() + nextInstance.destroy() } catch (_) {} process.exit(1) } diff --git a/test/lib/next-modes/base.ts b/test/lib/next-modes/base.ts index ec0f2bce6753..16338e57a2d5 100644 --- a/test/lib/next-modes/base.ts +++ b/test/lib/next-modes/base.ts @@ -32,6 +32,7 @@ export class NextInstance { protected _url: string protected _parsedUrl: URL protected packageJson: PackageJson + protected packageLockPath?: string protected basePath?: string constructor({ @@ -42,6 +43,7 @@ export class NextInstance { buildCommand, startCommand, packageJson = {}, + packageLockPath, }: { files: { [filename: string]: string | FileRef @@ -50,6 +52,7 @@ export class NextInstance { [name: string]: string } packageJson?: PackageJson + packageLockPath?: string nextConfig?: NextConfig installCommand?: InstallCommand buildCommand?: string @@ -62,6 +65,7 @@ export class NextInstance { this.buildCommand = buildCommand this.startCommand = startCommand this.packageJson = packageJson + this.packageLockPath = packageLockPath this.events = {} this.isDestroyed = false this.isStopping = false @@ -131,7 +135,8 @@ export class NextInstance { this.testDir = await createNextInstall( finalDependencies, this.installCommand, - this.packageJson + this.packageJson, + this.packageLockPath ) } console.log('created next.js install, writing test files') diff --git a/test/production/dependencies-can-use-env-vars-in-middlewares/index.test.ts b/test/production/dependencies-can-use-env-vars-in-middlewares/index.test.ts index 356aa4174b34..cd6b3b926e0f 100644 --- a/test/production/dependencies-can-use-env-vars-in-middlewares/index.test.ts +++ b/test/production/dependencies-can-use-env-vars-in-middlewares/index.test.ts @@ -40,12 +40,18 @@ describe('dependencies can use env vars in middlewares', () => { }) } `, + // make sure invalid package-lock doesn't error + 'package-lock.json': '{}', }, dependencies: {}, }) }) afterAll(() => next.destroy()) + it('does not error from patching lockfile', () => { + expect(next.cliOutput).not.toContain('patch-incorrect-lockfile') + }) + it('parses the env vars correctly', async () => { const testDir = next.testDir const manifestPath = path.join( diff --git a/test/production/react-18-streaming-ssr/index.test.ts b/test/production/react-18-streaming-ssr/index.test.ts index 1e303261ef42..13020e711179 100644 --- a/test/production/react-18-streaming-ssr/index.test.ts +++ b/test/production/react-18-streaming-ssr/index.test.ts @@ -41,8 +41,8 @@ describe('react 18 streaming SSR in minimal mode', () => { }, }, dependencies: { - react: '18.0.0', - 'react-dom': '18.0.0', + react: '18.1.0', + 'react-dom': '18.1.0', }, }) }) @@ -116,8 +116,8 @@ describe('react 18 streaming SSR with custom next configs', () => { }, }, dependencies: { - react: '18.0.0', - 'react-dom': '18.0.0', + react: '18.1.0', + 'react-dom': '18.1.0', }, installCommand: 'npm install', }) diff --git a/test/production/required-server-files.test.ts b/test/production/required-server-files.test.ts index dd557db3a8e9..1b105c739546 100644 --- a/test/production/required-server-files.test.ts +++ b/test/production/required-server-files.test.ts @@ -804,6 +804,86 @@ describe('should set-up next', () => { expect(props.params).toEqual({}) }) + it('should normalize optional revalidations correctly for SSG page', async () => { + const reqs = [ + { + path: `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + headers: { + 'x-matched-path': `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + }, + }, + { + path: `/_next/data/${next.buildId}/optional-ssg.json`, + headers: { + 'x-matched-path': `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + }, + }, + { + path: `/_next/data/${next.buildId}/optional-ssg.json`, + headers: { + 'x-matched-path': `/_next/data/${next.buildId}/optional-ssg.json`, + }, + }, + { + path: `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + headers: { + 'x-matched-path': `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + }, + query: { rest: '' }, + }, + { + path: `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + headers: { + 'x-matched-path': `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + 'x-now-route-matches': '1=', + }, + }, + { + path: `/_next/data/${next.buildId}/optional-ssg/.json`, + headers: { + 'x-matched-path': `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + 'x-now-route-matches': '', + 'x-vercel-id': 'cle1::', + }, + }, + { + path: `/optional-ssg/[[...rest]]`, + headers: { + 'x-matched-path': `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + 'x-now-route-matches': '', + 'x-vercel-id': 'cle1::', + }, + }, + { + path: `/_next/data/${next.buildId}/optional-ssg/[[...rest]].json`, + headers: { + 'x-matched-path': `/optional-ssg/[[...rest]]`, + 'x-now-route-matches': '', + 'x-vercel-id': 'cle1::', + }, + }, + ] + + for (const req of reqs) { + console.error('checking', req) + const res = await fetchViaHTTP(appPort, req.path, req.query, { + headers: req.headers, + }) + + const content = await res.text() + let props + + try { + const data = JSON.parse(content) + props = data.pageProps + } catch (_) { + props = JSON.parse(cheerio.load(content)('#__NEXT_DATA__').text()).props + .pageProps + } + expect(props.params).toEqual({}) + } + }) + it('should normalize optional values correctly for SSG page with encoded slash', async () => { const res = await fetchViaHTTP( appPort, diff --git a/test/unit/eslint-plugin-next/link-passhref.test.ts b/test/unit/eslint-plugin-next/link-passhref.test.ts deleted file mode 100644 index 6b8f3668edf0..000000000000 --- a/test/unit/eslint-plugin-next/link-passhref.test.ts +++ /dev/null @@ -1,109 +0,0 @@ -import rule from '@next/eslint-plugin-next/lib/rules/link-passhref' -import { RuleTester } from 'eslint' -;(RuleTester as any).setDefaultConfig({ - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - modules: true, - jsx: true, - }, - }, -}) -const ruleTester = new RuleTester() - -ruleTester.run('link-passhref', rule, { - valid: [ - ` - import Link from 'next/link' - export const Home = () => ( - - )`, - - ` - import Link from 'next/link' - export const Home = () => ( - - Test - - )`, - - ` - import Link from 'next/link' - export const Home = () => ( - - Test - - )`, - - `const Link = () =>
Fake Link
- - const Home = () => ( - - - - )`, - - ` - import NextLink from 'next/link' - export const Home = () => ( - - Test - - )`, - ], - - invalid: [ - { - code: ` - import Link from 'next/link' - - export const Home = () => ( - - Test - - )`, - errors: [ - { - message: - 'passHref is missing. See: https://nextjs.org/docs/messages/link-passhref', - type: 'JSXOpeningElement', - }, - ], - }, - { - code: ` - import NextLink from 'next/link' - - export const Home = () => ( - - Test - - )`, - errors: [ - { - message: - 'passHref is missing. See: https://nextjs.org/docs/messages/link-passhref', - type: 'JSXOpeningElement', - }, - ], - }, - { - code: ` - import Link from 'next/link' - - export const Home = () => ( - - Test - - )`, - errors: [ - { - message: - 'passHref must be set to true. See: https://nextjs.org/docs/messages/link-passhref', - type: 'JSXOpeningElement', - }, - ], - }, - ], -}) diff --git a/test/unit/find-page-file.test.ts b/test/unit/find-page-file.test.ts index 7520c03f2532..67473c7bdb8c 100644 --- a/test/unit/find-page-file.test.ts +++ b/test/unit/find-page-file.test.ts @@ -1,6 +1,6 @@ /* eslint-env jest */ import { findPageFile } from 'next/dist/server/lib/find-page-file' -import { normalizePagePath } from 'next/dist/server/normalize-page-path' +import { normalizePagePath } from 'next/dist/shared/lib/page-path/normalize-page-path' import { join } from 'path' diff --git a/test/unit/isolated/require-page.test.ts b/test/unit/isolated/require-page.test.ts index 33c8ba1fb1b7..9bb314c25dc6 100644 --- a/test/unit/isolated/require-page.test.ts +++ b/test/unit/isolated/require-page.test.ts @@ -1,8 +1,8 @@ /* eslint-env jest */ import { join } from 'path' -import { normalizePagePath } from 'next/dist/server/normalize-page-path' import { SERVER_DIRECTORY, CLIENT_STATIC_FILES_PATH } from 'next/constants' +import { normalizePagePath } from 'next/dist/shared/lib/page-path/normalize-page-path' import { requirePage, getPagePath, diff --git a/yarn.lock b/yarn.lock index dcb894cf89a8..f09f0c2999a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4492,10 +4492,10 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rushstack/eslint-patch@1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz#be3e914e84eacf16dbebd311c0d0b44aa1174c64" - integrity sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw== +"@rushstack/eslint-patch@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz#6801033be7ff87a6b7cadaf5b337c9f366a3c4b0" + integrity sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw== "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" @@ -5389,12 +5389,6 @@ version "1.1.1" resolved "https://registry.yarnpkg.com/@types/string-hash/-/string-hash-1.1.1.tgz#4c336e61d1e13ce2d3efaaa5910005fd080e106b" -"@types/styled-jsx@2.2.8": - version "2.2.8" - resolved "https://registry.yarnpkg.com/@types/styled-jsx/-/styled-jsx-2.2.8.tgz#b50d13d8a3c34036282d65194554cf186bab7234" - dependencies: - "@types/react" "*" - "@types/tar@4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/tar/-/tar-4.0.3.tgz#e2cce0b8ff4f285293243f5971bd7199176ac489" @@ -5534,14 +5528,14 @@ "@typescript-eslint/typescript-estree" "4.29.1" debug "^4.3.1" -"@typescript-eslint/parser@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.19.0.tgz#05e587c1492868929b931afa0cb5579b0f728e75" - integrity sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ== +"@typescript-eslint/parser@^5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.21.0.tgz#6cb72673dbf3e1905b9c432175a3c86cdaf2071f" + integrity sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg== dependencies: - "@typescript-eslint/scope-manager" "5.19.0" - "@typescript-eslint/types" "5.19.0" - "@typescript-eslint/typescript-estree" "5.19.0" + "@typescript-eslint/scope-manager" "5.21.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/typescript-estree" "5.21.0" debug "^4.3.2" "@typescript-eslint/scope-manager@4.22.0": @@ -5560,13 +5554,13 @@ "@typescript-eslint/types" "4.29.1" "@typescript-eslint/visitor-keys" "4.29.1" -"@typescript-eslint/scope-manager@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz#97e59b0bcbcb54dbcdfba96fc103b9020bbe9cb4" - integrity sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g== +"@typescript-eslint/scope-manager@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz#a4b7ed1618f09f95e3d17d1c0ff7a341dac7862e" + integrity sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ== dependencies: - "@typescript-eslint/types" "5.19.0" - "@typescript-eslint/visitor-keys" "5.19.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/visitor-keys" "5.21.0" "@typescript-eslint/types@4.22.0": version "4.22.0" @@ -5578,10 +5572,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.1.tgz#94cce6cf7cc83451df03339cda99d326be2feaf5" integrity sha512-Jj2yu78IRfw4nlaLtKjVaGaxh/6FhofmQ/j8v3NXmAiKafbIqtAPnKYrf0sbGjKdj0hS316J8WhnGnErbJ4RCA== -"@typescript-eslint/types@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.19.0.tgz#12d3d600d754259da771806ee8b2c842d3be8d12" - integrity sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w== +"@typescript-eslint/types@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.21.0.tgz#8cdb9253c0dfce3f2ab655b9d36c03f72e684017" + integrity sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA== "@typescript-eslint/typescript-estree@4.22.0": version "4.22.0" @@ -5609,13 +5603,13 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz#fc987b8f62883f9ea6a5b488bdbcd20d33c0025f" - integrity sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw== +"@typescript-eslint/typescript-estree@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz#9f0c233e28be2540eaed3df050f0d54fb5aa52de" + integrity sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg== dependencies: - "@typescript-eslint/types" "5.19.0" - "@typescript-eslint/visitor-keys" "5.19.0" + "@typescript-eslint/types" "5.21.0" + "@typescript-eslint/visitor-keys" "5.21.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" @@ -5638,12 +5632,12 @@ "@typescript-eslint/types" "4.29.1" eslint-visitor-keys "^2.0.0" -"@typescript-eslint/visitor-keys@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz#c84ebc7f6c744707a361ca5ec7f7f64cd85b8af6" - integrity sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ== +"@typescript-eslint/visitor-keys@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz#453fb3662409abaf2f8b1f65d515699c888dd8ae" + integrity sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA== dependencies: - "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/types" "5.21.0" eslint-visitor-keys "^3.0.0" "@typescript/lib-dom@npm:@types/web": @@ -8894,6 +8888,13 @@ debug@^4.3.2: dependencies: ms "2.1.2" +debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@~0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/debug/-/debug-0.8.1.tgz#20ff4d26f5e422cb68a1bacbbb61039ad8c1c130" @@ -9446,9 +9447,9 @@ enhanced-resolve@^4.3.0: tapable "^1.0.0" enhanced-resolve@^5.9.2: - version "5.9.2" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9" - integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== + version "5.9.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" + integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -9678,7 +9679,7 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-import-resolver-node@0.3.4, eslint-import-resolver-node@^0.3.4: +eslint-import-resolver-node@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== @@ -9694,16 +9695,16 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-import-resolver-typescript@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz#ec1e7063ebe807f0362a7320543aaed6fe1100e1" - integrity sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA== +eslint-import-resolver-typescript@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz#a90a4a1c80da8d632df25994c4c5fdcdd02b8751" + integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== dependencies: - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" + debug "^4.3.4" + glob "^7.2.0" + is-glob "^4.0.3" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" eslint-module-utils@^2.6.0: version "2.6.0" @@ -9713,14 +9714,13 @@ eslint-module-utils@^2.6.0: debug "^2.6.9" pkg-dir "^2.0.0" -eslint-module-utils@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz#9e97c12688113401259b39d960e6a1f09f966435" - integrity sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg== +eslint-module-utils@^2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== dependencies: debug "^3.2.7" find-up "^2.1.0" - pkg-dir "^2.0.0" eslint-plugin-import@2.22.1: version "2.22.1" @@ -9741,24 +9741,24 @@ eslint-plugin-import@2.22.1: resolve "^1.17.0" tsconfig-paths "^3.9.0" -eslint-plugin-import@2.25.2: - version "2.25.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz#b3b9160efddb702fc1636659e71ba1d10adbe9e9" - integrity sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g== +eslint-plugin-import@^2.26.0: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== dependencies: array-includes "^3.1.4" array.prototype.flat "^1.2.5" debug "^2.6.9" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.0" + eslint-module-utils "^2.7.3" has "^1.0.3" - is-core-module "^2.7.0" + is-core-module "^2.8.1" is-glob "^4.0.3" - minimatch "^3.0.4" + minimatch "^3.1.2" object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.11.0" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" eslint-plugin-jest@24.3.5: version "24.3.5" @@ -9767,7 +9767,7 @@ eslint-plugin-jest@24.3.5: dependencies: "@typescript-eslint/experimental-utils" "^4.0.1" -eslint-plugin-jsx-a11y@6.5.1: +eslint-plugin-jsx-a11y@^6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== @@ -9790,10 +9790,10 @@ eslint-plugin-react-hooks@4.2.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== -eslint-plugin-react-hooks@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" - integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== +eslint-plugin-react-hooks@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz#5f762dfedf8b2cf431c689f533c9d3fa5dcf25ad" + integrity sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw== eslint-plugin-react@7.23.2: version "7.23.2" @@ -9813,10 +9813,10 @@ eslint-plugin-react@7.23.2: resolve "^2.0.0-next.3" string.prototype.matchall "^4.0.4" -eslint-plugin-react@7.29.1: - version "7.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.1.tgz#6c40bc83142bb63d132a1b3565e2ea655411f800" - integrity sha512-WtzRpHMhsOX05ZrkyaaqmLl2uXGqmYooCfBxftJKlkYdsltiufGgfU7uuoHwR2lBam2Kh/EIVID4aU9e3kbCMA== +eslint-plugin-react@^7.29.4: + version "7.29.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" + integrity sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ== dependencies: array-includes "^3.1.4" array.prototype.flatmap "^1.2.5" @@ -11181,6 +11181,18 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-dirs@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" @@ -12367,10 +12379,10 @@ is-core-module@^2.1.0, is-core-module@^2.2.0: dependencies: has "^1.0.3" -is-core-module@^2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" - integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== +is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" @@ -14909,6 +14921,11 @@ minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" +minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -14920,7 +14937,6 @@ minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== dependencies: - encoding "^0.1.12" minipass "^3.1.0" minipass-sized "^1.0.3" minizlib "^2.0.0" @@ -16473,6 +16489,11 @@ path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + path-root-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" @@ -17873,13 +17894,13 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: object-assign "^4.1.1" scheduler "^0.20.2" -react-dom@18.0.0: - version "18.0.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.0.0.tgz#26b88534f8f1dbb80853e1eabe752f24100d8023" - integrity sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw== +react-dom@18.1.0: + version "18.1.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.1.0.tgz#7f6dd84b706408adde05e1df575b3a024d7e8a2f" + integrity sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w== dependencies: loose-envify "^1.1.0" - scheduler "^0.21.0" + scheduler "^0.22.0" react-is@17.0.2: version "17.0.2" @@ -17932,10 +17953,10 @@ react-virtualized@9.22.3: prop-types "^15.7.2" react-lifecycles-compat "^3.0.4" -react@18.0.0: - version "18.0.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.0.0.tgz#b468736d1f4a5891f38585ba8e8fb29f91c3cb96" - integrity sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A== +react@18.1.0: + version "18.1.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890" + integrity sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ== dependencies: loose-envify "^1.1.0" @@ -18575,6 +18596,15 @@ resolve@^1.14.2, resolve@^1.20.0: is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^1.22.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.3: version "2.0.0-next.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" @@ -18879,10 +18909,10 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820" - integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== +scheduler@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.22.0.tgz#83a5d63594edf074add9a7198b1bae76c3db01b8" + integrity sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ== dependencies: loose-envify "^1.1.0" @@ -19882,10 +19912,10 @@ styled-jsx-plugin-postcss@3.0.2: postcss "^7.0.2" postcss-load-plugins "^2.3.0" -styled-jsx@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.1.tgz#78fecbbad2bf95ce6cd981a08918ce4696f5fc80" - integrity sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw== +styled-jsx@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.2.tgz#ff230fd593b737e9e68b630a694d460425478729" + integrity sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ== stylehacks@^4.0.0: version "4.0.3" @@ -19954,6 +19984,11 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + svg-parser@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" @@ -20500,14 +20535,14 @@ trough@^1.0.0: dependencies: glob "^7.1.2" -tsconfig-paths@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" - integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" - minimist "^1.2.0" + minimist "^1.2.6" strip-bom "^3.0.0" tsconfig-paths@^3.9.0: