diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ce4f66a11..bbb0615cc 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,6 +20,9 @@ jobs: contents: read deployments: write pull-requests: write + outputs: + deployment-url: ${{ steps.set-url.outputs.deployment-url }} + is-pr: ${{ github.event_name == 'pull_request' }} steps: - uses: actions/checkout@v4 - name: Setup yarn @@ -38,11 +41,12 @@ jobs: if [[ "$RAW_BRANCH" == "master" ]]; then echo "VITE_DEPLOYMENT_URL=" >> "$GITHUB_ENV" + echo "SAFE_BRANCH=" >> "$GITHUB_ENV" else SAFE_BRANCH="${RAW_BRANCH//\//-}" - + SAFE_BRANCH=$(echo "$SAFE_BRANCH" | tr '[:upper:]' '[:lower:]') - + echo "SAFE_BRANCH=$SAFE_BRANCH" >> "$GITHUB_ENV" echo "VITE_DEPLOYMENT_URL=https://${SAFE_BRANCH}.rescript-lang.pages.dev" >> "$GITHUB_ENV" fi @@ -61,6 +65,15 @@ jobs: wranglerVersion: 4.63.0 env: FORCE_COLOR: 0 + - name: Set deployment URL output + id: set-url + shell: bash + run: | + if [[ "${{ github.ref_name }}" == "master" ]]; then + echo "deployment-url=https://rescript-lang.org" >> "$GITHUB_OUTPUT" + else + echo "deployment-url=${{ env.VITE_DEPLOYMENT_URL }}" >> "$GITHUB_OUTPUT" + fi - name: Comment PR with deployment link uses: marocchino/sticky-pull-request-comment@v2 with: @@ -72,3 +85,79 @@ jobs: Deployment Environment: ${{ steps.deploy.outputs.pages-environment }} ${{ steps.deploy.outputs.command-output }} + + e2e: + name: E2E Tests + runs-on: ubuntu-latest + needs: [deploy] + # Only run E2E on pull requests from non-fork branches; push-to-master runs + # are excluded here since production smoke tests are a separate concern. + if: ${{ github.event_name == 'pull_request' && needs.deploy.outputs.deployment-url != '' }} + permissions: + contents: read + pull-requests: write + steps: + - uses: actions/checkout@v4 + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version-file: ".node-version" + cache: yarn + + - name: Install dependencies + run: yarn install + + # The e2e test files are written in ReScript and must be compiled to .jsx + # before Playwright can discover and run them. + - name: Build ReScript (includes e2e tests) + run: yarn build:res + + - name: Install Playwright browsers (Chromium only) + run: yarn playwright install chromium --with-deps + + - name: Run Playwright E2E tests + run: yarn e2e + env: + PLAYWRIGHT_BASE_URL: ${{ needs.deploy.outputs.deployment-url }} + CI: true + + - name: Run Chromatic visual regression + # Always run Chromatic even when Playwright tests fail so that visual + # diffs are still captured and surfaced on the PR. + if: ${{ always() && needs.deploy.outputs.deployment-url != '' }} + run: yarn e2e:chromatic --exit-zero-on-changes + env: + CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} + PLAYWRIGHT_BASE_URL: ${{ needs.deploy.outputs.deployment-url }} + + - name: Upload Playwright report + if: ${{ !cancelled() }} + uses: actions/upload-artifact@v4 + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 + + - name: Upload test results (traces / screenshots / videos) + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: test-results + path: test-results/ + retention-days: 7 + + - name: Comment PR with Playwright report link + if: ${{ failure() }} + uses: marocchino/sticky-pull-request-comment@v2 + with: + recreate: true + header: e2e-report + message: | + ## E2E Test Failures + + One or more Playwright tests failed against the preview deployment. + + **Preview URL:** ${{ needs.deploy.outputs.deployment-url }} + + Download the full HTML report from the [workflow run artifacts](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}). diff --git a/.gitignore b/.gitignore index bba900005..6fab8c2f2 100644 --- a/.gitignore +++ b/.gitignore @@ -50,8 +50,11 @@ functions/**/*.mjs functions/**/*.jsx __tests__/**/*.mjs __tests__/**/*.jsx +e2e/**/*.mjs +e2e/**/*.jsx !_shims.mjs !_shims.jsx +!src/bindings/playwright-shim.mjs # Yarn .yarn/* @@ -72,4 +75,8 @@ _scripts # Vitest screenshots !__tests__/__screenshots__/**/* -.vitest-attachments \ No newline at end of file +.vitest-attachments + +# Playwright artifacts +playwright-report/ +test-results/ diff --git a/.prettierignore b/.prettierignore index 07a2ecfba..8072b2cce 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,7 @@ +e2e/**/*.mjs +e2e/**/*.jsx +playwright-report/ +test-results/ !_shims.mjs !public/_redirects .DS_Store diff --git a/e2e/DocsPage.test.res b/e2e/DocsPage.test.res new file mode 100644 index 000000000..536f443fc --- /dev/null +++ b/e2e/DocsPage.test.res @@ -0,0 +1,69 @@ +open Playwright + +describe("Docs Page", () => { + test("has the correct page title", async ({page}) => { + let _ = await page->goto("/docs") + await page->expect->toHaveTitle("ReScript Documentation") + }) + + test("renders the docs overview heading", async ({page}) => { + let _ = await page->goto("/docs") + let heading = page->getByRole("heading", ~options={name: "Documentation"}) + await heading->expect->toBeVisible + }) + + test("docs navigation sidebar is present on the introduction page", async ({page}) => { + let _ = await page->goto("/docs/manual/latest/introduction") + let sidebar = page->getByRole("navigation") + await sidebar->expect->toBeVisible + }) + + test("can navigate from the overview to the introduction", async ({page}) => { + let _ = await page->goto("/docs") + let introLink = page->getByRole("link", ~options={name: "Introduction"}) + await introLink->first->click + await page->expect->toHaveURL("/docs/manual/latest/introduction") + }) + + test("introduction page renders main content with h1", async ({page}) => { + let _ = await page->goto("/docs/manual/latest/introduction") + let mainContent = page->locator("main") + await mainContent->expect->toBeVisible + let heading = page->getByRole("heading", ~options={name: "Introduction", level: 1}) + await heading->expect->toBeVisible + }) + + test("syntax lookup page loads with heading", async ({page}) => { + let _ = await page->goto("/syntax-lookup") + let heading = page->getByRole("heading", ~options={name: "Syntax Lookup"}) + await heading->expect->toBeVisible + }) + + test("packages page loads", async ({page}) => { + let _ = await page->goto("/packages") + let heading = page->getByRole("heading", ~options={name: "Packages"}) + await heading->expect->toBeVisible + }) + + test("has no accessibility violations on the docs overview", async ({page}) => { + let _ = await page->goto("/docs") + await page->assertNoA11yViolations + }) + + test("has no accessibility violations on the introduction page", async ({page}) => { + let _ = await page->goto("/docs/manual/latest/introduction") + await page->assertNoA11yViolations + }) + + test("visual snapshot — docs overview", async ({page}) => { + let _ = await page->goto("/docs") + await page->waitForLoadState("networkidle") + await takeSnapshot(page, "Docs Overview") + }) + + test("visual snapshot — introduction page", async ({page}) => { + let _ = await page->goto("/docs/manual/latest/introduction") + await page->waitForLoadState("networkidle") + await takeSnapshot(page, "Docs Introduction") + }) +}) diff --git a/e2e/LandingPage.test.res b/e2e/LandingPage.test.res new file mode 100644 index 000000000..c2dd670d8 --- /dev/null +++ b/e2e/LandingPage.test.res @@ -0,0 +1,63 @@ +open Playwright + +describe("Landing Page", () => { + test("has the correct page title", async ({page}) => { + let _ = await page->goto("/") + await page + ->expect + ->toHaveTitle( + "ReScript - A robustly typed language that compiles to efficient and human-readable JavaScript.", + ) + }) + + test("renders the hero section heading", async ({page}) => { + let _ = await page->goto("/") + let hero = + page->getByRole( + "heading", + ~options={name: "Fast, Simple, Fully Typed JavaScript from the Future"}, + ) + await hero->expect->toBeVisible + }) + + test("primary navigation links are present and visible", async ({page}) => { + let _ = await page->goto("/") + + await page->getByRole("link", ~options={name: "Docs"})->expect->toBeVisible + await page->getByRole("link", ~options={name: "Playground"})->expect->toBeVisible + await page->getByRole("link", ~options={name: "Blog"})->expect->toBeVisible + await page->getByRole("link", ~options={name: "Community"})->expect->toBeVisible + }) + + test("Get Started link navigates to the introduction", async ({page}) => { + let _ = await page->goto("/") + + let getStarted = page->getByRole("link", ~options={name: "Get Started"}) + await getStarted->first->click + + await page->expect->toHaveURL("/docs/manual/latest/introduction") + }) + + test("GitHub social link is present", async ({page}) => { + let _ = await page->goto("/") + let githubLink = page->getByRole("link", ~options={name: "GitHub"}) + await githubLink->expect->toBeVisible + }) + + test("has no accessibility violations", async ({page}) => { + let _ = await page->goto("/") + await page->assertNoA11yViolations + }) + + test("visual snapshot — desktop", async ({page}) => { + let _ = await page->goto("/") + await page->waitForLoadState("networkidle") + await takeSnapshot(page, "Landing Page — Desktop") + }) + + test("visual snapshot — mobile", async ({page}) => { + let _ = await page->goto("/") + await page->waitForLoadState("networkidle") + await takeSnapshot(page, "Landing Page — Mobile") + }) +}) diff --git a/functions/yoga.wasm b/functions/yoga.wasm new file mode 100644 index 000000000..7da77dea1 Binary files /dev/null and b/functions/yoga.wasm differ diff --git a/package.json b/package.json index 34f375558..5f3f5ea29 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,9 @@ "build": "yarn build:res && yarn build:scripts && yarn build:update-index && yarn build:vite", "ci:format": "prettier . --check --experimental-cli", "ci:test": "yarn vitest --run --browser.headless --update", + "e2e": "playwright test", + "e2e:chromatic": "chromatic --playwright", + "e2e:report": "playwright show-report", "clean:res": "rescript clean", "convert-images": "auto-convert-images", "dev:res": "rescript watch", @@ -77,10 +80,15 @@ "remark-gfm": "^4.0.1", "remark-validate-links": "^13.1.0", "rescript": "^12.0.0", + "satori": "^0.19.2", + "shiki": "^3.22.0", "unified": "^11.0.5", "vfile-matter": "^5.0.0" }, "devDependencies": { + "@axe-core/playwright": "^4.11.1", + "@chromatic-com/playwright": "^0.12.8", + "@playwright/test": "^1.58.2", "@prettier/plugin-oxc": "^0.0.4", "@react-router/dev": "^7.8.1", "@tailwindcss/vite": "^4.1.13", diff --git a/playwright.config.mjs b/playwright.config.mjs new file mode 100644 index 000000000..05e687d68 --- /dev/null +++ b/playwright.config.mjs @@ -0,0 +1,116 @@ +import { defineConfig, devices } from "@playwright/test"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +/** + * The base URL for all page.goto('/') calls in tests. + * + * • CI (PR preview): set to the Cloudflare Pages preview URL, e.g. + * https://my-feature-branch.rescript-lang.pages.dev + * • Local: not set — Playwright starts Wrangler automatically and points + * tests at http://localhost:8788. + */ +const baseURL = process.env.PLAYWRIGHT_BASE_URL ?? "http://localhost:8788"; + +/** + * Whether we should let Playwright manage the local dev server. + * We only do this when there is no external URL to point at (i.e. local runs). + */ +const useLocalServer = !process.env.PLAYWRIGHT_BASE_URL; + +export default defineConfig({ + /** + * Start Wrangler Pages dev server automatically for local runs so that + * `yarn e2e` works after `yarn build` with zero extra setup. + * + * The server is NOT started in CI because `PLAYWRIGHT_BASE_URL` is always + * set there to the Cloudflare preview URL. + * + * `reuseExistingServer` lets you keep a Wrangler process running in another + * terminal and have Playwright attach to it rather than spawning a new one. + */ + webServer: useLocalServer + ? { + command: `yarn wrangler pages dev ${path.join(__dirname, "out")} --port 8788`, + url: "http://localhost:8788", + reuseExistingServer: true, + stdout: "pipe", + stderr: "pipe", + timeout: 60_000, + } + : undefined, + + testDir: "./e2e", + + /** + * Include compiled ReScript output (.jsx) as well as plain .js / .ts files. + * ReScript compiles *.res → *.jsx (in-source), so Playwright must discover + * those generated files. + */ + testMatch: "**/*.test.{js,jsx,ts,tsx}", + + /** Run each test file in parallel. */ + fullyParallel: true, + + /** + * Fail the suite immediately when a test.only() call is left in source — + * this is enforced only in CI so local debugging is unaffected. + */ + forbidOnly: !!process.env.CI, + + /** Retry flaky tests twice in CI; never locally so failures are obvious. */ + retries: process.env.CI ? 2 : 0, + + /** Limit parallelism in CI to avoid overwhelming the preview deployment. */ + workers: process.env.CI ? 2 : undefined, + + reporter: process.env.CI + ? [ + ["github"], // Annotate PR checks with inline failure messages. + ["html", { open: "never", outputFolder: "playwright-report" }], + ["json", { outputFile: "test-results/results.json" }], + ] + : [["html", { open: "on-failure" }]], + + use: { + baseURL, + + /** + * Collect a Playwright trace on the first retry so failures can be + * inspected in the Playwright trace viewer without slowing down the + * initial run. + */ + trace: "on-first-retry", + + /** + * Capture a screenshot automatically on test failure. + */ + screenshot: "only-on-failure", + + /** + * Record a video on the first retry alongside the trace. + */ + video: "on-first-retry", + }, + + projects: [ + { + name: "chromium", + use: { + ...devices["Desktop Chrome"], + viewport: { width: 1440, height: 900 }, + }, + }, + { + name: "mobile-chrome", + use: { + ...devices["Pixel 5"], + }, + }, + ], + + /** Where Playwright writes screenshots, traces, and videos. */ + outputDir: "test-results", +}); diff --git a/rescript.json b/rescript.json index 9214ceafd..9b50b9b33 100644 --- a/rescript.json +++ b/rescript.json @@ -13,6 +13,11 @@ "subdirs": true, "type": "dev" }, + { + "dir": "e2e", + "subdirs": true, + "type": "dev" + }, { "dir": "app", "subdirs": true diff --git a/src/bindings/Playwright.res b/src/bindings/Playwright.res new file mode 100644 index 000000000..d9a2b9ebf --- /dev/null +++ b/src/bindings/Playwright.res @@ -0,0 +1,518 @@ +/** + * ───────────────────────────────────────────────────────────────────────────── + * Core types + * ───────────────────────────────────────────────────────────────────────────── + */ +type page +type locator +type response +type browserContext +type keyboard +type mouse + +type fixtures = { + page: page, + context: browserContext, +} + +/** Access the BrowserContext that owns this page. */ +@send +external context: page => browserContext = "context" + +/** + * ───────────────────────────────────────────────────────────────────────────── + * @chromatic-com/playwright — test, expect, takeSnapshot + * + * Using Chromatic's wrapped `test` means snapshot collection is wired up + * automatically when CHROMATIC_PROJECT_TOKEN is present in the environment; + * when the token is absent every `takeSnapshot` call is a no-op so the suite + * still runs as ordinary Playwright tests. + * ───────────────────────────────────────────────────────────────────────────── + */ +@module("./playwright-shim.mjs") +external test: (string, fixtures => promise) => unit = "test" + +/** Group related tests under a shared label. */ +@module("./playwright-shim.mjs") @scope("test") +external describe: (string, unit => unit) => unit = "describe" + +/** Run a hook before every test in the current scope. */ +@module("./playwright-shim.mjs") @scope("test") +external beforeEach: (fixtures => promise) => unit = "beforeEach" + +/** Run a hook after every test in the current scope. */ +@module("./playwright-shim.mjs") @scope("test") +external afterEach: (fixtures => promise) => unit = "afterEach" + +/** Run a hook once before all tests in the current scope (worker-level). */ +@module("./playwright-shim.mjs") @scope("test") +external beforeAll: (fixtures => promise) => unit = "beforeAll" + +/** Run a hook once after all tests in the current scope (worker-level). */ +@module("./playwright-shim.mjs") @scope("test") +external afterAll: (fixtures => promise) => unit = "afterAll" + +/** + * Mark a test as the only one that should run in this file while debugging. + * Tests decorated with `only` must not be committed — set `forbidOnly: true` + * in playwright.config.mjs to enforce this in CI. + */ +@module("./playwright-shim.mjs") @scope("test") +external only: (string, fixtures => promise) => unit = "only" + +/** Skip a test unconditionally. */ +@module("./playwright-shim.mjs") @scope("test") +external skip: (string, fixtures => promise) => unit = "skip" + +/** + * Capture a Chromatic visual snapshot of the current page state. + * Call this at the point in your test where the UI is in the state you want + * to visually compare across builds. + */ +@module("./playwright-shim.mjs") +external takeSnapshot: (page, string) => promise = "takeSnapshot" + +/** + * ───────────────────────────────────────────────────────────────────────────── + * Assertions (expect) + * ───────────────────────────────────────────────────────────────────────────── + */ +type expect + +/** + * Works for both Locator-based and Page-based assertions, as well as plain + * value assertions (e.g. array length checks). + */ +@module("@chromatic-com/playwright") +external expect: 'a => expect = "expect" + +/** Negate the following matcher. */ +@send +external not_: expect => expect = "not" + +// ── Locator assertions (async) ──────────────────────────────────────────────── +// +// Each assertion comes in two forms: +// • Plain — `toBeVisible` — no options, works cleanly in pipe chains. +// • WithOptions — `toBeVisibleWith` — accepts a record of options when you +// need e.g. a custom timeout. +// +// The split is necessary because ReScript's pipe operator (`->`) combined with +// `()` does not compose well with optional labelled arguments. + +@send +external toBeVisible: expect => promise = "toBeVisible" + +type toBeVisibleOptions = {timeout?: int} +@send +external toBeVisibleWith: (expect, toBeVisibleOptions) => promise = "toBeVisible" + +@send +external toBeHidden: expect => promise = "toBeHidden" + +@send +external toBeHiddenWith: (expect, toBeVisibleOptions) => promise = "toBeHidden" + +@send +external toBeEnabled: expect => promise = "toBeEnabled" + +@send +external toBeDisabled: expect => promise = "toBeDisabled" + +@send +external toBeChecked: expect => promise = "toBeChecked" + +@send +external toBeFocused: expect => promise = "toBeFocused" + +@send +external toHaveText: (expect, string) => promise = "toHaveText" + +type toHaveTextOptions = {ignoreCase?: bool, useInnerText?: bool, timeout?: int} +@send +external toHaveTextWith: (expect, string, toHaveTextOptions) => promise = "toHaveText" + +@send +external toContainText: (expect, string) => promise = "toContainText" + +type toContainTextOptions = {ignoreCase?: bool, useInnerText?: bool, timeout?: int} +@send +external toContainTextWith: (expect, string, toContainTextOptions) => promise = + "toContainText" + +@send +external toHaveValue: (expect, string) => promise = "toHaveValue" + +@send +external toHaveAttribute: (expect, string, string) => promise = "toHaveAttribute" + +@send +external toHaveClass: (expect, string) => promise = "toHaveClass" + +@send +external toHaveCount: (expect, int) => promise = "toHaveCount" + +// ── Page-level assertions (async) ───────────────────────────────────────────── + +@send +external toHaveURL: (expect, string) => promise = "toHaveURL" + +type toHaveURLOptions = {timeout?: int} +@send +external toHaveURLWith: (expect, string, toHaveURLOptions) => promise = "toHaveURL" + +@send +external toHaveTitle: (expect, string) => promise = "toHaveTitle" + +type toHaveTitleOptions = {timeout?: int} +@send +external toHaveTitleWith: (expect, string, toHaveTitleOptions) => promise = "toHaveTitle" + +// ── Plain value assertions (sync) ───────────────────────────────────────────── + +@send external toEqual: (expect, 'a) => unit = "toEqual" +@send external toBe: (expect, 'a) => unit = "toBe" +@send external toHaveLength: (expect, int) => unit = "toHaveLength" +@send external toBeGreaterThan: (expect, int) => unit = "toBeGreaterThan" +@send external toContain: (expect, 'a) => unit = "toContain" + +/** + * ───────────────────────────────────────────────────────────────────────────── + * Page navigation and state + * ───────────────────────────────────────────────────────────────────────────── + */ +type gotoOptions = { + waitUntil?: string, + timeout?: int, + referer?: string, +} + +/** Navigate to a URL. Resolves when the page load event fires (by default). */ +@send +external goto: (page, string, ~options: gotoOptions=?) => promise> = "goto" + +/** Wait for a load state: `"load"`, `"domcontentloaded"`, or `"networkidle"`. */ +@send +external waitForLoadState: (page, string) => promise = "waitForLoadState" + +/** Return the page's `` text. */ +@send +external title: page => promise<string> = "title" + +/** Return the current URL. */ +@send +external url: page => string = "url" + +/** Reload the current page. */ +@send +external reload: page => promise<Nullable.t<response>> = "reload" + +/** Press a key or key-chord on the keyboard, e.g. `"Enter"`, `"Control+a"`. */ +@send +external press: (page, string) => promise<unit> = "press" + +/** Take a full-page screenshot. Returns raw PNG bytes. */ +type screenshotOptions = { + path?: string, + fullPage?: bool, + clip?: {x: float, y: float, width: float, height: float}, +} + +@send +external screenshot: (page, ~options: screenshotOptions=?) => promise<array<int>> = "screenshot" + +/** + * ───────────────────────────────────────────────────────────────────────────── + * Locator queries on Page + * ───────────────────────────────────────────────────────────────────────────── + */ +type getByRoleOptions = { + name?: string, + exact?: bool, + hidden?: bool, + checked?: bool, + disabled?: bool, + expanded?: bool, + pressed?: bool, + level?: int, +} + +type getByTextOptions = {exact?: bool} +type getByLabelOptions = {exact?: bool} +type getByPlaceholderOptions = {exact?: bool} + +/** Find elements by their ARIA role (e.g. `"heading"`, `"button"`, `"link"`). */ +@send +external getByRole: (page, string, ~options: getByRoleOptions=?) => locator = "getByRole" + +/** Find elements by visible text content. */ +@send +external getByText: (page, string, ~options: getByTextOptions=?) => locator = "getByText" + +/** Find form elements by their associated `<label>` text. */ +@send +external getByLabel: (page, string, ~options: getByLabelOptions=?) => locator = "getByLabel" + +/** Find elements by `data-testid` attribute. */ +@send +external getByTestId: (page, string) => locator = "getByTestId" + +/** Find input elements by their placeholder text. */ +@send +external getByPlaceholder: (page, string, ~options: getByPlaceholderOptions=?) => locator = + "getByPlaceholder" + +/** Find elements by `alt` text (images, etc.). */ +@send +external getByAltText: (page, string) => locator = "getByAltText" + +/** Find elements by their `title` attribute. */ +@send +external getByTitle: (page, string) => locator = "getByTitle" + +/** Select elements using a CSS or XPath selector. */ +@send +external locator: (page, string) => locator = "locator" + +// ── Locator action types ────────────────────────────────────────────────────── +// +// Same plain / WithOptions split as assertions — `->click` works in pipes +// while `->clickWith(opts)` is available when you need extra options. + +/** + * ───────────────────────────────────────────────────────────────────────────── + * Locator actions + * ───────────────────────────────────────────────────────────────────────────── + */ +type clickOptions = { + button?: string, + clickCount?: int, + delay?: int, + force?: bool, + timeout?: int, +} + +type fillOptions = {force?: bool, timeout?: int} +type hoverOptions = {force?: bool, timeout?: int} +type selectOptionOptions = {force?: bool, timeout?: int} + +@send +external click: locator => promise<unit> = "click" + +@send +external clickWith: (locator, clickOptions) => promise<unit> = "click" + +@send +external dblclick: locator => promise<unit> = "dblclick" + +@send +external dblclickWith: (locator, clickOptions) => promise<unit> = "dblclick" + +@send +external fill: (locator, string) => promise<unit> = "fill" + +@send +external fillWith: (locator, string, fillOptions) => promise<unit> = "fill" + +@send +external clear: locator => promise<unit> = "clear" + +@send +external clearWith: (locator, fillOptions) => promise<unit> = "clear" + +@send +external hover: locator => promise<unit> = "hover" + +@send +external hoverWith: (locator, hoverOptions) => promise<unit> = "hover" + +@send +external selectOption: (locator, string) => promise<unit> = "selectOption" + +@send +external selectOptionWith: (locator, string, selectOptionOptions) => promise<unit> = "selectOption" + +@send +external focus: locator => promise<unit> = "focus" + +@send +external blur: locator => promise<unit> = "blur" + +@send +external tap: locator => promise<unit> = "tap" + +/** Read the element's text content. */ +@send +external innerText: locator => promise<string> = "innerText" + +/** Read an element attribute value. */ +@send +external getAttribute: (locator, string) => promise<Nullable.t<string>> = "getAttribute" + +/** Read the element's `textContent`. */ +@send +external textContent: locator => promise<Nullable.t<string>> = "textContent" + +/** Returns `true` when the element is visible right now (no auto-waiting). */ +@send +external isVisible: locator => promise<bool> = "isVisible" + +/** Returns `true` when the element is enabled right now. */ +@send +external isEnabled: locator => promise<bool> = "isEnabled" + +type waitForOptions = {state?: string, timeout?: int} + +/** Wait for the element to reach a particular state (`"visible"`, `"hidden"`, `"attached"`, `"detached"`). */ +@send +external waitFor: (locator, ~options: waitForOptions=?) => promise<unit> = "waitFor" + +/** Narrow a locator set to a specific index (zero-based). */ +@send +external nth: (locator, int) => locator = "nth" + +/** Narrow to the first matching element. */ +@send +external first: locator => locator = "first" + +/** Narrow to the last matching element. */ +@send +external last: locator => locator = "last" + +/** Count how many elements the locator matches right now. */ +@send +external count: locator => promise<int> = "count" + +/** Return all matching elements as an array of locators. */ +@send +external all: locator => promise<array<locator>> = "all" + +/** Scope a child locator query inside this locator. */ +@send +external locatorWithin: (locator, string) => locator = "locator" + +/** + * ───────────────────────────────────────────────────────────────────────────── + * Locator queries on Locator + * These mirror the Page-level query helpers so that queries can be scoped + * within an already-found element. + * ───────────────────────────────────────────────────────────────────────────── + */ +@send +external locatorGetByRole: (locator, string, ~options: getByRoleOptions=?) => locator = "getByRole" + +@send +external locatorGetByText: (locator, string, ~options: getByTextOptions=?) => locator = "getByText" + +@send +external locatorGetByLabel: (locator, string, ~options: getByLabelOptions=?) => locator = + "getByLabel" + +@send +external locatorGetByTestId: (locator, string) => locator = "getByTestId" + +@send +external locatorGetByPlaceholder: ( + locator, + string, + ~options: getByPlaceholderOptions=?, +) => locator = "getByPlaceholder" + +/** + * ───────────────────────────────────────────────────────────────────────────── + * @axe-core/playwright — accessibility scanning + * ───────────────────────────────────────────────────────────────────────────── + */ +type axeBuilder + +type axeViolation = { + id: string, + impact: Nullable.t<string>, + description: string, + help: string, + helpUrl: string, + tags: array<string>, +} + +type axeResults = { + violations: array<axeViolation>, + passes: array<JSON.t>, + incomplete: array<JSON.t>, + inapplicable: array<JSON.t>, +} + +type axeBuilderOptions = {page: page} + +/** + * Create an AxeBuilder instance bound to the given page. + * + * ```res + * let results = await makeAxeBuilder({page})->analyze + * expect(results.violations)->toHaveLength(0) + * ``` + */ +@module("@axe-core/playwright") @new +external makeAxeBuilder: axeBuilderOptions => axeBuilder = "AxeBuilder" + +/** Restrict scanning to a list of WCAG / best-practice tag names, e.g. `["wcag2a", "wcag2aa"]`. */ +@send +external withTags: (axeBuilder, array<string>) => axeBuilder = "withTags" + +/** Exclude one or more CSS selectors from the scan. */ +@send +external exclude: (axeBuilder, string) => axeBuilder = "exclude" + +/** Include only the listed CSS selectors in the scan. */ +@send +external include_: (axeBuilder, string) => axeBuilder = "include" + +/** Disable a specific axe rule by id. */ +@send +external disableRules: (axeBuilder, array<string>) => axeBuilder = "disableRules" + +/** Run the accessibility scan and resolve with the full results object. */ +@send +external analyze: axeBuilder => promise<axeResults> = "analyze" + +/** + * ───────────────────────────────────────────────────────────────────────────── + * Helpers + * ───────────────────────────────────────────────────────────────────────────── + */ +/** + * Format axe violations into a readable multi-line string suitable for use in + * assertion failure messages. + */ +let formatViolations = (violations: array<axeViolation>) => + violations + ->Array.map(v => { + let impact = v.impact->Nullable.toOption->Option.getOr("unknown") + `[${v.id}] (${impact}) ${v.description}\n ${v.helpUrl}` + }) + ->Array.join("\n") + +/** + * Assert that a page has no axe violations and format a helpful failure message + * when violations are found. + * + * ```res + * test("has no a11y violations", async ({page}) => { + * let _ = await page->goto("/") + * await page->assertNoA11yViolations + * }) + * ``` + * + * Optionally restrict the scan to specific WCAG tags: + * + * ```res + * await makeAxeBuilder({page})->withTags(["wcag2a", "wcag2aa"])->analyze->... + * ``` + */ +let assertNoA11yViolations = async (page: page) => { + let results = await makeAxeBuilder({page: page})->analyze + let violations = results.violations + if Array.length(violations) > 0 { + let msg = `\nAccessibility violations found:\n${formatViolations(violations)}` + JsError.throwWithMessage(msg) + } +} diff --git a/src/bindings/playwright-shim.mjs b/src/bindings/playwright-shim.mjs new file mode 100644 index 000000000..3602a1de9 --- /dev/null +++ b/src/bindings/playwright-shim.mjs @@ -0,0 +1,60 @@ +/** + * playwright-shim.mjs + * + * Playwright's fixture-injection system inspects the source of the callback + * passed to `test()` and requires the first parameter to use object + * destructuring syntax, e.g. `async ({ page }) => {}`. + * + * ReScript always compiles record-destructuring arguments to the non- + * destructuring form `async param => { let page = param.page; … }`, which + * Playwright rejects with "First argument must use the object destructuring + * pattern". + * + * This shim sits between the ReScript bindings and `@chromatic-com/playwright`. + * Every function that accepts a `fixtures` callback is wrapped so that the + * outer function Playwright sees uses real destructuring syntax, and the inner + * ReScript-compiled callback is called with the same object. + * + * The ReScript `Playwright.res` bindings point at this file via + * `@module("./playwright-shim.mjs")` instead of pointing directly at + * `@chromatic-com/playwright`. + */ + +import { test as _test, expect, takeSnapshot } from "@chromatic-com/playwright"; + +/** Wrap a ReScript fixtures-callback so Playwright sees destructuring syntax. */ +function wrapFn(fn) { + return async ({ page, context }) => fn({ page, context }); +} + +/** + * `test(name, fn)` — register a single test. + * Attach the same helper methods that Playwright's `test` object exposes so + * that `@scope("test")` bindings in ReScript continue to work correctly. + */ +export function test(name, fn) { + return _test(name, wrapFn(fn)); +} + +/** `test.describe(name, fn)` — group tests; no fixture injection needed. */ +test.describe = (name, fn) => _test.describe(name, fn); + +/** `test.only(name, fn)` — run only this test while debugging. */ +test.only = (name, fn) => _test.only(name, wrapFn(fn)); + +/** `test.skip(name, fn)` — unconditionally skip a test. */ +test.skip = (name, fn) => _test.skip(name, wrapFn(fn)); + +/** `test.beforeEach(fn)` — run before every test in the current scope. */ +test.beforeEach = (fn) => _test.beforeEach(wrapFn(fn)); + +/** `test.afterEach(fn)` — run after every test in the current scope. */ +test.afterEach = (fn) => _test.afterEach(wrapFn(fn)); + +/** `test.beforeAll(fn)` — run once before all tests in the current scope. */ +test.beforeAll = (fn) => _test.beforeAll(wrapFn(fn)); + +/** `test.afterAll(fn)` — run once after all tests in the current scope. */ +test.afterAll = (fn) => _test.afterAll(wrapFn(fn)); + +export { expect, takeSnapshot }; diff --git a/yarn.lock b/yarn.lock index 3e1dab845..7cbf57eac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -256,6 +256,28 @@ __metadata: languageName: node linkType: hard +"@axe-core/playwright@npm:^4.11.1": + version: 4.11.1 + resolution: "@axe-core/playwright@npm:4.11.1" + dependencies: + axe-core: "npm:~4.11.1" + peerDependencies: + playwright-core: ">= 1.0.0" + checksum: 10c0/8c916cd2dd831d91f8c2ab9e3a07ef19837415bb41d40439e4acb88ed0009af2479696b865670199b13ccad984a247868610fbb34d520fca9f7c02de0f7a9439 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.16.7": + version: 7.29.0 + resolution: "@babel/code-frame@npm:7.29.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.28.5" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/d34cc504e7765dfb576a663d97067afb614525806b5cad1a5cc1a7183b916fec8ff57fa233585e3926fd5a9e6b31aae6df91aa81ae9775fb7a28f658d3346f0d + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.27.1": version: 7.27.1 resolution: "@babel/code-frame@npm:7.27.1" @@ -556,6 +578,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.17.8": + version: 7.28.6 + resolution: "@babel/runtime@npm:7.28.6" + checksum: 10c0/358cf2429992ac1c466df1a21c1601d595c46930a13c1d4662fde908d44ee78ec3c183aaff513ecb01ef8c55c3624afe0309eeeb34715672dbfadb7feedb2c0d + languageName: node + linkType: hard + "@babel/template@npm:^7.27.2": version: 7.27.2 resolution: "@babel/template@npm:7.27.2" @@ -592,6 +621,36 @@ __metadata: languageName: node linkType: hard +"@chromatic-com/playwright@npm:^0.12.8": + version: 0.12.8 + resolution: "@chromatic-com/playwright@npm:0.12.8" + dependencies: + "@chromaui/rrweb-snapshot": "npm:2.0.0-alpha.18-noAbsolute" + "@segment/analytics-node": "npm:2.1.3" + "@storybook/addon-essentials": "npm:~8.5.8" + "@storybook/csf": "npm:^0.1.0" + "@storybook/manager-api": "npm:~8.5.8" + "@storybook/server-webpack5": "npm:~8.5.8" + storybook: "npm:~8.5.8" + ts-dedent: "npm:^2.2.0" + peerDependencies: + "@playwright/test": ^1.0.0 + bin: + archive-storybook: dist/bin/archive-storybook.js + build-archive-storybook: dist/bin/build-archive-storybook.js + checksum: 10c0/5de4489b69efab6cfd6ec3f5c4a8e285f6d96e1198641e157324e197b718f7df469efb4ee9d6a682cbffe030c17ece532b967b47d40e6c2f4db7af7b3b22a0b2 + languageName: node + linkType: hard + +"@chromaui/rrweb-snapshot@npm:2.0.0-alpha.18-noAbsolute": + version: 2.0.0-alpha.18-noAbsolute + resolution: "@chromaui/rrweb-snapshot@npm:2.0.0-alpha.18-noAbsolute" + dependencies: + postcss: "npm:^8.4.38" + checksum: 10c0/a405c6cf4229bc06a1d0e6fe56ceb3ac9bdf73df57f6a95704586b87059bf05a8954ecbf479a6d02059e7e9eb04f789982ce323432fd937bb79e4735929c1ec8 + languageName: node + linkType: hard + "@cloudflare/kv-asset-handler@npm:0.4.2": version: 0.4.2 resolution: "@cloudflare/kv-asset-handler@npm:0.4.2" @@ -1926,6 +1985,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.11 + resolution: "@jridgewell/source-map@npm:0.3.11" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + checksum: 10c0/50a4fdafe0b8f655cb2877e59fe81320272eaa4ccdbe6b9b87f10614b2220399ae3e05c16137a59db1f189523b42c7f88bd097ee991dbd7bc0e01113c583e844 + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5": version: 1.5.5 resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" @@ -1943,7 +2012,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.28": +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.28": version: 0.3.31 resolution: "@jridgewell/trace-mapping@npm:0.3.31" dependencies: @@ -1989,6 +2058,13 @@ __metadata: languageName: node linkType: hard +"@lukeed/csprng@npm:^1.1.0": + version: 1.1.0 + resolution: "@lukeed/csprng@npm:1.1.0" + checksum: 10c0/5d6dcf478af732972083ab2889c294b57f1028fa13c2c240d7a4aaa079c2c75df7ef0dcbdda5419147fc6704b4adf96b2de92f1a9a72ac21c6350c4014fffe6c + languageName: node + linkType: hard + "@lukeed/ms@npm:^2.0.2": version: 2.0.2 resolution: "@lukeed/ms@npm:2.0.2" @@ -1996,6 +2072,15 @@ __metadata: languageName: node linkType: hard +"@lukeed/uuid@npm:^2.0.0": + version: 2.0.1 + resolution: "@lukeed/uuid@npm:2.0.1" + dependencies: + "@lukeed/csprng": "npm:^1.1.0" + checksum: 10c0/f9cc0385021f352f444d96dd101afd2a0efd3b2e85a61ac67deb8220409f75a6a426ed6525d297d97746f7931e3079ac6218777551a7c82686de7d292220cb1f + languageName: node + linkType: hard + "@marijn/find-cluster-break@npm:^1.0.0": version: 1.0.2 resolution: "@marijn/find-cluster-break@npm:1.0.2" @@ -2036,7 +2121,7 @@ __metadata: languageName: node linkType: hard -"@mdx-js/react@npm:^3.1.0": +"@mdx-js/react@npm:^3.0.0, @mdx-js/react@npm:^3.1.0": version: 3.1.1 resolution: "@mdx-js/react@npm:3.1.1" dependencies: @@ -2433,6 +2518,17 @@ __metadata: languageName: node linkType: hard +"@playwright/test@npm:^1.58.2": + version: 1.58.2 + resolution: "@playwright/test@npm:1.58.2" + dependencies: + playwright: "npm:1.58.2" + bin: + playwright: cli.js + checksum: 10c0/2164c03ad97c3653ff02e8818a71f3b2bbc344ac07924c9d8e31cd57505d6d37596015a41f51396b3ed8de6840f59143eaa9c21bf65515963da20740119811da + languageName: node + linkType: hard + "@polka/url@npm:^1.0.0-next.24": version: 1.0.0-next.29 resolution: "@polka/url@npm:1.0.0-next.29" @@ -2876,6 +2972,122 @@ __metadata: languageName: node linkType: hard +"@segment/analytics-core@npm:1.7.0": + version: 1.7.0 + resolution: "@segment/analytics-core@npm:1.7.0" + dependencies: + "@lukeed/uuid": "npm:^2.0.0" + "@segment/analytics-generic-utils": "npm:1.2.0" + dset: "npm:^3.1.4" + tslib: "npm:^2.4.1" + checksum: 10c0/5757daa2a16d2b457ce68c50139cccd71063fc75e0eb0e960a9ffbe865b158434301bf9a11658ad1fac5f53fc5fddad36924fea5a8ff787d583a11c521ea8982 + languageName: node + linkType: hard + +"@segment/analytics-generic-utils@npm:1.2.0": + version: 1.2.0 + resolution: "@segment/analytics-generic-utils@npm:1.2.0" + dependencies: + tslib: "npm:^2.4.1" + checksum: 10c0/2f9aebc1027ed2d1afcb02338ed4971f774ce25250c499cac6c1c0020a7376e05b56411d38d36ee1cf0cec49cfdb82e68cd3f5d868b47b9e61b3b668bd27e122 + languageName: node + linkType: hard + +"@segment/analytics-node@npm:2.1.3": + version: 2.1.3 + resolution: "@segment/analytics-node@npm:2.1.3" + dependencies: + "@lukeed/uuid": "npm:^2.0.0" + "@segment/analytics-core": "npm:1.7.0" + "@segment/analytics-generic-utils": "npm:1.2.0" + buffer: "npm:^6.0.3" + jose: "npm:^5.1.0" + node-fetch: "npm:^2.6.7" + tslib: "npm:^2.4.1" + checksum: 10c0/2b39ac7f6ee8eae99ea91b6d0c8632cd7d11e6c97f0127b48704acf5f9cc5bf9c99d8c2f5a2b7bfda6e755346d960afdaf8285a2d31326cc1735233b07f2fab4 + languageName: node + linkType: hard + +"@shikijs/core@npm:3.22.0": + version: 3.22.0 + resolution: "@shikijs/core@npm:3.22.0" + dependencies: + "@shikijs/types": "npm:3.22.0" + "@shikijs/vscode-textmate": "npm:^10.0.2" + "@types/hast": "npm:^3.0.4" + hast-util-to-html: "npm:^9.0.5" + checksum: 10c0/4df376f5fa0afaeaa458ba08db1d8a6ad15cb11c7351edc4cabf7e87453a1b1859ded083fdfe8020ac697a47f9a180fd655783be33d2602c9dbaa4cc950b8e13 + languageName: node + linkType: hard + +"@shikijs/engine-javascript@npm:3.22.0": + version: 3.22.0 + resolution: "@shikijs/engine-javascript@npm:3.22.0" + dependencies: + "@shikijs/types": "npm:3.22.0" + "@shikijs/vscode-textmate": "npm:^10.0.2" + oniguruma-to-es: "npm:^4.3.4" + checksum: 10c0/344dee8fd866743ecb762d3f954414d3dec17e31a6c2c5b778abdff320b8c68ff87ef661a46969c1fb34d84c2f55a696159cde2f64576407419664b9fa8dd97b + languageName: node + linkType: hard + +"@shikijs/engine-oniguruma@npm:3.22.0": + version: 3.22.0 + resolution: "@shikijs/engine-oniguruma@npm:3.22.0" + dependencies: + "@shikijs/types": "npm:3.22.0" + "@shikijs/vscode-textmate": "npm:^10.0.2" + checksum: 10c0/21007cc1f2c714f37a53e163e1d604e6696d310f9e252970a828fe5450e4daa9f1f369b7ceffd1cb9cde348d9ca17e8a4d14180749ac052c74d104cab86834ea + languageName: node + linkType: hard + +"@shikijs/langs@npm:3.22.0": + version: 3.22.0 + resolution: "@shikijs/langs@npm:3.22.0" + dependencies: + "@shikijs/types": "npm:3.22.0" + checksum: 10c0/68bb7b10a4b8d78540d0518b80b4c57e42ac232e84a5f74a91d6335de80af730008cf269b4c3da46a2fd3c4a59cd427ab1e6f5934c884335f9f648f8c0c0a912 + languageName: node + linkType: hard + +"@shikijs/themes@npm:3.22.0": + version: 3.22.0 + resolution: "@shikijs/themes@npm:3.22.0" + dependencies: + "@shikijs/types": "npm:3.22.0" + checksum: 10c0/f662648e346e0133d84dee058f24db6434eb7e511ffe8e34e9632f1168d46b219fbddcca245166f98200b13549fc3256baf8d2a0df7c23e856c9933c0bd444f9 + languageName: node + linkType: hard + +"@shikijs/types@npm:3.22.0": + version: 3.22.0 + resolution: "@shikijs/types@npm:3.22.0" + dependencies: + "@shikijs/vscode-textmate": "npm:^10.0.2" + "@types/hast": "npm:^3.0.4" + checksum: 10c0/68e5bb1827609fc026cba5a88442f41dd948f68fc4f23de0912ef2498944116471b543a5f40ab4ff2c2056399873c755fe717185fd4f8c928002fba934bd3a7b + languageName: node + linkType: hard + +"@shikijs/vscode-textmate@npm:^10.0.2": + version: 10.0.2 + resolution: "@shikijs/vscode-textmate@npm:10.0.2" + checksum: 10c0/36b682d691088ec244de292dc8f91b808f95c89466af421cf84cbab92230f03c8348649c14b3251991b10ce632b0c715e416e992dd5f28ff3221dc2693fd9462 + languageName: node + linkType: hard + +"@shuding/opentype.js@npm:1.4.0-beta.0": + version: 1.4.0-beta.0 + resolution: "@shuding/opentype.js@npm:1.4.0-beta.0" + dependencies: + fflate: "npm:^0.7.3" + string.prototype.codepointat: "npm:^0.2.1" + bin: + ot: bin/ot + checksum: 10c0/4827ce9268c1628b35f55adde7de19ed3656bd8a79f6b6467ea2b089724061056a58fe58ecd477cd65d46998194920c1f93042beeeb3dd29bfb9b4e078fde20e + languageName: node + linkType: hard + "@sindresorhus/is@npm:^7.0.2": version: 7.1.1 resolution: "@sindresorhus/is@npm:7.1.1" @@ -2897,6 +3109,371 @@ __metadata: languageName: node linkType: hard +"@storybook/addon-actions@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-actions@npm:8.5.8" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@types/uuid": "npm:^9.0.1" + dequal: "npm:^2.0.2" + polished: "npm:^4.2.2" + uuid: "npm:^9.0.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/6d83052e7746b79efb72593c29b61d18def896216d0d4559038c7d18cd46403a88bcdd41dfa14405671203a626d37221fd91f8a45316fa6c2073e5e1de9ca9d5 + languageName: node + linkType: hard + +"@storybook/addon-backgrounds@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-backgrounds@npm:8.5.8" + dependencies: + "@storybook/global": "npm:^5.0.0" + memoizerific: "npm:^1.11.3" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/7f852c73a4116755097a0fefd848a74d9907c4ce88bbcf18c1db8aed0254943c028626c440c75353f3102931f6f34795615a2eda3f5fd1a2bb620a7cff9fb035 + languageName: node + linkType: hard + +"@storybook/addon-controls@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-controls@npm:8.5.8" + dependencies: + "@storybook/global": "npm:^5.0.0" + dequal: "npm:^2.0.2" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/0d6a61148067d5015029322cb2beedc635cf9e1342357e1eda6b1b44abb9af44709772e29d144e280f7f91d3251c53abe43af711f552a08e52d2a47c9f8f2aea + languageName: node + linkType: hard + +"@storybook/addon-docs@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-docs@npm:8.5.8" + dependencies: + "@mdx-js/react": "npm:^3.0.0" + "@storybook/blocks": "npm:8.5.8" + "@storybook/csf-plugin": "npm:8.5.8" + "@storybook/react-dom-shim": "npm:8.5.8" + react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/f480e265a450f2de6e379c480e1f470bcdd17869721d57b3e96843b365f40b9ef2e38d7c6103ce976e575bb34a5400d39758b4a2ed5846a779f2a53bdd9184ea + languageName: node + linkType: hard + +"@storybook/addon-essentials@npm:~8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-essentials@npm:8.5.8" + dependencies: + "@storybook/addon-actions": "npm:8.5.8" + "@storybook/addon-backgrounds": "npm:8.5.8" + "@storybook/addon-controls": "npm:8.5.8" + "@storybook/addon-docs": "npm:8.5.8" + "@storybook/addon-highlight": "npm:8.5.8" + "@storybook/addon-measure": "npm:8.5.8" + "@storybook/addon-outline": "npm:8.5.8" + "@storybook/addon-toolbars": "npm:8.5.8" + "@storybook/addon-viewport": "npm:8.5.8" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/9dd3a3d79cce807a615a238e45f62f1519308a777730f199468b859337763502a442c555234d6c54535d8aea4aee8f4561840338bd310384f3340d8499592a5d + languageName: node + linkType: hard + +"@storybook/addon-highlight@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-highlight@npm:8.5.8" + dependencies: + "@storybook/global": "npm:^5.0.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/80c4fd899cf0c11e75994617713cc69e156db64d46ea61b855356b7a2766925d2a8db470e27544664932ce96875c85e84f52d7b9e5f3d6a3e8e4c8cdb6ba393b + languageName: node + linkType: hard + +"@storybook/addon-measure@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-measure@npm:8.5.8" + dependencies: + "@storybook/global": "npm:^5.0.0" + tiny-invariant: "npm:^1.3.1" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/1de801b44b09402249dea38f463bc6a3ee49aeaaa1329ea2581da175b9a961316f3e01ce70311d277c99975ffe2aa19fbd39ab1565564e6569ac156542aab08f + languageName: node + linkType: hard + +"@storybook/addon-outline@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-outline@npm:8.5.8" + dependencies: + "@storybook/global": "npm:^5.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/15b0251ad2ca46437a52d7ace4bdcaae068c40d3f3f56046637bb106336a64635eb59883c7561f71465f7ece5b8061f0a5ae22904324e55a6f0e65596220c659 + languageName: node + linkType: hard + +"@storybook/addon-toolbars@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-toolbars@npm:8.5.8" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/961a2bf7c415b91dc0aa1703369d6350481ecc249a972a20282d275466ed92af29615516e198dd8ef001833febe36991640659cc6d852f25cf4e31fb955aac1d + languageName: node + linkType: hard + +"@storybook/addon-viewport@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/addon-viewport@npm:8.5.8" + dependencies: + memoizerific: "npm:^1.11.3" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/9c9fa6332e81a6e83e75468d5365b8cd5fcd9e40abeca138f8c0e3abefc1a56addc92f97bd79e317b366db0d87d80c29c775a05fc810f7fa7b387044784b4737 + languageName: node + linkType: hard + +"@storybook/blocks@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/blocks@npm:8.5.8" + dependencies: + "@storybook/csf": "npm:0.1.12" + "@storybook/icons": "npm:^1.2.12" + ts-dedent: "npm:^2.0.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^8.5.8 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: 10c0/842c8d239c34dfee2d9e6fd7eb68a9b1fb7e5656617271e1fef17064973416b13d870636bc11a0516dae490dd91774ca15043bd66740d5fb9886b9efb01b8043 + languageName: node + linkType: hard + +"@storybook/builder-webpack5@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/builder-webpack5@npm:8.5.8" + dependencies: + "@storybook/core-webpack": "npm:8.5.8" + "@types/semver": "npm:^7.3.4" + browser-assert: "npm:^1.2.1" + case-sensitive-paths-webpack-plugin: "npm:^2.4.0" + cjs-module-lexer: "npm:^1.2.3" + constants-browserify: "npm:^1.0.0" + css-loader: "npm:^6.7.1" + es-module-lexer: "npm:^1.5.0" + fork-ts-checker-webpack-plugin: "npm:^8.0.0" + html-webpack-plugin: "npm:^5.5.0" + magic-string: "npm:^0.30.5" + path-browserify: "npm:^1.0.1" + process: "npm:^0.11.10" + semver: "npm:^7.3.7" + style-loader: "npm:^3.3.1" + terser-webpack-plugin: "npm:^5.3.1" + ts-dedent: "npm:^2.0.0" + url: "npm:^0.11.0" + util: "npm:^0.12.4" + util-deprecate: "npm:^1.0.2" + webpack: "npm:5" + webpack-dev-middleware: "npm:^6.1.2" + webpack-hot-middleware: "npm:^2.25.1" + webpack-virtual-modules: "npm:^0.6.0" + peerDependencies: + storybook: ^8.5.8 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/8c013e9f62409f169c212cca69bc0193a636a22a5280f6d30751b5561ec726c1ee7521245693f5e6ceeec16f31794560fc4cbefef33c227fce112187d4d489c6 + languageName: node + linkType: hard + +"@storybook/components@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/components@npm:8.5.8" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10c0/dde5ac41f60a4561095a15fb8de99344b26f8887a93fd4947ea7f378c2be71cc0421a9a46be57c9521e5e2fc6c42d222e8138ca2b3390a4eb7c1b7fa299fd0d6 + languageName: node + linkType: hard + +"@storybook/core-webpack@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/core-webpack@npm:8.5.8" + dependencies: + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/9fdecb169595f125ab797ea8638c077e10e7514d6afaafc2de1c5d2e3520b42e21beb6830af0cc612dfc44d2be9afd4c497e8863cf5b09d41a371d9978a3fcea + languageName: node + linkType: hard + +"@storybook/core@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/core@npm:8.5.8" + dependencies: + "@storybook/csf": "npm:0.1.12" + better-opn: "npm:^3.0.2" + browser-assert: "npm:^1.2.1" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" + esbuild-register: "npm:^3.5.0" + jsdoc-type-pratt-parser: "npm:^4.0.0" + process: "npm:^0.11.10" + recast: "npm:^0.23.5" + semver: "npm:^7.6.2" + util: "npm:^0.12.5" + ws: "npm:^8.2.3" + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + checksum: 10c0/bf883e32827668e50dd90bb52ee8f2b419b1beaba3213695ec21afe39f6b880feb107c96768021388222519c4bab8870bba5971415f68a426912a3cb7f5e3d80 + languageName: node + linkType: hard + +"@storybook/csf-plugin@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/csf-plugin@npm:8.5.8" + dependencies: + unplugin: "npm:^1.3.1" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/27d51f0ba97971826bbf3276e568427a1c39c8a7b6ea308ac833e797c1e39a6b3171231513c6ff9880c4677197cb2b18b33e69fce0cfcf294e74e5b1bee6d7c3 + languageName: node + linkType: hard + +"@storybook/csf@npm:0.1.12": + version: 0.1.12 + resolution: "@storybook/csf@npm:0.1.12" + dependencies: + type-fest: "npm:^2.19.0" + checksum: 10c0/3d96a976ada67eb683279338d1eb6aa730b228107d4c4f6616ea7b94061899c1fdc11957a756e7bc0708d18cb39af0010c865d124efd84559cd82dcb2d8bc959 + languageName: node + linkType: hard + +"@storybook/csf@npm:^0.1.0": + version: 0.1.13 + resolution: "@storybook/csf@npm:0.1.13" + dependencies: + type-fest: "npm:^2.19.0" + checksum: 10c0/7c57b531ac95ca45239f498d419483d675e58cd8d549e0bac623519cc1ef4f3c9c6b75ec3873aa51cc2872728012db5dd5e1f2c2d8085014241eb4b896480996 + languageName: node + linkType: hard + +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: 10c0/8f1b61dcdd3a89584540896e659af2ecc700bc740c16909a7be24ac19127ea213324de144a141f7caf8affaed017d064fea0618d453afbe027cf60f54b4a6d0b + languageName: node + linkType: hard + +"@storybook/icons@npm:^1.2.12": + version: 1.6.0 + resolution: "@storybook/icons@npm:1.6.0" + 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: 10c0/bbec9201a78a730195f9cf377b15856dc414a54d04e30d16c379d062425cc617bfd0d6586ba1716012cfbdab461f0c9693a6a52920f9bd09c7b4291fb116f59c + languageName: node + linkType: hard + +"@storybook/manager-api@npm:8.5.8, @storybook/manager-api@npm:~8.5.8": + version: 8.5.8 + resolution: "@storybook/manager-api@npm:8.5.8" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10c0/4045257c2169cef88508cef8087d177faea481fa6bf403ea92d531f6c27291c06107d786bf0bd7bb380631f86a2d87819e60f84598bd7eefdc6c12c85e97b4ab + languageName: node + linkType: hard + +"@storybook/preset-server-webpack@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/preset-server-webpack@npm:8.5.8" + dependencies: + "@storybook/core-webpack": "npm:8.5.8" + "@storybook/global": "npm:^5.0.0" + "@storybook/server": "npm:8.5.8" + safe-identifier: "npm:^0.4.1" + ts-dedent: "npm:^2.0.0" + yaml-loader: "npm:^0.8.0" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/b44683d167dfead5e583746ae802ce94b6b72b1ed133ad63035231885f5457de91f5a85158fc349e25d74f2cf610a8c491b23e49a5b8e8e95e4ef57fa474f14d + languageName: node + linkType: hard + +"@storybook/preview-api@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/preview-api@npm:8.5.8" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10c0/278dff2940ba93c366a2a83a347f8e17dc80d087e0aa44eb868e4fe95f76a23e12d740867f3fd8e65142c47a73e5a66a628847179ce10b5ae22c4b1645910c2c + languageName: node + linkType: hard + +"@storybook/react-dom-shim@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/react-dom-shim@npm:8.5.8" + 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 + storybook: ^8.5.8 + checksum: 10c0/0d6a7f24bb0ae168dfb7f984e2defd16e15d65dd07b1f9c4251c23e1abe88c11fa58d716125c536199e689266eca371cd054f5514c952ab76863946406fbeedd + languageName: node + linkType: hard + +"@storybook/server-webpack5@npm:~8.5.8": + version: 8.5.8 + resolution: "@storybook/server-webpack5@npm:8.5.8" + dependencies: + "@storybook/builder-webpack5": "npm:8.5.8" + "@storybook/preset-server-webpack": "npm:8.5.8" + "@storybook/server": "npm:8.5.8" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/c0414165812234fa5f5c847f6c6a759412b75c5fbb12eaeb3351fea14e15e2bbf1e2620ca1bb85baa2b2afadd83c42af68b9f10224bbfa2359781c9b93b2340c + languageName: node + linkType: hard + +"@storybook/server@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/server@npm:8.5.8" + dependencies: + "@storybook/components": "npm:8.5.8" + "@storybook/csf": "npm:0.1.12" + "@storybook/global": "npm:^5.0.0" + "@storybook/manager-api": "npm:8.5.8" + "@storybook/preview-api": "npm:8.5.8" + "@storybook/theming": "npm:8.5.8" + ts-dedent: "npm:^2.0.0" + yaml: "npm:^2.3.1" + peerDependencies: + storybook: ^8.5.8 + checksum: 10c0/7f5ebbc0c557f36a925ee82e453c8af7fd9acaf09ccec86b464ebacad76176bf863e7eab5bc76dc4c1152bcfa42920573b8ee24c9a30973db59d04d4ada15512 + languageName: node + linkType: hard + +"@storybook/theming@npm:8.5.8": + version: 8.5.8 + resolution: "@storybook/theming@npm:8.5.8" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10c0/6a3083fb2f3166a86fd177a24974149cea71d31e44cac1730c5c17b04f22cb17de41f65ead2984adb26a272fdf7bcab6d6ebda791c2ce5a21671e90a07a7d8a9 + languageName: node + linkType: hard + "@swc/helpers@npm:^0.5.0": version: 0.5.17 resolution: "@swc/helpers@npm:0.5.17" @@ -3185,6 +3762,26 @@ __metadata: languageName: node linkType: hard +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "npm:*" + "@types/estree": "npm:*" + checksum: 10c0/a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc + languageName: node + linkType: hard + +"@types/eslint@npm:*": + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" + dependencies: + "@types/estree": "npm:*" + "@types/json-schema": "npm:*" + checksum: 10c0/69ba24fee600d1e4c5abe0df086c1a4d798abf13792d8cfab912d76817fe1a894359a1518557d21237fbaf6eda93c5ab9309143dee4c59ef54336d1b3570420e + languageName: node + linkType: hard + "@types/estree-jsx@npm:^1.0.0": version: 1.0.5 resolution: "@types/estree-jsx@npm:1.0.5" @@ -3194,14 +3791,14 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0": +"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.8": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 languageName: node linkType: hard -"@types/hast@npm:^3.0.0": +"@types/hast@npm:^3.0.0, @types/hast@npm:^3.0.4": version: 3.0.4 resolution: "@types/hast@npm:3.0.4" dependencies: @@ -3217,6 +3814,13 @@ __metadata: languageName: node linkType: hard +"@types/html-minifier-terser@npm:^6.0.0": + version: 6.1.0 + resolution: "@types/html-minifier-terser@npm:6.1.0" + checksum: 10c0/a62fb8588e2f3818d82a2d7b953ad60a4a52fd767ae04671de1c16f5788bd72f1ed3a6109ed63fd190c06a37d919e3c39d8adbc1793a005def76c15a3f5f5dab + languageName: node + linkType: hard + "@types/is-empty@npm:^1.0.0": version: 1.2.3 resolution: "@types/is-empty@npm:1.2.3" @@ -3224,6 +3828,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + languageName: node + linkType: hard + "@types/mdast@npm:^4.0.0": version: 4.0.4 resolution: "@types/mdast@npm:4.0.4" @@ -3265,8 +3876,15 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^19.2.2": - version: 19.2.7 +"@types/parse-json@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/parse-json@npm:4.0.2" + checksum: 10c0/b1b863ac34a2c2172fbe0807a1ec4d5cb684e48d422d15ec95980b81475fac4fdb3768a8b13eef39130203a7c04340fc167bae057c7ebcafd7dec9fe6c36aeb1 + languageName: node + linkType: hard + +"@types/react@npm:^19.2.2": + version: 19.2.7 resolution: "@types/react@npm:19.2.7" dependencies: csstype: "npm:^3.2.2" @@ -3274,6 +3892,13 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.3.4": + version: 7.7.1 + resolution: "@types/semver@npm:7.7.1" + checksum: 10c0/c938aef3bf79a73f0f3f6037c16e2e759ff40c54122ddf0b2583703393d8d3127130823facb880e694caa324eb6845628186aac1997ee8b31dc2d18fafe26268 + languageName: node + linkType: hard + "@types/supports-color@npm:^8.0.0": version: 8.1.3 resolution: "@types/supports-color@npm:8.1.3" @@ -3309,6 +3934,13 @@ __metadata: languageName: node linkType: hard +"@types/uuid@npm:^9.0.1": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: 10c0/b411b93054cb1d4361919579ef3508a1f12bf15b5fdd97337d3d351bece6c921b52b6daeef89b62340fd73fd60da407878432a1af777f40648cbe53a01723489 + languageName: node + linkType: hard + "@ungap/structured-clone@npm:^1.0.0": version: 1.3.0 resolution: "@ungap/structured-clone@npm:1.3.0" @@ -3454,6 +4086,171 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/ast@npm:1.14.1" + dependencies: + "@webassemblyjs/helper-numbers": "npm:1.13.2" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + checksum: 10c0/67a59be8ed50ddd33fbb2e09daa5193ac215bf7f40a9371be9a0d9797a114d0d1196316d2f3943efdb923a3d809175e1563a3cb80c814fb8edccd1e77494972b + languageName: node + linkType: hard + +"@webassemblyjs/floating-point-hex-parser@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2" + checksum: 10c0/0e88bdb8b50507d9938be64df0867f00396b55eba9df7d3546eb5dc0ca64d62e06f8d881ec4a6153f2127d0f4c11d102b6e7d17aec2f26bb5ff95a5e60652412 + languageName: node + linkType: hard + +"@webassemblyjs/helper-api-error@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-api-error@npm:1.13.2" + checksum: 10c0/31be497f996ed30aae4c08cac3cce50c8dcd5b29660383c0155fce1753804fc55d47fcba74e10141c7dd2899033164e117b3bcfcda23a6b043e4ded4f1003dfb + languageName: node + linkType: hard + +"@webassemblyjs/helper-buffer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.14.1" + checksum: 10c0/0d54105dc373c0fe6287f1091e41e3a02e36cdc05e8cf8533cdc16c59ff05a646355415893449d3768cda588af451c274f13263300a251dc11a575bc4c9bd210 + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-numbers@npm:1.13.2" + dependencies: + "@webassemblyjs/floating-point-hex-parser": "npm:1.13.2" + "@webassemblyjs/helper-api-error": "npm:1.13.2" + "@xtuc/long": "npm:4.2.2" + checksum: 10c0/9c46852f31b234a8fb5a5a9d3f027bc542392a0d4de32f1a9c0075d5e8684aa073cb5929b56df565500b3f9cc0a2ab983b650314295b9bf208d1a1651bfc825a + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2" + checksum: 10c0/c4355d14f369b30cf3cbdd3acfafc7d0488e086be6d578e3c9780bd1b512932352246be96e034e2a7fcfba4f540ec813352f312bfcbbfe5bcfbf694f82ccc682 + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-section@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + checksum: 10c0/1f9b33731c3c6dbac3a9c483269562fa00d1b6a4e7133217f40e83e975e636fd0f8736e53abd9a47b06b66082ecc976c7384391ab0a68e12d509ea4e4b948d64 + languageName: node + linkType: hard + +"@webassemblyjs/ieee754@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/ieee754@npm:1.13.2" + dependencies: + "@xtuc/ieee754": "npm:^1.2.0" + checksum: 10c0/2e732ca78c6fbae3c9b112f4915d85caecdab285c0b337954b180460290ccd0fb00d2b1dc4bb69df3504abead5191e0d28d0d17dfd6c9d2f30acac8c4961c8a7 + languageName: node + linkType: hard + +"@webassemblyjs/leb128@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/leb128@npm:1.13.2" + dependencies: + "@xtuc/long": "npm:4.2.2" + checksum: 10c0/dad5ef9e383c8ab523ce432dfd80098384bf01c45f70eb179d594f85ce5db2f80fa8c9cba03adafd85684e6d6310f0d3969a882538975989919329ac4c984659 + languageName: node + linkType: hard + +"@webassemblyjs/utf8@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/utf8@npm:1.13.2" + checksum: 10c0/d3fac9130b0e3e5a1a7f2886124a278e9323827c87a2b971e6d0da22a2ba1278ac9f66a4f2e363ecd9fac8da42e6941b22df061a119e5c0335f81006de9ee799 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/helper-wasm-section": "npm:1.14.1" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + "@webassemblyjs/wasm-opt": "npm:1.14.1" + "@webassemblyjs/wasm-parser": "npm:1.14.1" + "@webassemblyjs/wast-printer": "npm:1.14.1" + checksum: 10c0/5ac4781086a2ca4b320bdbfd965a209655fe8a208ca38d89197148f8597e587c9a2c94fb6bd6f1a7dbd4527c49c6844fcdc2af981f8d793a97bf63a016aa86d2 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-gen@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/ieee754": "npm:1.13.2" + "@webassemblyjs/leb128": "npm:1.13.2" + "@webassemblyjs/utf8": "npm:1.13.2" + checksum: 10c0/d678810d7f3f8fecb2e2bdadfb9afad2ec1d2bc79f59e4711ab49c81cec578371e22732d4966f59067abe5fba8e9c54923b57060a729d28d408e608beef67b10 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-opt@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + "@webassemblyjs/wasm-parser": "npm:1.14.1" + checksum: 10c0/515bfb15277ee99ba6b11d2232ddbf22aed32aad6d0956fe8a0a0a004a1b5a3a277a71d9a3a38365d0538ac40d1b7b7243b1a244ad6cd6dece1c1bb2eb5de7ee + languageName: node + linkType: hard + +"@webassemblyjs/wasm-parser@npm:1.14.1, @webassemblyjs/wasm-parser@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-api-error": "npm:1.13.2" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/ieee754": "npm:1.13.2" + "@webassemblyjs/leb128": "npm:1.13.2" + "@webassemblyjs/utf8": "npm:1.13.2" + checksum: 10c0/95427b9e5addbd0f647939bd28e3e06b8deefdbdadcf892385b5edc70091bf9b92fa5faac3fce8333554437c5d85835afef8c8a7d9d27ab6ba01ffab954db8c6 + languageName: node + linkType: hard + +"@webassemblyjs/wast-printer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wast-printer@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@xtuc/long": "npm:4.2.2" + checksum: 10c0/8d7768608996a052545251e896eac079c98e0401842af8dd4de78fba8d90bd505efb6c537e909cd6dae96e09db3fa2e765a6f26492553a675da56e2db51f9d24 + languageName: node + linkType: hard + +"@xtuc/ieee754@npm:^1.2.0": + version: 1.2.0 + resolution: "@xtuc/ieee754@npm:1.2.0" + checksum: 10c0/a8565d29d135039bd99ae4b2220d3e167d22cf53f867e491ed479b3f84f895742d0097f935b19aab90265a23d5d46711e4204f14c479ae3637fbf06c4666882f + languageName: node + linkType: hard + +"@xtuc/long@npm:4.2.2": + version: 4.2.2 + resolution: "@xtuc/long@npm:4.2.2" + checksum: 10c0/8582cbc69c79ad2d31568c412129bf23d2b1210a1dfb60c82d5a1df93334da4ee51f3057051658569e2c196d8dc33bc05ae6b974a711d0d16e801e1d0647ccd1 + languageName: node + linkType: hard + "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -3505,6 +4302,15 @@ __metadata: languageName: node linkType: hard +"acorn-import-phases@npm:^1.0.3": + version: 1.0.4 + resolution: "acorn-import-phases@npm:1.0.4" + peerDependencies: + acorn: ^8.14.0 + checksum: 10c0/338eb46fc1aed5544f628344cb9af189450b401d152ceadbf1f5746901a5d923016cd0e7740d5606062d374fdf6941c29bb515d2bd133c4f4242d5d4cd73a3c7 + languageName: node + linkType: hard + "acorn-jsx@npm:^5.0.0": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -3523,6 +4329,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.14.0, acorn@npm:^8.15.0": + version: 8.16.0 + resolution: "acorn@npm:8.16.0" + bin: + acorn: bin/acorn + checksum: 10c0/c9c52697227661b68d0debaf972222d4f622aa06b185824164e153438afa7b08273432ca43ea792cadb24dada1d46f6f6bb1ef8de9956979288cc1b96bf9914e + languageName: node + linkType: hard + "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": version: 7.1.4 resolution: "agent-base@npm:7.1.4" @@ -3544,6 +4359,20 @@ __metadata: languageName: node linkType: hard +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: "npm:^8.0.0" + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10c0/e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662 + languageName: node + linkType: hard + "ajv-formats@npm:^3.0.1": version: 3.0.1 resolution: "ajv-formats@npm:3.0.1" @@ -3558,6 +4387,38 @@ __metadata: languageName: node linkType: hard +"ajv-keywords@npm:^3.5.2": + version: 3.5.2 + resolution: "ajv-keywords@npm:3.5.2" + peerDependencies: + ajv: ^6.9.1 + checksum: 10c0/0c57a47cbd656e8cdfd99d7c2264de5868918ffa207c8d7a72a7f63379d4333254b2ba03d69e3c035e996a3fd3eb6d5725d7a1597cca10694296e32510546360 + languageName: node + linkType: hard + +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + peerDependencies: + ajv: ^8.8.2 + checksum: 10c0/18bec51f0171b83123ba1d8883c126e60c6f420cef885250898bf77a8d3e65e3bfb9e8564f497e30bdbe762a83e0d144a36931328616a973ee669dc74d4a9590 + languageName: node + linkType: hard + +"ajv@npm:^6.12.5": + version: 6.14.0 + resolution: "ajv@npm:6.14.0" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10c0/a2bc39b0555dc9802c899f86990eb8eed6e366cddbf65be43d5aa7e4f3c4e1a199d5460fd7ca4fb3d864000dbbc049253b72faa83b3b30e641ca52cb29a68c22 + languageName: node + linkType: hard + "ajv@npm:^8.0.0, ajv@npm:^8.12.0": version: 8.17.1 resolution: "ajv@npm:8.17.1" @@ -3570,6 +4431,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.9.0": + version: 8.18.0 + resolution: "ajv@npm:8.18.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10c0/e7517c426173513a07391be951879932bdf3348feaebd2199f5b901c20f99d60db8cd1591502d4d551dc82f594e82a05c4fe1c70139b15b8937f7afeaed9532f + languageName: node + linkType: hard + "algoliasearch@npm:^5.28.0": version: 5.45.0 resolution: "algoliasearch@npm:5.45.0" @@ -3601,6 +4474,15 @@ __metadata: languageName: node linkType: hard +"ansi-html-community@npm:0.0.8": + version: 0.0.8 + resolution: "ansi-html-community@npm:0.0.8" + bin: + ansi-html: bin/ansi-html + checksum: 10c0/45d3a6f0b4f10b04fdd44bef62972e2470bfd917bf00439471fa7473d92d7cbe31369c73db863cc45dda115cb42527f39e232e9256115534b8ee5806b0caeed4 + languageName: node + linkType: hard + "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -3615,7 +4497,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^4.0.0": +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: @@ -3696,6 +4578,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:^0.16.1": + version: 0.16.1 + resolution: "ast-types@npm:0.16.1" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10c0/abcc49e42eb921a7ebc013d5bec1154651fb6dbc3f497541d488859e681256901b2990b954d530ba0da4d0851271d484f7057d5eff5e07cb73e8b10909f711bf + languageName: node + linkType: hard + "astring@npm:^1.8.0": version: 1.9.0 resolution: "astring@npm:1.9.0" @@ -3767,6 +4658,13 @@ __metadata: languageName: node linkType: hard +"axe-core@npm:~4.11.1": + version: 4.11.1 + resolution: "axe-core@npm:4.11.1" + checksum: 10c0/1e6997454b61c7c9a4d740f395952835dcf87f2c04fd81577217d68634d197d602c224f9e8f17b22815db4c117a2519980cfc8911fc0027c54a6d8ebca47c6a7 + languageName: node + linkType: hard + "babel-dead-code-elimination@npm:^1.0.6": version: 1.0.10 resolution: "babel-dead-code-elimination@npm:1.0.10" @@ -3793,6 +4691,13 @@ __metadata: languageName: node linkType: hard +"base64-js@npm:0.0.8": + version: 0.0.8 + resolution: "base64-js@npm:0.0.8" + checksum: 10c0/60f02a9fdbbbb251c0a1064834d4062f5a3c4237edd9f0313282d75980a80ce303316795f7a80c8e240e524169644d88445ec0697b03f81ab9f4458090979375 + languageName: node + linkType: hard + "base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -3809,6 +4714,15 @@ __metadata: languageName: node linkType: hard +"baseline-browser-mapping@npm:^2.9.0": + version: 2.10.0 + resolution: "baseline-browser-mapping@npm:2.10.0" + bin: + baseline-browser-mapping: dist/cli.cjs + checksum: 10c0/da9c3ec0fcd7f325226a47d2142794d41706b6e0a405718a2c15410bbdb72aacadd65738bedef558c6f1b106ed19458cb25b06f63b66df2c284799905dbbd003 + languageName: node + linkType: hard + "batch@npm:0.6.1": version: 0.6.1 resolution: "batch@npm:0.6.1" @@ -3816,6 +4730,22 @@ __metadata: languageName: node linkType: hard +"better-opn@npm:^3.0.2": + version: 3.0.2 + resolution: "better-opn@npm:3.0.2" + dependencies: + open: "npm:^8.0.4" + checksum: 10c0/911ef25d44da75aabfd2444ce7a4294a8000ebcac73068c04a60298b0f7c7506b60421aa4cd02ac82502fb42baaff7e4892234b51e6923eded44c5a11185f2f5 + languageName: node + linkType: hard + +"big.js@npm:^5.2.2": + version: 5.2.2 + resolution: "big.js@npm:5.2.2" + checksum: 10c0/230520f1ff920b2d2ce3e372d77a33faa4fa60d802fe01ca4ffbc321ee06023fe9a741ac02793ee778040a16b7e497f7d60c504d1c402b8fdab6f03bb785a25f + languageName: node + linkType: hard + "binary-extensions@npm:^2.0.0": version: 2.3.0 resolution: "binary-extensions@npm:2.3.0" @@ -3850,6 +4780,13 @@ __metadata: languageName: node linkType: hard +"boolbase@npm:^1.0.0": + version: 1.0.0 + resolution: "boolbase@npm:1.0.0" + checksum: 10c0/e4b53deb4f2b85c52be0e21a273f2045c7b6a6ea002b0e139c744cb6f95e9ec044439a52883b0d74dedd1ff3da55ed140cfdddfed7fb0cccbed373de5dce1bcf + languageName: node + linkType: hard + "boxen@npm:8.0.1": version: 8.0.1 resolution: "boxen@npm:8.0.1" @@ -3894,6 +4831,13 @@ __metadata: languageName: node linkType: hard +"browser-assert@npm:^1.2.1": + version: 1.2.1 + resolution: "browser-assert@npm:1.2.1" + checksum: 10c0/902abf999f92c9c951fdb6d7352c09eea9a84706258699655f7e7906e42daa06a1ae286398a755872740e05a6a71c43c5d1a0c0431d67a8cdb66e5d859a3fc0c + languageName: node + linkType: hard + "browserslist@npm:^4.24.0": version: 4.28.0 resolution: "browserslist@npm:4.28.0" @@ -3909,6 +4853,21 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.28.1": + version: 4.28.1 + resolution: "browserslist@npm:4.28.1" + dependencies: + baseline-browser-mapping: "npm:^2.9.0" + caniuse-lite: "npm:^1.0.30001759" + electron-to-chromium: "npm:^1.5.263" + node-releases: "npm:^2.0.27" + update-browserslist-db: "npm:^1.2.0" + bin: + browserslist: cli.js + checksum: 10c0/545a5fa9d7234e3777a7177ec1e9134bb2ba60a69e6b95683f6982b1473aad347c77c1264ccf2ac5dea609a9731fbfbda6b85782bdca70f80f86e28a402504bd + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -4000,6 +4959,23 @@ __metadata: languageName: node linkType: hard +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 + languageName: node + linkType: hard + +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: "npm:^3.1.2" + tslib: "npm:^2.0.3" + checksum: 10c0/bf9eefaee1f20edbed2e9a442a226793bc72336e2b99e5e48c6b7252b6f70b080fc46d8246ab91939e2af91c36cdd422e0af35161e58dd089590f302f8f64c8a + languageName: node + linkType: hard + "camelcase@npm:^8.0.0": version: 8.0.0 resolution: "camelcase@npm:8.0.0" @@ -4007,6 +4983,13 @@ __metadata: languageName: node linkType: hard +"camelize@npm:^1.0.0": + version: 1.0.1 + resolution: "camelize@npm:1.0.1" + checksum: 10c0/4c9ac55efd356d37ac483bad3093758236ab686192751d1c9daa43188cc5a07b09bd431eb7458a4efd9ca22424bba23253e7b353feb35d7c749ba040de2385fb + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001754": version: 1.0.30001757 resolution: "caniuse-lite@npm:1.0.30001757" @@ -4014,6 +4997,20 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001759": + version: 1.0.30001774 + resolution: "caniuse-lite@npm:1.0.30001774" + checksum: 10c0/cc6a340a5421b9a67d8fa80889065ee27b2839ad62993571dded5296e18f02bbf685ce7094e93fe908cddc9fefdfad35d6c010b724cc3d22a6479b0d0b679f8c + languageName: node + linkType: hard + +"case-sensitive-paths-webpack-plugin@npm:^2.4.0": + version: 2.4.0 + resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" + checksum: 10c0/310dab619b661a7fa44ed773870be6d6d7373faff6953ad92720f9553e2579e46dda5b9a79eae6d25ff3733cc15aa466b96e5811af16213f23c115aa220b4ab4 + languageName: node + linkType: hard + "ccount@npm:^2.0.0": version: 2.0.1 resolution: "ccount@npm:2.0.1" @@ -4028,6 +5025,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + "chalk@npm:^5.0.0, chalk@npm:^5.3.0": version: 5.6.2 resolution: "chalk@npm:5.6.2" @@ -4063,7 +5070,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.0.0": +"chokidar@npm:^3.0.0, chokidar@npm:^3.5.3": version: 3.6.0 resolution: "chokidar@npm:3.6.0" dependencies: @@ -4098,6 +5105,13 @@ __metadata: languageName: node linkType: hard +"chrome-trace-event@npm:^1.0.2": + version: 1.0.4 + resolution: "chrome-trace-event@npm:1.0.4" + checksum: 10c0/3058da7a5f4934b87cf6a90ef5fb68ebc5f7d06f143ed5a4650208e5d7acae47bc03ec844b29fbf5ba7e46e8daa6acecc878f7983a4f4bb7271593da91e61ff5 + languageName: node + linkType: hard + "ci-info@npm:^4.0.0": version: 4.3.1 resolution: "ci-info@npm:4.3.1" @@ -4105,6 +5119,22 @@ __metadata: languageName: node linkType: hard +"cjs-module-lexer@npm:^1.2.3": + version: 1.4.3 + resolution: "cjs-module-lexer@npm:1.4.3" + checksum: 10c0/076b3af85adc4d65dbdab1b5b240fe5b45d44fcf0ef9d429044dd94d19be5589376805c44fb2d4b3e684e5fe6a9b7cf3e426476a6507c45283c5fc6ff95240be + languageName: node + linkType: hard + +"clean-css@npm:^5.2.2": + version: 5.3.3 + resolution: "clean-css@npm:5.3.3" + dependencies: + source-map: "npm:~0.6.0" + checksum: 10c0/381de7523e23f3762eb180e327dcc0cedafaf8cb1cd8c26b7cc1fc56e0829a92e734729c4f955394d65ed72fb62f82d8baf78af34b33b8a7d41ebad2accdd6fb + languageName: node + linkType: hard + "cli-boxes@npm:^3.0.0": version: 3.0.0 resolution: "cli-boxes@npm:3.0.0" @@ -4171,14 +5201,14 @@ __metadata: languageName: node linkType: hard -"color-name@npm:~1.1.4": +"color-name@npm:^1.1.4, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 languageName: node linkType: hard -"colorette@npm:^2.0.7": +"colorette@npm:^2.0.10, colorette@npm:^2.0.7": version: 2.0.20 resolution: "colorette@npm:2.0.20" checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 @@ -4199,13 +5229,20 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.15.1": +"commander@npm:^2.15.1, commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 languageName: node linkType: hard +"commander@npm:^8.3.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 10c0/8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060 + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -4225,6 +5262,13 @@ __metadata: languageName: node linkType: hard +"constants-browserify@npm:^1.0.0": + version: 1.0.0 + resolution: "constants-browserify@npm:1.0.0" + checksum: 10c0/ab49b1d59a433ed77c964d90d19e08b2f77213fb823da4729c0baead55e3c597f8f97ebccfdfc47bd896d43854a117d114c849a6f659d9986420e97da0f83ac5 + languageName: node + linkType: hard + "content-disposition@npm:0.5.4, content-disposition@npm:^0.5.4": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" @@ -4283,6 +5327,19 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^7.0.1": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": "npm:^4.0.0" + import-fresh: "npm:^3.2.1" + parse-json: "npm:^5.0.0" + path-type: "npm:^4.0.0" + yaml: "npm:^1.10.0" + checksum: 10c0/b923ff6af581638128e5f074a5450ba12c0300b71302398ea38dbeabd33bbcaa0245ca9adbedfcf284a07da50f99ede5658c80bb3e39e2ce770a99d28a21ef03 + languageName: node + linkType: hard + "crelt@npm:^1.0.5, crelt@npm:^1.0.6": version: 1.0.6 resolution: "crelt@npm:1.0.6" @@ -4301,6 +5358,98 @@ __metadata: languageName: node linkType: hard +"css-background-parser@npm:^0.1.0": + version: 0.1.0 + resolution: "css-background-parser@npm:0.1.0" + checksum: 10c0/1065f975b766db95a81599e4e0559abb6c2ddbeb57eeff0de92851cd7e614a832185e81acb92115279c2bd437e8095d7b3cd07d0e1178ddc85f46418cf40a53f + languageName: node + linkType: hard + +"css-box-shadow@npm:1.0.0-3": + version: 1.0.0-3 + resolution: "css-box-shadow@npm:1.0.0-3" + checksum: 10c0/320e90230d66cad98b4a9858b5704765f7eecfe4e7dc8198903634653384ba182fbe2d2ce689ed574812d4107c9f7f0ec68b3d58074bd9450dc5d5c81105c170 + languageName: node + linkType: hard + +"css-color-keywords@npm:^1.0.0": + version: 1.0.0 + resolution: "css-color-keywords@npm:1.0.0" + checksum: 10c0/af205a86c68e0051846ed91eb3e30b4517e1904aac040013ff1d742019b3f9369ba5658ba40901dbbc121186fc4bf0e75a814321cc3e3182fbb2feb81c6d9cb7 + languageName: node + linkType: hard + +"css-gradient-parser@npm:^0.0.17": + version: 0.0.17 + resolution: "css-gradient-parser@npm:0.0.17" + checksum: 10c0/24e2694562aa54bee238391d3bd2fdfe3b865bb2c4e7f71f68a4a78733387ccfc6bc11fd8017f67e2813b67c051b5ab322dab95754a92c333ba8308771538bc8 + languageName: node + linkType: hard + +"css-loader@npm:^6.7.1": + version: 6.11.0 + resolution: "css-loader@npm:6.11.0" + dependencies: + icss-utils: "npm:^5.1.0" + postcss: "npm:^8.4.33" + postcss-modules-extract-imports: "npm:^3.1.0" + postcss-modules-local-by-default: "npm:^4.0.5" + postcss-modules-scope: "npm:^3.2.0" + postcss-modules-values: "npm:^4.0.0" + postcss-value-parser: "npm:^4.2.0" + semver: "npm:^7.5.4" + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 10c0/bb52434138085fed06a33e2ffbdae9ee9014ad23bf60f59d6b7ee67f28f26c6b1764024d3030bd19fd884d6ee6ee2224eaed64ad19eb18fbbb23d148d353a965 + languageName: node + linkType: hard + +"css-select@npm:^4.1.3": + version: 4.3.0 + resolution: "css-select@npm:4.3.0" + dependencies: + boolbase: "npm:^1.0.0" + css-what: "npm:^6.0.1" + domhandler: "npm:^4.3.1" + domutils: "npm:^2.8.0" + nth-check: "npm:^2.0.1" + checksum: 10c0/a489d8e5628e61063d5a8fe0fa1cc7ae2478cb334a388a354e91cf2908154be97eac9fa7ed4dffe87a3e06cf6fcaa6016553115335c4fd3377e13dac7bd5a8e1 + languageName: node + linkType: hard + +"css-to-react-native@npm:^3.0.0": + version: 3.2.0 + resolution: "css-to-react-native@npm:3.2.0" + dependencies: + camelize: "npm:^1.0.0" + css-color-keywords: "npm:^1.0.0" + postcss-value-parser: "npm:^4.0.2" + checksum: 10c0/fde850a511d5d3d7c55a1e9b8ed26b69a8ad4868b3487e36ebfbfc0b96fc34bc977d9cd1d61a289d0c74d3f9a662d8cee297da53d4433bf2e27d6acdff8e1003 + languageName: node + linkType: hard + +"css-what@npm:^6.0.1": + version: 6.2.2 + resolution: "css-what@npm:6.2.2" + checksum: 10c0/91e24c26fb977b4ccef30d7007d2668c1c10ac0154cc3f42f7304410e9594fb772aea4f30c832d2993b132ca8d99338050866476210316345ec2e7d47b248a56 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7 + languageName: node + linkType: hard + "cssstyle@npm:^4.2.1": version: 4.6.0 resolution: "cssstyle@npm:4.6.0" @@ -4426,6 +5575,13 @@ __metadata: languageName: node linkType: hard +"deepmerge@npm:^4.2.2": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044 + languageName: node + linkType: hard + "default-browser-id@npm:^5.0.0": version: 5.0.1 resolution: "default-browser-id@npm:5.0.1" @@ -4454,6 +5610,13 @@ __metadata: languageName: node linkType: hard +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 10c0/db6c63864a9d3b7dc9def55d52764968a5af296de87c1b2cc71d8be8142e445208071953649e0386a8cc37cfcf9a2067a47207f1eb9ff250c2a269658fdae422 + languageName: node + linkType: hard + "define-lazy-prop@npm:^3.0.0": version: 3.0.0 resolution: "define-lazy-prop@npm:3.0.0" @@ -4486,7 +5649,7 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.0, dequal@npm:^2.0.3": +"dequal@npm:^2.0.0, dequal@npm:^2.0.2, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 @@ -4538,6 +5701,63 @@ __metadata: languageName: node linkType: hard +"dom-converter@npm:^0.2.0": + version: 0.2.0 + resolution: "dom-converter@npm:0.2.0" + dependencies: + utila: "npm:~0.4" + checksum: 10c0/e96aa63bd8c6ee3cd9ce19c3aecfc2c42e50a460e8087114794d4f5ecf3a4f052b34ea3bf2d73b5d80b4da619073b49905e6d7d788ceb7814ca4c29be5354a11 + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" + dependencies: + domelementtype: "npm:^2.0.1" + domhandler: "npm:^4.2.0" + entities: "npm:^2.0.0" + checksum: 10c0/67d775fa1ea3de52035c98168ddcd59418356943b5eccb80e3c8b3da53adb8e37edb2cc2f885802b7b1765bf5022aec21dfc32910d7f9e6de4c3148f095ab5e0 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: 10c0/686f5a9ef0fff078c1412c05db73a0dce096190036f33e400a07e2a4518e9f56b1e324f5c576a0a747ef0e75b5d985c040b0d51945ce780c0dd3c625a18cd8c9 + languageName: node + linkType: hard + +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" + dependencies: + domelementtype: "npm:^2.2.0" + checksum: 10c0/5c199c7468cb052a8b5ab80b13528f0db3d794c64fc050ba793b574e158e67c93f8336e87fd81e9d5ee43b0e04aea4d8b93ed7be4899cb726a1601b3ba18538b + languageName: node + linkType: hard + +"domutils@npm:^2.5.2, domutils@npm:^2.8.0": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: "npm:^1.0.1" + domelementtype: "npm:^2.2.0" + domhandler: "npm:^4.2.0" + checksum: 10c0/d58e2ae01922f0dd55894e61d18119924d88091837887bf1438f2327f32c65eb76426bd9384f81e7d6dcfb048e0f83c19b222ad7101176ad68cdc9c695b563db + languageName: node + linkType: hard + +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10c0/5b859ea65097a7ea870e2c91b5768b72ddf7fa947223fd29e167bcdff58fe731d941c48e47a38ec8aa8e43044c8fbd15cd8fa21689a526bc34b6548197cd5b05 + languageName: node + linkType: hard + "dotenv-expand@npm:5.1.0": version: 5.1.0 resolution: "dotenv-expand@npm:5.1.0" @@ -4559,6 +5779,13 @@ __metadata: languageName: node linkType: hard +"dset@npm:^3.1.4": + version: 3.1.4 + resolution: "dset@npm:3.1.4" + checksum: 10c0/b67bbd28dd8a539e90c15ffb61100eb64ef995c5270a124d4f99bbb53f4d82f55a051b731ba81f3215dd9dce2b4c8d69927dc20b3be1c5fc88bab159467aa438 + languageName: node + linkType: hard + "dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": version: 1.0.1 resolution: "dunder-proto@npm:1.0.1" @@ -4615,6 +5842,20 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.263": + version: 1.5.302 + resolution: "electron-to-chromium@npm:1.5.302" + checksum: 10c0/014413f2b4ec3a0e043c68f6c07a760d230b14e36b8549c5b124f386a6318d9641e69be2aa0df1877395dd99922745c1722c8ecb3d72205f0f3b3b3dc44c8442 + languageName: node + linkType: hard + +"emoji-regex-xs@npm:^2.0.1": + version: 2.0.1 + resolution: "emoji-regex-xs@npm:2.0.1" + checksum: 10c0/f34c96377840d4ffff128042509bc5550c9ebc3d67fc3c0d8754772a7c1a13b2fddf797326e174f8ad4114a487c9740a7dbb4d9a670814570b3b628aa64cdfb4 + languageName: node + linkType: hard + "emoji-regex@npm:^10.2.1, emoji-regex@npm:^10.3.0": version: 10.6.0 resolution: "emoji-regex@npm:10.6.0" @@ -4636,6 +5877,13 @@ __metadata: languageName: node linkType: hard +"emojis-list@npm:^3.0.0": + version: 3.0.0 + resolution: "emojis-list@npm:3.0.0" + checksum: 10c0/7dc4394b7b910444910ad64b812392159a21e1a7ecc637c775a440227dcb4f80eff7fe61f4453a7d7603fa23d23d30cc93fe9e4b5ed985b88d6441cd4a35117b + languageName: node + linkType: hard + "encodeurl@npm:~1.0.2": version: 1.0.2 resolution: "encodeurl@npm:1.0.2" @@ -4678,6 +5926,23 @@ __metadata: languageName: node linkType: hard +"enhanced-resolve@npm:^5.19.0": + version: 5.19.0 + resolution: "enhanced-resolve@npm:5.19.0" + dependencies: + graceful-fs: "npm:^4.2.4" + tapable: "npm:^2.3.0" + checksum: 10c0/966b1dffb82d5f6a4d6a86e904e812104a999066aa29f9223040aaa751e7c453b462a3f5ef91f8bd4408131ff6f7f90651dd1c804bdcb7944e2099a9c2e45ee2 + languageName: node + linkType: hard + +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 10c0/7fba6af1f116300d2ba1c5673fc218af1961b20908638391b4e1e6d5850314ee2ac3ec22d741b3a8060479911c99305164aed19b6254bde75e7e6b1b2c3f3aa3 + languageName: node + linkType: hard + "entities@npm:^6.0.0": version: 6.0.1 resolution: "entities@npm:6.0.1" @@ -4699,7 +5964,7 @@ __metadata: languageName: node linkType: hard -"error-ex@npm:^1.3.2": +"error-ex@npm:^1.3.1, error-ex@npm:^1.3.2": version: 1.3.4 resolution: "error-ex@npm:1.3.4" dependencies: @@ -4791,13 +6056,20 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.3.1, es-module-lexer@npm:^1.7.0": +"es-module-lexer@npm:^1.3.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.7.0": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b languageName: node linkType: hard +"es-module-lexer@npm:^2.0.0": + version: 2.0.0 + resolution: "es-module-lexer@npm:2.0.0" + checksum: 10c0/ae78dbbd43035a4b972c46cfb6877e374ea290adfc62bc2f5a083fea242c0b2baaab25c5886af86be55f092f4a326741cb94334cd3c478c383fdc8a9ec5ff817 + languageName: node + linkType: hard + "es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": version: 1.1.1 resolution: "es-object-atoms@npm:1.1.1" @@ -4854,6 +6126,17 @@ __metadata: languageName: node linkType: hard +"esbuild-register@npm:^3.5.0": + version: 3.6.0 + resolution: "esbuild-register@npm:3.6.0" + dependencies: + debug: "npm:^4.3.4" + peerDependencies: + esbuild: ">=0.12 <1" + checksum: 10c0/77193b7ca32ba9f81b35ddf3d3d0138efb0b1429d71b39480cfee932e1189dd2e492bd32bf04a4d0bc3adfbc7ec7381ceb5ffd06efe35f3e70904f1f686566d5 + languageName: node + linkType: hard + "esbuild@npm:0.27.0": version: 0.27.0 resolution: "esbuild@npm:0.27.0" @@ -4943,7 +6226,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.25.0": +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0, esbuild@npm:^0.25.0": version: 0.25.12 resolution: "esbuild@npm:0.25.12" dependencies: @@ -5128,7 +6411,7 @@ __metadata: languageName: node linkType: hard -"escape-html@npm:~1.0.3": +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 @@ -5142,7 +6425,17 @@ __metadata: languageName: node linkType: hard -"esprima@npm:^4.0.0": +"eslint-scope@npm:5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^4.1.1" + checksum: 10c0/d30ef9dc1c1cbdece34db1539a4933fe3f9b14e1ffb27ecc85987902ee663ad7c9473bbd49a9a03195a373741e62e2f807c4938992e019b511993d163450e70a + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:~4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" bin: @@ -5152,6 +6445,29 @@ __metadata: languageName: node linkType: hard +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: "npm:^5.2.0" + checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d + languageName: node + linkType: hard + +"estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 + languageName: node + linkType: hard + "estree-util-attach-comments@npm:^3.0.0": version: 3.0.0 resolution: "estree-util-attach-comments@npm:3.0.0" @@ -5234,7 +6550,7 @@ __metadata: languageName: node linkType: hard -"events@npm:^3.3.0": +"events@npm:^3.2.0, events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 @@ -5338,7 +6654,7 @@ __metadata: languageName: node linkType: hard -"fast-deep-equal@npm:^3.1.3": +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 @@ -5358,6 +6674,13 @@ __metadata: languageName: node linkType: hard +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + languageName: node + linkType: hard + "fast-json-stringify@npm:^6.0.0": version: 6.1.1 resolution: "fast-json-stringify@npm:6.1.1" @@ -5462,6 +6785,13 @@ __metadata: languageName: node linkType: hard +"fflate@npm:^0.7.3": + version: 0.7.4 + resolution: "fflate@npm:0.7.4" + checksum: 10c0/5e749eb3a6ed61a0f6c55756abf9f4258f06f60505db689e22d18503dd252ca5af656d32668e4b7b20714adf8b313febf695d23863a8352f23e325baee0f672d + languageName: node + linkType: hard + "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -5516,6 +6846,29 @@ __metadata: languageName: node linkType: hard +"fork-ts-checker-webpack-plugin@npm:^8.0.0": + version: 8.0.0 + resolution: "fork-ts-checker-webpack-plugin@npm:8.0.0" + dependencies: + "@babel/code-frame": "npm:^7.16.7" + chalk: "npm:^4.1.2" + chokidar: "npm:^3.5.3" + cosmiconfig: "npm:^7.0.1" + deepmerge: "npm:^4.2.2" + fs-extra: "npm:^10.0.0" + memfs: "npm:^3.4.1" + minimatch: "npm:^3.0.4" + node-abort-controller: "npm:^3.0.1" + schema-utils: "npm:^3.1.1" + semver: "npm:^7.3.5" + tapable: "npm:^2.2.1" + peerDependencies: + typescript: ">3.6.0" + webpack: ^5.11.0 + checksum: 10c0/1a2bb9bbd3e943e3b3a45d7fa9e8383698f5fea1ba28f7d18c8372c804460c2f13af53f791360b973fddafd3e88de7af59082c3cb3375f4e7c3365cd85accedc + languageName: node + linkType: hard + "format@npm:^0.2.0": version: 0.2.2 resolution: "format@npm:0.2.2" @@ -5537,14 +6890,25 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:11.3.1": - version: 11.3.1 - resolution: "fs-extra@npm:11.3.1" +"fs-extra@npm:11.3.1": + version: 11.3.1 + resolution: "fs-extra@npm:11.3.1" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/61e5b7285b1ca72c68dfe1058b2514294a922683afac2a80aa90540f9bd85370763d675e3b408ef500077d355956fece3bd24b546790e261c3d3015967e2b2d9 + languageName: node + linkType: hard + +"fs-extra@npm:^10.0.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" dependencies: graceful-fs: "npm:^4.2.0" jsonfile: "npm:^6.0.1" universalify: "npm:^2.0.0" - checksum: 10c0/61e5b7285b1ca72c68dfe1058b2514294a922683afac2a80aa90540f9bd85370763d675e3b408ef500077d355956fece3bd24b546790e261c3d3015967e2b2d9 + checksum: 10c0/5f579466e7109719d162a9249abbeffe7f426eb133ea486e020b89bc6d67a741134076bf439983f2eb79276ceaf6bd7b7c1e43c3fd67fe889863e69072fb0a5e languageName: node linkType: hard @@ -5557,6 +6921,13 @@ __metadata: languageName: node linkType: hard +"fs-monkey@npm:^1.0.4": + version: 1.1.0 + resolution: "fs-monkey@npm:1.1.0" + checksum: 10c0/45596fe14753ae8f3fa180724106383de68c8de2836eb24d1647cacf18a6d05335402f3611d32e00234072a60d2f3371024c00cd295593bfbce35b84ff9f6a34 + languageName: node + linkType: hard + "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -5716,6 +7087,13 @@ __metadata: languageName: node linkType: hard +"glob-to-regexp@npm:^0.4.1": + version: 0.4.1 + resolution: "glob-to-regexp@npm:0.4.1" + checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429 + languageName: node + linkType: hard + "glob@npm:^10.0.0, glob@npm:^10.2.2": version: 10.5.0 resolution: "glob@npm:10.5.0" @@ -5790,7 +7168,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -5834,6 +7212,13 @@ __metadata: languageName: node linkType: hard +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + "has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": version: 1.0.2 resolution: "has-property-descriptors@npm:1.0.2" @@ -5910,7 +7295,7 @@ __metadata: languageName: node linkType: hard -"hast-util-to-html@npm:^9.0.0": +"hast-util-to-html@npm:^9.0.0, hast-util-to-html@npm:^9.0.5": version: 9.0.5 resolution: "hast-util-to-html@npm:9.0.5" dependencies: @@ -5970,6 +7355,15 @@ __metadata: languageName: node linkType: hard +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 10c0/a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17 + languageName: node + linkType: hard + "help-me@npm:^5.0.0": version: 5.0.0 resolution: "help-me@npm:5.0.0" @@ -5977,6 +7371,13 @@ __metadata: languageName: node linkType: hard +"hex-rgb@npm:^4.1.0": + version: 4.3.0 + resolution: "hex-rgb@npm:4.3.0" + checksum: 10c0/ce2c2ff260d9e0686bead74e3318c1684d8a2da856da30ed90535442f705fb4f5cd93ffe70274e2534a7319a99cda6a6617f23d4f163b72867f406e25ea30cb4 + languageName: node + linkType: hard + "highlight.js@npm:^11.11.1": version: 11.11.1 resolution: "highlight.js@npm:11.11.1" @@ -6018,6 +7419,30 @@ __metadata: languageName: node linkType: hard +"html-entities@npm:^2.1.0": + version: 2.6.0 + resolution: "html-entities@npm:2.6.0" + checksum: 10c0/7c8b15d9ea0cd00dc9279f61bab002ba6ca8a7a0f3c36ed2db3530a67a9621c017830d1d2c1c65beb9b8e3436ea663e9cf8b230472e0e413359399413b27c8b7 + languageName: node + linkType: hard + +"html-minifier-terser@npm:^6.0.2": + version: 6.1.0 + resolution: "html-minifier-terser@npm:6.1.0" + dependencies: + camel-case: "npm:^4.1.2" + clean-css: "npm:^5.2.2" + commander: "npm:^8.3.0" + he: "npm:^1.2.0" + param-case: "npm:^3.0.4" + relateurl: "npm:^0.2.7" + terser: "npm:^5.10.0" + bin: + html-minifier-terser: cli.js + checksum: 10c0/1aa4e4f01cf7149e3ac5ea84fb7a1adab86da40d38d77a6fff42852b5ee3daccb78b615df97264e3a6a5c33e57f0c77f471d607ca1e1debd1dab9b58286f4b5a + languageName: node + linkType: hard + "html-url-attributes@npm:^3.0.0": version: 3.0.1 resolution: "html-url-attributes@npm:3.0.1" @@ -6032,6 +7457,39 @@ __metadata: languageName: node linkType: hard +"html-webpack-plugin@npm:^5.5.0": + version: 5.6.6 + resolution: "html-webpack-plugin@npm:5.6.6" + dependencies: + "@types/html-minifier-terser": "npm:^6.0.0" + html-minifier-terser: "npm:^6.0.2" + lodash: "npm:^4.17.21" + pretty-error: "npm:^4.0.0" + tapable: "npm:^2.0.0" + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 10c0/30c07c46c6125d51f9779e4fc3dd1bf30ebd0ef78e9628d918f8e4c45e116e79a31ca5ba3444d2743833335405616b8772a68d6183b0663f016529802422ca9e + languageName: node + linkType: hard + +"htmlparser2@npm:^6.1.0": + version: 6.1.0 + resolution: "htmlparser2@npm:6.1.0" + dependencies: + domelementtype: "npm:^2.0.1" + domhandler: "npm:^4.0.0" + domutils: "npm:^2.5.2" + entities: "npm:^2.0.0" + checksum: 10c0/3058499c95634f04dc66be8c2e0927cd86799413b2d6989d8ae542ca4dbf5fa948695d02c27d573acf44843af977aec6d9a7bdd0f6faa6b2d99e2a729b2a31b6 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.1": version: 4.2.0 resolution: "http-cache-semantics@npm:4.2.0" @@ -6115,6 +7573,15 @@ __metadata: languageName: node linkType: hard +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/39c92936fabd23169c8611d2b5cc39e39d10b19b0d223352f20a7579f75b39d5f786114a6b8fc62bee8c5fed59ba9e0d38f7219a4db383e324fb3061664b043d + languageName: node + linkType: hard + "ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -6129,6 +7596,16 @@ __metadata: languageName: node linkType: hard +"import-fresh@npm:^3.2.1": + version: 3.3.1 + resolution: "import-fresh@npm:3.3.1" + dependencies: + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10c0/bf8cc494872fef783249709385ae883b447e3eb09db0ebd15dcead7d9afe7224dad7bd7591c6b73b0b19b3c0f9640eb8ee884f01cfaf2887ab995b0b36a0cbec + languageName: node + linkType: hard + "import-meta-resolve@npm:^4.0.0": version: 4.2.0 resolution: "import-meta-resolve@npm:4.2.0" @@ -6230,6 +7707,16 @@ __metadata: languageName: node linkType: hard +"is-arguments@npm:^1.0.4": + version: 1.2.0 + resolution: "is-arguments@npm:1.2.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/6377344b31e9fcb707c6751ee89b11f132f32338e6a782ec2eac9393b0cbd32235dad93052998cda778ee058754860738341d8114910d50ada5615912bb929fc + languageName: node + linkType: hard + "is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": version: 3.0.5 resolution: "is-array-buffer@npm:3.0.5" @@ -6333,6 +7820,15 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc + languageName: node + linkType: hard + "is-docker@npm:^3.0.0": version: 3.0.0 resolution: "is-docker@npm:3.0.0" @@ -6379,7 +7875,7 @@ __metadata: languageName: node linkType: hard -"is-generator-function@npm:^1.0.10": +"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": version: 1.1.2 resolution: "is-generator-function@npm:1.1.2" dependencies: @@ -6527,7 +8023,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15, is-typed-array@npm:^1.1.3": version: 1.1.15 resolution: "is-typed-array@npm:1.1.15" dependencies: @@ -6576,6 +8072,15 @@ __metadata: languageName: node linkType: hard +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: "npm:^2.0.0" + checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e + languageName: node + linkType: hard + "is-wsl@npm:^3.1.0": version: 3.1.0 resolution: "is-wsl@npm:3.1.0" @@ -6642,6 +8147,24 @@ __metadata: languageName: node linkType: hard +"javascript-stringify@npm:^2.0.1": + version: 2.1.0 + resolution: "javascript-stringify@npm:2.1.0" + checksum: 10c0/374e74ebff29b94de78da39daa6e530999c58a145aeb293dc21180c4584459b14d9e5721d9bc6ed4eba319c437ef0145c157c946b70ecddcff6668682a002bcc + languageName: node + linkType: hard + +"jest-worker@npm:^27.4.5": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" + dependencies: + "@types/node": "npm:*" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10c0/8c4737ffd03887b3c6768e4cc3ca0269c0336c1e4b1b120943958ddb035ed2a0fc6acab6dc99631720a3720af4e708ff84fb45382ad1e83c27946adf3623969b + languageName: node + linkType: hard + "jiti@npm:^2.6.1": version: 2.6.1 resolution: "jiti@npm:2.6.1" @@ -6651,6 +8174,13 @@ __metadata: languageName: node linkType: hard +"jose@npm:^5.1.0": + version: 5.10.0 + resolution: "jose@npm:5.10.0" + checksum: 10c0/e20d9fc58d7e402f2e5f04e824b8897d5579aae60e64cb88ebdea1395311c24537bf4892f7de413fab1acf11e922797fb1b42269bc8fc65089a3749265ccb7b0 + languageName: node + linkType: hard + "joycon@npm:^3.1.1": version: 3.1.1 resolution: "joycon@npm:3.1.1" @@ -6684,6 +8214,13 @@ __metadata: languageName: node linkType: hard +"jsdoc-type-pratt-parser@npm:^4.0.0": + version: 4.8.0 + resolution: "jsdoc-type-pratt-parser@npm:4.8.0" + checksum: 10c0/c2b77751d35e3931db9da96720b544b215830722b748b58ee8ce51ec72092006a4a03c5a59c86a4552d0094975c8d3bcc21a7241a0e47860e127d3fba5b55f33 + languageName: node + linkType: hard + "jsdom@npm:^26.1.0": version: 26.1.0 resolution: "jsdom@npm:26.1.0" @@ -6735,6 +8272,13 @@ __metadata: languageName: node linkType: hard +"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^3.0.0": version: 3.0.2 resolution: "json-parse-even-better-errors@npm:3.0.2" @@ -6751,6 +8295,13 @@ __metadata: languageName: node linkType: hard +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce + languageName: node + linkType: hard + "json-schema-traverse@npm:^1.0.0": version: 1.0.0 resolution: "json-schema-traverse@npm:1.0.0" @@ -6765,7 +8316,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.0.0, json5@npm:^2.2.3": +"json5@npm:^2.0.0, json5@npm:^2.1.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -7066,6 +8617,23 @@ __metadata: languageName: node linkType: hard +"linebreak@npm:^1.1.0": + version: 1.1.0 + resolution: "linebreak@npm:1.1.0" + dependencies: + base64-js: "npm:0.0.8" + unicode-trie: "npm:^2.0.0" + checksum: 10c0/b350c90d7b10db30345ed56cdb869548110ce73ccdc4337100eaee50755eed78e9823490e6f2d7ed0adde14f7ed2a12d8583015e072c54f34dc70b316fde133d + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d + languageName: node + linkType: hard + "lines-and-columns@npm:^2.0.3": version: 2.0.4 resolution: "lines-and-columns@npm:2.0.4" @@ -7083,6 +8651,24 @@ __metadata: languageName: node linkType: hard +"loader-runner@npm:^4.3.1": + version: 4.3.1 + resolution: "loader-runner@npm:4.3.1" + checksum: 10c0/a523b6329f114e0a98317158e30a7dfce044b731521be5399464010472a93a15ece44757d1eaed1d8845019869c5390218bc1c7c3110f4eeaef5157394486eac + languageName: node + linkType: hard + +"loader-utils@npm:^2.0.0": + version: 2.0.4 + resolution: "loader-utils@npm:2.0.4" + dependencies: + big.js: "npm:^5.2.2" + emojis-list: "npm:^3.0.0" + json5: "npm:^2.1.2" + checksum: 10c0/d5654a77f9d339ec2a03d88221a5a695f337bf71eb8dea031b3223420bb818964ba8ed0069145c19b095f6c8b8fd386e602a3fc7ca987042bd8bb1dcc90d7100 + languageName: node + linkType: hard + "lodash-es@npm:4.17.21": version: 4.17.21 resolution: "lodash-es@npm:4.17.21" @@ -7090,7 +8676,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.10, lodash@npm:^4.17.21": +"lodash@npm:^4.17.10, lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.17.23 resolution: "lodash@npm:4.17.23" checksum: 10c0/1264a90469f5bb95d4739c43eb6277d15b6d9e186df4ac68c3620443160fc669e2f14c11e7d8b2ccf078b81d06147c01a8ccced9aab9f9f63d50dcf8cace6bf6 @@ -7114,6 +8700,15 @@ __metadata: languageName: node linkType: hard +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: "npm:^2.0.3" + checksum: 10c0/3d925e090315cf7dc1caa358e0477e186ffa23947740e4314a7429b6e62d72742e0bbe7536a5ae56d19d7618ce998aba05caca53c2902bd5742fdca5fc57fd7b + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^10.4.3": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -7160,7 +8755,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.21": +"magic-string@npm:^0.30.21, magic-string@npm:^0.30.5": version: 0.30.21 resolution: "magic-string@npm:0.30.21" dependencies: @@ -7188,6 +8783,13 @@ __metadata: languageName: node linkType: hard +"map-or-similar@npm:^1.5.0": + version: 1.5.0 + resolution: "map-or-similar@npm:1.5.0" + checksum: 10c0/33c6ccfdc272992e33e4e99a69541a3e7faed9de3ac5bc732feb2500a9ee71d3f9d098980a70b7746e7eeb7f859ff7dfb8aa9b5ecc4e34170a32ab78cfb18def + languageName: node + linkType: hard + "markdown-extensions@npm:^2.0.0": version: 2.0.0 resolution: "markdown-extensions@npm:2.0.0" @@ -7486,6 +9088,24 @@ __metadata: languageName: node linkType: hard +"memfs@npm:^3.4.1, memfs@npm:^3.4.12": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" + dependencies: + fs-monkey: "npm:^1.0.4" + checksum: 10c0/038fc81bce17ea92dde15aaa68fa0fdaf4960c721ce3ffc7c2cb87a259333f5159784ea48b3b72bf9e054254d9d0d0d5209d0fdc3d07d08653a09933b168fbd7 + languageName: node + linkType: hard + +"memoizerific@npm:^1.11.3": + version: 1.11.3 + resolution: "memoizerific@npm:1.11.3" + dependencies: + map-or-similar: "npm:^1.5.0" + checksum: 10c0/661bf69b7afbfad57f0208f0c63324f4c96087b480708115b78ee3f0237d86c7f91347f6db31528740b2776c2e34c709bcb034e1e910edee2270c9603a0a469e + languageName: node + linkType: hard + "meow@npm:13.2.0": version: 13.2.0 resolution: "meow@npm:13.2.0" @@ -7509,6 +9129,13 @@ __metadata: languageName: node linkType: hard +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + languageName: node + linkType: hard + "merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" @@ -8030,7 +9657,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -8089,6 +9716,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^3.0.4": + version: 3.1.3 + resolution: "minimatch@npm:3.1.3" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/c1ffce4be47e88df013f66f55176c25a93fdd8ad15735309cf1782f0433a02f363cee298f8763ceaaaf85e70ff7f30dc84a1a8d00a6fb6ca72032e5b51f9b89c + languageName: node + linkType: hard + "minimatch@npm:^3.1.1": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -8241,6 +9877,37 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: "npm:^2.0.2" + tslib: "npm:^2.0.3" + checksum: 10c0/8ef545f0b3f8677c848f86ecbd42ca0ff3cd9dd71c158527b344c69ba14710d816d8489c746b6ca225e7b615108938a0bda0a54706f8c255933703ac1cf8e703 + languageName: node + linkType: hard + +"node-abort-controller@npm:^3.0.1": + version: 3.1.1 + resolution: "node-abort-controller@npm:3.1.1" + checksum: 10c0/f7ad0e7a8e33809d4f3a0d1d65036a711c39e9d23e0319d80ebe076b9a3b4432b4d6b86a7fab65521de3f6872ffed36fc35d1327487c48eb88c517803403eda3 + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.7": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 12.1.0 resolution: "node-gyp@npm:12.1.0" @@ -8384,6 +10051,15 @@ __metadata: languageName: node linkType: hard +"nth-check@npm:^2.0.1": + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" + dependencies: + boolbase: "npm:^1.0.0" + checksum: 10c0/5fee7ff309727763689cfad844d979aedd2204a817fbaaf0e1603794a7c20db28548d7b024692f953557df6ce4a0ee4ae46cd8ebd9b36cfb300b9226b567c479 + languageName: node + linkType: hard + "nwsapi@npm:^2.2.16": version: 2.2.22 resolution: "nwsapi@npm:2.2.22" @@ -8460,6 +10136,24 @@ __metadata: languageName: node linkType: hard +"oniguruma-parser@npm:^0.12.1": + version: 0.12.1 + resolution: "oniguruma-parser@npm:0.12.1" + checksum: 10c0/b843ea54cda833efb19f856314afcbd43e903ece3de489ab78c527ddec84859208052557daa9fad4bdba89ebdd15b0cc250de86b3daf8c7cbe37bac5a6a185d3 + languageName: node + linkType: hard + +"oniguruma-to-es@npm:^4.3.4": + version: 4.3.4 + resolution: "oniguruma-to-es@npm:4.3.4" + dependencies: + oniguruma-parser: "npm:^0.12.1" + regex: "npm:^6.0.1" + regex-recursion: "npm:^6.0.2" + checksum: 10c0/fb58459f50db71c2c4785205636186bfbb125b094c4275512a8f41f123ed3fbf61f37c455f4360ef14a56c693981aecd7da3ae2c05614a222e872c4643b463fc + languageName: node + linkType: hard + "open@npm:10.2.0": version: 10.2.0 resolution: "open@npm:10.2.0" @@ -8472,6 +10166,17 @@ __metadata: languageName: node linkType: hard +"open@npm:^8.0.4": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: "npm:^2.0.0" + is-docker: "npm:^2.1.1" + is-wsl: "npm:^2.2.0" + checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 + languageName: node + linkType: hard + "ora@npm:8.2.0": version: 8.2.0 resolution: "ora@npm:8.2.0" @@ -8569,6 +10274,42 @@ __metadata: languageName: node linkType: hard +"pako@npm:^0.2.5": + version: 0.2.9 + resolution: "pako@npm:0.2.9" + checksum: 10c0/79c1806ebcf325b60ae599e4d7227c2e346d7b829dc20f5cf24cef07c934079dc3a61c5b3c8278a2f7a190c4a613e343ea11e5302dbe252efd11712df4b6b041 + languageName: node + linkType: hard + +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10c0/ccc053f3019f878eca10e70ec546d92f51a592f762917dafab11c8b532715dcff58356118a6f350976e4ab109e321756f05739643ed0ca94298e82291e6f9e76 + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: "npm:^3.0.0" + checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 + languageName: node + linkType: hard + +"parse-css-color@npm:^0.2.1": + version: 0.2.1 + resolution: "parse-css-color@npm:0.2.1" + dependencies: + color-name: "npm:^1.1.4" + hex-rgb: "npm:^4.1.0" + checksum: 10c0/558f1d9874295a618717b88633fb15343fd4d2952c21b274c77503f251c1ed18086df6cec422b6ca67c8f8f0511baf327fae232d4ed12d55cf116695346161d3 + languageName: node + linkType: hard + "parse-entities@npm:^4.0.0": version: 4.0.2 resolution: "parse-entities@npm:4.0.2" @@ -8584,6 +10325,18 @@ __metadata: languageName: node linkType: hard +"parse-json@npm:^5.0.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": "npm:^7.0.0" + error-ex: "npm:^1.3.1" + json-parse-even-better-errors: "npm:^2.3.0" + lines-and-columns: "npm:^1.1.6" + checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 + languageName: node + linkType: hard + "parse-json@npm:^7.0.0": version: 7.1.1 resolution: "parse-json@npm:7.1.1" @@ -8613,6 +10366,23 @@ __metadata: languageName: node linkType: hard +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10c0/05ff7c344809fd272fc5030ae0ee3da8e4e63f36d47a1e0a4855ca59736254192c5a27b5822ed4bae96e54048eec5f6907713cfcfff7cdf7a464eaf7490786d8 + languageName: node + linkType: hard + +"path-browserify@npm:^1.0.1": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: 10c0/8b8c3fd5c66bd340272180590ae4ff139769e9ab79522e2eb82e3d571a89b8117c04147f65ad066dccfb42fcad902e5b7d794b3d35e0fd840491a8ddbedf8c66 + languageName: node + linkType: hard + "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" @@ -8661,6 +10431,13 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c + languageName: node + linkType: hard + "pathe@npm:^1.1.2": version: 1.1.2 resolution: "pathe@npm:1.1.2" @@ -8787,7 +10564,7 @@ __metadata: languageName: node linkType: hard -"playwright@npm:^1.58.2": +"playwright@npm:1.58.2, playwright@npm:^1.58.2": version: 1.58.2 resolution: "playwright@npm:1.58.2" dependencies: @@ -8809,6 +10586,15 @@ __metadata: languageName: node linkType: hard +"polished@npm:^4.2.2": + version: 4.3.1 + resolution: "polished@npm:4.3.1" + dependencies: + "@babel/runtime": "npm:^7.17.8" + checksum: 10c0/45480d4c7281a134281cef092f6ecc202a868475ff66a390fee6e9261386e16f3047b4de46a2f2e1cf7fb7aa8f52d30b4ed631a1e3bcd6f303ca31161d4f07fe + languageName: node + linkType: hard + "portfinder@npm:1.0.37": version: 1.0.37 resolution: "portfinder@npm:1.0.37" @@ -8826,7 +10612,68 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.5.6": +"postcss-modules-extract-imports@npm:^3.1.0": + version: 3.1.0 + resolution: "postcss-modules-extract-imports@npm:3.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/402084bcab376083c4b1b5111b48ec92974ef86066f366f0b2d5b2ac2b647d561066705ade4db89875a13cb175b33dd6af40d16d32b2ea5eaf8bac63bd2bf219 + languageName: node + linkType: hard + +"postcss-modules-local-by-default@npm:^4.0.5": + version: 4.2.0 + resolution: "postcss-modules-local-by-default@npm:4.2.0" + dependencies: + icss-utils: "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" + postcss-value-parser: "npm:^4.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/b0b83feb2a4b61f5383979d37f23116c99bc146eba1741ca3cf1acca0e4d0dbf293ac1810a6ab4eccbe1ee76440dd0a9eb2db5b3bba4f99fc1b3ded16baa6358 + languageName: node + linkType: hard + +"postcss-modules-scope@npm:^3.2.0": + version: 3.2.1 + resolution: "postcss-modules-scope@npm:3.2.1" + dependencies: + postcss-selector-parser: "npm:^7.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/bd2d81f79e3da0ef6365b8e2c78cc91469d05b58046b4601592cdeef6c4050ed8fe1478ae000a1608042fc7e692cb51fecbd2d9bce3f4eace4d32e883ffca10b + languageName: node + linkType: hard + +"postcss-modules-values@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-values@npm:4.0.0" + dependencies: + icss-utils: "npm:^5.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10c0/dd18d7631b5619fb9921b198c86847a2a075f32e0c162e0428d2647685e318c487a2566cc8cc669fc2077ef38115cde7a068e321f46fb38be3ad49646b639dbc + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^7.0.0": + version: 7.1.1 + resolution: "postcss-selector-parser@npm:7.1.1" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10c0/02d3b1589ddcddceed4b583b098b95a7266dacd5135f041e5d913ebb48e874fd333a36e564cc9a2ec426a464cb18db11cb192ac76247aced5eba8c951bf59507 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.0.2, postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161 + languageName: node + linkType: hard + +"postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.5.6": version: 8.5.6 resolution: "postcss@npm:8.5.6" dependencies: @@ -8846,6 +10693,16 @@ __metadata: languageName: node linkType: hard +"pretty-error@npm:^4.0.0": + version: 4.0.0 + resolution: "pretty-error@npm:4.0.0" + dependencies: + lodash: "npm:^4.17.20" + renderkid: "npm:^3.0.0" + checksum: 10c0/dc292c087e2857b2e7592784ab31e37a40f3fa918caa11eba51f9fb2853e1d4d6e820b219917e35f5721d833cfd20fdf4f26ae931a90fd1ad0cae2125c345138 + languageName: node + linkType: hard + "proc-log@npm:^3.0.0": version: 3.0.0 resolution: "proc-log@npm:3.0.0" @@ -8959,7 +10816,14 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.3.1": +"punycode@npm:^1.4.1": + version: 1.4.1 + resolution: "punycode@npm:1.4.1" + checksum: 10c0/354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.3.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 @@ -8975,6 +10839,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.12.3": + version: 6.15.0 + resolution: "qs@npm:6.15.0" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10c0/ff341078a78a991d8a48b4524d52949211447b4b1ad907f489cac0770cbc346a28e47304455c0320e5fb000f8762d64b03331e3b71865f663bf351bcba8cdb4b + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -8996,7 +10869,16 @@ __metadata: languageName: node linkType: hard -"range-parser@npm:~1.2.1": +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: "npm:^5.1.0" + checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3 + languageName: node + linkType: hard + +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 @@ -9015,6 +10897,17 @@ __metadata: languageName: node linkType: hard +"react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0": + version: 19.2.4 + resolution: "react-dom@npm:19.2.4" + dependencies: + scheduler: "npm:^0.27.0" + peerDependencies: + react: ^19.2.4 + checksum: 10c0/f0c63f1794dedb154136d4d0f59af00b41907f4859571c155940296808f4b94bf9c0c20633db75b5b2112ec13d8d7dd4f9bf57362ed48782f317b11d05a44f35 + languageName: node + linkType: hard + "react-dom@npm:^19.1.0": version: 19.2.0 resolution: "react-dom@npm:19.2.0" @@ -9142,6 +11035,13 @@ __metadata: languageName: node linkType: hard +"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0": + version: 19.2.4 + resolution: "react@npm:19.2.4" + checksum: 10c0/cd2c9ff67a720799cc3b38a516009986f7fc4cb8d3e15716c6211cf098d1357ee3e348ab05ad0600042bbb0fd888530ba92e329198c92eafa0994f5213396596 + languageName: node + linkType: hard + "react@npm:^19.1.0": version: 19.2.0 resolution: "react@npm:19.2.0" @@ -9221,6 +11121,19 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.23.5": + version: 0.23.11 + resolution: "recast@npm:0.23.11" + dependencies: + ast-types: "npm:^0.16.1" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tiny-invariant: "npm:^1.3.3" + tslib: "npm:^2.0.1" + checksum: 10c0/45b520a8f0868a5a24ecde495be9de3c48e69a54295d82a7331106554b75cfba75d16c909959d056e9ceed47a1be5e061e2db8b9ecbcd6ba44c2f3ef9a47bd18 + languageName: node + linkType: hard + "recma-build-jsx@npm:^1.0.0": version: 1.0.0 resolution: "recma-build-jsx@npm:1.0.0" @@ -9287,6 +11200,31 @@ __metadata: languageName: node linkType: hard +"regex-recursion@npm:^6.0.2": + version: 6.0.2 + resolution: "regex-recursion@npm:6.0.2" + dependencies: + regex-utilities: "npm:^2.3.0" + checksum: 10c0/68e8b6889680e904b75d7f26edaf70a1a4dc1087406bff53face4c2929d918fd77c72223843fe816ac8ed9964f96b4160650e8d5909e26a998c6e9de324dadb1 + languageName: node + linkType: hard + +"regex-utilities@npm:^2.3.0": + version: 2.3.0 + resolution: "regex-utilities@npm:2.3.0" + checksum: 10c0/78c550a80a0af75223244fff006743922591bd8f61d91fef7c86b9b56cf9bbf8ee5d7adb6d8991b5e304c57c90103fc4818cf1e357b11c6c669b782839bd7893 + languageName: node + linkType: hard + +"regex@npm:^6.0.1": + version: 6.1.0 + resolution: "regex@npm:6.1.0" + dependencies: + regex-utilities: "npm:^2.3.0" + checksum: 10c0/6e0ee2a1c17d5a66dc1120dfc51899dedf6677857e83a0df4d5a822ebb8645a54a079772efc1ade382b67aad35e4e22b5bd2d33c05ed28b0e000f8f57eb0aec1 + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.5.4": version: 1.5.4 resolution: "regexp.prototype.flags@npm:1.5.4" @@ -9336,6 +11274,13 @@ __metadata: languageName: node linkType: hard +"relateurl@npm:^0.2.7": + version: 0.2.7 + resolution: "relateurl@npm:0.2.7" + checksum: 10c0/c248b4e3b32474f116a804b537fa6343d731b80056fb506dffd91e737eef4cac6be47a65aae39b522b0db9d0b1011d1a12e288d82a109ecd94a5299d82f6573a + languageName: node + linkType: hard + "remark-cli@npm:^12.0.1": version: 12.0.1 resolution: "remark-cli@npm:12.0.1" @@ -9464,6 +11409,19 @@ __metadata: languageName: node linkType: hard +"renderkid@npm:^3.0.0": + version: 3.0.0 + resolution: "renderkid@npm:3.0.0" + dependencies: + css-select: "npm:^4.1.3" + dom-converter: "npm:^0.2.0" + htmlparser2: "npm:^6.1.0" + lodash: "npm:^4.17.21" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/24a9fae4cc50e731d059742d1b3eec163dc9e3872b12010d120c3fcbd622765d9cda41f79a1bbb4bf63c1d3442f18a08f6e1642cb5d7ebf092a0ce3f7a3bd143 + languageName: node + linkType: hard + "require-from-string@npm:^2.0.2": version: 2.0.2 resolution: "require-from-string@npm:2.0.2" @@ -9475,9 +11433,11 @@ __metadata: version: 0.0.0-use.local resolution: "rescript-lang.org@workspace:." dependencies: + "@axe-core/playwright": "npm:^4.11.1" "@babel/generator": "npm:^7.24.7" "@babel/parser": "npm:^7.24.7" "@babel/traverse": "npm:^7.24.7" + "@chromatic-com/playwright": "npm:^0.12.8" "@cloudflare/pages-plugin-vercel-og": "npm:^0.1.2" "@codemirror/commands": "npm:^6.9.0" "@codemirror/lang-javascript": "npm:^6.2.4" @@ -9490,6 +11450,7 @@ __metadata: "@headlessui/react": "npm:^2.2.4" "@lezer/highlight": "npm:^1.2.1" "@node-cli/static-server": "npm:^3.1.4" + "@playwright/test": "npm:^1.58.2" "@prettier/plugin-oxc": "npm:^0.0.4" "@react-router/dev": "npm:^7.8.1" "@react-router/node": "npm:^7.8.1" @@ -9534,7 +11495,9 @@ __metadata: remark-gfm: "npm:^4.0.1" remark-validate-links: "npm:^13.1.0" rescript: "npm:^12.0.0" + satori: "npm:^0.19.2" search-insights: "npm:^2.17.3" + shiki: "npm:^3.22.0" tailwindcss: "npm:^4" to-vfile: "npm:^8.0.0" unified: "npm:^11.0.5" @@ -9581,6 +11544,13 @@ __metadata: languageName: node linkType: hard +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 + languageName: node + linkType: hard + "restore-cursor@npm:^5.0.0": version: 5.1.0 resolution: "restore-cursor@npm:5.1.0" @@ -9736,7 +11706,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -9750,6 +11720,13 @@ __metadata: languageName: node linkType: hard +"safe-identifier@npm:^0.4.1": + version: 0.4.2 + resolution: "safe-identifier@npm:0.4.2" + checksum: 10c0/a6b0cdb5347e48c5ea4ddf4cdca5359b12529a11a7368225c39f882fcc0e679c81e82e3b13e36bd27ba7bdec9286f4cc062e3e527464d93ba61290b6e0bc6747 + languageName: node + linkType: hard + "safe-push-apply@npm:^1.0.0": version: 1.0.0 resolution: "safe-push-apply@npm:1.0.0" @@ -9794,6 +11771,25 @@ __metadata: languageName: node linkType: hard +"satori@npm:^0.19.2": + version: 0.19.2 + resolution: "satori@npm:0.19.2" + dependencies: + "@shuding/opentype.js": "npm:1.4.0-beta.0" + css-background-parser: "npm:^0.1.0" + css-box-shadow: "npm:1.0.0-3" + css-gradient-parser: "npm:^0.0.17" + css-to-react-native: "npm:^3.0.0" + emoji-regex-xs: "npm:^2.0.1" + escape-html: "npm:^1.0.3" + linebreak: "npm:^1.1.0" + parse-css-color: "npm:^0.2.1" + postcss-value-parser: "npm:^4.2.0" + yoga-layout: "npm:^3.2.1" + checksum: 10c0/8a5b1a6d481466b03d5c8d66ed80427b7c7b95e129eb63bb4b66cf6fe7f3adeeccc4155450a665645208f222bafa9f07d8b14f8aa8a9e71fc0f077ed701a3f4c + languageName: node + linkType: hard + "saxes@npm:^6.0.0": version: 6.0.0 resolution: "saxes@npm:6.0.0" @@ -9810,6 +11806,29 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^3.1.1": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": "npm:^7.0.8" + ajv: "npm:^6.12.5" + ajv-keywords: "npm:^3.5.2" + checksum: 10c0/fafdbde91ad8aa1316bc543d4b61e65ea86970aebbfb750bfb6d8a6c287a23e415e0e926c2498696b242f63af1aab8e585252637fabe811fd37b604351da6500 + languageName: node + linkType: hard + +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.3.0, schema-utils@npm:^4.3.3": + version: 4.3.3 + resolution: "schema-utils@npm:4.3.3" + dependencies: + "@types/json-schema": "npm:^7.0.9" + ajv: "npm:^8.9.0" + ajv-formats: "npm:^2.1.1" + ajv-keywords: "npm:^5.1.0" + checksum: 10c0/1c8d2c480a026d7c02ab2ecbe5919133a096d6a721a3f201fa50663e4f30f6d6ba020dfddd93cb828b66b922e76b342e103edd19a62c95c8f60e9079cc403202 + languageName: node + linkType: hard + "search-insights@npm:^2.17.3": version: 2.17.3 resolution: "search-insights@npm:2.17.3" @@ -9852,6 +11871,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.5.4, semver@npm:^7.6.2": + version: 7.7.4 + resolution: "semver@npm:7.7.4" + bin: + semver: bin/semver.js + checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2 + languageName: node + linkType: hard + "send@npm:0.19.0": version: 0.19.0 resolution: "send@npm:0.19.0" @@ -9873,6 +11901,15 @@ __metadata: languageName: node linkType: hard +"serialize-javascript@npm:^6.0.2": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: "npm:^2.1.0" + checksum: 10c0/2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2 + languageName: node + linkType: hard + "serve-index@npm:^1.9.1": version: 1.9.1 resolution: "serve-index@npm:1.9.1" @@ -10058,6 +12095,22 @@ __metadata: languageName: node linkType: hard +"shiki@npm:^3.22.0": + version: 3.22.0 + resolution: "shiki@npm:3.22.0" + dependencies: + "@shikijs/core": "npm:3.22.0" + "@shikijs/engine-javascript": "npm:3.22.0" + "@shikijs/engine-oniguruma": "npm:3.22.0" + "@shikijs/langs": "npm:3.22.0" + "@shikijs/themes": "npm:3.22.0" + "@shikijs/types": "npm:3.22.0" + "@shikijs/vscode-textmate": "npm:^10.0.2" + "@types/hast": "npm:^3.0.4" + checksum: 10c0/a7c91d769b42a69c496848197d876ec4577f789d1e7e3b5c18136a289f1dcac805bf24d56e43abb48be9c7cc6767c0f70eb2e2f33f77f4f5377141fb6851e840 + languageName: node + linkType: hard + "side-channel-list@npm:^1.0.0": version: 1.0.0 resolution: "side-channel-list@npm:1.0.0" @@ -10182,7 +12235,17 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.1": +"source-map-support@npm:~0.5.20": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10c0/9ee09942f415e0f721d6daad3917ec1516af746a8120bba7bb56278707a37f1eb8642bde456e98454b8a885023af81a16e646869975f06afc1a711fb90484e7d + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 @@ -10312,6 +12375,24 @@ __metadata: languageName: node linkType: hard +"storybook@npm:~8.5.8": + version: 8.5.8 + resolution: "storybook@npm:8.5.8" + dependencies: + "@storybook/core": "npm:8.5.8" + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + bin: + getstorybook: ./bin/index.cjs + sb: ./bin/index.cjs + storybook: ./bin/index.cjs + checksum: 10c0/a02ccf3132c05341139deb23dd7731191b4542b80d0d4ed772d06f483373be5713e3db1003fddb8823da417c5c9353273032d30d61cfa6084a04b9b33dc764cc + languageName: node + linkType: hard + "stream-shift@npm:^1.0.0, stream-shift@npm:^1.0.2": version: 1.0.3 resolution: "stream-shift@npm:1.0.3" @@ -10363,6 +12444,13 @@ __metadata: languageName: node linkType: hard +"string.prototype.codepointat@npm:^0.2.1": + version: 0.2.1 + resolution: "string.prototype.codepointat@npm:0.2.1" + checksum: 10c0/83c4d2f83b6f3f8f377e0b36628b74a9efcaf5a725e6fb6354f15f30f0399c8f4b08956df883877b2b0f50dd2e644ed7e8b1f6d45bdee2dc5b3f4248796607fa + languageName: node + linkType: hard + "string.prototype.trim@npm:^1.2.10": version: 1.2.10 resolution: "string.prototype.trim@npm:1.2.10" @@ -10461,6 +12549,15 @@ __metadata: languageName: node linkType: hard +"style-loader@npm:^3.3.1": + version: 3.3.4 + resolution: "style-loader@npm:3.3.4" + peerDependencies: + webpack: ^5.0.0 + checksum: 10c0/8f8027fc5c6e91400cbb60066e7db3315810f8eaa0d19b2a254936eb0bec399ba8a7043b1789da9d05ab7c3ba50faf9267765ae0bf3571e48aa34ecdc774be37 + languageName: node + linkType: hard + "style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": version: 4.1.3 resolution: "style-mod@npm:4.1.3" @@ -10493,6 +12590,24 @@ __metadata: languageName: node linkType: hard +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 + languageName: node + linkType: hard + "supports-color@npm:^9.0.0": version: 9.4.0 resolution: "supports-color@npm:9.4.0" @@ -10533,7 +12648,7 @@ __metadata: languageName: node linkType: hard -"tapable@npm:^2.2.0": +"tapable@npm:^2.0.0, tapable@npm:^2.2.0, tapable@npm:^2.2.1, tapable@npm:^2.3.0": version: 2.3.0 resolution: "tapable@npm:2.3.0" checksum: 10c0/cb9d67cc2c6a74dedc812ef3085d9d681edd2c1fa18e4aef57a3c0605fdbe44e6b8ea00bd9ef21bc74dd45314e39d31227aa031ebf2f5e38164df514136f2681 @@ -10553,6 +12668,42 @@ __metadata: languageName: node linkType: hard +"terser-webpack-plugin@npm:^5.3.1, terser-webpack-plugin@npm:^5.3.16": + version: 5.3.16 + resolution: "terser-webpack-plugin@npm:5.3.16" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.25" + jest-worker: "npm:^27.4.5" + schema-utils: "npm:^4.3.0" + serialize-javascript: "npm:^6.0.2" + terser: "npm:^5.31.1" + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: 10c0/39e37c5b3015c1a5354a3633f77235677bfa06eac2608ce26d258b1d1a74070a99910319a6f2f2c437eb61dc321f66434febe01d78e73fa96b4d4393b813f4cf + languageName: node + linkType: hard + +"terser@npm:^5.10.0, terser@npm:^5.31.1": + version: 5.46.0 + resolution: "terser@npm:5.46.0" + dependencies: + "@jridgewell/source-map": "npm:^0.3.3" + acorn: "npm:^8.15.0" + commander: "npm:^2.20.0" + source-map-support: "npm:~0.5.20" + bin: + terser: bin/terser + checksum: 10c0/93ad468f13187c4f66b609bbfc00a6aee752007779ca3157f2c1ee063697815748d6010fd449a16c30be33213748431d5f54cc0224ba6a3fbbf5acd3582a4356 + languageName: node + linkType: hard + "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -10586,6 +12737,20 @@ __metadata: languageName: node linkType: hard +"tiny-inflate@npm:^1.0.0": + version: 1.0.3 + resolution: "tiny-inflate@npm:1.0.3" + checksum: 10c0/fab687537254f6ec44c9a2e880048fe70da3542aba28f73cda3e74c95cabf342a339372f2a6c032e322324f01accc03ca26c04ba2bad9b3eb8cf3ee99bba7f9b + languageName: node + linkType: hard + +"tiny-invariant@npm:^1.3.1, tiny-invariant@npm:^1.3.3": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 10c0/65af4a07324b591a059b35269cd696aba21bef2107f29b9f5894d83cc143159a204b299553435b03874ebb5b94d019afa8b8eff241c8a4cfee95872c2e1c1c4a + languageName: node + linkType: hard + "tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" @@ -10692,6 +12857,13 @@ __metadata: languageName: node linkType: hard +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 + languageName: node + linkType: hard + "traverse@npm:^0.6.6": version: 0.6.11 resolution: "traverse@npm:0.6.11" @@ -10717,13 +12889,27 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.4.0, tslib@npm:^2.8.0": +"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 10c0/175adea838468cc2ff7d5e97f970dcb798bbcb623f29c6088cb21aa2880d207c5784be81ab1741f56b9ac37840cbaba0c0d79f7f8b67ffe61c02634cafa5c303 + languageName: node + linkType: hard + +"tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.8.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 languageName: node linkType: hard +"type-fest@npm:^2.19.0": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: 10c0/a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb + languageName: node + linkType: hard + "type-fest@npm:^3.8.0": version: 3.13.1 resolution: "type-fest@npm:3.13.1" @@ -10884,6 +13070,16 @@ __metadata: languageName: node linkType: hard +"unicode-trie@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-trie@npm:2.0.0" + dependencies: + pako: "npm:^0.2.5" + tiny-inflate: "npm:^1.0.0" + checksum: 10c0/2422368645249f315640a1c9e9506046aa7738fc9c5d59e15c207cdd6ec66101c35b0b9f75dc3ac28fe7be19aaf1efc898bbea074fa1e8e295ef736aeb7904bb + languageName: node + linkType: hard + "unified-args@npm:^11.0.0": version: 11.0.1 resolution: "unified-args@npm:11.0.1" @@ -11043,6 +13239,16 @@ __metadata: languageName: node linkType: hard +"unplugin@npm:^1.3.1": + version: 1.16.1 + resolution: "unplugin@npm:1.16.1" + dependencies: + acorn: "npm:^8.14.0" + webpack-virtual-modules: "npm:^0.6.2" + checksum: 10c0/dd5f8c5727d0135847da73cf03fb199107f1acf458167034886fda3405737dab871ad3926431b4f70e1e82cdac482ac1383cea4019d782a68515c8e3e611b6cc + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.1.4": version: 1.1.4 resolution: "update-browserslist-db@npm:1.1.4" @@ -11057,6 +13263,29 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.2.0": + version: 1.2.3 + resolution: "update-browserslist-db@npm:1.2.3" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/13a00355ea822388f68af57410ce3255941d5fb9b7c49342c4709a07c9f230bbef7f7499ae0ca7e0de532e79a82cc0c4edbd125f1a323a1845bf914efddf8bec + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c + languageName: node + linkType: hard + "urijs@npm:^1.19.1": version: 1.19.11 resolution: "urijs@npm:1.19.11" @@ -11064,6 +13293,16 @@ __metadata: languageName: node linkType: hard +"url@npm:^0.11.0": + version: 0.11.4 + resolution: "url@npm:0.11.4" + dependencies: + punycode: "npm:^1.4.1" + qs: "npm:^6.12.3" + checksum: 10c0/cc93405ae4a9b97a2aa60ca67f1cb1481c0221cb4725a7341d149be5e2f9cfda26fd432d64dbbec693d16593b68b8a46aad8e5eab21f814932134c9d8620c662 + languageName: node + linkType: hard + "use-sync-external-store@npm:^1.4.0, use-sync-external-store@npm:^1.5.0": version: 1.6.0 resolution: "use-sync-external-store@npm:1.6.0" @@ -11073,13 +13312,33 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 languageName: node linkType: hard +"util@npm:^0.12.4, util@npm:^0.12.5": + version: 0.12.5 + resolution: "util@npm:0.12.5" + dependencies: + inherits: "npm:^2.0.3" + is-arguments: "npm:^1.0.4" + is-generator-function: "npm:^1.0.7" + is-typed-array: "npm:^1.1.3" + which-typed-array: "npm:^1.1.2" + checksum: 10c0/c27054de2cea2229a66c09522d0fa1415fb12d861d08523a8846bf2e4cbf0079d4c3f725f09dcb87493549bcbf05f5798dce1688b53c6c17201a45759e7253f3 + languageName: node + linkType: hard + +"utila@npm:~0.4": + version: 0.4.0 + resolution: "utila@npm:0.4.0" + checksum: 10c0/2791604e09ca4f77ae314df83e80d1805f867eb5c7e13e7413caee01273c278cf2c9a3670d8d25c889a877f7b149d892fe61b0181a81654b425e9622ab23d42e + languageName: node + linkType: hard + "utils-merge@npm:1.0.1": version: 1.0.1 resolution: "utils-merge@npm:1.0.1" @@ -11096,6 +13355,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^9.0.0": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b + languageName: node + linkType: hard + "valibot@npm:^1.1.0": version: 1.2.0 resolution: "valibot@npm:1.2.0" @@ -11456,6 +13724,23 @@ __metadata: languageName: node linkType: hard +"watchpack@npm:^2.5.1": + version: 2.5.1 + resolution: "watchpack@npm:2.5.1" + dependencies: + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.1.2" + checksum: 10c0/dffbb483d1f61be90dc570630a1eb308581e2227d507d783b1d94a57ac7b705ecd9a1a4b73d73c15eab596d39874e5276a3d9cb88bbb698bafc3f8d08c34cf17 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db + languageName: node + linkType: hard + "webidl-conversions@npm:^7.0.0": version: 7.0.0 resolution: "webidl-conversions@npm:7.0.0" @@ -11463,6 +13748,87 @@ __metadata: languageName: node linkType: hard +"webpack-dev-middleware@npm:^6.1.2": + version: 6.1.3 + resolution: "webpack-dev-middleware@npm:6.1.3" + dependencies: + colorette: "npm:^2.0.10" + memfs: "npm:^3.4.12" + mime-types: "npm:^2.1.31" + range-parser: "npm:^1.2.1" + schema-utils: "npm:^4.0.0" + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + checksum: 10c0/0f31670835f3c0f588392235a6183facf314c0dca312467254a56458142be6fee746f7f6b304f281c740364fd36f256c597ab37d87e5971633cee2f70a8cd5e7 + languageName: node + linkType: hard + +"webpack-hot-middleware@npm:^2.25.1": + version: 2.26.1 + resolution: "webpack-hot-middleware@npm:2.26.1" + dependencies: + ansi-html-community: "npm:0.0.8" + html-entities: "npm:^2.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/13a3e78009e373b4ee990ffe1d4d49046e9893148a7106f063e11f962d02b744ea58b1dec25f5e76723c9dce678b9e68c883e7f2af2940aaf4de7aab31264c83 + languageName: node + linkType: hard + +"webpack-sources@npm:^3.3.3": + version: 3.3.4 + resolution: "webpack-sources@npm:3.3.4" + checksum: 10c0/94a42508531338eb41939cf1d48a4a8a6db97f3a47e5453cff2133a68d3169ca779d4bcbe9dfed072ce16611959eba1e16f085bc2dc56714e1a1c1783fd661a3 + languageName: node + linkType: hard + +"webpack-virtual-modules@npm:^0.6.0, webpack-virtual-modules@npm:^0.6.2": + version: 0.6.2 + resolution: "webpack-virtual-modules@npm:0.6.2" + checksum: 10c0/5ffbddf0e84bf1562ff86cf6fcf039c74edf09d78358a6904a09bbd4484e8bb6812dc385fe14330b715031892dcd8423f7a88278b57c9f5002c84c2860179add + languageName: node + linkType: hard + +"webpack@npm:5": + version: 5.105.2 + resolution: "webpack@npm:5.105.2" + dependencies: + "@types/eslint-scope": "npm:^3.7.7" + "@types/estree": "npm:^1.0.8" + "@types/json-schema": "npm:^7.0.15" + "@webassemblyjs/ast": "npm:^1.14.1" + "@webassemblyjs/wasm-edit": "npm:^1.14.1" + "@webassemblyjs/wasm-parser": "npm:^1.14.1" + acorn: "npm:^8.15.0" + acorn-import-phases: "npm:^1.0.3" + browserslist: "npm:^4.28.1" + chrome-trace-event: "npm:^1.0.2" + enhanced-resolve: "npm:^5.19.0" + es-module-lexer: "npm:^2.0.0" + eslint-scope: "npm:5.1.1" + events: "npm:^3.2.0" + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.2.11" + json-parse-even-better-errors: "npm:^2.3.1" + loader-runner: "npm:^4.3.1" + mime-types: "npm:^2.1.27" + neo-async: "npm:^2.6.2" + schema-utils: "npm:^4.3.3" + tapable: "npm:^2.3.0" + terser-webpack-plugin: "npm:^5.3.16" + watchpack: "npm:^2.5.1" + webpack-sources: "npm:^3.3.3" + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 10c0/565df8072c00d72e0a22e136971862b7eac7beb8b8d39a2ae4ab00838941ea58acc5b49dd7ea268e3d839810756cb86ba5c272b3a25904f6db7807cfa8ed0b29 + languageName: node + linkType: hard + "whatwg-encoding@npm:^3.1.1": version: 3.1.1 resolution: "whatwg-encoding@npm:3.1.1" @@ -11489,6 +13855,16 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": version: 1.1.1 resolution: "which-boxed-primitive@npm:1.1.1" @@ -11550,6 +13926,21 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.2": + version: 1.1.20 + resolution: "which-typed-array@npm:1.1.20" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + for-each: "npm:^0.3.5" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/16fcdada95c8afb821cd1117f0ab50b4d8551677ac08187f21d4e444530913c9ffd2dac634f0c1183345f96344b69280f40f9a8bc52164ef409e555567c2604b + languageName: node + linkType: hard + "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -11746,7 +14137,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.3": +"ws@npm:^8.18.3, ws@npm:^8.2.3": version: 8.19.0 resolution: "ws@npm:8.19.0" peerDependencies: @@ -11812,6 +14203,24 @@ __metadata: languageName: node linkType: hard +"yaml-loader@npm:^0.8.0": + version: 0.8.1 + resolution: "yaml-loader@npm:0.8.1" + dependencies: + javascript-stringify: "npm:^2.0.1" + loader-utils: "npm:^2.0.0" + yaml: "npm:^2.0.0" + checksum: 10c0/4bb4789c8ace38067ff68a67fba27626c0793f4d001a485d2334bff7c4fed73ee1696bee287949a834c3387655df2e27e3d7c52ad7d3c20cd5c5ecbff320ff57 + languageName: node + linkType: hard + +"yaml@npm:^1.10.0": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: 10c0/5c28b9eb7adc46544f28d9a8d20c5b3cb1215a886609a2fd41f51628d8aaa5878ccd628b755dbcd29f6bb4921bd04ffbc6dcc370689bb96e594e2f9813d2605f + languageName: node + linkType: hard + "yaml@npm:^2.0.0": version: 2.8.1 resolution: "yaml@npm:2.8.1" @@ -11821,6 +14230,22 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.3.1": + version: 2.8.2 + resolution: "yaml@npm:2.8.2" + bin: + yaml: bin.mjs + checksum: 10c0/703e4dc1e34b324aa66876d63618dcacb9ed49f7e7fe9b70f1e703645be8d640f68ab84f12b86df8ac960bac37acf5513e115de7c970940617ce0343c8c9cd96 + languageName: node + linkType: hard + +"yoga-layout@npm:^3.2.1": + version: 3.2.1 + resolution: "yoga-layout@npm:3.2.1" + checksum: 10c0/9001e51be993c85e03757e5a04a2b61b8b30c9e5a7865d0156ca87a6431a3b717d51eb4990bfe588189fcfeac688dd9c3de707bbd50d1c344a84e63974cc54a8 + languageName: node + linkType: hard + "youch-core@npm:^0.3.3": version: 0.3.3 resolution: "youch-core@npm:0.3.3"