From 9f75f7cbfbd9df14ef8787920a6dc5f34bd615eb Mon Sep 17 00:00:00 2001 From: Katerina Skroumpelou Date: Wed, 11 Jan 2023 17:57:43 +0200 Subject: [PATCH] feat(storybook): version 7 executors (#14255) --- package.json | 1 + .../build-storybook.impl.spec.ts | 88 +--- .../build-storybook/build-storybook.impl.ts | 98 +++- packages/storybook/src/executors/models.ts | 39 +- .../src/executors/storybook/storybook.impl.ts | 79 ++- packages/storybook/src/executors/utils.ts | 94 +++- .../src/utils/test-configs/.storybook/main.js | 8 + .../test-configs/.storybook/tsconfig.json | 19 + .../utils/test-configs/executor-context.json | 239 +++++++++ packages/storybook/src/utils/utilities.ts | 70 +-- packages/storybook/tsconfig.lib.json | 3 +- scripts/depcheck/missing.ts | 1 + yarn.lock | 474 +++++++++++++----- 13 files changed, 930 insertions(+), 283 deletions(-) create mode 100644 packages/storybook/src/utils/test-configs/.storybook/main.js create mode 100644 packages/storybook/src/utils/test-configs/.storybook/tsconfig.json create mode 100644 packages/storybook/src/utils/test-configs/executor-context.json diff --git a/package.json b/package.json index 36c9b7571f..6263d97701 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "@storybook/core-server": "^6.5.15", "@storybook/manager-webpack5": "^6.5.15", "@storybook/react": "^6.5.15", + "@storybook/types": "^7.0.0-alpha.44", "@svgr/rollup": "^6.1.2", "@svgr/webpack": "^6.1.2", "@swc-node/register": "^1.4.2", diff --git a/packages/storybook/src/executors/build-storybook/build-storybook.impl.spec.ts b/packages/storybook/src/executors/build-storybook/build-storybook.impl.spec.ts index bc25a3399d..0ebd4b4c23 100644 --- a/packages/storybook/src/executors/build-storybook/build-storybook.impl.spec.ts +++ b/packages/storybook/src/executors/build-storybook/build-storybook.impl.spec.ts @@ -1,12 +1,18 @@ import { ExecutorContext, logger } from '@nrwl/devkit'; import { join } from 'path'; -jest.mock('@storybook/core-server/standalone', () => - jest.fn().mockImplementation(() => Promise.resolve()) -); -import * as storybook from '@storybook/core-server/standalone'; import storybookBuilder, { StorybookBuilderOptions, } from './build-storybook.impl'; +import * as executorContext from '../../utils/test-configs/executor-context.json'; +jest.mock('@storybook/core-server', () => { + const buildStaticStandalone = jest + .fn() + .mockImplementation(() => Promise.resolve()); + return { + buildStaticStandalone, + }; +}); +import * as build from '@storybook/core-server'; describe('Build storybook', () => { let context: ExecutorContext; @@ -16,85 +22,39 @@ describe('Build storybook', () => { let config: StorybookBuilderOptions['config']; beforeEach(async () => { - uiFramework = '@storybook/react'; - outputPath = '/root/dist/storybook'; config = { pluginPath: join( __dirname, - `/../../generators/configuration/root-files/.storybook/main.js` - ), - configFolder: join( - __dirname, - `/../../generators/configuration/root-files/.storybook` + `/../../utils/test-configs/.storybook/main.js` ), + configFolder: join(__dirname, `/../../utils/test-configs/.storybook`), srcRoot: join( __dirname, - `/../../generators/configuration/root-files/.storybook/tsconfig.json` + `/../../utils/test-configs/.storybook/tsconfig.json` ), }; options = { - uiFramework, - outputPath, config, + uiFramework: '@storybook/react', }; - context = { - root: '/root', - cwd: '/root', - projectName: 'proj', - targetName: 'storybook', - projectsConfigurations: { - version: 2, - projects: { - proj: { - root: '', - sourceRoot: 'src', - targets: { - build: { - executor: '@nrwl/web:webpack', - options: { - compiler: 'babel', - outputPath: 'dist/apps/webre', - index: 'apps/webre/src/index.html', - baseHref: '/', - main: 'apps/webre/src/main.tsx', - polyfills: 'apps/webre/src/polyfills.ts', - tsConfig: 'apps/webre/tsconfig.app.json', - assets: [ - 'apps/webre/src/favicon.ico', - 'apps/webre/src/assets', - ], - styles: ['apps/webre/src/styles.css'], - scripts: [], - webpackConfig: '@nrwl/react/plugins/webpack', - }, - }, - storybook: { - executor: '@nrwl/storybook:build-storybook', - options, - }, - }, - }, - }, - }, - nxJsonConfiguration: { - npmScope: 'test', - }, - isVerbose: false, - }; + context = executorContext as ExecutorContext; }); - it('should call the storybook static standalone build', async () => { - jest.spyOn(logger, 'info'); + it('should call the storybook buildStaticStandalone', async () => { + const loggerSpy = jest.spyOn(logger, 'info'); + + const standaloneSpy = jest + .spyOn(build, 'buildStaticStandalone') + .mockImplementation(() => Promise.resolve()); const result = await storybookBuilder(options, context); - expect(storybook).toHaveBeenCalled(); - expect(logger.info).toHaveBeenCalledWith( + expect(standaloneSpy).toHaveBeenCalled(); + expect(loggerSpy).toHaveBeenCalledWith( `NX Storybook files available in ${outputPath}` ); - - expect(logger.info).toHaveBeenCalledWith(`NX ui framework: ${uiFramework}`); + expect(loggerSpy).toHaveBeenCalledWith(`NX ui framework: @storybook/react`); expect(result.success).toBeTruthy(); }); }); diff --git a/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts b/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts index 68875087d8..747944da82 100644 --- a/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts +++ b/packages/storybook/src/executors/build-storybook/build-storybook.impl.ts @@ -1,9 +1,23 @@ -import { ExecutorContext, logger } from '@nrwl/devkit'; -import * as build from '@storybook/core-server/standalone'; +import { + ExecutorContext, + logger, + readJsonFile, + workspaceRoot, +} from '@nrwl/devkit'; +import * as build from '@storybook/core-server'; +import { + CLIOptions, + LoadOptions, + BuilderOptions, + PackageJson, +} from '@storybook/types'; // TODO (katerina): Remove when Storybook 7 import 'dotenv/config'; +import path = require('path'); +import { storybookConfigExists } from '../../utils/utilities'; import { CommonNxStorybookConfig } from '../models'; import { getStorybookFrameworkPath, + isStorybookV7, resolveCommonStorybookOptionMapper, runStorybookSetupCheck, } from '../utils'; @@ -13,43 +27,89 @@ export interface StorybookBuilderOptions extends CommonNxStorybookConfig { outputPath?: string; docsMode?: boolean; } - export default async function buildStorybookExecutor( options: StorybookBuilderOptions, context: ExecutorContext ) { - logger.info(`NX ui framework: ${options.uiFramework}`); + const storybook7 = isStorybookV7(); + if (storybook7) { + storybookConfigExists(options.config, context.projectName); + const packageJson = readJsonFile( + path.join(workspaceRoot, 'package.json') + ) as PackageJson; + const buildOptions = { + ...options, + workspaceRoot: context.root, + configDir: options.config.configFolder, + packageJson, + watch: false, + mode: options?.['mode'] ?? 'static', + outputDir: + (options?.['outputDir'] || options?.['output-dir']) ?? + options.outputPath, + ignorePreview: options['ignorePreview'] ?? false, + cache: options['cache'] ?? false, + } as CLIOptions & + LoadOptions & + BuilderOptions & { + outputDir: string; + }; - const frameworkPath = getStorybookFrameworkPath(options.uiFramework); - const { default: frameworkOptions } = await import(frameworkPath); + logger.info(`NX Storybook builder starting ...`); + await runInstance(buildOptions); + logger.info(`NX Storybook builder finished ...`); + logger.info(`NX Storybook files available in ${options.outputPath}`); + return { success: true }; + } else { + // TODO (katerina): Remove when Storybook 7 + logger.info(`NX ui framework: ${options.uiFramework}`); - const option = storybookOptionMapper(options, frameworkOptions, context); + const frameworkPath = getStorybookFrameworkPath(options.uiFramework); + const { default: frameworkOptions } = await import(frameworkPath); - // print warnings - runStorybookSetupCheck(options); + const buildOptions = storybookOptionMapper( + options, + frameworkOptions, + context + ); - logger.info(`NX Storybook builder starting ...`); - await runInstance(option); - logger.info(`NX Storybook builder finished ...`); - logger.info(`NX Storybook files available in ${options.outputPath}`); - return { success: true }; + // print warnings + runStorybookSetupCheck(options); + + logger.info(`NX Storybook builder starting ...`); + await runInstance(buildOptions); + logger.info(`NX Storybook builder finished ...`); + logger.info(`NX Storybook files available in ${options.outputPath}`); + return { success: true }; + } } -function runInstance(options: StorybookBuilderOptions): Promise { +function runInstance( + options: CLIOptions & + LoadOptions & + BuilderOptions & { + outputDir: string; + } +): Promise { const env = process.env.NODE_ENV ?? 'production'; process.env.NODE_ENV = env; - return build({ + + return build.buildStaticStandalone({ ...options, ci: true, - configType: env.toUpperCase(), - }); + } as any); // TODO (katerina): Change to actual types when Storybook 7 } +// TODO (katerina): Remove when Storybook 7 function storybookOptionMapper( builderOptions: StorybookBuilderOptions, frameworkOptions: any, context: ExecutorContext -) { +): CLIOptions & + LoadOptions & + BuilderOptions & { + outputDir: string; + } { const storybookOptions = { ...builderOptions, ...resolveCommonStorybookOptionMapper( diff --git a/packages/storybook/src/executors/models.ts b/packages/storybook/src/executors/models.ts index 312f0928a9..d9e0b23813 100644 --- a/packages/storybook/src/executors/models.ts +++ b/packages/storybook/src/executors/models.ts @@ -6,14 +6,35 @@ export interface StorybookConfig { } export interface CommonNxStorybookConfig { - uiFramework: - | '@storybook/angular' - | '@storybook/react' - | '@storybook/html' - | '@storybook/web-components' - | '@storybook/vue' - | '@storybook/vue3' - | '@storybook/svelte' - | '@storybook/react-native'; + uiFramework?: UiFramework; + uiFramework7?: UiFramework7; config: StorybookConfig; } + +export type UiFramework7 = + | '@storybook/angular' + | '@storybook/html-webpack5' + | '@storybook/next' + | '@storybook/preact-webpack5' + | '@storybook/react-webpack5' + | '@storybook/react-vite' + | '@storybook/server-webpack5' + | '@storybook/svelte-webpack5' + | '@storybook/svelte-vite' + | '@storybook/sveltekit' + | '@storybook/vue-webpack5' + | '@storybook/vue-vite' + | '@storybook/vue3-webpack5' + | '@storybook/vue3-vite' + | '@storybook/web-components-webpack5' + | '@storybook/web-components-vite'; + +export type UiFramework = + | '@storybook/angular' + | '@storybook/react' + | '@storybook/html' + | '@storybook/web-components' + | '@storybook/vue' + | '@storybook/vue3' + | '@storybook/svelte' + | '@storybook/react-native'; diff --git a/packages/storybook/src/executors/storybook/storybook.impl.ts b/packages/storybook/src/executors/storybook/storybook.impl.ts index cb2e1d0f2b..8c39d71357 100644 --- a/packages/storybook/src/executors/storybook/storybook.impl.ts +++ b/packages/storybook/src/executors/storybook/storybook.impl.ts @@ -1,12 +1,22 @@ -import { ExecutorContext } from '@nrwl/devkit'; -import { buildDev } from '@storybook/core-server'; +import { ExecutorContext, readJsonFile, workspaceRoot } from '@nrwl/devkit'; +import * as build from '@storybook/core-server'; import 'dotenv/config'; +import { storybookConfigExists } from '../../utils/utilities'; import { CommonNxStorybookConfig } from '../models'; import { getStorybookFrameworkPath, resolveCommonStorybookOptionMapper, runStorybookSetupCheck, + isStorybookV7, } from '../utils'; +import { + CLIOptions, + LoadOptions, + BuilderOptions, + PackageJson, +} from '@storybook/types'; // TODO (katerina): Remove when Storybook 7 +import path = require('path'); + export interface StorybookExecutorOptions extends CommonNxStorybookConfig { host?: string; port?: number; @@ -23,31 +33,68 @@ export default async function* storybookExecutor( options: StorybookExecutorOptions, context: ExecutorContext ): AsyncGenerator<{ success: boolean }> { - let frameworkPath = getStorybookFrameworkPath(options.uiFramework); - const frameworkOptions = (await import(frameworkPath)).default; + const storybook7 = isStorybookV7(); + if (storybook7) { + storybookConfigExists(options.config, context.projectName); + const packageJson = readJsonFile( + path.join(workspaceRoot, 'package.json') + ) as PackageJson; + const buildOptions = { + ...options, + workspaceRoot: context.root, + configDir: options.config.configFolder, + mode: 'dev', + packageJson, + watch: true, + ignorePreview: options['ignorePreview'] ?? false, + cache: options['cache'] ?? false, + } as CLIOptions & LoadOptions & BuilderOptions; - const option = storybookOptionMapper(options, frameworkOptions, context); + await runInstance(buildOptions, storybook7); + yield { success: true }; + // This Promise intentionally never resolves, leaving the process running + await new Promise<{ success: boolean }>(() => {}); + } else { + // TODO (katerina): Remove when Storybook 7 + let frameworkPath = getStorybookFrameworkPath(options.uiFramework); + const frameworkOptions = (await import(frameworkPath)).default; - // print warnings - runStorybookSetupCheck(options); + const option = storybookOptionMapper(options, frameworkOptions, context); - await runInstance(option); + // print warnings + runStorybookSetupCheck(options); - yield { success: true }; + await runInstance(option, storybook7); - // This Promise intentionally never resolves, leaving the process running - await new Promise<{ success: boolean }>(() => {}); + yield { success: true }; + + // This Promise intentionally never resolves, leaving the process running + await new Promise<{ success: boolean }>(() => {}); + } } -function runInstance(options: StorybookExecutorOptions) { +function runInstance( + options: CLIOptions & LoadOptions & BuilderOptions, + storybook7: boolean +) { const env = process.env.NODE_ENV ?? 'development'; process.env.NODE_ENV = env; - return buildDev({ - ...options, - configType: env.toUpperCase(), - } as any); + + if (storybook7) { + return build.buildDevStandalone({ + ...options, + configType: env.toUpperCase(), + } as any); // TODO (katerina): Change to actual types when Storybook 7 + } else { + // TODO (katerina): Remove when Storybook 7 + return build.buildDev({ + ...options, + configType: env.toUpperCase(), + } as any); + } } +// TODO (katerina): Remove when Storybook 7 function storybookOptionMapper( builderOptions: StorybookExecutorOptions, frameworkOptions: any, diff --git a/packages/storybook/src/executors/utils.ts b/packages/storybook/src/executors/utils.ts index 480bbf77c6..e765726c5f 100644 --- a/packages/storybook/src/executors/utils.ts +++ b/packages/storybook/src/executors/utils.ts @@ -1,19 +1,32 @@ import { ExecutorContext, joinPathFragments, logger } from '@nrwl/devkit'; import { findNodes } from 'nx/src/utils/typescript'; import 'dotenv/config'; -import { existsSync, readFileSync } from 'fs'; -import { join } from 'path'; +import { + constants, + copyFileSync, + existsSync, + readFileSync, + mkdtempSync, + statSync, +} from 'fs'; +import { tmpdir } from 'os'; +import { basename, join, sep } from 'path'; import { gte } from 'semver'; import ts = require('typescript'); -import { findOrCreateConfig } from '../utils/utilities'; -import { CommonNxStorybookConfig } from './models'; +import { + CommonNxStorybookConfig, + StorybookConfig, + UiFramework, +} from './models'; +import { storybookConfigExists } from '../utils/utilities'; export interface NodePackage { name: string; version: string; } -export function getStorybookFrameworkPath(uiFramework) { +// TODO (katerina): Remove when Storybook 7 +export function getStorybookFrameworkPath(uiFramework: UiFramework) { const serverOptionsPaths = { '@storybook/react': '@storybook/react/dist/cjs/server/options', '@storybook/html': '@storybook/html/dist/cjs/server/options', @@ -31,7 +44,8 @@ export function getStorybookFrameworkPath(uiFramework) { } } -function isStorybookV62onwards(uiFramework) { +// TODO (katerina): Remove when Storybook 7 +function isStorybookV62onwards(uiFramework: string) { const storybookPackageVersion = require(join( uiFramework, 'package.json' @@ -40,11 +54,21 @@ function isStorybookV62onwards(uiFramework) { return gte(storybookPackageVersion, '6.2.0-rc.4'); } +export function isStorybookV7() { + const storybookPackageVersion = require(join( + '@storybook/core-server', + 'package.json' + )).version; + return gte(storybookPackageVersion, '7.0.0-alpha.0'); +} + +// TODO (katerina): Remove when Storybook 7 export function runStorybookSetupCheck(options: CommonNxStorybookConfig) { webpackFinalPropertyCheck(options); reactWebpack5Check(options); } +// TODO (katerina): Remove when Storybook 7 function reactWebpack5Check(options: CommonNxStorybookConfig) { if (options.uiFramework === '@storybook/react') { const source = mainJsTsFileContent(options.config.configFolder); @@ -66,6 +90,7 @@ function reactWebpack5Check(options: CommonNxStorybookConfig) { } } +// TODO (katerina): Remove when Storybook 7 function mainJsTsFileContent(configFolder: string): ts.SourceFile { let storybookConfigFilePath = joinPathFragments(configFolder, 'main.js'); @@ -90,6 +115,7 @@ function mainJsTsFileContent(configFolder: string): ts.SourceFile { ); } +// TODO (katerina): Remove when Storybook 7 function webpackFinalPropertyCheck(options: CommonNxStorybookConfig) { let placesToCheck = [ { @@ -128,6 +154,7 @@ function webpackFinalPropertyCheck(options: CommonNxStorybookConfig) { } } +// TODO (katerina): Remove when Storybook 7 export function resolveCommonStorybookOptionMapper( builderOptions: CommonNxStorybookConfig, frameworkOptions: any, @@ -145,6 +172,61 @@ export function resolveCommonStorybookOptionMapper( return storybookOptions; } +// TODO (katerina): Remove when Storybook 7 +function findOrCreateConfig( + config: StorybookConfig, + context: ExecutorContext +): string { + if (storybookConfigExists(config, context.projectName)) { + return config.configFolder; + } else if ( + statSync(config.configPath).isFile() && + statSync(config.pluginPath).isFile() && + statSync(config.srcRoot).isFile() + ) { + return createStorybookConfig( + config.configPath, + config.pluginPath, + config.srcRoot + ); + } else { + const sourceRoot = + context.projectsConfigurations.projects[context.projectName].root; + if (statSync(join(context.root, sourceRoot, '.storybook')).isDirectory()) { + return join(context.root, sourceRoot, '.storybook'); + } + } + throw new Error('No configuration settings'); +} + +// TODO (katerina): Remove when Storybook 7 +function createStorybookConfig( + configPath: string, + pluginPath: string, + srcRoot: string +): string { + const tmpDir = tmpdir(); + const tmpFolder = `${tmpDir}${sep}`; + mkdtempSync(tmpFolder); + copyFileSync( + configPath, + `${tmpFolder}/${basename(configPath)}`, + constants.COPYFILE_EXCL + ); + copyFileSync( + pluginPath, + `${tmpFolder}/${basename(pluginPath)}`, + constants.COPYFILE_EXCL + ); + copyFileSync( + srcRoot, + `${tmpFolder}/${basename(srcRoot)}`, + constants.COPYFILE_EXCL + ); + return tmpFolder; +} + +// TODO (katerina): Remove when Storybook 7 export function builderIsWebpackButNotWebpack5( storybookConfig: ts.SourceFile ): boolean { diff --git a/packages/storybook/src/utils/test-configs/.storybook/main.js b/packages/storybook/src/utils/test-configs/.storybook/main.js new file mode 100644 index 0000000000..6497b183f1 --- /dev/null +++ b/packages/storybook/src/utils/test-configs/.storybook/main.js @@ -0,0 +1,8 @@ +module.exports = { + core: { builder: 'webpack5' }, + stories: [ + '../src/app/**/*.stories.mdx', + '../src/app/**/*.stories.@(js|jsx|ts|tsx)', + ], + addons: ['@storybook/addon-essentials', '@nrwl/react/plugins/storybook'], +}; diff --git a/packages/storybook/src/utils/test-configs/.storybook/tsconfig.json b/packages/storybook/src/utils/test-configs/.storybook/tsconfig.json new file mode 100644 index 0000000000..a76a277823 --- /dev/null +++ b/packages/storybook/src/utils/test-configs/.storybook/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "outDir": "" + }, + "exclude": [ + "../**/*.spec.ts", + "../**/*.spec.js", + "../**/*.spec.tsx", + "../**/*.spec.jsx" + ], + "include": [ + "../src/**/*.stories.ts", + "../src/**/*.stories.js", + "../src/**/*.stories.jsx", + "../src/**/*.stories.tsx", + "../src/**/*.stories.mdx", + "*.js" + ] +} diff --git a/packages/storybook/src/utils/test-configs/executor-context.json b/packages/storybook/src/utils/test-configs/executor-context.json new file mode 100644 index 0000000000..67b591273e --- /dev/null +++ b/packages/storybook/src/utils/test-configs/executor-context.json @@ -0,0 +1,239 @@ +{ + "root": "/root", + "cwd": "/root", + "projectName": "main-webpack", + "targetName": "build-storybook", + "target": { + "inputs": ["default", "^production", "{workspaceRoot}/.storybook/**/*"], + "executor": "@nrwl/storybook:build", + "outputs": ["{options.outputPath}"], + "options": { + "uiFramework": "@storybook/react", + "outputPath": "dist/storybook/main-webpack", + "config": { "configFolder": "apps/main-webpack/.storybook" } + }, + "configurations": { "ci": { "quiet": true } } + }, + "isVerbose": false, + "workspace": { + "projects": { + "main-webpack": { + "name": "main-webpack", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "apps/main-webpack/src", + "projectType": "application", + "targets": { + "build": { + "dependsOn": ["^build"], + "inputs": ["production", "^production"], + "executor": "@nrwl/webpack:webpack", + "outputs": ["{options.outputPath}"], + "defaultConfiguration": "production", + "options": { + "compiler": "babel", + "outputPath": "dist/apps/main-webpack", + "index": "apps/main-webpack/src/index.html", + "baseHref": "/", + "main": "apps/main-webpack/src/main.tsx", + "polyfills": "apps/main-webpack/src/polyfills.ts", + "tsConfig": "apps/main-webpack/tsconfig.app.json", + "assets": [ + "apps/main-webpack/src/favicon.ico", + "apps/main-webpack/src/assets" + ], + "styles": ["apps/main-webpack/src/styles.css"], + "scripts": [], + "webpackConfig": "@nrwl/react/plugins/webpack" + }, + "configurations": { + "development": { + "extractLicenses": false, + "optimization": false, + "sourceMap": true, + "vendorChunk": true + }, + "production": { + "fileReplacements": [ + { + "replace": "apps/main-webpack/src/environments/environment.ts", + "with": "apps/main-webpack/src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false + } + } + }, + "serve": { + "executor": "@nrwl/webpack:dev-server", + "defaultConfiguration": "development", + "options": { "buildTarget": "main-webpack:build", "hmr": true }, + "configurations": { + "development": { + "buildTarget": "main-webpack:build:development" + }, + "production": { + "buildTarget": "main-webpack:build:production", + "hmr": false + } + } + }, + "lint": { + "inputs": ["default", "{workspaceRoot}/.eslintrc.json"], + "executor": "@nrwl/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": ["apps/main-webpack/**/*.{ts,tsx,js,jsx}"] + }, + "configurations": {} + }, + "test": { + "inputs": [ + "default", + "^production", + "{workspaceRoot}/jest.preset.js" + ], + "executor": "@nrwl/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "jestConfig": "apps/main-webpack/jest.config.ts", + "passWithNoTests": true + }, + "configurations": {} + }, + "storybook": { + "executor": "@nrwl/storybook:storybook", + "options": { + "uiFramework": "@storybook/react", + "port": 4400, + "config": { "configFolder": "apps/main-webpack/.storybook" } + }, + "configurations": { "ci": { "quiet": true } } + }, + "build-storybook": { + "inputs": [ + "default", + "^production", + "{workspaceRoot}/.storybook/**/*" + ], + "executor": "@nrwl/storybook:build", + "outputs": ["{options.outputPath}"], + "options": { + "uiFramework": "@storybook/react", + "outputPath": "dist/storybook/main-webpack", + "config": { "configFolder": "apps/main-webpack/.storybook" } + }, + "configurations": { "ci": { "quiet": true } } + } + }, + "tags": [], + "root": "apps/main-webpack", + "implicitDependencies": [], + "files": [ + { + "file": "apps/main-webpack/.babelrc", + "hash": "61641ec8ac3659e204441c80bb06defe323e3110" + }, + { + "file": "apps/main-webpack/.browserslistrc", + "hash": "f1d12df4faa25ab7f0f03196105e957395f609af" + }, + { + "file": "apps/main-webpack/.eslintrc.json", + "hash": "734ddaceea447738208c9519158ad6b3062f3929" + }, + { + "file": "apps/main-webpack/.storybook/main.js", + "hash": "6497b183f14bb9ee1b68e013c84a879dee38cc2e" + }, + { + "file": "apps/main-webpack/.storybook/preview.js", + "hash": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391" + }, + { + "file": "apps/main-webpack/.storybook/tsconfig.json", + "hash": "286dc2f6355dd1648ce24735eb8e2f73812f43e0" + }, + { + "file": "apps/main-webpack/jest.config.ts", + "hash": "ad9065663034360622d4d8077bf88372713ded5f" + }, + { + "file": "apps/main-webpack/project.json", + "hash": "2dd14ce96bf294af9c03b4b9a7b2e63ca3b9f7ae" + }, + { + "file": "apps/main-webpack/src/app/app.module.css", + "hash": "2304db70129656b487a8af853378187f05c7c4f4" + }, + { + "file": "apps/main-webpack/src/app/app.spec.tsx", + "hash": "845ffc2b6481d7cc21b167866f1cb4dfb7670b15", + "deps": ["npm:@testing-library/react"] + }, + { + "file": "apps/main-webpack/src/app/app.stories.tsx", + "hash": "c4cd97cc05479c40f4670f1d86e616b6a8d1c469", + "deps": ["npm:@storybook/react"] + }, + { + "file": "apps/main-webpack/src/app/app.tsx", + "hash": "dde065fb5f2d31813c62ec6b680909263f5b2a4a", + "deps": ["react-rollup", "utils-one"] + }, + { + "file": "apps/main-webpack/src/assets/.gitkeep", + "hash": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391" + }, + { + "file": "apps/main-webpack/src/environments/environment.prod.ts", + "hash": "c9669790be176ac85a5d8c11278875c2f52dc507" + }, + { + "file": "apps/main-webpack/src/environments/environment.ts", + "hash": "7ed83767fff25adfed19d52b2821a432f8ed18b1" + }, + { + "file": "apps/main-webpack/src/favicon.ico", + "hash": "317ebcb2336e0833a22dddf0ab287849f26fda57" + }, + { + "file": "apps/main-webpack/src/index.html", + "hash": "0d19c704e99db51797e98077e10f4da87c610731" + }, + { + "file": "apps/main-webpack/src/main.tsx", + "hash": "5b0ece955a67a0ed4b2032934cb10e6e9109e1ec", + "deps": ["npm:react", "npm:react-dom"] + }, + { + "file": "apps/main-webpack/src/polyfills.ts", + "hash": "2adf3d05b6fcf479dd61c74f6bda95d9edb6ac6b", + "deps": ["npm:core-js", "npm:regenerator-runtime"] + }, + { + "file": "apps/main-webpack/src/styles.css", + "hash": "90d4ee0072ce3fc41812f8af910219f9eea3c3de" + }, + { + "file": "apps/main-webpack/tsconfig.app.json", + "hash": "f73f9413ef49a21985f857b3ccf76218a320ab2a" + }, + { + "file": "apps/main-webpack/tsconfig.json", + "hash": "e0ece994b0375043dbcedd4cf9a798fc7e73df18" + }, + { + "file": "apps/main-webpack/tsconfig.spec.json", + "hash": "3100599036fa3211fc7aa6a4f95037c69b64c54c" + } + ] + } + }, + "version": 2 + } +} diff --git a/packages/storybook/src/utils/utilities.ts b/packages/storybook/src/utils/utilities.ts index ff2a85a408..ad6eade8e9 100644 --- a/packages/storybook/src/utils/utilities.ts +++ b/packages/storybook/src/utils/utilities.ts @@ -1,5 +1,4 @@ import { - ExecutorContext, readJson, readJsonFile, TargetConfiguration, @@ -8,9 +7,7 @@ import { import { CompilerOptions } from 'typescript'; import { storybookVersion } from './versions'; import { StorybookConfig } from '../executors/models'; -import { constants, copyFileSync, mkdtempSync, statSync } from 'fs'; -import { tmpdir } from 'os'; -import { basename, join, sep } from 'path'; +import { statSync } from 'fs'; import { findNodes } from 'nx/src/utils/typescript'; import ts = require('typescript'); @@ -156,56 +153,25 @@ export type TsConfig = { references?: Array<{ path: string }>; }; -export function findOrCreateConfig( +export function storybookConfigExists( config: StorybookConfig, - context: ExecutorContext -): string { - if (config?.configFolder && statSync(config.configFolder).isDirectory()) { - return config.configFolder; - } else if ( - statSync(config.configPath).isFile() && - statSync(config.pluginPath).isFile() && - statSync(config.srcRoot).isFile() - ) { - return createStorybookConfig( - config.configPath, - config.pluginPath, - config.srcRoot - ); - } else { - const sourceRoot = - context.projectsConfigurations.projects[context.projectName].root; - if (statSync(join(context.root, sourceRoot, '.storybook')).isDirectory()) { - return join(context.root, sourceRoot, '.storybook'); - } - } - throw new Error('No configuration settings'); -} + projectName: string +): boolean { + const exists = !!( + config?.configFolder && statSync(config.configFolder).isDirectory() + ); -function createStorybookConfig( - configPath: string, - pluginPath: string, - srcRoot: string -): string { - const tmpDir = tmpdir(); - const tmpFolder = `${tmpDir}${sep}`; - mkdtempSync(tmpFolder); - copyFileSync( - configPath, - `${tmpFolder}/${basename(configPath)}`, - constants.COPYFILE_EXCL - ); - copyFileSync( - pluginPath, - `${tmpFolder}/${basename(pluginPath)}`, - constants.COPYFILE_EXCL - ); - copyFileSync( - srcRoot, - `${tmpFolder}/${basename(srcRoot)}`, - constants.COPYFILE_EXCL - ); - return tmpFolder; + if (!exists) { + throw new Error( + `Could not find Storybook configuration for project ${projectName}. + Please generate Storybook configuration using the following command: + + nx g @nrwl/storybook:configuration --name=${projectName} + ` + ); + } + + return exists; } export function dedupe(arr: string[]) { diff --git a/packages/storybook/tsconfig.lib.json b/packages/storybook/tsconfig.lib.json index 1d2ddef3c1..2edf534f73 100644 --- a/packages/storybook/tsconfig.lib.json +++ b/packages/storybook/tsconfig.lib.json @@ -11,7 +11,8 @@ "**/*.test.ts", "**/*_spec.ts", "**/*_test.ts", - "jest.config.ts" + "jest.config.ts", + "src/**/test-configs" ], "include": ["**/*.ts"] } diff --git a/scripts/depcheck/missing.ts b/scripts/depcheck/missing.ts index d8c6bd02fe..fb69f85973 100644 --- a/scripts/depcheck/missing.ts +++ b/scripts/depcheck/missing.ts @@ -119,6 +119,7 @@ const IGNORE_MATCHES_IN_PACKAGE = { '@storybook/addon-essentials', '@storybook/core', '@storybook/core-server', + '@storybook/types', 'rxjs', ], nx: [ diff --git a/yarn.lock b/yarn.lock index fd41ae5e62..1683a3df47 100644 --- a/yarn.lock +++ b/yarn.lock @@ -438,6 +438,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== +"@babel/compat-data@^7.20.5": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" + integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== + "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -481,7 +486,28 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.15.0", "@babel/core@^7.17.2", "@babel/core@^7.18.5", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.12" + "@babel/types" "^7.20.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.15.0", "@babel/core@^7.17.2", "@babel/core@^7.18.5": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.0.tgz#d2f5f4f2033c00de8096be3c9f45772563e150c3" integrity sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ== @@ -511,12 +537,12 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.7.2": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" - integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== dependencies: - "@babel/types" "^7.18.13" + "@babel/types" "^7.20.7" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -556,12 +582,12 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" - integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== +"@babel/generator@^7.7.2": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" + integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.18.13" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -580,7 +606,18 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz#537ec8339d53e806ed422f1e06c8f17d55b96bb0" integrity sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA== @@ -646,17 +683,18 @@ "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-class-features-plugin@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz#3c08a5b5417c7f07b5cf3dfb6dc79cbec682e8c2" - integrity sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA== +"@babel/helper-create-class-features-plugin@^7.20.5": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" + integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.19.1" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-create-class-features-plugin@^7.20.7": @@ -754,7 +792,21 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== @@ -865,7 +917,7 @@ dependencies: "@babel/types" "^7.20.2" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9", "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== @@ -909,7 +961,16 @@ "@babel/traverse" "^7.19.0" "@babel/types" "^7.19.0" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.19.0": +"@babel/helpers@^7.12.5", "@babel/helpers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" + integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/helpers@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== @@ -941,11 +1002,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== -"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.18.10": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.18.10": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.0.tgz#497fcafb1d5b61376959c1c338745ef0577aa02c" integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw== +"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== + "@babel/parser@^7.18.13": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" @@ -971,11 +1037,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== -"@babel/parser@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" - integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -1029,18 +1090,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.12.12": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.2.tgz#1c6c32b2a44b154ebeec2bb534f9eaebdb541fb6" - integrity sha512-nkBH96IBmgKnbHQ5gXFrcmez+Z9S2EIDKDQGp005ROqBigc88Tky4rzCnlP/lnlj245dCEQl4/YyV0V1kYh5dw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.20.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.19.1" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/plugin-syntax-decorators" "^7.19.0" - -"@babel/plugin-proposal-decorators@^7.14.5": +"@babel/plugin-proposal-decorators@^7.12.12", "@babel/plugin-proposal-decorators@^7.14.5": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.7.tgz#05d37453c2ce818f3e47bbeda9468c8de947eecc" integrity sha512-JB45hbUweYpwAGjkiM7uCyXMENH2lG+9r3G2E+ttc2PRXAoEkpfd/KW5jDg4j8RS6tLtTG1jZi9LbHZVSfs1/A== @@ -1116,7 +1166,18 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.19.4": +"@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-object-rest-spread@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz#a8fc86e8180ff57290c91a75d83fe658189b642d" integrity sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q== @@ -1146,7 +1207,16 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.18.9": +"@babel/plugin-proposal-optional-chaining@^7.12.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" + integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== @@ -1163,7 +1233,17 @@ "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.12.1", "@babel/plugin-proposal-private-property-in-object@^7.18.6": +"@babel/plugin-proposal-private-property-in-object@^7.12.1": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" + integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== @@ -1342,7 +1422,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.18.6": +"@babel/plugin-transform-arrow-functions@^7.12.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" + integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== @@ -1366,11 +1453,11 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.12.12": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz#91fe5e6ffc9ba13cb6c95ed7f0b1204f68c988c5" - integrity sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w== + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz#9f5a3424bd112a3f32fe0cf9364fbb155cff262a" + integrity sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-block-scoping@^7.19.4": version "7.19.4" @@ -1386,7 +1473,22 @@ dependencies: "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.19.0": +"@babel/plugin-transform-classes@^7.12.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073" + integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-classes@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20" integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== @@ -1424,11 +1526,11 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.12.1": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" - integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" + integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-destructuring@^7.19.4": version "7.19.4" @@ -1574,10 +1676,10 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.1": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz#7b3468d70c3c5b62e46be0a47b6045d8590fb748" - integrity sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA== +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" + integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -1588,6 +1690,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-transform-parameters@^7.20.1": + version "7.20.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz#7b3468d70c3c5b62e46be0a47b6045d8590fb748" + integrity sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" @@ -1623,7 +1732,18 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.18.6" -"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.18.6": +"@babel/plugin-transform-react-jsx@^7.12.12": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz#025d85a1935fd7e19dfdcb1b1d4df34d4da484f7" + integrity sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-jsx" "^7.18.6" + "@babel/types" "^7.20.7" + +"@babel/plugin-transform-react-jsx@^7.18.6": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== @@ -1676,7 +1796,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.19.0": +"@babel/plugin-transform-spread@^7.12.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + +"@babel/plugin-transform-spread@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== @@ -1951,13 +2079,20 @@ core-js-pure "^3.25.1" regenerator-runtime "^0.13.10" -"@babel/runtime@7.20.1", "@babel/runtime@^7.0.0", "@babel/runtime@^7.17.8", "@babel/runtime@^7.5.0": +"@babel/runtime@7.20.1", "@babel/runtime@^7.17.8", "@babel/runtime@^7.5.0": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== dependencies: regenerator-runtime "^0.13.10" +"@babel/runtime@^7.0.0", "@babel/runtime@^7.14.8": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" + integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.0.tgz#824a9ef325ffde6f78056059db3168c08785e24a" @@ -1965,14 +2100,7 @@ dependencies: regenerator-runtime "^0.13.10" -"@babel/runtime@^7.14.8": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" - integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/template@7.18.10", "@babel/template@^7.12.7", "@babel/template@^7.18.10", "@babel/template@^7.3.3": +"@babel/template@7.18.10", "@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -1981,7 +2109,7 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/template@^7.20.7": +"@babel/template@^7.12.7", "@babel/template@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -1990,7 +2118,23 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5" + integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.12.5", "@babel/traverse@^7.16.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== @@ -2070,7 +2214,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.18.10", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.18.13" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== @@ -2079,6 +2223,15 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" +"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.2.0", "@babel/types@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@babel/types@^7.18.13", "@babel/types@^7.19.3": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" @@ -2124,15 +2277,6 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -4646,9 +4790,9 @@ tslib "^2.4.0" "@pmmmwh/react-refresh-webpack-plugin@^0.5.3": - version "0.5.9" - resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.9.tgz#35aae6624a6270ca7ad755800b7eec417fa6f830" - integrity sha512-7QV4cqUwhkDIHpMAZ9mestSJ2DMIotVTbOUwbiudhjCRTAWWKIaBecELiEM2LT3AHFeOAaHIcFu4dbXjX+9GBA== + version "0.5.10" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" + integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA== dependencies: ansi-html-community "^0.0.8" common-path-prefix "^3.0.0" @@ -4656,7 +4800,7 @@ error-stack-parser "^2.0.6" find-up "^5.0.0" html-entities "^2.1.0" - loader-utils "^2.0.3" + loader-utils "^2.0.4" schema-utils "^3.0.0" source-map "^0.7.3" @@ -5833,6 +5977,17 @@ memoizerific "^1.11.3" regenerator-runtime "^0.13.7" +"@storybook/types@^7.0.0-alpha.44": + version "7.0.0-alpha.44" + resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.0.0-alpha.44.tgz#6867e82bb7fe98677e9a6a8947540afe02033029" + integrity sha512-rOZJQbQXjMKsOhHHDN6SsfTlS+bAk3l2BGP1OqT56YC3quFGpUIv6s3bjZ/sYR35u5csT8u1wZ7+k7dxuVzd0w== + dependencies: + "@babel/core" "^7.12.10" + "@types/babel__core" "^7.0.0" + "@types/express" "^4.7.0" + express "^4.17.1" + file-system-cache "^2.0.0" + "@storybook/ui@6.5.15": version "6.5.15" resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.15.tgz#e4d80465116e53d48d2c3bb616909c37f5405181" @@ -6314,6 +6469,17 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== +"@types/babel__core@^7.0.0": + version "7.1.20" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" + integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__core@^7.1.14": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" @@ -6451,6 +6617,15 @@ "@types/qs" "*" "@types/range-parser" "*" +"@types/express-serve-static-core@^4.17.31": + version "4.17.32" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82" + integrity sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/express@*", "@types/express@4.17.14", "@types/express@^4.17.13": version "4.17.14" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" @@ -6461,6 +6636,16 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/express@^4.7.0": + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.31" + "@types/qs" "*" + "@types/serve-static" "*" + "@types/flat@^5.0.1": version "5.0.2" resolved "https://registry.yarnpkg.com/@types/flat/-/flat-5.0.2.tgz#642a51a037d1f52fda082312b0e4566dc09a9f8f" @@ -6496,7 +6681,14 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": +"@types/graceful-fs@^4.1.2": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" + integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + dependencies: + "@types/node" "*" + +"@types/graceful-fs@^4.1.3": version "4.1.5" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== @@ -6688,9 +6880,9 @@ integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0": - version "16.18.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.3.tgz#d7f7ba828ad9e540270f01ce00d391c54e6e0abc" - integrity sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg== + version "16.18.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.11.tgz#cbb15c12ca7c16c85a72b6bdc4d4b01151bb3cae" + integrity sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA== "@types/node@^14.14.31": version "14.18.33" @@ -6969,9 +7161,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + version "15.0.15" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.15.tgz#e609a2b1ef9e05d90489c2f5f45bbfb2be092158" + integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== dependencies: "@types/yargs-parser" "*" @@ -8036,7 +8228,15 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -9147,7 +9347,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.21.4, browserslist@^4.20.2, browserslist@^4.21.4: +browserslist@4.21.4, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.4: version "4.21.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== @@ -9157,7 +9357,7 @@ browserslist@4.21.4, browserslist@^4.20.2, browserslist@^4.21.4: node-releases "^2.0.6" update-browserslist-db "^1.0.9" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.20.3, browserslist@^4.21.3: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.20.3, browserslist@^4.21.3: version "4.21.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== @@ -9524,9 +9724,9 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001406, can integrity sha512-n7cosrHLl8AWt0wwZw/PJZgUg3lV0gk9LMI7ikGJwhyhgsd2Nb65vKvmSexCqq/J7rbH3mFG6yZZiPR5dLPW5A== caniuse-lite@^1.0.30001109: - version "1.0.30001431" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" - integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== + version "1.0.30001442" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz#40337f1cf3be7c637b061e2f78582dc1daec0614" + integrity sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow== caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373: version "1.0.30001418" @@ -10418,11 +10618,11 @@ core-js-compat@^3.25.1: browserslist "^4.21.4" core-js-compat@^3.8.1: - version "3.25.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.1.tgz#6f13a90de52f89bbe6267e5620a412c7f7ff7e42" - integrity sha512-pOHS7O0i8Qt4zlPW/eIFjwp+NrTPx+wTL0ctgI2fHn31sZOq89rDsmtc/A2vAX7r6shl+bmVI+678He46jgBlw== + version "3.27.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.27.1.tgz#b5695eb25c602d72b1d30cbfba3cb7e5e4cf0a67" + integrity sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA== dependencies: - browserslist "^4.21.3" + browserslist "^4.21.4" core-js-pure@^3.23.3, core-js-pure@^3.25.1: version "3.26.0" @@ -11864,9 +12064,9 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" es6-shim@^0.35.5: - version "0.35.6" - resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.6.tgz#d10578301a83af2de58b9eadb7c2c9945f7388a0" - integrity sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA== + version "0.35.7" + resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.7.tgz#db00f1cbb7d4de70b50dcafa45b157e9ba28f5d2" + integrity sha512-baZkUfTDSx7X69+NA8imbvGrsPfqH0MX7ADdIDjqwsI8lkTgLIiD2QWrUCSGsUQ0YMnSCA/4pNgSyXdnLHWf3A== es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.3" @@ -12798,6 +12998,14 @@ file-system-cache@^1.0.5: fs-extra "^10.1.0" ramda "^0.28.0" +file-system-cache@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-2.0.1.tgz#1ce31c4a75ae13c00666bbde0c890cae8d980cd7" + integrity sha512-ypttSkXKUUEOSNU7qxmtlN/3wiFihpFdH9c7YZ/bYYepNN/+2moCI4TXIFpFWslRAb/Bzl0vyfTvYcHLqqpxfA== + dependencies: + fs-extra "^10.1.0" + ramda "^0.28.0" + file-type@^16.2.0: version "16.5.4" resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.4.tgz#474fb4f704bee427681f98dd390058a172a6c2fd" @@ -16938,9 +17146,9 @@ memfs@^3.0.1, memfs@^3.4.1, memfs@^3.4.3: fs-monkey "^1.0.3" memfs@^3.1.2, memfs@^3.2.2: - version "3.4.10" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.10.tgz#4cdff7cfd21351a85e11b08aa276ebf100210a4d" - integrity sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ== + version "3.4.13" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.13.tgz#248a8bd239b3c240175cd5ec548de5227fc4f345" + integrity sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg== dependencies: fs-monkey "^1.0.3" @@ -17276,6 +17484,13 @@ minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: dependencies: yallist "^4.0.0" +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== + dependencies: + yallist "^4.0.0" + minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -19568,7 +19783,7 @@ postcss-selector-not@^5.0.0: dependencies: balanced-match "^1.0.0" -postcss-selector-parser@6.0.10, postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: +postcss-selector-parser@6.0.10, postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -19576,6 +19791,14 @@ postcss-selector-parser@6.0.10, postcss-selector-parser@^6.0.0, postcss-selector cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.0.0: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-svgo@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" @@ -19632,7 +19855,7 @@ postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0 picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.1.10, postcss@^8.2.14, postcss@^8.2.15, postcss@^8.3.5, postcss@^8.3.7, postcss@^8.4.17, postcss@^8.4.7: +postcss@^8.1.10, postcss@^8.2.14, postcss@^8.3.5, postcss@^8.3.7, postcss@^8.4.17, postcss@^8.4.7: version "8.4.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== @@ -19641,6 +19864,15 @@ postcss@^8.1.10, postcss@^8.2.14, postcss@^8.2.15, postcss@^8.3.5, postcss@^8.3. picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.2.15: + version "8.4.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^8.4.14, postcss@^8.4.19, postcss@^8.4.20: version "8.4.20" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" @@ -21096,9 +21328,9 @@ sass-loader@13.2.0: neo-async "^2.6.2" sass-loader@^10.1.0: - version "10.3.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.3.1.tgz#a45f0d1dd7ea90de7eb099239a18c83dea6e6341" - integrity sha512-y2aBdtYkbqorVavkC3fcJIUDGIegzDWPn3/LAFhsf3G+MzPKTJx37sROf5pXtUeggSVbNbmfj8TgRaSLMelXRA== + version "10.4.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.4.1.tgz#bea4e173ddf512c9d7f53e9ec686186146807cbf" + integrity sha512-aX/iJZTTpNUNx/OSYzo2KsjIUQHqvWsAhhUijFjAPdZTEhstjZI9zTNvkTTwsx+uNUJqUwOw5gacxQMx4hJxGQ== dependencies: klona "^2.0.4" loader-utils "^2.0.0" @@ -22519,13 +22751,13 @@ tar@6.1.11, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: yallist "^4.0.0" tar@^6.0.2: - version "6.1.12" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.12.tgz#3b742fb05669b55671fb769ab67a7791ea1a62e6" - integrity sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw== + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^4.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -22638,7 +22870,7 @@ terser@^4.1.2, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.10.0, terser@^5.14.1, terser@^5.3.4: +terser@^5.10.0, terser@^5.14.1: version "5.15.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.0.tgz#e16967894eeba6e1091509ec83f0c60e179f2425" integrity sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA== @@ -22648,6 +22880,16 @@ terser@^5.10.0, terser@^5.14.1, terser@^5.3.4: commander "^2.20.0" source-map-support "~0.5.20" +terser@^5.3.4: + version "5.16.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" + integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"