diff --git a/package.json b/package.json index a1d5f9f0b..ca878252c 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,8 @@ "@nx/workspace": "17.0.1", "@nx/storybook": "17.0.1", "@phenomnomnominal/tsquery": "^5.0.1", - "@remix-run/dev": "1.15.0", - "@remix-run/node": "1.15.0", + "@remix-run/dev": "2.3.0", + "@remix-run/node": "2.3.0", "@rspack/core": "^0.1.12", "@rspack/dev-server": "^0.1.12", "@rspack/less-loader": "^0.0.22", diff --git a/packages/remix/executors.json b/packages/remix/executors.json index 591aac126..3774ea925 100644 --- a/packages/remix/executors.json +++ b/packages/remix/executors.json @@ -10,17 +10,5 @@ "schema": "./src/executors/build/schema.json", "description": "Build a Remix application." } - }, - "builders": { - "serve": { - "implementation": "./src/executors/serve/compat", - "schema": "./src/executors/serve/schema.json", - "description": "Serve a Remix application." - }, - "build": { - "implementation": "./src/executors/build/build.impl", - "schema": "./src/executors/build/schema.json", - "description": "Build a Remix application." - } } } diff --git a/packages/remix/migrations.json b/packages/remix/migrations.json index c338ccbe0..284cbc873 100644 --- a/packages/remix/migrations.json +++ b/packages/remix/migrations.json @@ -149,6 +149,55 @@ "alwaysAddToPackageJson": true } } + }, + "17.1.0": { + "version": "17.1.0", + "packages": { + "@remix-run/node": { + "version": "^2.3.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/react": { + "version": "^2.3.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/serve": { + "version": "^2.3.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/dev": { + "version": "^2.3.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/css-bundle": { + "version": "^2.3.0", + "alwaysAddToPackageJson": true + }, + "@remix-run/eslint-config": { + "version": "^2.3.0", + "alwaysAddToPackageJson": true + }, + "isbot": { + "version": "^3.6.8", + "alwaysAddToPackageJson": true + }, + "eslint": { + "version": "^8.38.0", + "alwaysAddToPackageJson": true + }, + "@testing-library/react": { + "version": "^14.1.2", + "alwaysAddToPackageJson": false + }, + "@testing-library/jest-dom": { + "version": "^6.1.4", + "alwaysAddToPackageJson": false + }, + "@testing-library/user-event": { + "version": "^14.5.1", + "alwaysAddToPackageJson": false + } + } } } } diff --git a/packages/remix/src/executors/build/compat.ts b/packages/remix/src/executors/build/compat.ts deleted file mode 100644 index fc7908d20..000000000 --- a/packages/remix/src/executors/build/compat.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { convertNxExecutor } from '@nx/devkit'; - -import buildExecutor from './build.impl'; - -export default convertNxExecutor(buildExecutor); diff --git a/packages/remix/src/executors/serve/compat.ts b/packages/remix/src/executors/serve/compat.ts deleted file mode 100644 index 89ed16bc8..000000000 --- a/packages/remix/src/executors/serve/compat.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { convertNxExecutor } from '@nx/devkit'; - -import serveExecutor from './serve.impl'; - -export default convertNxExecutor(serveExecutor); diff --git a/packages/remix/src/generators/action/action.impl.spec.ts b/packages/remix/src/generators/action/action.impl.spec.ts index e0a872487..0876f79a2 100644 --- a/packages/remix/src/generators/action/action.impl.spec.ts +++ b/packages/remix/src/generators/action/action.impl.spec.ts @@ -46,7 +46,7 @@ describe('action', () => { const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); expect(content).toMatch(`import { json } from '@remix-run/node';`); expect(content).toMatch( - `import type { ActionArgs } from '@remix-run/node';` + `import type { ActionFunctionArgs } from '@remix-run/node';` ); expect(content).toMatch( `import { useActionData } from '@remix-run/react';` @@ -54,7 +54,7 @@ describe('action', () => { }); it('should add action function', () => { - const actionFunction = `export const action = async ({ request }: ActionArgs)`; + const actionFunction = `export const action = async ({ request }: ActionFunctionArgs)`; const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); expect(content).toMatch(actionFunction); }); @@ -76,10 +76,10 @@ describe('action', () => { // ASSERT const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); const useActionData = `const actionMessage = useActionData();`; - const actionFunction = `export const action = async ({ request }: ActionArgs)`; + const actionFunction = `export const action = async ({ request }: ActionFunctionArgs)`; expect(content).toMatch(`import { json } from '@remix-run/node';`); expect(content).toMatch( - `import type { ActionArgs } from '@remix-run/node';` + `import type { ActionFunctionArgs } from '@remix-run/node';` ); expect(content).toMatch( `import { useActionData } from '@remix-run/react';` diff --git a/packages/remix/src/generators/action/action.impl.ts b/packages/remix/src/generators/action/action.impl.ts index f7bdc2cfc..2f5fa8b66 100644 --- a/packages/remix/src/generators/action/action.impl.ts +++ b/packages/remix/src/generators/action/action.impl.ts @@ -9,7 +9,7 @@ export default async function (tree: Tree, schema: LoaderSchema) { const routeFilePath = schema.nameAndDirectoryFormat === 'as-provided' ? schema.path - : resolveRemixRouteFile(tree, schema.path, schema.project); + : await resolveRemixRouteFile(tree, schema.path, schema.project); if (!tree.exists(routeFilePath)) { throw new Error( @@ -17,7 +17,7 @@ export default async function (tree: Tree, schema: LoaderSchema) { ); } - insertImport(tree, routeFilePath, 'ActionArgs', '@remix-run/node', { + insertImport(tree, routeFilePath, 'ActionFunctionArgs', '@remix-run/node', { typeOnly: true, }); insertImport(tree, routeFilePath, 'json', '@remix-run/node'); @@ -27,7 +27,7 @@ export default async function (tree: Tree, schema: LoaderSchema) { tree, routeFilePath, ` - export const action = async ({ request }: ActionArgs) => { + export const action = async ({ request }: ActionFunctionArgs) => { let formData = await request.formData(); return json({message: formData.toString()}, { status: 200 }); diff --git a/packages/remix/src/generators/application/__snapshots__/application.impl.spec.ts.snap b/packages/remix/src/generators/application/__snapshots__/application.impl.spec.ts.snap index 97199f616..cede5dd25 100644 --- a/packages/remix/src/generators/application/__snapshots__/application.impl.spec.ts.snap +++ b/packages/remix/src/generators/application/__snapshots__/application.impl.spec.ts.snap @@ -26,11 +26,13 @@ import { ScrollRestoration, } from '@remix-run/react'; -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta: MetaFunction = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -113,11 +115,13 @@ import { ScrollRestoration, } from '@remix-run/react'; -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta: MetaFunction = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -174,6 +178,16 @@ exports[`Remix Application Integrated Repo --projectNameAndRootFormat=as-provide " `; +exports[`Remix Application Integrated Repo --projectNameAndRootFormat=as-provided --e2eTestRunner should generate an e2e application for the app 1`] = ` +"import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: nxE2EPreset(__filename, { cypressDir: 'src' }), +}); +" +`; + exports[`Remix Application Integrated Repo --projectNameAndRootFormat=as-provided --js should create the application correctly 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -198,11 +212,13 @@ exports[`Remix Application Integrated Repo --projectNameAndRootFormat=as-provide Scripts, ScrollRestoration, } from '@remix-run/react'; -export const meta = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -288,6 +304,13 @@ export default { " `; +exports[`Remix Application Integrated Repo --projectNameAndRootFormat=as-provided --unitTestRunner should generate the correct files for testing using jest 3`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Application Integrated Repo --projectNameAndRootFormat=as-provided --unitTestRunner should generate the correct files for testing using vitest 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -332,6 +355,13 @@ export default defineConfig({ " `; +exports[`Remix Application Integrated Repo --projectNameAndRootFormat=as-provided --unitTestRunner should generate the correct files for testing using vitest 3`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Application Integrated Repo --projectNameAndRootFormat=as-provided should create the application correctly 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -358,11 +388,13 @@ import { ScrollRestoration, } from '@remix-run/react'; -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta: MetaFunction = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -445,11 +477,13 @@ import { ScrollRestoration, } from '@remix-run/react'; -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta: MetaFunction = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -532,11 +566,13 @@ import { ScrollRestoration, } from '@remix-run/react'; -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta: MetaFunction = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -593,6 +629,16 @@ exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived -- " `; +exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived --e2eTestRunner should generate an e2e application for the app 1`] = ` +"import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: nxE2EPreset(__filename, { cypressDir: 'src' }), +}); +" +`; + exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived --js should create the application correctly 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -617,11 +663,13 @@ exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived -- Scripts, ScrollRestoration, } from '@remix-run/react'; -export const meta = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -707,6 +755,13 @@ export default { " `; +exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived --unitTestRunner should generate the correct files for testing using jest 3`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived --unitTestRunner should generate the correct files for testing using vitest 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -751,6 +806,13 @@ export default defineConfig({ " `; +exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived --unitTestRunner should generate the correct files for testing using vitest 3`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived should create the application correctly 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -777,11 +839,13 @@ import { ScrollRestoration, } from '@remix-run/react'; -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta: MetaFunction = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -838,6 +902,16 @@ exports[`Remix Application Integrated Repo --projectNameAndRootFormat=derived sh " `; +exports[`Remix Application Standalone Project Repo --e2eTestRunner should generate an e2e application for the app 1`] = ` +"import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: nxE2EPreset(__filename, { cypressDir: 'src' }), +}); +" +`; + exports[`Remix Application Standalone Project Repo --js should create the application correctly 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -862,11 +936,13 @@ exports[`Remix Application Standalone Project Repo --js should create the applic Scripts, ScrollRestoration, } from '@remix-run/react'; -export const meta = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -956,6 +1032,13 @@ export default { " `; +exports[`Remix Application Standalone Project Repo --unitTestRunner should generate the correct files for testing using jest 3`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Application Standalone Project Repo --unitTestRunner should generate the correct files for testing using vitest 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -1000,6 +1083,13 @@ export default defineConfig({ " `; +exports[`Remix Application Standalone Project Repo --unitTestRunner should generate the correct files for testing using vitest 3`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Application Standalone Project Repo should create the application correctly 1`] = ` "/** * @type {import('@remix-run/dev').AppConfig} @@ -1026,11 +1116,13 @@ import { ScrollRestoration, } from '@remix-run/react'; -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta: MetaFunction = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( diff --git a/packages/remix/src/generators/application/application.impl.spec.ts b/packages/remix/src/generators/application/application.impl.spec.ts index 4988b35ee..7461053b2 100644 --- a/packages/remix/src/generators/application/application.impl.spec.ts +++ b/packages/remix/src/generators/application/application.impl.spec.ts @@ -19,9 +19,9 @@ describe('Remix Application', () => { // ASSERT expectTargetsToBeCorrect(tree, '.'); - expect(tree.read('remix.config.js', 'utf-8')).toMatchSnapshot(); + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchSnapshot(); expect(tree.read('app/root.tsx', 'utf-8')).toMatchSnapshot(); - expect(tree.read('app/routes/index.tsx', 'utf-8')).toMatchSnapshot(); + expect(tree.read('app/routes/_index.tsx', 'utf-8')).toMatchSnapshot(); }); describe(`--js`, () => { @@ -39,9 +39,9 @@ describe('Remix Application', () => { // ASSERT expectTargetsToBeCorrect(tree, '.'); - expect(tree.read('remix.config.js', 'utf-8')).toMatchSnapshot(); + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchSnapshot(); expect(tree.read('app/root.js', 'utf-8')).toMatchSnapshot(); - expect(tree.read('app/routes/index.js', 'utf-8')).toMatchSnapshot(); + expect(tree.read('app/routes/_index.js', 'utf-8')).toMatchSnapshot(); }); }); @@ -60,14 +60,9 @@ describe('Remix Application', () => { // ASSERT expectTargetsToBeCorrect(tree, '.'); - expect(tree.read('remix.config.js', 'utf-8')).toMatchSnapshot(); + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchSnapshot(); expect(tree.read('vite.config.ts', 'utf-8')).toMatchSnapshot(); - expect(tree.read('test-setup.ts', 'utf-8')).toMatchInlineSnapshot(` - "import { installGlobals } from '@remix-run/node'; - import '@testing-library/jest-dom/extend-expect'; - installGlobals(); - " - `); + expect(tree.read('test-setup.ts', 'utf-8')).toMatchSnapshot(); }); it('should generate the correct files for testing using jest', async () => { @@ -84,14 +79,9 @@ describe('Remix Application', () => { // ASSERT expectTargetsToBeCorrect(tree, '.'); - expect(tree.read('remix.config.js', 'utf-8')).toMatchSnapshot(); + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchSnapshot(); expect(tree.read('jest.config.ts', 'utf-8')).toMatchSnapshot(); - expect(tree.read('test-setup.ts', 'utf-8')).toMatchInlineSnapshot(` - "import { installGlobals } from '@remix-run/node'; - import '@testing-library/jest-dom/extend-expect'; - installGlobals(); - " - `); + expect(tree.read('test-setup.ts', 'utf-8')).toMatchSnapshot(); }); }); @@ -110,16 +100,7 @@ describe('Remix Application', () => { // ASSERT expectTargetsToBeCorrect(tree, '.'); - expect(tree.read('e2e/cypress.config.ts', 'utf-8')) - .toMatchInlineSnapshot(` - "import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; - import { defineConfig } from 'cypress'; - - export default defineConfig({ - e2e: nxE2EPreset(__filename, { cypressDir: 'src' }), - }); - " - `); + expect(tree.read('e2e/cypress.config.ts', 'utf-8')).toMatchSnapshot(); }); }); }); @@ -144,11 +125,11 @@ describe('Remix Application', () => { expectTargetsToBeCorrect(tree, appDir); expect( - tree.read(`${appDir}/remix.config.js`, 'utf-8') + tree.read(`${appDir}/remix.config.cjs`, 'utf-8') ).toMatchSnapshot(); expect(tree.read(`${appDir}/app/root.tsx`, 'utf-8')).toMatchSnapshot(); expect( - tree.read(`${appDir}/app/routes/index.tsx`, 'utf-8') + tree.read(`${appDir}/app/routes/_index.tsx`, 'utf-8') ).toMatchSnapshot(); }); @@ -168,11 +149,11 @@ describe('Remix Application', () => { expectTargetsToBeCorrect(tree, appDir); expect( - tree.read(`${appDir}/remix.config.js`, 'utf-8') + tree.read(`${appDir}/remix.config.cjs`, 'utf-8') ).toMatchSnapshot(); expect(tree.read(`${appDir}/app/root.js`, 'utf-8')).toMatchSnapshot(); expect( - tree.read(`${appDir}/app/routes/index.js`, 'utf-8') + tree.read(`${appDir}/app/routes/_index.js`, 'utf-8') ).toMatchSnapshot(); }); }); @@ -196,13 +177,13 @@ describe('Remix Application', () => { expectTargetsToBeCorrect(tree, newAppDir); expect( - tree.read(`${newAppDir}/remix.config.js`, 'utf-8') + tree.read(`${newAppDir}/remix.config.cjs`, 'utf-8') ).toMatchSnapshot(); expect( tree.read(`${newAppDir}/app/root.tsx`, 'utf-8') ).toMatchSnapshot(); expect( - tree.read(`${newAppDir}/app/routes/index.tsx`, 'utf-8') + tree.read(`${newAppDir}/app/routes/_index.tsx`, 'utf-8') ).toMatchSnapshot(); }); @@ -225,13 +206,13 @@ describe('Remix Application', () => { expectTargetsToBeCorrect(tree, newAppDir); expect( - tree.read(`${newAppDir}/remix.config.js`, 'utf-8') + tree.read(`${newAppDir}/remix.config.cjs`, 'utf-8') ).toMatchSnapshot(); expect( tree.read(`${newAppDir}/app/root.tsx`, 'utf-8') ).toMatchSnapshot(); expect( - tree.read(`${newAppDir}/app/routes/index.tsx`, 'utf-8') + tree.read(`${newAppDir}/app/routes/_index.tsx`, 'utf-8') ).toMatchSnapshot(); }); }); @@ -252,18 +233,14 @@ describe('Remix Application', () => { expectTargetsToBeCorrect(tree, appDir); expect( - tree.read(`${appDir}/remix.config.js`, 'utf-8') + tree.read(`${appDir}/remix.config.cjs`, 'utf-8') ).toMatchSnapshot(); expect( tree.read(`${appDir}/vite.config.ts`, 'utf-8') ).toMatchSnapshot(); - expect(tree.read(`${appDir}/test-setup.ts`, 'utf-8')) - .toMatchInlineSnapshot(` - "import { installGlobals } from '@remix-run/node'; - import '@testing-library/jest-dom/extend-expect'; - installGlobals(); - " - `); + expect( + tree.read(`${appDir}/test-setup.ts`, 'utf-8') + ).toMatchSnapshot(); }); it('should generate the correct files for testing using jest', async () => { @@ -281,18 +258,14 @@ describe('Remix Application', () => { expectTargetsToBeCorrect(tree, appDir); expect( - tree.read(`${appDir}/remix.config.js`, 'utf-8') + tree.read(`${appDir}/remix.config.cjs`, 'utf-8') ).toMatchSnapshot(); expect( tree.read(`${appDir}/jest.config.ts`, 'utf-8') ).toMatchSnapshot(); - expect(tree.read(`${appDir}/test-setup.ts`, 'utf-8')) - .toMatchInlineSnapshot(` - "import { installGlobals } from '@remix-run/node'; - import '@testing-library/jest-dom/extend-expect'; - installGlobals(); - " - `); + expect( + tree.read(`${appDir}/test-setup.ts`, 'utf-8') + ).toMatchSnapshot(); }); }); @@ -311,16 +284,9 @@ describe('Remix Application', () => { // ASSERT expectTargetsToBeCorrect(tree, appDir); - expect(tree.read(`${appDir}-e2e/cypress.config.ts`, 'utf-8')) - .toMatchInlineSnapshot(` - "import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; - import { defineConfig } from 'cypress'; - - export default defineConfig({ - e2e: nxE2EPreset(__filename, { cypressDir: 'src' }), - }); - " - `); + expect( + tree.read(`${appDir}-e2e/cypress.config.ts`, 'utf-8') + ).toMatchSnapshot(); }); }); } @@ -341,7 +307,7 @@ function expectTargetsToBeCorrect(tree: Tree, projectRoot: string) { expect(targets.serve.executor).toEqual('@nx/remix:serve'); expect(targets.serve.options.port).toEqual(4200); expect(targets.start).toBeTruthy(); - expect(targets.start.command).toEqual('remix-serve build'); + expect(targets.start.command).toEqual('remix-serve build/index.js'); expect(targets.start.options.cwd).toEqual(projectRoot); expect(targets.typecheck).toBeTruthy(); expect(targets.typecheck.command).toEqual('tsc'); diff --git a/packages/remix/src/generators/application/application.impl.ts b/packages/remix/src/generators/application/application.impl.ts index e58648458..0af9b089c 100644 --- a/packages/remix/src/generators/application/application.impl.ts +++ b/packages/remix/src/generators/application/application.impl.ts @@ -6,6 +6,7 @@ import { formatFiles, generateFiles, GeneratorCallback, + getPackageManagerCommand, joinPathFragments, offsetFromRoot, readJson, @@ -55,12 +56,16 @@ export default async function (tree: Tree, _options: NxRemixGeneratorSchema) { serve: { executor: `@nx/remix:serve`, options: { + command: `${ + getPackageManagerCommand().exec + } remix-serve build/index.js`, + manual: true, port: 4200, }, }, start: { dependsOn: ['build'], - command: `remix-serve build`, + command: `remix-serve build/index.js`, options: { cwd: options.projectRoot, }, diff --git a/packages/remix/src/generators/application/files/common/app/root.tsx__tmpl__ b/packages/remix/src/generators/application/files/common/app/root.tsx__tmpl__ index c31215e52..f7bdf668c 100644 --- a/packages/remix/src/generators/application/files/common/app/root.tsx__tmpl__ +++ b/packages/remix/src/generators/application/files/common/app/root.tsx__tmpl__ @@ -8,11 +8,11 @@ import { ScrollRestoration, } from "@remix-run/react"; -export const meta: MetaFunction = () => ({ +export const meta: MetaFunction = () => ([{ charset: "utf-8", title: "New Remix App", viewport: "width=device-width,initial-scale=1", -}); +}]); export default function App() { return ( @@ -29,4 +29,4 @@ export default function App() { ); -} \ No newline at end of file +} diff --git a/packages/remix/src/generators/application/files/common/app/routes/index.tsx__tmpl__ b/packages/remix/src/generators/application/files/common/app/routes/_index.tsx__tmpl__ similarity index 100% rename from packages/remix/src/generators/application/files/common/app/routes/index.tsx__tmpl__ rename to packages/remix/src/generators/application/files/common/app/routes/_index.tsx__tmpl__ diff --git a/packages/remix/src/generators/application/files/common/remix.config.js__tmpl__ b/packages/remix/src/generators/application/files/common/remix.config.cjs__tmpl__ similarity index 100% rename from packages/remix/src/generators/application/files/common/remix.config.js__tmpl__ rename to packages/remix/src/generators/application/files/common/remix.config.cjs__tmpl__ diff --git a/packages/remix/src/generators/application/files/integrated/package.json__tmpl__ b/packages/remix/src/generators/application/files/integrated/package.json__tmpl__ index 390d54c0d..fb01011bd 100644 --- a/packages/remix/src/generators/application/files/integrated/package.json__tmpl__ +++ b/packages/remix/src/generators/application/files/integrated/package.json__tmpl__ @@ -4,6 +4,7 @@ "description": "", "license": "", "scripts": {}, + "type": "module", "dependencies": { "@remix-run/node": "<%= remixVersion %>", "@remix-run/react": "<%= remixVersion %>", diff --git a/packages/remix/src/generators/application/lib/update-unit-test-config.ts b/packages/remix/src/generators/application/lib/update-unit-test-config.ts index ba8787d08..5954ef4e1 100644 --- a/packages/remix/src/generators/application/lib/update-unit-test-config.ts +++ b/packages/remix/src/generators/application/lib/update-unit-test-config.ts @@ -26,7 +26,7 @@ export function updateUnitTestConfig( pathToTestSetup, stripIndents` import { installGlobals } from '@remix-run/node'; - import '@testing-library/jest-dom/extend-expect'; + import '@testing-library/jest-dom/matchers'; installGlobals();` ); diff --git a/packages/remix/src/generators/error-boundary/__snapshots__/error-boundary.impl.spec.ts.snap b/packages/remix/src/generators/error-boundary/__snapshots__/error-boundary.impl.spec.ts.snap index 6be84a683..f26f9d840 100644 --- a/packages/remix/src/generators/error-boundary/__snapshots__/error-boundary.impl.spec.ts.snap +++ b/packages/remix/src/generators/error-boundary/__snapshots__/error-boundary.impl.spec.ts.snap @@ -1,33 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`ErrorBoundary --nameAndDirectoryFormat=as-provided --apiVersion=1 should correctly add the ErrorBoundary to the route file 1`] = ` -"export function ErrorBoundary({ error }) { - console.error(error); - return ( -
-

Uh oh ...

-

Something went wrong

-
{error.message || 'Unknown error'}
-
- ); -} -" -`; - -exports[`ErrorBoundary --nameAndDirectoryFormat=as-provided --apiVersion=1 should correctly add the ErrorBoundary to the route file 2`] = ` -"export function ErrorBoundary({ error }) { - console.error(error); - return ( -
-

Uh oh ...

-

Something went wrong

-
{error.message || 'Unknown error'}
-
- ); -} -" -`; - exports[`ErrorBoundary --nameAndDirectoryFormat=as-provided --apiVersion=2 should correctly add the ErrorBoundary to the route file 1`] = ` "import { isRouteErrorResponse, useRouteError } from '@remix-run/react'; export function ErrorBoundary() { @@ -42,22 +14,18 @@ export function ErrorBoundary() {

{error.data.message}

); + } else if (error instanceof Error) { + return ( +
+

Error

+

{error.message}

+

The stack trace is:

+
{error.stack}
+
+ ); + } else { + return

Unknown Error

; } - - // Don't forget to typecheck with your own logic. - // Any value can be thrown, not just errors! - let errorMessage = 'Unknown error'; - // if (isDefinitelyAnError(error)) { - // errorMessage = error.message; - // } - - return ( -
-

Uh oh ...

-

Something went wrong.

-
{errorMessage}
-
- ); } " `; @@ -76,22 +44,18 @@ export function ErrorBoundary() {

{error.data.message}

); + } else if (error instanceof Error) { + return ( +
+

Error

+

{error.message}

+

The stack trace is:

+
{error.stack}
+
+ ); + } else { + return

Unknown Error

; } - - // Don't forget to typecheck with your own logic. - // Any value can be thrown, not just errors! - let errorMessage = 'Unknown error'; - // if (isDefinitelyAnError(error)) { - // errorMessage = error.message; - // } - - return ( -
-

Uh oh ...

-

Something went wrong.

-
{errorMessage}
-
- ); } " `; diff --git a/packages/remix/src/generators/error-boundary/error-boundary.impl.spec.ts b/packages/remix/src/generators/error-boundary/error-boundary.impl.spec.ts index a9b3d7245..5ffda8515 100644 --- a/packages/remix/src/generators/error-boundary/error-boundary.impl.spec.ts +++ b/packages/remix/src/generators/error-boundary/error-boundary.impl.spec.ts @@ -14,56 +14,6 @@ describe('ErrorBoundary', () => { routeFilePath: string, project: string ) => { - describe('--apiVersion=1', () => { - it('should correctly add the ErrorBoundary to the route file', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - addProjectConfiguration(tree, 'demo', { - name: 'demo', - root: '.', - sourceRoot: '.', - projectType: 'application', - }); - tree.write(routeFilePath, ``); - tree.write('remix.config.js', `module.exports = {}`); - - // ACT - await errorBoundaryGenerator(tree, { - project, - path: routeFilePath, - nameAndDirectoryFormat, - apiVersion: 1, - }); - - // ASSERT - expect(tree.read(routeFilePath, 'utf-8')).toMatchSnapshot(); - }); - - it('should error when the route file cannot be found', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - addProjectConfiguration(tree, 'demo', { - name: 'demo', - root: '.', - sourceRoot: '.', - projectType: 'application', - }); - const routeFilePath = `app/routes/test.tsx`; - tree.write(routeFilePath, ``); - tree.write('remix.config.js', `module.exports = {}`); - - // ACT & ASSERT - await expect( - errorBoundaryGenerator(tree, { - project, - nameAndDirectoryFormat, - path: `my-route.tsx`, - apiVersion: 1, - }) - ).rejects.toThrow(); - }); - }); - describe('--apiVersion=2', () => { it('should correctly add the ErrorBoundary to the route file', async () => { // ARRANGE @@ -76,14 +26,13 @@ describe('ErrorBoundary', () => { }); const routeFilePath = `app/routes/test.tsx`; tree.write(routeFilePath, ``); - tree.write('remix.config.js', `module.exports = {}`); + tree.write('remix.config.cjs', `module.exports = {}`); // ACT await errorBoundaryGenerator(tree, { project, - path: routeFilePath, nameAndDirectoryFormat, - apiVersion: 2, + path: routeFilePath, }); // ASSERT @@ -101,7 +50,7 @@ describe('ErrorBoundary', () => { }); const routeFilePath = `app/routes/test.tsx`; tree.write(routeFilePath, ``); - tree.write('remix.config.js', `module.exports = {}`); + tree.write('remix.config.cjs', `module.exports = {}`); // ACT & ASSERT await expect( @@ -109,11 +58,9 @@ describe('ErrorBoundary', () => { project, nameAndDirectoryFormat, path: `my-route.tsx`, - apiVersion: 2, }) ).rejects.toThrow(); }); }); - } - ); + }); }); diff --git a/packages/remix/src/generators/error-boundary/error-boundary.impl.ts b/packages/remix/src/generators/error-boundary/error-boundary.impl.ts index fe086a3e5..fa1a7e22f 100644 --- a/packages/remix/src/generators/error-boundary/error-boundary.impl.ts +++ b/packages/remix/src/generators/error-boundary/error-boundary.impl.ts @@ -1,22 +1,14 @@ import { formatFiles, type Tree } from '@nx/devkit'; -import { - addV1ErrorBoundary, - addV2ErrorBoundary, - normalizeOptions, -} from './lib'; +import { addV2ErrorBoundary, normalizeOptions } from './lib'; import type { ErrorBoundarySchema } from './schema'; export default async function errorBoundaryGenerator( tree: Tree, schema: ErrorBoundarySchema ) { - const options = normalizeOptions(tree, schema); + const options = await normalizeOptions(tree, schema); - if (options.apiVersion === 1) { - addV1ErrorBoundary(tree, options); - } else { - addV2ErrorBoundary(tree, options); - } + addV2ErrorBoundary(tree, options); if (!options.skipFormat) { await formatFiles(tree); diff --git a/packages/remix/src/generators/error-boundary/lib/add-v1-error-boundary.ts b/packages/remix/src/generators/error-boundary/lib/add-v1-error-boundary.ts deleted file mode 100644 index 59b0cb8cd..000000000 --- a/packages/remix/src/generators/error-boundary/lib/add-v1-error-boundary.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { stripIndents, type Tree } from '@nx/devkit'; -import { insertStatementAfterImports } from '../../../utils/insert-statement-after-imports'; -import type { ErrorBoundarySchema } from '../schema'; - -export function addV1ErrorBoundary(tree: Tree, options: ErrorBoundarySchema) { - insertStatementAfterImports( - tree, - options.path, - stripIndents` - export function ErrorBoundary({ error }) { - console.error(error); - return ( -
-

Uh oh ...

-

Something went wrong

-
{error.message || "Unknown error"}
-
- ); - } - ` - ); -} diff --git a/packages/remix/src/generators/error-boundary/lib/add-v2-error-boundary.ts b/packages/remix/src/generators/error-boundary/lib/add-v2-error-boundary.ts index f4d183967..381384f85 100644 --- a/packages/remix/src/generators/error-boundary/lib/add-v2-error-boundary.ts +++ b/packages/remix/src/generators/error-boundary/lib/add-v2-error-boundary.ts @@ -23,22 +23,18 @@ export function addV2ErrorBoundary(tree: Tree, options: ErrorBoundarySchema) {

{error.data.message}

); + } else if (error instanceof Error) { + return ( +
+

Error

+

{error.message}

+

The stack trace is:

+
{error.stack}
+
+ ); + } else { + return

Unknown Error

; } - - // Don't forget to typecheck with your own logic. - // Any value can be thrown, not just errors! - let errorMessage = "Unknown error"; - // if (isDefinitelyAnError(error)) { - // errorMessage = error.message; - // } - - return ( -
-

Uh oh ...

-

Something went wrong.

-
{errorMessage}
-
- ); } ` ); diff --git a/packages/remix/src/generators/error-boundary/lib/index.ts b/packages/remix/src/generators/error-boundary/lib/index.ts index 00d8a6514..0cce967d1 100644 --- a/packages/remix/src/generators/error-boundary/lib/index.ts +++ b/packages/remix/src/generators/error-boundary/lib/index.ts @@ -1,3 +1,2 @@ -export * from './add-v1-error-boundary'; export * from './add-v2-error-boundary'; export * from './normalize-options'; diff --git a/packages/remix/src/generators/error-boundary/lib/normalize-options.ts b/packages/remix/src/generators/error-boundary/lib/normalize-options.ts index ce6817242..d1505fc3b 100644 --- a/packages/remix/src/generators/error-boundary/lib/normalize-options.ts +++ b/packages/remix/src/generators/error-boundary/lib/normalize-options.ts @@ -2,14 +2,14 @@ import { type Tree } from '@nx/devkit'; import { resolveRemixRouteFile } from '../../../utils/remix-route-utils'; import type { ErrorBoundarySchema } from '../schema'; -export function normalizeOptions( +export async function normalizeOptions( tree: Tree, schema: ErrorBoundarySchema -): ErrorBoundarySchema { +): Promise { const pathToRouteFile = schema.nameAndDirectoryFormat === 'as-provided' ? schema.path - : resolveRemixRouteFile(tree, schema.path, schema.project); + : await resolveRemixRouteFile(tree, schema.path, schema.project); if (!tree.exists(pathToRouteFile)) { throw new Error( diff --git a/packages/remix/src/generators/error-boundary/schema.d.ts b/packages/remix/src/generators/error-boundary/schema.d.ts index 2a5eea1b8..9c4893aa6 100644 --- a/packages/remix/src/generators/error-boundary/schema.d.ts +++ b/packages/remix/src/generators/error-boundary/schema.d.ts @@ -2,7 +2,6 @@ import { NameAndDirectoryFormat } from '@nx/devkit/src/generators/artifact-name- export interface ErrorBoundarySchema { path: string; - apiVersion: number; skipFormat?: false; nameAndDirectoryFormat?: NameAndDirectoryFormat; /** diff --git a/packages/remix/src/generators/error-boundary/schema.json b/packages/remix/src/generators/error-boundary/schema.json index e20d6d0d5..7ca3801fd 100644 --- a/packages/remix/src/generators/error-boundary/schema.json +++ b/packages/remix/src/generators/error-boundary/schema.json @@ -32,11 +32,6 @@ "pattern": "^[a-zA-Z].*$", "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v18." }, - "apiVersion": { - "type": "number", - "description": "Which version of the ErrorBoundary convention to use for the route.", - "default": 1 - }, "skipFormat": { "type": "boolean", "description": "Skip formatting files after generation.", diff --git a/packages/remix/src/generators/library/__snapshots__/library.impl.spec.ts.snap b/packages/remix/src/generators/library/__snapshots__/library.impl.spec.ts.snap index d3d9e8ff2..15ca5668b 100644 --- a/packages/remix/src/generators/library/__snapshots__/library.impl.spec.ts.snap +++ b/packages/remix/src/generators/library/__snapshots__/library.impl.spec.ts.snap @@ -16,6 +16,13 @@ export default { " `; +exports[`Remix Library Generator -projectNameAndRootFormat=as-provided --unitTestRunner should create the correct config files for testing with jest 2`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Library Generator -projectNameAndRootFormat=as-provided --unitTestRunner should create the correct config files for testing with vitest 1`] = ` "import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import react from '@vitejs/plugin-react'; @@ -42,6 +49,13 @@ export default defineConfig({ " `; +exports[`Remix Library Generator -projectNameAndRootFormat=as-provided --unitTestRunner should create the correct config files for testing with vitest 2`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Library Generator -projectNameAndRootFormat=as-provided should generate a library correctly 1`] = ` Array [ "test.module.css", @@ -77,6 +91,13 @@ export default { " `; +exports[`Remix Library Generator -projectNameAndRootFormat=derived --unitTestRunner should create the correct config files for testing with jest 2`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Library Generator -projectNameAndRootFormat=derived --unitTestRunner should create the correct config files for testing with vitest 1`] = ` "import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import react from '@vitejs/plugin-react'; @@ -103,6 +124,13 @@ export default defineConfig({ " `; +exports[`Remix Library Generator -projectNameAndRootFormat=derived --unitTestRunner should create the correct config files for testing with vitest 2`] = ` +"import { installGlobals } from '@remix-run/node'; +import '@testing-library/jest-dom/matchers'; +installGlobals(); +" +`; + exports[`Remix Library Generator -projectNameAndRootFormat=derived should generate a library correctly 1`] = ` Array [ "test.module.css", diff --git a/packages/remix/src/generators/library/lib/add-unit-testing.ts b/packages/remix/src/generators/library/lib/add-unit-testing.ts index 556fb3ec8..8698227b9 100644 --- a/packages/remix/src/generators/library/lib/add-unit-testing.ts +++ b/packages/remix/src/generators/library/lib/add-unit-testing.ts @@ -31,7 +31,7 @@ export function addUnitTestingSetup(tree: Tree, options: RemixLibraryOptions) { pathToTestSetup, stripIndents`${testSetupFileContents} import { installGlobals } from '@remix-run/node'; - import "@testing-library/jest-dom/extend-expect"; + import "@testing-library/jest-dom/matchers"; installGlobals();` ); diff --git a/packages/remix/src/generators/library/library.impl.spec.ts b/packages/remix/src/generators/library/library.impl.spec.ts index 561f37b29..110f855e9 100644 --- a/packages/remix/src/generators/library/library.impl.spec.ts +++ b/packages/remix/src/generators/library/library.impl.spec.ts @@ -91,13 +91,9 @@ describe('Remix Library Generator', () => { expect( tree.read(`${libDir}/jest.config.ts`, 'utf-8') ).toMatchSnapshot(); - expect(tree.read(`${libDir}/src/test-setup.ts`, 'utf-8')) - .toMatchInlineSnapshot(` - "import { installGlobals } from '@remix-run/node'; - import '@testing-library/jest-dom/extend-expect'; - installGlobals(); - " - `); + expect( + tree.read(`${libDir}/src/test-setup.ts`, 'utf-8') + ).toMatchSnapshot(); }); it('should create the correct config files for testing with vitest', async () => { @@ -117,13 +113,9 @@ describe('Remix Library Generator', () => { tree.read(`${libDir}/vite.config.ts`, 'utf-8') ).toMatchSnapshot(); - expect(tree.read(`${libDir}/src/test-setup.ts`, 'utf-8')) - .toMatchInlineSnapshot(` - "import { installGlobals } from '@remix-run/node'; - import '@testing-library/jest-dom/extend-expect'; - installGlobals(); - " - `); + expect( + tree.read(`${libDir}/src/test-setup.ts`, 'utf-8') + ).toMatchSnapshot(); }, 25_000); }); diff --git a/packages/remix/src/generators/loader/loader.impl.ts b/packages/remix/src/generators/loader/loader.impl.ts index 9efe68376..9b7dacfc0 100644 --- a/packages/remix/src/generators/loader/loader.impl.ts +++ b/packages/remix/src/generators/loader/loader.impl.ts @@ -9,7 +9,7 @@ export default async function (tree: Tree, schema: LoaderSchema) { const routeFilePath = schema.nameAndDirectoryFormat === 'as-provided' ? schema.path - : resolveRemixRouteFile(tree, schema.path, schema.project); + : await resolveRemixRouteFile(tree, schema.path, schema.project); if (!tree.exists(routeFilePath)) { throw new Error( diff --git a/packages/remix/src/generators/meta/lib/normalize-options.ts b/packages/remix/src/generators/meta/lib/normalize-options.ts deleted file mode 100644 index 261439852..000000000 --- a/packages/remix/src/generators/meta/lib/normalize-options.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Tree } from '@nx/devkit'; -import { determineArtifactNameAndDirectoryOptions } from '@nx/devkit/src/generators/artifact-name-and-directory-utils'; -import { getRemixFutureFlags } from '../../../utils/remix-config'; -import { MetaSchema } from '../schema'; - -export async function normalizeOptions( - tree: Tree, - options: MetaSchema -): Promise { - const { project } = await determineArtifactNameAndDirectoryOptions(tree, { - artifactType: 'meta', - callingGenerator: '@nx/remix:meta', - name: options.path, - nameAndDirectoryFormat: options.nameAndDirectoryFormat, - project: options.project, - }); - let normalizedVersion = options.version; - - if (!normalizedVersion) { - // is the v2 future flag enabled? - const futureFlags = getRemixFutureFlags(tree, project); - - normalizedVersion = futureFlags?.v2_meta ? '2' : '1'; - } - - return { - ...options, - version: normalizedVersion, - }; -} diff --git a/packages/remix/src/generators/meta/lib/v1.impl.spec.ts b/packages/remix/src/generators/meta/lib/v1.impl.spec.ts deleted file mode 100644 index d4a980937..000000000 --- a/packages/remix/src/generators/meta/lib/v1.impl.spec.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import applicationGenerator from '../../application/application.impl'; -import routeGenerator from '../../route/route.impl'; -import { v1MetaGenerator } from './v1.impl'; - -describe('meta v1', () => { - let tree: Tree; - - test.each([['apps/demo/app/routes/example.tsx', 'example', 'example.tsx']])( - 'add meta using route path "%i"', - async (path) => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - tree.write('.gitignore', `/node_modules/dist`); - - await applicationGenerator(tree, { name: 'demo' }); - await routeGenerator(tree, { - path: 'example', - project: 'demo', - style: 'none', - loader: false, - action: false, - meta: false, - skipChecks: false, - }); - - await v1MetaGenerator(tree, { - path, - project: 'demo', - }); - - const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); - expect(content).toMatch( - `import type { MetaFunction } from '@remix-run/node';` - ); - - expect(content).toMatch(`export const meta: MetaFunction`); - expect(content).toMatch(`return {`); - } - ); -}); diff --git a/packages/remix/src/generators/meta/lib/v1.impl.ts b/packages/remix/src/generators/meta/lib/v1.impl.ts deleted file mode 100644 index f5c881abd..000000000 --- a/packages/remix/src/generators/meta/lib/v1.impl.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { formatFiles, Tree } from '@nx/devkit'; -import { getDefaultExportName } from '../../../utils/get-default-export-name'; -import { insertImport } from '../../../utils/insert-import'; -import { insertStatementAfterImports } from '../../../utils/insert-statement-after-imports'; -import { resolveRemixRouteFile } from '../../../utils/remix-route-utils'; -import { MetaSchema } from '../schema'; - -export async function v1MetaGenerator(tree: Tree, schema: MetaSchema) { - const routeFilePath = - schema.nameAndDirectoryFormat === 'as-provided' - ? schema.path - : resolveRemixRouteFile(tree, schema.path, schema.project); - - if (!tree.exists(routeFilePath)) { - throw new Error( - `Route path does not exist: ${routeFilePath}. Please generate a Remix route first.` - ); - } - - insertImport(tree, routeFilePath, 'MetaFunction', '@remix-run/node', { - typeOnly: true, - }); - - const defaultExportName = getDefaultExportName(tree, routeFilePath); - insertStatementAfterImports( - tree, - routeFilePath, - ` - export const meta: MetaFunction = () =>{ - return { title: '${defaultExportName} Route' }; - }; - - ` - ); - await formatFiles(tree); -} diff --git a/packages/remix/src/generators/meta/lib/v2.impl.spec.ts b/packages/remix/src/generators/meta/lib/v2.impl.spec.ts index 9161cbf0a..17154a0e3 100644 --- a/packages/remix/src/generators/meta/lib/v2.impl.spec.ts +++ b/packages/remix/src/generators/meta/lib/v2.impl.spec.ts @@ -31,10 +31,10 @@ describe('meta v2', () => { const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); expect(content).toMatch( - `import type { V2_MetaFunction } from '@remix-run/node';` + `import type { MetaFunction } from '@remix-run/node';` ); - expect(content).toMatch(`export const meta: V2_MetaFunction`); + expect(content).toMatch(`export const meta: MetaFunction`); expect(content).toMatch(`return [`); } ); diff --git a/packages/remix/src/generators/meta/lib/v2.impl.ts b/packages/remix/src/generators/meta/lib/v2.impl.ts index 906abafb2..ede459614 100644 --- a/packages/remix/src/generators/meta/lib/v2.impl.ts +++ b/packages/remix/src/generators/meta/lib/v2.impl.ts @@ -9,7 +9,7 @@ export async function v2MetaGenerator(tree: Tree, schema: MetaSchema) { const routeFilePath = schema.nameAndDirectoryFormat === 'as-provided' ? schema.path - : resolveRemixRouteFile(tree, schema.path, schema.project); + : await resolveRemixRouteFile(tree, schema.path, schema.project); if (!tree.exists(routeFilePath)) { throw new Error( @@ -17,7 +17,7 @@ export async function v2MetaGenerator(tree: Tree, schema: MetaSchema) { ); } - insertImport(tree, routeFilePath, 'V2_MetaFunction', '@remix-run/node', { + insertImport(tree, routeFilePath, 'MetaFunction', '@remix-run/node', { typeOnly: true, }); @@ -26,7 +26,7 @@ export async function v2MetaGenerator(tree: Tree, schema: MetaSchema) { tree, routeFilePath, ` - export const meta: V2_MetaFunction = () =>{ + export const meta: MetaFunction = () => { return [{ title: '${defaultExportName} Route' }]; }; diff --git a/packages/remix/src/generators/meta/meta.impl.spec.ts b/packages/remix/src/generators/meta/meta.impl.spec.ts index bce4496df..db2159938 100644 --- a/packages/remix/src/generators/meta/meta.impl.spec.ts +++ b/packages/remix/src/generators/meta/meta.impl.spec.ts @@ -1,6 +1,5 @@ import { Tree } from '@nx/devkit'; import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { getRemixConfigPath } from '../../utils/remix-config'; import applicationGenerator from '../application/application.impl'; import routeGenerator from '../route/route.impl'; import metaGenerator from './meta.impl'; @@ -23,11 +22,10 @@ describe('meta', () => { }); }); - it('should use v1 when specified', async () => { + it('should use v2 when specified', async () => { await metaGenerator(tree, { path: 'example', project: 'demo', - version: '1', }); const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); @@ -36,45 +34,6 @@ describe('meta', () => { ); expect(content).toMatch(`export const meta: MetaFunction`); - expect(content).toMatch(`return {`); - }); - - it('should use v2 when specified', async () => { - await metaGenerator(tree, { - path: 'example', - project: 'demo', - version: '2', - }); - - const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); - expect(content).toMatch( - `import type { V2_MetaFunction } from '@remix-run/node';` - ); - - expect(content).toMatch(`export const meta: V2_MetaFunction`); - expect(content).toMatch(`return [`); - }); - - it('should detect v2_meta future flag when version is not specified', async () => { - const remixConfigPath = getRemixConfigPath(tree, 'demo'); - let remixConfigContent = tree.read(remixConfigPath, 'utf-8'); - remixConfigContent = remixConfigContent.replace( - 'module.exports = {', - 'module.exports = {\nfuture:{v2_meta: true},\n' - ); - tree.write(remixConfigPath, remixConfigContent); - - await metaGenerator(tree, { - path: 'example', - project: 'demo', - }); - - const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); - expect(content).toMatch( - `import type { V2_MetaFunction } from '@remix-run/node';` - ); - - expect(content).toMatch(`export const meta: V2_MetaFunction`); expect(content).toMatch(`return [`); }); @@ -82,15 +41,14 @@ describe('meta', () => { await metaGenerator(tree, { path: 'apps/demo/app/routes/example.tsx', nameAndDirectoryFormat: 'as-provided', - version: '2', }); const content = tree.read('apps/demo/app/routes/example.tsx', 'utf-8'); expect(content).toMatch( - `import type { V2_MetaFunction } from '@remix-run/node';` + `import type { MetaFunction } from '@remix-run/node';` ); - expect(content).toMatch(`export const meta: V2_MetaFunction`); + expect(content).toMatch(`export const meta: MetaFunction`); expect(content).toMatch(`return [`); }); }); diff --git a/packages/remix/src/generators/meta/meta.impl.ts b/packages/remix/src/generators/meta/meta.impl.ts index 8d7294ceb..308edd0ca 100644 --- a/packages/remix/src/generators/meta/meta.impl.ts +++ b/packages/remix/src/generators/meta/meta.impl.ts @@ -1,18 +1,7 @@ import { Tree } from '@nx/devkit'; -import { MetaSchema } from './schema'; - -import { normalizeOptions } from './lib/normalize-options'; -import { v1MetaGenerator } from './lib/v1.impl'; import { v2MetaGenerator } from './lib/v2.impl'; +import { MetaSchema } from './schema'; export default async function (tree: Tree, schema: MetaSchema) { - const options = await normalizeOptions(tree, schema); - - if (options.version === '1') { - await v1MetaGenerator(tree, options); - } else if (options.version === '2') { - await v2MetaGenerator(tree, options); - } else { - throw new Error('Invalid version provided.'); - } + await v2MetaGenerator(tree, schema); } diff --git a/packages/remix/src/generators/meta/schema.d.ts b/packages/remix/src/generators/meta/schema.d.ts index 39107d77b..c81caf407 100644 --- a/packages/remix/src/generators/meta/schema.d.ts +++ b/packages/remix/src/generators/meta/schema.d.ts @@ -3,7 +3,6 @@ import { NameAndDirectoryFormat } from '@nx/devkit/src/generators/artifact-name- export interface MetaSchema { path: string; nameAndDirectoryFormat?: NameAndDirectoryFormat; - version?: '1' | '2'; /** * @deprecated Provide the `path` option instead. The project will be determined from the path provided. It will be removed in Nx v18. */ diff --git a/packages/remix/src/generators/meta/schema.json b/packages/remix/src/generators/meta/schema.json index 10a81849c..a22682958 100644 --- a/packages/remix/src/generators/meta/schema.json +++ b/packages/remix/src/generators/meta/schema.json @@ -29,10 +29,6 @@ "x-prompt": "What project is this route for?", "pattern": "^[a-zA-Z].*$", "x-deprecated": "Provide the `path` option instead and use the `as-provided` format. The project will be determined from the path provided. It will be removed in Nx v18." - }, - "version": { - "type": "string", - "description": "The version of the meta convention to use" } }, "required": [ diff --git a/packages/remix/src/generators/resource-route/resource-route.impl.ts b/packages/remix/src/generators/resource-route/resource-route.impl.ts index b536c66ff..d366fb3f2 100644 --- a/packages/remix/src/generators/resource-route/resource-route.impl.ts +++ b/packages/remix/src/generators/resource-route/resource-route.impl.ts @@ -27,7 +27,7 @@ export default async function (tree: Tree, options: RemixRouteSchema) { ); } - const routeFilePath = resolveRemixRouteFile( + const routeFilePath = await resolveRemixRouteFile( tree, options.nameAndDirectoryFormat === 'as-provided' ? joinPathFragments(directory, name) diff --git a/packages/remix/src/generators/route/__snapshots__/route.impl.spec.ts.snap b/packages/remix/src/generators/route/__snapshots__/route.impl.spec.ts.snap index a9c9c6420..ec48c159b 100644 --- a/packages/remix/src/generators/route/__snapshots__/route.impl.spec.ts.snap +++ b/packages/remix/src/generators/route/__snapshots__/route.impl.spec.ts.snap @@ -2,7 +2,7 @@ exports[`route --nameAndDirectoryFormat=as-provided should add route component 1`] = ` "import type { - ActionArgs, + ActionFunctionArgs, LinksFunction, LoaderArgs, MetaFunction, @@ -16,14 +16,14 @@ export const links: LinksFunction = () => { return [{ rel: 'stylesheet', href: stylesUrl }]; }; -export const action = async ({ request }: ActionArgs) => { +export const action = async ({ request }: ActionFunctionArgs) => { let formData = await request.formData(); return json({ message: formData.toString() }, { status: 200 }); }; export const meta: MetaFunction = () => { - return { title: 'Example Route' }; + return [{ title: 'Example Route' }]; }; export const loader = async ({ request }: LoaderArgs) => { @@ -49,7 +49,7 @@ exports[`route --nameAndDirectoryFormat=as-provided should error if it detects a exports[`route --nameAndDirectoryFormat=derived should add route component 1`] = ` "import type { - ActionArgs, + ActionFunctionArgs, LinksFunction, LoaderArgs, MetaFunction, @@ -63,14 +63,14 @@ export const links: LinksFunction = () => { return [{ rel: 'stylesheet', href: stylesUrl }]; }; -export const action = async ({ request }: ActionArgs) => { +export const action = async ({ request }: ActionFunctionArgs) => { let formData = await request.formData(); return json({ message: formData.toString() }, { status: 200 }); }; export const meta: MetaFunction = () => { - return { title: 'PathToExample Route' }; + return [{ title: 'PathToExample Route' }]; }; export const loader = async ({ request }: LoaderArgs) => { diff --git a/packages/remix/src/generators/route/route.impl.spec.ts b/packages/remix/src/generators/route/route.impl.spec.ts index 69d50db20..ef06f13ef 100644 --- a/packages/remix/src/generators/route/route.impl.spec.ts +++ b/packages/remix/src/generators/route/route.impl.spec.ts @@ -229,9 +229,9 @@ describe('route', () => { it('should place routes correctly when app dir is changed', async () => { await applicationGenerator(tree, { name: 'demo' }); - tree.write( - 'apps/demo/remix.config.js', - ` + tree.write( + 'apps/demo/remix.config.cjs', + ` /** * @type {import('@remix-run/dev').AppConfig} */ diff --git a/packages/remix/src/generators/route/route.impl.ts b/packages/remix/src/generators/route/route.impl.ts index 5875f5daa..fa55c8d2d 100644 --- a/packages/remix/src/generators/route/route.impl.ts +++ b/packages/remix/src/generators/route/route.impl.ts @@ -40,7 +40,7 @@ export default async function (tree: Tree, options: RemixRouteSchema) { ); } - const routeFilePath = resolveRemixRouteFile( + const routeFilePath = await resolveRemixRouteFile( tree, options.nameAndDirectoryFormat === 'as-provided' ? joinPathFragments(directory, name) diff --git a/packages/remix/src/generators/setup-tailwind/__snapshots__/setup-tailwind.impl.spec.ts.snap b/packages/remix/src/generators/setup-tailwind/__snapshots__/setup-tailwind.impl.spec.ts.snap index 0a7b17860..1efb1823c 100644 --- a/packages/remix/src/generators/setup-tailwind/__snapshots__/setup-tailwind.impl.spec.ts.snap +++ b/packages/remix/src/generators/setup-tailwind/__snapshots__/setup-tailwind.impl.spec.ts.snap @@ -33,11 +33,13 @@ exports[`setup-tailwind generator should add a js tailwind config to an applicat } from '@remix-run/react'; import styles from './tailwind.css'; export const links = () => [{ rel: 'stylesheet', href: styles }]; -export const meta = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( @@ -110,11 +112,13 @@ import { import styles from './tailwind.css'; export const links: LinksFunction = () => [{ rel: 'stylesheet', href: styles }]; -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'New Remix App', - viewport: 'width=device-width,initial-scale=1', -}); +export const meta: MetaFunction = () => [ + { + charset: 'utf-8', + title: 'New Remix App', + viewport: 'width=device-width,initial-scale=1', + }, +]; export default function App() { return ( diff --git a/packages/remix/src/generators/setup-tailwind/lib/update-remix-config.spec.ts b/packages/remix/src/generators/setup-tailwind/lib/update-remix-config.spec.ts index 5589194eb..5d9fb29d8 100644 --- a/packages/remix/src/generators/setup-tailwind/lib/update-remix-config.spec.ts +++ b/packages/remix/src/generators/setup-tailwind/lib/update-remix-config.spec.ts @@ -7,7 +7,7 @@ describe('updateRemixConfig', () => { // ARRANGE const tree = createTreeWithEmptyWorkspace(); tree.write( - `remix.config.js`, + `remix.config.cjs`, stripIndents`module.exports = { ignoredRouteFiles: ['**/.*'], watchPaths: ['../../libs'] @@ -18,7 +18,7 @@ describe('updateRemixConfig', () => { updateRemixConfig(tree, '.'); // ASSERT - expect(tree.read('remix.config.js', 'utf-8')).toMatchInlineSnapshot(` + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchInlineSnapshot(` "module.exports = { tailwind: true, ignoredRouteFiles: ['**/.*'], @@ -31,7 +31,7 @@ describe('updateRemixConfig', () => { // ARRANGE const tree = createTreeWithEmptyWorkspace(); tree.write( - `remix.config.js`, + `remix.config.cjs`, stripIndents`module.exports = { ignoredRouteFiles: ['**/.*'], tailwind: false, @@ -43,7 +43,7 @@ describe('updateRemixConfig', () => { updateRemixConfig(tree, '.'); // ASSERT - expect(tree.read('remix.config.js', 'utf-8')).toMatchInlineSnapshot(` + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchInlineSnapshot(` "module.exports = { ignoredRouteFiles: ['**/.*'], tailwind: true, @@ -56,7 +56,7 @@ describe('updateRemixConfig', () => { // ARRANGE const tree = createTreeWithEmptyWorkspace(); tree.write( - `remix.config.js`, + `remix.config.cjs`, stripIndents`module.exports = { ignoredRouteFiles: ['**/.*'], tailwind: true, @@ -68,7 +68,7 @@ describe('updateRemixConfig', () => { updateRemixConfig(tree, '.'); // ASSERT - expect(tree.read('remix.config.js', 'utf-8')).toMatchInlineSnapshot(` + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchInlineSnapshot(` "module.exports = { ignoredRouteFiles: ['**/.*'], tailwind: true, diff --git a/packages/remix/src/generators/setup-tailwind/lib/update-remix-config.ts b/packages/remix/src/generators/setup-tailwind/lib/update-remix-config.ts index cc78c9ac2..e1fda1aab 100644 --- a/packages/remix/src/generators/setup-tailwind/lib/update-remix-config.ts +++ b/packages/remix/src/generators/setup-tailwind/lib/update-remix-config.ts @@ -2,11 +2,11 @@ import { joinPathFragments, type Tree } from '@nx/devkit'; import { tsquery } from '@phenomnomnominal/tsquery'; export function updateRemixConfig(tree: Tree, projectRoot: string) { - const pathToRemixConfig = joinPathFragments(projectRoot, 'remix.config.js'); + const pathToRemixConfig = joinPathFragments(projectRoot, 'remix.config.cjs'); if (!tree.exists(pathToRemixConfig)) { throw new Error( - `Could not find "${pathToRemixConfig}". Please ensure a "remix.config.js" exists at the root of your project.` + `Could not find "${pathToRemixConfig}". Please ensure a "remix.config.cjs" exists at the root of your project.` ); } diff --git a/packages/remix/src/generators/setup-tailwind/setup-tailwind.impl.spec.ts b/packages/remix/src/generators/setup-tailwind/setup-tailwind.impl.spec.ts index 3b842f320..3be07313c 100644 --- a/packages/remix/src/generators/setup-tailwind/setup-tailwind.impl.spec.ts +++ b/packages/remix/src/generators/setup-tailwind/setup-tailwind.impl.spec.ts @@ -21,7 +21,7 @@ describe('setup-tailwind generator', () => { expect(tree.exists('app/tailwind.css')).toBeTruthy(); expect(tree.read('app/tailwind.css', 'utf-8')).toMatchSnapshot(); expect(tree.read('app/root.tsx', 'utf-8')).toMatchSnapshot(); - expect(tree.read('remix.config.js', 'utf-8')).toMatchSnapshot(); + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchSnapshot(); expect( readJson(tree, 'package.json').dependencies['tailwindcss'] ).toBeTruthy(); @@ -45,7 +45,7 @@ describe('setup-tailwind generator', () => { expect(tree.exists('app/tailwind.css')).toBeTruthy(); expect(tree.read('app/tailwind.css', 'utf-8')).toMatchSnapshot(); expect(tree.read('app/root.js', 'utf-8')).toMatchSnapshot(); - expect(tree.read('remix.config.js', 'utf-8')).toMatchSnapshot(); + expect(tree.read('remix.config.cjs', 'utf-8')).toMatchSnapshot(); expect( readJson(tree, 'package.json').dependencies['tailwindcss'] ).toBeTruthy(); diff --git a/packages/remix/src/generators/setup/setup.impl.ts b/packages/remix/src/generators/setup/setup.impl.ts index 599f49d0e..e90bf0ed1 100644 --- a/packages/remix/src/generators/setup/setup.impl.ts +++ b/packages/remix/src/generators/setup/setup.impl.ts @@ -3,6 +3,7 @@ import { GeneratorCallback, runTasksInSerial, Tree, + updateJson, } from '@nx/devkit'; import { initGenerator as jsInitGenerator } from '@nx/js'; @@ -31,6 +32,11 @@ apps/**/.cache } tree.write('.gitignore', ignoreFile); + updateJson(tree, `package.json`, (json) => { + json.type = 'module'; + return json; + }); + await formatFiles(tree); return runTasksInSerial(...tasks); diff --git a/packages/remix/src/generators/style/style.impl.spec.ts b/packages/remix/src/generators/style/style.impl.spec.ts index 6477ef3e8..d2e0a48cf 100644 --- a/packages/remix/src/generators/style/style.impl.spec.ts +++ b/packages/remix/src/generators/style/style.impl.spec.ts @@ -59,7 +59,7 @@ describe('route', () => { await applicationGenerator(tree, { name: 'demo' }); tree.write( - 'apps/demo/remix.config.js', + 'apps/demo/remix.config.cjs', ` /** * @type {import('@remix-run/dev').AppConfig} diff --git a/packages/remix/src/generators/style/style.impl.ts b/packages/remix/src/generators/style/style.impl.ts index 6b2969000..cfd9e1345 100644 --- a/packages/remix/src/generators/style/style.impl.ts +++ b/packages/remix/src/generators/style/style.impl.ts @@ -29,7 +29,7 @@ export default async function (tree: Tree, options: RemixStyleSchema) { const project = readProjectConfiguration(tree, projectName); if (!project) throw new Error(`Project does not exist: ${projectName}`); - const appDir = resolveRemixAppDirectory(tree, project.name); + const appDir = await resolveRemixAppDirectory(tree, project.name); const normalizedRoutePath = `${normalizeRoutePath(options.path) .replace(/^\//, '') .replace('.tsx', '')}.css`; @@ -55,7 +55,7 @@ export default async function (tree: Tree, options: RemixStyleSchema) { const routeFilePath = options.nameAndDirectoryFormat ? options.path - : resolveRemixRouteFile(tree, options.path, options.project, '.tsx'); + : await resolveRemixRouteFile(tree, options.path, options.project, '.tsx'); insertImport(tree, routeFilePath, 'LinksFunction', '@remix-run/node', { typeOnly: true, diff --git a/packages/remix/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.spec.ts b/packages/remix/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.spec.ts index 945a297fc..9d69502fb 100644 --- a/packages/remix/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.spec.ts +++ b/packages/remix/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.spec.ts @@ -16,7 +16,7 @@ describe('Update remix.config', () => { await update(tree); - expect(tree.read('apps/remix/remix.config.js', 'utf-8')).toContain( + expect(tree.read('apps/remix/remix.config.cjs', 'utf-8')).toContain( `watchPaths: ['../../libs']` ); }); @@ -33,7 +33,7 @@ describe('Update remix.config', () => { await update(tree); - expect(tree.read('apps/remix/remix.config.js', 'utf-8')).toContain( + expect(tree.read('apps/remix/remix.config.cjs', 'utf-8')).toContain( `watchPaths: ['../../some-libs']` ); }); @@ -45,7 +45,7 @@ describe('Update remix.config', () => { await update(tree); expect( - tree.read('apps/very/very/nested/remix/remix.config.js', 'utf-8') + tree.read('apps/very/very/nested/remix/remix.config.cjs', 'utf-8') ).toContain(`watchPaths: ['../../../../../libs']`); }); @@ -56,10 +56,10 @@ describe('Update remix.config', () => { await update(tree); - expect(tree.read('apps/remix/remix.config.js', 'utf-8')).toContain( + expect(tree.read('apps/remix/remix.config.cjs', 'utf-8')).toContain( `watchPaths: ['../../libs']` ); - expect(tree.read('apps/another-remix/remix.config.js', 'utf-8')).toContain( + expect(tree.read('apps/another-remix/remix.config.cjs', 'utf-8')).toContain( `watchPaths: ['../../libs']` ); }); @@ -74,10 +74,10 @@ describe('Update remix.config', () => { await update(tree); - expect(tree.read('apps/remix/remix.config.js', 'utf-8')).toContain( + expect(tree.read('apps/remix/remix.config.cjs', 'utf-8')).toContain( `watchPaths: ['../../libs']` ); - expect(tree.exists('apps/not-remix/remix.config.js')).toBe(false); + expect(tree.exists('apps/not-remix/remix.config.cjs')).toBe(false); }); }); @@ -167,7 +167,7 @@ function createLegacyRemixApp(tree: Tree, name: string, root: string) { }); tree.write( - joinPathFragments(root, 'remix.config.js'), + joinPathFragments(root, 'remix.config.cjs'), ` /** * @type {import('@remix-run/dev').AppConfig} diff --git a/packages/remix/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.ts b/packages/remix/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.ts index e4acdf333..fedd757f7 100644 --- a/packages/remix/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.ts +++ b/packages/remix/src/migrations/update-14-5-4/update-tsconfig-and-remix-config-for-1-6-8.ts @@ -11,22 +11,22 @@ import { } from '@nx/devkit'; /** - * Update tsconfig.json and remix.config.js to support importing workspaces libraries + * Update tsconfig.json and remix.config.cjs to support importing workspaces libraries * @param tree */ export default async function update(tree: Tree) { const projects = getProjects(tree); const remixProjects = Array.from(projects.values()).filter((project) => { - const remixConfigPath = joinPathFragments(project.root, 'remix.config.js'); - // if the project doesn't have a remix.config.js, it's not a Remix project so we can skip it + const remixConfigPath = joinPathFragments(project.root, 'remix.config.cjs'); + // if the project doesn't have a remix.config.cjs, it's not a Remix project so we can skip it return tree.exists(remixConfigPath); }); if (remixProjects.length === 0) return; remixProjects.forEach((project) => { - const remixConfigPath = joinPathFragments(project.root, 'remix.config.js'); + const remixConfigPath = joinPathFragments(project.root, 'remix.config.cjs'); try { const remixConfigContent = tree.read(remixConfigPath, 'utf-8'); diff --git a/packages/remix/src/utils/get-remix-projects.ts b/packages/remix/src/utils/get-remix-projects.ts index 932409ded..1d1f93fee 100644 --- a/packages/remix/src/utils/get-remix-projects.ts +++ b/packages/remix/src/utils/get-remix-projects.ts @@ -4,8 +4,8 @@ export function getRemixProjects(tree: Tree) { const projects = getProjects(tree); const remixProjects = Array.from(projects.values()).filter((project) => { - const remixConfigPath = joinPathFragments(project.root, 'remix.config.js'); - // if the project doesn't have a remix.config.js, it's not a Remix project so we can skip it + const remixConfigPath = joinPathFragments(project.root, 'remix.config.cjs'); + // if the project doesn't have a remix.config.cjs, it's not a Remix project so we can skip it return tree.exists(remixConfigPath); }); return remixProjects; diff --git a/packages/remix/src/utils/remix-config.ts b/packages/remix/src/utils/remix-config.ts index 2c5fcfc2a..6a422ff86 100644 --- a/packages/remix/src/utils/remix-config.ts +++ b/packages/remix/src/utils/remix-config.ts @@ -5,20 +5,24 @@ export function getRemixConfigPath(tree: Tree, projectName: string) { const project = readProjectConfiguration(tree, projectName); if (!project) throw new Error(`Project does not exist: ${projectName}`); - return joinPathFragments(project.root, 'remix.config.js'); + for (const ext of ['.cjs', '.js']) { + const configPath = joinPathFragments(project.root, `remix.config${ext}`); + if (tree.exists(configPath)) { + return configPath; + } + } } -export function getRemixConfigValues(tree: Tree, projectName: string) { +export async function getRemixConfigValues(tree: Tree, projectName: string) { const remixConfigPath = getRemixConfigPath(tree, projectName); - return eval(tree.read(remixConfigPath, 'utf-8')) as AppConfig; } -export function getRemixFutureFlags( +export async function getRemixFutureFlags( tree: Tree, projectName: string -): AppConfig['future'] { - const configValues = getRemixConfigValues(tree, projectName); +): Promise { + const configValues = await getRemixConfigValues(tree, projectName); return configValues?.future; } diff --git a/packages/remix/src/utils/remix-route-utils.ts b/packages/remix/src/utils/remix-route-utils.ts index 4d3fa935b..36da8f6c2 100644 --- a/packages/remix/src/utils/remix-route-utils.ts +++ b/packages/remix/src/utils/remix-route-utils.ts @@ -14,12 +14,12 @@ import { getRemixConfigValues } from './remix-config'; * @param fileExtension the file extension to add to resolved route file * @returns file path to the route */ -export function resolveRemixRouteFile( +export async function resolveRemixRouteFile( tree: Tree, path: string, projectName?: string, fileExtension?: string -): string { +): Promise { const { name: routePath } = names(path.replace(/^\//, '').replace(/\/$/, '')); if (!projectName) { @@ -35,7 +35,7 @@ export function resolveRemixRouteFile( ); return joinPathFragments( - resolveRemixAppDirectory(tree, projectName), + await resolveRemixAppDirectory(tree, projectName), 'routes', fileName ); @@ -84,9 +84,12 @@ export function checkRoutePathForErrors(path: string) { ); } -export function resolveRemixAppDirectory(tree: Tree, projectName: string) { +export async function resolveRemixAppDirectory( + tree: Tree, + projectName: string +) { const project = readProjectConfiguration(tree, projectName); - const remixConfig = getRemixConfigValues(tree, projectName); + const remixConfig = await getRemixConfigValues(tree, projectName); return joinPathFragments(project.root, remixConfig.appDirectory ?? 'app'); } diff --git a/packages/remix/src/utils/versions.ts b/packages/remix/src/utils/versions.ts index bac773518..ea47c293c 100644 --- a/packages/remix/src/utils/versions.ts +++ b/packages/remix/src/utils/versions.ts @@ -1,17 +1,17 @@ import { readJson, Tree } from '@nx/devkit'; -export const remixVersion = '^1.16.1'; +export const remixVersion = '^2.3.0'; export const isbotVersion = '^3.6.8'; export const reactVersion = '^18.2.0'; export const reactDomVersion = '^18.2.0'; -export const typesReactVersion = '^18.0.25'; -export const typesReactDomVersion = '^18.0.8'; -export const eslintVersion = '^8.27.0'; -export const typescriptVersion = '^4.8.4'; +export const typesReactVersion = '^18.2.0'; +export const typesReactDomVersion = '^18.2.0'; +export const eslintVersion = '^8.38.0'; +export const typescriptVersion = '^5.1.6'; export const tailwindVersion = '^3.3.0'; -export const testingLibraryReactVersion = '^14.0.0'; -export const testingLibraryJestDomVersion = '^5.16.5'; -export const testingLibraryUserEventsVersion = '^14.4.3'; +export const testingLibraryReactVersion = '^14.1.2'; +export const testingLibraryJestDomVersion = '^6.1.4'; +export const testingLibraryUserEventsVersion = '^14.5.1'; export function getRemixVersion(tree: Tree): string { return getPackageVersion(tree, '@remix-run/dev') ?? remixVersion; diff --git a/yarn.lock b/yarn.lock index 532f002ee..84304b3df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,6 +22,14 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + "@babel/code-frame@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" @@ -39,7 +47,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.6", "@babel/core@^7.20.7", "@babel/core@^7.21.3": +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.7", "@babel/core@^7.21.3": version "7.22.1" resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz#5de51c5206f4c6f5533562838337a603c1033cfd" integrity sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA== @@ -60,6 +68,27 @@ json5 "^2.2.2" semver "^6.3.0" +"@babel/core@^7.21.8": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/core@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" @@ -81,7 +110,17 @@ json5 "^2.2.2" semver "^6.3.1" -"@babel/generator@^7.18.6", "@babel/generator@^7.22.0", "@babel/generator@^7.22.3", "@babel/generator@^7.7.2": +"@babel/generator@^7.21.5", "@babel/generator@^7.23.3", "@babel/generator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== + dependencies: + "@babel/types" "^7.23.4" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/generator@^7.22.0", "@babel/generator@^7.22.3", "@babel/generator@^7.7.2": version "7.22.3" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz#0ff675d2edb93d7596c5f6728b52615cfc0df01e" integrity sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A== @@ -140,6 +179,17 @@ lru-cache "^5.1.1" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" @@ -166,6 +216,21 @@ "@babel/helper-split-export-declaration" "^7.18.6" semver "^6.3.0" +"@babel/helper-create-class-features-plugin@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.22.6", "@babel/helper-create-class-features-plugin@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" @@ -227,6 +292,11 @@ resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8" integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA== +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" @@ -248,6 +318,14 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" @@ -269,6 +347,13 @@ dependencies: "@babel/types" "^7.22.3" +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + "@babel/helper-member-expression-to-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" @@ -283,6 +368,13 @@ dependencies: "@babel/types" "^7.21.4" +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + "@babel/helper-module-imports@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" @@ -315,6 +407,17 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.5" +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -431,11 +534,21 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-identifier@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" @@ -446,6 +559,11 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + "@babel/helper-validator-option@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" @@ -488,6 +606,15 @@ "@babel/traverse" "^7.22.6" "@babel/types" "^7.22.5" +"@babel/helpers@^7.23.2": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" + "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -506,11 +633,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.6", "@babel/parser@^7.20.7", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4": +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4": version "7.22.4" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== +"@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== + "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": version "7.22.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" @@ -610,6 +751,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-syntax-decorators@^7.22.10": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz#a1d351d6c25bfdcf2e16f99b039101bc0ffcb0ca" + integrity sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-decorators@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.5.tgz#329fe2907c73de184033775637dbbc507f09116a" @@ -673,7 +821,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.21.4", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.21.4", "@babel/plugin-syntax-jsx@^7.7.2": version "7.21.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== @@ -687,6 +835,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-jsx@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -757,6 +912,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-typescript@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" @@ -1143,6 +1305,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/plugin-transform-modules-systemjs@^7.22.3": version "7.22.3" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz#cc507e03e88d87b016feaeb5dae941e6ef50d91e" @@ -1551,6 +1722,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz#da12914d17b3c4b307f32c5fd91fbfdf17d56f86" + integrity sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" + "@babel/plugin-transform-unicode-escapes@^7.21.5": version "7.21.5" resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" @@ -1613,7 +1794,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.18.6", "@babel/preset-env@^7.20.2": +"@babel/preset-env@^7.20.2": version "7.22.4" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.4.tgz#c86a82630f0e8c61d9bb9327b7b896732028cbed" integrity sha512-c3lHOjbwBv0TkhYCr+XCR6wKcSZ1QbQTVdSkZUaVpLv8CVWotBMArWUi5UAJrcrQaEnleVkkvaV8F/pmc/STZQ== @@ -1808,7 +1989,7 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" -"@babel/preset-typescript@^7.18.6", "@babel/preset-typescript@^7.21.0": +"@babel/preset-typescript@^7.21.0": version "7.21.5" resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz#68292c884b0e26070b4d66b202072d391358395f" integrity sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA== @@ -1819,6 +2000,17 @@ "@babel/plugin-transform-modules-commonjs" "^7.21.5" "@babel/plugin-transform-typescript" "^7.21.3" +"@babel/preset-typescript@^7.21.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" + "@babel/preset-typescript@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" @@ -1858,6 +2050,15 @@ "@babel/parser" "^7.21.9" "@babel/types" "^7.21.5" +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + "@babel/template@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" @@ -1867,7 +2068,7 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@^7.16.0", "@babel/traverse@^7.18.6", "@babel/traverse@^7.20.5", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.16.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.2": version "7.22.4" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.4.tgz#c3cf96c5c290bd13b55e29d025274057727664c0" integrity sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ== @@ -1899,7 +2100,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.3", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== + dependencies: + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.4" + "@babel/types" "^7.23.4" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.3", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.22.4" resolved "https://registry.npmjs.org/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA== @@ -1908,6 +2125,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.15", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@babel/types@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" @@ -1934,14 +2160,6 @@ resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== -"@esbuild-plugins/node-modules-polyfill@^0.1.4": - version "0.1.4" - resolved "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz#eb2f55da11967b2986c913f1a7957d1c868849c0" - integrity sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg== - dependencies: - escape-string-regexp "^4.0.0" - rollup-plugin-node-polyfills "^0.2.1" - "@esbuild/android-arm64@0.16.3": version "0.16.3" resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.3.tgz#6af6d16be6d534d776a51fc215bfd81a68906d2c" @@ -2309,10 +2527,10 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d" integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og== -"@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== +"@fastify/busboy@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" + integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== "@humanwhocodes/config-array@^0.11.10": version "0.11.10" @@ -2338,6 +2556,18 @@ resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2611,11 +2841,39 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jspm/core@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@jspm/core/-/core-2.0.1.tgz#3f08c59c60a5f5e994523ed6b0b665ec80adc94e" + integrity sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw== + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== +"@mdx-js/mdx@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-2.3.0.tgz#d65d8c3c28f3f46bb0e7cb3bf7613b39980671a9" + integrity sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/mdx" "^2.0.0" + estree-util-build-jsx "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-util-to-js "^1.1.0" + estree-walker "^3.0.0" + hast-util-to-estree "^2.0.0" + markdown-extensions "^1.0.0" + periscopic "^3.0.0" + remark-mdx "^2.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + unified "^10.0.0" + unist-util-position-from-estree "^1.0.0" + unist-util-stringify-position "^3.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + "@mole-inc/bin-wrapper@^8.0.1": version "8.0.1" resolved "https://registry.npmjs.org/@mole-inc/bin-wrapper/-/bin-wrapper-8.0.1.tgz#d7fd0ceb1cfa8a855293a3ed9d7d135f4d442f0e" @@ -2651,28 +2909,46 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== dependencies: - "@gar/promisify" "^1.0.1" semver "^7.3.5" -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== +"@npmcli/git@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6" + integrity sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ== dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" + "@npmcli/promise-spawn" "^6.0.0" + lru-cache "^7.4.4" + npm-pick-manifest "^8.0.0" + proc-log "^3.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^3.0.0" -"@npmcli/package-json@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a" - integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA== +"@npmcli/package-json@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-4.0.1.tgz#1a07bf0e086b640500791f6bf245ff43cc27fa37" + integrity sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q== + dependencies: + "@npmcli/git" "^4.1.0" + glob "^10.2.2" + hosted-git-info "^6.1.1" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^5.0.0" + proc-log "^3.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz#c8bc4fa2bd0f01cb979d8798ba038f314cfa70f2" + integrity sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg== dependencies: - json-parse-even-better-errors "^2.3.1" + which "^3.0.0" "@nrwl/cypress@17.0.1": version "17.0.1" @@ -3187,6 +3463,11 @@ dependencies: esquery "^1.4.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@pmmmwh/react-refresh-webpack-plugin@0.5.10": version "0.5.10" resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" @@ -3223,148 +3504,147 @@ "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" -"@remix-run/dev@1.15.0": - version "1.15.0" - resolved "https://registry.npmjs.org/@remix-run/dev/-/dev-1.15.0.tgz#6e719c0a8f4f4dbf6f8a203087812ad1872b72f7" - integrity sha512-BsE1GN6WM9PhN+agZi4TqUIuYzoHYZrufEdXLg3ZEYxWXqvtRKUNfhsYSDlEhrW+D5fyVQhJrs61wQ83sEXHLQ== +"@remix-run/dev@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@remix-run/dev/-/dev-2.3.0.tgz#5aa512a44fb8cfdd510dc51b93b8033f2d3d1f32" + integrity sha512-Eno0XHyIKo5GyzN4OAwNkgkyl4H1mLWbqeVUA8T5HmVDj+8qJLIcYeayS2BmA1KYAHJBiy5ufAGi2MpaXMjKww== dependencies: - "@babel/core" "^7.18.6" - "@babel/generator" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/plugin-syntax-typescript" "^7.20.0" - "@babel/preset-env" "^7.18.6" - "@babel/preset-typescript" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.20.2" - "@esbuild-plugins/node-modules-polyfill" "^0.1.4" - "@npmcli/package-json" "^2.0.0" - "@remix-run/server-runtime" "1.15.0" + "@babel/core" "^7.21.8" + "@babel/generator" "^7.21.5" + "@babel/parser" "^7.21.8" + "@babel/plugin-syntax-decorators" "^7.22.10" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/preset-typescript" "^7.21.5" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.22.5" + "@mdx-js/mdx" "^2.3.0" + "@npmcli/package-json" "^4.0.1" + "@remix-run/node" "2.3.0" + "@remix-run/router" "1.12.0-pre.0" + "@remix-run/server-runtime" "2.3.0" + "@types/mdx" "^2.0.5" "@vanilla-extract/integration" "^6.2.0" arg "^5.0.1" - cacache "^15.0.5" + cacache "^17.1.3" chalk "^4.1.2" chokidar "^3.5.1" + cross-spawn "^7.0.3" dotenv "^16.0.0" - esbuild "0.16.3" + es-module-lexer "^1.3.1" + esbuild "0.17.6" + esbuild-plugins-node-modules-polyfill "^1.6.0" execa "5.1.1" exit-hook "2.2.1" express "^4.17.1" - fast-glob "3.2.11" fs-extra "^10.0.0" get-port "^5.1.1" - glob-to-regexp "0.4.1" gunzip-maybe "^1.4.2" - inquirer "^8.2.1" jsesc "3.0.2" json5 "^2.2.2" lodash "^4.17.21" lodash.debounce "^4.0.8" - lru-cache "^7.14.1" - minimatch "^3.0.5" - node-fetch "^2.6.7" + minimatch "^9.0.0" + node-fetch "^2.6.9" ora "^5.4.1" + parse-multipart-data "^1.5.0" + picocolors "^1.0.0" + picomatch "^2.3.1" + pidtree "^0.6.0" postcss "^8.4.19" postcss-discard-duplicates "^5.1.0" postcss-load-config "^4.0.1" postcss-modules "^6.0.0" - prettier "2.7.1" + prettier "^2.7.1" pretty-ms "^7.0.1" - proxy-agent "^5.0.0" react-refresh "^0.14.0" - recast "^0.21.5" remark-frontmatter "4.0.1" remark-mdx-frontmatter "^1.0.1" semver "^7.3.7" - sort-package-json "^1.55.0" + set-cookie-parser "^2.6.0" tar-fs "^2.1.1" tsconfig-paths "^4.0.0" + undici "^5.22.1" ws "^7.4.5" - xdm "^2.0.0" -"@remix-run/node@1.15.0": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@remix-run/node/-/node-1.15.0.tgz#55058094dcb9ac4c37bccd30c10a82381560892e" - integrity sha512-CS0p8T6A2KvMoAW5zzLA/BtNNCsv34A5RJoouJvXK9/o6MriAQ/YSugg6ldS5mec49neSep+CGeL1RS6tL+3NQ== +"@remix-run/node@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@remix-run/node/-/node-2.3.0.tgz#97e1dcc7e8d597e14da310ae72d32d69c51f6b60" + integrity sha512-WQybWc1EWPLMD/btDtchVrhoLvz/ek6MB0gr2cV2N3Sxgn1VaJmpsN3+sUA5lK8vR2S/kOmGun2Ut3tKi8TKHg== dependencies: - "@remix-run/server-runtime" "1.15.0" - "@remix-run/web-fetch" "^4.3.2" - "@remix-run/web-file" "^3.0.2" - "@remix-run/web-stream" "^1.0.3" + "@remix-run/server-runtime" "2.3.0" + "@remix-run/web-fetch" "^4.4.1" + "@remix-run/web-file" "^3.1.0" + "@remix-run/web-stream" "^1.1.0" "@web3-storage/multipart-parser" "^1.0.0" - abort-controller "^3.0.0" cookie-signature "^1.1.0" source-map-support "^0.5.21" stream-slice "^0.1.2" -"@remix-run/router@1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz#57618e57942a5f0131374a9fdb0167e25a117fdc" - integrity sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg== +"@remix-run/router@1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.12.0.tgz#e89b64b6fa97a8a5b740a4c38c2904b80f1f229a" + integrity sha512-2hXv036Bux90e1GXTWSMfNzfDDK8LA8JYEWfyHxzvwdp6GyoWEovKc9cotb3KCKmkdwsIBuFGX7ScTWyiHv7Eg== -"@remix-run/server-runtime@1.15.0": - version "1.15.0" - resolved "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-1.15.0.tgz#78a3ad5e076d2cb9a0ed01d92df1caef09466514" - integrity sha512-DL9xjHfYYrEcOq5VbhYtrjJUWo/nFQAT7Y+Np/oC55HokyU6cb2jGhl52nx96aAxKwaFCse5N90GeodFsRzX7w== +"@remix-run/router@1.12.0-pre.0": + version "1.12.0-pre.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.12.0-pre.0.tgz#a7a3ed1941016f574147a97d64d3c687bf343113" + integrity sha512-+bBn9KqD2AC0pttSGydVFOZSsT0NqQ1+rGFwMTx9dRANk6oGxrPbKTDxLLikocscGzSL5przvcK4Uxfq8yU7BQ== + +"@remix-run/server-runtime@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@remix-run/server-runtime/-/server-runtime-2.3.0.tgz#e4d01529be5164dfc9339048238cf0a3820aafdf" + integrity sha512-9BiRK7VPm5nt/aOlRmeROXWA8HKgqjvQy+f9NNpqvf3jj62EUl0h4eUdyqRj6nNh44I+0XUBG7ZQ2xXTrGJATw== dependencies: - "@remix-run/router" "1.5.0" - "@types/cookie" "^0.4.0" - "@types/react" "^18.0.15" + "@remix-run/router" "1.12.0" + "@types/cookie" "^0.5.3" "@web3-storage/multipart-parser" "^1.0.0" - cookie "^0.4.1" + cookie "^0.5.0" set-cookie-parser "^2.4.8" source-map "^0.7.3" -"@remix-run/web-blob@^3.0.3", "@remix-run/web-blob@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@remix-run/web-blob/-/web-blob-3.0.4.tgz#99c67b9d0fb641bd0c07d267fd218ae5aa4ae5ed" - integrity sha512-AfegzZvSSDc+LwnXV+SwROTrDtoLiPxeFW+jxgvtDAnkuCX1rrzmVJ6CzqZ1Ai0bVfmJadkG5GxtAfYclpPmgw== +"@remix-run/web-blob@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@remix-run/web-blob/-/web-blob-3.1.0.tgz#e0c669934c1eb6028960047e57a13ed38bbfb434" + integrity sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g== dependencies: - "@remix-run/web-stream" "^1.0.0" + "@remix-run/web-stream" "^1.1.0" web-encoding "1.1.5" -"@remix-run/web-fetch@^4.3.2": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@remix-run/web-fetch/-/web-fetch-4.3.4.tgz#6149582fa2199b8e2a35d4e653ba05772bd0e675" - integrity sha512-AUM1XBa4hcgeNt2CD86OlB5aDLlqdMl0uJ+89R8dPGx07I5BwMXnbopCaPAkvSBIoHeT/IoLWIuZrLi7RvXS+Q== +"@remix-run/web-fetch@^4.4.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@remix-run/web-fetch/-/web-fetch-4.4.1.tgz#1ea34e6f1c660a52e7582007917a552f0efdc58b" + integrity sha512-xMceEGn2kvfeWS91nHSOhEQHPGgjFnmDVpWFZrbWPVdiTByMZIn421/tdSF6Kd1RsNsY+5Iwt3JFEKZHAcMQHw== dependencies: - "@remix-run/web-blob" "^3.0.4" - "@remix-run/web-form-data" "^3.0.3" - "@remix-run/web-stream" "^1.0.3" + "@remix-run/web-blob" "^3.1.0" + "@remix-run/web-file" "^3.1.0" + "@remix-run/web-form-data" "^3.1.0" + "@remix-run/web-stream" "^1.1.0" "@web3-storage/multipart-parser" "^1.0.0" abort-controller "^3.0.0" data-uri-to-buffer "^3.0.1" mrmime "^1.0.0" -"@remix-run/web-file@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@remix-run/web-file/-/web-file-3.0.2.tgz#1a6cc0900a1310ede4bc96abad77ac6eb27a2131" - integrity sha512-eFC93Onh/rZ5kUNpCQersmBtxedGpaXK2/gsUl49BYSGK/DvuPu3l06vmquEDdcPaEuXcsdGP0L7zrmUqrqo4A== +"@remix-run/web-file@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@remix-run/web-file/-/web-file-3.1.0.tgz#07219021a2910e90231bc30ca1ce693d0e9d3825" + integrity sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ== dependencies: - "@remix-run/web-blob" "^3.0.3" + "@remix-run/web-blob" "^3.1.0" -"@remix-run/web-form-data@^3.0.3": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@remix-run/web-form-data/-/web-form-data-3.0.4.tgz#18c5795edaffbc88c320a311766dc04644125bab" - integrity sha512-UMF1jg9Vu9CLOf8iHBdY74Mm3PUvMW8G/XZRJE56SxKaOFWGSWlfxfG+/a3boAgHFLTkP7K4H1PxlRugy1iQtw== +"@remix-run/web-form-data@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz#47f9ad8ce8bf1c39ed83eab31e53967fe8e3df6a" + integrity sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A== dependencies: web-encoding "1.1.5" -"@remix-run/web-stream@^1.0.0", "@remix-run/web-stream@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@remix-run/web-stream/-/web-stream-1.0.3.tgz#3284a6a45675d1455c4d9c8f31b89225c9006438" - integrity sha512-wlezlJaA5NF6SsNMiwQnnAW6tnPzQ5I8qk0Y0pSohm0eHKa2FQ1QhEKLVVcDDu02TmkfHgnux0igNfeYhDOXiA== +"@remix-run/web-stream@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@remix-run/web-stream/-/web-stream-1.1.0.tgz#b93a8f806c2c22204930837c44d81fdedfde079f" + integrity sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA== dependencies: web-streams-polyfill "^3.1.1" -"@rollup/pluginutils@^4.0.0": - version "4.2.1" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" - integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - "@rspack/binding-darwin-arm64@0.1.12": version "0.1.12" resolved "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-0.1.12.tgz#fc89956368557d9e2bcd33af147053f7b219b0f9" @@ -3900,10 +4180,10 @@ dependencies: "@types/node" "*" -"@types/cookie@^0.4.0": - version "0.4.1" - resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== +"@types/cookie@^0.5.3": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.5.4.tgz#7e70a20cd695bc48d46b08c2505874cd68b760e0" + integrity sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA== "@types/debug@^4.0.0": version "4.1.8" @@ -3928,13 +4208,6 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree-jsx@^0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-0.0.1.tgz#c36d7a1afeb47a95a8ee0b7bc8bc705db38f919d" - integrity sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A== - dependencies: - "@types/estree" "*" - "@types/estree-jsx@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz#7bfc979ab9f692b492017df42520f7f765e98df1" @@ -3980,14 +4253,6 @@ "@types/jsonfile" "*" "@types/node" "*" -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/graceful-fs@^4.1.3": version "4.1.6" resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" @@ -4081,10 +4346,10 @@ dependencies: "@types/unist" "*" -"@types/mdurl@^1.0.0": - version "1.0.2" - resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" - integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== +"@types/mdx@^2.0.0", "@types/mdx@^2.0.5": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.10.tgz#0d7b57fb1d83e27656156e4ee0dfba96532930e4" + integrity sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg== "@types/mime@*": version "3.0.1" @@ -4096,11 +4361,6 @@ resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/ms@*": version "0.7.31" resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" @@ -4126,11 +4386,6 @@ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/prop-types@*": - version "15.7.5" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - "@types/qs@*": version "6.9.7" resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" @@ -4141,15 +4396,6 @@ resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react@^18.0.15": - version "18.2.8" - resolved "https://registry.npmjs.org/@types/react/-/react-18.2.8.tgz#a77dcffe4e9af148ca4aa8000c51a1e8ed99e2c8" - integrity sha512-lTyWUNrd8ntVkqycEEplasWy2OxNlShj3zqS0LuB1ENUGis5HodmhM7DtCoUGbxj3VW/WsGA0DUhpG6XrM7gPA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -4162,11 +4408,6 @@ resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/scheduler@*": - version "0.16.3" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== - "@types/semver@^7.3.12": version "7.5.0" resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" @@ -4990,13 +5231,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== -ast-types@0.15.2: - version "0.15.2" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d" - integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== - dependencies: - tslib "^2.0.1" - ast-types@^0.13.2: version "0.13.4" resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" @@ -5004,9 +5238,9 @@ ast-types@^0.13.2: dependencies: tslib "^2.0.1" -astring@^1.6.0: +astring@^1.8.0: version "1.8.6" - resolved "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== async-retry@1.3.3: @@ -5274,13 +5508,6 @@ binary-extensions@^2.0.0: resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -5493,29 +5720,23 @@ cac@^6.7.14: resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== -cacache@^15.0.5: - version "15.3.0" - resolved "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== +cacache@^17.1.3: + version "17.1.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" + integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^7.7.1" + minipass "^7.0.3" minipass-collect "^1.0.2" minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" + minipass-pipeline "^1.2.4" p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" cacheable-lookup@^5.0.3: version "5.0.4" @@ -5601,6 +5822,11 @@ caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -5614,7 +5840,7 @@ chalk@5.0.1: resolved "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== -chalk@^2.0.0: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -5732,11 +5958,6 @@ cli-spinners@^2.5.0, cli-spinners@^2.6.1: resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - cli-width@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" @@ -5935,16 +6156,11 @@ cookie-signature@^1.1.0: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.1.tgz#790dea2cce64638c7ae04d9fabed193bd7ccf3b4" integrity sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw== -cookie@0.5.0: +cookie@0.5.0, cookie@^0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - cookies@0.8.0: version "0.8.0" resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" @@ -6065,7 +6281,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -6142,7 +6358,7 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@^3.0.2, csstype@^3.0.7: +csstype@^3.0.7: version "3.1.2" resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== @@ -6178,14 +6394,6 @@ dayjs@1.11.7: resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== -deasync@^0.1.0: - version "0.1.28" - resolved "https://registry.npmjs.org/deasync/-/deasync-0.1.28.tgz#9b447b79b3f822432f0ab6a8614c0062808b5ad2" - integrity sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg== - dependencies: - bindings "^1.5.0" - node-addon-api "^1.7.1" - debug@2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -6323,12 +6531,7 @@ destroy@1.2.0: resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -detect-newline@3.1.0, detect-newline@^3.0.0: +detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== @@ -6599,6 +6802,11 @@ envinfo@7.8.1: resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + errno@^0.1.1: version "0.1.8" resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -6685,6 +6893,11 @@ es-module-lexer@^0.9.0: resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== + es-set-tostringtag@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" @@ -6703,6 +6916,15 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +esbuild-plugins-node-modules-polyfill@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/esbuild-plugins-node-modules-polyfill/-/esbuild-plugins-node-modules-polyfill-1.6.1.tgz#9fe01118ac2c54674aa370128caec195aefee4a3" + integrity sha512-6sAwI24PV8W0zxeO+i4BS5zoQypS3SzEGwIdxpzpy65riRuK8apMw8PN0aKVLCTnLr0FgNIxUMRd9BsreBrtog== + dependencies: + "@jspm/core" "^2.0.1" + local-pkg "^0.4.3" + resolve.exports "^2.0.2" + esbuild@0.16.3: version "0.16.3" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.16.3.tgz#5868632fa23f7a8547f2a4ea359c44e946515c94" @@ -6938,7 +7160,7 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -6993,6 +7215,15 @@ estree-util-is-identifier-name@^2.0.0: resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz#fb70a432dcb19045e77b05c8e732f1364b4b49b2" integrity sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ== +estree-util-to-js@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz#0f80d42443e3b13bd32f7012fffa6f93603f4a36" + integrity sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + estree-util-value-to-estree@^1.0.0: version "1.3.0" resolved "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz#1d3125594b4d6680f666644491e7ac1745a3df49" @@ -7008,16 +7239,6 @@ estree-util-visit@^1.0.0: "@types/estree-jsx" "^1.0.0" "@types/unist" "^2.0.0" -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - estree-walker@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" @@ -7251,17 +7472,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@3.2.11: - version "3.2.11" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-glob@3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" @@ -7273,7 +7483,7 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9: +fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -7340,7 +7550,7 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" -figures@3.2.0, figures@^3.0.0: +figures@3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -7379,11 +7589,6 @@ file-type@^17.1.6: strtok3 "^7.0.0-alpha.9" token-types "^5.0.0-alpha.2" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - file-uri-to-path@2: version "2.0.0" resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" @@ -7483,6 +7688,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -7572,6 +7785,13 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + fs-monkey@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" @@ -7600,6 +7820,11 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -7701,11 +7926,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-hooks-list@1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-1.0.3.tgz#be5baaf78203ce342f2f844a9d2b03dba1b45156" - integrity sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ== - git-up@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/git-up/-/git-up-6.0.0.tgz#dbd6e4eee270338be847a0601e6d0763c90b74db" @@ -7735,7 +7955,7 @@ glob-parent@^6.0.1, glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-to-regexp@0.4.1, glob-to-regexp@^0.4.1: +glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== @@ -7752,6 +7972,17 @@ glob@7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^10.2.2: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + glob@^6.0.1: version "6.0.4" resolved "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" @@ -7801,20 +8032,6 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@10.0.0: - version "10.0.0" - resolved "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz#abfcd0630037ae174a88590132c2f6804e291072" - integrity sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - globby@13.1.2: version "13.1.2" resolved "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" @@ -7876,7 +8093,7 @@ got@12.2.0: p-cancelable "^3.0.0" responselike "^2.0.0" -got@^11.0.0, got@^11.8.5: +got@^11.8.5: version "11.8.6" resolved "https://registry.npmjs.org/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== @@ -8023,6 +8240,13 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + hast-util-to-estree@^2.0.0: version "2.3.3" resolved "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz#da60142ffe19a6296923ec222aba73339c8bf470" @@ -8054,6 +8278,13 @@ he@^1.2.0: resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +hosted-git-info@^6.0.0, hosted-git-info@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58" + integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w== + dependencies: + lru-cache "^7.5.1" + hosted-git-info@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" @@ -8260,7 +8491,7 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.9, ignore@^5.2.0: +ignore@^5.0.4, ignore@^5.1.9, ignore@^5.2.0: version "5.2.4" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -8301,11 +8532,6 @@ indent-string@^4.0.0: resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -8360,27 +8586,6 @@ inquirer@9.0.2: through "^2.3.6" wrap-ansi "^8.0.1" -inquirer@^8.2.1: - version "8.2.5" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" - integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^7.0.0" - internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -8496,6 +8701,13 @@ is-core-module@^2.11.0: dependencies: has "^1.0.3" +is-core-module@^2.8.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -8612,11 +8824,6 @@ is-path-inside@^3.0.2, is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -8840,6 +9047,15 @@ iterate-value@^1.0.2: es-get-iterator "^1.0.2" iterate-iterator "^1.0.1" +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: version "10.8.7" resolved "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" @@ -9346,6 +9562,11 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-parse-even-better-errors@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" + integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -9580,6 +9801,11 @@ loader-utils@^3.2.0: resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== +local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + locate-path@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -9687,9 +9913,9 @@ lowercase-keys@^3.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru-cache@7.18.3, lru-cache@^7.14.1: +lru-cache@7.18.3, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.18.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== lru-cache@^10.0.1: @@ -9719,18 +9945,16 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +"lru-cache@^9.1.1 || ^10.0.0": + version "10.0.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.3.tgz#b40014d7d2d16d94130b87297a04a1f24874ae7c" + integrity sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg== + macos-release@^3.0.1: version "3.2.0" resolved "https://registry.npmjs.org/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613" integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA== -magic-string@^0.25.3: - version "0.25.9" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" - integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== - dependencies: - sourcemap-codec "^1.4.8" - make-dir@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -9772,7 +9996,7 @@ mdast-util-definitions@^5.0.0: "@types/unist" "^2.0.0" unist-util-visit "^4.0.0" -mdast-util-from-markdown@^1.0.0: +mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.1.0: version "1.3.1" resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== @@ -9810,28 +10034,34 @@ mdast-util-mdx-expression@^1.0.0: mdast-util-from-markdown "^1.0.0" mdast-util-to-markdown "^1.0.0" -mdast-util-mdx-jsx@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-1.2.0.tgz#c0f5140e021fd134fa90272eb8bbddb39f8db399" - integrity sha512-5+ot/kfxYd3ChgEMwsMUO71oAfYjyRI3pADEK4I7xTmWLGQ8Y7ghm1CG36zUoUvDPxMlIYwQV/9DYHAUWdG4dA== +mdast-util-mdx-jsx@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz#7c1f07f10751a78963cfabee38017cbc8b7786d1" + integrity sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA== dependencies: - "@types/estree-jsx" "^0.0.1" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" - mdast-util-to-markdown "^1.0.0" + "@types/unist" "^2.0.0" + ccount "^2.0.0" + mdast-util-from-markdown "^1.1.0" + mdast-util-to-markdown "^1.3.0" parse-entities "^4.0.0" stringify-entities "^4.0.0" unist-util-remove-position "^4.0.0" unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -mdast-util-mdx@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-1.1.0.tgz#c98612804719309aea97e3da068658392e126488" - integrity sha512-leKb9uG7laXdyFlTleYV4ZEaCpsxeU1LlkkR/xp35pgKrfV1Y0fNCuOw9vaRc2a9YDpH22wd145Wt7UY5yzeZw== +mdast-util-mdx@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz#49b6e70819b99bb615d7223c088d295e53bb810f" + integrity sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw== dependencies: + mdast-util-from-markdown "^1.0.0" mdast-util-mdx-expression "^1.0.0" - mdast-util-mdx-jsx "^1.0.0" + mdast-util-mdx-jsx "^2.0.0" mdast-util-mdxjs-esm "^1.0.0" + mdast-util-to-markdown "^1.0.0" mdast-util-mdxjs-esm@^1.0.0: version "1.3.1" @@ -9852,17 +10082,16 @@ mdast-util-phrasing@^3.0.0: "@types/mdast" "^3.0.0" unist-util-is "^5.0.0" -mdast-util-to-hast@^11.0.0: - version "11.3.0" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-11.3.0.tgz#ea9220617a710e80aa5cc3ac7cc9d4bb0440ae7a" - integrity sha512-4o3Cli3hXPmm1LhB+6rqhfsIUBjnKFlIUZvudaermXB+4/KONdd/W4saWWkC+LBLbPMqhFSSTSRgafHsT5fVJw== +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" - "@types/mdurl" "^1.0.0" mdast-util-definitions "^5.0.0" - mdurl "^1.0.0" - unist-builder "^3.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" unist-util-visit "^4.0.0" @@ -9898,11 +10127,6 @@ mdn-data@2.0.30: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - media-query-parser@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz#ff79e56cee92615a304a1c2fa4f2bd056c0a1d29" @@ -9932,7 +10156,7 @@ merge-stream@^2.0.0: resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -10195,7 +10419,7 @@ micromark-util-resolve-all@^1.0.0: dependencies: micromark-util-types "^1.0.0" -micromark-util-sanitize-uri@^1.0.0: +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: version "1.2.0" resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== @@ -10333,6 +10557,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.0, minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -10352,14 +10583,14 @@ minipass-flush@^1.0.5: dependencies: minipass "^3.0.0" -minipass-pipeline@^1.2.2: +minipass-pipeline@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: +minipass@^3.0.0: version "3.3.6" resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== @@ -10371,6 +10602,11 @@ minipass@^5.0.0: resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + minizlib@^2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -10384,7 +10620,7 @@ mkdirp-classic@^0.5.2: resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@1.0.4, mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@1.0.4, mkdirp@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -10517,11 +10753,6 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-addon-api@^1.7.1: - version "1.7.2" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" - integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== - node-addon-api@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" @@ -10548,6 +10779,13 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" +node-fetch@^2.6.9: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + node-fetch@cjs: version "2.6.7" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -10585,6 +10823,16 @@ node-releases@^2.0.13: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +normalize-package-data@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588" + integrity sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q== + dependencies: + hosted-git-info "^6.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -10600,6 +10848,18 @@ normalize-url@^8.0.0: resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== +npm-install-checks@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + npm-package-arg@11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" @@ -10610,6 +10870,26 @@ npm-package-arg@11.0.1: semver "^7.3.5" validate-npm-package-name "^5.0.0" +npm-package-arg@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-10.1.0.tgz#827d1260a683806685d17193073cc152d3c7e9b1" + integrity sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA== + dependencies: + hosted-git-info "^6.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-pick-manifest@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa" + integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^10.0.0" + semver "^7.3.5" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -11038,6 +11318,11 @@ parse-ms@^2.1.0: resolved "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== +parse-multipart-data@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/parse-multipart-data/-/parse-multipart-data-1.5.0.tgz#ab894cc6c40229d0a2042500e120df7562d94b87" + integrity sha512-ck5zaMF0ydjGfejNMnlo5YU2oJ+pT+80Jb1y4ybanT27j+zbVP/jkYmCrUGsEln0Ox/hZmuvgy8Ra7AxbXP2Mw== + parse-node-version@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" @@ -11102,6 +11387,14 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -11150,11 +11443,16 @@ picocolors@^1.0.0: resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pify@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -11340,10 +11638,10 @@ prettier@2.6.2: resolved "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== -prettier@2.7.1: - version "2.7.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== +prettier@^2.7.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-format@^29.0.0, pretty-format@^29.5.0: version "29.5.0" @@ -11395,6 +11693,14 @@ promise-inflight@^1.0.1: resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + promise.allsettled@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.5.tgz#2443f3d4b2aa8dfa560f6ac2aa6c4ea999d75f53" @@ -11443,7 +11749,7 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-agent@5.0.0, proxy-agent@^5.0.0: +proxy-agent@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz#d31405c10d6e8431fde96cba7a0c027ce01d633b" integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== @@ -11693,16 +11999,6 @@ real-require@^0.1.0: resolved "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== -recast@^0.21.5: - version "0.21.5" - resolved "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz#e8cd22bb51bcd6130e54f87955d33a2b2e57b495" - integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== - dependencies: - ast-types "0.15.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -11829,6 +12125,14 @@ remark-mdx-frontmatter@^1.0.1: js-yaml "^4.0.0" toml "^3.0.0" +remark-mdx@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.3.0.tgz#efe678025a8c2726681bde8bf111af4a93943db4" + integrity sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g== + dependencies: + mdast-util-mdx "^2.0.0" + micromark-extension-mdxjs "^1.0.0" + remark-parse@^10.0.0: version "10.0.2" resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" @@ -11838,14 +12142,14 @@ remark-parse@^10.0.0: mdast-util-from-markdown "^1.0.0" unified "^10.0.0" -remark-rehype@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-9.1.0.tgz#e4b5b6e19c125b3780343eb66c3e9b99b0f06a81" - integrity sha512-oLa6YmgAYg19zb0ZrBACh40hpBLteYROaPLhBXzLgjqyHQrN+gVP9N/FJvfzuNNuzCutktkroXEZBrxAxKhh7Q== +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" - mdast-util-to-hast "^11.0.0" + mdast-util-to-hast "^12.1.0" unified "^10.0.0" request@2.88.2: @@ -11921,7 +12225,7 @@ resolve.exports@1.1.0: resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve.exports@^2.0.0: +resolve.exports@^2.0.0, resolve.exports@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== @@ -11970,6 +12274,11 @@ retry@0.13.1, retry@^0.13.1: resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -11989,29 +12298,6 @@ rimraf@~2.4.0: dependencies: glob "^6.0.1" -rollup-plugin-inject@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" - integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== - dependencies: - estree-walker "^0.6.1" - magic-string "^0.25.3" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-polyfills@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" - integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== - dependencies: - rollup-plugin-inject "^3.0.0" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - rollup@^3.21.0: version "3.23.1" resolved "https://registry.npmjs.org/rollup/-/rollup-3.23.1.tgz#a6e50cb86a17fc2e3248d8ec12ff8666992b0780" @@ -12031,7 +12317,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.5.5, rxjs@^7.5.6: +rxjs@^7.5.6: version "7.8.1" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -12191,7 +12477,7 @@ semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0: +semver@^7.0.0, semver@^7.1.1, semver@^7.5.3: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -12247,9 +12533,9 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-cookie-parser@^2.4.8: +set-cookie-parser@^2.4.8, set-cookie-parser@^2.6.0: version "2.6.0" - resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== setprototypeof@1.1.0: @@ -12319,6 +12605,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -12401,23 +12692,6 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" -sort-object-keys@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" - integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== - -sort-package-json@^1.55.0: - version "1.57.0" - resolved "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.57.0.tgz#e95fb44af8ede0bb6147e3f39258102d4bb23fc4" - integrity sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q== - dependencies: - detect-indent "^6.0.0" - detect-newline "3.1.0" - git-hooks-list "1.0.3" - globby "10.0.0" - is-plain-obj "2.1.0" - sort-object-keys "^1.1.3" - source-map-js@^1.0.1, source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -12457,16 +12731,37 @@ source-map@^0.7.0, source-map@^0.7.3: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - space-separated-tokens@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -12515,12 +12810,12 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== +ssri@^10.0.0: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== dependencies: - minipass "^3.1.1" + minipass "^7.0.3" stack-utils@^2.0.3: version "2.0.6" @@ -12588,6 +12883,15 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -12660,6 +12964,13 @@ stringify-entities@^4.0.0: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -12812,10 +13123,10 @@ tar-stream@^2.1.4, tar-stream@~2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.0.2: - version "6.1.15" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" - integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== +tar@^6.1.11: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -12983,6 +13294,11 @@ tree-kill@^1.2.2: resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + trim-repeated@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz#5d60556d6d40d9461b7c7e06c3ac20b6b1d50090" @@ -13169,6 +13485,13 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici@^5.22.1: + version "5.27.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411" + integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ== + dependencies: + "@fastify/busboy" "^2.0.0" + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -13212,17 +13535,17 @@ union@~0.5.0: dependencies: qs "^6.4.0" -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== dependencies: - unique-slug "^2.0.0" + unique-slug "^4.0.0" -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== dependencies: imurmurhash "^0.1.4" @@ -13233,13 +13556,6 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" -unist-builder@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.1.tgz#258b89dcadd3c973656b2327b347863556907f58" - integrity sha512-gnpOw7DIpCA0vpr6NqdPvTWnlPTApCTRzr+38E6hCWx3rz/cjo83SsKIlS1Z+L5ttScQ2AwutNnb8+tAvpb6qQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-generated@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" @@ -13441,6 +13757,14 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" +validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + validate-npm-package-name@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" @@ -13820,6 +14144,13 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +which@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" + integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== + dependencies: + isexe "^2.0.0" + widest-line@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" @@ -13849,6 +14180,15 @@ wordwrap@^1.0.0: resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -13910,35 +14250,6 @@ xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== -xdm@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/xdm/-/xdm-2.1.0.tgz#d0060eb0f1230b47247bc6b3208ca3965d0053a4" - integrity sha512-3LxxbxKcRogYY7cQSMy1tUuU1zKNK9YPqMT7/S0r7Cz2QpyF8O9yFySGD7caOZt+LWUOQioOIX+6ZzCoBCpcAA== - dependencies: - "@rollup/pluginutils" "^4.0.0" - "@types/estree-jsx" "^0.0.1" - astring "^1.6.0" - estree-util-build-jsx "^2.0.0" - estree-util-is-identifier-name "^2.0.0" - estree-walker "^3.0.0" - got "^11.0.0" - hast-util-to-estree "^2.0.0" - loader-utils "^2.0.0" - markdown-extensions "^1.0.0" - mdast-util-mdx "^1.0.0" - micromark-extension-mdxjs "^1.0.0" - periscopic "^3.0.0" - remark-parse "^10.0.0" - remark-rehype "^9.0.0" - source-map "^0.7.0" - unified "^10.0.0" - unist-util-position-from-estree "^1.0.0" - unist-util-stringify-position "^3.0.0" - unist-util-visit "^4.0.0" - vfile "^5.0.0" - optionalDependencies: - deasync "^0.1.0" - xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"