From 1bbaf8c20edc16051b5a171ac4ec8a63f03871d0 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Thu, 30 Nov 2023 18:36:51 +0100 Subject: [PATCH 1/9] WIP playwright only implementation --- .gitignore | 1 + package.json | 20 +- playwright/custom-environment.js | 20 - playwright/global-setup.js | 6 - playwright/global-teardown.js | 7 - playwright/jest-setup.js | 24 - playwright/test-runner-jest.config.js | 15 - playwright/test-runner-playwright.config.js | 13 + playwright/transform.js | 17 - scripts/delete-playwright-cache.js | 84 +++ src/config/global.setup.ts | 3 + src/config/jest-playwright.test.ts | 115 ---- src/config/jest-playwright.ts | 109 ---- src/config/playwright.ts | 70 +++ src/index.ts | 4 +- src/playwright/StoryPage.ts | 27 + src/playwright/csf-playwright-plugin.ts | 95 +++ src/test-storybook.ts | 74 +-- src/util/getCliOptions.test.ts | 18 +- src/util/getCliOptions.ts | 17 +- src/util/getParsedCliOptions.ts | 3 +- src/util/getStorybookMain.ts | 8 +- test-runner-jest.config.js | 29 - test-runner-playwright.config.js | 12 + tsup.config.ts | 2 +- yarn.lock | 616 ++++++++++++++------ 26 files changed, 822 insertions(+), 587 deletions(-) delete mode 100644 playwright/custom-environment.js delete mode 100644 playwright/global-setup.js delete mode 100644 playwright/global-teardown.js delete mode 100644 playwright/jest-setup.js delete mode 100644 playwright/test-runner-jest.config.js create mode 100644 playwright/test-runner-playwright.config.js delete mode 100644 playwright/transform.js create mode 100644 scripts/delete-playwright-cache.js create mode 100644 src/config/global.setup.ts delete mode 100644 src/config/jest-playwright.test.ts delete mode 100644 src/config/jest-playwright.ts create mode 100644 src/config/playwright.ts create mode 100644 src/playwright/StoryPage.ts create mode 100644 src/playwright/csf-playwright-plugin.ts delete mode 100644 test-runner-jest.config.js create mode 100644 test-runner-playwright.config.js diff --git a/.gitignore b/.gitignore index b3acb997..4e94f0ea 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ yarn-error.log coverage test-results.json **/junit.xml +playwright-cache-location.txt /**/.yarn/* diff --git a/package.json b/package.json index d6159eb7..f084f2f2 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ ], "scripts": { "build": "tsup", - "build:watch": "tsup --watch", + "build:watch": "concurrently \"tsup --watch\" \"nodemon\"", "test": "jest", "storybook": "storybook dev -p 6006", "start": "concurrently \"yarn build:watch\" \"yarn storybook -- --quiet\"", @@ -72,6 +72,7 @@ "husky": "^8.0.0", "jest-image-snapshot": "^6.2.0", "lint-staged": "^13.0.3", + "nodemon": "^3.0.1", "prettier": "^2.8.1", "react": "^17.0.1", "react-dom": "^17.0.1", @@ -79,14 +80,22 @@ "semver": "^7.5.4", "storybook": "^7.5.3", "ts-jest": "^29.0.0", - "tsup": "^6.5.0", - "typescript": "~4.9.4", + "tsup": "^8.0.1", + "typescript": "^5.3.2", "vite": "^4.4.5", "wait-on": "^7.2.0" }, "lint-staged": { "*.{ts,js,tsx,jsx,css,md}": "prettier --write" }, + "nodemonConfig": { + "watch": [ + "src/playwright/csf-playwright-plugin.ts", + "src/util/*.ts" + ], + "exec": "node scripts/delete-playwright-cache.js", + "ext": "ts" + }, "publishConfig": { "access": "public" }, @@ -96,6 +105,7 @@ "@babel/template": "^7.22.5", "@babel/types": "^7.22.5", "@jest/types": "^29.6.3", + "@playwright/test": "^1.36.1", "@storybook/core-common": "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0", "@storybook/csf": "^0.1.1", "@storybook/csf-tools": "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0", @@ -104,7 +114,6 @@ "@swc/jest": "^0.2.23", "can-bind-to-host": "^1.1.1", "commander": "^9.0.0", - "expect-playwright": "^0.8.0", "glob": "^10.2.2", "jest": "^29.6.4", "jest-circus": "^29.6.4", @@ -115,13 +124,12 @@ "jest-serializer-html": "^7.1.0", "jest-watch-typeahead": "^2.0.0", "node-fetch": "^2", - "playwright": "^1.14.0", "read-pkg-up": "^7.0.1", "tempy": "^1.0.1", "ts-dedent": "^2.0.0" }, "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + "node": "^18.0.0 || >=20.0.0" }, "auto": { "prereleaseBranches": [ diff --git a/playwright/custom-environment.js b/playwright/custom-environment.js deleted file mode 100644 index 97a52883..00000000 --- a/playwright/custom-environment.js +++ /dev/null @@ -1,20 +0,0 @@ -const { setupPage } = require('../dist/setup-page'); - -const PlaywrightEnvironment = require('jest-playwright-preset/lib/PlaywrightEnvironment').default; - -class CustomEnvironment extends PlaywrightEnvironment { - async setup() { - await super.setup(); - await setupPage(this.global.page, this.global.context); - } - - async teardown() { - await super.teardown(); - } - - async handleTestEvent(event) { - await super.handleTestEvent(event); - } -} - -module.exports = CustomEnvironment; diff --git a/playwright/global-setup.js b/playwright/global-setup.js deleted file mode 100644 index 4c7686f5..00000000 --- a/playwright/global-setup.js +++ /dev/null @@ -1,6 +0,0 @@ -// global-setup.js -const { globalSetup: playwrightGlobalSetup } = require('jest-playwright-preset'); - -module.exports = async function globalSetup(globalConfig) { - return playwrightGlobalSetup(globalConfig); -}; diff --git a/playwright/global-teardown.js b/playwright/global-teardown.js deleted file mode 100644 index f0335486..00000000 --- a/playwright/global-teardown.js +++ /dev/null @@ -1,7 +0,0 @@ -// global-teardown.js -const { globalTeardown: playwrightGlobalTeardown } = require('jest-playwright-preset'); - -module.exports = async function globalTeardown(globalConfig) { - // Your global teardown - await playwrightGlobalTeardown(globalConfig); -}; diff --git a/playwright/jest-setup.js b/playwright/jest-setup.js deleted file mode 100644 index 7e319565..00000000 --- a/playwright/jest-setup.js +++ /dev/null @@ -1,24 +0,0 @@ -const { getTestRunnerConfig, setPreVisit, setPostVisit, setupPage } = require('../dist'); - -const testRunnerConfig = getTestRunnerConfig(process.env.STORYBOOK_CONFIG_DIR); -if (testRunnerConfig) { - // hooks set up - if (testRunnerConfig.setup) { - testRunnerConfig.setup(); - } - - const preVisitFn = testRunnerConfig.preVisit || testRunnerConfig.preRender; - if (preVisitFn) { - setPreVisit(preVisitFn); - } - - const postVisitFn = testRunnerConfig.postVisit || testRunnerConfig.postRender; - if (postVisitFn) { - setPostVisit(postVisitFn); - } -} - -// If the transformed tests need a dependency, it has to be globally available -// in order to work both in default (file transformation) and stories/index.json mode. -globalThis.__sbSetupPage = setupPage; -globalThis.__sbCollectCoverage = process.env.STORYBOOK_COLLECT_COVERAGE === 'true'; diff --git a/playwright/test-runner-jest.config.js b/playwright/test-runner-jest.config.js deleted file mode 100644 index bd81baef..00000000 --- a/playwright/test-runner-jest.config.js +++ /dev/null @@ -1,15 +0,0 @@ -const { getJestConfig } = require('@storybook/test-runner'); - -// The default Jest configuration comes from @storybook/test-runner -const testRunnerConfig = getJestConfig(); - -/** - * @type {import('@jest/types').Config.InitialOptions} - */ -module.exports = { - ...testRunnerConfig, - /** Add your own overrides below, and make sure - * to merge testRunnerConfig properties with your own - * @see https://jestjs.io/docs/configuration - */ -}; diff --git a/playwright/test-runner-playwright.config.js b/playwright/test-runner-playwright.config.js new file mode 100644 index 00000000..74cd6c1e --- /dev/null +++ b/playwright/test-runner-playwright.config.js @@ -0,0 +1,13 @@ +const { defineConfig } = require('@storybook/test-runner'); + +/** + * @type {import('@playwright/test').PlaywrightTestConfig} + */ +const config = { + /** Add your own overrides below, + * @see https://playwright.dev/docs/test-configuration + */ +}; + +// TODO: check how we want to allow users to override the config +module.exports = defineConfig(config); diff --git a/playwright/transform.js b/playwright/transform.js deleted file mode 100644 index 31a7f3bb..00000000 --- a/playwright/transform.js +++ /dev/null @@ -1,17 +0,0 @@ -const { transformSync: swcTransform } = require('@swc/core'); -const { transformPlaywright } = require('../dist/playwright/transformPlaywright'); - -module.exports = { - process(src, filename) { - const csfTest = transformPlaywright(src, filename); - - const result = swcTransform(csfTest, { - filename, - module: { - type: 'commonjs', - }, - }); - - return { code: result ? result.code : src }; - }, -}; diff --git a/scripts/delete-playwright-cache.js b/scripts/delete-playwright-cache.js new file mode 100644 index 00000000..d600ded1 --- /dev/null +++ b/scripts/delete-playwright-cache.js @@ -0,0 +1,84 @@ +/** + * IMPORTANT: This script is only necessary because Playwright does not have a flag to disable or clear + * it's transform cache. + * + * Playwright caches the transform plugin from the test-runner, so if you make changes and rebuild, + * these changes would not be reflected in the test-runner. This script (hooked to nodemon) makes sure that + * whenever you change the csf-playwright-plugin.ts file, the cache is cleared and you actually get your changes. + */ +if (process.platform !== 'darwin') { + throw new Error('This script only works on macOS.'); +} + +const fs = require('fs').promises; +const path = require('path'); + +const CACHE_FILE = 'playwright-cache-location.txt'; + +const SEARCH_PATH = '/var/folders/'; + +const PATTERN = /^playwright-transform-cache-/; + +async function directoryExists(dirPath) { + try { + const stat = await fs.stat(dirPath); + return stat.isDirectory(); + } catch (error) { + return false; + } +} + +async function getCachedPath() { + try { + const path = await fs.readFile(CACHE_FILE, 'utf8'); + if (await directoryExists(path.trim())) { + return path; + } + } catch (error) {} + return null; +} + +async function findPlaywrightTransformCacheDir(dirPath) { + try { + const files = await fs.readdir(dirPath, { withFileTypes: true }); + for (const file of files) { + if (file.isDirectory()) { + const fullPath = path.join(dirPath, file.name); + if (PATTERN.test(file.name)) { + return fullPath; + } + + const foundPath = await findPlaywrightTransformCacheDir(fullPath); + if (foundPath) { + return foundPath; + } + } + } + } catch (error) {} + return null; +} + +// Find the Playwright transform cache directory and delete it +// This is the pattern used by Playwright: /var/folders/{some-hash}/{some-other-hash}/T/playwright-transform-cache-501 +// it will look like this /var/folders/sv/lg8lnv0s4gg6_rt7s6cd52qr0000gn/T/playwright-transform-cache-501 +const main = async () => { + let playwrightTransformPath = await getCachedPath(); + + if (!playwrightTransformPath) { + playwrightTransformPath = await findPlaywrightTransformCacheDir(SEARCH_PATH); + + if (playwrightTransformPath) { + console.log(`📝 Writing the Playwright transform cache location to: ${CACHE_FILE}`); + await fs.writeFile(CACHE_FILE, playwrightTransformPath); + } + } + + if (playwrightTransformPath) { + console.log(`🚮 Deleting the Playwright transform cache at: ${playwrightTransformPath}`); + await fs.rm(playwrightTransformPath, { recursive: true }); + } else { + console.log('No Playwright transform cache to clear yet.'); + } +}; + +main(); diff --git a/src/config/global.setup.ts b/src/config/global.setup.ts new file mode 100644 index 00000000..d87429b2 --- /dev/null +++ b/src/config/global.setup.ts @@ -0,0 +1,3 @@ +export default async () => { + console.log('Create and define files from index-json'); +}; diff --git a/src/config/jest-playwright.test.ts b/src/config/jest-playwright.test.ts deleted file mode 100644 index b382a6da..00000000 --- a/src/config/jest-playwright.test.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { getJestConfig } from './jest-playwright'; -import path from 'path'; - -describe('getJestConfig', () => { - it('returns the correct configuration 1', () => { - const jestConfig = getJestConfig(); - - expect(jestConfig).toEqual({ - rootDir: process.cwd(), - reporters: ['default'], - testMatch: [], - transform: { - '^.+\\.(story|stories)\\.[jt]sx?$': `${path.dirname( - require.resolve('@storybook/test-runner/playwright/transform') - )}/transform.js`, - '^.+\\.[jt]sx?$': path.resolve('../test-runner/node_modules/@swc/jest'), - }, - snapshotSerializers: [path.resolve('../test-runner/node_modules/jest-serializer-html')], - testEnvironmentOptions: { - 'jest-playwright': { - browsers: undefined, - collectCoverage: false, - exitOnPageError: false, - }, - }, - watchPlugins: [ - require.resolve('jest-watch-typeahead/filename'), - require.resolve('jest-watch-typeahead/testname'), - ], - watchPathIgnorePatterns: ['coverage', '.nyc_output', '.cache'], - roots: undefined, - runner: path.resolve('../test-runner/node_modules/jest-playwright-preset/runner.js'), - globalSetup: path.resolve('playwright/global-setup.js'), - globalTeardown: path.resolve('playwright/global-teardown.js'), - testEnvironment: path.resolve('playwright/custom-environment.js'), - setupFilesAfterEnv: [ - path.resolve('playwright/jest-setup.js'), - path.resolve('../test-runner/node_modules/expect-playwright/lib'), - path.resolve('../test-runner/node_modules/jest-playwright-preset/lib/extends.js'), - ], - }); - }); - - it('parses TEST_BROWSERS environment variable correctly', () => { - interface JestPlaywrightOptions { - browsers?: string[]; - collectCoverage?: boolean; - } - process.env.TEST_BROWSERS = 'chromium, firefox, webkit'; - - const jestConfig: { - testEnvironmentOptions?: { - 'jest-playwright'?: JestPlaywrightOptions; - }; - } = getJestConfig(); - - expect(jestConfig.testEnvironmentOptions?.['jest-playwright']?.browsers as string[]).toEqual([ - 'chromium', - 'firefox', - 'webkit', - ]); - }); - - it('sets TEST_MATCH environment variable correctly', () => { - process.env.TEST_MATCH = '**/*.test.js'; - - const jestConfig = getJestConfig(); - - expect(jestConfig.testMatch).toEqual(['**/*.test.js']); - }); - - it('returns the correct configuration 2', () => { - process.env.STORYBOOK_JUNIT = 'true'; - - const jestConfig = getJestConfig(); - - expect(jestConfig.reporters).toEqual(['default', path.dirname(require.resolve('jest-junit'))]); - expect(jestConfig).toMatchObject({ - rootDir: process.cwd(), - roots: undefined, - testMatch: ['**/*.test.js'], - transform: { - '^.+\\.(story|stories)\\.[jt]sx?$': `${path.dirname( - require.resolve('@storybook/test-runner/playwright/transform') - )}/transform.js`, - '^.+\\.[jt]sx?$': path.dirname(require.resolve('@swc/jest')), - }, - snapshotSerializers: [path.dirname(require.resolve('jest-serializer-html'))], - testEnvironmentOptions: { - 'jest-playwright': { - browsers: ['chromium', 'firefox', 'webkit'], - collectCoverage: false, - }, - }, - watchPlugins: [ - require.resolve('jest-watch-typeahead/filename'), - require.resolve('jest-watch-typeahead/testname'), - ], - watchPathIgnorePatterns: ['coverage', '.nyc_output', '.cache'], - }); - }); - - it('returns the correct configuration 3', () => { - process.env.TEST_ROOT = 'test'; - process.env.STORYBOOK_STORIES_PATTERN = '**/*.stories.tsx'; - - const jestConfig = getJestConfig(); - - expect(jestConfig).toMatchObject({ - roots: ['test'], - reporters: ['default', path.resolve('../test-runner/node_modules/jest-junit')], - testMatch: ['**/*.test.js'], - }); - }); -}); diff --git a/src/config/jest-playwright.ts b/src/config/jest-playwright.ts deleted file mode 100644 index e7a35a25..00000000 --- a/src/config/jest-playwright.ts +++ /dev/null @@ -1,109 +0,0 @@ -import path from 'path'; -import { getProjectRoot } from '@storybook/core-common'; -import type { Config } from '@jest/types'; - -const TEST_RUNNER_PATH = process.env.STORYBOOK_TEST_RUNNER_PATH ?? '@storybook/test-runner'; - -/** - * IMPORTANT NOTE: - * Depending on the user's project and package manager, it's possible that jest-playwright-preset - * is going to be located in @storybook/test-runner/node_modules OR in the root node_modules - * - * By setting `preset: 'jest-playwright-preset` the change of resolution issues is higher, because - * the lib might be installed inside of @storybook/test-runner/node_modules but references as if it was - * in the root node_modules. - * - * This function does the same thing as `preset: 'jest-playwright-preset` but makes sure that the - * necessary moving parts are all required within the correct path. - * */ -const getJestPlaywrightConfig = (): Config.InitialOptions => { - const presetBasePath = path.dirname( - require.resolve('jest-playwright-preset', { - paths: [path.join(__dirname, '../node_modules')], - }) - ); - const expectPlaywrightPath = path.dirname( - require.resolve('expect-playwright', { - paths: [path.join(__dirname, '../node_modules')], - }) - ); - return { - runner: path.join(presetBasePath, 'runner.js'), - globalSetup: require.resolve(`${TEST_RUNNER_PATH}/playwright/global-setup.js`), - globalTeardown: require.resolve(`${TEST_RUNNER_PATH}/playwright/global-teardown.js`), - testEnvironment: require.resolve(`${TEST_RUNNER_PATH}/playwright/custom-environment.js`), - setupFilesAfterEnv: [ - require.resolve(`${TEST_RUNNER_PATH}/playwright/jest-setup.js`), - expectPlaywrightPath, - path.join(presetBasePath, 'lib', 'extends.js'), - ], - }; -}; - -export const getJestConfig = (): Config.InitialOptions => { - const { - TEST_ROOT, - TEST_MATCH, - STORYBOOK_STORIES_PATTERN, - TEST_BROWSERS, - STORYBOOK_COLLECT_COVERAGE, - STORYBOOK_JUNIT, - } = process.env; - - const jestJunitPath = path.dirname( - require.resolve('jest-junit', { - paths: [path.join(__dirname, '../node_modules')], - }) - ); - - const jestSerializerHtmlPath = path.dirname( - require.resolve('jest-serializer-html', { - paths: [path.join(__dirname, '../node_modules')], - }) - ); - - const swcJestPath = path.dirname( - require.resolve('@swc/jest', { - paths: [path.join(__dirname, '../node_modules')], - }) - ); - - const reporters = STORYBOOK_JUNIT ? ['default', jestJunitPath] : ['default']; - - const testMatch = STORYBOOK_STORIES_PATTERN?.split(';') ?? []; - - const config: Config.InitialOptions = { - rootDir: getProjectRoot(), - roots: TEST_ROOT ? [TEST_ROOT] : undefined, - reporters, - testMatch, - transform: { - '^.+\\.(story|stories)\\.[jt]sx?$': require.resolve( - `${TEST_RUNNER_PATH}/playwright/transform` - ), - '^.+\\.[jt]sx?$': swcJestPath, - }, - snapshotSerializers: [jestSerializerHtmlPath], - testEnvironmentOptions: { - 'jest-playwright': { - browsers: TEST_BROWSERS?.split(',') - .map((p) => p.trim().toLowerCase()) - .filter(Boolean), - collectCoverage: STORYBOOK_COLLECT_COVERAGE === 'true', - exitOnPageError: false, - }, - }, - watchPlugins: [ - require.resolve('jest-watch-typeahead/filename'), - require.resolve('jest-watch-typeahead/testname'), - ], - watchPathIgnorePatterns: ['coverage', '.nyc_output', '.cache'], - ...getJestPlaywrightConfig(), - }; - - if (TEST_MATCH) { - config.testMatch = [TEST_MATCH]; - } - - return config; -}; diff --git a/src/config/playwright.ts b/src/config/playwright.ts new file mode 100644 index 00000000..a53fbbad --- /dev/null +++ b/src/config/playwright.ts @@ -0,0 +1,70 @@ +import path from 'path'; +import { + defineConfig as playwrightDefineConfig, + devices, + PlaywrightTestConfig, +} from '@playwright/test'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export const defineConfig = (config: PlaywrightTestConfig) => + playwrightDefineConfig({ + testDir: process.env.TEST_ROOT || './stories/', + testMatch: /Button.stories.(js|jsx|ts|tsx|mjs|mts)$/, + globalSetup: path.join(__dirname, 'global.setup.js'), + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'list', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + // baseURL: 'http://127.0.0.1:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + // @ts-expect-error use _contextReuseMode + _contextReuseMode: 'when-possible', + }, + + /* Configure projects for major browsers */ + projects: [ + // { + // name: 'setup', + // testMatch: /global.setup\.ts/, + // }, + { + // dependencies: ['setup'], + name: 'chromium', + use: { ...devices['Desktop Chrome'], headless: true }, + }, + ], + + build: { + // @ts-ignore + babelPlugins: [[path.join(__dirname, '..', 'playwright', 'csf-playwright-plugin.js')]], + // @ts-ignore + external: [/test-runner\/.*.js$/], + }, + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'yarn storybook', + url: 'http://127.0.0.1:6006', + reuseExistingServer: true, //!process.env.CI, + }, + ...config, + }); diff --git a/src/index.ts b/src/index.ts index 48acf35d..a272da1c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,6 @@ +export * from './playwright/csf-playwright-plugin'; +export * from './config/global.setup'; export * from './playwright/hooks'; -export * from './config/jest-playwright'; +export * from './config/playwright'; export * from './setup-page'; export * from './util/getTestRunnerConfig'; diff --git a/src/playwright/StoryPage.ts b/src/playwright/StoryPage.ts new file mode 100644 index 00000000..29f44849 --- /dev/null +++ b/src/playwright/StoryPage.ts @@ -0,0 +1,27 @@ +import { Page } from '@playwright/test'; +import { setupPage } from '../setup-page'; + +class StoryPage { + page: Page; + constructor(page: Page) { + this.page = page; + } + async test(context: { id: string; hasPlayFn: boolean }) { + /** + * The flow is as follows: + * 1. Load the iframe.html page + * 2. Wait for Storybook to be loaded + * 3. Inject utilities, of which one is __test. This utility will use the channel to visit the story + * 4. Once page.evaluate calls __test, everything will be handled + */ + await setupPage(this.page, this.page.context()); + try { + // @ts-expect-error TODO + await this.page.evaluate(({ id, hasPlayFn }) => __test(id, hasPlayFn), context); + } finally { + // await sleep(10000000); + } + } +} + +module.exports = { StoryPage }; diff --git a/src/playwright/csf-playwright-plugin.ts b/src/playwright/csf-playwright-plugin.ts new file mode 100644 index 00000000..a6345c6c --- /dev/null +++ b/src/playwright/csf-playwright-plugin.ts @@ -0,0 +1,95 @@ +import { join, relative } from 'path'; +import type { PluginObj } from '@babel/core'; +import type * as T from '@babel/types'; +import template from '@babel/template'; +import { CsfFile } from '@storybook/csf-tools'; +import { userOrAutoTitle } from '@storybook/preview-api'; +import { getStorybookMetadata } from '../util'; + +const describeTemplate = template(` + test.describe(%%title%%, () => { + %%body%% + }); +`); + +const testTemplate = template(` + test(%%name%%, async ({ page }) => { + const context = { id: %%id%%, title: %%title%%, name: %%name%% }; + const storyPage = new StoryPage(page); + await storyPage.test(context); + }); +`); + +type BabelTypes = typeof T; + +const makePlaywrightImport = (t: BabelTypes) => + t.importDeclaration( + [t.importSpecifier(t.identifier('test'), t.identifier('test'))], + t.stringLiteral('@playwright/test') + ); + +const makeFixtureImport = (t: BabelTypes) => + t.importDeclaration( + [t.importSpecifier(t.identifier('StoryPage'), t.identifier('StoryPage'))], + t.stringLiteral(join(__dirname, 'StoryPage')) + ); + +const makeTitleFactory = (filename: string) => { + try { + const { workingDir, normalizedStoriesEntries } = getStorybookMetadata(); + const filePath = `./${relative(workingDir, filename)}`; + + return (userTitle: string) => + userOrAutoTitle(filePath, normalizedStoriesEntries, userTitle) as string; + } catch (e) { + return (title: string) => title || 'atoms-button'; + } +}; + +export default function (babelContext: { types: BabelTypes }): PluginObj { + const { types: t } = babelContext; + + return { + visitor: { + Program: { + enter(path, state) { + const { filename } = state; + // FIXME: this makes use of a loophole that both + // CsfFile and Playwright Test are using babel! + // In the future, this probably won't be the case. + + if (!filename) { + return; + } + // @ts-expect-error parent file is not typed + const csf = new CsfFile(path.parent, { + fileName: filename, // || join(cwd, 'default'), + makeTitle: makeTitleFactory(filename), + }).parse(); + + const title = csf.meta.title as string; + // console.log({ title }); + const body = csf.stories.map((story) => { + const id = story.id; + const name = story.name!; + return testTemplate({ + id: t.stringLiteral(id), + title: t.stringLiteral(title), + name: t.stringLiteral(name), + }); + }); + + path.node.body = [ + makePlaywrightImport(t), + makeFixtureImport(t), + describeTemplate({ + title: t.stringLiteral(title), + body, + }) as T.Statement, + ]; + return false; + }, + }, + }, + }; +} diff --git a/src/test-storybook.ts b/src/test-storybook.ts index c229d7ea..7a0ee2c1 100644 --- a/src/test-storybook.ts +++ b/src/test-storybook.ts @@ -10,7 +10,7 @@ import tempy from 'tempy'; import semver from 'semver'; import { detect as detectPackageManager } from 'detect-package-manager'; -import { JestOptions, getCliOptions } from './util/getCliOptions'; +import { PlaywrightOptions, getCliOptions } from './util/getCliOptions'; import { getStorybookMetadata } from './util/getStorybookMetadata'; import { getTestRunnerConfig } from './util/getTestRunnerConfig'; import { transformPlaywrightJson } from './playwright/transformPlaywrightJson'; @@ -106,7 +106,7 @@ async function reportCoverage() { // --skip-full in case we only want to show not fully covered code // --check-coverage if we want to break if coverage reaches certain threshold // .nycrc will be respected for thresholds etc. https://www.npmjs.com/package/nyc#coverage-thresholds - if (process.env.JEST_SHARD !== 'true') { + if (process.env.PLAYWRIGHT_SHARD !== 'true') { const executorCommand = await getExecutorCommand(); execSync( `${executorCommand} nyc report --reporter=text -t ${coverageFolder} --report-dir ${coverageFolder}`, @@ -148,32 +148,26 @@ function sanitizeURL(url: string) { return finalURL; } -async function executeJestPlaywright(args: JestOptions) { - // Always prefer jest installed via the test runner. If it's hoisted, it will get it from root node_modules - const jestPath = path.dirname( - require.resolve('jest', { - paths: [path.join(__dirname, '../@storybook/test-runner/node_modules')], - }) - ); - const jest = require(jestPath); +async function executePlaywright(args: PlaywrightOptions) { const argv = args.slice(2); - // jest configs could either come in the root dir, or inside of the Storybook config dir const configDir = process.env.STORYBOOK_CONFIG_DIR ?? ''; - const [userDefinedJestConfig] = ( + const [userDefinedPlaywrightConfig] = ( await Promise.all([ - glob(path.join(configDir, 'test-runner-jest*'), { windowsPathsNoEscape: true }), - glob(path.join('test-runner-jest*'), { windowsPathsNoEscape: true }), + glob(path.join(configDir, 'test-runner-playwright*'), { windowsPathsNoEscape: true }), + glob(path.join('test-runner-playwright*'), { windowsPathsNoEscape: true }), ]) ).reduce((a, b) => a.concat(b), []); - const jestConfigPath = - userDefinedJestConfig || - path.resolve(__dirname, path.join('..', 'playwright', 'test-runner-jest.config.js')); + const playwrightConfigPath = + userDefinedPlaywrightConfig || + path.resolve(__dirname, path.join('..', 'playwright', 'test-runner-playwright.config.js')); - argv.push('--config', jestConfigPath); + argv.push('--config', playwrightConfigPath); - await jest.run(argv); + execSync(`npx playwright test --ui --config ${playwrightConfigPath}`, { + stdio: 'inherit', + }); } async function checkStorybook(url: string) { @@ -258,8 +252,8 @@ async function getIndexTempDir(url: string) { } function ejectConfiguration() { - const origin = path.resolve(__dirname, '../playwright/test-runner-jest.config.js'); - const destination = path.resolve('test-runner-jest.config.js'); + const origin = path.resolve(__dirname, '../playwright/test-runner-playwright.config.js'); + const destination = path.resolve('test-runner-playwright.config.js'); const fileAlreadyExists = fs.existsSync(destination); if (fileAlreadyExists) { @@ -272,7 +266,7 @@ function ejectConfiguration() { } fs.copyFileSync(origin, destination); - log('Configuration file successfully copied as test-runner-jest.config.js'); + log('Configuration file successfully copied as test-runner-playwright.config.js'); } function warnOnce(message: string) { @@ -287,7 +281,7 @@ function warnOnce(message: string) { } const main = async () => { - const { jestOptions, runnerOptions } = getCliOptions(); + const { playwrightOptions, runnerOptions } = getCliOptions(); if (runnerOptions.eject) { ejectConfiguration(); @@ -327,15 +321,30 @@ const main = async () => { } // set this flag to skip reporting coverage in watch mode - const isWatchMode = jestOptions.includes('--watch') || jestOptions.includes('--watchAll'); + const isWatchMode = + playwrightOptions.includes('--watch') || playwrightOptions.includes('--watchAll'); const rawTargetURL = process.env.TARGET_URL ?? runnerOptions.url ?? 'http://127.0.0.1:6006'; - await checkStorybook(rawTargetURL); const targetURL = sanitizeURL(rawTargetURL); process.env.TARGET_URL = targetURL; + const { hostname } = new URL(targetURL); + + const isLocalStorybookIp = await canBindToHost(hostname); + const shouldRunIndexJson = runnerOptions.indexJson !== false && !isLocalStorybookIp; + if (shouldRunIndexJson) { + log( + 'Detected a remote Storybook URL, running in index json mode. To disable this, run the command again with --no-index-json\n' + ); + } + + if (runnerOptions.indexJson) { + // for --index-json, the URL must be running prior to this command + await checkStorybook(rawTargetURL); + } + if (!isWatchMode && runnerOptions.coverage) { process.env.STORYBOOK_COLLECT_COVERAGE = 'true'; } @@ -364,8 +373,8 @@ const main = async () => { process.env.REFERENCE_URL = sanitizeURL(process.env.REFERENCE_URL); } - if (jestOptions.includes('--shard')) { - process.env.JEST_SHARD = 'true'; + if (playwrightOptions.includes('--shard')) { + process.env.PLAYWRIGHT_SHARD = 'true'; } // Use TEST_BROWSERS if set, otherwise get from --browser option @@ -374,15 +383,6 @@ const main = async () => { process.env.TEST_BROWSERS = runnerOptions.browsers.join(','); else process.env.TEST_BROWSERS = runnerOptions.browsers; } - const { hostname } = new URL(targetURL); - - const isLocalStorybookIp = await canBindToHost(hostname); - const shouldRunIndexJson = runnerOptions.indexJson !== false && !isLocalStorybookIp; - if (shouldRunIndexJson) { - log( - 'Detected a remote Storybook URL, running in index json mode. To disable this, run the command again with --no-index-json\n' - ); - } if (runnerOptions.indexJson || shouldRunIndexJson) { indexTmpDir = await getIndexTempDir(targetURL); @@ -403,7 +403,7 @@ const main = async () => { ); } - await executeJestPlaywright(jestOptions); + await executePlaywright(playwrightOptions); }; main().catch((e) => { diff --git a/src/util/getCliOptions.test.ts b/src/util/getCliOptions.test.ts index 47e6eddf..da2b0164 100644 --- a/src/util/getCliOptions.test.ts +++ b/src/util/getCliOptions.test.ts @@ -20,10 +20,10 @@ describe('getCliOptions', () => { it('returns default options if no options are passed', () => { jest.spyOn(cliHelper, 'getParsedCliOptions').mockReturnValue({ options: {}, extraArgs: [] }); const opts = getCliOptions(); - const jestOptions = opts.jestOptions.length > 0 ? ['--coverage'] : []; + const playwrightOptions = opts.playwrightOptions.length > 0 ? ['--coverage'] : []; expect(opts).toEqual({ runnerOptions: {}, - jestOptions, + playwrightOptions, }); }); @@ -42,7 +42,10 @@ describe('getCliOptions', () => { .spyOn(cliHelper, 'getParsedCliOptions') .mockReturnValue({ options: customConfig, extraArgs: [] }); const opts = getCliOptions(); - expect(opts).toEqual({ jestOptions: [], runnerOptions: { coverage: true, junit: false } }); + expect(opts).toEqual({ + playwrightOptions: [], + runnerOptions: { coverage: true, junit: false }, + }); }); it('handles string options correctly', () => { @@ -51,7 +54,10 @@ describe('getCliOptions', () => { .spyOn(cliHelper, 'getParsedCliOptions') .mockReturnValue({ options: customConfig, extraArgs: [] }); const opts = getCliOptions(); - expect(opts).toEqual({ jestOptions: [], runnerOptions: { url: 'http://localhost:3000' } }); + expect(opts).toEqual({ + playwrightOptions: [], + runnerOptions: { url: 'http://localhost:3000' }, + }); }); it('handles extra arguments correctly', () => { @@ -60,7 +66,7 @@ describe('getCliOptions', () => { extraArgs: ['--watch', '--coverage'], }); const opts = getCliOptions(); - expect(opts.jestOptions).toEqual([ + expect(opts.playwrightOptions).toEqual([ '--version', '--no-cache', '--env', @@ -77,6 +83,6 @@ describe('getCliOptions', () => { process.argv = []; jest.spyOn(cliHelper, 'getParsedCliOptions').mockReturnValueOnce({ options: {}, extraArgs }); const opts = getCliOptions(); - expect(opts.jestOptions).toEqual(extraArgs); + expect(opts.playwrightOptions).toEqual(extraArgs); }); }); diff --git a/src/util/getCliOptions.ts b/src/util/getCliOptions.ts index 99b27197..ce4f3833 100644 --- a/src/util/getCliOptions.ts +++ b/src/util/getCliOptions.ts @@ -1,7 +1,6 @@ import { getParsedCliOptions } from './getParsedCliOptions'; -import type { BrowserType } from 'jest-playwright-preset'; -export type JestOptions = string[]; +export type PlaywrightOptions = string[]; export type CliOptions = { runnerOptions: { @@ -12,13 +11,13 @@ export type CliOptions = { coverage?: boolean; coverageDirectory?: string; junit?: boolean; - browsers?: BrowserType | BrowserType[]; + browsers?: string | string[]; failOnConsole?: boolean; includeTags?: string; excludeTags?: string; skipTags?: string; } & Record; - jestOptions: JestOptions; + playwrightOptions: PlaywrightOptions; }; type StorybookRunnerCommand = keyof CliOptions['runnerOptions']; @@ -51,7 +50,7 @@ export const getCliOptions = (): CliOptions => { const defaultOptions: CliOptions = { runnerOptions: {}, - jestOptions: process.argv.splice(0, 2), + playwrightOptions: process.argv.splice(0, 2), }; const finalOptions = Object.keys(allOptions).reduce((acc: CliOptions, _key: string) => { @@ -62,11 +61,11 @@ export const getCliOptions = (): CliOptions => { copyOption(acc.runnerOptions, key, optionValue); } else { if (optionValue === true) { - acc.jestOptions.push(`--${key}`); + acc.playwrightOptions.push(`--${key}`); } else if (optionValue === false) { - acc.jestOptions.push(`--no-${key}`); + acc.playwrightOptions.push(`--no-${key}`); } else { - acc.jestOptions.push(`--${key}`, `${optionValue}`); + acc.playwrightOptions.push(`--${key}`, `${optionValue}`); } } @@ -74,7 +73,7 @@ export const getCliOptions = (): CliOptions => { }, defaultOptions); if (extraArgs.length) { - finalOptions.jestOptions.push(...extraArgs); + finalOptions.playwrightOptions.push(...extraArgs); } return finalOptions; diff --git a/src/util/getParsedCliOptions.ts b/src/util/getParsedCliOptions.ts index 65475c0d..600a08bb 100644 --- a/src/util/getParsedCliOptions.ts +++ b/src/util/getParsedCliOptions.ts @@ -3,10 +3,11 @@ import { CommanderError, program } from 'commander'; type ParsedCliOptions = { options: CliOptions['runnerOptions']; - extraArgs: CliOptions['jestOptions']; + extraArgs: CliOptions['playwrightOptions']; }; export const getParsedCliOptions = (): ParsedCliOptions => { + // TODO: check all options which do not work/exist in Playwright program .option( '-i, --index-json', diff --git a/src/util/getStorybookMain.ts b/src/util/getStorybookMain.ts index 76ee33e5..4398d6a0 100644 --- a/src/util/getStorybookMain.ts +++ b/src/util/getStorybookMain.ts @@ -7,9 +7,15 @@ export const storybookMainConfig = new Map(); export const getStorybookMain = (configDir = '.storybook') => { if (storybookMainConfig.has(configDir)) { + // console.log('cached main config!'); return storybookMainConfig.get(configDir) as StorybookConfig; } else { - storybookMainConfig.set(configDir, serverRequire(join(resolve(configDir), 'main'))); + console.log('setting main config for the first time'); + // console.trace('path: ', join(resolve(configDir), 'main')); + const config = serverRequire(join(resolve(configDir), 'main')); + // console.log('mainConfig: ', config); + + storybookMainConfig.set(configDir, config); } const mainConfig = storybookMainConfig.get(configDir); diff --git a/test-runner-jest.config.js b/test-runner-jest.config.js deleted file mode 100644 index 1a4b886b..00000000 --- a/test-runner-jest.config.js +++ /dev/null @@ -1,29 +0,0 @@ -// !!! This file is used as an override to the test-runner configuration for this repo only !!! -// If you want to create your own override for your project, run test-storybook eject instead -const path = require('path'); -// we override the path here so that when running the test-runner locally, it resolves to local files instead when calling require.resolve -process.env.STORYBOOK_TEST_RUNNER_PATH = path.resolve(__dirname); - -const { getJestConfig } = require('./dist'); - -const testRunnerConfig = getJestConfig(); - -/** - * @type {import('@jest/types').Config.InitialOptions} - */ -module.exports = { - ...testRunnerConfig, - cacheDirectory: 'node_modules/.cache/storybook/test-runner', - transform: { - '^.+\\.(story|stories)\\.[jt]sx?$': './playwright/transform', - '^.+\\.[jt]sx?$': '@swc/jest', - }, - globalSetup: './playwright/global-setup.js', - globalTeardown: './playwright/global-teardown.js', - testEnvironment: './playwright/custom-environment.js', - setupFilesAfterEnv: ['./playwright/jest-setup.js'], - // use local build when the package is referred - moduleNameMapper: { - '@storybook/test-runner': '/dist/index.js', - }, -}; diff --git a/test-runner-playwright.config.js b/test-runner-playwright.config.js new file mode 100644 index 00000000..f59d98b0 --- /dev/null +++ b/test-runner-playwright.config.js @@ -0,0 +1,12 @@ +// !!! This file is used as an override to the test-runner configuration for this repo only !!! +// If you want to create your own override for your project, run test-storybook eject instead +const path = require('path'); +// we override the path here so that when running the test-runner locally, it resolves to local files instead when calling require.resolve +process.env.STORYBOOK_TEST_RUNNER_PATH = path.resolve(__dirname); + +const { defineConfig } = require('./dist'); + +/** + * @type {import('@jest/types').Config.InitialOptions} + */ +module.exports = defineConfig(); diff --git a/tsup.config.ts b/tsup.config.ts index 0e0ae64d..2d9071d4 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -4,7 +4,7 @@ export default defineConfig([ { clean: true, entry: [ - './src/**/*.{js,jsx,ts,tsx}', + './src/**/*.{js,jsx,ts,tsx,cjs,mjs,mts}', '!./src/**/*.d.{js,jsx,ts,tsx}', '!./src/**/*test.{js,jsx,ts,tsx}', ], diff --git a/yarn.lock b/yarn.lock index 9704fdb0..3c76b87a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1780,13 +1780,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-arm64@npm:0.17.19" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/android-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm64@npm:0.18.20" @@ -1794,10 +1787,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-arm@npm:0.17.19" - conditions: os=android & cpu=arm +"@esbuild/android-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-arm64@npm:0.19.8" + conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -1808,10 +1801,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-x64@npm:0.17.19" - conditions: os=android & cpu=x64 +"@esbuild/android-arm@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-arm@npm:0.19.8" + conditions: os=android & cpu=arm languageName: node linkType: hard @@ -1822,10 +1815,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/darwin-arm64@npm:0.17.19" - conditions: os=darwin & cpu=arm64 +"@esbuild/android-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/android-x64@npm:0.19.8" + conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -1836,10 +1829,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/darwin-x64@npm:0.17.19" - conditions: os=darwin & cpu=x64 +"@esbuild/darwin-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/darwin-arm64@npm:0.19.8" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -1850,10 +1843,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/freebsd-arm64@npm:0.17.19" - conditions: os=freebsd & cpu=arm64 +"@esbuild/darwin-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/darwin-x64@npm:0.19.8" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -1864,10 +1857,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/freebsd-x64@npm:0.17.19" - conditions: os=freebsd & cpu=x64 +"@esbuild/freebsd-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/freebsd-arm64@npm:0.19.8" + conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -1878,10 +1871,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-arm64@npm:0.17.19" - conditions: os=linux & cpu=arm64 +"@esbuild/freebsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/freebsd-x64@npm:0.19.8" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -1892,10 +1885,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-arm@npm:0.17.19" - conditions: os=linux & cpu=arm +"@esbuild/linux-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-arm64@npm:0.19.8" + conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -1906,10 +1899,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-ia32@npm:0.17.19" - conditions: os=linux & cpu=ia32 +"@esbuild/linux-arm@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-arm@npm:0.19.8" + conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -1920,10 +1913,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-loong64@npm:0.17.19" - conditions: os=linux & cpu=loong64 +"@esbuild/linux-ia32@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-ia32@npm:0.19.8" + conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -1934,10 +1927,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-mips64el@npm:0.17.19" - conditions: os=linux & cpu=mips64el +"@esbuild/linux-loong64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-loong64@npm:0.19.8" + conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -1948,10 +1941,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-ppc64@npm:0.17.19" - conditions: os=linux & cpu=ppc64 +"@esbuild/linux-mips64el@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-mips64el@npm:0.19.8" + conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -1962,10 +1955,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-riscv64@npm:0.17.19" - conditions: os=linux & cpu=riscv64 +"@esbuild/linux-ppc64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-ppc64@npm:0.19.8" + conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -1976,10 +1969,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-s390x@npm:0.17.19" - conditions: os=linux & cpu=s390x +"@esbuild/linux-riscv64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-riscv64@npm:0.19.8" + conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -1990,10 +1983,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-x64@npm:0.17.19" - conditions: os=linux & cpu=x64 +"@esbuild/linux-s390x@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-s390x@npm:0.19.8" + conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -2004,10 +1997,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/netbsd-x64@npm:0.17.19" - conditions: os=netbsd & cpu=x64 +"@esbuild/linux-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/linux-x64@npm:0.19.8" + conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -2018,10 +2011,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/openbsd-x64@npm:0.17.19" - conditions: os=openbsd & cpu=x64 +"@esbuild/netbsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/netbsd-x64@npm:0.19.8" + conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -2032,10 +2025,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/sunos-x64@npm:0.17.19" - conditions: os=sunos & cpu=x64 +"@esbuild/openbsd-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/openbsd-x64@npm:0.19.8" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -2046,10 +2039,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-arm64@npm:0.17.19" - conditions: os=win32 & cpu=arm64 +"@esbuild/sunos-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/sunos-x64@npm:0.19.8" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -2060,10 +2053,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-ia32@npm:0.17.19" - conditions: os=win32 & cpu=ia32 +"@esbuild/win32-arm64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-arm64@npm:0.19.8" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -2074,10 +2067,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-x64@npm:0.17.19" - conditions: os=win32 & cpu=x64 +"@esbuild/win32-ia32@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-ia32@npm:0.19.8" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -2088,6 +2081,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.19.8": + version: 0.19.8 + resolution: "@esbuild/win32-x64@npm:0.19.8" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@fal-works/esbuild-plugin-global-externals@npm:^2.1.2": version: 2.1.2 resolution: "@fal-works/esbuild-plugin-global-externals@npm:2.1.2" @@ -2770,6 +2770,17 @@ __metadata: languageName: node linkType: hard +"@playwright/test@npm:^1.36.1": + version: 1.40.1 + resolution: "@playwright/test@npm:1.40.1" + dependencies: + playwright: 1.40.1 + bin: + playwright: cli.js + checksum: ae094e6cb809365c0707ee2b184e42d2a2542569ada020d2d44ca5866066941262bd9a67af185f86c2fb0133c9b712ea8cb73e2959a289e4261c5fd17077283c + languageName: node + linkType: hard + "@radix-ui/number@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/number@npm:1.0.1" @@ -3354,6 +3365,90 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.6.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-android-arm64@npm:4.6.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.6.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.6.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.6.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.6.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.6.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.6.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.6.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.6.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.6.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.6.1": + version: 4.6.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.6.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sideway/address@npm:^4.1.3": version: 4.1.4 resolution: "@sideway/address@npm:4.1.4" @@ -4297,6 +4392,7 @@ __metadata: "@babel/template": ^7.22.5 "@babel/types": ^7.22.5 "@jest/types": ^29.6.3 + "@playwright/test": ^1.36.1 "@storybook/addon-coverage": ^0.0.9 "@storybook/addon-essentials": ^7.5.3 "@storybook/addon-interactions": ^7.5.3 @@ -4321,7 +4417,6 @@ __metadata: commander: ^9.0.0 concurrently: ^7.0.0 detect-package-manager: ^3.0.1 - expect-playwright: ^0.8.0 glob: ^10.2.2 husky: ^8.0.0 jest: ^29.6.4 @@ -4335,7 +4430,7 @@ __metadata: jest-watch-typeahead: ^2.0.0 lint-staged: ^13.0.3 node-fetch: ^2 - playwright: ^1.14.0 + nodemon: ^3.0.1 prettier: ^2.8.1 react: ^17.0.1 react-dom: ^17.0.1 @@ -4346,8 +4441,8 @@ __metadata: tempy: ^1.0.1 ts-dedent: ^2.0.0 ts-jest: ^29.0.0 - tsup: ^6.5.0 - typescript: ~4.9.4 + tsup: ^8.0.1 + typescript: ^5.3.2 vite: ^4.4.5 wait-on: ^7.2.0 bin: @@ -5154,6 +5249,13 @@ __metadata: languageName: node linkType: hard +"abbrev@npm:1": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + languageName: node + linkType: hard + "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -6096,7 +6198,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.4.0, chokidar@npm:^3.5.1, chokidar@npm:^3.5.3": +"chokidar@npm:^3.4.0, chokidar@npm:^3.5.1, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -6621,6 +6723,15 @@ __metadata: languageName: node linkType: hard +"debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: ^2.1.1 + checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + languageName: node + linkType: hard + "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -7206,32 +7317,32 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.17.6": - version: 0.17.19 - resolution: "esbuild@npm:0.17.19" - dependencies: - "@esbuild/android-arm": 0.17.19 - "@esbuild/android-arm64": 0.17.19 - "@esbuild/android-x64": 0.17.19 - "@esbuild/darwin-arm64": 0.17.19 - "@esbuild/darwin-x64": 0.17.19 - "@esbuild/freebsd-arm64": 0.17.19 - "@esbuild/freebsd-x64": 0.17.19 - "@esbuild/linux-arm": 0.17.19 - "@esbuild/linux-arm64": 0.17.19 - "@esbuild/linux-ia32": 0.17.19 - "@esbuild/linux-loong64": 0.17.19 - "@esbuild/linux-mips64el": 0.17.19 - "@esbuild/linux-ppc64": 0.17.19 - "@esbuild/linux-riscv64": 0.17.19 - "@esbuild/linux-s390x": 0.17.19 - "@esbuild/linux-x64": 0.17.19 - "@esbuild/netbsd-x64": 0.17.19 - "@esbuild/openbsd-x64": 0.17.19 - "@esbuild/sunos-x64": 0.17.19 - "@esbuild/win32-arm64": 0.17.19 - "@esbuild/win32-ia32": 0.17.19 - "@esbuild/win32-x64": 0.17.19 +"esbuild@npm:^0.18.0, esbuild@npm:^0.18.10": + version: 0.18.20 + resolution: "esbuild@npm:0.18.20" + dependencies: + "@esbuild/android-arm": 0.18.20 + "@esbuild/android-arm64": 0.18.20 + "@esbuild/android-x64": 0.18.20 + "@esbuild/darwin-arm64": 0.18.20 + "@esbuild/darwin-x64": 0.18.20 + "@esbuild/freebsd-arm64": 0.18.20 + "@esbuild/freebsd-x64": 0.18.20 + "@esbuild/linux-arm": 0.18.20 + "@esbuild/linux-arm64": 0.18.20 + "@esbuild/linux-ia32": 0.18.20 + "@esbuild/linux-loong64": 0.18.20 + "@esbuild/linux-mips64el": 0.18.20 + "@esbuild/linux-ppc64": 0.18.20 + "@esbuild/linux-riscv64": 0.18.20 + "@esbuild/linux-s390x": 0.18.20 + "@esbuild/linux-x64": 0.18.20 + "@esbuild/netbsd-x64": 0.18.20 + "@esbuild/openbsd-x64": 0.18.20 + "@esbuild/sunos-x64": 0.18.20 + "@esbuild/win32-arm64": 0.18.20 + "@esbuild/win32-ia32": 0.18.20 + "@esbuild/win32-x64": 0.18.20 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -7279,36 +7390,36 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: ac11b1a5a6008e4e37ccffbd6c2c054746fc58d0ed4a2f9ee643bd030cfcea9a33a235087bc777def8420f2eaafb3486e76adb7bdb7241a9143b43a69a10afd8 + checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b languageName: node linkType: hard -"esbuild@npm:^0.18.0, esbuild@npm:^0.18.10": - version: 0.18.20 - resolution: "esbuild@npm:0.18.20" - dependencies: - "@esbuild/android-arm": 0.18.20 - "@esbuild/android-arm64": 0.18.20 - "@esbuild/android-x64": 0.18.20 - "@esbuild/darwin-arm64": 0.18.20 - "@esbuild/darwin-x64": 0.18.20 - "@esbuild/freebsd-arm64": 0.18.20 - "@esbuild/freebsd-x64": 0.18.20 - "@esbuild/linux-arm": 0.18.20 - "@esbuild/linux-arm64": 0.18.20 - "@esbuild/linux-ia32": 0.18.20 - "@esbuild/linux-loong64": 0.18.20 - "@esbuild/linux-mips64el": 0.18.20 - "@esbuild/linux-ppc64": 0.18.20 - "@esbuild/linux-riscv64": 0.18.20 - "@esbuild/linux-s390x": 0.18.20 - "@esbuild/linux-x64": 0.18.20 - "@esbuild/netbsd-x64": 0.18.20 - "@esbuild/openbsd-x64": 0.18.20 - "@esbuild/sunos-x64": 0.18.20 - "@esbuild/win32-arm64": 0.18.20 - "@esbuild/win32-ia32": 0.18.20 - "@esbuild/win32-x64": 0.18.20 +"esbuild@npm:^0.19.2": + version: 0.19.8 + resolution: "esbuild@npm:0.19.8" + dependencies: + "@esbuild/android-arm": 0.19.8 + "@esbuild/android-arm64": 0.19.8 + "@esbuild/android-x64": 0.19.8 + "@esbuild/darwin-arm64": 0.19.8 + "@esbuild/darwin-x64": 0.19.8 + "@esbuild/freebsd-arm64": 0.19.8 + "@esbuild/freebsd-x64": 0.19.8 + "@esbuild/linux-arm": 0.19.8 + "@esbuild/linux-arm64": 0.19.8 + "@esbuild/linux-ia32": 0.19.8 + "@esbuild/linux-loong64": 0.19.8 + "@esbuild/linux-mips64el": 0.19.8 + "@esbuild/linux-ppc64": 0.19.8 + "@esbuild/linux-riscv64": 0.19.8 + "@esbuild/linux-s390x": 0.19.8 + "@esbuild/linux-x64": 0.19.8 + "@esbuild/netbsd-x64": 0.19.8 + "@esbuild/openbsd-x64": 0.19.8 + "@esbuild/sunos-x64": 0.19.8 + "@esbuild/win32-arm64": 0.19.8 + "@esbuild/win32-ia32": 0.19.8 + "@esbuild/win32-x64": 0.19.8 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -7356,7 +7467,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b + checksum: 1dff99482ecbfcc642ec66c71e4dc5c73ce6aef68e8158a4937890b570e86a95959ac47e0f14785ba70df5a673ae4289df88a162e9759b02367ed28074cee8ba languageName: node linkType: hard @@ -8523,6 +8634,13 @@ __metadata: languageName: node linkType: hard +"ignore-by-default@npm:^1.0.1": + version: 1.0.1 + resolution: "ignore-by-default@npm:1.0.1" + checksum: 441509147b3615e0365e407a3c18e189f78c07af08564176c680be1fabc94b6c789cad1342ad887175d4ecd5225de86f73d376cec8e06b42fd9b429505ffcf8a + languageName: node + linkType: hard + "ignore@npm:^3.3.5": version: 3.3.10 resolution: "ignore@npm:3.3.10" @@ -9921,13 +10039,20 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:2.1.0, lilconfig@npm:^2.0.5": +"lilconfig@npm:2.1.0": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 languageName: node linkType: hard +"lilconfig@npm:^3.0.0": + version: 3.0.0 + resolution: "lilconfig@npm:3.0.0" + checksum: a155f1cd24d324ab20dd6974db9ebcf3fb6f2b60175f7c052d917ff8a746b590bc1ee550f6fc3cb1e8716c8b58304e22fe2193febebc0cf16fa86d85e6f896c5 + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -10570,7 +10695,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.3": +"ms@npm:2.1.3, ms@npm:^2.1.1": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -10712,6 +10837,26 @@ __metadata: languageName: node linkType: hard +"nodemon@npm:^3.0.1": + version: 3.0.1 + resolution: "nodemon@npm:3.0.1" + dependencies: + chokidar: ^3.5.2 + debug: ^3.2.7 + ignore-by-default: ^1.0.1 + minimatch: ^3.1.2 + pstree.remy: ^1.1.8 + semver: ^7.5.3 + simple-update-notifier: ^2.0.0 + supports-color: ^5.5.0 + touch: ^3.1.0 + undefsafe: ^2.0.5 + bin: + nodemon: bin/nodemon.js + checksum: 6a5d81855760d6617049eccce10ccf02bddb482dab13ceea5280ae595ec7004eee13e7b934368e3f46c37fe4d970342a8c38c99cae7e93e4d7a3ed1c1ecb6acf + languageName: node + linkType: hard + "nopt@npm:^7.0.0": version: 7.2.0 resolution: "nopt@npm:7.2.0" @@ -10723,6 +10868,17 @@ __metadata: languageName: node linkType: hard +"nopt@npm:~1.0.10": + version: 1.0.10 + resolution: "nopt@npm:1.0.10" + dependencies: + abbrev: 1 + bin: + nopt: ./bin/nopt.js + checksum: f62575aceaa3be43f365bf37a596b89bbac2e796b001b6d2e2a85c2140a4e378ff919e2753ccba959c4fd344776fc88c29b393bc167fa939fb1513f126f4cd45 + languageName: node + linkType: hard + "normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" @@ -11301,7 +11457,16 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.39.0, playwright-core@npm:>=1.2.0": +"playwright-core@npm:1.40.1": + version: 1.40.1 + resolution: "playwright-core@npm:1.40.1" + bin: + playwright-core: cli.js + checksum: 84d92fb9b86e3c225b16b6886bf858eb5059b4e60fa1205ff23336e56a06dcb2eac62650992dede72f406c8e70a7b6a5303e511f9b4bc0b85022ede356a01ee0 + languageName: node + linkType: hard + +"playwright-core@npm:>=1.2.0": version: 1.39.0 resolution: "playwright-core@npm:1.39.0" bin: @@ -11310,18 +11475,18 @@ __metadata: languageName: node linkType: hard -"playwright@npm:^1.14.0": - version: 1.39.0 - resolution: "playwright@npm:1.39.0" +"playwright@npm:1.40.1": + version: 1.40.1 + resolution: "playwright@npm:1.40.1" dependencies: fsevents: 2.3.2 - playwright-core: 1.39.0 + playwright-core: 1.40.1 dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: 96d8ca5aa25465c1c5d554d0d6071981d55e22477800ff8f5d47a53ca75193d60ece2df538a01b7165b3277dd5493c67603a5acda713029df7fbd95ce2417bc9 + checksum: 9e36791c1b4a649c104aa365fdd9d049924eeb518c5967c0e921aa38b9b00994aa6ee54784d6c2af194b3b494b6f69772673081ef53c6c4a4b2065af9955c4ba languageName: node linkType: hard @@ -11348,12 +11513,12 @@ __metadata: languageName: node linkType: hard -"postcss-load-config@npm:^3.0.1": - version: 3.1.4 - resolution: "postcss-load-config@npm:3.1.4" +"postcss-load-config@npm:^4.0.1": + version: 4.0.2 + resolution: "postcss-load-config@npm:4.0.2" dependencies: - lilconfig: ^2.0.5 - yaml: ^1.10.2 + lilconfig: ^3.0.0 + yaml: ^2.3.4 peerDependencies: postcss: ">=8.0.9" ts-node: ">=9.0.0" @@ -11362,7 +11527,7 @@ __metadata: optional: true ts-node: optional: true - checksum: 1c589504c2d90b1568aecae8238ab993c17dba2c44f848a8f13619ba556d26a1c09644d5e6361b5784e721e94af37b604992f9f3dc0483e687a0cc1cc5029a34 + checksum: 7c27dd3801db4eae207a5116fed2db6b1ebb780b40c3dd62a3e57e087093a8e6a14ee17ada729fee903152d6ef4826c6339eb135bee6208e0f3140d7e8090185 languageName: node linkType: hard @@ -11521,6 +11686,13 @@ __metadata: languageName: node linkType: hard +"pstree.remy@npm:^1.1.8": + version: 1.1.8 + resolution: "pstree.remy@npm:1.1.8" + checksum: 5cb53698d6bb34dfb278c8a26957964aecfff3e161af5fbf7cee00bbe9d8547c7aced4bd9cb193bce15fb56e9e4220fc02a5bf9c14345ffb13a36b858701ec2d + languageName: node + linkType: hard + "pump@npm:^2.0.0": version: 2.0.1 resolution: "pump@npm:2.0.1" @@ -12219,7 +12391,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^2.25.0 || ^3.3.0, rollup@npm:^3.2.5, rollup@npm:^3.27.1": +"rollup@npm:^2.25.0 || ^3.3.0, rollup@npm:^3.27.1": version: 3.29.4 resolution: "rollup@npm:3.29.4" dependencies: @@ -12233,6 +12405,56 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.0.2": + version: 4.6.1 + resolution: "rollup@npm:4.6.1" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.6.1 + "@rollup/rollup-android-arm64": 4.6.1 + "@rollup/rollup-darwin-arm64": 4.6.1 + "@rollup/rollup-darwin-x64": 4.6.1 + "@rollup/rollup-linux-arm-gnueabihf": 4.6.1 + "@rollup/rollup-linux-arm64-gnu": 4.6.1 + "@rollup/rollup-linux-arm64-musl": 4.6.1 + "@rollup/rollup-linux-x64-gnu": 4.6.1 + "@rollup/rollup-linux-x64-musl": 4.6.1 + "@rollup/rollup-win32-arm64-msvc": 4.6.1 + "@rollup/rollup-win32-ia32-msvc": 4.6.1 + "@rollup/rollup-win32-x64-msvc": 4.6.1 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 1d66f7f61b242a2064f9f993192f19de370ee54d7b7fd7159b6ece2352079be01ed0b5d7e3f0bb7a9242f1dcad4898a6265f0990e91bba8169b81c52136cbc9f + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -12896,7 +13118,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": +"supports-color@npm:^5.3.0, supports-color@npm:^5.5.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" dependencies: @@ -13143,6 +13365,17 @@ __metadata: languageName: node linkType: hard +"touch@npm:^3.1.0": + version: 3.1.0 + resolution: "touch@npm:3.1.0" + dependencies: + nopt: ~1.0.10 + bin: + nodetouch: ./bin/nodetouch.js + checksum: e0be589cb5b0e6dbfce6e7e077d4a0d5f0aba558ef769c6d9c33f635e00d73d5be49da6f8631db302ee073919d82b5b7f56da2987feb28765c95a7673af68647 + languageName: node + linkType: hard + "tr46@npm:^1.0.1": version: 1.0.1 resolution: "tr46@npm:1.0.1" @@ -13302,29 +13535,32 @@ __metadata: languageName: node linkType: hard -"tsup@npm:^6.5.0": - version: 6.7.0 - resolution: "tsup@npm:6.7.0" +"tsup@npm:^8.0.1": + version: 8.0.1 + resolution: "tsup@npm:8.0.1" dependencies: bundle-require: ^4.0.0 cac: ^6.7.12 chokidar: ^3.5.1 debug: ^4.3.1 - esbuild: ^0.17.6 + esbuild: ^0.19.2 execa: ^5.0.0 globby: ^11.0.3 joycon: ^3.0.1 - postcss-load-config: ^3.0.1 + postcss-load-config: ^4.0.1 resolve-from: ^5.0.0 - rollup: ^3.2.5 + rollup: ^4.0.2 source-map: 0.8.0-beta.0 sucrase: ^3.20.3 tree-kill: ^1.2.2 peerDependencies: + "@microsoft/api-extractor": ^7.36.0 "@swc/core": ^1 postcss: ^8.4.12 - typescript: ">=4.1.0" + typescript: ">=4.5.0" peerDependenciesMeta: + "@microsoft/api-extractor": + optional: true "@swc/core": optional: true postcss: @@ -13334,7 +13570,7 @@ __metadata: bin: tsup: dist/cli-default.js tsup-node: dist/cli-node.js - checksum: 91ff179f0b9828a6880b6decaa8603fd7af0311f46a38d3a93647a2497298750d676810aeff533a335443a01a7b340dbba7c76523bcd7a87d7b05b7677742901 + checksum: 7b9e7a412247e374be1f22d9aa68eec64e9bdebfdf36ac915fc24be995fc7b855d74cf210431122cec26351e4c22c0b87f0400181b1de1915a80531f4797d84a languageName: node linkType: hard @@ -13427,23 +13663,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~4.9.4": - version: 4.9.5 - resolution: "typescript@npm:4.9.5" +"typescript@npm:^5.3.2": + version: 5.3.2 + resolution: "typescript@npm:5.3.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + checksum: d92534dda639eb825db013203404c1fabca8ac630564283c9e7dc9e64fd9c9346c2de95ecebdf3e6e8c1c32941bca1cfe0da37877611feb9daf8feeaea58d230 languageName: node linkType: hard -"typescript@patch:typescript@~4.9.4#~builtin": - version: 4.9.5 - resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=289587" +"typescript@patch:typescript@^5.3.2#~builtin": + version: 5.3.2 + resolution: "typescript@patch:typescript@npm%3A5.3.2#~builtin::version=5.3.2&hash=f3b441" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68 + checksum: c034461079fbfde3cb584ddee52afccb15b6e32a0ce186d0b2719968786f7ca73e1b07f71fac4163088790b16811c6ccf79680de190664ef66ff0ba9c1fe4a23 languageName: node linkType: hard @@ -13470,6 +13706,13 @@ __metadata: languageName: node linkType: hard +"undefsafe@npm:^2.0.5": + version: 2.0.5 + resolution: "undefsafe@npm:2.0.5" + checksum: f42ab3b5770fedd4ada175fc1b2eb775b78f609156f7c389106aafd231bfc210813ee49f54483d7191d7b76e483bc7f537b5d92d19ded27156baf57592eb02cc + languageName: node + linkType: hard + "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" @@ -14161,13 +14404,20 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^1.10.0, yaml@npm:^1.10.2": +"yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f languageName: node linkType: hard +"yaml@npm:^2.3.4": + version: 2.3.4 + resolution: "yaml@npm:2.3.4" + checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 + languageName: node + linkType: hard + "yargs-parser@npm:^18.1.2": version: 18.1.3 resolution: "yargs-parser@npm:18.1.3" From c6e45e45be6cb5e01b9bf91818a9ede1ac8cb0ff Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Fri, 1 Dec 2023 15:28:38 +0100 Subject: [PATCH 2/9] WIP --- src/config/global.setup.ts | 2 +- src/test-storybook.ts | 13 ++++++++++--- src/util/getCliOptions.ts | 16 +++++++++++++--- src/util/getParsedCliOptions.ts | 6 +++--- src/util/getStorybookMain.ts | 4 ++-- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/config/global.setup.ts b/src/config/global.setup.ts index d87429b2..c779a2ac 100644 --- a/src/config/global.setup.ts +++ b/src/config/global.setup.ts @@ -1,3 +1,3 @@ export default async () => { - console.log('Create and define files from index-json'); + // here is where we potentially create and define files from index-json }; diff --git a/src/test-storybook.ts b/src/test-storybook.ts index 7a0ee2c1..4c3afdfc 100644 --- a/src/test-storybook.ts +++ b/src/test-storybook.ts @@ -165,9 +165,16 @@ async function executePlaywright(args: PlaywrightOptions) { argv.push('--config', playwrightConfigPath); - execSync(`npx playwright test --ui --config ${playwrightConfigPath}`, { - stdio: 'inherit', - }); + const command = `npx playwright test ${argv.join(' ')}`; + + try { + execSync(command, { + stdio: 'inherit', + }); + } catch (err) { + // we exit ourselves otherwise we will print test failures as if it was a command error + process.exit(1); + } } async function checkStorybook(url: string) { diff --git a/src/util/getCliOptions.ts b/src/util/getCliOptions.ts index ce4f3833..9cfb2561 100644 --- a/src/util/getCliOptions.ts +++ b/src/util/getCliOptions.ts @@ -45,6 +45,15 @@ function copyOption( obj[key] = value; } +const getBackwardCompatibleKey = (key: string) => { + const optionsMap = { + watch: 'ui', + watchAll: 'ui', + } as Record; + + return optionsMap[key] ?? key; +}; + export const getCliOptions = (): CliOptions => { const { options: allOptions, extraArgs } = getParsedCliOptions(); @@ -60,12 +69,13 @@ export const getCliOptions = (): CliOptions => { if (STORYBOOK_RUNNER_COMMANDS.includes(key)) { copyOption(acc.runnerOptions, key, optionValue); } else { + let _key = getBackwardCompatibleKey(key); if (optionValue === true) { - acc.playwrightOptions.push(`--${key}`); + acc.playwrightOptions.push(`--${_key}`); } else if (optionValue === false) { - acc.playwrightOptions.push(`--no-${key}`); + acc.playwrightOptions.push(`--no-${_key}`); } else { - acc.playwrightOptions.push(`--${key}`, `${optionValue}`); + acc.playwrightOptions.push(`--${_key}`, `${optionValue}`); } } diff --git a/src/util/getParsedCliOptions.ts b/src/util/getParsedCliOptions.ts index 600a08bb..599261c0 100644 --- a/src/util/getParsedCliOptions.ts +++ b/src/util/getParsedCliOptions.ts @@ -24,7 +24,7 @@ export const getParsedCliOptions = (): ParsedCliOptions => { 'Directory where to load Storybook configurations from', '.storybook' ) - .option('--watch', 'Watch files for changes and rerun tests related to changed files', false) + .option('--watch', 'Watch files for changes and rerun tests related to changed files') .option('--watchAll', 'Watch files for changes and rerun all tests when something changes') .option( '--browsers ', @@ -40,8 +40,8 @@ export const getParsedCliOptions = (): ParsedCliOptions => { '--maxWorkers ', 'Specifies the maximum number of workers the worker-pool will spawn for running tests' ) - .option('--no-cache', 'Disable the cache') - .option('--clearCache', 'Deletes the Jest cache directory and then exits without running tests') + // .option('--no-cache', 'Disable the cache') + // .option('--clearCache', 'Deletes the Jest cache directory and then exits without running tests') .option('--verbose', 'Display individual test results with the test suite hierarchy') .option( '-u, --updateSnapshot', diff --git a/src/util/getStorybookMain.ts b/src/util/getStorybookMain.ts index 4398d6a0..b8f542d8 100644 --- a/src/util/getStorybookMain.ts +++ b/src/util/getStorybookMain.ts @@ -7,13 +7,13 @@ export const storybookMainConfig = new Map(); export const getStorybookMain = (configDir = '.storybook') => { if (storybookMainConfig.has(configDir)) { - // console.log('cached main config!'); + // console.log('cached main config!', storybookMainConfig.get(configDir)); return storybookMainConfig.get(configDir) as StorybookConfig; } else { console.log('setting main config for the first time'); // console.trace('path: ', join(resolve(configDir), 'main')); const config = serverRequire(join(resolve(configDir), 'main')); - // console.log('mainConfig: ', config); + console.log('👉 mainConfig: ', config); storybookMainConfig.set(configDir, config); } From c21c62e5f89f5a9a16a2b494be807ac7dd217bc1 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 21 May 2024 12:20:28 +0200 Subject: [PATCH 3/9] fix merge conflicts --- package.json | 22 +- yarn.lock | 1488 +++++++++++++++++++------------------------------- 2 files changed, 588 insertions(+), 922 deletions(-) diff --git a/package.json b/package.json index 92c075d3..1590bed3 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,6 @@ "storybook-addons", "test", "runner", - "jest", "testing-library", "playwright" ], @@ -31,7 +30,7 @@ "scripts": { "build": "tsup", "build-storybook": "storybook build", - "build:watch": "tsup --watch", + "build:watch": "concurrently \"tsup --watch\" \"nodemon\"", "generate-dynamic-stories": "node scripts/generate-dynamic-stories.js", "prepare": "husky install", "release": "yarn build && auto shipit", @@ -56,6 +55,7 @@ "@babel/template": "^7.22.5", "@babel/types": "^7.22.5", "@jest/types": "^29.6.3", + "@playwright/test": "^1.36.1", "@storybook/core-common": "next", "@storybook/csf": "^0.1.2", "@storybook/csf-tools": "next", @@ -71,8 +71,7 @@ "jest-runner": "^29.6.4", "jest-serializer-html": "^7.1.0", "jest-watch-typeahead": "^2.0.0", - "nyc": "^15.1.0", - "playwright": "^1.14.0" + "nyc": "^15.1.0" }, "devDependencies": { "@auto-it/released": "^11.1.6", @@ -102,6 +101,7 @@ "jest-image-snapshot": "^6.2.0", "lint-staged": "^13.0.3", "node-fetch": "^2", + "nodemon": "^3.0.1", "pkg-up": "^5.0.0", "prettier": "^2.8.1", "react": "^17.0.1", @@ -111,11 +111,19 @@ "tempy": "^1.0.1", "ts-dedent": "^2.0.0", "ts-jest": "^29.0.0", - "tsup": "^6.5.0", - "typescript": "~4.9.4", + "tsup": "^8.0.1", + "typescript": "^5.3.2", "vite": "^4.4.5", "wait-on": "^7.2.0" }, + "nodemonConfig": { + "watch": [ + "src/playwright/csf-playwright-plugin.ts", + "src/util/*.ts" + ], + "exec": "node scripts/delete-playwright-cache.js", + "ext": "ts" + }, "engines": { "node": "^16.10.0 || ^18.0.0 || >=20.0.0" }, @@ -140,4 +148,4 @@ ], "icon": "https://user-images.githubusercontent.com/321738/63501763-88dbf600-c4cc-11e9-96cd-94adadc2fd72.png" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 0822df3b..d83ce47e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,3 +1,6 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + __metadata: version: 6 cacheKey: 8 @@ -1753,17 +1756,17 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.20.2": - version: 0.20.2 - resolution: "@esbuild/aix-ppc64@npm:0.20.2" +"@esbuild/aix-ppc64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/aix-ppc64@npm:0.19.12" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-arm64@npm:0.17.19" - conditions: os=android & cpu=arm64 +"@esbuild/aix-ppc64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/aix-ppc64@npm:0.20.2" + conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -1774,9 +1777,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-arm64@npm:0.19.8" +"@esbuild/android-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-arm64@npm:0.19.12" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -1788,13 +1791,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-arm@npm:0.17.19" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@esbuild/android-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm@npm:0.18.20" @@ -1802,9 +1798,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-arm@npm:0.19.8" +"@esbuild/android-arm@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-arm@npm:0.19.12" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -1816,13 +1812,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/android-x64@npm:0.17.19" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - "@esbuild/android-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-x64@npm:0.18.20" @@ -1830,9 +1819,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-x64@npm:0.19.8" +"@esbuild/android-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-x64@npm:0.19.12" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -1844,13 +1833,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/darwin-arm64@npm:0.17.19" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/darwin-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-arm64@npm:0.18.20" @@ -1858,9 +1840,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/darwin-arm64@npm:0.19.8" +"@esbuild/darwin-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/darwin-arm64@npm:0.19.12" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -1872,13 +1854,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/darwin-x64@npm:0.17.19" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@esbuild/darwin-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-x64@npm:0.18.20" @@ -1886,9 +1861,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/darwin-x64@npm:0.19.8" +"@esbuild/darwin-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/darwin-x64@npm:0.19.12" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -1900,13 +1875,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/freebsd-arm64@npm:0.17.19" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/freebsd-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-arm64@npm:0.18.20" @@ -1914,9 +1882,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/freebsd-arm64@npm:0.19.8" +"@esbuild/freebsd-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/freebsd-arm64@npm:0.19.12" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -1928,13 +1896,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/freebsd-x64@npm:0.17.19" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/freebsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-x64@npm:0.18.20" @@ -1942,9 +1903,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/freebsd-x64@npm:0.19.8" +"@esbuild/freebsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/freebsd-x64@npm:0.19.12" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -1956,13 +1917,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-arm64@npm:0.17.19" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/linux-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm64@npm:0.18.20" @@ -1970,9 +1924,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-arm64@npm:0.19.8" +"@esbuild/linux-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-arm64@npm:0.19.12" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -1984,13 +1938,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-arm@npm:0.17.19" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@esbuild/linux-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm@npm:0.18.20" @@ -1998,9 +1945,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-arm@npm:0.19.8" +"@esbuild/linux-arm@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-arm@npm:0.19.12" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -2012,13 +1959,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-ia32@npm:0.17.19" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/linux-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ia32@npm:0.18.20" @@ -2026,9 +1966,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-ia32@npm:0.19.8" +"@esbuild/linux-ia32@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-ia32@npm:0.19.12" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -2040,13 +1980,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-loong64@npm:0.17.19" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - "@esbuild/linux-loong64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-loong64@npm:0.18.20" @@ -2054,9 +1987,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-loong64@npm:0.19.8" +"@esbuild/linux-loong64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-loong64@npm:0.19.12" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -2068,13 +2001,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-mips64el@npm:0.17.19" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - "@esbuild/linux-mips64el@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-mips64el@npm:0.18.20" @@ -2082,9 +2008,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-mips64el@npm:0.19.8" +"@esbuild/linux-mips64el@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-mips64el@npm:0.19.12" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -2096,13 +2022,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-ppc64@npm:0.17.19" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/linux-ppc64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ppc64@npm:0.18.20" @@ -2110,9 +2029,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-ppc64@npm:0.19.8" +"@esbuild/linux-ppc64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-ppc64@npm:0.19.12" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -2124,13 +2043,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-riscv64@npm:0.17.19" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - "@esbuild/linux-riscv64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-riscv64@npm:0.18.20" @@ -2138,9 +2050,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-riscv64@npm:0.19.8" +"@esbuild/linux-riscv64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-riscv64@npm:0.19.12" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -2152,13 +2064,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-s390x@npm:0.17.19" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - "@esbuild/linux-s390x@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-s390x@npm:0.18.20" @@ -2166,9 +2071,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-s390x@npm:0.19.8" +"@esbuild/linux-s390x@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-s390x@npm:0.19.12" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -2180,13 +2085,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/linux-x64@npm:0.17.19" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-x64@npm:0.18.20" @@ -2194,9 +2092,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-x64@npm:0.19.8" +"@esbuild/linux-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-x64@npm:0.19.12" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -2208,13 +2106,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/netbsd-x64@npm:0.17.19" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/netbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/netbsd-x64@npm:0.18.20" @@ -2222,9 +2113,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/netbsd-x64@npm:0.19.8" +"@esbuild/netbsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/netbsd-x64@npm:0.19.12" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -2236,13 +2127,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/openbsd-x64@npm:0.17.19" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/openbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/openbsd-x64@npm:0.18.20" @@ -2250,9 +2134,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/openbsd-x64@npm:0.19.8" +"@esbuild/openbsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/openbsd-x64@npm:0.19.12" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -2264,13 +2148,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/sunos-x64@npm:0.17.19" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - "@esbuild/sunos-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/sunos-x64@npm:0.18.20" @@ -2278,9 +2155,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/sunos-x64@npm:0.19.8" +"@esbuild/sunos-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/sunos-x64@npm:0.19.12" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -2292,13 +2169,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-arm64@npm:0.17.19" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/win32-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-arm64@npm:0.18.20" @@ -2306,9 +2176,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-arm64@npm:0.19.8" +"@esbuild/win32-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-arm64@npm:0.19.12" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -2320,13 +2190,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-ia32@npm:0.17.19" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/win32-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-ia32@npm:0.18.20" @@ -2334,9 +2197,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-ia32@npm:0.19.8" +"@esbuild/win32-ia32@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-ia32@npm:0.19.12" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -2348,13 +2211,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.17.19": - version: 0.17.19 - resolution: "@esbuild/win32-x64@npm:0.17.19" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@esbuild/win32-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-x64@npm:0.18.20" @@ -2362,9 +2218,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-x64@npm:0.19.8" +"@esbuild/win32-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-x64@npm:0.19.12" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3005,22 +2861,13 @@ __metadata: linkType: hard "@playwright/test@npm:^1.36.1": - version: 1.40.1 - resolution: "@playwright/test@npm:1.40.1" + version: 1.44.0 + resolution: "@playwright/test@npm:1.44.0" dependencies: - playwright: 1.40.1 + playwright: 1.44.0 bin: playwright: cli.js - checksum: ae094e6cb809365c0707ee2b184e42d2a2542569ada020d2d44ca5866066941262bd9a67af185f86c2fb0133c9b712ea8cb73e2959a289e4261c5fd17077283c - languageName: node - linkType: hard - -"@radix-ui/number@npm:1.0.1": - version: 1.0.1 - resolution: "@radix-ui/number@npm:1.0.1" - dependencies: - "@babel/runtime": ^7.13.10 - checksum: 621ea8b7d4195d1a65a9c0aee918e8335e7f198088eec91577512c89c2ba3a3bab4a767cfb872a2b9c3092a78ff41cad9a924845a939f6bb87fe9356241ea0ea + checksum: 64cb12e26156e0530d16cec629d82c228db7a57fe29096a6961a18fc8b7fc5f35e28f8905af7039fad5d3af0224d38e93dba479760db2ce16a63c5e2fbe2990c languageName: node linkType: hard @@ -3328,99 +3175,118 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.6.1" +"@rollup/rollup-android-arm-eabi@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.17.2" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-android-arm64@npm:4.6.1" +"@rollup/rollup-android-arm64@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-android-arm64@npm:4.17.2" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.6.1" +"@rollup/rollup-darwin-arm64@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-darwin-arm64@npm:4.17.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-darwin-x64@npm:4.6.1" +"@rollup/rollup-darwin-x64@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-darwin-x64@npm:4.17.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.6.1" - conditions: os=linux & cpu=arm +"@rollup/rollup-linux-arm-gnueabihf@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.17.2" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.17.2" + conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.6.1" +"@rollup/rollup-linux-arm64-gnu@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.17.2" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.6.1" +"@rollup/rollup-linux-arm64-musl@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.17.2" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.6.1" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.17.2" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.17.2" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.17.2" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.17.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.6.1" +"@rollup/rollup-linux-x64-musl@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.17.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.6.1" +"@rollup/rollup-win32-arm64-msvc@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.17.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.6.1" +"@rollup/rollup-win32-ia32-msvc@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.17.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.6.1": - version: 4.6.1 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.6.1" +"@rollup/rollup-win32-x64-msvc@npm:4.17.2": + version: 4.17.2 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.17.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@sideway/address@npm:^4.1.3": - version: 4.1.4 - resolution: "@sideway/address@npm:4.1.4" - dependencies: - "@hapi/hoek": ^9.0.0 - checksum: 3e3ea0f00b4765d86509282290368a4a5fd39a7995fdc6de42116ca19a96120858e56c2c995081def06e1c53e1f8bccc7d013f6326602bec9d56b72ee2772b9d - languageName: node - linkType: hard - "@sideway/address@npm:^4.1.5": version: 4.1.5 resolution: "@sideway/address@npm:4.1.5" @@ -3476,40 +3342,40 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-actions@npm:8.2.0-alpha.1" +"@storybook/addon-actions@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-actions@npm:8.2.0-alpha.2" dependencies: - "@storybook/core-events": 8.2.0-alpha.1 + "@storybook/core-events": 8.2.0-alpha.2 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: b708494a3b0d7812ce57de60ffed2b7a8bb1e5531b555974d7a17ac3fc698139340156726428dad309e8597b0753bdb962ab1df2ebd449e0139f29cd44b4813e + checksum: 59019fa2379eef9cf755040109d89efb93ac2ea3e2fe1372f0f06e5757143e2be000fd57553f42c05628d6f0fdd02048ed982eaa6d5ba17150cf30eaef776ca7 languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-backgrounds@npm:8.2.0-alpha.1" +"@storybook/addon-backgrounds@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-backgrounds@npm:8.2.0-alpha.2" dependencies: "@storybook/global": ^5.0.0 memoizerific: ^1.11.3 ts-dedent: ^2.0.0 - checksum: bdb879b98542aeccdfbde2d1bd922aed6810ba898ad1e0bd6f2320ccebcbb3db4ed864156ca78aa9c63ca1c808607432de687d4c102eae9ccdfcc0c5e7ea1c6e + checksum: 94bb9e1ab4b4fb404af81b52d78e6546af66382bed41206f896b514162b64207889bf0625e7f50253210156ba7bf7cbfb18e081b56fb823fdaf27add6246f17e languageName: node linkType: hard -"@storybook/addon-controls@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-controls@npm:8.2.0-alpha.1" +"@storybook/addon-controls@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-controls@npm:8.2.0-alpha.2" dependencies: - "@storybook/blocks": 8.2.0-alpha.1 + "@storybook/blocks": 8.2.0-alpha.2 dequal: ^2.0.2 lodash: ^4.17.21 ts-dedent: ^2.0.0 - checksum: 07b1b67c305baac6df6d2cb24e72d25e8b99b499391e8d468e43d2aac3d1e66fd90cda92786079b9ef443bdccf31daeb12c16e0580a0e86474a0daa0da312d06 + checksum: dc34b9f26ec70db34762238be73efba16a3d58514df32e52b173d894b70ccd50a2fe6ece9a2a2a52671276ab23e4c67516ec849e006d3653a128d470923f9288 languageName: node linkType: hard @@ -3530,23 +3396,23 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-docs@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-docs@npm:8.2.0-alpha.1" +"@storybook/addon-docs@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-docs@npm:8.2.0-alpha.2" dependencies: "@babel/core": ^7.24.4 "@mdx-js/react": ^3.0.0 - "@storybook/blocks": 8.2.0-alpha.1 - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/components": 8.2.0-alpha.1 - "@storybook/csf-plugin": 8.2.0-alpha.1 - "@storybook/csf-tools": 8.2.0-alpha.1 + "@storybook/blocks": 8.2.0-alpha.2 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/components": 8.2.0-alpha.2 + "@storybook/csf-plugin": 8.2.0-alpha.2 + "@storybook/csf-tools": 8.2.0-alpha.2 "@storybook/global": ^5.0.0 - "@storybook/node-logger": 8.2.0-alpha.1 - "@storybook/preview-api": 8.2.0-alpha.1 - "@storybook/react-dom-shim": 8.2.0-alpha.1 - "@storybook/theming": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/node-logger": 8.2.0-alpha.2 + "@storybook/preview-api": 8.2.0-alpha.2 + "@storybook/react-dom-shim": 8.2.0-alpha.2 + "@storybook/theming": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 fs-extra: ^11.1.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3554,107 +3420,107 @@ __metadata: rehype-external-links: ^3.0.0 rehype-slug: ^6.0.0 ts-dedent: ^2.0.0 - checksum: 718cf5e081b930c43cd804083ebe38fa1aabf8d4ffb2ed7cb3a20a0a8007536b847279f1027caab349af0a49e4faf0cf5af0118ce69eb7a8a428797c594f413e + checksum: 52b1edbd67ae2a9d0d546f746808fbac687364283d8482a3d9ed68acfbd6e5586109706ee7e74763b3ede00024cc35c966dd84d2e536c64f8ece74509444dc21 languageName: node linkType: hard "@storybook/addon-essentials@npm:next": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-essentials@npm:8.2.0-alpha.1" - dependencies: - "@storybook/addon-actions": 8.2.0-alpha.1 - "@storybook/addon-backgrounds": 8.2.0-alpha.1 - "@storybook/addon-controls": 8.2.0-alpha.1 - "@storybook/addon-docs": 8.2.0-alpha.1 - "@storybook/addon-highlight": 8.2.0-alpha.1 - "@storybook/addon-measure": 8.2.0-alpha.1 - "@storybook/addon-outline": 8.2.0-alpha.1 - "@storybook/addon-toolbars": 8.2.0-alpha.1 - "@storybook/addon-viewport": 8.2.0-alpha.1 - "@storybook/core-common": 8.2.0-alpha.1 - "@storybook/manager-api": 8.2.0-alpha.1 - "@storybook/node-logger": 8.2.0-alpha.1 - "@storybook/preview-api": 8.2.0-alpha.1 + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-essentials@npm:8.2.0-alpha.2" + dependencies: + "@storybook/addon-actions": 8.2.0-alpha.2 + "@storybook/addon-backgrounds": 8.2.0-alpha.2 + "@storybook/addon-controls": 8.2.0-alpha.2 + "@storybook/addon-docs": 8.2.0-alpha.2 + "@storybook/addon-highlight": 8.2.0-alpha.2 + "@storybook/addon-measure": 8.2.0-alpha.2 + "@storybook/addon-outline": 8.2.0-alpha.2 + "@storybook/addon-toolbars": 8.2.0-alpha.2 + "@storybook/addon-viewport": 8.2.0-alpha.2 + "@storybook/core-common": 8.2.0-alpha.2 + "@storybook/manager-api": 8.2.0-alpha.2 + "@storybook/node-logger": 8.2.0-alpha.2 + "@storybook/preview-api": 8.2.0-alpha.2 ts-dedent: ^2.0.0 - checksum: 96782c698347d6bb54ca403882b00e2420227f702d4772ae77fded52fecbd354c98755a8a0484e98c85ebf43014e5f7c80ca27b149659ac6afe8b1fab27b980d + checksum: 26def4feca044233ceb4ebd0e9020170b30f9934bf0a52d3a63c2194674c344fbfbd8231c7d8b079ad637debad3d74620c934b1106569ea4b62b71800a158a79 languageName: node linkType: hard -"@storybook/addon-highlight@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-highlight@npm:8.2.0-alpha.1" +"@storybook/addon-highlight@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-highlight@npm:8.2.0-alpha.2" dependencies: "@storybook/global": ^5.0.0 - checksum: 10d27e5575d4d169f4ca97ec389e607084a411bedec12941bcd5aadcf6e37350410edd36c4439305e0664544006a3766fa7189f13478177c0be229fd19313951 + checksum: 846e5a97b31480057ccf315f827759edee0b4f5842e6ee4d297eec8d8121e01ffdb9bca774f425b532aa317cde7043e23d2cba8e4c2803868305191adb3429d1 languageName: node linkType: hard "@storybook/addon-interactions@npm:next": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-interactions@npm:8.2.0-alpha.1" + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-interactions@npm:8.2.0-alpha.2" dependencies: "@storybook/global": ^5.0.0 - "@storybook/instrumenter": 8.2.0-alpha.1 - "@storybook/test": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/instrumenter": 8.2.0-alpha.2 + "@storybook/test": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 polished: ^4.2.2 ts-dedent: ^2.2.0 - checksum: ed74a40cfd0c09d3dff44982de4a8859a1dc2406a12e62f46322981d7992b47cca9ee65bda156596111941adb73c6749c32be3cb02921beea984966e1e86b9ae + checksum: b6efadf640684d162de8b154e437553d31dfd157251425082e22c153c0c16efb11e3bab5f0bbf1cc0c9807264391a62c7c4ea104fa7d991a24a9c13a47f0bae7 languageName: node linkType: hard -"@storybook/addon-measure@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-measure@npm:8.2.0-alpha.1" +"@storybook/addon-measure@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-measure@npm:8.2.0-alpha.2" dependencies: "@storybook/global": ^5.0.0 tiny-invariant: ^1.3.1 - checksum: 7aea5a56494d2c30c6d562534220015e423bd61a8b524365f4a599161f9621a9b5f4cdf6400d89639087e6731b77a84eb24cfd419bd41682f9264adb0f39b575 + checksum: 598670628650ee43419243fa3c8c6a82d85a812e9e1db33d2358244a463138958df7d30b733ea6057470d0c288c8395931971019e4e84d779ec27ca2ded7ed7d languageName: node linkType: hard -"@storybook/addon-outline@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-outline@npm:8.2.0-alpha.1" +"@storybook/addon-outline@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-outline@npm:8.2.0-alpha.2" dependencies: "@storybook/global": ^5.0.0 ts-dedent: ^2.0.0 - checksum: 9b2d460e047dae7f39178bd90f4ad735b2cc865bc22f7f06cb36e5fa8718c35883cde74fa428ce08f6350d1819cc06f018241a3a0dcc3771b493993dc1366536 + checksum: 328efdce3f7449cf3a9dd98e662e03f8d73b37d7bb8ff48da688e2db6f834e393b5ad752098aee512cd452bb56f25d7a6d780708528aa099f232fe6f30bf58aa languageName: node linkType: hard -"@storybook/addon-toolbars@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-toolbars@npm:8.2.0-alpha.1" - checksum: 4f623190e9d8004d33652ca44e54b92ac2d4f0e2bb363072bc2401b770110fe817ed9cf9829d8934d139fcf0de25044e036aa5c028aaef277c9d96392d9bb686 +"@storybook/addon-toolbars@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-toolbars@npm:8.2.0-alpha.2" + checksum: 00b9056cdbfc73398d7baf2c924474dd83effb6e4a92641666ca4b4596c949fb84ea5e188e9232b5f10143188752147a697f797cc143869ba8201557dbbf7274 languageName: node linkType: hard -"@storybook/addon-viewport@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/addon-viewport@npm:8.2.0-alpha.1" +"@storybook/addon-viewport@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/addon-viewport@npm:8.2.0-alpha.2" dependencies: memoizerific: ^1.11.3 - checksum: 2af7524235cc3c7de241c8c736d2bb5f3d6981673297bbe6e1af67ddddb372c50c44ad5b010bccc18246cfc86be63ecd06cfce9617bd20cd3518d6a67f912e02 + checksum: 3e4d43f51a8aa77f0574764a8d0a07fca7038a819063550b300ec6874ed1c39f1a14a48dc9a48bf3464d2e25aef3bf813175d1d4dc58fcdf6004d07ecaaa7ae5 languageName: node linkType: hard -"@storybook/blocks@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/blocks@npm:8.2.0-alpha.1" +"@storybook/blocks@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/blocks@npm:8.2.0-alpha.2" dependencies: - "@storybook/channels": 8.2.0-alpha.1 - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/components": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 + "@storybook/channels": 8.2.0-alpha.2 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/components": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 "@storybook/csf": ^0.1.7 - "@storybook/docs-tools": 8.2.0-alpha.1 + "@storybook/docs-tools": 8.2.0-alpha.2 "@storybook/global": ^5.0.0 "@storybook/icons": ^1.2.5 - "@storybook/manager-api": 8.2.0-alpha.1 - "@storybook/preview-api": 8.2.0-alpha.1 - "@storybook/theming": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/manager-api": 8.2.0-alpha.2 + "@storybook/preview-api": 8.2.0-alpha.2 + "@storybook/theming": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@types/lodash": ^4.14.167 color-convert: ^2.0.1 dequal: ^2.0.2 @@ -3675,18 +3541,18 @@ __metadata: optional: true react-dom: optional: true - checksum: 927a78298f439209739622870ccc3ae3fd0d2930727ad2b84d9f36e400c249633027c10b3cb8c8d56f7a324cde51f41b3d8a8ce5d6834d978dad196e220d57d4 + checksum: e38f9dfed6762d44c3613e182f5d168a1c69ba3ef572f750c85fcbb04e58f67405141aa0813832359950343c455cb560ef0d2f68c1596d744dc4aa7c4e495d5a languageName: node linkType: hard -"@storybook/builder-manager@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/builder-manager@npm:8.2.0-alpha.1" +"@storybook/builder-manager@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/builder-manager@npm:8.2.0-alpha.2" dependencies: "@fal-works/esbuild-plugin-global-externals": ^2.1.2 - "@storybook/core-common": 8.2.0-alpha.1 - "@storybook/manager": 8.2.0-alpha.1 - "@storybook/node-logger": 8.2.0-alpha.1 + "@storybook/core-common": 8.2.0-alpha.2 + "@storybook/manager": 8.2.0-alpha.2 + "@storybook/node-logger": 8.2.0-alpha.2 "@types/ejs": ^3.1.1 "@yarnpkg/esbuild-plugin-pnp": ^3.0.0-rc.10 browser-assert: ^1.2.1 @@ -3697,23 +3563,23 @@ __metadata: fs-extra: ^11.1.0 process: ^0.11.10 util: ^0.12.4 - checksum: 17f03994043b0f0e4bb842e07da994b01d9c6f48cedef6acd5224ff218373c8a0a6a6244bb36f486de2e32c4059716953a55324f4ee7de0c2f008368f7099c6b + checksum: 7d3c66fec09d78e85369fa3d2851e0368f0ba6807a14b3c3f986e3b0a86cac20a87d829d631b455c2db0fd9c4fbdb2bb5793f38899c7de9dc2d10d8b122300e3 languageName: node linkType: hard -"@storybook/builder-vite@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/builder-vite@npm:8.2.0-alpha.1" +"@storybook/builder-vite@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/builder-vite@npm:8.2.0-alpha.2" dependencies: - "@storybook/channels": 8.2.0-alpha.1 - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/core-common": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 - "@storybook/csf-plugin": 8.2.0-alpha.1 - "@storybook/node-logger": 8.2.0-alpha.1 - "@storybook/preview": 8.2.0-alpha.1 - "@storybook/preview-api": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/channels": 8.2.0-alpha.2 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/core-common": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 + "@storybook/csf-plugin": 8.2.0-alpha.2 + "@storybook/node-logger": 8.2.0-alpha.2 + "@storybook/preview": 8.2.0-alpha.2 + "@storybook/preview-api": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@types/find-cache-dir": ^3.2.1 browser-assert: ^1.2.1 es-module-lexer: ^1.5.0 @@ -3734,38 +3600,38 @@ __metadata: optional: true vite-plugin-glimmerx: optional: true - checksum: c3ed7846ef8243de0af10e6f0247c93ec6c1358513c1c9bd15dfa008991862ef3b03394935c911a71ec67068acdf80927b6838046dc8141a5d071bb52d78802f + checksum: 10adfea6f337ea69c0cf249b2224aafb823a6e64d5a7de9e7495d45a9bab388d34f8c752f4b4b927135a5771e4a53665a0e0ec9915a82af450fa03468d0720fd languageName: node linkType: hard -"@storybook/channels@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/channels@npm:8.2.0-alpha.1" +"@storybook/channels@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/channels@npm:8.2.0-alpha.2" dependencies: - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 "@storybook/global": ^5.0.0 telejson: ^7.2.0 tiny-invariant: ^1.3.1 - checksum: 24d17b0872468e57f9c684bbb32e04a6fa458b3412e12bf26a5e32fddc88d21f183f23a41a6f2959460b4fa77aaf220c0327c39b10b31edd0462a9d20c4a66bf + checksum: a6bebf9e4d6b1bf1a4a721ace3b2818ca2f2ba2e7102fa3f863fe0f0e9ec30004d1a228aec34ff8ece08e8ae7a8be9f1f204f2c53c699980f5c7652c8ad79ec7 languageName: node linkType: hard -"@storybook/cli@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/cli@npm:8.2.0-alpha.1" +"@storybook/cli@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/cli@npm:8.2.0-alpha.2" dependencies: "@babel/core": ^7.24.4 "@babel/types": ^7.24.0 "@ndelangen/get-tarball": ^3.0.7 - "@storybook/codemod": 8.2.0-alpha.1 - "@storybook/core-common": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 - "@storybook/core-server": 8.2.0-alpha.1 - "@storybook/csf-tools": 8.2.0-alpha.1 - "@storybook/node-logger": 8.2.0-alpha.1 - "@storybook/telemetry": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/codemod": 8.2.0-alpha.2 + "@storybook/core-common": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 + "@storybook/core-server": 8.2.0-alpha.2 + "@storybook/csf-tools": 8.2.0-alpha.2 + "@storybook/node-logger": 8.2.0-alpha.2 + "@storybook/telemetry": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@types/semver": ^7.3.4 "@yarnpkg/fslib": 2.10.3 "@yarnpkg/libzip": 2.3.0 @@ -3794,30 +3660,30 @@ __metadata: bin: getstorybook: ./bin/index.js sb: ./bin/index.js - checksum: e33fd1ac4c8d9f5ce29db11ba6aae7e4d5d9c61b022f005df67d288bd669a9c6e68eef62f1e99a276f6c895ea6bbb9a5dcf9fd80d5560dafee87d78b9daec427 + checksum: 0e2efec467510b4a0cadbb8f81766246aff04ba22feeafee1eb12de89bbe89920d24a0c7498fbe4147faf848110ae1e4704e5f71191210f56417de621168e8c8 languageName: node linkType: hard -"@storybook/client-logger@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/client-logger@npm:8.2.0-alpha.1" +"@storybook/client-logger@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/client-logger@npm:8.2.0-alpha.2" dependencies: "@storybook/global": ^5.0.0 - checksum: 0bcf0eb4ecd5743b95bae2ab853dffe49b4e38336c2cd1f4c699d79f875d6b23f667ede9627a6106128328c02d7d045f67f5e75dbfbc6635726782a9ada8a5b3 + checksum: 32f9375479216ebb8ddd2fcb201725747928574d30fbcc1531890ceaefb93c52961bede9dce47627d555a03fbc940f7351a6bc79a11e7957d13225a9b1df18a1 languageName: node linkType: hard -"@storybook/codemod@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/codemod@npm:8.2.0-alpha.1" +"@storybook/codemod@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/codemod@npm:8.2.0-alpha.2" dependencies: "@babel/core": ^7.24.4 "@babel/preset-env": ^7.24.4 "@babel/types": ^7.24.0 "@storybook/csf": ^0.1.7 - "@storybook/csf-tools": 8.2.0-alpha.1 - "@storybook/node-logger": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/csf-tools": 8.2.0-alpha.2 + "@storybook/node-logger": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@types/cross-spawn": ^6.0.2 cross-spawn: ^7.0.3 globby: ^14.0.1 @@ -3826,39 +3692,39 @@ __metadata: prettier: ^3.1.1 recast: ^0.23.5 tiny-invariant: ^1.3.1 - checksum: bdceb9ceeb32f1e2d756bfd9e24b060410ad8b534e4a802bc5cc01c2ad9f8bc2474e0ec214a61897ce1de2e315b1f7e9bdb5de8a589269f0a6aab2890a1ecc00 + checksum: 00dc7fcce234a4c3124fb580fefbf9f18c21bbf26c6565fdbf3634be1722d922f4188cc89e724e7ef5fcd0788bf6d2c4fd199791bf90b73d6c9954c4889122a2 languageName: node linkType: hard -"@storybook/components@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/components@npm:8.2.0-alpha.1" +"@storybook/components@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/components@npm:8.2.0-alpha.2" dependencies: "@radix-ui/react-dialog": ^1.0.5 "@radix-ui/react-slot": ^1.0.2 - "@storybook/client-logger": 8.2.0-alpha.1 + "@storybook/client-logger": 8.2.0-alpha.2 "@storybook/csf": ^0.1.7 "@storybook/global": ^5.0.0 "@storybook/icons": ^1.2.5 - "@storybook/theming": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/theming": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 memoizerific: ^1.11.3 util-deprecate: ^1.0.2 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - checksum: 04d54bcdaf7b40a840d511284739dceb582c9e06e7db88c6f872fb511dd0bbb96f8ac6be0642ef71a08fb5a1cf18aa3560cd304a8c4ad87afcce9ad8f01b1e2b + checksum: d2ccee581e96387c9cc727f0e1fcf113a47045c13744c85197a38bac4c1040ee0115eeb3acc338e513607883b95d510e690042f184615c044cba8bde2e538b3e languageName: node linkType: hard -"@storybook/core-common@npm:8.2.0-alpha.1, @storybook/core-common@npm:next": - version: 8.2.0-alpha.1 - resolution: "@storybook/core-common@npm:8.2.0-alpha.1" +"@storybook/core-common@npm:8.2.0-alpha.2, @storybook/core-common@npm:next": + version: 8.2.0-alpha.2 + resolution: "@storybook/core-common@npm:8.2.0-alpha.2" dependencies: - "@storybook/core-events": 8.2.0-alpha.1 - "@storybook/csf-tools": 8.2.0-alpha.1 - "@storybook/node-logger": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/core-events": 8.2.0-alpha.2 + "@storybook/csf-tools": 8.2.0-alpha.2 + "@storybook/node-logger": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@yarnpkg/fslib": 2.10.3 "@yarnpkg/libzip": 2.3.0 chalk: ^4.1.0 @@ -3889,42 +3755,42 @@ __metadata: peerDependenciesMeta: prettier: optional: true - checksum: 9c13de7494bd17e14d42f68e5c93b5e60c745f54244a886c67d7e69035382cfbe9941c17bd6376faa31a68fc17c9645f22ff0e44052a884a54b5883367d71795 + checksum: b8ad44e9fcab26254f78179faa4dd73958804545967efe2de71b9d71f32f126aaa52f9f0f85b3517446af23d52ca14c87863cefa0f3988cae9c065edb9b5f106 languageName: node linkType: hard -"@storybook/core-events@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/core-events@npm:8.2.0-alpha.1" +"@storybook/core-events@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/core-events@npm:8.2.0-alpha.2" dependencies: "@storybook/csf": ^0.1.7 ts-dedent: ^2.0.0 - checksum: 693f925620eb0104ad05f9eea3b9c68d65d6bcd4701a39b159b9724602334c5ac2ff5d33628da4a00f517add40f68c697f8251edc7af9c95f0bd87ea27675614 + checksum: 9462e615c2a7857d861bce88d8fd8fa1ada054819c556c24b824a4f2c109455681def0ccb03fb37861232efad4fcb2d06d17e312e3fe5f595d8a6734ac11ae60 languageName: node linkType: hard -"@storybook/core-server@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/core-server@npm:8.2.0-alpha.1" +"@storybook/core-server@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/core-server@npm:8.2.0-alpha.2" dependencies: "@aw-web-design/x-default-browser": 1.4.126 "@babel/core": ^7.24.4 "@babel/parser": ^7.24.4 "@discoveryjs/json-ext": ^0.5.3 - "@storybook/builder-manager": 8.2.0-alpha.1 - "@storybook/channels": 8.2.0-alpha.1 - "@storybook/core-common": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 + "@storybook/builder-manager": 8.2.0-alpha.2 + "@storybook/channels": 8.2.0-alpha.2 + "@storybook/core-common": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 "@storybook/csf": ^0.1.7 - "@storybook/csf-tools": 8.2.0-alpha.1 + "@storybook/csf-tools": 8.2.0-alpha.2 "@storybook/docs-mdx": 3.1.0-next.0 "@storybook/global": ^5.0.0 - "@storybook/manager": 8.2.0-alpha.1 - "@storybook/manager-api": 8.2.0-alpha.1 - "@storybook/node-logger": 8.2.0-alpha.1 - "@storybook/preview-api": 8.2.0-alpha.1 - "@storybook/telemetry": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/manager": 8.2.0-alpha.2 + "@storybook/manager-api": 8.2.0-alpha.2 + "@storybook/node-logger": 8.2.0-alpha.2 + "@storybook/preview-api": 8.2.0-alpha.2 + "@storybook/telemetry": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@types/detect-port": ^1.3.0 "@types/diff": ^5.0.9 "@types/node": ^18.0.0 @@ -3953,34 +3819,34 @@ __metadata: util-deprecate: ^1.0.2 watchpack: ^2.2.0 ws: ^8.2.3 - checksum: ff3e8eb521d27d4e9b088005b5b8434639d1e56e4f04f44a519aea93f112b6a10eb4a00d72c9eff914dc47c41fd982aefbc2057455f3b744db93b6317cbcb809 + checksum: ffd6fcc0640d75d45901c1b98223580d2bb2674ec11f33cd62d378531b3682facf9520ab708e9b29aeaa9864faf15d785a40672fe388f07b048253a112a5686a languageName: node linkType: hard -"@storybook/csf-plugin@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/csf-plugin@npm:8.2.0-alpha.1" +"@storybook/csf-plugin@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/csf-plugin@npm:8.2.0-alpha.2" dependencies: - "@storybook/csf-tools": 8.2.0-alpha.1 + "@storybook/csf-tools": 8.2.0-alpha.2 unplugin: ^1.3.1 - checksum: 81546b843d1e6634311eee758c55a30b73696027d816f3c71dc97e73616c099e8ca41eed5054bdbc71515d2af9052a05ffc919151f53e73b18c780a027823c9f + checksum: 11d09644ceaabeddfe45143bd0b0cef4600070bac602d4d5807e24d8a41c9de05733a22f7cd2b9d7261e1f8fc342fd263b0492548bc6b7d6b6deb75370339816 languageName: node linkType: hard -"@storybook/csf-tools@npm:8.2.0-alpha.1, @storybook/csf-tools@npm:next": - version: 8.2.0-alpha.1 - resolution: "@storybook/csf-tools@npm:8.2.0-alpha.1" +"@storybook/csf-tools@npm:8.2.0-alpha.2, @storybook/csf-tools@npm:next": + version: 8.2.0-alpha.2 + resolution: "@storybook/csf-tools@npm:8.2.0-alpha.2" dependencies: "@babel/generator": ^7.24.4 "@babel/parser": ^7.24.4 "@babel/traverse": ^7.24.1 "@babel/types": ^7.24.0 "@storybook/csf": ^0.1.7 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/types": 8.2.0-alpha.2 fs-extra: ^11.1.0 recast: ^0.23.5 ts-dedent: ^2.0.0 - checksum: b03018697b3debe7b06c17c229910cdef9a5aeeed721f4b51da8acd518971fa3a6d1e667590b8336b5da29f062f5c1c2b4832c7006e46217287fca9b70f46fed + checksum: 676fce3fdc645b4a4e181d3ce5808b003e3d0f387a54422edcc4ce5d5fbc78c2714c72db50beddc295c00e1fbeba2cda1ac050243efab45beafcbef6b9125cea languageName: node linkType: hard @@ -4000,19 +3866,19 @@ __metadata: languageName: node linkType: hard -"@storybook/docs-tools@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/docs-tools@npm:8.2.0-alpha.1" +"@storybook/docs-tools@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/docs-tools@npm:8.2.0-alpha.2" dependencies: - "@storybook/core-common": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 - "@storybook/preview-api": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/core-common": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 + "@storybook/preview-api": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@types/doctrine": ^0.0.3 assert: ^2.1.0 doctrine: ^3.0.0 lodash: ^4.17.21 - checksum: f6b671e181666c6abd34b9791837a63b16f48f70acb4030481d5fea4b1168f6082a8fa00ad7764e7786ce81c4f49977089e9e7bd52e4ba6f390257339e03487a + checksum: 4d6b2a7ed4798ce20be980347cae70cc829254c20899079cb7f2b3197a5649ed7e747012fff31b044380768618c65f8e7a52ec33a71334e1eb9756158bc9ac02 languageName: node linkType: hard @@ -4033,68 +3899,68 @@ __metadata: languageName: node linkType: hard -"@storybook/instrumenter@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/instrumenter@npm:8.2.0-alpha.1" +"@storybook/instrumenter@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/instrumenter@npm:8.2.0-alpha.2" dependencies: - "@storybook/channels": 8.2.0-alpha.1 - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 + "@storybook/channels": 8.2.0-alpha.2 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 "@storybook/global": ^5.0.0 - "@storybook/preview-api": 8.2.0-alpha.1 + "@storybook/preview-api": 8.2.0-alpha.2 "@vitest/utils": ^1.3.1 util: ^0.12.4 - checksum: 306527d99a4165f8cf1f2f2906fa1583d8fefe8f0bb155111ffe6046917e08fa22b5616695719521ff65dc69c2a924557ee5f9f94444df0f4bfeec054c03a804 + checksum: 79112251b4b2572cbe3598c84d6038b72458bc43b94c8d762f5224b65b30c9a5bde7a6cc339e6855f3fa81c27c26333be9a2ab6306900d3feca70dcf44d00ff6 languageName: node linkType: hard -"@storybook/manager-api@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/manager-api@npm:8.2.0-alpha.1" +"@storybook/manager-api@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/manager-api@npm:8.2.0-alpha.2" dependencies: - "@storybook/channels": 8.2.0-alpha.1 - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 + "@storybook/channels": 8.2.0-alpha.2 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 "@storybook/csf": ^0.1.7 "@storybook/global": ^5.0.0 "@storybook/icons": ^1.2.5 - "@storybook/router": 8.2.0-alpha.1 - "@storybook/theming": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/router": 8.2.0-alpha.2 + "@storybook/theming": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 dequal: ^2.0.2 lodash: ^4.17.21 memoizerific: ^1.11.3 store2: ^2.14.2 telejson: ^7.2.0 ts-dedent: ^2.0.0 - checksum: f476ba3a42dd931185dc9cd0ef58605acf38ed5fc93c72860bba5be2b7e1d22ac007a6f70f66c5ed167fed42f9d4f706ca5dbd33e9d9503dc975033c1aa46334 + checksum: 08fd5baadd2eeb2a2e039a353deb01430b17d4c58dc37b5dc255a89d4ddd3ce8f8bf881549cd9c9211425dfa4ffc53d14135fc6842b14bfcc7eca47de05e4f30 languageName: node linkType: hard -"@storybook/manager@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/manager@npm:8.2.0-alpha.1" - checksum: 5d5dcb3ee3b220bc1f9d1e7225d747a4ce482e1429c804f950f067aba90505d4c67c37407bd007eec466ce418e73f47fba687903d32c033a1033ea74e67707c8 +"@storybook/manager@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/manager@npm:8.2.0-alpha.2" + checksum: 19f67527d35ef8f475ee26755672869a3f4ea8b1c790cda937e70783f79f438a5265869b063109b3ac94bfdbaed0a01e6a53ddd1fd417980aa4080664a5d203e languageName: node linkType: hard -"@storybook/node-logger@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/node-logger@npm:8.2.0-alpha.1" - checksum: 59a8eba0cacd61263f2b79b00c5b2e2943fca528fa92ddfa4d907d7238b16aa22702190c88784bb32ca91e2551377722908f770dc82f3f71b759896efc7fc4c9 +"@storybook/node-logger@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/node-logger@npm:8.2.0-alpha.2" + checksum: 03f70b0c8e833f581bac1ee91e729d12a5faca9b4ba90bf5fa70446fb5b12ab09a4c059e80cd9cb2a9f2351a6cfb8773833b2a62ce7735406c208edb8f64c520 languageName: node linkType: hard -"@storybook/preview-api@npm:8.2.0-alpha.1, @storybook/preview-api@npm:next": - version: 8.2.0-alpha.1 - resolution: "@storybook/preview-api@npm:8.2.0-alpha.1" +"@storybook/preview-api@npm:8.2.0-alpha.2, @storybook/preview-api@npm:next": + version: 8.2.0-alpha.2 + resolution: "@storybook/preview-api@npm:8.2.0-alpha.2" dependencies: - "@storybook/channels": 8.2.0-alpha.1 - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 + "@storybook/channels": 8.2.0-alpha.2 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 "@storybook/csf": ^0.1.7 "@storybook/global": ^5.0.0 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/types": 8.2.0-alpha.2 "@types/qs": ^6.9.5 dequal: ^2.0.2 lodash: ^4.17.21 @@ -4103,37 +3969,37 @@ __metadata: tiny-invariant: ^1.3.1 ts-dedent: ^2.0.0 util-deprecate: ^1.0.2 - checksum: 497bdcee9cc8343def8e90fba8ef9eff10607a90ebb919f13bb439017b3c2de05498758a937f1a58f41553e939e86568a38f373670d0c8432ce2047a4fe5c08c + checksum: 84b90e139485dec470e8cca604ca947e310d5b0f7dd4ad20a82a6e2bd11c8d8546e9b02fff67d2d6ae46374928be168feeb6eb8c1c0388c89158cd866fecd15f languageName: node linkType: hard -"@storybook/preview@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/preview@npm:8.2.0-alpha.1" - checksum: 145ed9fd582ebf5cf9797d6bf283155cbd21ccc7363456178ef03837c031a4e1de8cdb9d59ceb9a24505e6b62695dbd172f7abbe0f1841658ac67aca7c4c3ad5 +"@storybook/preview@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/preview@npm:8.2.0-alpha.2" + checksum: e2fd0ac66c6483b0cfcfda2b2369c28a6ad4af387534665408f602829533ceab218c3d982419a03f03617932c5aca4c0314e630cad219f89eaff07b8ade7b831 languageName: node linkType: hard -"@storybook/react-dom-shim@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/react-dom-shim@npm:8.2.0-alpha.1" +"@storybook/react-dom-shim@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/react-dom-shim@npm:8.2.0-alpha.2" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - checksum: 92ed3dc1cb883506045babbc5975ea9ed7085747ff4f58f4b659862895c6f4db96da36874b3e9ea73f0c60cc4ccde5a45040de00b5320080b91b4759d491bd91 + checksum: 5ef99591cc1ad1df624ba206326dfdb2ce44a1aa688fa865cbcd4290eda06c4de88802c35d18c18f9cd8bb9cf106b268a0dc6ce816c8bed3c2b29e21cc8f9682 languageName: node linkType: hard "@storybook/react-vite@npm:next": - version: 8.2.0-alpha.1 - resolution: "@storybook/react-vite@npm:8.2.0-alpha.1" + version: 8.2.0-alpha.2 + resolution: "@storybook/react-vite@npm:8.2.0-alpha.2" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": 0.3.1 "@rollup/pluginutils": ^5.0.2 - "@storybook/builder-vite": 8.2.0-alpha.1 - "@storybook/node-logger": 8.2.0-alpha.1 - "@storybook/react": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/builder-vite": 8.2.0-alpha.2 + "@storybook/node-logger": 8.2.0-alpha.2 + "@storybook/react": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 find-up: ^5.0.0 magic-string: ^0.30.0 react-docgen: ^7.0.0 @@ -4143,20 +4009,20 @@ __metadata: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta vite: ^4.0.0 || ^5.0.0 - checksum: 9b7e0edd239b64df43f7855a6dd90b13109c4faa007d8f1fd1b4a6d333602e9156ea39aecb10df3c9fc0a4b94b5496d791b56873f9f8705dc2603b5a7d53eb70 + checksum: d35f947e2a959510a6cef579cc886f2811e102bf69782c80a0b2fcfcf90deb0e4eea9bab40841dcb7356e4c9d819322269b8b83aa75f98daea31aadbc614abb2 languageName: node linkType: hard -"@storybook/react@npm:8.2.0-alpha.1, @storybook/react@npm:next": - version: 8.2.0-alpha.1 - resolution: "@storybook/react@npm:8.2.0-alpha.1" +"@storybook/react@npm:8.2.0-alpha.2, @storybook/react@npm:next": + version: 8.2.0-alpha.2 + resolution: "@storybook/react@npm:8.2.0-alpha.2" dependencies: - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/docs-tools": 8.2.0-alpha.1 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/docs-tools": 8.2.0-alpha.2 "@storybook/global": ^5.0.0 - "@storybook/preview-api": 8.2.0-alpha.1 - "@storybook/react-dom-shim": 8.2.0-alpha.1 - "@storybook/types": 8.2.0-alpha.1 + "@storybook/preview-api": 8.2.0-alpha.2 + "@storybook/react-dom-shim": 8.2.0-alpha.2 + "@storybook/types": 8.2.0-alpha.2 "@types/escodegen": ^0.0.6 "@types/estree": ^0.0.51 "@types/node": ^18.0.0 @@ -4179,34 +4045,34 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: c082cee8aada43acf4a3628bf56e58f53b950ffbb12fb3a2058e1aa7914ded0dedcb16fea288415ac60c2eaf29fa38ca69be6d31fa93d0ea825c0e2e8a81e97a + checksum: 439b61e2d6bfdce7839a82947262bd0d8a0e80800b1cfae1d9aedee35868029949ec50cb2d09eaa2b926162f4e1b5a3f96e7e200ec382a69c05aceed279ea06f languageName: node linkType: hard -"@storybook/router@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/router@npm:8.2.0-alpha.1" +"@storybook/router@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/router@npm:8.2.0-alpha.2" dependencies: - "@storybook/client-logger": 8.2.0-alpha.1 + "@storybook/client-logger": 8.2.0-alpha.2 memoizerific: ^1.11.3 qs: ^6.10.0 - checksum: 11e2aa8da54e433f397b37c739102e2236f5badd8f4bed5e5886dc9609589478b2cfb4bdd0e701c03a670d8db7614a41d20a4ceb13d01dda719f080b109eddec + checksum: 2ca9fb3e14608b819991af01159afd73f0175b6ccc599421b1098c9eeb22c67e87f940eaf299b829ff3c96c9f26e602a98645dd86ffe5d7c9fd3cf4d8d7c5e93 languageName: node linkType: hard -"@storybook/telemetry@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/telemetry@npm:8.2.0-alpha.1" +"@storybook/telemetry@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/telemetry@npm:8.2.0-alpha.2" dependencies: - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/core-common": 8.2.0-alpha.1 - "@storybook/csf-tools": 8.2.0-alpha.1 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/core-common": 8.2.0-alpha.2 + "@storybook/csf-tools": 8.2.0-alpha.2 chalk: ^4.1.0 detect-package-manager: ^2.0.1 fetch-retry: ^5.0.2 fs-extra: ^11.1.0 read-pkg-up: ^7.0.1 - checksum: 2365eccda8e97e09b1bce700688e4a58902ad834a12079bfcd8d2b01ec752483ae933aace7adb76324c65afaa24166bfb5e67e894450feb0f91b2a0332169e1c + checksum: 42e48557549efecfee879d2bf0c4c9a066d70067139a58518f5acd3bd85f10092d3e22988554cd8e4fa34da002b540a9e3de7d4d15997cb1694171ae741874f0 languageName: node linkType: hard @@ -4224,6 +4090,7 @@ __metadata: "@babel/template": ^7.22.5 "@babel/types": ^7.22.5 "@jest/types": ^29.6.3 + "@playwright/test": ^1.36.1 "@storybook/addon-coverage": ^1.0.0 "@storybook/addon-essentials": next "@storybook/addon-interactions": next @@ -4261,9 +4128,9 @@ __metadata: jest-watch-typeahead: ^2.0.0 lint-staged: ^13.0.3 node-fetch: ^2 + nodemon: ^3.0.1 nyc: ^15.1.0 pkg-up: ^5.0.0 - playwright: ^1.14.0 prettier: ^2.8.1 react: ^17.0.1 react-dom: ^17.0.1 @@ -4281,30 +4148,30 @@ __metadata: languageName: unknown linkType: soft -"@storybook/test@npm:8.2.0-alpha.1, @storybook/test@npm:next": - version: 8.2.0-alpha.1 - resolution: "@storybook/test@npm:8.2.0-alpha.1" +"@storybook/test@npm:8.2.0-alpha.2, @storybook/test@npm:next": + version: 8.2.0-alpha.2 + resolution: "@storybook/test@npm:8.2.0-alpha.2" dependencies: - "@storybook/client-logger": 8.2.0-alpha.1 - "@storybook/core-events": 8.2.0-alpha.1 - "@storybook/instrumenter": 8.2.0-alpha.1 - "@storybook/preview-api": 8.2.0-alpha.1 + "@storybook/client-logger": 8.2.0-alpha.2 + "@storybook/core-events": 8.2.0-alpha.2 + "@storybook/instrumenter": 8.2.0-alpha.2 + "@storybook/preview-api": 8.2.0-alpha.2 "@testing-library/dom": ^9.3.4 "@testing-library/jest-dom": ^6.4.2 "@testing-library/user-event": ^14.5.2 "@vitest/expect": 1.3.1 "@vitest/spy": ^1.3.1 util: ^0.12.4 - checksum: efd9435eb0f86f0606244adf6682100d07b57b2166256c3cf3cc1ec3e0f4a68575db3ca7231d595efc0b4616635b6833c936d9261090b86a0fc2eb9fe84f67a3 + checksum: 4950c31ad1b555da4292cb29dd7ab9223661f5ff800eaf03af40b238aff4e91bf7ac8b3a833c5248915266988f629c1cf1dd936ba965c7e68542046d09cf767c languageName: node linkType: hard -"@storybook/theming@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/theming@npm:8.2.0-alpha.1" +"@storybook/theming@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/theming@npm:8.2.0-alpha.2" dependencies: "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 - "@storybook/client-logger": 8.2.0-alpha.1 + "@storybook/client-logger": 8.2.0-alpha.2 "@storybook/global": ^5.0.0 memoizerific: ^1.11.3 peerDependencies: @@ -4315,18 +4182,18 @@ __metadata: optional: true react-dom: optional: true - checksum: e56299faeee32e22d63beb3ece9133d578df0def1dd193ed1e983d37fff91e1e0debb51bbbc990949efde71106dd3d1b7f2f9ac2c85f2839ac6f90958f651d27 + checksum: e78ed53cb3cb82e63a787d5c221fc0e28700e2520c817ba872bac560c8957fc4d433762aa93e9f921968305afeca267a24c884ca4a8b4c96df2a1d7b04b6cca2 languageName: node linkType: hard -"@storybook/types@npm:8.2.0-alpha.1": - version: 8.2.0-alpha.1 - resolution: "@storybook/types@npm:8.2.0-alpha.1" +"@storybook/types@npm:8.2.0-alpha.2": + version: 8.2.0-alpha.2 + resolution: "@storybook/types@npm:8.2.0-alpha.2" dependencies: - "@storybook/channels": 8.2.0-alpha.1 + "@storybook/channels": 8.2.0-alpha.2 "@types/express": ^4.7.0 file-system-cache: 2.3.0 - checksum: 263f601b0edd45d982d1d41e0a3f4949fcedbbc0c844b6844b602af7ae5d3ba1d090b41747929ddf13c0a24a153a4e35af58074acee449486a7ce2ac9589333b + checksum: 77185b381ac7951c4fcf55dd054ec2d15ea5e4bbc159fd3e86e02a067c639d939765c8bbfe8a998beced36be0f5d8e01808a6de7ada143cc2765ee3ef9310414 languageName: node linkType: hard @@ -4700,6 +4567,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a + languageName: node + linkType: hard + "@types/estree@npm:^0.0.51": version: 0.0.51 resolution: "@types/estree@npm:0.0.51" @@ -4707,13 +4581,6 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a - languageName: node - linkType: hard - "@types/express-serve-static-core@npm:^4.17.33": version: 4.19.0 resolution: "@types/express-serve-static-core@npm:4.19.0" @@ -5124,13 +4991,6 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:1": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 - languageName: node - linkType: hard - "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -5549,13 +5409,13 @@ __metadata: linkType: hard "axios@npm:^1.6.1": - version: 1.6.8 - resolution: "axios@npm:1.6.8" + version: 1.7.1 + resolution: "axios@npm:1.7.1" dependencies: follow-redirects: ^1.15.6 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: bf007fa4b207d102459300698620b3b0873503c6d47bf5a8f6e43c0c64c90035a4f698b55027ca1958f61ab43723df2781c38a99711848d232cad7accbcdfcdd + checksum: 77760d94b3812e07d4a5b02468a55eed5c8435ef4d605d159f2808775bdd15da60ab5b15b665a6f72800b5d261875d808b410cd3cb1d7571cdc6ec5e0108025a languageName: node linkType: hard @@ -5812,12 +5672,12 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" +"braces@npm:^3.0.2, braces@npm:^3.0.3, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + fill-range: ^7.1.1 + checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 languageName: node linkType: hard @@ -6076,26 +5936,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.4.0, chokidar@npm:^3.5.1, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" - dependencies: - anymatch: ~3.1.2 - braces: ~3.0.2 - fsevents: ~2.3.2 - glob-parent: ~5.1.2 - is-binary-path: ~2.1.0 - is-glob: ~4.0.1 - normalize-path: ~3.0.0 - readdirp: ~3.6.0 - dependenciesMeta: - fsevents: - optional: true - checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d - languageName: node - linkType: hard - -"chokidar@npm:^3.4.0, chokidar@npm:^3.5.1, chokidar@npm:^3.6.0": +"chokidar@npm:^3.4.0, chokidar@npm:^3.5.1, chokidar@npm:^3.5.2, chokidar@npm:^3.6.0": version: 3.6.0 resolution: "chokidar@npm:3.6.0" dependencies: @@ -6612,7 +6453,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -6624,15 +6465,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: ^2.1.1 - checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c - languageName: node - linkType: hard - "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -7039,9 +6871,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.668": - version: 1.4.773 - resolution: "electron-to-chromium@npm:1.4.773" - checksum: 440cf258b8645c6e1c17c35a52578abc4ddce76139be7b1aa70f98ec199ec42f4ea9d9cfc4f6b9a9155601878801053b9f5fa76e5553009d3bfa08d79406e1de + version: 1.4.776 + resolution: "electron-to-chromium@npm:1.4.776" + checksum: 18c5a4da40296e9a27638ff479dd79d8496dd8848998a9a8b32bd85ab4c1431f65d88b0c3df8944fab7fda86b239da72017a4ae5c40c22f17704c4ff29f151d8 languageName: node linkType: hard @@ -7210,9 +7042,9 @@ __metadata: linkType: hard "es-module-lexer@npm:^1.5.0": - version: 1.5.2 - resolution: "es-module-lexer@npm:1.5.2" - checksum: 59c47109eca80b93dda2418337b4308c194c578704dc57d5aa54973b196e378d31e92f258e5525655b99b3de8a84dda2debb9646cddf6fe8830f1bfca95ee060 + version: 1.5.3 + resolution: "es-module-lexer@npm:1.5.3" + checksum: 2e0a0936fb49ca072d438128f588d5b46974035f7a1362bdb26447868016243cfd1c5ec8f12e80d273749e8c603f5aba5a828d5c2d95c07f61fbe77ab4fce4af languageName: node linkType: hard @@ -7241,83 +7073,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.17.6": - version: 0.17.19 - resolution: "esbuild@npm:0.17.19" - dependencies: - "@esbuild/android-arm": 0.17.19 - "@esbuild/android-arm64": 0.17.19 - "@esbuild/android-x64": 0.17.19 - "@esbuild/darwin-arm64": 0.17.19 - "@esbuild/darwin-x64": 0.17.19 - "@esbuild/freebsd-arm64": 0.17.19 - "@esbuild/freebsd-x64": 0.17.19 - "@esbuild/linux-arm": 0.17.19 - "@esbuild/linux-arm64": 0.17.19 - "@esbuild/linux-ia32": 0.17.19 - "@esbuild/linux-loong64": 0.17.19 - "@esbuild/linux-mips64el": 0.17.19 - "@esbuild/linux-ppc64": 0.17.19 - "@esbuild/linux-riscv64": 0.17.19 - "@esbuild/linux-s390x": 0.17.19 - "@esbuild/linux-x64": 0.17.19 - "@esbuild/netbsd-x64": 0.17.19 - "@esbuild/openbsd-x64": 0.17.19 - "@esbuild/sunos-x64": 0.17.19 - "@esbuild/win32-arm64": 0.17.19 - "@esbuild/win32-ia32": 0.17.19 - "@esbuild/win32-x64": 0.17.19 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: ac11b1a5a6008e4e37ccffbd6c2c054746fc58d0ed4a2f9ee643bd030cfcea9a33a235087bc777def8420f2eaafb3486e76adb7bdb7241a9143b43a69a10afd8 - languageName: node - linkType: hard - "esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0": version: 0.20.2 resolution: "esbuild@npm:0.20.2" @@ -7398,83 +7153,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.0, esbuild@npm:^0.18.10": - version: 0.18.20 - resolution: "esbuild@npm:0.18.20" - dependencies: - "@esbuild/android-arm": 0.18.20 - "@esbuild/android-arm64": 0.18.20 - "@esbuild/android-x64": 0.18.20 - "@esbuild/darwin-arm64": 0.18.20 - "@esbuild/darwin-x64": 0.18.20 - "@esbuild/freebsd-arm64": 0.18.20 - "@esbuild/freebsd-x64": 0.18.20 - "@esbuild/linux-arm": 0.18.20 - "@esbuild/linux-arm64": 0.18.20 - "@esbuild/linux-ia32": 0.18.20 - "@esbuild/linux-loong64": 0.18.20 - "@esbuild/linux-mips64el": 0.18.20 - "@esbuild/linux-ppc64": 0.18.20 - "@esbuild/linux-riscv64": 0.18.20 - "@esbuild/linux-s390x": 0.18.20 - "@esbuild/linux-x64": 0.18.20 - "@esbuild/netbsd-x64": 0.18.20 - "@esbuild/openbsd-x64": 0.18.20 - "@esbuild/sunos-x64": 0.18.20 - "@esbuild/win32-arm64": 0.18.20 - "@esbuild/win32-ia32": 0.18.20 - "@esbuild/win32-x64": 0.18.20 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 5d253614e50cdb6ec22095afd0c414f15688e7278a7eb4f3720a6dd1306b0909cf431e7b9437a90d065a31b1c57be60130f63fe3e8d0083b588571f31ee6ec7b - languageName: node - linkType: hard - "esbuild@npm:^0.18.10": version: 0.18.20 resolution: "esbuild@npm:0.18.20" @@ -7553,32 +7231,35 @@ __metadata: linkType: hard "esbuild@npm:^0.19.2": - version: 0.19.8 - resolution: "esbuild@npm:0.19.8" - dependencies: - "@esbuild/android-arm": 0.19.8 - "@esbuild/android-arm64": 0.19.8 - "@esbuild/android-x64": 0.19.8 - "@esbuild/darwin-arm64": 0.19.8 - "@esbuild/darwin-x64": 0.19.8 - "@esbuild/freebsd-arm64": 0.19.8 - "@esbuild/freebsd-x64": 0.19.8 - "@esbuild/linux-arm": 0.19.8 - "@esbuild/linux-arm64": 0.19.8 - "@esbuild/linux-ia32": 0.19.8 - "@esbuild/linux-loong64": 0.19.8 - "@esbuild/linux-mips64el": 0.19.8 - "@esbuild/linux-ppc64": 0.19.8 - "@esbuild/linux-riscv64": 0.19.8 - "@esbuild/linux-s390x": 0.19.8 - "@esbuild/linux-x64": 0.19.8 - "@esbuild/netbsd-x64": 0.19.8 - "@esbuild/openbsd-x64": 0.19.8 - "@esbuild/sunos-x64": 0.19.8 - "@esbuild/win32-arm64": 0.19.8 - "@esbuild/win32-ia32": 0.19.8 - "@esbuild/win32-x64": 0.19.8 + version: 0.19.12 + resolution: "esbuild@npm:0.19.12" + dependencies: + "@esbuild/aix-ppc64": 0.19.12 + "@esbuild/android-arm": 0.19.12 + "@esbuild/android-arm64": 0.19.12 + "@esbuild/android-x64": 0.19.12 + "@esbuild/darwin-arm64": 0.19.12 + "@esbuild/darwin-x64": 0.19.12 + "@esbuild/freebsd-arm64": 0.19.12 + "@esbuild/freebsd-x64": 0.19.12 + "@esbuild/linux-arm": 0.19.12 + "@esbuild/linux-arm64": 0.19.12 + "@esbuild/linux-ia32": 0.19.12 + "@esbuild/linux-loong64": 0.19.12 + "@esbuild/linux-mips64el": 0.19.12 + "@esbuild/linux-ppc64": 0.19.12 + "@esbuild/linux-riscv64": 0.19.12 + "@esbuild/linux-s390x": 0.19.12 + "@esbuild/linux-x64": 0.19.12 + "@esbuild/netbsd-x64": 0.19.12 + "@esbuild/openbsd-x64": 0.19.12 + "@esbuild/sunos-x64": 0.19.12 + "@esbuild/win32-arm64": 0.19.12 + "@esbuild/win32-ia32": 0.19.12 + "@esbuild/win32-x64": 0.19.12 dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true "@esbuild/android-arm": optional: true "@esbuild/android-arm64": @@ -7625,14 +7306,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 1dff99482ecbfcc642ec66c71e4dc5c73ce6aef68e8158a4937890b570e86a95959ac47e0f14785ba70df5a673ae4289df88a162e9759b02367ed28074cee8ba - languageName: node - linkType: hard - -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + checksum: 2936e29107b43e65a775b78b7bc66ddd7d76febd73840ac7e825fb22b65029422ff51038a08d19b05154f543584bd3afe7d1ef1c63900429475b17fbe61cb61f languageName: node linkType: hard @@ -7974,12 +7648,12 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" dependencies: to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 languageName: node linkType: hard @@ -8174,9 +7848,9 @@ __metadata: linkType: hard "fp-ts@npm:^2.5.3": - version: 2.16.5 - resolution: "fp-ts@npm:2.16.5" - checksum: e43c4770ab3c501fbc4956f33c3acd4c05ce6de6c78d8bdc55d2710b1cdee62d4f631824da5689e20a8fe7a68e26c16a7c0e1b6f34cc5c9768fbdb9c66b1640e + version: 2.16.6 + resolution: "fp-ts@npm:2.16.6" + checksum: 9667b8789f1306c5657a92940af5f5014e84347b733fe2cf56a0a44322674f679e87a866e3b29bf01f706518f670173cff7996ee24ec708025097ce6b7cc42bb languageName: node linkType: hard @@ -10266,9 +9940,9 @@ __metadata: linkType: hard "lilconfig@npm:^3.0.0": - version: 3.0.0 - resolution: "lilconfig@npm:3.0.0" - checksum: a155f1cd24d324ab20dd6974db9ebcf3fb6f2b60175f7c052d917ff8a746b590bc1ee550f6fc3cb1e8716c8b58304e22fe2193febebc0cf16fa86d85e6f896c5 + version: 3.1.1 + resolution: "lilconfig@npm:3.1.1" + checksum: dc8a4f4afde3f0fac6bd36163cc4777a577a90759b8ef1d0d766b19ccf121f723aa79924f32af5b954f3965268215e046d0f237c41c76e5ef01d4e6d1208a15e languageName: node linkType: hard @@ -10677,7 +10351,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:4.0.5, micromatch@npm:^4.0.4": +"micromatch@npm:4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -10687,6 +10361,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:^4.0.4": + version: 4.0.6 + resolution: "micromatch@npm:4.0.6" + dependencies: + braces: ^3.0.3 + picomatch: ^4.0.2 + checksum: cd44a850c638d82232608e2a03677c5828b9faf35bacfd4817ae232208e2a56bac97bceb67da6a5d4d5a603c1cc88f65ecae3af6be11b5a8c10c995515231e78 + languageName: node + linkType: hard + "mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -10888,7 +10572,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.3, ms@npm:^2.1.1": +"ms@npm:2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -11031,11 +10715,11 @@ __metadata: linkType: hard "nodemon@npm:^3.0.1": - version: 3.0.1 - resolution: "nodemon@npm:3.0.1" + version: 3.1.0 + resolution: "nodemon@npm:3.1.0" dependencies: chokidar: ^3.5.2 - debug: ^3.2.7 + debug: ^4 ignore-by-default: ^1.0.1 minimatch: ^3.1.2 pstree.remy: ^1.1.8 @@ -11046,7 +10730,7 @@ __metadata: undefsafe: ^2.0.5 bin: nodemon: bin/nodemon.js - checksum: 6a5d81855760d6617049eccce10ccf02bddb482dab13ceea5280ae595ec7004eee13e7b934368e3f46c37fe4d970342a8c38c99cae7e93e4d7a3ed1c1ecb6acf + checksum: 0b721f66ee60d9bf092f6101965bc65769698fa2921d0283d90bbf3f0906aa4f3ac77316682375bd7f09c91679fddb131aa39f9fc839fea57061bbc8e81b60e3 languageName: node linkType: hard @@ -11061,17 +10745,6 @@ __metadata: languageName: node linkType: hard -"nopt@npm:~1.0.10": - version: 1.0.10 - resolution: "nopt@npm:1.0.10" - dependencies: - abbrev: 1 - bin: - nopt: ./bin/nopt.js - checksum: f62575aceaa3be43f365bf37a596b89bbac2e796b001b6d2e2a85c2140a4e378ff919e2753ccba959c4fd344776fc88c29b393bc167fa939fb1513f126f4cd45 - languageName: node - linkType: hard - "normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" @@ -11626,6 +11299,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + languageName: node + linkType: hard + "pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -11713,15 +11393,6 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.40.1": - version: 1.40.1 - resolution: "playwright-core@npm:1.40.1" - bin: - playwright-core: cli.js - checksum: 84d92fb9b86e3c225b16b6886bf858eb5059b4e60fa1205ff23336e56a06dcb2eac62650992dede72f406c8e70a7b6a5303e511f9b4bc0b85022ede356a01ee0 - languageName: node - linkType: hard - "playwright-core@npm:1.44.0, playwright-core@npm:>=1.2.0": version: 1.44.0 resolution: "playwright-core@npm:1.44.0" @@ -11731,31 +11402,7 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:>=1.2.0": - version: 1.39.0 - resolution: "playwright-core@npm:1.39.0" - bin: - playwright-core: cli.js - checksum: 7bee257c830153578753a6dfb34b8216f8c552d750e24a0be6d3ba10baff013fb1320a1c3d487fbb0df9d1ce5d1f027ccf6e990d4514989da63691f177141ba4 - languageName: node - linkType: hard - -"playwright@npm:1.40.1": - version: 1.40.1 - resolution: "playwright@npm:1.40.1" - dependencies: - fsevents: 2.3.2 - playwright-core: 1.40.1 - dependenciesMeta: - fsevents: - optional: true - bin: - playwright: cli.js - checksum: 9e36791c1b4a649c104aa365fdd9d049924eeb518c5967c0e921aa38b9b00994aa6ee54784d6c2af194b3b494b6f69772673081ef53c6c4a4b2065af9955c4ba - languageName: node - linkType: hard - -"playwright@npm:^1.14.0": +"playwright@npm:1.44.0": version: 1.44.0 resolution: "playwright@npm:1.44.0" dependencies: @@ -12661,21 +12308,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^2.25.0 || ^3.3.0, rollup@npm:^3.27.1": - version: 3.29.4 - resolution: "rollup@npm:3.29.4" - dependencies: - fsevents: ~2.3.2 - dependenciesMeta: - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 8bb20a39c8d91130825159c3823eccf4dc2295c9a0a5c4ed851a5bf2167dbf24d9a29f23461a54c955e5506395e6cc188eafc8ab0e20399d7489fb33793b184e - languageName: node - linkType: hard - -"rollup@npm:^3.2.5, rollup@npm:^3.27.1": +"rollup@npm:^3.27.1": version: 3.29.4 resolution: "rollup@npm:3.29.4" dependencies: @@ -12690,21 +12323,26 @@ __metadata: linkType: hard "rollup@npm:^4.0.2": - version: 4.6.1 - resolution: "rollup@npm:4.6.1" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.6.1 - "@rollup/rollup-android-arm64": 4.6.1 - "@rollup/rollup-darwin-arm64": 4.6.1 - "@rollup/rollup-darwin-x64": 4.6.1 - "@rollup/rollup-linux-arm-gnueabihf": 4.6.1 - "@rollup/rollup-linux-arm64-gnu": 4.6.1 - "@rollup/rollup-linux-arm64-musl": 4.6.1 - "@rollup/rollup-linux-x64-gnu": 4.6.1 - "@rollup/rollup-linux-x64-musl": 4.6.1 - "@rollup/rollup-win32-arm64-msvc": 4.6.1 - "@rollup/rollup-win32-ia32-msvc": 4.6.1 - "@rollup/rollup-win32-x64-msvc": 4.6.1 + version: 4.17.2 + resolution: "rollup@npm:4.17.2" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.17.2 + "@rollup/rollup-android-arm64": 4.17.2 + "@rollup/rollup-darwin-arm64": 4.17.2 + "@rollup/rollup-darwin-x64": 4.17.2 + "@rollup/rollup-linux-arm-gnueabihf": 4.17.2 + "@rollup/rollup-linux-arm-musleabihf": 4.17.2 + "@rollup/rollup-linux-arm64-gnu": 4.17.2 + "@rollup/rollup-linux-arm64-musl": 4.17.2 + "@rollup/rollup-linux-powerpc64le-gnu": 4.17.2 + "@rollup/rollup-linux-riscv64-gnu": 4.17.2 + "@rollup/rollup-linux-s390x-gnu": 4.17.2 + "@rollup/rollup-linux-x64-gnu": 4.17.2 + "@rollup/rollup-linux-x64-musl": 4.17.2 + "@rollup/rollup-win32-arm64-msvc": 4.17.2 + "@rollup/rollup-win32-ia32-msvc": 4.17.2 + "@rollup/rollup-win32-x64-msvc": 4.17.2 + "@types/estree": 1.0.5 fsevents: ~2.3.2 dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -12717,10 +12355,18 @@ __metadata: optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true "@rollup/rollup-linux-arm64-gnu": optional: true "@rollup/rollup-linux-arm64-musl": optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true "@rollup/rollup-linux-x64-gnu": optional: true "@rollup/rollup-linux-x64-musl": @@ -12735,7 +12381,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 1d66f7f61b242a2064f9f993192f19de370ee54d7b7fd7159b6ece2352079be01ed0b5d7e3f0bb7a9242f1dcad4898a6265f0990e91bba8169b81c52136cbc9f + checksum: e6a2813fea25ea816ce582a04c2ffccc0b841ddc22842325c39353620214055bf827e0d7f6714e836170079faf0443ffc27966ccae27900ae3baa039aa36a8e1 languageName: node linkType: hard @@ -12977,6 +12623,15 @@ __metadata: languageName: node linkType: hard +"simple-update-notifier@npm:^2.0.0": + version: 2.0.0 + resolution: "simple-update-notifier@npm:2.0.0" + dependencies: + semver: ^7.5.3 + checksum: 9ba00d38ce6a29682f64a46213834e4eb01634c2f52c813a9a7b8873ca49cdbb703696f3290f3b27dc067de6d9418b0b84bef22c3eb074acf352529b2d6c27fd + languageName: node + linkType: hard + "sisteransi@npm:^1.0.5": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -13237,14 +12892,14 @@ __metadata: linkType: hard "storybook@npm:next": - version: 8.2.0-alpha.1 - resolution: "storybook@npm:8.2.0-alpha.1" + version: 8.2.0-alpha.2 + resolution: "storybook@npm:8.2.0-alpha.2" dependencies: - "@storybook/cli": 8.2.0-alpha.1 + "@storybook/cli": 8.2.0-alpha.2 bin: sb: ./index.js storybook: ./index.js - checksum: dde1a0e6e4960b59e4e863b415bb417a6c3605a617a516e49a051d880d3bc8b6f5e483faaf6e59c645e26e569b7f9e4379565c33c8a2e7629321d344f565979f + checksum: c83e58ecae987afde30c35abb7fc772f4d79a9a41ff2ded353986178ef6bf62b9811bb89f6ac22873370698d8c2356bb2d18ab2aa083c8f0f808d523b1785321 languageName: node linkType: hard @@ -13666,13 +13321,11 @@ __metadata: linkType: hard "touch@npm:^3.1.0": - version: 3.1.0 - resolution: "touch@npm:3.1.0" - dependencies: - nopt: ~1.0.10 + version: 3.1.1 + resolution: "touch@npm:3.1.1" bin: - nodetouch: ./bin/nodetouch.js - checksum: e0be589cb5b0e6dbfce6e7e077d4a0d5f0aba558ef769c6d9c33f635e00d73d5be49da6f8631db302ee073919d82b5b7f56da2987feb28765c95a7673af68647 + nodetouch: bin/nodetouch.js + checksum: fb8c54207500eb760b6b9d77b9c5626cc027c9ad44431eed4268845f00f8c6bbfc95ce7e9da8e487f020aa921982a8bc5d8e909d0606e82686bd0a08a8e0539b languageName: node linkType: hard @@ -13716,8 +13369,8 @@ __metadata: linkType: hard "ts-jest@npm:^29.0.0": - version: 29.1.2 - resolution: "ts-jest@npm:29.1.2" + version: 29.1.3 + resolution: "ts-jest@npm:29.1.3" dependencies: bs-logger: 0.x fast-json-stable-stringify: 2.x @@ -13729,6 +13382,7 @@ __metadata: yargs-parser: ^21.0.1 peerDependencies: "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/transform": ^29.0.0 "@jest/types": ^29.0.0 babel-jest: ^29.0.0 jest: ^29.0.0 @@ -13736,6 +13390,8 @@ __metadata: peerDependenciesMeta: "@babel/core": optional: true + "@jest/transform": + optional: true "@jest/types": optional: true babel-jest: @@ -13744,7 +13400,7 @@ __metadata: optional: true bin: ts-jest: cli.js - checksum: a0ce0affc1b716c78c9ab55837829c42cb04b753d174a5c796bb1ddf9f0379fc20647b76fbe30edb30d9b23181908138d6b4c51ef2ae5e187b66635c295cefd5 + checksum: c5b2c0501680a9056c50541a3315de7b3b85a611056b978062b4defc96fb0066d12bf1e15715021799a3779723343fb98a9a4ba01dc01709f274899b6c28453d languageName: node linkType: hard @@ -13847,8 +13503,8 @@ __metadata: linkType: hard "tsup@npm:^8.0.1": - version: 8.0.1 - resolution: "tsup@npm:8.0.1" + version: 8.0.2 + resolution: "tsup@npm:8.0.2" dependencies: bundle-require: ^4.0.0 cac: ^6.7.12 @@ -13881,7 +13537,7 @@ __metadata: bin: tsup: dist/cli-default.js tsup-node: dist/cli-node.js - checksum: 7b9e7a412247e374be1f22d9aa68eec64e9bdebfdf36ac915fc24be995fc7b855d74cf210431122cec26351e4c22c0b87f0400181b1de1915a80531f4797d84a + checksum: ebd0c662efdc2a04e80251aa11832d3def9cf3bf120c579975af6d50183fa0397d07d5bcee0688258a91c154a3c5db72ee4c5dca367b58552d225bc8a89d67d0 languageName: node linkType: hard @@ -13961,22 +13617,22 @@ __metadata: linkType: hard "typescript@npm:^5.3.2": - version: 5.3.2 - resolution: "typescript@npm:5.3.2" + version: 5.4.5 + resolution: "typescript@npm:5.4.5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d92534dda639eb825db013203404c1fabca8ac630564283c9e7dc9e64fd9c9346c2de95ecebdf3e6e8c1c32941bca1cfe0da37877611feb9daf8feeaea58d230 + checksum: 53c879c6fa1e3bcb194b274d4501ba1985894b2c2692fa079db03c5a5a7140587a1e04e1ba03184605d35f439b40192d9e138eb3279ca8eee313c081c8bcd9b0 languageName: node linkType: hard "typescript@patch:typescript@^5.3.2#~builtin": - version: 5.3.2 - resolution: "typescript@patch:typescript@npm%3A5.3.2#~builtin::version=5.3.2&hash=f3b441" + version: 5.4.5 + resolution: "typescript@patch:typescript@npm%3A5.4.5#~builtin::version=5.4.5&hash=f3b441" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: c034461079fbfde3cb584ddee52afccb15b6e32a0ce186d0b2719968786f7ca73e1b07f71fac4163088790b16811c6ccf79680de190664ef66ff0ba9c1fe4a23 + checksum: 2373c693f3b328f3b2387c3efafe6d257b057a142f9a79291854b14ff4d5367d3d730810aee981726b677ae0fd8329b23309da3b6aaab8263dbdccf1da07a3ba languageName: node linkType: hard @@ -14706,9 +14362,11 @@ __metadata: linkType: hard "yaml@npm:^2.3.4": - version: 2.3.4 - resolution: "yaml@npm:2.3.4" - checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 + version: 2.4.2 + resolution: "yaml@npm:2.4.2" + bin: + yaml: bin.mjs + checksum: 90dda4485de04367251face9abb5c36927c94e44078f4e958e6468a07e74e7e92f89be20fc49860b6268c51ee5a5fc79ef89197d3f874bf24ef8921cc4ba9013 languageName: node linkType: hard From 49e7b247905e0e825700fd9f491cb1dd02a98520 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 21 May 2024 13:08:47 +0200 Subject: [PATCH 4/9] update --- .gitignore | 3 ++- package.json | 2 +- src/config/playwright.ts | 19 ++++++++++-------- src/playwright/hooks.ts | 2 +- src/setup-page.ts | 2 +- src/util/getStorybookMain.ts | 4 ++-- test-runner-playwright.config.js | 4 +++- tsup.config.ts | 8 +++++++- yarn.lock | 33 ++++++++++++++++++++------------ 9 files changed, 49 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 4e94f0ea..b9acaf5f 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,5 @@ playwright-cache-location.txt !/**/.yarn/plugins !/**/.yarn/sdks !/**/.yarn/versions -/**/.pnp.* \ No newline at end of file +/**/.pnp.* +test-results \ No newline at end of file diff --git a/package.json b/package.json index 1590bed3..093f08fd 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@babel/template": "^7.22.5", "@babel/types": "^7.22.5", "@jest/types": "^29.6.3", - "@playwright/test": "^1.36.1", + "@playwright/test": "1.41.0", "@storybook/core-common": "next", "@storybook/csf": "^0.1.2", "@storybook/csf-tools": "next", diff --git a/src/config/playwright.ts b/src/config/playwright.ts index a53fbbad..1125b798 100644 --- a/src/config/playwright.ts +++ b/src/config/playwright.ts @@ -14,11 +14,14 @@ import { /** * See https://playwright.dev/docs/test-configuration. */ -export const defineConfig = (config: PlaywrightTestConfig) => - playwrightDefineConfig({ - testDir: process.env.TEST_ROOT || './stories/', - testMatch: /Button.stories.(js|jsx|ts|tsx|mjs|mts)$/, - globalSetup: path.join(__dirname, 'global.setup.js'), +export const defineConfig = (config: PlaywrightTestConfig) => { + const { STORYBOOK_STORIES_PATTERN } = process.env; + + // @ts-ignore use _contextReuseMode + return playwrightDefineConfig({ + testDir: process.env.TEST_ROOT || process.cwd(), + testMatch: STORYBOOK_STORIES_PATTERN?.split(';'), + globalSetup: path.join(__dirname, 'config', 'global.setup.js'), /* Run tests in files in parallel */ fullyParallel: true, /* Fail the build on CI if you accidentally left test.only in the source code. */ @@ -36,7 +39,7 @@ export const defineConfig = (config: PlaywrightTestConfig) => /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: 'on-first-retry', - // @ts-expect-error use _contextReuseMode + // @ts-ignore use _contextReuseMode _contextReuseMode: 'when-possible', }, @@ -54,8 +57,7 @@ export const defineConfig = (config: PlaywrightTestConfig) => ], build: { - // @ts-ignore - babelPlugins: [[path.join(__dirname, '..', 'playwright', 'csf-playwright-plugin.js')]], + babelPlugins: [[path.join(__dirname, 'playwright', 'csf-playwright-plugin.js')]], // @ts-ignore external: [/test-runner\/.*.js$/], }, @@ -68,3 +70,4 @@ export const defineConfig = (config: PlaywrightTestConfig) => }, ...config, }); +}; diff --git a/src/playwright/hooks.ts b/src/playwright/hooks.ts index 851bd9c1..54c527db 100644 --- a/src/playwright/hooks.ts +++ b/src/playwright/hooks.ts @@ -1,4 +1,4 @@ -import type { BrowserContext, Page } from 'playwright'; +import type { BrowserContext, Page } from '@playwright/test'; import type { StoryContextForEnhancers } from '@storybook/csf'; export type TestContext = { diff --git a/src/setup-page.ts b/src/setup-page.ts index 1edb92d8..07656291 100644 --- a/src/setup-page.ts +++ b/src/setup-page.ts @@ -1,4 +1,4 @@ -import type { Page, BrowserContext } from 'playwright'; +import type { Page, BrowserContext } from '@playwright/test'; import readPackageUp, { NormalizedReadResult } from 'read-pkg-up'; import { pkgUp } from 'pkg-up'; import { PrepareContext } from './playwright/hooks'; diff --git a/src/util/getStorybookMain.ts b/src/util/getStorybookMain.ts index b8f542d8..8054ee4a 100644 --- a/src/util/getStorybookMain.ts +++ b/src/util/getStorybookMain.ts @@ -10,10 +10,10 @@ export const getStorybookMain = (configDir = '.storybook') => { // console.log('cached main config!', storybookMainConfig.get(configDir)); return storybookMainConfig.get(configDir) as StorybookConfig; } else { - console.log('setting main config for the first time'); + // console.log('setting main config for the first time'); // console.trace('path: ', join(resolve(configDir), 'main')); const config = serverRequire(join(resolve(configDir), 'main')); - console.log('👉 mainConfig: ', config); + // console.log('👉 mainConfig: ', config); storybookMainConfig.set(configDir, config); } diff --git a/test-runner-playwright.config.js b/test-runner-playwright.config.js index f59d98b0..5df50cec 100644 --- a/test-runner-playwright.config.js +++ b/test-runner-playwright.config.js @@ -9,4 +9,6 @@ const { defineConfig } = require('./dist'); /** * @type {import('@jest/types').Config.InitialOptions} */ -module.exports = defineConfig(); +const config = defineConfig({}); + +module.exports = config; diff --git a/tsup.config.ts b/tsup.config.ts index f0474e64..3f80a2ce 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -3,7 +3,13 @@ import { defineConfig } from 'tsup'; export default defineConfig([ { clean: true, - entry: ['./src/index.ts', './src/test-storybook.ts'], + entry: [ + './src/index.ts', + './src/test-storybook.ts', + './src/config/global.setup.ts', + './src/playwright/csf-playwright-plugin.ts', + './src/playwright/StoryPage.ts', + ], format: ['cjs', 'esm'], splitting: false, dts: true, diff --git a/yarn.lock b/yarn.lock index d83ce47e..fe8362f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2860,14 +2860,14 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:^1.36.1": - version: 1.44.0 - resolution: "@playwright/test@npm:1.44.0" +"@playwright/test@npm:1.41.0": + version: 1.41.0 + resolution: "@playwright/test@npm:1.41.0" dependencies: - playwright: 1.44.0 + playwright: 1.41.0 bin: playwright: cli.js - checksum: 64cb12e26156e0530d16cec629d82c228db7a57fe29096a6961a18fc8b7fc5f35e28f8905af7039fad5d3af0224d38e93dba479760db2ce16a63c5e2fbe2990c + checksum: 3a7039f8cd14dd242154255417c100a99c3254a3c1fd26df2a11be24c10b06ef77d2736336d7743dedc5e1a6a52748e58ced730b6048f8bd75d8867ce81661e0 languageName: node linkType: hard @@ -4090,7 +4090,7 @@ __metadata: "@babel/template": ^7.22.5 "@babel/types": ^7.22.5 "@jest/types": ^29.6.3 - "@playwright/test": ^1.36.1 + "@playwright/test": 1.41.0 "@storybook/addon-coverage": ^1.0.0 "@storybook/addon-essentials": next "@storybook/addon-interactions": next @@ -11393,7 +11393,16 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.44.0, playwright-core@npm:>=1.2.0": +"playwright-core@npm:1.41.0": + version: 1.41.0 + resolution: "playwright-core@npm:1.41.0" + bin: + playwright-core: cli.js + checksum: 14671265916a1fd0c71d94640de19c48bcce3f7dec35530f10e349e97030ea44ffa8ee518cbf811501e3ab2b74874aecf917e46bf40fea0570db1d4bea1fe7ac + languageName: node + linkType: hard + +"playwright-core@npm:>=1.2.0": version: 1.44.0 resolution: "playwright-core@npm:1.44.0" bin: @@ -11402,18 +11411,18 @@ __metadata: languageName: node linkType: hard -"playwright@npm:1.44.0": - version: 1.44.0 - resolution: "playwright@npm:1.44.0" +"playwright@npm:1.41.0": + version: 1.41.0 + resolution: "playwright@npm:1.41.0" dependencies: fsevents: 2.3.2 - playwright-core: 1.44.0 + playwright-core: 1.41.0 dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: 22653ded652f436c1a837842009a175e8acb91ab340bb3deee87dbdb7205b439bd174f5f20591eb67f0171728c9f8f4bdfa3668a517da6bc7b45a4a79eabdbd5 + checksum: e7c32136911c58e06b964fe7d33f8b3d8f6a067ae5218662a0811dd6c90e007db1774eb7e161f4aa748d760f404f4c066b7b7303c2b617f7448b6ee4b86c9999 languageName: node linkType: hard From 693a7d7e8eee4cbbee54bb96d4f0cf462f7eb899 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 21 May 2024 15:11:04 +0200 Subject: [PATCH 5/9] small fix --- package.json | 2 +- src/playwright/csf-playwright-plugin.ts | 2 +- src/util/getStorybookMain.ts | 16 ++++++++-------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 093f08fd..dcc37fbf 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "*.d.ts" ], "scripts": { - "build": "tsup", + "build": "node scripts/delete-playwright-cache.js && tsup", "build-storybook": "storybook build", "build:watch": "concurrently \"tsup --watch\" \"nodemon\"", "generate-dynamic-stories": "node scripts/generate-dynamic-stories.js", diff --git a/src/playwright/csf-playwright-plugin.ts b/src/playwright/csf-playwright-plugin.ts index a6345c6c..200d2f77 100644 --- a/src/playwright/csf-playwright-plugin.ts +++ b/src/playwright/csf-playwright-plugin.ts @@ -42,7 +42,7 @@ const makeTitleFactory = (filename: string) => { return (userTitle: string) => userOrAutoTitle(filePath, normalizedStoriesEntries, userTitle) as string; } catch (e) { - return (title: string) => title || 'atoms-button'; + return (title: string) => title || ''; } }; diff --git a/src/util/getStorybookMain.ts b/src/util/getStorybookMain.ts index 8054ee4a..06627eb5 100644 --- a/src/util/getStorybookMain.ts +++ b/src/util/getStorybookMain.ts @@ -9,16 +9,16 @@ export const getStorybookMain = (configDir = '.storybook') => { if (storybookMainConfig.has(configDir)) { // console.log('cached main config!', storybookMainConfig.get(configDir)); return storybookMainConfig.get(configDir) as StorybookConfig; - } else { - // console.log('setting main config for the first time'); - // console.trace('path: ', join(resolve(configDir), 'main')); - const config = serverRequire(join(resolve(configDir), 'main')); - // console.log('👉 mainConfig: ', config); - - storybookMainConfig.set(configDir, config); } - const mainConfig = storybookMainConfig.get(configDir); + // console.log('setting main config for the first time'); + // console.trace('path: ', join(resolve(configDir), 'main')); + const mainConfig = serverRequire(join(resolve(configDir), 'main')); + // console.log('👉 mainConfig first: ', mainConfig); + + storybookMainConfig.set(configDir, mainConfig); + + // console.log('👉 mainConfig second: ', mainConfig); if (!mainConfig) { throw new Error( From 17f0c6f261d3696f218ddd06b57109c5ec6e6f80 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 21 May 2024 15:12:00 +0200 Subject: [PATCH 6/9] fix cwd --- src/config/playwright.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/config/playwright.ts b/src/config/playwright.ts index 1125b798..4ede633f 100644 --- a/src/config/playwright.ts +++ b/src/config/playwright.ts @@ -65,6 +65,7 @@ export const defineConfig = (config: PlaywrightTestConfig) => { /* Run your local dev server before starting the tests */ webServer: { command: 'yarn storybook', + cwd: process.cwd(), url: 'http://127.0.0.1:6006', reuseExistingServer: true, //!process.env.CI, }, From e63ce969b6a91a62778350676f8cc22a6d6c5330 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 21 May 2024 15:26:27 +0200 Subject: [PATCH 7/9] fix script --- package.json | 3 ++- scripts/delete-playwright-cache.js | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index dcc37fbf..f856677b 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "*.d.ts" ], "scripts": { - "build": "node scripts/delete-playwright-cache.js && tsup", + "build": "tsup", + "build:nocache": "node scripts/delete-playwright-cache.js && tsup", "build-storybook": "storybook build", "build:watch": "concurrently \"tsup --watch\" \"nodemon\"", "generate-dynamic-stories": "node scripts/generate-dynamic-stories.js", diff --git a/scripts/delete-playwright-cache.js b/scripts/delete-playwright-cache.js index d600ded1..4f76fbdc 100644 --- a/scripts/delete-playwright-cache.js +++ b/scripts/delete-playwright-cache.js @@ -6,10 +6,6 @@ * these changes would not be reflected in the test-runner. This script (hooked to nodemon) makes sure that * whenever you change the csf-playwright-plugin.ts file, the cache is cleared and you actually get your changes. */ -if (process.platform !== 'darwin') { - throw new Error('This script only works on macOS.'); -} - const fs = require('fs').promises; const path = require('path'); @@ -62,6 +58,10 @@ async function findPlaywrightTransformCacheDir(dirPath) { // This is the pattern used by Playwright: /var/folders/{some-hash}/{some-other-hash}/T/playwright-transform-cache-501 // it will look like this /var/folders/sv/lg8lnv0s4gg6_rt7s6cd52qr0000gn/T/playwright-transform-cache-501 const main = async () => { + if (process.platform !== 'darwin') { + throw new Error('This script only works on macOS.'); + } + let playwrightTransformPath = await getCachedPath(); if (!playwrightTransformPath) { @@ -81,4 +81,6 @@ const main = async () => { } }; -main(); +if (process.env.CI === undefined) { + main(); +} From f0970e1bfc24892d360fe37725791477d37ac02c Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 28 May 2024 11:39:37 +0200 Subject: [PATCH 8/9] update PW --- package.json | 2 +- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index f856677b..b3c46d9f 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@babel/template": "^7.22.5", "@babel/types": "^7.22.5", "@jest/types": "^29.6.3", - "@playwright/test": "1.41.0", + "@playwright/test": "^1.44.1", "@storybook/core-common": "next", "@storybook/csf": "^0.1.2", "@storybook/csf-tools": "next", diff --git a/yarn.lock b/yarn.lock index fe8362f3..e36a7c82 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2860,14 +2860,14 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:1.41.0": - version: 1.41.0 - resolution: "@playwright/test@npm:1.41.0" +"@playwright/test@npm:^1.44.1": + version: 1.44.1 + resolution: "@playwright/test@npm:1.44.1" dependencies: - playwright: 1.41.0 + playwright: 1.44.1 bin: playwright: cli.js - checksum: 3a7039f8cd14dd242154255417c100a99c3254a3c1fd26df2a11be24c10b06ef77d2736336d7743dedc5e1a6a52748e58ced730b6048f8bd75d8867ce81661e0 + checksum: 90507b77e388aa984deb92db56f7bb3b305c6be441e1d0087ca046989cfdda068bbc26d75bd29c20ad3dbb2434e69a8ff0d6b30003b88c9234cd3aa6a9f7deb9 languageName: node linkType: hard @@ -4090,7 +4090,7 @@ __metadata: "@babel/template": ^7.22.5 "@babel/types": ^7.22.5 "@jest/types": ^29.6.3 - "@playwright/test": 1.41.0 + "@playwright/test": ^1.44.1 "@storybook/addon-coverage": ^1.0.0 "@storybook/addon-essentials": next "@storybook/addon-interactions": next @@ -11393,12 +11393,12 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.41.0": - version: 1.41.0 - resolution: "playwright-core@npm:1.41.0" +"playwright-core@npm:1.44.1": + version: 1.44.1 + resolution: "playwright-core@npm:1.44.1" bin: playwright-core: cli.js - checksum: 14671265916a1fd0c71d94640de19c48bcce3f7dec35530f10e349e97030ea44ffa8ee518cbf811501e3ab2b74874aecf917e46bf40fea0570db1d4bea1fe7ac + checksum: ebc6fa0ff77792fe52648fda06cc4474d4e9746db6dc5750d262b7fe2caf9f9e2327a71f1fb365e862213403a9daf95361c5040a9b0fd462928d7eb4fdc760e1 languageName: node linkType: hard @@ -11411,18 +11411,18 @@ __metadata: languageName: node linkType: hard -"playwright@npm:1.41.0": - version: 1.41.0 - resolution: "playwright@npm:1.41.0" +"playwright@npm:1.44.1": + version: 1.44.1 + resolution: "playwright@npm:1.44.1" dependencies: fsevents: 2.3.2 - playwright-core: 1.41.0 + playwright-core: 1.44.1 dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: e7c32136911c58e06b964fe7d33f8b3d8f6a067ae5218662a0811dd6c90e007db1774eb7e161f4aa748d760f404f4c066b7b7303c2b617f7448b6ee4b86c9999 + checksum: c2e8ff0a855e4a9e665ae5ffa0ff90423289546157be55e83f78916d17075c5910a7244773739c2a973da884a4ff0b3cf9b6e6b543de112e43b12169a9208e86 languageName: node linkType: hard From 0283f4f9d48d157beb1dba96d16b63574cb8eaff Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 28 May 2024 12:40:01 +0200 Subject: [PATCH 9/9] support PW 1.42 onwards --- src/config/playwright.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/config/playwright.ts b/src/config/playwright.ts index 4ede633f..a15bd248 100644 --- a/src/config/playwright.ts +++ b/src/config/playwright.ts @@ -17,8 +17,7 @@ import { export const defineConfig = (config: PlaywrightTestConfig) => { const { STORYBOOK_STORIES_PATTERN } = process.env; - // @ts-ignore use _contextReuseMode - return playwrightDefineConfig({ + const original = playwrightDefineConfig({ testDir: process.env.TEST_ROOT || process.cwd(), testMatch: STORYBOOK_STORIES_PATTERN?.split(';'), globalSetup: path.join(__dirname, 'config', 'global.setup.js'), @@ -56,6 +55,7 @@ export const defineConfig = (config: PlaywrightTestConfig) => { }, ], + // Keep this for older versions of PW if we ever need. It stopped working in 1.42.0 build: { babelPlugins: [[path.join(__dirname, 'playwright', 'csf-playwright-plugin.js')]], // @ts-ignore @@ -71,4 +71,12 @@ export const defineConfig = (config: PlaywrightTestConfig) => { }, ...config, }); + + return { + ...original, + '@playwright/test': { + ...(original as any)['@playwright/test'], + babelPlugins: [[path.join(__dirname, 'playwright', 'csf-playwright-plugin.js')]], + }, + } as PlaywrightTestConfig; };