diff --git a/.circleci/config.yml b/.circleci/config.yml index 5e7cc4a22d24..617cdac42c28 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -609,22 +609,22 @@ workflows: requires: - build - create-sandboxes: - parallelism: 35 + parallelism: 34 requires: - build # - smoke-test-sandboxes: # disabled for now # requires: # - create-sandboxes - build-sandboxes: - parallelism: 35 + parallelism: 34 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 32 + parallelism: 31 requires: - build-sandboxes - e2e-production: - parallelism: 32 + parallelism: 31 requires: - build-sandboxes - e2e-dev: @@ -632,7 +632,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 32 + parallelism: 31 requires: - build-sandboxes # TODO: reenable once we find out the source of flakyness diff --git a/.gitattributes b/.gitattributes index 5b3c7a66024e..f3054f34dd73 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ /**/.yarn/** linguist-generated +* -text \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index cbf53f0d9ac1..871971bac231 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -30,7 +30,7 @@ body: attributes: label: System description: Please paste the results of `npx storybook@latest info` here. - render: shell + render: bash - type: textarea id: context attributes: diff --git a/.github/workflows/canary-release-pr.yml b/.github/workflows/canary-release-pr.yml index 4b1504cfd1bf..827f24a2c5f8 100644 --- a/.github/workflows/canary-release-pr.yml +++ b/.github/workflows/canary-release-pr.yml @@ -58,8 +58,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: '16' - + node-version-file: '.nvmrc' - name: Cache dependencies uses: actions/cache@v3 with: diff --git a/.github/workflows/danger-js.yml b/.github/workflows/danger-js.yml index f83519953b4b..eddb5dee1fe7 100644 --- a/.github/workflows/danger-js.yml +++ b/.github/workflows/danger-js.yml @@ -21,10 +21,10 @@ jobs: name: Danger JS runs-on: ubuntu-latest steps: + - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: '16' - - uses: actions/checkout@v3 + node-version-file: '.nvmrc' - name: Danger JS uses: danger/danger-js@11.2.6 env: diff --git a/.github/workflows/generate-sandboxes-main.yml b/.github/workflows/generate-sandboxes-main.yml index 66cd1b800d37..474542495848 100644 --- a/.github/workflows/generate-sandboxes-main.yml +++ b/.github/workflows/generate-sandboxes-main.yml @@ -43,7 +43,7 @@ jobs: run: yarn wait-on http://localhost:6001 working-directory: ./code - name: Generate - run: yarn generate-sandboxes --local-registry + run: yarn generate-sandboxes --local-registry --exclude=angular-cli/prerelease working-directory: ./code - name: Publish run: yarn publish-sandboxes --remote=https://storybook-bot:${{ secrets.PAT_STORYBOOK_BOT}}@github.com/storybookjs/sandboxes.git --push --branch=main diff --git a/.github/workflows/generate-sandboxes-next.yml b/.github/workflows/generate-sandboxes-next.yml index f22e7cb4a50b..c20f5491ef30 100644 --- a/.github/workflows/generate-sandboxes-next.yml +++ b/.github/workflows/generate-sandboxes-next.yml @@ -43,7 +43,7 @@ jobs: run: yarn wait-on http://localhost:6001 working-directory: ./code - name: Generate - run: yarn generate-sandboxes --local-registry + run: yarn generate-sandboxes --local-registry --exclude=angular-cli/prerelease --debug working-directory: ./code - name: Publish run: yarn publish-sandboxes --remote=https://storybook-bot:${{ secrets.PAT_STORYBOOK_BOT}}@github.com/storybookjs/sandboxes.git --push --branch=next diff --git a/.github/workflows/prepare-prerelease.yml b/.github/workflows/prepare-non-patch-release.yml similarity index 80% rename from .github/workflows/prepare-prerelease.yml rename to .github/workflows/prepare-non-patch-release.yml index 1250aedcfaa3..ea72d924d918 100644 --- a/.github/workflows/prepare-prerelease.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -34,7 +34,7 @@ concurrency: cancel-in-progress: true jobs: - prepare-prerelease-pull-request: + prepare-non-patch-pull-request: name: Prepare prerelease pull request runs-on: ubuntu-latest environment: release @@ -54,7 +54,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: '16' + node-version-file: '.nvmrc' - name: Cache dependencies uses: actions/cache@v3 @@ -112,21 +112,35 @@ jobs: run: | yarn release:version --deferred --release-type ${{ inputs.release-type || 'prerelease' }} ${{ inputs.pre-id && format('{0} {1}', '--pre-id', inputs.pre-id) || '' }} --verbose + - name: Check release vs prerelease + id: is-prerelease + run: yarn release:is-prerelease ${{ steps.bump-version.outputs.next-version }} + - name: Write changelog env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | yarn release:write-changelog ${{ steps.bump-version.outputs.next-version }} --verbose - - name: 'Commit changes to branch: version-prerelease-from-${{ steps.bump-version.outputs.current-version }}' + - name: 'Commit changes to branch: version-non-patch-from-${{ steps.bump-version.outputs.current-version }}' working-directory: . run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b version-prerelease-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git add . + git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true + git push --force origin version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + + - name: Resolve merge-conflicts with base branch + if: steps.is-prerelease.outputs.prerelease == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git pull origin latest-release + git checkout --ours . git add . - git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }}" || true - git push --force origin version-prerelease-from-${{ steps.bump-version.outputs.current-version }} + git commit -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" - name: Generate PR description id: description @@ -144,14 +158,15 @@ jobs: gh pr edit \ --repo "${{github.repository }}" \ --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ - --base next-release \ - --head version-prerelease-from-${{ steps.bump-version.outputs.current-version }} \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ + --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ --body "${{ steps.description.outputs.description }}" fi diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-patch-release.yml index c88022c7ea01..5cdc1ba44fcf 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -33,7 +33,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: '16' + node-version-file: '.nvmrc' - name: Cache dependencies uses: actions/cache@v3 @@ -88,6 +88,15 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' yarn release:pick-patches + - name: Cancel when no patches to pick + if: steps.pick-patches.outputs.pr-count == '0' && steps.pick-patches.outputs.pr-count != null + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # From https://stackoverflow.com/a/75809743 + run: | + gh run cancel ${{ github.run_id }} + gh run watch ${{ github.run_id }} + - name: Bump version deferred id: bump-version if: steps.unreleased-changes.outputs.has-changes-to-release == 'true' @@ -121,7 +130,7 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' git checkout -b version-patch-from-${{ steps.versions.outputs.current }} git add . - git commit -m "Write changelog for ${{ steps.versions.outputs.next }}" || true + git commit -m "Write changelog for ${{ steps.versions.outputs.next }} [skip ci]" || true git push --force origin version-patch-from-${{ steps.versions.outputs.current }} - name: Generate PR description diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 18e23c174162..df82ca33c9a5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,7 @@ on: push: branches: - latest-release - - next-release + - non-patch-release env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 @@ -36,6 +36,11 @@ jobs: gh run cancel ${{ github.run_id }} gh run watch ${{ github.run_id }} + - name: Cancel all release preparation runs + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: yarn release:cancel-preparation-runs + - name: Checkout ${{ github.ref_name }} uses: actions/checkout@v3 with: @@ -45,7 +50,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: '16' + node-version-file: '.nvmrc' - name: Cache dependencies uses: actions/cache@v3 @@ -63,7 +68,6 @@ jobs: yarn install - name: Apply deferred version bump and commit - id: version-bump working-directory: . run: | CURRENT_VERSION=$(cat ./code/package.json | jq '.version') @@ -122,12 +126,11 @@ jobs: run: git fetch --tags origin # when this is a patch release from main, label any patch PRs included in the release - # when this is a stable release from next, label ALL patch PRs found, as they will per definition be "patched" now - name: Label patch PRs as picked - if: github.ref_name == 'latest-release' || (steps.publish-needed.outputs.published == 'false' && steps.target.outputs.target == 'next' && !steps.is-prerelease.outputs.prerelease) + if: github.ref_name == 'latest-release' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: yarn release:label-patches ${{ steps.target.outputs.target == 'next' && '--all' || '' }} + run: yarn release:label-patches - name: Create GitHub Release if: steps.publish-needed.outputs.published == 'false' @@ -151,8 +154,20 @@ jobs: git merge ${{ github.ref_name }} git push origin ${{ steps.target.outputs.target }} + - name: Ensure `next` is a minor version ahead of `main` + if: steps.target.outputs.target == 'main' + run: | + git checkout next + git pull + + yarn release:ensure-next-ahead --main-version "${{ steps.version.outputs.current-version }}" + + git add .. + git commit -m "Bump next to be one minor ahead of main [skip ci]" + git push origin next + - name: Sync CHANGELOG.md from `main` to `next` - if: github.ref_name == 'latest-release' + if: steps.target.outputs.target == 'main' working-directory: . run: | git fetch origin next @@ -160,7 +175,7 @@ jobs: git pull git checkout origin/main ./CHANGELOG.md git add ./CHANGELOG.md - git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" + git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" || true git push origin next - name: Sync version JSONs from `next-release` to `main` @@ -176,10 +191,6 @@ jobs: git commit -m "Update $VERSION_FILE for v${{ steps.version.outputs.current-version }}" git push origin main - - name: Overwrite main with next - if: steps.target.outputs.target == 'next' && steps.is-prerelease.outputs.prerelease == 'false' - run: git push --force origin next:main - - name: Report job failure to Discord if: failure() env: diff --git a/.gitignore b/.gitignore index 29c025aadf26..63f9445af854 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,6 @@ coverage/ /**/LICENSE code/docs/public package-lock.json -.nvmrc storybook-static .jest-test-results.json *.jar diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000000..59ea99ee63cb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +16.20 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a0baacd83b2..b4400d25c0c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,41 @@ +## 7.4.6 + +- CLI: Fix Nextjs project detection - [#24346](https://github.com/storybookjs/storybook/pull/24346), thanks [@yannbf](https://github.com/yannbf)! +- Core: Fix missing favicon during dev - [#24356](https://github.com/storybookjs/storybook/pull/24356), thanks [@ndelangen](https://github.com/ndelangen)! + +## 7.4.5 + +- UI: Fix infinite hook call causing browsers to freeze - [#24291](https://github.com/storybookjs/storybook/pull/24291), thanks [@yannbf](https://github.com/yannbf)! + +## 7.4.4 + +- Core: Fix Promise cycle bug in useSharedState - [#24268](https://github.com/storybookjs/storybook/pull/24268), thanks [@ndelangen](https://github.com/ndelangen)! +- Manager: Fix useAddonState when using a setter function - [#24237](https://github.com/storybookjs/storybook/pull/24237), thanks [@ndelangen](https://github.com/ndelangen)! + +## 7.4.3 + +- CLI: Fix `sb add` adding duplicative entries - [#24229](https://github.com/storybookjs/storybook/pull/24229), thanks [@ndelangen](https://github.com/ndelangen)! +- NextJS: Add compatibility with nextjs `13.5` - [#24239](https://github.com/storybookjs/storybook/pull/24239), thanks [@ndelangen](https://github.com/ndelangen)! +- NextJS: Aliases `react` and `react-dom` like `next.js` does - [#23671](https://github.com/storybookjs/storybook/pull/23671), thanks [@sookmax](https://github.com/sookmax)! +- Types: Allow `null` in value of `experimental_updateStatus` to clear status - [#24206](https://github.com/storybookjs/storybook/pull/24206), thanks [@ndelangen](https://github.com/ndelangen)! + +## 7.4.2 + +- Addon API: Improve the updateStatus API - [#24007](https://github.com/storybookjs/storybook/pull/24007), thanks [@ndelangen](https://github.com/ndelangen)! +- Nextjs: Migrate from config to previewAnnotations - [#24178](https://github.com/storybookjs/storybook/pull/24178), thanks [@yannbf](https://github.com/yannbf)! +- UI: Fix SVG override fill when path has a fill attribute - [#24156](https://github.com/storybookjs/storybook/pull/24156), thanks [@ndelangen](https://github.com/ndelangen)! +- UI: Improve look and feel of status UI in sidebar - [#24099](https://github.com/storybookjs/storybook/pull/24099), thanks [@ndelangen](https://github.com/ndelangen)! + +## 7.4.1 + +- CLI: Add uncaughtException handler - [#24018](https://github.com/storybookjs/storybook/pull/24018), thanks [@yannbf](https://github.com/yannbf)! +- CLI: Fix packageManager handling in `sb add` - [#24079](https://github.com/storybookjs/storybook/pull/24079), thanks [@Integrayshaun](https://github.com/Integrayshaun)! +- Core: Add CJS entrypoints to errors in core events - [#24038](https://github.com/storybookjs/storybook/pull/24038), thanks [@yannbf](https://github.com/yannbf)! +- Docs: Fix TOC import - [#24047](https://github.com/storybookjs/storybook/pull/24047), thanks [@shilman](https://github.com/shilman)! +- Telemetry: Filter addon options to protect sensitive info - [#24000](https://github.com/storybookjs/storybook/pull/24000), thanks [@shilman](https://github.com/shilman)! +- Types: Remove `@types/react` dep from `@storybook/types` - [#24042](https://github.com/storybookjs/storybook/pull/24042), thanks [@JReinhold](https://github.com/JReinhold)! +- Vue3: Remove console.log in sourceDecorator - [#24062](https://github.com/storybookjs/storybook/pull/24062), thanks [@oruman](https://github.com/oruman)! + ## 7.4.0 - Addon-docs: Resolve `mdx-react-shim` & `@storybook/global` correctly - [#23941](https://github.com/storybookjs/storybook/pull/23941), thanks [@ndelangen](https://github.com/ndelangen)! diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md index c0ecfbb41227..19e7eaae9c2a 100644 --- a/CHANGELOG.prerelease.md +++ b/CHANGELOG.prerelease.md @@ -1,3 +1,82 @@ +## 7.5.0-alpha.5 + +- Angular: Fix Angular 15 support and add zone.js v0.14.x support - [#24367](https://github.com/storybookjs/storybook/pull/24367), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)! +- NextJS: Fix Image Context re-use via singleton - [#24146](https://github.com/storybookjs/storybook/pull/24146), thanks [@martinnabhan](https://github.com/martinnabhan)! +- NextJS: Fix default next image loader when src has params - [#24187](https://github.com/storybookjs/storybook/pull/24187), thanks [@json-betsec](https://github.com/json-betsec)! +- React: Upgrade `react-docgen` to 6.0.x and improve argTypes - [#23825](https://github.com/storybookjs/storybook/pull/23825), thanks [@shilman](https://github.com/shilman)! + +## 7.5.0-alpha.4 + +- CLI: Fix Nextjs project detection - [#24346](https://github.com/storybookjs/storybook/pull/24346), thanks [@yannbf](https://github.com/yannbf)! +- Core: Deprecate `storyStoreV6` (including `storiesOf`) and `storyIndexers` - [#23938](https://github.com/storybookjs/storybook/pull/23938), thanks [@JReinhold](https://github.com/JReinhold)! +- Core: Fix Promise cycle bug in useSharedState - [#24268](https://github.com/storybookjs/storybook/pull/24268), thanks [@ndelangen](https://github.com/ndelangen)! +- Core: Fix missing favicon during dev - [#24356](https://github.com/storybookjs/storybook/pull/24356), thanks [@ndelangen](https://github.com/ndelangen)! +- NextJS: Change babel plugins from `proposal-...` to `transform-...` - [#24290](https://github.com/storybookjs/storybook/pull/24290), thanks [@roottool](https://github.com/roottool)! +- Nextjs: Improve support for Windows-style paths - [#23695](https://github.com/storybookjs/storybook/pull/23695), thanks [@T99](https://github.com/T99)! +- UI: Fix infinite hook call causing browsers to freeze - [#24291](https://github.com/storybookjs/storybook/pull/24291), thanks [@yannbf](https://github.com/yannbf)! +- UI: Improve contrast ratio between focus / hover - [#24205](https://github.com/storybookjs/storybook/pull/24205), thanks [@chocoscoding](https://github.com/chocoscoding)! +- Vite: Move mdx-plugin from @storybook/builder-vite to @storybook/addon-docs - [#24166](https://github.com/storybookjs/storybook/pull/24166), thanks [@bryanjtc](https://github.com/bryanjtc)! + +## 7.5.0-alpha.3 + +- Build: Filter some manager errors - [#24217](https://github.com/storybookjs/storybook/pull/24217), thanks [@yannbf](https://github.com/yannbf)! +- Build: Migrate @storybook/addon-backgrounds to strict-ts - [#22178](https://github.com/storybookjs/storybook/pull/22178), thanks [@kasperpeulen](https://github.com/kasperpeulen)! +- Build: Upgrade chromatic bin package - [#24133](https://github.com/storybookjs/storybook/pull/24133), thanks [@ndelangen](https://github.com/ndelangen)! +- CLI: Change `/Date$/` to `/Dates$/i` - [#24195](https://github.com/storybookjs/storybook/pull/24195), thanks [@arup1221](https://github.com/arup1221)! +- CLI: Fix `sb add` adding duplicative entries - [#24229](https://github.com/storybookjs/storybook/pull/24229), thanks [@ndelangen](https://github.com/ndelangen)! +- Core: Throw an error when critical presets fail to load - [#24176](https://github.com/storybookjs/storybook/pull/24176), thanks [@yannbf](https://github.com/yannbf)! +- Core: Unify error when builder is missing - [#24177](https://github.com/storybookjs/storybook/pull/24177), thanks [@yannbf](https://github.com/yannbf)! +- Core: Upgrade `esbuild-register` to `3.5.0` - [#24175](https://github.com/storybookjs/storybook/pull/24175), thanks [@anneau](https://github.com/anneau)! +- Dependencies: Upgrade `file-system-cache` - [#24232](https://github.com/storybookjs/storybook/pull/24232), thanks [@seriouz](https://github.com/seriouz)! +- Indexer: Rename `index` to `createIndex` - [#24075](https://github.com/storybookjs/storybook/pull/24075), thanks [@JReinhold](https://github.com/JReinhold)! +- Maintenance: Regen lockfiles - [#24152](https://github.com/storybookjs/storybook/pull/24152), thanks [@ndelangen](https://github.com/ndelangen)! +- Manager: Fix useAddonState when using a setter function - [#24237](https://github.com/storybookjs/storybook/pull/24237), thanks [@ndelangen](https://github.com/ndelangen)! +- NextJS: Add compatibility with nextjs `13.5` - [#24239](https://github.com/storybookjs/storybook/pull/24239), thanks [@ndelangen](https://github.com/ndelangen)! +- NextJS: Aliases `react` and `react-dom` like `next.js` does - [#23671](https://github.com/storybookjs/storybook/pull/23671), thanks [@sookmax](https://github.com/sookmax)! +- Nextjs: Improve Google Fonts failure error messages and documentation - [#23891](https://github.com/storybookjs/storybook/pull/23891), thanks [@nsheaps](https://github.com/nsheaps)! +- Nextjs: Migrate from config to previewAnnotations - [#24178](https://github.com/storybookjs/storybook/pull/24178), thanks [@yannbf](https://github.com/yannbf)! +- Theming: Add `barHoverColor` - [#20169](https://github.com/storybookjs/storybook/pull/20169), thanks [@julien-deramond](https://github.com/julien-deramond)! +- Types: Allow `null` in value of `experimental_updateStatus` to clear status - [#24206](https://github.com/storybookjs/storybook/pull/24206), thanks [@ndelangen](https://github.com/ndelangen)! +- Types: Don't distribute generic type of Meta and Story - [#24110](https://github.com/storybookjs/storybook/pull/24110), thanks [@kasperpeulen](https://github.com/kasperpeulen)! +- UI: Expand sidebar for selected story when using composition - [#23781](https://github.com/storybookjs/storybook/pull/23781), thanks [@joaonunomota](https://github.com/joaonunomota)! +- UI: Fix SVG override fill when path has a fill attribute - [#24156](https://github.com/storybookjs/storybook/pull/24156), thanks [@ndelangen](https://github.com/ndelangen)! +- UI: Fix TreeNode alignment when using a different font - [#22221](https://github.com/storybookjs/storybook/pull/22221), thanks [@bdriguesdev](https://github.com/bdriguesdev)! +- UI: Fix custom theme hover-color inconsistency - [#22262](https://github.com/storybookjs/storybook/pull/22262), thanks [@yoshi2no](https://github.com/yoshi2no)! +- UI: Fix keydown shortcut within shadow tree - [#24179](https://github.com/storybookjs/storybook/pull/24179), thanks [@stropitek](https://github.com/stropitek)! +- UI: Improve look and feel of status UI in sidebar - [#24099](https://github.com/storybookjs/storybook/pull/24099), thanks [@ndelangen](https://github.com/ndelangen)! + +## 7.5.0-alpha.2 + +- Angular: Categorize legacy build options error - [#24014](https://github.com/storybookjs/storybook/pull/24014), thanks [@yannbf](https://github.com/yannbf)! +- Builder-Webpack5: Categorize builder error - [#24031](https://github.com/storybookjs/storybook/pull/24031), thanks [@yannbf](https://github.com/yannbf)! +- CI: Inform the user how to dedupe and strip color from info command - [#24087](https://github.com/storybookjs/storybook/pull/24087), thanks [@kasperpeulen](https://github.com/kasperpeulen)! +- CLI: Fix packageManager handling in `sb add` - [#24079](https://github.com/storybookjs/storybook/pull/24079), thanks [@Integrayshaun](https://github.com/Integrayshaun)! +- CLI: Improve sanitization logic in crash reports - [#24028](https://github.com/storybookjs/storybook/pull/24028), thanks [@yannbf](https://github.com/yannbf)! +- Maintenance: Add more context to explanation in core-events errors - [#24063](https://github.com/storybookjs/storybook/pull/24063), thanks [@yannbf](https://github.com/yannbf)! +- Monorepo: Fix `svelte-vite` detection - [#24085](https://github.com/storybookjs/storybook/pull/24085), thanks [@legnaleurc](https://github.com/legnaleurc)! +- NextJS: Fix Image Context reuse (ensure singleton by externalizing it) - [#23881](https://github.com/storybookjs/storybook/pull/23881), thanks [@martinnabhan](https://github.com/martinnabhan)! +- Source-loader: Fix property key validation - [#24068](https://github.com/storybookjs/storybook/pull/24068), thanks [@MrZillaGold](https://github.com/MrZillaGold)! +- Svelte: Fix generated properties on Svelte event handler - [#24020](https://github.com/storybookjs/storybook/pull/24020), thanks [@j3rem1e](https://github.com/j3rem1e)! +- Telemetry: Add platform info to telemetry event - [#24081](https://github.com/storybookjs/storybook/pull/24081), thanks [@yannbf](https://github.com/yannbf)! +- UI: Fix target id in searchfield label - [#23464](https://github.com/storybookjs/storybook/pull/23464), thanks [@plumpNation](https://github.com/plumpNation)! +- Vue3: Remove console.log in sourceDecorator - [#24062](https://github.com/storybookjs/storybook/pull/24062), thanks [@oruman](https://github.com/oruman)! + +## 7.5.0-alpha.1 + +- Core: Add CJS entrypoints to errors in core events - [#24038](https://github.com/storybookjs/storybook/pull/24038), thanks [@yannbf](https://github.com/yannbf)! + +## 7.5.0-alpha.0 + +- Addon API: Improve the updateStatus API - [#24007](https://github.com/storybookjs/storybook/pull/24007), thanks [@ndelangen](https://github.com/ndelangen)! +- CLI: Add more information to `storybook info` command - [#24003](https://github.com/storybookjs/storybook/pull/24003), thanks [@JReinhold](https://github.com/JReinhold)! +- CLI: Add uncaughtException handler - [#24018](https://github.com/storybookjs/storybook/pull/24018), thanks [@yannbf](https://github.com/yannbf)! +- CLI: Remove random commas in storybook upgrade logs - [#22333](https://github.com/storybookjs/storybook/pull/22333), thanks [@joaonunomota](https://github.com/joaonunomota)! +- Doc Blocks: Add `title` to `Meta` prop types - [#23370](https://github.com/storybookjs/storybook/pull/23370), thanks [@iqbalcodes6602](https://github.com/iqbalcodes6602)! +- Docs: Fix TOC import - [#24047](https://github.com/storybookjs/storybook/pull/24047), thanks [@shilman](https://github.com/shilman)! +- Docs: Fix table of contents scroll behavior - [#23986](https://github.com/storybookjs/storybook/pull/23986), thanks [@almoghaimo](https://github.com/almoghaimo)! +- Telemetry: Filter addon options to protect sensitive info - [#24000](https://github.com/storybookjs/storybook/pull/24000), thanks [@shilman](https://github.com/shilman)! +- Types: Remove `@types/react` dep from `@storybook/types` - [#24042](https://github.com/storybookjs/storybook/pull/24042), thanks [@JReinhold](https://github.com/JReinhold)! + ## 7.4.0-alpha.2 - Addon-docs: Resolve `mdx-react-shim` & `@storybook/global` correctly - [#23941](https://github.com/storybookjs/storybook/pull/23941), thanks [@ndelangen](https://github.com/ndelangen)! diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cc26a6bff211..78993afd8386 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,24 @@ # Getting started -Storybook is developed against a specific node version. We recommend using [Volta](https://volta.sh/) as it will automatically install the correct node and yarn version when you first use the repo. If you chose not to use Volta please ensure you you have node version 16 installed (suggestion: v16.5) +Storybook is developed against a specific node version which is defined in an `.nvmrc` file. You can use any Node version manager that uses the `.nvmrc` configuration file (we recommend [fnm](https://fnm.vercel.app/)). + +## Using fnm as a Node version manager + +- Install fnm [as per instructions](https://github.com/Schniz/fnm/tree/master#installation) +- In your shell setup include the `use-on-cd`, `corepack-enabled` and `version-file-strategy recursive` parameters in the `fnm env` command, e.g. + + ```sh + eval "$(fnm env --use-on-cd --corepack-enabled --version-file-strategy recursive)" + ``` + +## Running the local development environment - Ensure if you are using Windows to use the Windows Subsystem for Linux (WSL). - Run `yarn start` in the root directory to run a basic test Storybook "sandbox". The `yarn start` script will generate a React Vite TypeScript sandbox with a set of test stories inside it, as well as taking all steps required to get it running (building the various packages we need etc). There is no need to run `yarn` or `yarn install` as `yarn start` will do this for you. -## Issues +### Issues If you run `yarn start` and encounter the following error, try rerunning `yarn start` a second time: diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index 0997b757b6ea..e92fa8fa36a3 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -8,8 +8,8 @@ - [Introduction](#introduction) - [Branches](#branches) - [Release Pull Requests](#release-pull-requests) - - [Prereleases](#prereleases) - [Patch Releases](#patch-releases) + - [Non-patch Releases](#non-patch-releases) - [Publishing](#publishing) - [👉 How to Release](#-how-to-release) - [1. Find the Prepared Pull Request](#1-find-the-prepared-pull-request) @@ -21,6 +21,8 @@ - [7. See the "Publish" Workflow Finish](#7-see-the-publish-workflow-finish) - [Releasing Locally in an Emergency 🚨](#releasing-locally-in-an-emergency-) - [Canary Releases](#canary-releases) + - [With GitHub UI](#with-github-ui) + - [With the CLI](#with-the-cli) - [Versioning Scenarios](#versioning-scenarios) - [Prereleases - `7.1.0-alpha.12` -\> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13) - [Prerelease promotions - `7.1.0-alpha.13` -\> `7.1.0-beta.0`](#prerelease-promotions---710-alpha13---710-beta0) @@ -31,7 +33,7 @@ - [Prerelease of upcoming patch release - `7.0.20` -\> `7.0.21-alpha.0`](#prerelease-of-upcoming-patch-release---7020---7021-alpha0) - [Merges to `main` without versioning](#merges-to-main-without-versioning) - [FAQ](#faq) - - [When should I use the "patch" label?](#when-should-i-use-the-patch-label) + - [When should I use the "patch:yes" label?](#when-should-i-use-the-patchyes-label) - [How do I make changes to the release tooling/process?](#how-do-i-make-changes-to-the-release-toolingprocess) - [Why do I need to re-trigger workflows to update the changelog?](#why-do-i-need-to-re-trigger-workflows-to-update-the-changelog) - [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) @@ -43,19 +45,19 @@ This document explains the release process for the Storybook monorepo. There are two types: -1. Prereleases and major/minor releases - releasing any content that is on the `next` branch +1. Non-patch releases - releasing any content that is on the `next` branch, either prereleases or stable releases 2. Patch releases - picking any content from `next` to `main`, that needs to be patched back to the current stable minor release The release process is based on automatically created "Release Pull Requests", that when merged will trigger a new version to be released. A designated Releaser -- which may rotate between core team members -- will go through the release process in the current Release PR. This process is implemented with NodeJS scripts in [`scripts/release`](../scripts/release/) and three GitHub Actions workflows: -- [Prepare Prerelease PR](../.github/workflows/prepare-prerelease.yml) -- [Prepare Patch PR](../.github/workflows/prepare-patch-release.yml) +- [Prepare `next` PR](../.github/workflows/prepare-non-patch-release.yml) +- [Prepare patch PR](../.github/workflows/prepare-patch-release.yml) - [Publish](../.github/workflows/publish.yml) > **Note** -> This document distinguishes between **patch** releases and **prereleases**. This is a simplification; stable major and minor releases work the same way as prereleases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. +> This document distinguishes between **patch** and **non-patch** releases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. ### Branches @@ -101,7 +103,7 @@ Two GitHub Actions workflows automatically create release pull requests, one for The high-level flow is: 1. When a PR is merged to `next` (or a commit is pushed), both release pull requests are (re)generated. -2. They create a new branch - `version-(patch|prerelease)-from-`. +2. They create a new branch - `version-(patch|non-patch)-from-`. 3. They calculate which version to bump to according to the version strategy. 4. They update `CHANGELOG(.prerelease).md` with all changes detected. 5. They commit everything. @@ -115,62 +117,20 @@ A few key points to note in this flow: - The changelogs are committed during the preparation, but the packages are not version bumped and not published until later. - The release pull requests don't target their working branches (`next` and `main`), but rather `next-release` and `latest-release`. -### Prereleases - -> **Note** -> Workflow: [`prepare-prerelease.yml`](../.github/workflows/prepare-prerelease.yml) - -Prereleases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. - -The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. - -Prerelease PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). - -The preparation workflow will create a new branch from `next`, called `version-prerelease-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. - -Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. - -```mermaid -%%{init: { 'gitGraph': { 'mainBranchName': 'next' } } }%% -gitGraph - commit - branch next-release - commit tag: "7.1.0-alpha.28" - checkout next - merge next-release - commit type: HIGHLIGHT id: "direct commit" - branch new-feature - commit - commit - checkout next - merge new-feature type: HIGHLIGHT - branch some-bugfix - commit - checkout next - merge some-bugfix type: HIGHLIGHT - branch version-prerelease-from-7.1.0-alpha.28 - commit id: "write changelog" - checkout next-release - merge version-prerelease-from-7.1.0-alpha.28 - commit id: "bump versions" tag: "7.1.0-alpha.29" - checkout next - merge next-release -``` - ### Patch Releases > **Note** > Workflow: [`prepare-patch-release.yml`](../.github/workflows/prepare-patch-release.yml) -Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. +Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch:yes**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. -Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike prerelease preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. +Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike non-patch-release preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. The preparation workflow sequentially cherry-picks each patch pull request to its branch. If this cherry-picking fails due to conflicts or other reasons, it is ignored and the next pull request is processed. All failing cherry-picks are listed in the release pull request's description, for the Releaser to manually cherry-pick during the release process. This problem occurs more often when `main` and `next` diverge, i.e. the longer it has been since a stable major/minor release. -Similar to the prerelease flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. +Similar to the non-patch-release flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. -Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. +Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch:yes**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. ```mermaid gitGraph @@ -208,21 +168,62 @@ gitGraph merge latest-release ``` +### Non-patch Releases + +> **Note** +> Workflow: [`prepare-non-patch-release.yml`](../.github/workflows/prepare-non-patch-release.yml) + +Non-patch-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. + +The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. + +`next`-PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). + +The preparation workflow will create a new branch from `next`, called `version-non-patch-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. + +Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. + +```mermaid +%%{init: { 'gitGraph': { 'mainBranchName': 'next' } } }%% +gitGraph + commit + branch next-release + commit tag: "7.1.0-alpha.28" + checkout next + merge next-release + commit type: HIGHLIGHT id: "direct commit" + branch new-feature + commit + commit + checkout next + merge new-feature type: HIGHLIGHT + branch some-bugfix + commit + checkout next + merge some-bugfix type: HIGHLIGHT + branch version-non-patch-from-7.1.0-alpha.28 + commit id: "write changelog" + checkout next-release + merge version-non-patch-from-7.1.0-alpha.28 + commit id: "bump versions" tag: "7.1.0-alpha.29" + checkout next + merge next-release +``` + ### Publishing > **Note** > Workflow: [`publish.yml`](../.github/workflows/publish.yml) -When either a prerelease or a patch release branch is merged into `main` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: +When either a non-patch-release or a patch release branch is merged into `latest-release` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: 1. Bump versions of all packages according to the plan from the prepared PRs 2. Install dependencies and build all packages. 3. Publish packages to npm. -4. (If this is a patch release, add the "**picked**" label to all relevant pull requests.) +4. (If this is a patch release, add the "**patch:done**" label to all relevant pull requests.) 5. Create a new GitHub Release, including a version tag in the release branch (`latest-release` or `next-release`). 6. Merge the release branch into the core branch (`main` or `next`). 7. (If this is a patch release, copy the `CHANGELOG.md` changes from `main` to `next`.) -8. (If this is [a promotion from a prerelease to a stable release](#minormajor-releases---710-rc2---710-or-800-rc3---800), force push `next` to `main`.) The publish workflow runs in the "release" GitHub environment, which has the npm token required to publish packages to the `@storybook` npm organization. For security reasons, this environment can only be accessed from the four "core" branches: `main`, `next`, `latest-release` and `next-release`. @@ -244,7 +245,7 @@ The high-level workflow for a Releaser is: Look for the release pull request that has been prepared for the type of release you're about to release: -- "Release: Prerelease ``" for prereleases +- "Release: Prerelease|Minor|Major ``" for releases from `next` - "Release: Patch ``" for patch releases - "Release: Merge patches to `main` (without version bump)" for patches without releases @@ -266,7 +267,7 @@ It is important to verify that the release includes the right content. Key eleme For example, check if it's a breaking change that isn't allowed in a minor prerelease, or if it's a new feature in a patch release. If it's not suitable, revert the pull request and notify the author. -Sometimes when doing a patch release, a pull request can have the "patch" label but you don't want that change to be part of this release. Maybe you're not confident in the change, or you require more input from maintainers before releasing it. In those situations you should remove the "patch" label from the pull request and follow through with the release (make sure to re-trigger the workflow). When the release is done, add the patch label back again, so it will be part of the next release. +Sometimes when doing a patch release, a pull request can have the "patch:yes" label but you don't want that change to be part of this release. Maybe you're not confident in the change, or you require more input from maintainers before releasing it. In those situations you should remove the "patch:yes" label from the pull request and follow through with the release (make sure to re-trigger the workflow). When the release is done, add the "patch:yes" label back again, so it will be part of the next release. 2. Is the pull request title correct? @@ -300,12 +301,12 @@ When triggering the workflows, always choose the `next` branch as the base, unle The workflows can be triggered here: -- [Prepare prerelease PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) +- [Prepare next PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) - [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) -Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Prereleases](#prereleases). When triggering the prerelease workflow manually, you can optionally add inputs: +Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Non-patch Releases](#non-patch-releases). When triggering the prerelease workflow manually, you can optionally add inputs: -![Screenshot of triggering the prerelease workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) +![Screenshot of triggering the non-patch-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) See [Versioning Scenarios](#versioning-scenarios) for a description of each version bump scenario, how to activate it and what it does, and [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) for a detailed description of the workflow inputs. @@ -339,7 +340,7 @@ You can inspect the workflows to see what they are running and copy that, but he Before you start you should make sure that your working tree is clean and the repository is in a clean state by running `git clean -xdf`. -1. Create a new branch from either `next` (prereleases) or `main` (patches) +1. Create a new branch from either `next` or `main` (patches) 2. Get all tags: `git fetch --tags origin` 3. Install dependencies: `yarn task --task=install --start-from=install` 4. `cd scripts` @@ -375,7 +376,7 @@ Before you start you should make sure that your working tree is clean and the re 4. `git add ./CHANGELOG.md` 5. `git commit -m "Update CHANGELOG.md for v"` 6. `git push origin` -19. (If prerelease) Sync `versions/next.json` from `next` to `main` +19. (If non-patch-release) Sync `versions/next.json` from `next` to `main` 1. `git checkout main` 2. `git pull` 3. `git checkout origin/next ./docs/versions/next.json` @@ -434,7 +435,7 @@ There are multiple types of releases that use the same principles, but are done ### Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13` -This is the default strategy for prereleases, there's nothing special needed to trigger this scenario. +This is the default strategy for Non-patch releases, there's nothing special needed to trigger this scenario. ### Prerelease promotions - `7.1.0-alpha.13` -> `7.1.0-beta.0` @@ -445,14 +446,12 @@ To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workf ### Minor/major releases - `7.1.0-rc.2` -> `7.1.0` or `8.0.0-rc.3` -> `8.0.0` -To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: +To promote a prerelease to a stable reelase, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: -- Release type: Patch +- Release type: Patch, Minor or Major - Prerelease ID: Leave empty -The "Patch" release type ensures the current prerelease version gets promoted to a stable version without any major/minor/patch bumps. - -This scenario is special as it turns the `next` branch into a stable branch (until the next prerelease). Therefore, this will also force push `next` to `main`, to ensure that `main` contains the latest stable release. Consequently, the history for `main` is lost. +This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-non-patch-from-` -> `latest-release` -> `main`. ### First prerelease of new major/minor - `7.1.0` -> `7.2.0-alpha.0` or `8.0.0-alpha.0` @@ -481,13 +480,13 @@ As described in more details in [the Patch Releases section](#patch-releases), t ## FAQ -### When should I use the "patch" label? +### When should I use the "patch:yes" label? -Not all pull requests need to be patched back to the stable release, which is why only those with the **"patch"** label gets that treatment. But how do you decide whether or not a give pull requests should have that label? +Not all pull requests need to be patched back to the stable release, which is why only those with the **"patch:yes"** label gets that treatment. But how do you decide whether or not a give pull requests should have that label? -First of all, patches are only for fixes and minor improvements, and not completely new features. A pull request that introduces a new feature shouldn't be patched back to the stable release. +First of all, patches are only for important and time-sensitive fixes, and not minor improvements or completely new features. A pull request that introduces a new feature shouldn't be patched back to the stable release. -Second, any destabilizing changes shouldn't be patched back either. Breaking changes are reserved for major releases, but changes can be destabilizing without being strictly breaking, and those shouldn't be patched back either. An example is moving the settings panel in the manager to a completely different place, but with the same functionality. Many wouldn't consider this breaking because no usage will stop working because of this, but it can be considered a destabilizing change because user behavior have to change as a result of this. +Second, PRs that changes the code in a big architectural way should ideally not be patched back either, because that makes merge conflicts more likely in the future. When in doubt ask the core team for their input. @@ -497,12 +496,15 @@ The whole process is based on [GitHub Action workflows](../.github/workflows/) a The short answer to "how", is to make changes as a regular pull request that is also patched back to `main`. -There's a longer answer too, but it's pretty confusing: +
+ There's a longer answer too, but it's pretty confusing The scripts run from either `main` or `next`, so if you're changing a release script, you must patch it back to `main` for it to have an effect on patch releases. If you need the change to take effect immediately, you must manually cherry pick it to `main`. For workflow file changes, they usually run from `next`, but patching them back is recommended for consistency. The "publish" workflow runs from `latest-release` and `next-release`, so you should always patch changes back for _that_. 🙃 +
+ ### Why do I need to re-trigger workflows to update the changelog? Changes to pull requests' titles, labels or even reverts won't be reflected in the release pull request. This is because the workflow only triggers on pushes to `next`, not when pull request meta data is changed. @@ -536,7 +538,7 @@ If a pull request does not have any of the above labels at the time of release, This is most likely because `next` only contains [unreleasable changes](#which-changes-are-considered-releasable-and-what-does-it-mean), which causes the preparation workflow to cancel itself. That's because it doesn't make sense to prepare a new release if all the changes are unreleasable, as that wouldn't bump the version nor write a new changelog entry, so "releasing" it would just merge it back to `next` without any differences. -You can always see the workflows and if they have been cancelled [here for prereleases](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). +You can always see the workflows and if they have been cancelled [here for non-patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). ### Why do we need separate release branches? @@ -558,11 +560,11 @@ gitGraph branch some-simultaneous-bugfix commit checkout next - branch version-prerelease-from-7.1.0-alpha.28 + branch version-non-patch-from-7.1.0-alpha.28 commit id checkout next merge some-simultaneous-bugfix type: HIGHLIGHT id: "whoops!" - merge version-prerelease-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" + merge version-non-patch-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" ``` When publishing at the last commit with tag `v7.1.0-alpha.29`, it will publish whatever the content is at that point (all the square dots), which includes the "whoops!" commit from merging the bugfix. But the bugfix was never part of the release pull request because it got prepared before the bugfix was merged in. @@ -582,19 +584,19 @@ gitGraph branch some-simultanous-bugfix commit checkout next - branch version-prerelease-from-7.1.0-alpha.28 + branch version-non-patch-from-7.1.0-alpha.28 commit id: "write changelog" checkout next merge some-simultanous-bugfix id: "whoops!" checkout next-release - merge version-prerelease-from-7.1.0-alpha.28 + merge version-non-patch-from-7.1.0-alpha.28 commit id: "bump versions" tag: "v7.1.0-alpha.29" checkout next merge next-release - branch version-prerelease-from-7.1.0-alpha.29 + branch version-non-patch-from-7.1.0-alpha.29 commit id: "write changelog again" checkout next-release - merge version-prerelease-from-7.1.0-alpha.29 + merge version-non-patch-from-7.1.0-alpha.29 commit id: "bump versions again" tag: "v7.1.0-alpha.30" checkout next merge next-release diff --git a/MIGRATION.md b/MIGRATION.md index 5022eefb59bd..1708f26a3dbe 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,7 +1,10 @@

Migration

+- [From version 7.4.0 to 7.5.0](#from-version-740-to-750) + - [`storyStoreV6` and `storiesOf` is deprecated](#storystorev6-and-storiesof-is-deprecated) + - [`storyIndexers` is replaced with `experimental_indexers`](#storyindexers-is-replaced-with-experimental_indexers) - [From version 7.0.0 to 7.2.0](#from-version-700-to-720) - - [Addon API is more type-strict](#addon-api-is-more-type-strict) + - [Addon API is more type-strict](#addon-api-is-more-type-strict) - [From version 6.5.x to 7.0.0](#from-version-65x-to-700) - [7.0 breaking changes](#70-breaking-changes) - [Dropped support for Node 15 and below](#dropped-support-for-node-15-and-below) @@ -27,7 +30,7 @@ - [Deploying build artifacts](#deploying-build-artifacts) - [Dropped support for file URLs](#dropped-support-for-file-urls) - [Serving with nginx](#serving-with-nginx) - - [Ignore story files from node\_modules](#ignore-story-files-from-node_modules) + - [Ignore story files from node_modules](#ignore-story-files-from-node_modules) - [7.0 Core changes](#70-core-changes) - [7.0 feature flags removed](#70-feature-flags-removed) - [Story context is prepared before for supporting fine grained updates](#story-context-is-prepared-before-for-supporting-fine-grained-updates) @@ -39,7 +42,7 @@ - [Addon-interactions: Interactions debugger is now default](#addon-interactions-interactions-debugger-is-now-default) - [7.0 Vite changes](#70-vite-changes) - [Vite builder uses Vite config automatically](#vite-builder-uses-vite-config-automatically) - - [Vite cache moved to node\_modules/.cache/.vite-storybook](#vite-cache-moved-to-node_modulescachevite-storybook) + - [Vite cache moved to node_modules/.cache/.vite-storybook](#vite-cache-moved-to-node_modulescachevite-storybook) - [7.0 Webpack changes](#70-webpack-changes) - [Webpack4 support discontinued](#webpack4-support-discontinued) - [Babel mode v7 exclusively](#babel-mode-v7-exclusively) @@ -89,7 +92,7 @@ - [Dropped addon-docs manual babel configuration](#dropped-addon-docs-manual-babel-configuration) - [Dropped addon-docs manual configuration](#dropped-addon-docs-manual-configuration) - [Autoplay in docs](#autoplay-in-docs) - - [Removed STORYBOOK\_REACT\_CLASSES global](#removed-storybook_react_classes-global) + - [Removed STORYBOOK_REACT_CLASSES global](#removed-storybook_react_classes-global) - [7.0 Deprecations and default changes](#70-deprecations-and-default-changes) - [storyStoreV7 enabled by default](#storystorev7-enabled-by-default) - [`Story` type deprecated](#story-type-deprecated) @@ -302,6 +305,72 @@ - [Packages renaming](#packages-renaming) - [Deprecated embedded addons](#deprecated-embedded-addons) +## From version 7.4.0 to 7.5.0 + +#### `storyStoreV6` and `storiesOf` is deprecated + +`storyStoreV6` and `storiesOf` is deprecated and will be completely removed in Storybook 8.0.0. + +If you're using `storiesOf` we recommend you migrate your stories to CSF3 for a better story writing experience. +In many cases you can get started with the migration by using two migration scripts: + +```bash + +# 1. convert storiesOf to CSF +npx storybook@latest migrate storiesof-to-csf --glob="**/*.stories.tsx" --parser=tsx + +# 2. Convert CSF 2 to CSF 3 +npx storybook@latest migrate csf-2-to-3 --glob="**/*.stories.tsx" --parser=tsx +``` + +They won't do a perfect migration so we recommend that you manually go through each file afterwards. + +Alternatively you can build your own `storiesOf` implementation by leveraging the new (experimental) indexer API ([documentation](https://storybook.js.org/docs/react/api/main-config-indexers), [migration](#storyindexers-is-replaced-with-experimental_indexers)). A proof of concept of such an implementation can be seen in [this StackBlitz demo](https://stackblitz.com/edit/github-h2rgfk?file=README.md). See the demo's `README.md` for a deeper explanation of the implementation. + +#### `storyIndexers` is replaced with `experimental_indexers` + +Defining custom indexers for stories has become a more official - yet still experimental - API which is now configured at `experimental_indexers` instead of `storyIndexers` in `main.ts`. `storyIndexers` has been deprecated and will be fully removed in version 8.0.0. + +The new experimental indexers are documented [here](https://storybook.js.org/docs/react/api/main-config-indexers). The most notable change from `storyIndexers` is that the indexer must now return a list of [`IndexInput`](https://github.com/storybookjs/storybook/blob/next/code/lib/types/src/modules/indexer.ts#L104-L148) instead of `CsfFile`. It's possible to construct an `IndexInput` from a `CsfFile` using the `CsfFile.indexInputs` getter. + +That means you can convert an existing story indexer like this: + +```diff +// .storybook/main.ts + +import { readFileSync } from 'fs'; +import { loadCsf } from '@storybook/csf-tools'; + +export default { +- storyIndexers = (indexers) => { +- const indexer = async (fileName, opts) => { ++ experimental_indexers = (indexers) => { ++ const createIndex = async (fileName, opts) => { + const code = readFileSync(fileName, { encoding: 'utf-8' }); + const makeTitle = (userTitle) => { + // Do something with the auto title retrieved by Storybook + return userTitle; + }; + + // Parse the CSF file with makeTitle as a custom context +- return loadCsf(code, { ...compilationOptions, makeTitle, fileName }).parse(); ++ return loadCsf(code, { ...compilationOptions, makeTitle, fileName }).parse().indexInputs; + }; + + return [ + { + test: /(stories|story)\.[tj]sx?$/, +- indexer, ++ createIndex, + }, + ...(indexers || []), + ]; + }, +}; +``` + +As an addon author you can support previous versions of Storybook by setting both `storyIndexers` and `indexers_experimental`, without triggering the deprecation warning. + ## From version 7.0.0 to 7.2.0 #### Addon API is more type-strict @@ -311,6 +380,7 @@ When registering an addon using `@storybook/manager-api`, the addon API is now m The `type` property is now a required field, and the `id` property should not be set anymore. Here's a correct example: + ```tsx import { addons, types } from '@storybook/manager-api'; @@ -318,7 +388,7 @@ addons.register('my-addon', () => { addons.add('my-addon/panel', { type: types.PANEL, title: 'My Addon', - render: ({ active }) => active ?
Hello World
: null, + render: ({ active }) => (active ?
Hello World
: null), }); }); ``` @@ -869,16 +939,16 @@ Given the following `main.js`: ```js export default { - stories: ['../**/*.stories.*'] -} + stories: ['../**/*.stories.*'], +}; ``` If you want to restore the previous behavior to include `node_modules`, you can update it to: ```js export default { - stories: ['../**/*.stories.*', '../**/node_modules/**/*.stories.*'] -} + stories: ['../**/*.stories.*', '../**/node_modules/**/*.stories.*'], +}; ``` The first glob would have node_modules automatically excluded by Storybook, and the second glob would include all stories that are under a nested `node_modules` directory. @@ -1044,7 +1114,11 @@ Starting in 7.0, we drop support for Angular < 14 #### Angular: Drop support for calling Storybook directly -In Storybook 6.4 we have deprecated calling Storybook directly (`npm run storybook`) for Angular. In Storybook 7.0, we've removed it entirely. Instead you have to set up the Storybook builder in your `angular.json` and execute `ng run :storybook` to start Storybook. Please visit https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular to set up Storybook for Angular correctly. +_Has automigration_ + +In Storybook 6.4 we deprecated calling Storybook directly (e.g. `npm run storybook`) for Angular. In Storybook 7.0, we've removed it entirely. Instead, you have to set up the Storybook builder in your `angular.json` and execute `ng run :storybook` to start Storybook. + +You can run `npx storybook@next automigrate` to automatically fix your configuration, or visit https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular/README.md#how-do-i-migrate-to-an-angular-storybook-builder for instructions on how to set up Storybook for Angular manually. #### Angular: Application providers and ModuleWithProviders diff --git a/RESOLUTIONS.md b/RESOLUTIONS.md new file mode 100644 index 000000000000..a21b14b5309f --- /dev/null +++ b/RESOLUTIONS.md @@ -0,0 +1,11 @@ +# Resolutions and Exact versions + +This file keeps track of any resolutions or exact versions specified in any `package.json` file. Resolutions are used to specify a specific version of a package to be used, even if a different version is specified as a dependency of another package. + +## code/renderers/svelte/package.json + +svelte-check@3.4.6 (bug: 3.5.x): Type issues + +## code/ui/components/package.json + +overlayscrollbars@2.2.1 (bug: 2.3.x): The Scrollbar doesn't disappear anymore by default. It might has something to do with the `scrollbars.autoHideSuspend` option, which was introduced in 2.3.0. https://github.com/KingSora/OverlayScrollbars/blob/master/packages/overlayscrollbars/CHANGELOG.md#230 diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json index 5a7c1215c463..20df88c627d6 100644 --- a/code/addons/a11y/package.json +++ b/code/addons/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-a11y", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Test component compliance with web accessibility standards", "keywords": [ "a11y", diff --git a/code/addons/a11y/src/components/Report/HighlightToggle.tsx b/code/addons/a11y/src/components/Report/HighlightToggle.tsx index 1c8a1c2f887b..cff5ec7ceb99 100644 --- a/code/addons/a11y/src/components/Report/HighlightToggle.tsx +++ b/code/addons/a11y/src/components/Report/HighlightToggle.tsx @@ -24,7 +24,7 @@ function areAllRequiredElementsHighlighted( highlighted: string[] ): CheckBoxStates { const highlightedCount = elementsToHighlight.filter((item) => - highlighted.includes(item.target[0]) + highlighted.includes(item.target[0] as any) ).length; // eslint-disable-next-line no-nested-ternary @@ -52,7 +52,7 @@ const HighlightToggle: React.FC = ({ toggleId, elementsToHighlight const handleToggle = React.useCallback((): void => { toggleHighlight( - elementsToHighlight.map((e) => e.target[0]), + elementsToHighlight.map((e) => e.target[0] as any), checkBoxState !== CheckBoxStates.CHECKED ); }, [elementsToHighlight, checkBoxState, toggleHighlight]); diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json index 62e0156cd7e1..dda5650f3129 100644 --- a/code/addons/actions/package.json +++ b/code/addons/actions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-actions", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Get UI feedback when an action is performed on an interactive element", "keywords": [ "storybook", diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json index af672d683175..3fb06769672d 100644 --- a/code/addons/backgrounds/package.json +++ b/code/addons/backgrounds/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-backgrounds", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Switch backgrounds to view components in different settings", "keywords": [ "addon", diff --git a/code/addons/backgrounds/src/containers/BackgroundSelector.tsx b/code/addons/backgrounds/src/containers/BackgroundSelector.tsx index 078a2752a5e3..d941f178b788 100644 --- a/code/addons/backgrounds/src/containers/BackgroundSelector.tsx +++ b/code/addons/backgrounds/src/containers/BackgroundSelector.tsx @@ -18,10 +18,10 @@ import { getBackgroundColorByName } from '../helpers'; const createBackgroundSelectorItem = memoize(1000)( ( - id: string, + id: string | null, name: string, value: string, - hasSwatch: boolean, + hasSwatch: boolean | null, change: (arg: { selected: string; name: string }) => void, active: boolean ): BackgroundSelectorItem => ({ @@ -102,7 +102,7 @@ export const BackgroundSelector: FC = memo(function BackgroundSelector() { } const onBackgroundChange = useCallback( - (value: string) => { + (value: string | undefined) => { updateGlobals({ [BACKGROUNDS_PARAM_KEY]: { ...globals[BACKGROUNDS_PARAM_KEY], value } }); }, [backgroundsConfig, globals, updateGlobals] diff --git a/code/addons/backgrounds/src/helpers/index.ts b/code/addons/backgrounds/src/helpers/index.ts index 39065eec6648..c1af13cde407 100644 --- a/code/addons/backgrounds/src/helpers/index.ts +++ b/code/addons/backgrounds/src/helpers/index.ts @@ -15,7 +15,7 @@ export const isReduceMotionEnabled = () => { export const getBackgroundColorByName = ( currentSelectedValue: string, backgrounds: Background[] = [], - defaultName: string + defaultName: string | null | undefined ): string => { if (currentSelectedValue === 'transparent') { return 'transparent'; @@ -52,7 +52,7 @@ export const clearStyles = (selector: string | string[]) => { const clearStyle = (selector: string) => { const element = document.getElementById(selector) as HTMLElement; if (element) { - element.parentElement.removeChild(element); + element.parentElement?.removeChild(element); } }; @@ -70,7 +70,7 @@ export const addGridStyle = (selector: string, css: string) => { } }; -export const addBackgroundStyle = (selector: string, css: string, storyId: string) => { +export const addBackgroundStyle = (selector: string, css: string, storyId: string | null) => { const existingStyle = document.getElementById(selector) as HTMLElement; if (existingStyle) { if (existingStyle.innerHTML !== css) { @@ -85,7 +85,7 @@ export const addBackgroundStyle = (selector: string, css: string, storyId: strin // If grids already exist, we want to add the style tag BEFORE it so the background doesn't override grid const existingGridStyle = document.getElementById(gridStyleSelector) as HTMLElement; if (existingGridStyle) { - existingGridStyle.parentElement.insertBefore(style, existingGridStyle); + existingGridStyle.parentElement?.insertBefore(style, existingGridStyle); } else { document.head.appendChild(style); } diff --git a/code/addons/backgrounds/src/types/index.ts b/code/addons/backgrounds/src/types/index.ts index f1f0285ac319..1439f4cd1329 100644 --- a/code/addons/backgrounds/src/types/index.ts +++ b/code/addons/backgrounds/src/types/index.ts @@ -20,7 +20,7 @@ export interface Background { } export interface BackgroundsParameter { - default?: string; + default?: string | null; disable?: boolean; values: Background[]; } diff --git a/code/addons/backgrounds/tsconfig.json b/code/addons/backgrounds/tsconfig.json index 4c6f20a1be4d..b5a2f9a70918 100644 --- a/code/addons/backgrounds/tsconfig.json +++ b/code/addons/backgrounds/tsconfig.json @@ -2,6 +2,6 @@ "extends": "../../tsconfig.json", "include": ["src/**/*"], "compilerOptions": { - "strict": false + "strict": true } } diff --git a/code/addons/controls/package.json b/code/addons/controls/package.json index c4e025a31685..829829c166b9 100644 --- a/code/addons/controls/package.json +++ b/code/addons/controls/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-controls", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Interact with component inputs dynamically in the Storybook UI", "keywords": [ "addon", diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json index 5c443e553342..39294a7573b8 100644 --- a/code/addons/docs/package.json +++ b/code/addons/docs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-docs", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Document component usage and properties in Markdown", "keywords": [ "addon", @@ -119,9 +119,11 @@ "ts-dedent": "^2.0.0" }, "devDependencies": { + "@rollup/pluginutils": "^5.0.2", "react": "^16.14.0", "react-dom": "^16.8.0", - "typescript": "~4.9.3" + "typescript": "~4.9.3", + "vite": "^4.0.4" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/docs/src/DocsRenderer.tsx b/code/addons/docs/src/DocsRenderer.tsx index 1940a2a0e25b..42d8d279b749 100644 --- a/code/addons/docs/src/DocsRenderer.tsx +++ b/code/addons/docs/src/DocsRenderer.tsx @@ -28,7 +28,7 @@ class ErrorBoundary extends Component<{ const { hasError } = this.state; const { children } = this.props; - return hasError ? null : children; + return hasError ? null : <>{children}; } } diff --git a/code/builders/builder-vite/src/plugins/mdx-plugin.ts b/code/addons/docs/src/plugins/mdx-plugin.ts similarity index 97% rename from code/builders/builder-vite/src/plugins/mdx-plugin.ts rename to code/addons/docs/src/plugins/mdx-plugin.ts index 8e4b51f16d6e..82f754fd3cd8 100644 --- a/code/builders/builder-vite/src/plugins/mdx-plugin.ts +++ b/code/addons/docs/src/plugins/mdx-plugin.ts @@ -2,7 +2,7 @@ import type { Options } from '@storybook/types'; import type { Plugin } from 'vite'; import remarkSlug from 'remark-slug'; import remarkExternalLinks from 'remark-external-links'; -import { createFilter } from 'vite'; +import { createFilter } from '@rollup/pluginutils'; import { dirname, join } from 'path'; const isStorybookMdx = (id: string) => id.endsWith('stories.mdx') || id.endsWith('story.mdx'); diff --git a/code/builders/builder-vite/src/plugins/mdx-plugin.types.d.ts b/code/addons/docs/src/plugins/mdx-plugin.types.d.ts similarity index 100% rename from code/builders/builder-vite/src/plugins/mdx-plugin.types.d.ts rename to code/addons/docs/src/plugins/mdx-plugin.types.d.ts diff --git a/code/addons/docs/src/preset.ts b/code/addons/docs/src/preset.ts index 1931f0bcc32c..22b5834c9e9a 100644 --- a/code/addons/docs/src/preset.ts +++ b/code/addons/docs/src/preset.ts @@ -135,7 +135,7 @@ async function webpack( export const createStoriesMdxIndexer = (legacyMdx1?: boolean): Indexer => ({ test: /(stories|story)\.mdx$/, - index: async (fileName, opts) => { + createIndex: async (fileName, opts) => { let code = (await fs.readFile(fileName, 'utf-8')).toString(); const { compile } = legacyMdx1 ? await import('@storybook/mdx1-csf') @@ -175,6 +175,15 @@ export const addons: StorybookConfig['addons'] = [ require.resolve('@storybook/react-dom-shim/dist/preset'), ]; +export const viteFinal = async (config: any, options: Options) => { + const { plugins = [] } = config; + const { mdxPlugin } = await import('./plugins/mdx-plugin'); + + plugins.push(mdxPlugin(options)); + + return config; +}; + /* * This is a workaround for https://github.com/Swatinem/rollup-plugin-dts/issues/162 * something down the dependency chain is using typescript namespaces, which are not supported by rollup-plugin-dts diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index 459bdde2d04b..e2e95e6e04e3 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-essentials", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Curated addons to bring out the best of Storybook", "keywords": [ "addon", diff --git a/code/addons/gfm/package.json b/code/addons/gfm/package.json index a14a7eb5660c..1edd50d8d422 100644 --- a/code/addons/gfm/package.json +++ b/code/addons/gfm/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-mdx-gfm", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "GitHub Flavored Markdown in Storybook", "keywords": [ "addon", diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json index a83314a5c242..22a9069a26a1 100644 --- a/code/addons/highlight/package.json +++ b/code/addons/highlight/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-highlight", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Highlight DOM nodes within your stories", "keywords": [ "storybook-addons", diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index 721e13cac586..237b5c71bf4b 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-interactions", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Automate, test and debug user interactions", "keywords": [ "storybook-addons", diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json index bb1f30c9106e..f26d6bc8c8e9 100644 --- a/code/addons/jest/package.json +++ b/code/addons/jest/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-jest", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "React storybook addon that show component jest report", "keywords": [ "addon", diff --git a/code/addons/links/package.json b/code/addons/links/package.json index 60047cef410c..dfbaeb62ac89 100644 --- a/code/addons/links/package.json +++ b/code/addons/links/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-links", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Link stories together to build demos and prototypes with your UI components", "keywords": [ "addon", diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json index 4b1466d0d3cf..4048a81c373e 100644 --- a/code/addons/measure/package.json +++ b/code/addons/measure/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-measure", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Inspect layouts by visualizing the box model", "keywords": [ "storybook-addons", diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json index 3e0c58105cb9..77bd3f840529 100644 --- a/code/addons/outline/package.json +++ b/code/addons/outline/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-outline", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Outline all elements with CSS to help with layout placement and alignment", "keywords": [ "storybook-addons", diff --git a/code/addons/storyshots-core/package.json b/code/addons/storyshots-core/package.json index e21c58a8890a..40c1efefff70 100644 --- a/code/addons/storyshots-core/package.json +++ b/code/addons/storyshots-core/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storyshots", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Take a code snapshot of every story automatically with Jest", "keywords": [ "addon", diff --git a/code/addons/storyshots-puppeteer/package.json b/code/addons/storyshots-puppeteer/package.json index 4c966ff4357f..cad9d29cca7b 100644 --- a/code/addons/storyshots-puppeteer/package.json +++ b/code/addons/storyshots-puppeteer/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storyshots-puppeteer", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Image snapshots addition to StoryShots based on puppeteer", "keywords": [ "addon", diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json index be8581fc2489..afc05fcb6e9b 100644 --- a/code/addons/storysource/package.json +++ b/code/addons/storysource/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storysource", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "View a story’s source code to see how it works and paste into your app", "keywords": [ "addon", diff --git a/code/addons/themes/docs/api.md b/code/addons/themes/docs/api.md index 36138394d93b..b499dd945744 100644 --- a/code/addons/themes/docs/api.md +++ b/code/addons/themes/docs/api.md @@ -7,7 +7,7 @@ Takes your provider component, global styles, and theme(s)to wrap your stories in. ```js -import { withThemeFromJSXProvider } from '@storybook/addon-styling'; +import { withThemeFromJSXProvider } from '@storybook/addon-themes'; export const decorators = [ withThemeFromJSXProvider({ @@ -36,7 +36,7 @@ Available options: Takes your theme class names to apply your parent element to enable your theme(s). ```js -import { withThemeByClassName } from '@storybook/addon-styling'; +import { withThemeByClassName } from '@storybook/addon-themes'; export const decorators = [ withThemeByClassName({ @@ -62,7 +62,7 @@ Available options: Takes your theme names and data attribute to apply your parent element to enable your theme(s). ```js -import { withThemeByDataAttribute } from '@storybook/addon-styling'; +import { withThemeByDataAttribute } from '@storybook/addon-themes'; export const decorators = [ withThemeByDataAttribute({ @@ -94,7 +94,7 @@ If none of these decorators work for your library there is still hope. We've pro Pulls the selected theme from storybook's global state. ```js -import { DecoratorHelpers } from '@storybook/addon-styling'; +import { DecoratorHelpers } from '@storybook/addon-themes'; const { pluckThemeFromContext } = DecoratorHelpers; export const myCustomDecorator = @@ -111,7 +111,7 @@ export const myCustomDecorator = Returns the theme parameters for this addon. ```js -import { DecoratorHelpers } from '@storybook/addon-styling'; +import { DecoratorHelpers } from '@storybook/addon-themes'; const { useThemeParameters } = DecoratorHelpers; export const myCustomDecorator = @@ -128,7 +128,7 @@ export const myCustomDecorator = Used to register the themes and defaultTheme with the addon state. ```js -import { DecoratorHelpers } from '@storybook/addon-styling'; +import { DecoratorHelpers } from '@storybook/addon-themes'; const { initializeThemeState } = DecoratorHelpers; export const myCustomDecorator = ({ themes, defaultState, ...rest }) => { @@ -147,7 +147,7 @@ Let's use Vuetify as an example. Vuetify uses it's own global state to know whic ```js // .storybook/withVeutifyTheme.decorator.js -import { DecoratorHelpers } from '@storybook/addon-styling'; +import { DecoratorHelpers } from '@storybook/addon-themes'; import { useTheme } from 'vuetify'; const { initializeThemeState, pluckThemeFromContext, useThemeParameters } = DecoratorHelpers; diff --git a/code/addons/themes/package.json b/code/addons/themes/package.json index 8e4a40ec9a08..8dc2fdac1a59 100644 --- a/code/addons/themes/package.json +++ b/code/addons/themes/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-themes", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Switch between multiple themes for you components in Storybook", "keywords": [ "css", diff --git a/code/addons/themes/postinstall.js b/code/addons/themes/postinstall.js index c84a4e88e4b4..01a9b3151e89 100644 --- a/code/addons/themes/postinstall.js +++ b/code/addons/themes/postinstall.js @@ -2,7 +2,7 @@ const { spawn } = require('child_process'); const PACKAGE_MANAGER_TO_COMMAND = { npm: 'npx', - yarn1: 'yarn dlx', + yarn1: 'npx', yarn2: 'yarn dlx', pnpm: 'pnpm dlx', }; diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json index d988e992541f..225542096e83 100644 --- a/code/addons/toolbars/package.json +++ b/code/addons/toolbars/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-toolbars", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Create your own toolbar items that control story rendering", "keywords": [ "addon", diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json index c7dae82f5062..e351d612d53f 100644 --- a/code/addons/viewport/package.json +++ b/code/addons/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-viewport", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Build responsive components by adjusting Storybook’s viewport size and orientation", "keywords": [ "addon", diff --git a/code/builders/builder-manager/package.json b/code/builders/builder-manager/package.json index 7f12ba26bea3..e588c64a0f9e 100644 --- a/code/builders/builder-manager/package.json +++ b/code/builders/builder-manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-manager", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook manager builder", "keywords": [ "storybook" diff --git a/code/builders/builder-manager/src/utils/files.test.ts b/code/builders/builder-manager/src/utils/files.test.ts index c3f1157b11d4..3a76234ec8d1 100644 --- a/code/builders/builder-manager/src/utils/files.test.ts +++ b/code/builders/builder-manager/src/utils/files.test.ts @@ -1,3 +1,4 @@ +import type { OutputFile } from 'esbuild'; import { platform } from 'os'; import { sanitizePath } from './files'; @@ -9,12 +10,13 @@ test('sanitizePath', () => { ? 'C:\\Users\\username\\Projects\\projectname\\storybook' : '/Users/username/Projects/projectname/storybook'; const text = 'demo text'; - const file = { + const file: OutputFile = { path: isWindows ? 'C:\\Users\\username\\Projects\\projectname\\storybook\\node_modules\\@storybook\\addon-x+y\\dist\\manager.js' : '/Users/username/Projects/projectname/storybook/node_modules/@storybook/addon-x+y/dist/manager.js', contents: Uint8Array.from(Array.from(text).map((letter) => letter.charCodeAt(0))), text, + hash: '', }; const { location, url } = sanitizePath(file, addonsDir); diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index 9d38efab01e7..6e0cc80db781 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-vite", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "A plugin to run and build Storybooks with Vite", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme", "bugs": { @@ -47,7 +47,6 @@ "@storybook/client-logger": "workspace:*", "@storybook/core-common": "workspace:*", "@storybook/csf-plugin": "workspace:*", - "@storybook/mdx2-csf": "^1.0.0", "@storybook/node-logger": "workspace:*", "@storybook/preview": "workspace:*", "@storybook/preview-api": "workspace:*", @@ -59,8 +58,6 @@ "find-cache-dir": "^3.0.0", "fs-extra": "^11.1.0", "magic-string": "^0.30.0", - "remark-external-links": "^8.0.0", - "remark-slug": "^6.0.0", "rollup": "^2.25.0 || ^3.3.0" }, "devDependencies": { @@ -96,9 +93,6 @@ "entries": [ "./src/index.ts" ], - "externals": [ - "@storybook/mdx1-csf" - ], "platform": "node" }, "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae17" diff --git a/code/builders/builder-vite/src/plugins/index.ts b/code/builders/builder-vite/src/plugins/index.ts index bccebbdb4833..68e540908dc6 100644 --- a/code/builders/builder-vite/src/plugins/index.ts +++ b/code/builders/builder-vite/src/plugins/index.ts @@ -1,5 +1,4 @@ export * from './inject-export-order-plugin'; -export * from './mdx-plugin'; export * from './strip-story-hmr-boundaries'; export * from './code-generator-plugin'; export * from './csf-plugin'; diff --git a/code/builders/builder-vite/src/vite-config.ts b/code/builders/builder-vite/src/vite-config.ts index a832f2e92a96..75778971b26a 100644 --- a/code/builders/builder-vite/src/vite-config.ts +++ b/code/builders/builder-vite/src/vite-config.ts @@ -15,7 +15,6 @@ import { codeGeneratorPlugin, csfPlugin, injectExportOrderPlugin, - mdxPlugin, stripStoryHMRBoundary, externalGlobalsPlugin, } from './plugins'; @@ -81,7 +80,6 @@ export async function pluginConfig(options: Options) { const plugins = [ codeGeneratorPlugin(options), await csfPlugin(options), - await mdxPlugin(options), injectExportOrderPlugin, stripStoryHMRBoundary(), { diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index e24badba4444..a9402b286f33 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -65,7 +65,7 @@ "@storybook/node-logger": "workspace:*", "@storybook/preview": "workspace:*", "@storybook/preview-api": "workspace:*", - "@swc/core": "^1.3.49", + "@swc/core": "^1.3.82", "@types/node": "^16.0.0", "@types/semver": "^7.3.4", "babel-loader": "^9.0.0", diff --git a/code/builders/builder-webpack5/src/index.ts b/code/builders/builder-webpack5/src/index.ts index 0106cfea091d..582c3156c71b 100644 --- a/code/builders/builder-webpack5/src/index.ts +++ b/code/builders/builder-webpack5/src/index.ts @@ -9,6 +9,11 @@ import { dirname, join, parse } from 'path'; import express from 'express'; import fs from 'fs-extra'; import { PREVIEW_BUILDER_PROGRESS } from '@storybook/core-events'; +import { + WebpackCompilationError, + WebpackInvocationError, + WebpackMissingStatsError, +} from '@storybook/core-events/server-errors'; import prettyTime from 'pretty-hrtime'; @@ -117,21 +122,19 @@ const starter: StarterFunction = async function* starterGeneratorFn({ yield; const config = await getConfig(options); + + if (config.stats === 'none' || config.stats === 'summary') { + throw new WebpackMissingStatsError(); + } yield; + const compiler = webpackInstance(config); if (!compiler) { - const err = `${config.name}: missing webpack compiler at runtime!`; - logger.error(err); - return { - bail, - totalTime: process.hrtime(startTime), - stats: { - hasErrors: () => true, - hasWarnings: () => false, - toJson: () => ({ warnings: [] as any[], errors: [err] }), - } as any as Stats, - }; + throw new WebpackInvocationError({ + // eslint-disable-next-line local-rules/no-uncategorized-errors + error: new Error(`Missing Webpack compiler at runtime!`), + }); } yield; @@ -172,6 +175,7 @@ const starter: StarterFunction = async function* starterGeneratorFn({ const middlewareOptions: Parameters[1] = { publicPath: config.output?.publicPath as string, writeToDisk: true, + stats: 'errors-only', }; compilation = webpackDevMiddleware(compiler, middlewareOptions); @@ -184,19 +188,24 @@ const starter: StarterFunction = async function* starterGeneratorFn({ router.use(compilation); router.use(webpackHotMiddleware(compiler, { log: false })); - const stats = await new Promise((ready, stop) => { - compilation?.waitUntilValid(ready as any); - reject = stop; + const stats = await new Promise((res, rej) => { + compilation?.waitUntilValid(res as any); + reject = rej; }); yield; if (!stats) { - throw new Error('no stats after building preview'); + throw new WebpackMissingStatsError(); } - if (stats.hasErrors()) { - // eslint-disable-next-line @typescript-eslint/no-throw-literal - throw stats; + const { warnings, errors } = getWebpackStats({ config, stats }); + + if (warnings.length > 0) { + warnings?.forEach((e) => logger.error(e.message)); + } + + if (errors.length > 0) { + throw new WebpackCompilationError({ errors }); } return { @@ -206,6 +215,22 @@ const starter: StarterFunction = async function* starterGeneratorFn({ }; }; +function getWebpackStats({ config, stats }: { config: Configuration; stats: Stats }) { + const statsOptions = + typeof config.stats === 'string' + ? config.stats + : { + ...(config.stats as StatsOptions), + warnings: true, + errors: true, + }; + const { warnings = [], errors = [] } = stats?.toJson(statsOptions) || {}; + return { + warnings, + errors, + }; +} + /** * This function is a generator so that we can abort it mid process * in case of failure coming from other processes e.g. manager builder @@ -215,73 +240,47 @@ const starter: StarterFunction = async function* starterGeneratorFn({ const builder: BuilderFunction = async function* builderGeneratorFn({ startTime, options }) { const webpackInstance = await executor.get(options); yield; - logger.info('=> Compiling preview..'); const config = await getConfig(options); + + if (config.stats === 'none' || config.stats === 'summary') { + throw new WebpackMissingStatsError(); + } yield; const compiler = webpackInstance(config); if (!compiler) { - const err = `${config.name}: missing webpack compiler at runtime!`; - logger.error(err); - return { - hasErrors: () => true, - hasWarnings: () => false, - toJson: () => ({ warnings: [] as any[], errors: [err] }), - } as any as Stats; + throw new WebpackInvocationError({ + // eslint-disable-next-line local-rules/no-uncategorized-errors + error: new Error(`Missing Webpack compiler at runtime!`), + }); } const webpackCompilation = new Promise((succeed, fail) => { compiler.run((error, stats) => { - if (error || !stats || stats.hasErrors()) { - logger.error('=> Failed to build the preview'); - process.exitCode = 1; - - if (error) { - logger.error(error.message); + if (error) { + compiler.close(() => fail(new WebpackInvocationError({ error }))); + return; + } - compiler.close(() => fail(error)); + if (!stats) { + throw new WebpackMissingStatsError(); + } - return; - } + const { warnings, errors } = getWebpackStats({ config, stats }); - if (stats && (stats.hasErrors() || stats.hasWarnings())) { - const { warnings = [], errors = [] } = stats.toJson( - typeof config.stats === 'string' - ? config.stats - : { - warnings: true, - errors: true, - ...(config.stats as StatsOptions), - } - ); - - errors.forEach((e) => logger.error(e.message)); - warnings.forEach((e) => logger.error(e.message)); - - compiler.close(() => - options.debugWebpack - ? fail(stats) - : fail(new Error('=> Webpack failed, learn more with --debug-webpack')) - ); - - return; - } + if (warnings.length > 0) { + warnings?.forEach((e) => logger.error(e.message)); } - logger.trace({ message: '=> Preview built', time: process.hrtime(startTime) }); - if (stats && stats.hasWarnings()) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- we know it has warnings because of hasWarnings() - stats - .toJson({ warnings: true } as StatsOptions) - .warnings!.forEach((e) => logger.warn(e.message)); + if (errors.length > 0) { + compiler.close(() => fail(new WebpackCompilationError({ errors }))); + return; } - // https://webpack.js.org/api/node/#run - // #15227 compiler.close((closeErr) => { if (closeErr) { - return fail(closeErr); + return fail(new WebpackInvocationError({ error: closeErr })); } return succeed(stats as Stats); diff --git a/code/chromatic.config.json b/code/chromatic.config.json new file mode 100644 index 000000000000..01493ceba46a --- /dev/null +++ b/code/chromatic.config.json @@ -0,0 +1,8 @@ +{ + "projectId": "Project:635781f3500dd2c49e189caf", + "projectToken": "80b312430ec4", + "buildScriptName": "storybook:ui:build", + "onlyChanged": true, + "storybookConfigDir": "./ui/.storybook", + "storybookBaseDir": "./code" +} diff --git a/code/deprecated/addons/package.json b/code/deprecated/addons/package.json index e8f710906b85..5b5c38aac14d 100644 --- a/code/deprecated/addons/package.json +++ b/code/deprecated/addons/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addons", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook addons store", "keywords": [ "storybook" diff --git a/code/deprecated/channel-postmessage/package.json b/code/deprecated/channel-postmessage/package.json index 626bbf0529b3..aa0b4152b062 100644 --- a/code/deprecated/channel-postmessage/package.json +++ b/code/deprecated/channel-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-postmessage", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/channel-websocket/package.json b/code/deprecated/channel-websocket/package.json index beca23fe6fea..c0dcf7c19306 100644 --- a/code/deprecated/channel-websocket/package.json +++ b/code/deprecated/channel-websocket/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-websocket", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/client-api/package.json b/code/deprecated/client-api/package.json index 330465df9e30..dfe7cc6c40d4 100644 --- a/code/deprecated/client-api/package.json +++ b/code/deprecated/client-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-api", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook Client API", "keywords": [ "storybook" diff --git a/code/deprecated/core-client/package.json b/code/deprecated/core-client/package.json index d5eac9d32aab..40d57044f9b0 100644 --- a/code/deprecated/core-client/package.json +++ b/code/deprecated/core-client/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-client", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/manager-api-shim/package.json b/code/deprecated/manager-api-shim/package.json index b873695766df..0fa3e479a599 100644 --- a/code/deprecated/manager-api-shim/package.json +++ b/code/deprecated/manager-api-shim/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/api", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook Manager API (facade)", "keywords": [ "storybook" diff --git a/code/deprecated/preview-web/package.json b/code/deprecated/preview-web/package.json index 49a530b00f94..b5845b28acd9 100644 --- a/code/deprecated/preview-web/package.json +++ b/code/deprecated/preview-web/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-web", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/store/package.json b/code/deprecated/store/package.json index 6d6e9aa413f8..2362d4bab5c7 100644 --- a/code/deprecated/store/package.json +++ b/code/deprecated/store/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/store", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/frameworks/angular/README.md b/code/frameworks/angular/README.md index 3158060f3f9a..d97e1ab93f2a 100644 --- a/code/frameworks/angular/README.md +++ b/code/frameworks/angular/README.md @@ -10,7 +10,7 @@ - [moduleMetadata decorator](#modulemetadata-decorator) - [applicationConfig decorator](#applicationconfig-decorator) - [FAQ](#faq) - - [How do I migrate to a Angular Storybook builder?](#how-do-i-migrate-to-a-angular-storybook-builder) + - [How do I migrate to an Angular Storybook builder?](#how-do-i-migrate-to-an-angular-storybook-builder) - [Do you have only one Angular project in your workspace?](#do-you-have-only-one-angular-project-in-your-workspace) - [Adjust your `package.json`](#adjust-your-packagejson) - [I have multiple projects in my Angular workspace](#i-have-multiple-projects-in-my-angular-workspace) @@ -252,10 +252,12 @@ export const WithCustomApplicationProvider: Story = { ## FAQ -### How do I migrate to a Angular Storybook builder? +### How do I migrate to an Angular Storybook builder? The Storybook [Angular builder](https://angular.io/guide/glossary#builder) is a new way to run Storybook in an Angular workspace. It is a drop-in replacement for running `storybook dev` and `storybook build` directly. +You can run `npx storybook@next automigrate` to try let Storybook detect and automatically fix your configuration. Otherwise, you can follow the next steps to manually adjust your configuration. + #### Do you have only one Angular project in your workspace? In this case go to your `angular.json` and add `storybook` and `build-storybook` entries in `architect` section of your project like shown above. diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 0611580a8180..50ecec42445c 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/angular", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.", "keywords": [ "storybook", @@ -106,7 +106,7 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", "rxjs": "^6.0.0 || ^7.4.0", "typescript": "^4.0.0 || ^5.0.0", - "zone.js": "^0.8.29 || >= 0.9.0 < 1.0.0" + "zone.js": ">= 0.11.1 < 1.0.0" }, "peerDependenciesMeta": { "@angular/cli": { diff --git a/code/frameworks/angular/src/builders/build-storybook/index.ts b/code/frameworks/angular/src/builders/build-storybook/index.ts index aef361ac0790..a33b1f4b9776 100644 --- a/code/frameworks/angular/src/builders/build-storybook/index.ts +++ b/code/frameworks/angular/src/builders/build-storybook/index.ts @@ -42,7 +42,13 @@ export type StorybookBuilderOptions = JsonObject & { } & Pick< // makes sure the option exists CLIOptions, - 'outputDir' | 'configDir' | 'loglevel' | 'quiet' | 'webpackStatsJson' | 'disableTelemetry' + | 'outputDir' + | 'configDir' + | 'loglevel' + | 'quiet' + | 'webpackStatsJson' + | 'disableTelemetry' + | 'debugWebpack' >; export type StorybookBuilderOutput = JsonObject & BuilderOutput & { [key: string]: any }; @@ -81,6 +87,7 @@ const commandBuilder: BuilderHandlerFn = ( quiet, enableProdMode = true, webpackStatsJson, + debugWebpack, disableTelemetry, assets, } = options; @@ -103,6 +110,7 @@ const commandBuilder: BuilderHandlerFn = ( }, tsConfig, webpackStatsJson, + debugWebpack, }; return standaloneOptions; diff --git a/code/frameworks/angular/src/builders/build-storybook/schema.json b/code/frameworks/angular/src/builders/build-storybook/schema.json index b0c63c455076..51f24c17a46a 100644 --- a/code/frameworks/angular/src/builders/build-storybook/schema.json +++ b/code/frameworks/angular/src/builders/build-storybook/schema.json @@ -29,6 +29,11 @@ "description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].", "pattern": "(silly|verbose|info|warn|silent)" }, + "debugWebpack": { + "type": "boolean", + "description": "Debug the Webpack configuration", + "default": false + }, "enableProdMode": { "type": "boolean", "description": "Disable Angular's development mode, which turns off assertions and other checks within the framework.", diff --git a/code/frameworks/angular/src/builders/start-storybook/index.ts b/code/frameworks/angular/src/builders/start-storybook/index.ts index fa78f8b45d8e..cff33f886fb6 100644 --- a/code/frameworks/angular/src/builders/start-storybook/index.ts +++ b/code/frameworks/angular/src/builders/start-storybook/index.ts @@ -53,6 +53,7 @@ export type StorybookBuilderOptions = JsonObject & { | 'initialPath' | 'open' | 'docs' + | 'debugWebpack' >; export type StorybookBuilderOutput = JsonObject & BuilderOutput & {}; @@ -103,6 +104,7 @@ const commandBuilder: BuilderHandlerFn = (options, cont assets, initialPath, open, + debugWebpack, } = options; const standaloneOptions: StandaloneOptions = { @@ -130,6 +132,7 @@ const commandBuilder: BuilderHandlerFn = (options, cont tsConfig, initialPath, open, + debugWebpack, }; return standaloneOptions; diff --git a/code/frameworks/angular/src/builders/start-storybook/schema.json b/code/frameworks/angular/src/builders/start-storybook/schema.json index 3bd70064ccb9..78553109681c 100644 --- a/code/frameworks/angular/src/builders/start-storybook/schema.json +++ b/code/frameworks/angular/src/builders/start-storybook/schema.json @@ -10,6 +10,11 @@ "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$", "default": null }, + "debugWebpack": { + "type": "boolean", + "description": "Debug the Webpack configuration", + "default": false + }, "tsConfig": { "type": "string", "description": "The full path for the TypeScript configuration file, relative to the current workspace." diff --git a/code/frameworks/angular/src/builders/utils/error-handler.ts b/code/frameworks/angular/src/builders/utils/error-handler.ts index 2673dbfd0b87..f2ff150495cf 100644 --- a/code/frameworks/angular/src/builders/utils/error-handler.ts +++ b/code/frameworks/angular/src/builders/utils/error-handler.ts @@ -12,7 +12,7 @@ export const printErrorDetails = (error: any): void => { } else if ((error as any).stats && (error as any).stats.compilation.errors) { (error as any).stats.compilation.errors.forEach((e: any) => logger.plain(e)); } else { - logger.error(error); + logger.error(error as any); } } else if (error.compilation?.errors) { error.compilation.errors.forEach((e: any) => logger.plain(e)); diff --git a/code/frameworks/angular/src/client/globals.ts b/code/frameworks/angular/src/client/globals.ts index 87eff5c3387f..c16095858f16 100644 --- a/code/frameworks/angular/src/client/globals.ts +++ b/code/frameworks/angular/src/client/globals.ts @@ -25,7 +25,7 @@ import { global } from '@storybook/global'; /** ************************************************************************************************* * Zone JS is required by Angular itself. */ -import 'zone.js/dist/zone'; // Included with Angular CLI. +import 'zone.js'; // Included with Angular CLI. /** ************************************************************************************************* * APPLICATION IMPORTS diff --git a/code/frameworks/angular/src/server/framework-preset-angular-cli.ts b/code/frameworks/angular/src/server/framework-preset-angular-cli.ts index f8f78996c366..059d8b30f4d1 100644 --- a/code/frameworks/angular/src/server/framework-preset-angular-cli.ts +++ b/code/frameworks/angular/src/server/framework-preset-angular-cli.ts @@ -1,10 +1,10 @@ import webpack from 'webpack'; import { logger } from '@storybook/node-logger'; +import { AngularLegacyBuildOptionsError } from '@storybook/core-events/server-errors'; import { BuilderContext, targetFromTargetString } from '@angular-devkit/architect'; import { sync as findUpSync } from 'find-up'; -import { dedent } from 'ts-dedent'; - import { JsonObject, logging } from '@angular-devkit/core'; + import { getWebpackConfig as getCustomWebpackConfig } from './angular-cli-webpack'; import { moduleIsAvailable } from './utils/module-is-available'; import { PresetOptions } from './preset-options'; @@ -85,13 +85,6 @@ async function getBuilderOptions( return builderOptions; } -export const migrationToBuilderReferrenceMessage = dedent`Your Storybook startup uses a solution that is not supported. - You must use angular builder to have an explicit configuration on the project used in angular.json - Read more at: - - https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#sb-angular-builder) - - https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#angular13) - `; - /** * Checks if using legacy configuration that doesn't use builder and logs message referring to migration docs. */ @@ -101,7 +94,5 @@ function checkForLegacyBuildOptions(options: PresetOptions) { return; } - logger.error(migrationToBuilderReferrenceMessage); - - throw Error('angularBrowserTarget is undefined.'); + throw new AngularLegacyBuildOptionsError(); } diff --git a/code/frameworks/ember/package.json b/code/frameworks/ember/package.json index 16f724b1ba9e..7de04d5536d1 100644 --- a/code/frameworks/ember/package.json +++ b/code/frameworks/ember/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/ember", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember", "bugs": { diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index b7003719087d..dfddffd7886a 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-vite", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for HTML and Vite: Develop HTML in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index 4f4704a723e8..02d5ef123a63 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/nextjs/README.md b/code/frameworks/nextjs/README.md index 4d9ea8542470..01b2efd88862 100644 --- a/code/frameworks/nextjs/README.md +++ b/code/frameworks/nextjs/README.md @@ -19,6 +19,7 @@ - [next/font/google](#nextfontgoogle) - [next/font/local](#nextfontlocal) - [Not supported features of next/font](#not-supported-features-of-nextfont) + - [Mocking fonts during testing](#mocking-fonts-during-testing) - [Next.js Routing](#nextjs-routing) - [Overriding defaults](#overriding-defaults) - [Global Defaults](#global-defaults) @@ -271,6 +272,51 @@ The following features are not supported (yet). Support for these features might - [preload](https://nextjs.org/docs/api-reference/next/font#preload) option gets ignored. Storybook handles Font loading its own way. - [display](https://nextjs.org/docs/api-reference/next/font#display) option gets ignored. All fonts are loaded with display set to "block" to make Storybook load the font properly. +#### Mocking fonts during testing + +Occasionally fetching fonts from Google may fail as part of your Storybook build step. It is highly recommended to mock these requests, as those failures can cause your pipeline to fail as well. Next.js [supports mocking fonts](https://github.com/vercel/next.js/blob/725ddc7371f80cca273779d37f961c3e20356f95/packages/font/src/google/fetch-css-from-google-fonts.ts#L36) via a JavaScript module located where the env var `NEXT_FONT_GOOGLE_MOCKED_RESPONSES` references. + +For example, using [GitHub Actions](https://www.chromatic.com/docs/github-actions): + +```shell + - uses: chromaui/action@v1 + env: + #👇 the location of mocked fonts to use + NEXT_FONT_GOOGLE_MOCKED_RESPONSES: ${{ github.workspace }}/mocked-google-fonts.js + with: + projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} +``` + +Your mocked fonts will look something like this: + +```js +// mocked-google-fonts.js +//👇 Mocked responses of google fonts with the URL as the key +module.exports = { + 'https://fonts.googleapis.com/css?family=Inter:wght@400;500;600;800&display=block': ` + /* cyrillic-ext */ + @font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZJhiJ-Ek-_EeAmM.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; + } + /* more font declarations go here */ + /* latin */ + @font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiJ-Ek-_EeA.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + }`, +}; +``` + ### Next.js Routing [Next.js's router](https://nextjs.org/docs/routing/introduction) is automatically stubbed for you so that when the router is interacted with, all of its interactions are automatically logged to the Actions ctions panel if you have the [Storybook actions addon](https://storybook.js.org/docs/react/essentials/actions). @@ -295,7 +341,7 @@ export const Example = { parameters: { nextjs: { router: { - path: '/profile/[id]', + pathname: '/profile/[id]', asPath: '/profile/1', query: { id: '1', @@ -316,7 +362,7 @@ Global defaults can be set in [preview.js](https://storybook.js.org/docs/react/c export const parameters = { nextjs: { router: { - path: '/some-default-path', + pathname: '/some-default-path', asPath: '/some-default-path', query: {}, }, diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index a7cf4171ab48..3086efcb7d40 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/nextjs", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Next.js", "keywords": [ "storybook", @@ -27,6 +27,11 @@ "require": "./dist/index.js", "import": "./dist/index.mjs" }, + "./dist/image-context": { + "types": "./dist/image-context.d.ts", + "require": "./dist/image-context.mjs", + "import": "./dist/image-context.mjs" + }, "./preset": { "types": "./dist/preset.d.ts", "require": "./dist/preset.js" @@ -46,6 +51,16 @@ "main": "dist/index.js", "module": "dist/index.mjs", "types": "dist/index.d.ts", + "typesVersions": { + "*": { + "*": [ + "dist/index.d.ts" + ], + "dist/image-context": [ + "dist/image-context.d.ts" + ] + } + }, "files": [ "dist/**/*", "template/cli/**/*", @@ -60,13 +75,13 @@ }, "dependencies": { "@babel/core": "^7.22.9", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", "@babel/plugin-transform-runtime": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/preset-react": "^7.22.5", @@ -75,6 +90,7 @@ "@storybook/addon-actions": "workspace:*", "@storybook/builder-webpack5": "workspace:*", "@storybook/core-common": "workspace:*", + "@storybook/core-events": "workspace:*", "@storybook/node-logger": "workspace:*", "@storybook/preset-react-webpack": "workspace:*", "@storybook/preview-api": "workspace:*", @@ -103,7 +119,7 @@ "@types/babel__core": "^7", "@types/babel__plugin-transform-runtime": "^7", "@types/babel__preset-env": "^7", - "next": "^13.4.8", + "next": "13.4.19", "typescript": "^4.9.3", "webpack": "^5.65.0" }, @@ -136,11 +152,12 @@ }, "bundler": { "entries": [ + "./src/image-context.ts", "./src/index.ts", "./src/preset.ts", "./src/preview.tsx", "./src/next-image-loader-stub.ts", - "./src/images/context.ts", + "./src/images/decorator.tsx", "./src/images/next-future-image.tsx", "./src/images/next-legacy-image.tsx", "./src/images/next-image.tsx", diff --git a/code/frameworks/nextjs/src/babel/preset.ts b/code/frameworks/nextjs/src/babel/preset.ts index 08a6c18e4312..46dddd1d1659 100644 --- a/code/frameworks/nextjs/src/babel/preset.ts +++ b/code/frameworks/nextjs/src/babel/preset.ts @@ -142,9 +142,9 @@ export default (api: any, options: NextBabelPresetOptions = {}): BabelPreset => require('@babel/plugin-syntax-dynamic-import'), require('@babel/plugin-syntax-import-assertions'), require('./plugins/react-loadable-plugin'), - [require('@babel/plugin-proposal-class-properties'), options['class-properties'] || {}], + [require('@babel/plugin-transform-class-properties'), options['class-properties'] || {}], [ - require('@babel/plugin-proposal-object-rest-spread'), + require('@babel/plugin-transform-object-rest-spread'), { useBuiltIns: true, }, @@ -172,8 +172,8 @@ export default (api: any, options: NextBabelPresetOptions = {}): BabelPreset => isServer && require('@babel/plugin-syntax-bigint'), // Always compile numeric separator because the resulting number is // smaller. - require('@babel/plugin-proposal-numeric-separator'), - require('@babel/plugin-proposal-export-namespace-from'), + require('@babel/plugin-transform-numeric-separator'), + require('@babel/plugin-transform-export-namespace-from'), ].filter(Boolean), }; }; diff --git a/code/frameworks/nextjs/src/config/webpack.ts b/code/frameworks/nextjs/src/config/webpack.ts index a5f99fd51864..f5e72bc360d8 100644 --- a/code/frameworks/nextjs/src/config/webpack.ts +++ b/code/frameworks/nextjs/src/config/webpack.ts @@ -5,6 +5,14 @@ import type { NextConfig } from 'next'; import { DefinePlugin } from 'webpack'; import { addScopedAlias, getNextjsVersion, resolveNextConfig } from '../utils'; +const tryResolve = (path: string) => { + try { + return require.resolve(path); + } catch (err) { + return false; + } +}; + export const configureConfig = async ({ baseConfig, nextConfigPath, @@ -17,6 +25,12 @@ export const configureConfig = async ({ const nextConfig = await resolveNextConfig({ baseConfig, nextConfigPath, configDir }); addScopedAlias(baseConfig, 'next/config'); + if (tryResolve('next/dist/compiled/react')) { + addScopedAlias(baseConfig, 'react', 'next/dist/compiled/react'); + } + if (tryResolve('next/dist/compiled/react-dom')) { + addScopedAlias(baseConfig, 'react-dom', 'next/dist/compiled/react-dom'); + } setupRuntimeConfig(baseConfig, nextConfig); return nextConfig; diff --git a/code/frameworks/nextjs/src/dependency-map.ts b/code/frameworks/nextjs/src/dependency-map.ts new file mode 100644 index 000000000000..70ad2ece94e0 --- /dev/null +++ b/code/frameworks/nextjs/src/dependency-map.ts @@ -0,0 +1,36 @@ +import type { Configuration as WebpackConfig } from 'webpack'; +import semver from 'semver'; +import { getNextjsVersion, addScopedAlias } from './utils'; + +const mapping: Record> = { + '<11.1.0': { + 'next/dist/next-server/lib/router-context': 'next/dist/next-server/lib/router-context', + }, + '>=11.1.0': { + 'next/dist/shared/lib/router-context': 'next/dist/shared/lib/router-context', + }, + '>=13.5.0': { + 'next/dist/shared/lib/router-context': 'next/dist/shared/lib/router-context.shared-runtime', + 'next/dist/shared/lib/head-manager-context': + 'next/dist/shared/lib/head-manager-context.shared-runtime', + 'next/dist/shared/lib/app-router-context': + 'next/dist/shared/lib/app-router-context.shared-runtime', + 'next/dist/shared/lib/hooks-client-context': + 'next/dist/shared/lib/hooks-client-context.shared-runtime', + }, +}; + +export const configureAliasing = (baseConfig: WebpackConfig): void => { + const version = getNextjsVersion(); + const result: Record = {}; + + Object.keys(mapping).forEach((key) => { + if (semver.intersects(version, key)) { + Object.assign(result, mapping[key]); + } + }); + + Object.entries(result).forEach(([name, alias]) => { + addScopedAlias(baseConfig, name, alias); + }); +}; diff --git a/code/frameworks/nextjs/src/font/webpack/loader/google/get-font-face-declarations.ts b/code/frameworks/nextjs/src/font/webpack/loader/google/get-font-face-declarations.ts index 9526072fe0bf..0f8bfb1957f8 100644 --- a/code/frameworks/nextjs/src/font/webpack/loader/google/get-font-face-declarations.ts +++ b/code/frameworks/nextjs/src/font/webpack/loader/google/get-font-face-declarations.ts @@ -1,6 +1,10 @@ // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error import loaderUtils from 'next/dist/compiled/loader-utils3'; +import { + GoogleFontsDownloadError, + GoogleFontsLoadingError, +} from '@storybook/core-events/server-errors'; import type { LoaderOptions } from '../types'; const cssCache = new Map>(); @@ -33,7 +37,10 @@ export async function getFontFaceDeclarations(options: LoaderOptions) { cssCache.delete(url); } if (fontFaceCSS === null) { - throw Error(`Failed to fetch \`${fontFamily}\` from Google Fonts.`); + throw new GoogleFontsDownloadError({ + fontFamily, + url, + }); } return { @@ -45,6 +52,6 @@ export async function getFontFaceDeclarations(options: LoaderOptions) { variable, }; } catch (error) { - throw new Error("Google Fonts couldn't be loaded."); + throw new GoogleFontsLoadingError({ error, url }); } } diff --git a/code/frameworks/nextjs/src/font/webpack/loader/local/get-font-face-declarations.ts b/code/frameworks/nextjs/src/font/webpack/loader/local/get-font-face-declarations.ts index 20e1df8deeb2..006c7f126f5b 100644 --- a/code/frameworks/nextjs/src/font/webpack/loader/local/get-font-face-declarations.ts +++ b/code/frameworks/nextjs/src/font/webpack/loader/local/get-font-face-declarations.ts @@ -11,7 +11,7 @@ export async function getFontFaceDeclarations(options: LoaderOptions, rootContex const localFontSrc = options.props.src as LocalFontSrc; // Parent folder relative to the root context - const parentFolder = options.filename.split('/').slice(0, -1).join('/').replace(rootContext, ''); + const parentFolder = path.dirname(options.filename).replace(rootContext, ''); const { validateData } = require('../utils/local-font-utils'); const { weight, style, variable } = validateData('', options.props); @@ -23,9 +23,13 @@ export async function getFontFaceDeclarations(options: LoaderOptions, rootContex 6 )}`; + const arePathsWin32Format = /^[a-z]:\\/iu.test(options.filename); + const cleanWin32Path = (pathString: string): string => + arePathsWin32Format ? pathString.replace(/\\/gu, '/') : pathString; + const getFontFaceCSS = () => { if (typeof localFontSrc === 'string') { - const localFontPath = path.join(parentFolder, localFontSrc); + const localFontPath = cleanWin32Path(path.join(parentFolder, localFontSrc)); return `@font-face { font-family: ${id}; @@ -34,7 +38,7 @@ export async function getFontFaceDeclarations(options: LoaderOptions, rootContex } return localFontSrc .map((font) => { - const localFontPath = path.join(parentFolder, font.path); + const localFontPath = cleanWin32Path(path.join(parentFolder, font.path)); return `@font-face { font-family: ${id}; diff --git a/code/frameworks/nextjs/src/images/context.ts b/code/frameworks/nextjs/src/image-context.ts similarity index 100% rename from code/frameworks/nextjs/src/images/context.ts rename to code/frameworks/nextjs/src/image-context.ts diff --git a/code/frameworks/nextjs/src/images/decorator.tsx b/code/frameworks/nextjs/src/images/decorator.tsx index f0917b3a3b50..342f49d32b9a 100644 --- a/code/frameworks/nextjs/src/images/decorator.tsx +++ b/code/frameworks/nextjs/src/images/decorator.tsx @@ -1,6 +1,13 @@ import * as React from 'react'; import type { Addon_StoryContext } from '@storybook/types'; -import { ImageContext } from './context'; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore-error (this only errors during compilation for production) +// eslint-disable-next-line import/no-extraneous-dependencies +import { ImageContext as ImageContextValue } from '@storybook/nextjs/dist/image-context'; +import { type ImageContext as ImageContextType } from '../image-context'; + +const ImageContext = ImageContextValue as typeof ImageContextType; export const ImageDecorator = ( Story: React.FC, diff --git a/code/frameworks/nextjs/src/images/next-future-image.tsx b/code/frameworks/nextjs/src/images/next-future-image.tsx index 559d2e857d39..306518079b38 100644 --- a/code/frameworks/nextjs/src/images/next-future-image.tsx +++ b/code/frameworks/nextjs/src/images/next-future-image.tsx @@ -3,18 +3,21 @@ import type * as _NextImage from 'next/image'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore import is aliased in webpack config import OriginalNextFutureImage from 'sb-original/next/future/image'; -import { ImageContext } from './context'; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore-error (this only errors during compilation for production) +// eslint-disable-next-line import/no-extraneous-dependencies +import { ImageContext as ImageContextValue } from '@storybook/nextjs/dist/image-context'; +import { type ImageContext as ImageContextType } from '../image-context'; import { defaultLoader } from './next-image-default-loader'; -function NextFutureImage(props: _NextImage.ImageProps) { +const ImageContext = ImageContextValue as typeof ImageContextType; + +function NextFutureImage({ loader, ...props }: _NextImage.ImageProps) { const imageParameters = React.useContext(ImageContext); return ( - + ); } diff --git a/code/frameworks/nextjs/src/images/next-image-default-loader.tsx b/code/frameworks/nextjs/src/images/next-image-default-loader.tsx index 6029390979ac..c7050914371b 100644 --- a/code/frameworks/nextjs/src/images/next-image-default-loader.tsx +++ b/code/frameworks/nextjs/src/images/next-image-default-loader.tsx @@ -1,6 +1,6 @@ import type * as _NextImage from 'next/image'; -export const defaultLoader = ({ src, width, quality }: _NextImage.ImageLoaderProps) => { +export const defaultLoader = ({ src, width, quality = 75 }: _NextImage.ImageLoaderProps) => { const missingValues = []; if (!src) { missingValues.push('src'); @@ -24,5 +24,16 @@ export const defaultLoader = ({ src, width, quality }: _NextImage.ImageLoaderPro ); } - return `${src}?w=${width}&q=${quality ?? 75}`; + const url = new URL(src, window.location.href); + + if (!url.searchParams.has('w') && !url.searchParams.has('q')) { + url.searchParams.set('w', width.toString()); + url.searchParams.set('q', quality.toString()); + } + + if (!src.startsWith('http://') && !src.startsWith('https://')) { + return url.toString().slice(url.origin.length); + } + + return url.toString(); }; diff --git a/code/frameworks/nextjs/src/images/next-image.tsx b/code/frameworks/nextjs/src/images/next-image.tsx index 74e252d93a7d..8fc964785f6b 100644 --- a/code/frameworks/nextjs/src/images/next-image.tsx +++ b/code/frameworks/nextjs/src/images/next-image.tsx @@ -3,15 +3,20 @@ import OriginalNextImage from 'sb-original/next/image'; import type * as _NextImage from 'next/image'; import React from 'react'; -import { ImageContext } from './context'; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore-error (this only errors during compilation for production) +// eslint-disable-next-line import/no-extraneous-dependencies +import { ImageContext as ImageContextValue } from '@storybook/nextjs/dist/image-context'; +import { type ImageContext as ImageContextType } from '../image-context'; import { defaultLoader } from './next-image-default-loader'; -const MockedNextImage = (props: _NextImage.ImageProps) => { +const ImageContext = ImageContextValue as typeof ImageContextType; + +const MockedNextImage = ({ loader, ...props }: _NextImage.ImageProps) => { const imageParameters = React.useContext(ImageContext); - return ( - - ); + return ; }; export default MockedNextImage; diff --git a/code/frameworks/nextjs/src/images/next-legacy-image.tsx b/code/frameworks/nextjs/src/images/next-legacy-image.tsx index 8d899cc341a5..33dfc0e0068a 100644 --- a/code/frameworks/nextjs/src/images/next-legacy-image.tsx +++ b/code/frameworks/nextjs/src/images/next-legacy-image.tsx @@ -3,18 +3,21 @@ import OriginalNextLegacyImage from 'sb-original/next/legacy/image'; import type * as _NextLegacyImage from 'next/legacy/image'; import React from 'react'; -import { ImageContext } from './context'; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore-error (this only errors during compilation for production) +// eslint-disable-next-line import/no-extraneous-dependencies +import { ImageContext as ImageContextValue } from '@storybook/nextjs/dist/image-context'; +import { type ImageContext as ImageContextType } from '../image-context'; import { defaultLoader } from './next-image-default-loader'; -function NextLegacyImage(props: _NextLegacyImage.ImageProps) { +const ImageContext = ImageContextValue as typeof ImageContextType; + +function NextLegacyImage({ loader, ...props }: _NextLegacyImage.ImageProps) { const imageParameters = React.useContext(ImageContext); return ( - + ); } diff --git a/code/frameworks/nextjs/src/preset.ts b/code/frameworks/nextjs/src/preset.ts index 238ba2bb170e..db1c276da9b4 100644 --- a/code/frameworks/nextjs/src/preset.ts +++ b/code/frameworks/nextjs/src/preset.ts @@ -7,7 +7,6 @@ import { getProjectRoot } from '@storybook/core-common'; import { configureConfig } from './config/webpack'; import { configureCss } from './css/webpack'; import { configureImports } from './imports/webpack'; -import { configureRouting } from './routing/webpack'; import { configureStyledJsx } from './styledJsx/webpack'; import { configureImages } from './images/webpack'; import { configureRuntimeNextjsVersionResolution } from './utils'; @@ -17,6 +16,7 @@ import TransformFontImports from './font/babel'; import { configureNextFont } from './font/webpack/configureNextFont'; import nextBabelPreset from './babel/preset'; import { configureNodePolyfills } from './nodePolyfills/webpack'; +import { configureAliasing } from './dependency-map'; export const addons: PresetProperty<'addons', StorybookConfig> = [ dirname(require.resolve(join('@storybook/preset-react-webpack', 'package.json'))), @@ -68,7 +68,7 @@ export const core: PresetProperty<'core', StorybookConfig> = async (config, opti }; }; -export const config: StorybookConfig['previewAnnotations'] = (entry = []) => [ +export const previewAnnotations: StorybookConfig['previewAnnotations'] = (entry = []) => [ ...entry, require.resolve('@storybook/nextjs/preview.js'), ]; @@ -143,13 +143,13 @@ export const webpackFinal: StorybookConfig['webpackFinal'] = async (baseConfig, configDir: options.configDir, }); + configureAliasing(baseConfig); configureNextFont(baseConfig); configureNextImport(baseConfig); configureRuntimeNextjsVersionResolution(baseConfig); configureImports({ baseConfig, configDir: options.configDir }); configureCss(baseConfig, nextConfig); configureImages(baseConfig, nextConfig); - configureRouting(baseConfig); configureStyledJsx(baseConfig); configureNodePolyfills(baseConfig); diff --git a/code/frameworks/nextjs/src/routing/app-router-provider.tsx b/code/frameworks/nextjs/src/routing/app-router-provider.tsx index 75c6c5629b87..e25c2f1488b4 100644 --- a/code/frameworks/nextjs/src/routing/app-router-provider.tsx +++ b/code/frameworks/nextjs/src/routing/app-router-provider.tsx @@ -74,6 +74,7 @@ const AppRouterProvider: React.FC = ({ children, action, apply: false, hashFragment: null, segmentPaths: [tree], + onlyHashChange: false, }, nextUrl: pathname, }} diff --git a/code/frameworks/nextjs/src/routing/webpack.tsx b/code/frameworks/nextjs/src/routing/webpack.tsx deleted file mode 100644 index c0d245219742..000000000000 --- a/code/frameworks/nextjs/src/routing/webpack.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import type { Configuration as WebpackConfig } from 'webpack'; -import semver from 'semver'; -import { addScopedAlias, getNextjsVersion } from '../utils'; - -export const configureRouting = (baseConfig: WebpackConfig): void => { - // here we resolve the router context path with the installed version of Next.js - const routerContextPath = getRouterContextPath(); - addScopedAlias(baseConfig, routerContextPath); -}; - -const getRouterContextPath = () => { - const version = getNextjsVersion(); - if (semver.gte(version, '11.1.0')) { - return 'next/dist/shared/lib/router-context'; - } - - return 'next/dist/next-server/lib/router-context'; -}; diff --git a/code/frameworks/nextjs/template/stories/Image.stories.jsx b/code/frameworks/nextjs/template/stories/Image.stories.jsx index 46ef28363830..7a8803a6e992 100644 --- a/code/frameworks/nextjs/template/stories/Image.stories.jsx +++ b/code/frameworks/nextjs/template/stories/Image.stories.jsx @@ -61,10 +61,6 @@ export const Lazy = { width: 50, height: 50, }, - parameters: { - // ignoring in Chromatic to avoid inconsistent snapshots since the image is sometimes not loaded in time - chromatic: { disableSnapshot: true }, - }, decorators: [ (Story) => ( <> @@ -78,8 +74,6 @@ export const Lazy = { export const Eager = { ...Lazy, parameters: { - // ignoring in Chromatic to avoid inconsistent snapshots since the image is sometimes not loaded in time - chromatic: { disableSnapshot: true }, nextjs: { image: { loading: 'eager', diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index b4e19bb7c8f8..3df266adecec 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-vite", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Preact and Vite: Develop Preact components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 7e59ec07cd56..8d4d7ecb9beb 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 9e6b008bed04..15026f5f0af8 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-vite", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -52,9 +52,8 @@ "@storybook/builder-vite": "workspace:*", "@storybook/react": "workspace:*", "@vitejs/plugin-react": "^3.0.1", - "ast-types": "^0.14.2", "magic-string": "^0.30.0", - "react-docgen": "6.0.0-alpha.3" + "react-docgen": "^6.0.2" }, "devDependencies": { "@types/node": "^16.0.0", diff --git a/code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts b/code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts index efa6717b47b2..01889ddf9dcf 100644 --- a/code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts +++ b/code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts @@ -9,40 +9,46 @@ * directly from displayNameHandler, using the same approach as babel-plugin-react-docgen. */ -import { namedTypes as t } from 'ast-types'; -import type { NodePath } from 'ast-types/lib/node-path'; -import { getNameOrValue, isReactForwardRefCall } from 'react-docgen/dist/utils'; -import type { Importer } from 'react-docgen/dist/parse'; -import type Documentation from 'react-docgen/dist/Documentation'; +import type { Handler, NodePath, babelTypes as t } from 'react-docgen'; +import { utils } from 'react-docgen'; -export default function actualNameHandler( - documentation: Documentation, - path: NodePath, - importer: Importer -): void { - if (t.ClassDeclaration.check(path.node) || t.FunctionDeclaration.check(path.node)) { - documentation.set('actualName', getNameOrValue(path.get('id'))); +const { getNameOrValue, isReactForwardRefCall } = utils; + +const actualNameHandler: Handler = function actualNameHandler(documentation, componentDefinition) { + if ( + (componentDefinition.isClassDeclaration() || componentDefinition.isFunctionDeclaration()) && + componentDefinition.has('id') + ) { + documentation.set( + 'actualName', + getNameOrValue(componentDefinition.get('id') as NodePath) + ); } else if ( - t.ArrowFunctionExpression.check(path.node) || - t.FunctionExpression.check(path.node) || - isReactForwardRefCall(path, importer) + componentDefinition.isArrowFunctionExpression() || + componentDefinition.isFunctionExpression() || + isReactForwardRefCall(componentDefinition) ) { - let currentPath = path; - while (currentPath.parent) { - if (t.VariableDeclarator.check(currentPath.parent.node)) { - documentation.set('actualName', getNameOrValue(currentPath.parent.get('id'))); + let currentPath: NodePath = componentDefinition; + + while (currentPath.parentPath) { + if (currentPath.parentPath.isVariableDeclarator()) { + documentation.set('actualName', getNameOrValue(currentPath.parentPath.get('id'))); return; } - if (t.AssignmentExpression.check(currentPath.parent.node)) { - const leftPath = currentPath.parent.get('left'); - if (t.Identifier.check(leftPath.node) || t.Literal.check(leftPath.node)) { + if (currentPath.parentPath.isAssignmentExpression()) { + const leftPath = currentPath.parentPath.get('left'); + + if (leftPath.isIdentifier() || leftPath.isLiteral()) { documentation.set('actualName', getNameOrValue(leftPath)); return; } } - currentPath = currentPath.parent; + + currentPath = currentPath.parentPath; } // Could not find an actual name documentation.set('actualName', ''); } -} +}; + +export default actualNameHandler; diff --git a/code/frameworks/react-vite/src/plugins/react-docgen.ts b/code/frameworks/react-vite/src/plugins/react-docgen.ts index 0561456f8618..9c35568f45ba 100644 --- a/code/frameworks/react-vite/src/plugins/react-docgen.ts +++ b/code/frameworks/react-vite/src/plugins/react-docgen.ts @@ -1,22 +1,23 @@ import path from 'path'; import { createFilter } from '@rollup/pluginutils'; +import type { Documentation } from 'react-docgen'; import { + ERROR_CODES, parse, - handlers as docgenHandlers, - resolver as docgenResolver, - importers as docgenImporters, + builtinHandlers as docgenHandlers, + builtinResolvers as docgenResolver, + builtinImporters as docgenImporters, } from 'react-docgen'; -import type { DocumentationObject } from 'react-docgen/dist/Documentation'; import MagicString from 'magic-string'; import type { PluginOption } from 'vite'; import actualNameHandler from './docgen-handlers/actualNameHandler'; -type DocObj = DocumentationObject & { actualName: string }; +type DocObj = Documentation & { actualName: string }; // TODO: None of these are able to be overridden, so `default` is aspirational here. const defaultHandlers = Object.values(docgenHandlers).map((handler) => handler); -const defaultResolver = docgenResolver.findAllExportedComponentDefinitions; -const defaultImporter = docgenImporters.makeFsImporter(); +const defaultResolver = new docgenResolver.FindExportedDefinitionsResolver(); +const defaultImporter = docgenImporters.fsImporter; const handlers = [...defaultHandlers, actualNameHandler]; type Options = { @@ -39,8 +40,9 @@ export function reactDocgen({ if (!filter(relPath)) return; try { - // Since we're using `findAllExportedComponentDefinitions`, this will always be an array. - const docgenResults = parse(src, defaultResolver, handlers, { + const docgenResults = parse(src, { + resolver: defaultResolver, + handlers, importer: defaultImporter, filename: id, }) as DocObj[]; @@ -59,10 +61,12 @@ export function reactDocgen({ code: s.toString(), map: s.generateMap(), }; - } catch (e) { - // Usually this is just an error from react-docgen that it couldn't find a component - // Only uncomment for troubleshooting - // console.error(e); + } catch (e: any) { + // Ignore the error when react-docgen cannot find a react component + if (e.code === ERROR_CODES.MISSING_DEFINITION) { + return; + } + throw e; } }, }; diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 00036ab34b93..e767d5e14b42 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index e18f980f4848..3997eaffc5e2 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index e911b05375e0..5eabe2366d49 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-vite", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-vite/src/utils.ts b/code/frameworks/svelte-vite/src/utils.ts index 87f2129aeb9f..514dada509a3 100644 --- a/code/frameworks/svelte-vite/src/utils.ts +++ b/code/frameworks/svelte-vite/src/utils.ts @@ -23,7 +23,7 @@ export async function handleSvelteKit(plugins: PluginOption[], options: Options) 'vite-plugin-sveltekit-compile', ]); - if (hasSvelteKitPlugins && framework !== '@storybook/sveltekit') { + if (hasSvelteKitPlugins && !framework.includes('@storybook/sveltekit')) { throw new Error(dedent` We've detected a SvelteKit project using the @storybook/svelte-vite framework, which is not supported in Storybook 7.0 Please use the @storybook/sveltekit framework instead. diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index da70c8302435..97ca845f9087 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/sveltekit/README.md b/code/frameworks/sveltekit/README.md index 467643ee1ae5..fd103c8764b1 100644 --- a/code/frameworks/sveltekit/README.md +++ b/code/frameworks/sveltekit/README.md @@ -29,7 +29,7 @@ However SvelteKit has some [Kit-specific modules](https://kit.svelte.dev/docs/mo | [`$app/forms`](https://kit.svelte.dev/docs/modules#$app-forms) | ⏳ Future | Will use mocks. Tracked in [#20999](https://github.com/storybookjs/storybook/issues/20999) | | [`$app/navigation`](https://kit.svelte.dev/docs/modules#$app-navigation) | ⏳ Future | Will use mocks. Tracked in [#20999](https://github.com/storybookjs/storybook/issues/20999) | | [`$app/paths`](https://kit.svelte.dev/docs/modules#$app-paths) | ✅ Supported | Requires SvelteKit 1.4.0 or newer | -| [`$app/stores`](https://kit.svelte.dev/docs/modules#$app-stores) | ✅ Supported | Mocks planned, so you can set different store values per story. | +| [`$app/stores`](https://kit.svelte.dev/docs/modules#$app-stores) | ✅ Supported | Mocks planned, so you can set different store values per story. | | [`$env/dynamic/private`](https://kit.svelte.dev/docs/modules#$env-dynamic-private) | ⛔ Not supported | They are meant to only be available server-side, and Storybook renders all components on the client. | | [`$env/dynamic/public`](https://kit.svelte.dev/docs/modules#$env-dynamic-public) | 🚧 Partially supported | Only supported in development mode. Storybook is built as a static app with no server-side API so cannot dynamically serve content. | | [`$env/static/private`](https://kit.svelte.dev/docs/modules#$env-static-private) | ⛔ Not supported | They are meant to only be available server-side, and Storybook renders all components on the client. | diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index fe3d02271695..8b9f808420b5 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/sveltekit", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for SvelteKit", "keywords": [ "storybook", diff --git a/code/frameworks/vue-vite/package.json b/code/frameworks/vue-vite/package.json index 30ae8c7d541b..d081aa9f1c37 100644 --- a/code/frameworks/vue-vite/package.json +++ b/code/frameworks/vue-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue-vite", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue2 and Vite: Develop Vue2 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue-webpack5/package.json b/code/frameworks/vue-webpack5/package.json index d5f2d05df308..2c6f6d8d6fc2 100644 --- a/code/frameworks/vue-webpack5/package.json +++ b/code/frameworks/vue-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 17a4cf65a985..440d63740f21 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-vite", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index e1c6efab600d..cf035615f7b9 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 2a123ea00411..1956f8b0047a 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-vite", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for web-components and Vite: Develop Web Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index 565f9ca6089b..17b38ad48112 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-webpack5", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit", diff --git a/code/lib/channels/package.json b/code/lib/channels/package.json index 97be4d3904b1..7108ca6958d9 100644 --- a/code/lib/channels/package.json +++ b/code/lib/channels/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channels", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/cli-sb/package.json b/code/lib/cli-sb/package.json index fe90b2d6c39b..3802f4407bb8 100644 --- a/code/lib/cli-sb/package.json +++ b/code/lib/cli-sb/package.json @@ -1,6 +1,6 @@ { "name": "sb", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index 1e3e673d7bbb..de2d447d9f7a 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli/bin/index.js b/code/lib/cli/bin/index.js index 812bff5291c2..7131e95a311d 100755 --- a/code/lib/cli/bin/index.js +++ b/code/lib/cli/bin/index.js @@ -6,4 +6,21 @@ if (majorNodeVersion < 16) { process.exit(1); } +// The Storybook CLI has a catch block for all of its commands, but if an error +// occurs before the command even runs, for instance, if an import fails, then +// such error will fall under the uncaughtException handler. +// This is the earliest moment we can catch such errors. +process.once('uncaughtException', (error) => { + if (error.message.includes('string-width')) { + console.error( + [ + '🔴 Error: It looks like you are having a known issue with package hoisting.', + 'Please check the following issue for details and solutions: https://github.com/storybookjs/storybook/issues/22431#issuecomment-1630086092\n\n', + ].join('\n') + ); + } + + throw error; +}); + require('../dist/generate.js'); diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index 8dbcdb6b8c9c..a089338f0950 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/cli", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook's CLI - easiest method of adding storybook to your projects", "keywords": [ "cli", @@ -61,6 +61,7 @@ "@ndelangen/get-tarball": "^3.0.7", "@storybook/codemod": "workspace:*", "@storybook/core-common": "workspace:*", + "@storybook/core-events": "workspace:*", "@storybook/core-server": "workspace:*", "@storybook/csf-tools": "workspace:*", "@storybook/node-logger": "workspace:*", diff --git a/code/lib/cli/src/add.ts b/code/lib/cli/src/add.ts index a163e1f1e34f..8728da80ad5f 100644 --- a/code/lib/cli/src/add.ts +++ b/code/lib/cli/src/add.ts @@ -1,6 +1,8 @@ -import { getStorybookInfo } from '@storybook/core-common'; +import { getStorybookInfo, serverRequire } from '@storybook/core-common'; import { readConfig, writeConfig } from '@storybook/csf-tools'; +import { isAbsolute, join } from 'path'; import SemVer from 'semver'; +import dedent from 'ts-dedent'; import { JsPackageManagerFactory, @@ -38,6 +40,21 @@ const getVersionSpecifier = (addon: string) => { return groups ? [groups[1], groups[2]] : [addon, undefined]; }; +const requireMain = (configDir: string) => { + const absoluteConfigDir = isAbsolute(configDir) ? configDir : join(process.cwd(), configDir); + const mainFile = join(absoluteConfigDir, 'main'); + + return serverRequire(mainFile) ?? {}; +}; + +const checkInstalled = (addonName: string, main: any) => { + const existingAddon = main.addons?.find((entry: string | { name: string }) => { + const name = typeof entry === 'string' ? entry : entry.name; + return name?.endsWith(addonName); + }); + return !!existingAddon; +}; + /** * Install the given addon package and add it to main.js * @@ -60,9 +77,16 @@ export async function add( } const packageManager = JsPackageManagerFactory.getPackageManager({ force: pkgMgr }); const packageJson = await packageManager.retrievePackageJson(); + const { mainConfig, configDir } = getStorybookInfo(packageJson); + + if (checkInstalled(addon, requireMain(configDir))) { + throw new Error(dedent` + Addon ${addon} is already installed; we skipped adding it to your ${mainConfig}. + `); + } + const [addonName, versionSpecifier] = getVersionSpecifier(addon); - const { mainConfig } = getStorybookInfo(packageJson); if (!mainConfig) { logger.error('Unable to find storybook main.js config'); return; @@ -91,6 +115,6 @@ export async function add( await writeConfig(main); if (!options.skipPostinstall && isStorybookAddon) { - await postinstallAddon(addonName, { packageManager: pkgMgr }); + await postinstallAddon(addonName, { packageManager: packageManager.type }); } } diff --git a/code/lib/cli/src/automigrate/fixes/angular-builders.ts b/code/lib/cli/src/automigrate/fixes/angular-builders.ts index 626723f091ff..3bdc9da5062c 100644 --- a/code/lib/cli/src/automigrate/fixes/angular-builders.ts +++ b/code/lib/cli/src/automigrate/fixes/angular-builders.ts @@ -59,14 +59,14 @@ export const angularBuilders: Fix = { prompt() { return dedent` - We have detected that your project does not use the Storybook Angular builder yet. In Storybook 6.4 we have deprecated calling Storybook directly (npm run storybook) for Angular. In Storybook 7.0, we've removed it entirely. + We have detected that your project does not use the Storybook Angular builder yet. In Storybook 6.4 we deprecated calling Storybook directly (npm run storybook) for Angular. In Storybook 7.0, we've removed it entirely. In order to use the Storybook Angular builder, we need to add a few entries to your angular.json file. Additionally, we will add the @compodoc/compodoc package to your devDependencies if you want and we will add a few scripts to your package.json file. Also feel free to remove the Compodoc script from your package.json file if you don't use it apart from Storybook anymore. Storybook uses Compodoc internally and you don't have to call in separately anymore. Read more about the Angular builder here: ${chalk.yellow( - 'https://storybook.js.org/docs/angular/configure/storybook-builders' + 'https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular#how-do-i-migrate-to-an-angular-storybook-builder' )} `; }, diff --git a/code/lib/cli/src/automigrate/helpers/getMigrationSummary.test.ts b/code/lib/cli/src/automigrate/helpers/getMigrationSummary.test.ts index 2b95a6658217..f5569ae2f49d 100644 --- a/code/lib/cli/src/automigrate/helpers/getMigrationSummary.test.ts +++ b/code/lib/cli/src/automigrate/helpers/getMigrationSummary.test.ts @@ -32,6 +32,7 @@ describe('getMigrationSummary', () => { }, dependencies: {}, infoCommand: 'yarn why', + dedupeCommand: 'yarn dedupe', }; const logFile = '/path/to/log/file'; @@ -146,7 +147,9 @@ describe('getMigrationSummary', () => { @storybook/addon-essentials: 7.0.0, 7.1.0 - You can find more information for a given dependency by running yarn why " + You can find more information for a given dependency by running yarn why + + Please try de-duplicating these dependencies by running yarn dedupe" `); }); diff --git a/code/lib/cli/src/automigrate/helpers/getMigrationSummary.ts b/code/lib/cli/src/automigrate/helpers/getMigrationSummary.ts index 9e9d60df35c7..6a16e2ae3291 100644 --- a/code/lib/cli/src/automigrate/helpers/getMigrationSummary.ts +++ b/code/lib/cli/src/automigrate/helpers/getMigrationSummary.ts @@ -184,6 +184,11 @@ function getWarnings(installationMetadata: InstallationMetadata) { `${installationMetadata.infoCommand} ` )}` ); + messages.push( + `Please try de-duplicating these dependencies by running ${chalk.cyan( + `${installationMetadata.dedupeCommand}` + )}` + ); return messages; } diff --git a/code/lib/cli/src/generate.ts b/code/lib/cli/src/generate.ts index f12564b0d9c5..fa52682ee278 100644 --- a/code/lib/cli/src/generate.ts +++ b/code/lib/cli/src/generate.ts @@ -22,6 +22,7 @@ import { dev } from './dev'; import { build } from './build'; import { parseList, getEnvConfig } from './utils'; import versions from './versions'; +import { JsPackageManagerFactory } from './js-package-manager'; addToGlobalContext('cliVersion', versions.storybook); @@ -87,17 +88,24 @@ command('upgrade') command('info') .description('Prints debugging information about the local environment') - .action(() => { - consoleLogger.log(chalk.bold('\nEnvironment Info:')); - envinfo - .run({ - System: ['OS', 'CPU'], - Binaries: ['Node', 'Yarn', 'npm'], - Browsers: ['Chrome', 'Edge', 'Firefox', 'Safari'], - npmPackages: '@storybook/*', - npmGlobalPackages: '@storybook/*', - }) - .then(consoleLogger.log); + .action(async () => { + consoleLogger.log(chalk.bold('\nStorybook Environment Info:')); + const pkgManager = await JsPackageManagerFactory.getPackageManager(); + const activePackageManager = pkgManager.type.replace(/\d/, ''); // 'yarn1' -> 'yarn' + const output = await envinfo.run({ + System: ['OS', 'CPU', 'Shell'], + Binaries: ['Node', 'Yarn', 'npm', 'pnpm'], + Browsers: ['Chrome', 'Edge', 'Firefox', 'Safari'], + npmPackages: '{@storybook/*,*storybook*,sb,chromatic}', + npmGlobalPackages: '{@storybook/*,*storybook*,sb,chromatic}', + }); + const activePackageManagerLine = output.match(new RegExp(`${activePackageManager}:.*`, 'i')); + consoleLogger.log( + output.replace( + activePackageManagerLine, + chalk.bold(`${activePackageManagerLine} <----- active`) + ) + ); }); command('migrate [migration]') diff --git a/code/lib/cli/src/generators/ANGULAR/helpers.ts b/code/lib/cli/src/generators/ANGULAR/helpers.ts index d1774e583017..b2394797909c 100644 --- a/code/lib/cli/src/generators/ANGULAR/helpers.ts +++ b/code/lib/cli/src/generators/ANGULAR/helpers.ts @@ -1,6 +1,8 @@ import fs from 'fs'; +import { join } from 'path'; import prompts from 'prompts'; import dedent from 'ts-dedent'; +import { MissingAngularJsonError } from '@storybook/core-events/server-errors'; export const ANGULAR_JSON_PATH = 'angular.json'; @@ -27,9 +29,7 @@ export class AngularJSON { constructor() { if (!fs.existsSync(ANGULAR_JSON_PATH)) { - throw new Error( - 'An angular.json file was not found in the current working directory. Storybook needs it to work properly, so please rerun the command at the root of your project, where the angular.json file is located. More info: https://storybook.js.org/docs/angular/faq#error-no-angularjson-file-found' - ); + throw new MissingAngularJsonError({ path: join(process.cwd(), ANGULAR_JSON_PATH) }); } const jsonContent = fs.readFileSync(ANGULAR_JSON_PATH, 'utf8'); diff --git a/code/lib/cli/src/generators/configure.test.ts b/code/lib/cli/src/generators/configure.test.ts index c79eea9a253c..42af44a893ba 100644 --- a/code/lib/cli/src/generators/configure.test.ts +++ b/code/lib/cli/src/generators/configure.test.ts @@ -131,7 +131,7 @@ describe('configurePreview', () => { controls: { matchers: { color: /(background|color)$/i, - date: /Date$/, + date: /Date$/i, }, }, }, @@ -162,7 +162,7 @@ describe('configurePreview', () => { controls: { matchers: { color: /(background|color)$/i, - date: /Date$/, + date: /Date$/i, }, }, }, @@ -213,7 +213,7 @@ describe('configurePreview', () => { controls: { matchers: { color: /(background|color)$/i, - date: /Date$/, + date: /Date$/i, }, }, }, diff --git a/code/lib/cli/src/generators/configure.ts b/code/lib/cli/src/generators/configure.ts index 6001a17b6024..bc70a8f2bfa2 100644 --- a/code/lib/cli/src/generators/configure.ts +++ b/code/lib/cli/src/generators/configure.ts @@ -152,7 +152,7 @@ export async function configurePreview(options: ConfigurePreviewOptions) { controls: { matchers: { color: /(background|color)$/i, - date: /Date$/, + date: /Date$/i, }, }, }, diff --git a/code/lib/cli/src/js-package-manager/NPMProxy.test.ts b/code/lib/cli/src/js-package-manager/NPMProxy.test.ts index 667f173f99e8..60ba9e3e9a4a 100644 --- a/code/lib/cli/src/js-package-manager/NPMProxy.test.ts +++ b/code/lib/cli/src/js-package-manager/NPMProxy.test.ts @@ -379,6 +379,7 @@ describe('NPM Proxy', () => { expect(installations).toMatchInlineSnapshot(` Object { + "dedupeCommand": "npm dedupe", "dependencies": Object { "@storybook/addon-interactions": Array [ Object { diff --git a/code/lib/cli/src/js-package-manager/NPMProxy.ts b/code/lib/cli/src/js-package-manager/NPMProxy.ts index 519030d34a59..1613bac9bb5d 100644 --- a/code/lib/cli/src/js-package-manager/NPMProxy.ts +++ b/code/lib/cli/src/js-package-manager/NPMProxy.ts @@ -142,6 +142,9 @@ export class NPMProxy extends JsPackageManager { args: ['ls', '--json', '--depth=99', pipeToNull], // ignore errors, because npm ls will exit with code 1 if there are e.g. unmet peer dependencies ignoreError: true, + env: { + FORCE_COLOR: 'false', + }, }); try { @@ -272,6 +275,7 @@ export class NPMProxy extends JsPackageManager { dependencies: acc, duplicatedDependencies, infoCommand: 'npm ls --depth=1', + dedupeCommand: 'npm dedupe', }; } diff --git a/code/lib/cli/src/js-package-manager/PNPMProxy.test.ts b/code/lib/cli/src/js-package-manager/PNPMProxy.test.ts index e59bd7354bcc..21decc0e7af1 100644 --- a/code/lib/cli/src/js-package-manager/PNPMProxy.test.ts +++ b/code/lib/cli/src/js-package-manager/PNPMProxy.test.ts @@ -213,9 +213,14 @@ describe('PNPM Proxy', () => { .spyOn(pnpmProxy, 'writePackageJson') .mockImplementation(jest.fn()); + const basePackageAttributes = { + dependencies: {}, + devDependencies: {}, + }; + jest.spyOn(pnpmProxy, 'retrievePackageJson').mockImplementation( - // @ts-expect-error (not strict) - jest.fn(() => ({ + jest.fn(async () => ({ + ...basePackageAttributes, overrides: { bar: 'x.x.x', }, @@ -228,6 +233,7 @@ describe('PNPM Proxy', () => { await pnpmProxy.addPackageResolutions(versions); expect(writePackageSpy).toHaveBeenCalledWith({ + ...basePackageAttributes, overrides: { ...versions, bar: 'x.x.x', @@ -316,6 +322,7 @@ describe('PNPM Proxy', () => { expect(installations).toMatchInlineSnapshot(` Object { + "dedupeCommand": "pnpm dedupe", "dependencies": Object { "@storybook/addon-interactions": Array [ Object { diff --git a/code/lib/cli/src/js-package-manager/PNPMProxy.ts b/code/lib/cli/src/js-package-manager/PNPMProxy.ts index d435ec397a05..57fb2ae9b075 100644 --- a/code/lib/cli/src/js-package-manager/PNPMProxy.ts +++ b/code/lib/cli/src/js-package-manager/PNPMProxy.ts @@ -101,6 +101,9 @@ export class PNPMProxy extends JsPackageManager { const commandResult = await this.executeCommand({ command: 'pnpm', args: ['list', pattern.map((p) => `"${p}"`).join(' '), '--json', '--depth=99'], + env: { + FORCE_COLOR: 'false', + }, }); try { @@ -287,6 +290,7 @@ export class PNPMProxy extends JsPackageManager { dependencies: acc, duplicatedDependencies, infoCommand: 'pnpm list --depth=1', + dedupeCommand: 'pnpm dedupe', }; } diff --git a/code/lib/cli/src/js-package-manager/Yarn1Proxy.test.ts b/code/lib/cli/src/js-package-manager/Yarn1Proxy.test.ts index 3edf536f2a96..799fe8fb55cd 100644 --- a/code/lib/cli/src/js-package-manager/Yarn1Proxy.test.ts +++ b/code/lib/cli/src/js-package-manager/Yarn1Proxy.test.ts @@ -241,6 +241,7 @@ describe('Yarn 1 Proxy', () => { expect(installations).toMatchInlineSnapshot(` Object { + "dedupeCommand": "yarn dedupe", "dependencies": Object { "@storybook/addon-interactions": Array [ Object { diff --git a/code/lib/cli/src/js-package-manager/Yarn1Proxy.ts b/code/lib/cli/src/js-package-manager/Yarn1Proxy.ts index 3793b7f54528..8d24e3676f4b 100644 --- a/code/lib/cli/src/js-package-manager/Yarn1Proxy.ts +++ b/code/lib/cli/src/js-package-manager/Yarn1Proxy.ts @@ -91,6 +91,9 @@ export class Yarn1Proxy extends JsPackageManager { const commandResult = await this.executeCommand({ command: 'yarn', args: ['list', '--pattern', pattern.map((p) => `"${p}"`).join(' '), '--recursive', '--json'], + env: { + FORCE_COLOR: 'false', + }, }); try { @@ -215,6 +218,7 @@ export class Yarn1Proxy extends JsPackageManager { dependencies: acc, duplicatedDependencies, infoCommand: 'yarn why', + dedupeCommand: 'yarn dedupe', }; } diff --git a/code/lib/cli/src/js-package-manager/Yarn2Proxy.test.ts b/code/lib/cli/src/js-package-manager/Yarn2Proxy.test.ts index 51e5c1235cd4..0e1bb1276a30 100644 --- a/code/lib/cli/src/js-package-manager/Yarn2Proxy.test.ts +++ b/code/lib/cli/src/js-package-manager/Yarn2Proxy.test.ts @@ -219,6 +219,7 @@ describe('Yarn 2 Proxy', () => { expect(installations).toMatchInlineSnapshot(` Object { + "dedupeCommand": "yarn dedupe", "dependencies": Object { "@storybook/global": Array [ Object { diff --git a/code/lib/cli/src/js-package-manager/Yarn2Proxy.ts b/code/lib/cli/src/js-package-manager/Yarn2Proxy.ts index a4d4484f554e..ebf7928d8aea 100644 --- a/code/lib/cli/src/js-package-manager/Yarn2Proxy.ts +++ b/code/lib/cli/src/js-package-manager/Yarn2Proxy.ts @@ -114,6 +114,9 @@ export class Yarn2Proxy extends JsPackageManager { pattern.map((p) => `"${p}"`).join(' '), `"${pattern}"`, ], + env: { + FORCE_COLOR: 'false', + }, }); try { @@ -286,6 +289,7 @@ export class Yarn2Proxy extends JsPackageManager { dependencies: acc, duplicatedDependencies, infoCommand: 'yarn why', + dedupeCommand: 'yarn dedupe', }; } diff --git a/code/lib/cli/src/js-package-manager/types.ts b/code/lib/cli/src/js-package-manager/types.ts index 165540de7a9d..ae8ad155669a 100644 --- a/code/lib/cli/src/js-package-manager/types.ts +++ b/code/lib/cli/src/js-package-manager/types.ts @@ -3,4 +3,5 @@ export type InstallationMetadata = { dependencies: Record; duplicatedDependencies: Record; infoCommand: string; + dedupeCommand: string; }; diff --git a/code/lib/cli/src/project_types.ts b/code/lib/cli/src/project_types.ts index 25c058dee818..05c64b402423 100644 --- a/code/lib/cli/src/project_types.ts +++ b/code/lib/cli/src/project_types.ts @@ -5,11 +5,6 @@ function ltMajor(versionRange: string, major: number) { return validRange(versionRange) && minVersion(versionRange).major < major; } -function gtMajor(versionRange: string, major: number) { - // Uses validRange to avoid a throw from minVersion if an invalid range gets passed - return validRange(versionRange) && minVersion(versionRange).major > major; -} - function eqMajor(versionRange: string, major: number) { // Uses validRange to avoid a throw from minVersion if an invalid range gets passed return validRange(versionRange) && minVersion(versionRange).major === major; @@ -162,9 +157,7 @@ export const supportedTemplates: TemplateConfiguration[] = [ }, { preset: ProjectType.NEXTJS, - dependencies: { - next: (versionRange) => eqMajor(versionRange, 9) || gtMajor(versionRange, 9), - }, + dependencies: ['next'], matcherFunction: ({ dependencies }) => { return dependencies.every(Boolean); }, diff --git a/code/lib/cli/src/sandbox-templates.ts b/code/lib/cli/src/sandbox-templates.ts index bbfdaef49ef6..69e858f1d14f 100644 --- a/code/lib/cli/src/sandbox-templates.ts +++ b/code/lib/cli/src/sandbox-templates.ts @@ -18,6 +18,11 @@ export type Cadence = keyof typeof templatesByCadence; export type Template = { /** * Readable name for the template, which will be used for feedback and the status page + * Follows the naming scheme when it makes sense: + * <"v"version|"Latest"|"Prerelease"> (<"Webpack"|"Vite"> | <"JavaScript"|"TypeScript">) + * React Latest - Webpack (TS) + * Next.js v12 (JS) + * Angular CLI Prerelease */ name: string; /** @@ -71,9 +76,15 @@ export type Template = { isInternal?: boolean; }; +type BaseTemplates = Template & { + name: `${string} ${`v${number}` | 'Latest' | 'Prerelease'} (${'Webpack' | 'Vite'} | ${ + | 'JavaScript' + | 'TypeScript'})`; +}; + const baseTemplates = { 'cra/default-js': { - name: 'Create React App (Javascript)', + name: 'Create React App Latest (Webpack | JavaScript)', script: 'npx create-react-app {{beforeDir}}', expected: { // TODO: change this to @storybook/cra once that package is created @@ -84,7 +95,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'cra/default-ts': { - name: 'Create React App (Typescript)', + name: 'Create React App Latest (Webpack | TypeScript)', script: 'npx create-react-app {{beforeDir}} --template typescript', // Re-enable once https://github.com/storybookjs/storybook/issues/19351 is fixed. skipTasks: ['smoke-test', 'bench'], @@ -96,7 +107,7 @@ const baseTemplates = { }, }, 'nextjs/12-js': { - name: 'Next.js v12 (JavaScript)', + name: 'Next.js v12 (Webpack | JavaScript)', script: 'yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/next-12-3-2/examples/hello-world && cd {{beforeDir}} && npm pkg set "dependencies.next"="^12.2.0" && yarn && git add . && git commit --amend --no-edit && cd ..', expected: { @@ -107,7 +118,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'nextjs/default-js': { - name: 'Next.js (JavaScript)', + name: 'Next.js Latest (Webpack | JavaScript)', script: 'yarn create next-app {{beforeDir}} --javascript --eslint', expected: { framework: '@storybook/nextjs', @@ -117,7 +128,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'nextjs/default-ts': { - name: 'Next.js (TypeScript)', + name: 'Next.js Latest (Webpack | TypeScript)', script: 'yarn create next-app {{beforeDir}} --typescript --eslint', expected: { framework: '@storybook/nextjs', @@ -127,7 +138,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'react-vite/default-js': { - name: 'React Vite (JS)', + name: 'React Latest (Vite | JavaScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template react', expected: { framework: '@storybook/react-vite', @@ -137,7 +148,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'react-vite/default-ts': { - name: 'React Vite (TS)', + name: 'React Latest (Vite | TypeScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template react-ts', expected: { framework: '@storybook/react-vite', @@ -147,7 +158,7 @@ const baseTemplates = { skipTasks: ['bench'], }, 'react-webpack/18-ts': { - name: 'React 18 Webpack5 (TS)', + name: 'React Latest (Webpack | TypeScript)', script: 'yarn create webpack5-react {{beforeDir}}', expected: { framework: '@storybook/react-webpack5', @@ -157,7 +168,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'react-webpack/17-ts': { - name: 'React 17 Webpack5 (TS)', + name: 'React v17 (Webpack | TypeScript)', script: 'yarn create webpack5-react {{beforeDir}} --version-react="17" --version-react-dom="17"', expected: { @@ -168,7 +179,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'solid-vite/default-js': { - name: 'SolidJS Vite (JS)', + name: 'SolidJS Latest (Vite | JavaScript)', script: 'npx degit solidjs/templates/js {{beforeDir}}', expected: { framework: 'storybook-solidjs-vite', @@ -180,7 +191,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'solid-vite/default-ts': { - name: 'SolidJS Vite (TS)', + name: 'SolidJS Latest (Vite | TypeScript)', script: 'npx degit solidjs/templates/ts {{beforeDir}}', expected: { framework: 'storybook-solidjs-vite', @@ -192,7 +203,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'vue3-vite/default-js': { - name: 'Vue3 Vite (JS)', + name: 'Vue v3 (Vite | JavaScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template vue', expected: { framework: '@storybook/vue3-vite', @@ -202,7 +213,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'vue3-vite/default-ts': { - name: 'Vue3 Vite (TS)', + name: 'Vue v3 (Vite | TypeScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template vue-ts', expected: { framework: '@storybook/vue3-vite', @@ -212,7 +223,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'vue2-vite/2.7-js': { - name: 'Vue2 Vite (vue 2.7 JS)', + name: 'Vue v2 (Vite | JavaScript)', script: 'npx create-vue@2 {{beforeDir}} --default', expected: { framework: '@storybook/vue-vite', @@ -223,7 +234,7 @@ const baseTemplates = { skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], }, 'html-webpack/default': { - name: 'HTML Webpack5', + name: 'HTML Latest (Webpack | JavaScript)', script: 'yarn create webpack5-html {{beforeDir}}', expected: { framework: '@storybook/html-webpack5', @@ -233,7 +244,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'html-vite/default-js': { - name: 'HTML Vite JS', + name: 'HTML Latest (Vite | JavaScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template vanilla && cd {{beforeDir}} && echo "export default {}" > vite.config.js', expected: { @@ -244,7 +255,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'html-vite/default-ts': { - name: 'HTML Vite TS', + name: 'HTML Latest (Vite | TypeScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template vanilla-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js', expected: { @@ -255,7 +266,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'svelte-vite/default-js': { - name: 'Svelte Vite (JS)', + name: 'Svelte Latest (Vite | JavaScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template svelte', expected: { framework: '@storybook/svelte-vite', @@ -265,7 +276,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'svelte-vite/default-ts': { - name: 'Svelte Vite (TS)', + name: 'Svelte Latest (Vite | TypeScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template svelte-ts', expected: { framework: '@storybook/svelte-vite', @@ -276,7 +287,7 @@ const baseTemplates = { skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], }, 'angular-cli/prerelease': { - name: 'Angular CLI (Prerelease)', + name: 'Angular CLI Prerelease (Webpack | TypeScript)', script: 'npx -p @angular/cli@next ng new angular-v16 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn', expected: { @@ -285,9 +296,11 @@ const baseTemplates = { builder: '@storybook/builder-webpack5', }, skipTasks: ['e2e-tests-dev', 'bench'], + // TODO: Should be removed after we merge this PR: https://github.com/storybookjs/storybook/pull/24188 + inDevelopment: true, }, 'angular-cli/default-ts': { - name: 'Angular CLI (latest)', + name: 'Angular CLI Latest (Webpack | TypeScript)', script: 'npx -p @angular/cli ng new angular-latest --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn', expected: { @@ -298,7 +311,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'angular-cli/15-ts': { - name: 'Angular CLI (Version 15)', + name: 'Angular CLI v15 (Webpack | TypeScript)', script: 'npx -p @angular/cli@15 ng new angular-v15 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn', expected: { @@ -309,7 +322,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'svelte-kit/skeleton-js': { - name: 'Svelte Kit (JS)', + name: 'SvelteKit Latest (Vite | JavaScript)', script: 'yarn create svelte-with-args --name=svelte-kit/skeleton-js --directory={{beforeDir}} --template=skeleton --types=null --no-prettier --no-eslint --no-playwright --no-vitest', expected: { @@ -320,7 +333,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'svelte-kit/skeleton-ts': { - name: 'Svelte Kit (TS)', + name: 'SvelteKit Latest (Vite | TypeScript)', script: 'yarn create svelte-with-args --name=svelte-kit/skeleton-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest', expected: { @@ -331,7 +344,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'lit-vite/default-js': { - name: 'Lit Vite (JS)', + name: 'Lit Latest (Vite | JavaScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template lit && cd {{beforeDir}} && echo "export default {}" > vite.config.js', expected: { @@ -343,7 +356,7 @@ const baseTemplates = { skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], }, 'lit-vite/default-ts': { - name: 'Lit Vite (TS)', + name: 'Lit Latest (Vite | TypeScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template lit-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js', expected: { @@ -355,7 +368,7 @@ const baseTemplates = { skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], }, 'vue-cli/default-js': { - name: 'Vue-CLI (Default JS)', + name: 'Vue CLI v3 (Webpack | JavaScript)', script: 'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js', expected: { @@ -367,7 +380,7 @@ const baseTemplates = { skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], }, 'vue-cli/vue2-default-js': { - name: 'Vue-CLI (Vue2 JS)', + name: 'Vue CLI v2 (Webpack | JavaScript)', script: 'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge --preset="Default (Vue 2)" && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js', expected: { @@ -379,7 +392,7 @@ const baseTemplates = { skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], }, 'preact-webpack5/default-js': { - name: 'Preact CLI (Default JS)', + name: 'Preact CLI Latest (Webpack | JavaScript)', script: 'npx preact-cli create default {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js', expected: { @@ -390,7 +403,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'preact-webpack5/default-ts': { - name: 'Preact CLI (Default TS)', + name: 'Preact CLI Latest (Webpack | TypeScript)', script: 'npx preact-cli create typescript {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js', expected: { @@ -401,7 +414,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'preact-vite/default-js': { - name: 'Preact Vite (JS)', + name: 'Preact Latest (Vite | JavaScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template preact', expected: { framework: '@storybook/preact-vite', @@ -411,7 +424,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'preact-vite/default-ts': { - name: 'Preact Vite (TS)', + name: 'Preact Latest (Vite | TypeScript)', script: 'npm create vite@latest --yes {{beforeDir}} -- --template preact-ts', expected: { framework: '@storybook/preact-vite', @@ -421,7 +434,7 @@ const baseTemplates = { skipTasks: ['e2e-tests-dev', 'bench'], }, 'qwik-vite/default-ts': { - name: 'Qwik CLI (Default TS)', + name: 'Qwik CLI Latest (Vite | TypeScript)', script: 'yarn create qwik basic {{beforeDir}}', // TODO: The community template does not provide standard stories, which is required for e2e tests. Reenable once it does. inDevelopment: true, @@ -433,7 +446,7 @@ const baseTemplates = { // TODO: The community template does not provide standard stories, which is required for e2e tests. skipTasks: ['e2e-tests', 'e2e-tests-dev', 'bench'], }, -} satisfies Record; +} satisfies Record; /** * Internal templates reuse config from other templates and add extra config on top. @@ -573,7 +586,8 @@ export const merged: TemplateKey[] = [ ]; export const daily: TemplateKey[] = [ ...merged, - 'angular-cli/prerelease', + // TODO: Should be re-added after we merge this PR: https://github.com/storybookjs/storybook/pull/24188 + // 'angular-cli/prerelease', 'cra/default-js', 'react-vite/default-js', 'vue3-vite/default-js', diff --git a/code/lib/cli/src/upgrade.ts b/code/lib/cli/src/upgrade.ts index 24effe5758e5..dd31f177df53 100644 --- a/code/lib/cli/src/upgrade.ts +++ b/code/lib/cli/src/upgrade.ts @@ -190,14 +190,16 @@ export const doUpgrade = async ({ const check = spawnSync('npx', ['npm-check-updates@latest', '/storybook/', ...flags], { stdio: 'pipe', shell: true, - }).output.toString(); - logger.info(check); + }); + logger.info(check.stdout.toString()); + logger.info(check.stderr.toString()); const checkSb = spawnSync('npx', ['npm-check-updates@latest', 'sb', ...flags], { stdio: 'pipe', shell: true, - }).output.toString(); - logger.info(checkSb); + }); + logger.info(checkSb.stdout.toString()); + logger.info(checkSb.stderr.toString()); if (!dryRun) { commandLog(`Installing upgrades`); diff --git a/code/lib/cli/src/versions.ts b/code/lib/cli/src/versions.ts index d55ca23b8387..ef712eb5df59 100644 --- a/code/lib/cli/src/versions.ts +++ b/code/lib/cli/src/versions.ts @@ -1,97 +1,97 @@ // auto generated file, do not edit export default { - '@storybook/addon-a11y': '7.4.0', - '@storybook/addon-actions': '7.4.0', - '@storybook/addon-backgrounds': '7.4.0', - '@storybook/addon-controls': '7.4.0', - '@storybook/addon-docs': '7.4.0', - '@storybook/addon-essentials': '7.4.0', - '@storybook/addon-highlight': '7.4.0', - '@storybook/addon-interactions': '7.4.0', - '@storybook/addon-jest': '7.4.0', - '@storybook/addon-links': '7.4.0', - '@storybook/addon-mdx-gfm': '7.4.0', - '@storybook/addon-measure': '7.4.0', - '@storybook/addon-outline': '7.4.0', - '@storybook/addon-themes': '7.4.0', - '@storybook/addon-storyshots': '7.4.0', - '@storybook/addon-storyshots-puppeteer': '7.4.0', - '@storybook/addon-storysource': '7.4.0', - '@storybook/addon-toolbars': '7.4.0', - '@storybook/addon-viewport': '7.4.0', - '@storybook/addons': '7.4.0', - '@storybook/angular': '7.4.0', - '@storybook/api': '7.4.0', - '@storybook/blocks': '7.4.0', - '@storybook/builder-manager': '7.4.0', - '@storybook/builder-vite': '7.4.0', - '@storybook/builder-webpack5': '7.4.0', - '@storybook/channel-postmessage': '7.4.0', - '@storybook/channel-websocket': '7.4.0', - '@storybook/channels': '7.4.0', - '@storybook/cli': '7.4.0', - '@storybook/client-api': '7.4.0', - '@storybook/client-logger': '7.4.0', - '@storybook/codemod': '7.4.0', - '@storybook/components': '7.4.0', - '@storybook/core-client': '7.4.0', - '@storybook/core-common': '7.4.0', - '@storybook/core-events': '7.4.0', - '@storybook/core-server': '7.4.0', - '@storybook/core-webpack': '7.4.0', - '@storybook/csf-plugin': '7.4.0', - '@storybook/csf-tools': '7.4.0', - '@storybook/docs-tools': '7.4.0', - '@storybook/ember': '7.4.0', - '@storybook/html': '7.4.0', - '@storybook/html-vite': '7.4.0', - '@storybook/html-webpack5': '7.4.0', - '@storybook/instrumenter': '7.4.0', - '@storybook/manager': '7.4.0', - '@storybook/manager-api': '7.4.0', - '@storybook/nextjs': '7.4.0', - '@storybook/node-logger': '7.4.0', - '@storybook/postinstall': '7.4.0', - '@storybook/preact': '7.4.0', - '@storybook/preact-vite': '7.4.0', - '@storybook/preact-webpack5': '7.4.0', - '@storybook/preset-create-react-app': '7.4.0', - '@storybook/preset-html-webpack': '7.4.0', - '@storybook/preset-preact-webpack': '7.4.0', - '@storybook/preset-react-webpack': '7.4.0', - '@storybook/preset-server-webpack': '7.4.0', - '@storybook/preset-svelte-webpack': '7.4.0', - '@storybook/preset-vue-webpack': '7.4.0', - '@storybook/preset-vue3-webpack': '7.4.0', - '@storybook/preset-web-components-webpack': '7.4.0', - '@storybook/preview': '7.4.0', - '@storybook/preview-api': '7.4.0', - '@storybook/preview-web': '7.4.0', - '@storybook/react': '7.4.0', - '@storybook/react-dom-shim': '7.4.0', - '@storybook/react-vite': '7.4.0', - '@storybook/react-webpack5': '7.4.0', - '@storybook/router': '7.4.0', - '@storybook/server': '7.4.0', - '@storybook/server-webpack5': '7.4.0', - '@storybook/source-loader': '7.4.0', - '@storybook/store': '7.4.0', - '@storybook/svelte': '7.4.0', - '@storybook/svelte-vite': '7.4.0', - '@storybook/svelte-webpack5': '7.4.0', - '@storybook/sveltekit': '7.4.0', - '@storybook/telemetry': '7.4.0', - '@storybook/theming': '7.4.0', - '@storybook/types': '7.4.0', - '@storybook/vue': '7.4.0', - '@storybook/vue-vite': '7.4.0', - '@storybook/vue-webpack5': '7.4.0', - '@storybook/vue3': '7.4.0', - '@storybook/vue3-vite': '7.4.0', - '@storybook/vue3-webpack5': '7.4.0', - '@storybook/web-components': '7.4.0', - '@storybook/web-components-vite': '7.4.0', - '@storybook/web-components-webpack5': '7.4.0', - sb: '7.4.0', - storybook: '7.4.0', + '@storybook/addon-a11y': '7.5.0-alpha.4', + '@storybook/addon-actions': '7.5.0-alpha.4', + '@storybook/addon-backgrounds': '7.5.0-alpha.4', + '@storybook/addon-controls': '7.5.0-alpha.4', + '@storybook/addon-docs': '7.5.0-alpha.4', + '@storybook/addon-essentials': '7.5.0-alpha.4', + '@storybook/addon-highlight': '7.5.0-alpha.4', + '@storybook/addon-interactions': '7.5.0-alpha.4', + '@storybook/addon-jest': '7.5.0-alpha.4', + '@storybook/addon-links': '7.5.0-alpha.4', + '@storybook/addon-mdx-gfm': '7.5.0-alpha.4', + '@storybook/addon-measure': '7.5.0-alpha.4', + '@storybook/addon-outline': '7.5.0-alpha.4', + '@storybook/addon-themes': '7.5.0-alpha.4', + '@storybook/addon-storyshots': '7.5.0-alpha.4', + '@storybook/addon-storyshots-puppeteer': '7.5.0-alpha.4', + '@storybook/addon-storysource': '7.5.0-alpha.4', + '@storybook/addon-toolbars': '7.5.0-alpha.4', + '@storybook/addon-viewport': '7.5.0-alpha.4', + '@storybook/addons': '7.5.0-alpha.4', + '@storybook/angular': '7.5.0-alpha.4', + '@storybook/api': '7.5.0-alpha.4', + '@storybook/blocks': '7.5.0-alpha.4', + '@storybook/builder-manager': '7.5.0-alpha.4', + '@storybook/builder-vite': '7.5.0-alpha.4', + '@storybook/builder-webpack5': '7.5.0-alpha.4', + '@storybook/channel-postmessage': '7.5.0-alpha.4', + '@storybook/channel-websocket': '7.5.0-alpha.4', + '@storybook/channels': '7.5.0-alpha.4', + '@storybook/cli': '7.5.0-alpha.4', + '@storybook/client-api': '7.5.0-alpha.4', + '@storybook/client-logger': '7.5.0-alpha.4', + '@storybook/codemod': '7.5.0-alpha.4', + '@storybook/components': '7.5.0-alpha.4', + '@storybook/core-client': '7.5.0-alpha.4', + '@storybook/core-common': '7.5.0-alpha.4', + '@storybook/core-events': '7.5.0-alpha.4', + '@storybook/core-server': '7.5.0-alpha.4', + '@storybook/core-webpack': '7.5.0-alpha.4', + '@storybook/csf-plugin': '7.5.0-alpha.4', + '@storybook/csf-tools': '7.5.0-alpha.4', + '@storybook/docs-tools': '7.5.0-alpha.4', + '@storybook/ember': '7.5.0-alpha.4', + '@storybook/html': '7.5.0-alpha.4', + '@storybook/html-vite': '7.5.0-alpha.4', + '@storybook/html-webpack5': '7.5.0-alpha.4', + '@storybook/instrumenter': '7.5.0-alpha.4', + '@storybook/manager': '7.5.0-alpha.4', + '@storybook/manager-api': '7.5.0-alpha.4', + '@storybook/nextjs': '7.5.0-alpha.4', + '@storybook/node-logger': '7.5.0-alpha.4', + '@storybook/postinstall': '7.5.0-alpha.4', + '@storybook/preact': '7.5.0-alpha.4', + '@storybook/preact-vite': '7.5.0-alpha.4', + '@storybook/preact-webpack5': '7.5.0-alpha.4', + '@storybook/preset-create-react-app': '7.5.0-alpha.4', + '@storybook/preset-html-webpack': '7.5.0-alpha.4', + '@storybook/preset-preact-webpack': '7.5.0-alpha.4', + '@storybook/preset-react-webpack': '7.5.0-alpha.4', + '@storybook/preset-server-webpack': '7.5.0-alpha.4', + '@storybook/preset-svelte-webpack': '7.5.0-alpha.4', + '@storybook/preset-vue-webpack': '7.5.0-alpha.4', + '@storybook/preset-vue3-webpack': '7.5.0-alpha.4', + '@storybook/preset-web-components-webpack': '7.5.0-alpha.4', + '@storybook/preview': '7.5.0-alpha.4', + '@storybook/preview-api': '7.5.0-alpha.4', + '@storybook/preview-web': '7.5.0-alpha.4', + '@storybook/react': '7.5.0-alpha.4', + '@storybook/react-dom-shim': '7.5.0-alpha.4', + '@storybook/react-vite': '7.5.0-alpha.4', + '@storybook/react-webpack5': '7.5.0-alpha.4', + '@storybook/router': '7.5.0-alpha.4', + '@storybook/server': '7.5.0-alpha.4', + '@storybook/server-webpack5': '7.5.0-alpha.4', + '@storybook/source-loader': '7.5.0-alpha.4', + '@storybook/store': '7.5.0-alpha.4', + '@storybook/svelte': '7.5.0-alpha.4', + '@storybook/svelte-vite': '7.5.0-alpha.4', + '@storybook/svelte-webpack5': '7.5.0-alpha.4', + '@storybook/sveltekit': '7.5.0-alpha.4', + '@storybook/telemetry': '7.5.0-alpha.4', + '@storybook/theming': '7.5.0-alpha.4', + '@storybook/types': '7.5.0-alpha.4', + '@storybook/vue': '7.5.0-alpha.4', + '@storybook/vue-vite': '7.5.0-alpha.4', + '@storybook/vue-webpack5': '7.5.0-alpha.4', + '@storybook/vue3': '7.5.0-alpha.4', + '@storybook/vue3-vite': '7.5.0-alpha.4', + '@storybook/vue3-webpack5': '7.5.0-alpha.4', + '@storybook/web-components': '7.5.0-alpha.4', + '@storybook/web-components-vite': '7.5.0-alpha.4', + '@storybook/web-components-webpack5': '7.5.0-alpha.4', + sb: '7.5.0-alpha.4', + storybook: '7.5.0-alpha.4', }; diff --git a/code/lib/client-logger/package.json b/code/lib/client-logger/package.json index fb4514248485..f63b74e572f4 100644 --- a/code/lib/client-logger/package.json +++ b/code/lib/client-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-logger", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index aa6caa1a169f..fa8caf281dea 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/codemod", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "A collection of codemod scripts written with JSCodeshift", "keywords": [ "storybook" diff --git a/code/lib/core-common/package.json b/code/lib/core-common/package.json index 56aad7f9f473..29c09387e5fd 100644 --- a/code/lib/core-common/package.json +++ b/code/lib/core-common/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-common", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -44,6 +44,7 @@ "prep": "../../../scripts/prepare/bundle.ts" }, "dependencies": { + "@storybook/core-events": "workspace:*", "@storybook/node-logger": "workspace:*", "@storybook/types": "workspace:*", "@types/find-cache-dir": "^3.2.1", @@ -52,7 +53,7 @@ "@types/pretty-hrtime": "^1.0.0", "chalk": "^4.1.0", "esbuild": "^0.18.0", - "esbuild-register": "^3.4.0", + "esbuild-register": "^3.5.0", "file-system-cache": "2.3.0", "find-cache-dir": "^3.0.0", "find-up": "^5.0.0", @@ -68,6 +69,7 @@ "ts-dedent": "^2.0.0" }, "devDependencies": { + "@types/fs-extra": "^11.0.1", "@types/mock-fs": "^4.13.1", "@types/picomatch": "^2.3.0", "mock-fs": "^5.2.0", diff --git a/code/lib/core-common/src/presets.test.ts b/code/lib/core-common/src/presets.test.ts index 92b27dbdcd22..667f1d01781e 100644 --- a/code/lib/core-common/src/presets.test.ts +++ b/code/lib/core-common/src/presets.test.ts @@ -102,6 +102,12 @@ describe('presets', () => { await expect(testPresets()).resolves.toBeUndefined(); }); + it('throws when preset can not be loaded and is critical', async () => { + const { getPresets } = jest.requireActual('./presets'); + + await expect(getPresets(['preset-foo'], { isCritical: true })).rejects.toThrow(); + }); + it('loads and applies presets when they are combined in another preset', async () => { mockPreset('preset-foo', { foo: (exec: string[]) => exec.concat('foo'), diff --git a/code/lib/core-common/src/presets.ts b/code/lib/core-common/src/presets.ts index 7680d3292abc..0d1de949aa7c 100644 --- a/code/lib/core-common/src/presets.ts +++ b/code/lib/core-common/src/presets.ts @@ -11,6 +11,7 @@ import type { Presets, } from '@storybook/types'; import { join, parse } from 'path'; +import { CriticalPresetLoadError } from '@storybook/core-events/server-errors'; import { loadCustomPresets } from './utils/load-custom-presets'; import { safeResolve, safeResolveFrom } from './utils/safeResolve'; import { interopRequireDefault } from './utils/interpret-require'; @@ -218,9 +219,10 @@ export async function loadPreset( level: number, storybookOptions: InterPresetOptions ): Promise { + // @ts-expect-error (Converted from ts-ignore) + const presetName: string = input.name ? input.name : input; + try { - // @ts-expect-error (Converted from ts-ignore) - const name: string = input.name ? input.name : input; // @ts-expect-error (Converted from ts-ignore) const presetOptions = input.options ? input.options : {}; @@ -250,7 +252,7 @@ export async function loadPreset( storybookOptions )), { - name, + name: presetName, preset: rest, options: presetOptions, }, @@ -260,14 +262,21 @@ export async function loadPreset( throw new Error(dedent` ${input} is not a valid preset `); - } catch (e: any) { + } catch (error: any) { + if (storybookOptions?.isCritical) { + throw new CriticalPresetLoadError({ + error, + presetName, + }); + } + const warning = level > 0 ? ` Failed to load preset: ${JSON.stringify(input)} on level ${level}` : ` Failed to load preset: ${JSON.stringify(input)}`; logger.warn(warning); - logger.error(e); + logger.error(error); return []; } } @@ -345,7 +354,10 @@ function applyPresets( }, presetResult); } -type InterPresetOptions = Omit; +type InterPresetOptions = Omit< + CLIOptions & LoadOptions & BuilderOptions & { isCritical?: boolean }, + 'frameworkPresets' +>; export async function getPresets( presets: PresetConfig[], @@ -365,6 +377,8 @@ export async function loadAllPresets( BuilderOptions & { corePresets: PresetConfig[]; overridePresets: PresetConfig[]; + /** Whether preset failures should be critical or not */ + isCritical?: boolean; } ) { const { corePresets = [], overridePresets = [], ...restOptions } = options; diff --git a/code/lib/core-common/src/utils/get-storybook-info.ts b/code/lib/core-common/src/utils/get-storybook-info.ts index fe183d566b7c..8d97fed4d3ed 100644 --- a/code/lib/core-common/src/utils/get-storybook-info.ts +++ b/code/lib/core-common/src/utils/get-storybook-info.ts @@ -100,7 +100,7 @@ const getConfigInfo = (packageJson: PackageJson, configDir?: string) => { } return { - configDir, + configDir: storybookConfigDir, mainConfig: findConfigFile('main', storybookConfigDir), previewConfig: findConfigFile('preview', storybookConfigDir), managerConfig: findConfigFile('manager', storybookConfigDir), diff --git a/code/lib/core-events/manager-errors.js b/code/lib/core-events/manager-errors.js new file mode 100644 index 000000000000..f94cf725de3c --- /dev/null +++ b/code/lib/core-events/manager-errors.js @@ -0,0 +1,6 @@ +// This is required for compatibility in projects that don't support the exports map field (e.g. Jest 27), +// so when require paths such as `@storybook/core-events/manager-errors`, +// An error like this will occur: +// ENOENT: no such file or directory, open '/xyz/node_modules/@storybook/core-events/manager-errors.js' +// https://github.com/storybookjs/storybook/pull/24038#issuecomment-1704684432 +module.exports = require('./dist/errors/manager-errors'); diff --git a/code/lib/core-events/package.json b/code/lib/core-events/package.json index c497f9041ce8..dd9fbd3c7757 100644 --- a/code/lib/core-events/package.json +++ b/code/lib/core-events/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-events", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Event names used in storybook core", "keywords": [ "storybook" diff --git a/code/lib/core-events/preview-errors.js b/code/lib/core-events/preview-errors.js new file mode 100644 index 000000000000..1a144b6c7e20 --- /dev/null +++ b/code/lib/core-events/preview-errors.js @@ -0,0 +1,6 @@ +// This is required for compatibility in projects that don't support the exports map field (e.g. Jest 27), +// so when require paths such as `@storybook/core-events/preview-errors`, +// An error like this will occur: +// ENOENT: no such file or directory, open '/xyz/node_modules/@storybook/core-events/preview-errors.js' +// https://github.com/storybookjs/storybook/pull/24038#issuecomment-1704684432 +module.exports = require('./dist/errors/preview-errors'); diff --git a/code/lib/core-events/server-errors.js b/code/lib/core-events/server-errors.js new file mode 100644 index 000000000000..6aa7a95fd223 --- /dev/null +++ b/code/lib/core-events/server-errors.js @@ -0,0 +1,6 @@ +// This is required for compatibility in projects that don't support the exports map field (e.g. Jest 27), +// so when require paths such as `@storybook/core-events/server-errors`, +// An error like this will occur: +// ENOENT: no such file or directory, open '/xyz/node_modules/@storybook/core-events/server-errors.js' +// https://github.com/storybookjs/storybook/pull/24038#issuecomment-1704684432 +module.exports = require('./dist/errors/server-errors'); diff --git a/code/lib/core-events/src/errors/manager-errors.ts b/code/lib/core-events/src/errors/manager-errors.ts index a97c5f8d7035..a025b708e0a3 100644 --- a/code/lib/core-events/src/errors/manager-errors.ts +++ b/code/lib/core-events/src/errors/manager-errors.ts @@ -35,9 +35,13 @@ export class UncaughtManagerError extends StorybookError { readonly code = 1; - constructor(public error: Error) { - super(error.message); - this.stack = error.stack; + constructor( + public data: { + error: Error; + } + ) { + super(data.error.message); + this.stack = data.error.stack; } template() { diff --git a/code/lib/core-events/src/errors/preview-errors.ts b/code/lib/core-events/src/errors/preview-errors.ts index 3a2fe93aecf5..84161db505b8 100644 --- a/code/lib/core-events/src/errors/preview-errors.ts +++ b/code/lib/core-events/src/errors/preview-errors.ts @@ -19,25 +19,6 @@ export enum Category { PREVIEW_REACT_DOM_SHIM = 'PREVIEW_REACT-DOM-SHIM', PREVIEW_ROUTER = 'PREVIEW_ROUTER', PREVIEW_THEMING = 'PREVIEW_THEMING', - FRAMEWORK_ANGULAR = 'FRAMEWORK_ANGULAR', - FRAMEWORK_EMBER = 'FRAMEWORK_EMBER', - FRAMEWORK_HTML_VITE = 'FRAMEWORK_HTML-VITE', - FRAMEWORK_HTML_WEBPACK5 = 'FRAMEWORK_HTML-WEBPACK5', - FRAMEWORK_NEXTJS = 'FRAMEWORK_NEXTJS', - FRAMEWORK_PREACT_VITE = 'FRAMEWORK_PREACT-VITE', - FRAMEWORK_PREACT_WEBPACK5 = 'FRAMEWORK_PREACT-WEBPACK5', - FRAMEWORK_REACT_VITE = 'FRAMEWORK_REACT-VITE', - FRAMEWORK_REACT_WEBPACK5 = 'FRAMEWORK_REACT-WEBPACK5', - FRAMEWORK_SERVER_WEBPACK5 = 'FRAMEWORK_SERVER-WEBPACK5', - FRAMEWORK_SVELTE_VITE = 'FRAMEWORK_SVELTE-VITE', - FRAMEWORK_SVELTE_WEBPACK5 = 'FRAMEWORK_SVELTE-WEBPACK5', - FRAMEWORK_SVELTEKIT = 'FRAMEWORK_SVELTEKIT', - FRAMEWORK_VUE_VITE = 'FRAMEWORK_VUE-VITE', - FRAMEWORK_VUE_WEBPACK5 = 'FRAMEWORK_VUE-WEBPACK5', - FRAMEWORK_VUE3_VITE = 'FRAMEWORK_VUE3-VITE', - FRAMEWORK_VUE3_WEBPACK5 = 'FRAMEWORK_VUE3-WEBPACK5', - FRAMEWORK_WEB_COMPONENTS_VITE = 'FRAMEWORK_WEB-COMPONENTS-VITE', - FRAMEWORK_WEB_COMPONENTS_WEBPACK5 = 'FRAMEWORK_WEB-COMPONENTS-WEBPACK5', RENDERER_HTML = 'RENDERER_HTML', RENDERER_PREACT = 'RENDERER_PREACT', RENDERER_REACT = 'RENDERER_REACT', diff --git a/code/lib/core-events/src/errors/server-errors.test.ts b/code/lib/core-events/src/errors/server-errors.test.ts new file mode 100644 index 000000000000..0eb5fa4ad21d --- /dev/null +++ b/code/lib/core-events/src/errors/server-errors.test.ts @@ -0,0 +1,16 @@ +/* eslint-disable local-rules/no-uncategorized-errors */ +import { WebpackCompilationError } from './server-errors'; + +describe('WebpackCompilationError', () => { + it('should correctly handle error with stats.compilation.errors', () => { + const errors = [ + new Error('Error 1 \u001B[4mmessage\u001B[0m'), + new Error('\u001B[4mError\u001B[0m 2 message'), + ]; + + const webpackError = new WebpackCompilationError({ errors }); + + expect(webpackError.data.errors[0].message).toEqual('Error 1 message'); + expect(webpackError.data.errors[1].message).toEqual('Error 2 message'); + }); +}); diff --git a/code/lib/core-events/src/errors/server-errors.ts b/code/lib/core-events/src/errors/server-errors.ts index 93f7355a3024..951a482e9570 100644 --- a/code/lib/core-events/src/errors/server-errors.ts +++ b/code/lib/core-events/src/errors/server-errors.ts @@ -28,6 +28,25 @@ export enum Category { POSTINSTALL = 'POSTINSTALL', DOCS_TOOLS = 'DOCS-TOOLS', CORE_WEBPACK = 'CORE-WEBPACK', + FRAMEWORK_ANGULAR = 'FRAMEWORK_ANGULAR', + FRAMEWORK_EMBER = 'FRAMEWORK_EMBER', + FRAMEWORK_HTML_VITE = 'FRAMEWORK_HTML-VITE', + FRAMEWORK_HTML_WEBPACK5 = 'FRAMEWORK_HTML-WEBPACK5', + FRAMEWORK_NEXTJS = 'FRAMEWORK_NEXTJS', + FRAMEWORK_PREACT_VITE = 'FRAMEWORK_PREACT-VITE', + FRAMEWORK_PREACT_WEBPACK5 = 'FRAMEWORK_PREACT-WEBPACK5', + FRAMEWORK_REACT_VITE = 'FRAMEWORK_REACT-VITE', + FRAMEWORK_REACT_WEBPACK5 = 'FRAMEWORK_REACT-WEBPACK5', + FRAMEWORK_SERVER_WEBPACK5 = 'FRAMEWORK_SERVER-WEBPACK5', + FRAMEWORK_SVELTE_VITE = 'FRAMEWORK_SVELTE-VITE', + FRAMEWORK_SVELTE_WEBPACK5 = 'FRAMEWORK_SVELTE-WEBPACK5', + FRAMEWORK_SVELTEKIT = 'FRAMEWORK_SVELTEKIT', + FRAMEWORK_VUE_VITE = 'FRAMEWORK_VUE-VITE', + FRAMEWORK_VUE_WEBPACK5 = 'FRAMEWORK_VUE-WEBPACK5', + FRAMEWORK_VUE3_VITE = 'FRAMEWORK_VUE3-VITE', + FRAMEWORK_VUE3_WEBPACK5 = 'FRAMEWORK_VUE3-WEBPACK5', + FRAMEWORK_WEB_COMPONENTS_VITE = 'FRAMEWORK_WEB-COMPONENTS-VITE', + FRAMEWORK_WEB_COMPONENTS_WEBPACK5 = 'FRAMEWORK_WEB-COMPONENTS-WEBPACK5', } export class NxProjectDetectedError extends StorybookError { @@ -137,3 +156,215 @@ export class InvalidStoriesEntryError extends StorybookError { `; } } + +export class WebpackMissingStatsError extends StorybookError { + readonly category = Category.BUILDER_WEBPACK5; + + readonly code = 1; + + public documentation = [ + 'https://webpack.js.org/configuration/stats/', + 'https://storybook.js.org/docs/react/builders/webpack#configure', + ]; + + template() { + return dedent` + No Webpack stats found. Did you turn off stats reporting in your webpack config? + Storybook needs Webpack stats (including errors) in order to build correctly. + `; + } +} + +export class WebpackInvocationError extends StorybookError { + readonly category = Category.BUILDER_WEBPACK5; + + readonly code = 2; + + private errorMessage = ''; + + constructor( + public data: { + error: Error; + } + ) { + super(); + this.errorMessage = data.error.message; + } + + template() { + return this.errorMessage.trim(); + } +} + +function removeAnsiEscapeCodes(input = '') { + // eslint-disable-next-line no-control-regex + return input.replace(/\u001B\[[0-9;]*m/g, ''); +} + +export class WebpackCompilationError extends StorybookError { + readonly category = Category.BUILDER_WEBPACK5; + + readonly code = 3; + + constructor( + public data: { + errors: { + message: string; + stack?: string; + name?: string; + }[]; + } + ) { + super(); + + this.data.errors = data.errors.map((err) => { + return { + ...err, + message: removeAnsiEscapeCodes(err.message), + stack: removeAnsiEscapeCodes(err.stack), + name: err.name, + }; + }); + } + + template() { + // This error message is a followup of errors logged by Webpack to the user + return dedent` + There were problems when compiling your code with Webpack. + Run Storybook with --debug-webpack for more information. + `; + } +} + +export class MissingAngularJsonError extends StorybookError { + readonly category = Category.CLI_INIT; + + readonly code = 2; + + public readonly documentation = + 'https://storybook.js.org/docs/angular/faq#error-no-angularjson-file-found'; + + constructor( + public data: { + path: string; + } + ) { + super(); + } + + template() { + return dedent` + An angular.json file was not found in the current working directory: ${this.data.path} + Storybook needs it to work properly, so please rerun the command at the root of your project, where the angular.json file is located. + `; + } +} + +export class AngularLegacyBuildOptionsError extends StorybookError { + readonly category = Category.FRAMEWORK_ANGULAR; + + readonly code = 1; + + public readonly documentation = [ + 'https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#angular-drop-support-for-calling-storybook-directly', + 'https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular#how-do-i-migrate-to-an-angular-storybook-builder', + ]; + + template() { + return dedent` + Your Storybook startup script uses a solution that is not supported anymore. + You must use Angular builder to have an explicit configuration on the project used in angular.json. + + Please run 'npx storybook@next automigrate' to automatically fix your config. + `; + } +} + +export class CriticalPresetLoadError extends StorybookError { + readonly category = Category.CORE_SERVER; + + readonly code = 2; + + constructor( + public data: { + error: Error; + presetName: string; + } + ) { + super(); + } + + template() { + return dedent` + Storybook failed to load the following preset: ${this.data.presetName}. + + Please check whether your setup is correct, the Storybook dependencies (and their peer dependencies) are installed correctly and there are no package version clashes. + + If you believe this is a bug, please open an issue on Github. + + ${this.data.error.stack || this.data.error.message} + `; + } +} + +export class MissingBuilderError extends StorybookError { + readonly category = Category.CORE_SERVER; + + readonly code = 3; + + public readonly documentation = 'https://github.com/storybookjs/storybook/issues/24071'; + + template() { + return dedent` + Storybook could not find a builder configuration for your project. + Builders normally come from a framework package e.g. '@storybook/react-vite', or from builder packages e.g. '@storybook/builder-vite'. + + - Does your main config file contain a 'framework' field configured correctly? + - Is the Storybook framework package installed correctly? + - If you don't use a framework, does your main config contain a 'core.builder' configured correctly? + - Are you in a monorepo and perhaps the framework package is hoisted incorrectly? + + If you believe this is a bug, please describe your issue in detail on Github. + `; + } +} + +export class GoogleFontsDownloadError extends StorybookError { + readonly category = Category.FRAMEWORK_NEXTJS; + + readonly code = 1; + + public readonly documentation = + 'https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md#nextjs-font-optimization'; + + constructor(public data: { fontFamily: string; url: string }) { + super(); + } + + template() { + return dedent` + Failed to fetch \`${this.data.fontFamily}\` from Google Fonts with URL: \`${this.data.url}\` + `; + } +} + +export class GoogleFontsLoadingError extends StorybookError { + readonly category = Category.FRAMEWORK_NEXTJS; + + readonly code = 2; + + public readonly documentation = + 'https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md#nextjs-font-optimization'; + + constructor(public data: { error: unknown | Error; url: string }) { + super(); + } + + template() { + return dedent` + An error occurred when trying to load Google Fonts with URL \`${this.data.url}\`. + + ${this.data.error instanceof Error ? this.data.error.message : ''} + `; + } +} diff --git a/code/lib/core-server/package.json b/code/lib/core-server/package.json index aa2be123b5dd..fc62f70ccc6a 100644 --- a/code/lib/core-server/package.json +++ b/code/lib/core-server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-server", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -94,7 +94,6 @@ "prompts": "^2.4.0", "read-pkg-up": "^7.0.1", "semver": "^7.3.7", - "serve-favicon": "^2.5.0", "telejson": "^7.2.0", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0", @@ -108,7 +107,6 @@ "@types/compression": "^1.7.0", "@types/ip": "^1.1.0", "@types/node-fetch": "^2.5.7", - "@types/serve-favicon": "^2.5.2", "@types/ws": "^8", "boxen": "^5.1.2", "jest-os-detection": "^1.3.1", diff --git a/code/lib/core-server/src/build-dev.ts b/code/lib/core-server/src/build-dev.ts index 7785afdee7b7..1e321a7d2933 100644 --- a/code/lib/core-server/src/build-dev.ts +++ b/code/lib/core-server/src/build-dev.ts @@ -19,6 +19,7 @@ import { global } from '@storybook/global'; import { telemetry } from '@storybook/telemetry'; import { join, resolve } from 'path'; +import { MissingBuilderError } from '@storybook/core-events/server-errors'; import { storybookDevServer } from './dev-server'; import { outputStats } from './utils/output-stats'; import { outputStartupInformation } from './utils/output-startup-information'; @@ -84,11 +85,14 @@ export async function buildDevStandalone( require.resolve('@storybook/core-server/dist/presets/common-override-preset'), ], ...options, + isCritical: true, }); const { renderer, builder, disableTelemetry } = await presets.apply('core', {}); - invariant(builder, 'No builder configured in core.builder'); + if (!builder) { + throw new MissingBuilderError(); + } if (!options.disableTelemetry && !disableTelemetry) { if (versionCheck.success && !versionCheck.cached) { diff --git a/code/lib/core-server/src/build-static.ts b/code/lib/core-server/src/build-static.ts index 810c871724fd..55dc59fbaac1 100644 --- a/code/lib/core-server/src/build-static.ts +++ b/code/lib/core-server/src/build-static.ts @@ -2,7 +2,7 @@ import chalk from 'chalk'; import { copy, emptyDir, ensureDir } from 'fs-extra'; import { dirname, isAbsolute, join, resolve } from 'path'; import { global } from '@storybook/global'; -import { logger } from '@storybook/node-logger'; +import { deprecate, logger } from '@storybook/node-logger'; import { telemetry, getPrecedingUpgrade } from '@storybook/telemetry'; import type { BuilderOptions, @@ -23,6 +23,7 @@ import { import { ConflictingStaticDirConfigError } from '@storybook/core-events/server-errors'; import isEqual from 'lodash/isEqual.js'; +import dedent from 'ts-dedent'; import { outputStats } from './utils/output-stats'; import { copyAllStaticFiles, @@ -87,6 +88,7 @@ export async function buildStaticStandalone(options: BuildStaticStandaloneOption overridePresets: [ require.resolve('@storybook/core-server/dist/presets/common-override-preset'), ], + isCritical: true, ...options, }); @@ -122,6 +124,13 @@ export async function buildStaticStandalone(options: BuildStaticStandaloneOption presets.apply('docs', {}), ]); + if (features?.storyStoreV7 === false) { + deprecate( + dedent`storyStoreV6 is deprecated, please migrate to storyStoreV7 instead. + - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated` + ); + } + const fullOptions: Options = { ...options, presets, @@ -199,23 +208,33 @@ export async function buildStaticStandalone(options: BuildStaticStandaloneOption if (options.ignorePreview) { logger.info(`=> Not building preview`); + } else { + logger.info('=> Building preview..'); } + const startTime = process.hrtime(); await Promise.all([ ...(options.ignorePreview ? [] : [ previewBuilder .build({ - startTime: process.hrtime(), + startTime, options: fullOptions, }) .then(async (previewStats) => { + logger.trace({ message: '=> Preview built', time: process.hrtime(startTime) }); + if (options.webpackStatsJson) { const target = options.webpackStatsJson === true ? options.outputDir : options.webpackStatsJson; await outputStats(target, previewStats); } + }) + .catch((error) => { + logger.error('=> Failed to build the preview'); + process.exitCode = 1; + throw error; }), ]), ...effects, diff --git a/code/lib/core-server/src/dev-server.ts b/code/lib/core-server/src/dev-server.ts index 2eb1ea420cda..1e8de546880e 100644 --- a/code/lib/core-server/src/dev-server.ts +++ b/code/lib/core-server/src/dev-server.ts @@ -5,7 +5,10 @@ import invariant from 'tiny-invariant'; import type { CoreConfig, Options, StorybookConfig } from '@storybook/types'; import { logConfig } from '@storybook/core-common'; +import { deprecate, logger } from '@storybook/node-logger'; +import dedent from 'ts-dedent'; +import { MissingBuilderError } from '@storybook/core-events/server-errors'; import { getMiddleware } from './utils/middleware'; import { getServerAddresses } from './utils/server-address'; import { getServer } from './utils/server-init'; @@ -35,6 +38,13 @@ export async function storybookDevServer(options: Options) { getServerChannel(server) ); + if (features?.storyStoreV7 === false) { + deprecate( + dedent`storyStoreV6 is deprecated, please migrate to storyStoreV7 instead. + - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated` + ); + } + let indexError: Error | undefined; // try get index generator, if failed, send telemetry without storyCount, then rethrow the error const initializedStoryIndexGenerator: Promise = @@ -66,7 +76,10 @@ export async function storybookDevServer(options: Options) { server.listen({ port, host }, (error: Error) => (error ? reject(error) : resolve())); }); - invariant(core?.builder, 'no builder configured!'); + if (!core?.builder) { + throw new MissingBuilderError(); + } + const builderName = typeof core?.builder === 'string' ? core.builder : core?.builder?.name; const [previewBuilder, managerBuilder] = await Promise.all([ @@ -90,6 +103,7 @@ export async function storybookDevServer(options: Options) { let previewStarted: Promise = Promise.resolve(); if (!options.ignorePreview) { + logger.info('=> Starting preview..'); previewStarted = previewBuilder .start({ startTime: process.hrtime(), @@ -99,6 +113,9 @@ export async function storybookDevServer(options: Options) { channel: serverChannel, }) .catch(async (e: any) => { + logger.error('=> Failed to build the preview'); + process.exitCode = 1; + await managerBuilder?.bail().catch(); // For some reason, even when Webpack fails e.g. wrong main.js config, // the preview may continue to print to stdout, which can affect output diff --git a/code/lib/core-server/src/presets/common-preset.ts b/code/lib/core-server/src/presets/common-preset.ts index 9d581c307c73..347713e03aaf 100644 --- a/code/lib/core-server/src/presets/common-preset.ts +++ b/code/lib/core-server/src/presets/common-preset.ts @@ -197,7 +197,7 @@ export const features = async ( export const csfIndexer: Indexer = { test: /(stories|story)\.(m?js|ts)x?$/, - index: async (fileName, options) => (await readCsf(fileName, options)).parse().indexInputs, + createIndex: async (fileName, options) => (await readCsf(fileName, options)).parse().indexInputs, }; // eslint-disable-next-line @typescript-eslint/naming-convention diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.deprecated.test.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.deprecated.test.ts index 882c0a9f5235..60d700bad62e 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.deprecated.test.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.deprecated.test.ts @@ -1166,7 +1166,7 @@ describe('StoryIndexGenerator with deprecated indexer API', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName, options) => { + createIndex: async (fileName, options) => { const code = (await fs.readFile(fileName, 'utf-8')).toString(); const csf = loadCsf(code, { ...options, fileName }).parse(); diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index d2a195a31463..0f847b8917a1 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -25,7 +25,7 @@ import type { } from '@storybook/types'; import { userOrAutoTitleFromSpecifier, sortStoriesV7 } from '@storybook/preview-api'; import { commonGlobOptions, normalizeStoryPath } from '@storybook/core-common'; -import { logger, once } from '@storybook/node-logger'; +import { deprecate, logger, once } from '@storybook/node-logger'; import { getStorySortParameter } from '@storybook/csf-tools'; import { storyNameFromExport, toId } from '@storybook/csf'; import { analyze } from '@storybook/docs-mdx'; @@ -119,12 +119,6 @@ export class StoryIndexGenerator { public readonly options: StoryIndexGeneratorOptions ) { this.specifierToCache = new Map(); - if (options.storyIndexers.length > 1) { - // TODO: write migration notes before enabling this warning - // deprecate( - // "'storyIndexers' is deprecated, please use 'indexers' instead. See migration notes at XXX" - // ); - } } async initialize() { @@ -298,6 +292,10 @@ export class StoryIndexGenerator { invariant(indexer, `No matching indexer found for ${absolutePath}`); if (indexer.indexer) { + deprecate( + dedent`'storyIndexers' is deprecated, please use 'experimental_indexers' instead. Found a deprecated indexer with matcher: ${indexer.test} + - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storyindexers-is-replaced-with-experimental_indexers` + ); return this.extractStoriesFromDeprecatedIndexer({ indexer: indexer.indexer, indexerOptions: { makeTitle: defaultMakeTitle }, @@ -306,7 +304,7 @@ export class StoryIndexGenerator { }); } - const indexInputs = await indexer.index(absolutePath, { makeTitle: defaultMakeTitle }); + const indexInputs = await indexer.createIndex(absolutePath, { makeTitle: defaultMakeTitle }); const entries: ((StoryIndexEntryWithMetaId | DocsCacheEntry) & { tags: Tag[] })[] = indexInputs.map((input) => { diff --git a/code/lib/core-server/src/utils/__tests__/index-extraction.test.ts b/code/lib/core-server/src/utils/__tests__/index-extraction.test.ts index 31d15a059b5d..39820b3e2c17 100644 --- a/code/lib/core-server/src/utils/__tests__/index-extraction.test.ts +++ b/code/lib/core-server/src/utils/__tests__/index-extraction.test.ts @@ -34,7 +34,7 @@ describe('story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ // properties identical to the auto-generated ones, eg. 'StoryOne' -> 'Story One' { type: 'story', @@ -107,7 +107,7 @@ describe('story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: 'StoryOne', importPath: fileName, @@ -150,7 +150,7 @@ describe('story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: 'StoryOne', __id: 'a--story-one', @@ -198,7 +198,7 @@ describe('story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: 'StoryOne', __id: 'a--story-one', @@ -246,7 +246,7 @@ describe('story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ // exportName + title -> id { exportName: 'StoryOne', @@ -336,7 +336,7 @@ describe('story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: 'StoryOne', tags: ['story-tag-from-indexer'], @@ -383,7 +383,7 @@ describe('docs entries from story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: 'StoryOne', __id: 'a--story-one', @@ -444,7 +444,7 @@ describe('docs entries from story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: 'StoryOne', __id: 'a--story-one', @@ -506,7 +506,7 @@ describe('docs entries from story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: 'StoryOne', __id: 'a--story-one', @@ -555,7 +555,7 @@ describe('docs entries from story extraction', () => { indexers: [ { test: /\.stories\.(m?js|ts)x?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: 'StoryOne', __id: 'a--story-one', @@ -617,7 +617,7 @@ describe('docs entries from story extraction', () => { indexers: [ { test: /\.stories\.mdx?$/, - index: async (fileName) => [ + createIndex: async (fileName) => [ { exportName: '__page', __id: 'page--page', diff --git a/code/lib/core-server/src/utils/get-builders.ts b/code/lib/core-server/src/utils/get-builders.ts index 4a9b9f14daf8..542492a4c683 100644 --- a/code/lib/core-server/src/utils/get-builders.ts +++ b/code/lib/core-server/src/utils/get-builders.ts @@ -1,6 +1,6 @@ import type { Builder, CoreConfig, Options } from '@storybook/types'; +import { MissingBuilderError } from '@storybook/core-events/server-errors'; import { pathToFileURL } from 'node:url'; -import invariant from 'tiny-invariant'; export async function getManagerBuilder(): Promise> { return import('@storybook/builder-manager'); @@ -20,7 +20,11 @@ export async function getPreviewBuilder( export async function getBuilders({ presets, configDir }: Options): Promise[]> { const { builder } = await presets.apply('core', {}); - invariant(builder, 'no builder configured!'); + + if (!builder) { + throw new MissingBuilderError(); + } + const builderName = typeof builder === 'string' ? builder : builder.name; return Promise.all([getPreviewBuilder(builderName, configDir), getManagerBuilder()]); diff --git a/code/lib/core-server/src/utils/server-statics.ts b/code/lib/core-server/src/utils/server-statics.ts index b2d5a5e3cbce..19d569cfcc06 100644 --- a/code/lib/core-server/src/utils/server-statics.ts +++ b/code/lib/core-server/src/utils/server-statics.ts @@ -3,16 +3,16 @@ import type { Options, StorybookConfig } from '@storybook/types'; import { getDirectoryFromWorkingDir } from '@storybook/core-common'; import { ConflictingStaticDirConfigError } from '@storybook/core-events/server-errors'; import chalk from 'chalk'; +import type { Router } from 'express'; import express from 'express'; import { pathExists } from 'fs-extra'; -import path from 'path'; -import favicon from 'serve-favicon'; +import path, { basename } from 'path'; import isEqual from 'lodash/isEqual.js'; import { dedent } from 'ts-dedent'; import { defaultStaticDirs } from './constants'; -export async function useStatics(router: any, options: Options) { +export async function useStatics(router: Router, options: Options) { const staticDirs = (await options.presets.apply('staticDirs')) ?? []; const faviconPath = await options.presets.apply('favicon'); @@ -54,7 +54,7 @@ export async function useStatics(router: any, options: Options) { ); } - router.use(favicon(faviconPath)); + router.get(`/${basename(faviconPath)}`, (req, res) => res.sendFile(faviconPath)); } export const parseStaticDir = async (arg: string) => { diff --git a/code/lib/core-server/src/withTelemetry.test.ts b/code/lib/core-server/src/withTelemetry.test.ts index 519de40c1458..edcf7ddde90c 100644 --- a/code/lib/core-server/src/withTelemetry.test.ts +++ b/code/lib/core-server/src/withTelemetry.test.ts @@ -1,10 +1,11 @@ +/* eslint-disable local-rules/no-uncategorized-errors */ /// ; import prompts from 'prompts'; import { loadAllPresets, cache } from '@storybook/core-common'; -import { telemetry } from '@storybook/telemetry'; +import { telemetry, oneWayHash } from '@storybook/telemetry'; -import { withTelemetry } from './withTelemetry'; +import { getErrorLevel, sendTelemetryError, withTelemetry } from './withTelemetry'; jest.mock('prompts'); jest.mock('@storybook/core-common'); @@ -12,222 +13,463 @@ jest.mock('@storybook/telemetry'); const cliOptions = {}; -it('works in happy path', async () => { - const run = jest.fn(); +describe('withTelemetry', () => { + it('works in happy path', async () => { + const run = jest.fn(); - await withTelemetry('dev', { cliOptions }, run); + await withTelemetry('dev', { cliOptions }, run); - expect(telemetry).toHaveBeenCalledTimes(1); - expect(telemetry).toHaveBeenCalledWith('boot', { eventType: 'dev' }, { stripMetadata: true }); -}); - -it('does not send boot when cli option is passed', async () => { - const run = jest.fn(); + expect(telemetry).toHaveBeenCalledTimes(1); + expect(telemetry).toHaveBeenCalledWith('boot', { eventType: 'dev' }, { stripMetadata: true }); + }); - await withTelemetry('dev', { cliOptions: { disableTelemetry: true } }, run); + it('does not send boot when cli option is passed', async () => { + const run = jest.fn(); - expect(telemetry).toHaveBeenCalledTimes(0); -}); + await withTelemetry('dev', { cliOptions: { disableTelemetry: true } }, run); -describe('when command fails', () => { - const error = new Error('An Error!'); - const run = jest.fn(async () => { - throw error; + expect(telemetry).toHaveBeenCalledTimes(0); }); - it('sends boot message', async () => { - await expect(async () => withTelemetry('dev', { cliOptions }, run)).rejects.toThrow(error); + describe('when command fails', () => { + const error = new Error('An Error!'); + const run = jest.fn(async () => { + throw error; + }); - expect(telemetry).toHaveBeenCalledWith('boot', { eventType: 'dev' }, { stripMetadata: true }); - }); + it('sends boot message', async () => { + await expect(async () => + withTelemetry('dev', { cliOptions, printError: jest.fn() }, run) + ).rejects.toThrow(error); - it('does not send boot when cli option is passed', async () => { - await expect(async () => - withTelemetry('dev', { cliOptions: { disableTelemetry: true } }, run) - ).rejects.toThrow(error); + expect(telemetry).toHaveBeenCalledWith('boot', { eventType: 'dev' }, { stripMetadata: true }); + }); - expect(telemetry).toHaveBeenCalledTimes(0); + it('does not send boot when cli option is passed', async () => { + await expect(async () => + withTelemetry('dev', { cliOptions: { disableTelemetry: true }, printError: jest.fn() }, run) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(0); + }); + + it('sends error message when no options are passed', async () => { + await expect(async () => + withTelemetry('dev', { cliOptions, printError: jest.fn() }, run) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev', error }), + expect.objectContaining({}) + ); + }); + + it('does not send error message when cli opt out is passed', async () => { + await expect(async () => + withTelemetry('dev', { cliOptions: { disableTelemetry: true }, printError: jest.fn() }, run) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(0); + expect(telemetry).not.toHaveBeenCalledWith( + 'error', + expect.objectContaining({}), + expect.objectContaining({}) + ); + }); + + it('does not send full error message when crash reports are disabled', async () => { + jest.mocked(loadAllPresets).mockResolvedValueOnce({ + apply: async () => ({ enableCrashReports: false } as any), + }); + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev' }), + expect.objectContaining({}) + ); + }); + + it('does send error message when crash reports are enabled', async () => { + jest.mocked(loadAllPresets).mockResolvedValueOnce({ + apply: async () => ({ enableCrashReports: true } as any), + }); + + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev', error }), + expect.objectContaining({}) + ); + }); + + it('does not send any error message when telemetry is disabled', async () => { + jest.mocked(loadAllPresets).mockResolvedValueOnce({ + apply: async () => ({ disableTelemetry: true } as any), + }); + + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(1); + expect(telemetry).not.toHaveBeenCalledWith( + 'error', + expect.objectContaining({}), + expect.objectContaining({}) + ); + }); + + it('does send error messages when telemetry is disabled, but crash reports are enabled', async () => { + jest.mocked(loadAllPresets).mockResolvedValueOnce({ + apply: async () => ({ disableTelemetry: true, enableCrashReports: true } as any), + }); + + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev', error }), + expect.objectContaining({}) + ); + }); + + it('does not send full error messages when disabled crash reports are cached', async () => { + jest.mocked(loadAllPresets).mockResolvedValueOnce({ + apply: async () => ({} as any), + }); + jest.mocked(cache.get).mockResolvedValueOnce(false); + + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev' }), + expect.objectContaining({}) + ); + }); + + it('does send error messages when enabled crash reports are cached', async () => { + jest.mocked(loadAllPresets).mockResolvedValueOnce({ + apply: async () => ({} as any), + }); + jest.mocked(cache.get).mockResolvedValueOnce(true); + + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev', error }), + expect.objectContaining({}) + ); + }); + + it('does not send full error messages when disabled crash reports are prompted', async () => { + jest.mocked(loadAllPresets).mockResolvedValueOnce({ + apply: async () => ({} as any), + }); + jest.mocked(cache.get).mockResolvedValueOnce(undefined); + jest.mocked(prompts).mockResolvedValueOnce({ enableCrashReports: false }); + + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev' }), + expect.objectContaining({}) + ); + }); + + it('does send error messages when enabled crash reports are prompted', async () => { + jest.mocked(loadAllPresets).mockResolvedValueOnce({ + apply: async () => ({} as any), + }); + jest.mocked(cache.get).mockResolvedValueOnce(undefined); + jest.mocked(prompts).mockResolvedValueOnce({ enableCrashReports: true }); + + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev', error }), + expect.objectContaining({}) + ); + }); + + // if main.js has errors, we have no way to tell if they've disabled error reporting, + // so we assume they have. + it('does not send full error messages when presets fail to evaluate', async () => { + jest.mocked(loadAllPresets).mockRejectedValueOnce(error); + + await expect(async () => + withTelemetry( + 'dev', + { cliOptions: {} as any, presetOptions: {} as any, printError: jest.fn() }, + run + ) + ).rejects.toThrow(error); + + expect(telemetry).toHaveBeenCalledTimes(2); + expect(telemetry).toHaveBeenCalledWith( + 'error', + expect.objectContaining({ eventType: 'dev' }), + expect.objectContaining({}) + ); + }); }); +}); + +describe('sendTelemetryError', () => { + it('handles error instances and sends telemetry', async () => { + const options: any = { + cliOptions: {}, + skipPrompt: false, + }; + const mockError = new Error('Test error'); + const eventType: any = 'testEventType'; + + jest.mocked(oneWayHash).mockReturnValueOnce('some-hash'); - it('sends error message when no options are passed', async () => { - await expect(async () => withTelemetry('dev', { cliOptions }, run)).rejects.toThrow(error); + await sendTelemetryError(mockError, eventType, options); - expect(telemetry).toHaveBeenCalledTimes(2); expect(telemetry).toHaveBeenCalledWith( 'error', - { eventType: 'dev', error }, - expect.objectContaining({}) + expect.objectContaining({ + error: mockError, + eventType, + isErrorInstance: true, + errorHash: 'some-hash', + }), + expect.any(Object) ); }); - it('does not send error message when cli opt out is passed', async () => { - await expect(async () => - withTelemetry('dev', { cliOptions: { disableTelemetry: true } }, run) - ).rejects.toThrow(error); + it('handles non-error instances and sends telemetry with no-message hash', async () => { + const options: any = { + cliOptions: {}, + skipPrompt: false, + }; + const mockError = { error: new Error('Test error') }; + const eventType: any = 'testEventType'; - expect(telemetry).toHaveBeenCalledTimes(0); - expect(telemetry).not.toHaveBeenCalledWith( + await sendTelemetryError(mockError, eventType, options); + + expect(telemetry).toHaveBeenCalledWith( 'error', - expect.objectContaining({}), - expect.objectContaining({}) + expect.objectContaining({ + error: mockError, + eventType, + isErrorInstance: false, + errorHash: 'NO_MESSAGE', + }), + expect.any(Object) ); }); - it('does not send full error message when crash reports are disabled', async () => { - jest.mocked(loadAllPresets).mockResolvedValueOnce({ - apply: async () => ({ enableCrashReports: false } as any), - }); - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); + it('handles error with empty message and sends telemetry with empty-message hash', async () => { + const options: any = { + cliOptions: {}, + skipPrompt: false, + }; + const mockError = new Error(); + const eventType: any = 'testEventType'; + + await sendTelemetryError(mockError, eventType, options); - expect(telemetry).toHaveBeenCalledTimes(2); expect(telemetry).toHaveBeenCalledWith( 'error', - { eventType: 'dev' }, - expect.objectContaining({}) + expect.objectContaining({ + error: mockError, + eventType, + isErrorInstance: true, + errorHash: 'EMPTY_MESSAGE', + }), + expect.any(Object) ); }); +}); - it('does send error message when crash reports are enabled', async () => { - jest.mocked(loadAllPresets).mockResolvedValueOnce({ - apply: async () => ({ enableCrashReports: true } as any), - }); +describe('getErrorLevel', () => { + beforeEach(() => { + jest.resetAllMocks(); + }); - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); + it('returns "none" when cliOptions.disableTelemetry is true', async () => { + const options: any = { + cliOptions: { + disableTelemetry: true, + }, + presetOptions: undefined, + skipPrompt: false, + }; - expect(telemetry).toHaveBeenCalledTimes(2); - expect(telemetry).toHaveBeenCalledWith( - 'error', - { eventType: 'dev', error }, - expect.objectContaining({}) - ); + const errorLevel = await getErrorLevel(options); + + expect(errorLevel).toBe('none'); }); - it('does not send any error message when telemetry is disabled', async () => { - jest.mocked(loadAllPresets).mockResolvedValueOnce({ - apply: async () => ({ disableTelemetry: true } as any), - }); + it('returns "full" when presetOptions is not provided', async () => { + const options: any = { + cliOptions: { + disableTelemetry: false, + }, + presetOptions: undefined, + skipPrompt: false, + }; - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); + const errorLevel = await getErrorLevel(options); - expect(telemetry).toHaveBeenCalledTimes(1); - expect(telemetry).not.toHaveBeenCalledWith( - 'error', - expect.objectContaining({}), - expect.objectContaining({}) - ); + expect(errorLevel).toBe('full'); }); - it('does send error messages when telemetry is disabled, but crash reports are enabled', async () => { + it('returns "full" when core.enableCrashReports is true', async () => { + const options: any = { + cliOptions: { + disableTelemetry: false, + }, + presetOptions: {}, + skipPrompt: false, + }; + jest.mocked(loadAllPresets).mockResolvedValueOnce({ - apply: async () => ({ disableTelemetry: true, enableCrashReports: true } as any), + apply: async () => ({ enableCrashReports: true } as any), }); + jest.mocked(cache.get).mockResolvedValueOnce(false); - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); + const errorLevel = await getErrorLevel(options); - expect(telemetry).toHaveBeenCalledTimes(2); - expect(telemetry).toHaveBeenCalledWith( - 'error', - { eventType: 'dev', error }, - expect.objectContaining({}) - ); + expect(errorLevel).toBe('full'); }); - it('does not send full error messages when disabled crash reports are cached', async () => { + it('returns "error" when core.enableCrashReports is false', async () => { + const options: any = { + cliOptions: { + disableTelemetry: false, + }, + presetOptions: {}, + skipPrompt: false, + }; + jest.mocked(loadAllPresets).mockResolvedValueOnce({ - apply: async () => ({} as any), + apply: async () => ({ enableCrashReports: false } as any), }); jest.mocked(cache.get).mockResolvedValueOnce(false); - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); + const errorLevel = await getErrorLevel(options); - expect(telemetry).toHaveBeenCalledTimes(2); - expect(telemetry).toHaveBeenCalledWith( - 'error', - { eventType: 'dev' }, - expect.objectContaining({}) - ); + expect(errorLevel).toBe('error'); }); - it('does send error messages when enabled crash reports are cached', async () => { + it('returns "none" when core.disableTelemetry is true', async () => { + const options: any = { + cliOptions: { + disableTelemetry: false, + }, + presetOptions: {}, + skipPrompt: false, + }; + jest.mocked(loadAllPresets).mockResolvedValueOnce({ - apply: async () => ({} as any), + apply: async () => ({ disableTelemetry: true } as any), }); - jest.mocked(cache.get).mockResolvedValueOnce(true); + jest.mocked(cache.get).mockResolvedValueOnce(false); - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); + const errorLevel = await getErrorLevel(options); - expect(telemetry).toHaveBeenCalledTimes(2); - expect(telemetry).toHaveBeenCalledWith( - 'error', - { eventType: 'dev', error }, - expect.objectContaining({}) - ); + expect(errorLevel).toBe('none'); }); - it('does not send full error messages when disabled crash reports are prompted', async () => { + it('returns "full" if cache contains crashReports true', async () => { + const options: any = { + cliOptions: { + disableTelemetry: false, + }, + presetOptions: {}, + skipPrompt: false, + }; + + jest.mocked(cache.get).mockResolvedValueOnce(true); jest.mocked(loadAllPresets).mockResolvedValueOnce({ apply: async () => ({} as any), }); - jest.mocked(cache.get).mockResolvedValueOnce(undefined); - jest.mocked(prompts).mockResolvedValueOnce({ enableCrashReports: false }); - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); + const errorLevel = await getErrorLevel(options); - expect(telemetry).toHaveBeenCalledTimes(2); - expect(telemetry).toHaveBeenCalledWith( - 'error', - { eventType: 'dev' }, - expect.objectContaining({}) - ); + expect(errorLevel).toBe('full'); }); - it('does send error messages when enabled crash reports are prompted', async () => { + it('returns "error" when skipPrompt is true', async () => { + const options: any = { + cliOptions: { + disableTelemetry: false, + }, + presetOptions: {}, + skipPrompt: true, + }; + jest.mocked(loadAllPresets).mockResolvedValueOnce({ apply: async () => ({} as any), }); jest.mocked(cache.get).mockResolvedValueOnce(undefined); - jest.mocked(prompts).mockResolvedValueOnce({ enableCrashReports: true }); - - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); - - expect(telemetry).toHaveBeenCalledTimes(2); - expect(telemetry).toHaveBeenCalledWith( - 'error', - { eventType: 'dev', error }, - expect.objectContaining({}) - ); - }); - - // if main.js has errors, we have no way to tell if they've disabled error reporting, - // so we assume they have. - it('does not send full error messages when presets fail to evaluate', async () => { - jest.mocked(loadAllPresets).mockRejectedValueOnce(error); - await expect(async () => - withTelemetry('dev', { cliOptions: {} as any, presetOptions: {} as any }, run) - ).rejects.toThrow(error); + const errorLevel = await getErrorLevel(options); - expect(telemetry).toHaveBeenCalledTimes(2); - expect(telemetry).toHaveBeenCalledWith( - 'error', - { eventType: 'dev' }, - expect.objectContaining({}) - ); + expect(errorLevel).toBe('error'); }); }); diff --git a/code/lib/core-server/src/withTelemetry.ts b/code/lib/core-server/src/withTelemetry.ts index 0baebb8d97cb..21a33636d77a 100644 --- a/code/lib/core-server/src/withTelemetry.ts +++ b/code/lib/core-server/src/withTelemetry.ts @@ -4,7 +4,6 @@ import { loadAllPresets, cache } from '@storybook/core-common'; import { telemetry, getPrecedingUpgrade, oneWayHash } from '@storybook/telemetry'; import type { EventType } from '@storybook/telemetry'; import { logger } from '@storybook/node-logger'; -import invariant from 'tiny-invariant'; type TelemetryOptions = { cliOptions: CLIOptions; @@ -32,7 +31,7 @@ const promptCrashReports = async () => { type ErrorLevel = 'none' | 'error' | 'full'; -async function getErrorLevel({ +export async function getErrorLevel({ cliOptions, presetOptions, skipPrompt, @@ -67,7 +66,7 @@ async function getErrorLevel({ } export async function sendTelemetryError( - error: unknown, + _error: unknown, eventType: EventType, options: TelemetryOptions ) { @@ -81,37 +80,28 @@ export async function sendTelemetryError( if (errorLevel !== 'none') { const precedingUpgrade = await getPrecedingUpgrade(); - invariant( - error instanceof Error, - 'The error passed to sendTelemetryError was not an Error, please only send Errors' - ); + const error = _error as Error & Record; - let storybookErrorProperties = {}; - // if it's an UNCATEGORIZED error, it won't have a coded name, so we just pass the category and source - if ((error as any).category) { - const { category } = error as any; - storybookErrorProperties = { - category, - }; - } - - if ((error as any).fromStorybook) { - const { code, name } = error as any; - storybookErrorProperties = { - ...storybookErrorProperties, - code, - name, - }; + let errorHash; + if ('message' in error) { + errorHash = error.message ? oneWayHash(error.message) : 'EMPTY_MESSAGE'; + } else { + errorHash = 'NO_MESSAGE'; } + const { code, name, category } = error; await telemetry( 'error', { + code, + name, + category, eventType, precedingUpgrade, error: errorLevel === 'full' ? error : undefined, - errorHash: oneWayHash(error.message), - ...storybookErrorProperties, + errorHash, + // if we ever end up sending a non-error instance, we'd like to know + isErrorInstance: error instanceof Error, }, { immediate: true, diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index dfc8f3a78e68..ca5739b08558 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/csf-plugin/package.json b/code/lib/csf-plugin/package.json index 9097da12c31c..07483a79d5f7 100644 --- a/code/lib/csf-plugin/package.json +++ b/code/lib/csf-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-plugin", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Enrich CSF files via static analysis", "keywords": [ "storybook" diff --git a/code/lib/csf-tools/package.json b/code/lib/csf-tools/package.json index 18633851f3d1..27d9e30aaa7f 100644 --- a/code/lib/csf-tools/package.json +++ b/code/lib/csf-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-tools", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Parse and manipulate CSF and Storybook config files", "keywords": [ "storybook" diff --git a/code/lib/docs-tools/package.json b/code/lib/docs-tools/package.json index 0ce1ad2f560f..d552f6bc6208 100644 --- a/code/lib/docs-tools/package.json +++ b/code/lib/docs-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/docs-tools", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Shared utility functions for frameworks to implement docs", "keywords": [ "storybook" diff --git a/code/lib/docs-tools/src/argTypes/convert/convert.test.ts b/code/lib/docs-tools/src/argTypes/convert/convert.test.ts index 5b7b15ec6c63..f5139d7847a1 100644 --- a/code/lib/docs-tools/src/argTypes/convert/convert.test.ts +++ b/code/lib/docs-tools/src/argTypes/convert/convert.test.ts @@ -180,30 +180,18 @@ describe('storybook type system', () => { { "kind": { "raw": "'default' | 'action'", - "name": "union", + "name": "enum", "value": [ - { - "name": "other", - "value": "literal" - }, - { - "name": "other", - "value": "literal" - } + "default", + "action" ] }, "inlinedNumericLiteralUnion": { "raw": "0 | 1", - "name": "union", + "name": "enum", "value": [ - { - "name": "other", - "value": "literal" - }, - { - "name": "other", - "value": "literal" - } + 0, + 1 ] }, "enumUnion": { @@ -812,7 +800,7 @@ const transformToModule = (inputCode: string) => { const annotateWithDocgen = (inputCode: string, filename: string) => { const options = { presets: ['@babel/typescript', '@babel/react'], - plugins: ['babel-plugin-react-docgen', '@babel/plugin-proposal-class-properties'], + plugins: ['babel-plugin-react-docgen', '@babel/plugin-transform-class-properties'], babelrc: false, filename, }; diff --git a/code/lib/docs-tools/src/argTypes/convert/proptypes/convert.ts b/code/lib/docs-tools/src/argTypes/convert/proptypes/convert.ts index 6caa89a5d268..82b85c0333e1 100644 --- a/code/lib/docs-tools/src/argTypes/convert/proptypes/convert.ts +++ b/code/lib/docs-tools/src/argTypes/convert/proptypes/convert.ts @@ -2,7 +2,7 @@ import mapValues from 'lodash/mapValues.js'; import type { SBType } from '@storybook/types'; import type { PTType } from './types'; -import { includesQuotes, trimQuotes } from '../utils'; +import { parseLiteral } from '../utils'; const SIGNATURE_REGEXP = /^\(.*\) => /; @@ -13,15 +13,7 @@ export const convert = (type: PTType): SBType | any => { switch (name) { case 'enum': { - const values = computed - ? value - : value.map((v: PTType) => { - const trimmedValue = trimQuotes(v.value); - - return includesQuotes(v.value) || Number.isNaN(Number(trimmedValue)) - ? trimmedValue - : Number(trimmedValue); - }); + const values = computed ? value : value.map((v: PTType) => parseLiteral(v.value)); return { ...base, name, value: values }; } case 'string': diff --git a/code/lib/docs-tools/src/argTypes/convert/typescript/convert.ts b/code/lib/docs-tools/src/argTypes/convert/typescript/convert.ts index 4683b933f845..ffec5b18db20 100644 --- a/code/lib/docs-tools/src/argTypes/convert/typescript/convert.ts +++ b/code/lib/docs-tools/src/argTypes/convert/typescript/convert.ts @@ -1,6 +1,7 @@ /* eslint-disable no-case-declarations */ import type { SBType } from '@storybook/types'; import type { TSType, TSSigType } from './types'; +import { parseLiteral } from '../utils'; const convertSig = (type: TSSigType) => { switch (type.type) { @@ -37,6 +38,18 @@ export const convert = (type: TSType): SBType | void => { case 'signature': return { ...base, ...convertSig(type) }; case 'union': + let result; + if (type.elements.every((element) => element.name === 'literal')) { + result = { + ...base, + name: 'enum', + // @ts-expect-error fix types + value: type.elements.map((v) => parseLiteral(v.value)), + }; + } else { + result = { ...base, name, value: type.elements.map(convert) }; + } + return result; case 'intersection': return { ...base, name, value: type.elements.map(convert) }; default: diff --git a/code/lib/docs-tools/src/argTypes/convert/typescript/types.ts b/code/lib/docs-tools/src/argTypes/convert/typescript/types.ts index dee016d76734..aed18f3f4160 100644 --- a/code/lib/docs-tools/src/argTypes/convert/typescript/types.ts +++ b/code/lib/docs-tools/src/argTypes/convert/typescript/types.ts @@ -33,7 +33,7 @@ type TSObjectSigType = TSBaseType & { }; type TSScalarType = TSBaseType & { - name: 'any' | 'boolean' | 'number' | 'void' | 'string' | 'symbol'; + name: 'any' | 'boolean' | 'number' | 'void' | 'string' | 'symbol' | 'literal'; }; type TSArrayType = TSBaseType & { diff --git a/code/lib/docs-tools/src/argTypes/convert/utils.ts b/code/lib/docs-tools/src/argTypes/convert/utils.ts index 6523490388a8..8af215e69aec 100644 --- a/code/lib/docs-tools/src/argTypes/convert/utils.ts +++ b/code/lib/docs-tools/src/argTypes/convert/utils.ts @@ -1,3 +1,10 @@ const QUOTE_REGEX = /^['"]|['"]$/g; export const trimQuotes = (str: string) => str.replace(QUOTE_REGEX, ''); export const includesQuotes = (str: string) => QUOTE_REGEX.test(str); +export const parseLiteral = (str: string) => { + const trimmedValue = trimQuotes(str); + + return includesQuotes(str) || Number.isNaN(Number(trimmedValue)) + ? trimmedValue + : Number(trimmedValue); +}; diff --git a/code/lib/docs-tools/src/argTypes/docgen/typeScript/createType.ts b/code/lib/docs-tools/src/argTypes/docgen/typeScript/createType.ts index 7b03da0e2411..8aa541f38c6d 100644 --- a/code/lib/docs-tools/src/argTypes/docgen/typeScript/createType.ts +++ b/code/lib/docs-tools/src/argTypes/docgen/typeScript/createType.ts @@ -9,9 +9,12 @@ export function createType({ tsType, required }: DocgenInfo): PropType { return null; } + let typeName = tsType.name; if (!required) { - return createSummaryValue(tsType.name.replace(' | undefined', '')); + typeName = typeName.replace(' | undefined', ''); } - return createSummaryValue(tsType.name); + return createSummaryValue( + ['Array', 'Record', 'signature'].includes(tsType.name) ? tsType.raw : typeName + ); } diff --git a/code/lib/docs-tools/src/argTypes/docgen/types.ts b/code/lib/docs-tools/src/argTypes/docgen/types.ts index 498daee4ac58..d671a2bae8b7 100644 --- a/code/lib/docs-tools/src/argTypes/docgen/types.ts +++ b/code/lib/docs-tools/src/argTypes/docgen/types.ts @@ -26,8 +26,9 @@ export interface DocgenFlowType extends DocgenType { elements?: any[]; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface DocgenTypeScriptType extends DocgenType {} +export interface DocgenTypeScriptType extends DocgenType { + raw?: string; +} // export type DocgenType = DocgenPropType | DocgenFlowType | DocgenTypeScriptType; diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json index ed33b6ca6aeb..b9d22eb8445f 100644 --- a/code/lib/instrumenter/package.json +++ b/code/lib/instrumenter/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/instrumenter", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/manager-api/package.json b/code/lib/manager-api/package.json index 7ca039a1b0c9..086a2a2fc55f 100644 --- a/code/lib/manager-api/package.json +++ b/code/lib/manager-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager-api", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Core Storybook Manager API & Context", "keywords": [ "storybook" diff --git a/code/lib/manager-api/src/index.tsx b/code/lib/manager-api/src/index.tsx index ab247114e440..951dc494a93a 100644 --- a/code/lib/manager-api/src/index.tsx +++ b/code/lib/manager-api/src/index.tsx @@ -386,30 +386,33 @@ export function useParameter(parameterKey: string, defaultValue?: S) { } // cache for taking care of HMR -const addonStateCache: { - [key: string]: any; -} = {}; +globalThis.STORYBOOK_ADDON_STATE = {}; +const { STORYBOOK_ADDON_STATE } = globalThis; // shared state export function useSharedState(stateId: string, defaultState?: S) { const api = useStorybookApi(); - const existingState = api.getAddonState(stateId) || addonStateCache[stateId]; + const existingState = api.getAddonState(stateId) || STORYBOOK_ADDON_STATE[stateId]; const state = orDefault( existingState, - addonStateCache[stateId] ? addonStateCache[stateId] : defaultState + STORYBOOK_ADDON_STATE[stateId] ? STORYBOOK_ADDON_STATE[stateId] : defaultState ); + let quicksync = false; + + if (state === defaultState && defaultState !== undefined) { + STORYBOOK_ADDON_STATE[stateId] = defaultState; + quicksync = true; + } useEffect(() => { - if (api.getAddonState(stateId) === undefined && api.getAddonState(stateId) !== state) { - api.setAddonState(stateId, state).then((s) => { - addonStateCache[stateId] = s; - }); + if (quicksync) { + api.setAddonState(stateId, defaultState); } - }, [api]); + }, [quicksync]); - const setState = (s: S | API_StateMerger, options?: Options) => { - const result = api.setAddonState(stateId, s, options); - addonStateCache[stateId] = result; + const setState = async (s: S | API_StateMerger, options?: Options) => { + const result = await api.setAddonState(stateId, s, options); + STORYBOOK_ADDON_STATE[stateId] = result; return result; }; const allListeners = useMemo(() => { @@ -421,17 +424,17 @@ export function useSharedState(stateId: string, defaultState?: S) { [SET_STORIES]: async () => { const currentState = api.getAddonState(stateId); if (currentState) { - addonStateCache[stateId] = currentState; + STORYBOOK_ADDON_STATE[stateId] = currentState; api.emit(`${SHARED_STATE_SET}-manager-${stateId}`, currentState); - } else if (addonStateCache[stateId]) { + } else if (STORYBOOK_ADDON_STATE[stateId]) { // this happens when HMR - await setState(addonStateCache[stateId]); - api.emit(`${SHARED_STATE_SET}-manager-${stateId}`, addonStateCache[stateId]); + await setState(STORYBOOK_ADDON_STATE[stateId]); + api.emit(`${SHARED_STATE_SET}-manager-${stateId}`, STORYBOOK_ADDON_STATE[stateId]); } else if (defaultState !== undefined) { // if not HMR, yet the defaults are from the manager await setState(defaultState); - // initialize addonStateCache after first load, so its available for subsequent HMR - addonStateCache[stateId] = defaultState; + // initialize STORYBOOK_ADDON_STATE after first load, so its available for subsequent HMR + STORYBOOK_ADDON_STATE[stateId] = defaultState; api.emit(`${SHARED_STATE_SET}-manager-${stateId}`, defaultState); } }, diff --git a/code/lib/manager-api/src/modules/addons.ts b/code/lib/manager-api/src/modules/addons.ts index 0e1d69ca39e5..4f618a23b7ff 100644 --- a/code/lib/manager-api/src/modules/addons.ts +++ b/code/lib/manager-api/src/modules/addons.ts @@ -146,7 +146,7 @@ export const init: ModuleFn = ({ provider, store, fullAPI }) = .then(() => api.getAddonState(addonId)); }, getAddonState: (addonId) => { - return store.getState().addons[addonId]; + return store.getState().addons[addonId] || globalThis?.STORYBOOK_ADDON_STATE[addonId]; }, }; diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index c69e5e23cdb5..aff85aabcea3 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -263,7 +263,10 @@ export interface SubAPI { * @param {StatusUpdate} update - An object containing the updated status information. * @returns {Promise} A promise that resolves when the status has been updated. */ - experimental_updateStatus: (addonId: string, update: API_StatusUpdate) => Promise; + experimental_updateStatus: ( + addonId: string, + update: API_StatusUpdate | ((state: API_StatusState) => API_StatusUpdate) + ) => Promise; /** * Updates the filtering of the index. * @@ -581,13 +584,27 @@ export const init: ModuleFn = ({ }, /* EXPERIMENTAL APIs */ - experimental_updateStatus: async (id, update) => { + experimental_updateStatus: async (id, input) => { const { status, internal_index: index } = store.getState(); const newStatus = { ...status }; + const update = typeof input === 'function' ? input(status) : input; + + if (Object.keys(update).length === 0) { + return; + } + Object.entries(update).forEach(([storyId, value]) => { newStatus[storyId] = { ...(newStatus[storyId] || {}) }; - newStatus[storyId][id] = value; + if (value === null) { + delete newStatus[storyId][id]; + } else { + newStatus[storyId][id] = value; + } + + if (Object.keys(newStatus[storyId]).length === 0) { + delete newStatus[storyId]; + } }); await store.setState({ status: newStatus }, { persistence: 'session' }); diff --git a/code/lib/manager-api/src/tests/stories.test.ts b/code/lib/manager-api/src/tests/stories.test.ts index 0ee0c9be4ebb..a93cd1df9a99 100644 --- a/code/lib/manager-api/src/tests/stories.test.ts +++ b/code/lib/manager-api/src/tests/stories.test.ts @@ -1273,6 +1273,90 @@ describe('stories API', () => { } `); }); + it('delete when value is null', async () => { + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; + + await api.setIndex({ v: 4, entries: mockEntries }); + + await expect( + api.experimental_updateStatus('a-addon-id', { + 'a-story-id': { + status: 'pending', + title: 'an addon title', + description: 'an addon description', + }, + 'another-story-id': { status: 'success', title: 'a addon title', description: '' }, + }) + ).resolves.not.toThrow(); + + // do a second update, this time with null + await expect( + api.experimental_updateStatus('a-addon-id', { + 'a-story-id': null, + 'another-story-id': { status: 'success', title: 'a addon title', description: '' }, + }) + ).resolves.not.toThrow(); + + expect(store.getState().status).toMatchInlineSnapshot(` + Object { + "another-story-id": Object { + "a-addon-id": Object { + "description": "", + "status": "success", + "title": "a addon title", + }, + }, + } + `); + }); + it('updates with a function', async () => { + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; + + await api.setIndex({ v: 4, entries: mockEntries }); + + // setup initial state + await expect( + api.experimental_updateStatus('a-addon-id', () => ({ + 'a-story-id': { + status: 'pending', + title: 'an addon title', + description: 'an addon description', + }, + 'another-story-id': { status: 'success', title: 'a addon title', description: '' }, + })) + ).resolves.not.toThrow(); + + // use existing state in function + await expect( + api.experimental_updateStatus('a-addon-id', (current) => { + return Object.fromEntries( + Object.entries(current).map(([k, v]) => [k, { ...v['a-addon-id'], status: 'success' }]) + ); + }) + ).resolves.not.toThrow(); + expect(store.getState().status).toMatchInlineSnapshot(` + Object { + "a-story-id": Object { + "a-addon-id": Object { + "description": "an addon description", + "status": "success", + "title": "an addon title", + }, + }, + "another-story-id": Object { + "a-addon-id": Object { + "description": "", + "status": "success", + "title": "a addon title", + }, + }, + } + `); + }); }); describe('experimental_setFilter', () => { it('is included in the initial state', async () => { diff --git a/code/lib/manager-api/src/typings.d.ts b/code/lib/manager-api/src/typings.d.ts index 1d0d8d33ff0e..b7de89a44b4e 100644 --- a/code/lib/manager-api/src/typings.d.ts +++ b/code/lib/manager-api/src/typings.d.ts @@ -6,3 +6,4 @@ declare var FEATURES: import('@storybook/types').StorybookConfig['features']; declare var REFS: any; declare var VERSIONCHECK: any; declare var LOGLEVEL: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent' | undefined; +declare var STORYBOOK_ADDON_STATE: Record; diff --git a/code/lib/manager-api/src/version.ts b/code/lib/manager-api/src/version.ts index 1ed1073630db..e1a280d5aa14 100644 --- a/code/lib/manager-api/src/version.ts +++ b/code/lib/manager-api/src/version.ts @@ -1 +1 @@ -export const version = '7.4.0'; +export const version = '7.5.0-alpha.4'; diff --git a/code/lib/node-logger/package.json b/code/lib/node-logger/package.json index 5c8dc3fdc7d9..c3a2bfc8abe9 100644 --- a/code/lib/node-logger/package.json +++ b/code/lib/node-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/node-logger", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/postinstall/package.json b/code/lib/postinstall/package.json index 8a2938e0c8eb..93e9ef630ebc 100644 --- a/code/lib/postinstall/package.json +++ b/code/lib/postinstall/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/postinstall", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook addons postinstall utilities", "keywords": [ "api", diff --git a/code/lib/preview-api/package.json b/code/lib/preview-api/package.json index 1c018d6c1239..9079669709e9 100644 --- a/code/lib/preview-api/package.json +++ b/code/lib/preview-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-api", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/preview-api/src/modules/preview-web/PreviewWeb.test.ts b/code/lib/preview-api/src/modules/preview-web/PreviewWeb.test.ts index 41e735ebfddb..8123020b86bb 100644 --- a/code/lib/preview-api/src/modules/preview-web/PreviewWeb.test.ts +++ b/code/lib/preview-api/src/modules/preview-web/PreviewWeb.test.ts @@ -3502,6 +3502,19 @@ describe('PreviewWeb', () => { document.location.search = '?id=component-one--docs&viewMode=docs'; const preview = await createAndRenderPreview(); + preview.onKeydown({ + composedPath: jest + .fn() + .mockReturnValue([{ tagName: 'div', getAttribute: jest.fn().mockReturnValue(null) }]), + } as any); + + expect(mockChannel.emit).toHaveBeenCalledWith(PREVIEW_KEYDOWN, expect.objectContaining({})); + }); + + it('emits PREVIEW_KEYDOWN for regular elements, fallback to event.target', async () => { + document.location.search = '?id=component-one--docs&viewMode=docs'; + const preview = await createAndRenderPreview(); + preview.onKeydown({ target: { tagName: 'div', getAttribute: jest.fn().mockReturnValue(null) }, } as any); @@ -3514,7 +3527,9 @@ describe('PreviewWeb', () => { const preview = await createAndRenderPreview(); preview.onKeydown({ - target: { tagName: 'input', getAttribute: jest.fn().mockReturnValue(null) }, + composedPath: jest + .fn() + .mockReturnValue([{ tagName: 'input', getAttribute: jest.fn().mockReturnValue(null) }]), } as any); expect(mockChannel.emit).not.toHaveBeenCalledWith( diff --git a/code/lib/preview-api/src/modules/preview-web/PreviewWithSelection.tsx b/code/lib/preview-api/src/modules/preview-web/PreviewWithSelection.tsx index ca30544d7c49..73b58cc70ead 100644 --- a/code/lib/preview-api/src/modules/preview-web/PreviewWithSelection.tsx +++ b/code/lib/preview-api/src/modules/preview-web/PreviewWithSelection.tsx @@ -45,7 +45,7 @@ import type { StorySpecifier } from '../store/StoryIndexStore'; const globalWindow = globalThis; function focusInInput(event: Event) { - const target = event.target as Element; + const target = ((event.composedPath && event.composedPath()[0]) || event.target) as Element; return /input|textarea/i.test(target.tagName) || target.getAttribute('contenteditable') !== null; } diff --git a/code/lib/preview/package.json b/code/lib/preview/package.json index 3750786446ca..47f22adf59bf 100644 --- a/code/lib/preview/package.json +++ b/code/lib/preview/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" @@ -61,6 +61,7 @@ "@storybook/core-events": "workspace:*", "@storybook/global": "^5.0.0", "@storybook/preview-api": "workspace:*", + "browser-dtector": "^3.4.0", "typescript": "~4.9.3" }, "publishConfig": { diff --git a/code/lib/preview/src/runtime.ts b/code/lib/preview/src/runtime.ts index 7785e42df8c9..603c586b9fe3 100644 --- a/code/lib/preview/src/runtime.ts +++ b/code/lib/preview/src/runtime.ts @@ -3,6 +3,7 @@ import { global } from '@storybook/global'; import { values } from './globals/runtime'; import { globals } from './globals/types'; +import { prepareForTelemetry } from './utils'; const getKeys = Object.keys as (obj: T) => Array; @@ -13,7 +14,7 @@ getKeys(globals).forEach((key) => { global.sendTelemetryError = (error: any) => { const channel = global.__STORYBOOK_ADDONS_CHANNEL__; - channel.emit(TELEMETRY_ERROR, error); + channel.emit(TELEMETRY_ERROR, prepareForTelemetry(error)); }; // handle all uncaught StorybookError at the root of the application and log to telemetry if applicable diff --git a/code/lib/preview/src/utils.ts b/code/lib/preview/src/utils.ts new file mode 100644 index 000000000000..094e19fba6d4 --- /dev/null +++ b/code/lib/preview/src/utils.ts @@ -0,0 +1,29 @@ +import { global } from '@storybook/global'; +import type { BrowserInfo } from 'browser-dtector'; +import BrowserDetector from 'browser-dtector'; + +let browserInfo: BrowserInfo | undefined; + +function getBrowserInfo() { + if (!browserInfo) { + browserInfo = new BrowserDetector(global.navigator?.userAgent).getBrowserInfo(); + } + + return browserInfo; +} + +export function prepareForTelemetry( + error: Error & { + fromStorybook?: boolean; + category?: string; + target?: any; + currentTarget?: any; + srcElement?: any; + browserInfo?: BrowserInfo; + } +) { + // eslint-disable-next-line no-param-reassign + error.browserInfo = getBrowserInfo(); + + return error; +} diff --git a/code/lib/react-dom-shim/package.json b/code/lib/react-dom-shim/package.json index 25b300b3861c..250b0cab82bd 100644 --- a/code/lib/react-dom-shim/package.json +++ b/code/lib/react-dom-shim/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-dom-shim", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/router/package.json b/code/lib/router/package.json index 9d615e8ad8d1..3e20f332cde8 100644 --- a/code/lib/router/package.json +++ b/code/lib/router/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/router", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Core Storybook Router", "keywords": [ "storybook" diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json index 09f8532b6302..8cf27fd7efef 100644 --- a/code/lib/source-loader/package.json +++ b/code/lib/source-loader/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/source-loader", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Source loader", "keywords": [ "lib", diff --git a/code/lib/source-loader/src/abstract-syntax-tree/traverse-helpers.js b/code/lib/source-loader/src/abstract-syntax-tree/traverse-helpers.js index 798e8a1ca7cf..a908bf618c9a 100644 --- a/code/lib/source-loader/src/abstract-syntax-tree/traverse-helpers.js +++ b/code/lib/source-loader/src/abstract-syntax-tree/traverse-helpers.js @@ -239,7 +239,7 @@ export function popParametersObjectFromDefaultExport(source, ast) { (targetNode.properties || []).length ) { const parametersProperty = targetNode.properties.find( - (p) => p.key.name === 'parameters' && p.value.type === 'ObjectExpression' + (p) => p.key && p.key.name === 'parameters' && p.value.type === 'ObjectExpression' ); foundParametersProperty = !!parametersProperty; diff --git a/code/lib/telemetry/package.json b/code/lib/telemetry/package.json index 8ca60a31c8e2..90aced13b741 100644 --- a/code/lib/telemetry/package.json +++ b/code/lib/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/telemetry", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Telemetry logging for crash reports and usage statistics", "keywords": [ "storybook" diff --git a/code/lib/telemetry/src/sanitize.test.ts b/code/lib/telemetry/src/sanitize.test.ts index f5b3a742d3e6..934695e1e70b 100644 --- a/code/lib/telemetry/src/sanitize.test.ts +++ b/code/lib/telemetry/src/sanitize.test.ts @@ -1,7 +1,23 @@ +/* eslint-disable local-rules/no-uncategorized-errors */ import { sanitizeError, cleanPaths } from './sanitize'; describe(`Errors Helpers`, () => { describe(`sanitizeError`, () => { + it(`Sanitizes ansi codes in error`, () => { + const errorMessage = `\u001B[4mStorybook\u001B[0m`; + let e: any; + try { + throw new Error(errorMessage); + } catch (error) { + e = error; + } + + const sanitizedError = sanitizeError(e); + + expect(sanitizedError.message).toEqual('Storybook'); + expect(sanitizedError.stack).toContain('Error: Storybook'); + }); + it(`Sanitizes current path from error stacktraces`, () => { const errorMessage = `this is a test`; let e: any; @@ -69,14 +85,12 @@ describe(`Errors Helpers`, () => { `should clean path on unix: %s`, (filePath) => { const cwdMockPath = `/Users/username/storybook-app`; - const fullPath = `${cwdMockPath}/${filePath}`; - const mockCwd = jest.spyOn(process, `cwd`).mockImplementation(() => cwdMockPath); - const errorMessage = `This path should be sanitized ${fullPath}`; + const errorMessage = `Path 1 /Users/Username/storybook-app/${filePath} Path 2 /Users/username/storybook-app/${filePath}`; expect(cleanPaths(errorMessage, `/`)).toBe( - `This path should be sanitized $SNIP/${filePath}` + `Path 1 $SNIP/${filePath} Path 2 $SNIP/${filePath}` ); mockCwd.mockRestore(); } @@ -86,14 +100,12 @@ describe(`Errors Helpers`, () => { `should clean path on windows: %s`, (filePath) => { const cwdMockPath = `C:\\Users\\username\\storybook-app`; - const fullPath = `${cwdMockPath}\\${filePath}`; - - const mockCwd = jest.spyOn(process, `cwd`).mockImplementation(() => cwdMockPath); - const errorMessage = `This path should be sanitized ${fullPath}`; + const mockCwd = jest.spyOn(process, `cwd`).mockImplementationOnce(() => cwdMockPath); + const errorMessage = `Path 1 C:\\Users\\username\\storybook-app\\${filePath} Path 2 c:\\Users\\username\\storybook-app\\${filePath}`; expect(cleanPaths(errorMessage, `\\`)).toBe( - `This path should be sanitized $SNIP\\${filePath}` + `Path 1 $SNIP\\${filePath} Path 2 $SNIP\\${filePath}` ); mockCwd.mockRestore(); } diff --git a/code/lib/telemetry/src/sanitize.ts b/code/lib/telemetry/src/sanitize.ts index 4c68ed50db94..77e0c1fbda0e 100644 --- a/code/lib/telemetry/src/sanitize.ts +++ b/code/lib/telemetry/src/sanitize.ts @@ -12,6 +12,11 @@ function regexpEscape(str: string): string { return str.replace(/[-[/{}()*+?.\\^$|]/g, `\\$&`); } +export function removeAnsiEscapeCodes(input = ''): string { + // eslint-disable-next-line no-control-regex + return input.replace(/\u001B\[[0-9;]*m/g, ''); +} + export function cleanPaths(str: string, separator: string = sep): string { if (!str) return str; @@ -19,11 +24,11 @@ export function cleanPaths(str: string, separator: string = sep): string { while (stack.length > 1) { const currentPath = stack.join(separator); - const currentRegex = new RegExp(regexpEscape(currentPath), `g`); + const currentRegex = new RegExp(regexpEscape(currentPath), `gi`); str = str.replace(currentRegex, `$SNIP`); const currentPath2 = stack.join(separator + separator); - const currentRegex2 = new RegExp(regexpEscape(currentPath2), `g`); + const currentRegex2 = new RegExp(regexpEscape(currentPath2), `gi`); str = str.replace(currentRegex2, `$SNIP`); stack.pop(); @@ -34,8 +39,13 @@ export function cleanPaths(str: string, separator: string = sep): string { // Takes an Error and returns a sanitized JSON String export function sanitizeError(error: Error, pathSeparator: string = sep) { try { - // Hack because Node - error = JSON.parse(JSON.stringify(error, Object.getOwnPropertyNames(error))); + error = { + ...JSON.parse(JSON.stringify(error)), + message: removeAnsiEscapeCodes(error.message), + stack: removeAnsiEscapeCodes(error.stack), + cause: error.cause, + name: error.name, + }; // Removes all user paths const errorString = cleanPaths(JSON.stringify(error), pathSeparator); diff --git a/code/lib/telemetry/src/storybook-metadata.test.ts b/code/lib/telemetry/src/storybook-metadata.test.ts index ab64dc26e9a1..83a206a92761 100644 --- a/code/lib/telemetry/src/storybook-metadata.test.ts +++ b/code/lib/telemetry/src/storybook-metadata.test.ts @@ -349,6 +349,33 @@ describe('storybook-metadata', () => { expect(res.refCount).toEqual(2); }); + test('only reports addon options for addon-essentials', async () => { + const res = await computeStorybookMetadata({ + packageJson: packageJsonMock, + mainConfig: { + ...mainJsMock, + addons: [ + { name: '@storybook/addon-essentials', options: { controls: false } }, + { name: 'addon-foo', options: { foo: 'bar' } }, + ], + }, + }); + expect(res.addons).toMatchInlineSnapshot(` + Object { + "@storybook/addon-essentials": Object { + "options": Object { + "controls": false, + }, + "version": "x.x.x", + }, + "addon-foo": Object { + "options": undefined, + "version": "x.x.x", + }, + } + `); + }); + test.each(Object.entries(metaFrameworks))( 'should detect the supported metaframework: %s', async (metaFramework, name) => { diff --git a/code/lib/telemetry/src/storybook-metadata.ts b/code/lib/telemetry/src/storybook-metadata.ts index 01a54d9c9ec0..2c70b566f97d 100644 --- a/code/lib/telemetry/src/storybook-metadata.ts +++ b/code/lib/telemetry/src/storybook-metadata.ts @@ -114,7 +114,9 @@ export const computeStorybookMetadata = async ({ if (typeof addon === 'string') { addonName = sanitizeAddonName(addon); } else { - options = addon.options; + if (addon.name.includes('addon-essentials')) { + options = addon.options; + } addonName = sanitizeAddonName(addon.name); } diff --git a/code/lib/telemetry/src/telemetry.ts b/code/lib/telemetry/src/telemetry.ts index 090e58cf1240..15899abbd323 100644 --- a/code/lib/telemetry/src/telemetry.ts +++ b/code/lib/telemetry/src/telemetry.ts @@ -1,5 +1,6 @@ /// +import * as os from 'os'; import originalFetch from 'node-fetch'; import retry from 'fetch-retry'; import { nanoid } from 'nanoid'; @@ -18,12 +19,33 @@ export const addToGlobalContext = (key: string, value: any) => { globalContext[key] = value; }; +const getOperatingSystem = (): 'Windows' | 'macOS' | 'Linux' | `Other: ${string}` | 'Unknown' => { + try { + const platform = os.platform(); + + if (platform === 'win32') { + return 'Windows'; + } + if (platform === 'darwin') { + return 'macOS'; + } + if (platform === 'linux') { + return 'Linux'; + } + + return `Other: ${platform}`; + } catch (_err) { + return 'Unknown'; + } +}; + // context info sent with all events, provided // by the app. currently: // - cliVersion const globalContext = { inCI: Boolean(process.env.CI), isTTY: process.stdout.isTTY, + platform: getOperatingSystem(), } as Record; const prepareRequest = async (data: TelemetryData, context: Record, options: any) => { diff --git a/code/lib/theming/package.json b/code/lib/theming/package.json index 32867e2d019a..47baae612c16 100644 --- a/code/lib/theming/package.json +++ b/code/lib/theming/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/theming", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/lib/theming/src/base.ts b/code/lib/theming/src/base.ts index 03157875c857..5f60c0e812df 100644 --- a/code/lib/theming/src/base.ts +++ b/code/lib/theming/src/base.ts @@ -48,7 +48,7 @@ export const background = { bar: color.lightest, content: color.lightest, gridCellSize: 10, - hoverable: transparentize(0.93, color.secondary), // hover state for items in a list + hoverable: transparentize(0.9, color.secondary), // hover state for items in a list // Notification, error, and warning backgrounds positive: '#E1FFD4', diff --git a/code/lib/theming/src/convert.ts b/code/lib/theming/src/convert.ts index b4054f03c5a0..05ecaaf1f322 100644 --- a/code/lib/theming/src/convert.ts +++ b/code/lib/theming/src/convert.ts @@ -88,6 +88,7 @@ export const convert = (inherit: ThemeVars = themes[getPreferredColorScheme()]): textColor, textInverseColor, barTextColor, + barHoverColor, barSelectedColor, barBg, buttonBg, @@ -157,6 +158,7 @@ export const convert = (inherit: ThemeVars = themes[getPreferredColorScheme()]): // Toolbar default/active colors barTextColor, + barHoverColor: barHoverColor || colorSecondary, barSelectedColor: barSelectedColor || colorSecondary, barBg, diff --git a/code/lib/theming/src/themes/dark.ts b/code/lib/theming/src/themes/dark.ts index ec9fa9f94f34..49fea0807c25 100644 --- a/code/lib/theming/src/themes/dark.ts +++ b/code/lib/theming/src/themes/dark.ts @@ -25,6 +25,7 @@ const theme: ThemeVars = { // Toolbar default and active colors barTextColor: '#798186', + barHoverColor: color.secondary, barSelectedColor: color.secondary, barBg: '#292C2E', diff --git a/code/lib/theming/src/themes/light.ts b/code/lib/theming/src/themes/light.ts index 9ca253bca7ce..88508b62b8c4 100644 --- a/code/lib/theming/src/themes/light.ts +++ b/code/lib/theming/src/themes/light.ts @@ -25,6 +25,7 @@ const theme: ThemeVars = { // Toolbar default and active colors barTextColor: color.mediumdark, + barHoverColor: color.secondary, barSelectedColor: color.secondary, barBg: color.lightest, diff --git a/code/lib/theming/src/types.ts b/code/lib/theming/src/types.ts index c8f2f9a9fa54..b6f28f8c955f 100644 --- a/code/lib/theming/src/types.ts +++ b/code/lib/theming/src/types.ts @@ -31,6 +31,7 @@ export interface ThemeVarsColors { // Toolbar default and active colors barTextColor: string; + barHoverColor: string; barSelectedColor: string; barBg: string; @@ -87,6 +88,7 @@ export interface StorybookTheme { // Toolbar default/active colors barTextColor: string; + barHoverColor: string; barSelectedColor: string; barBg: string; diff --git a/code/lib/types/package.json b/code/lib/types/package.json index b8b9ea5c6c55..c0a3fda13d64 100644 --- a/code/lib/types/package.json +++ b/code/lib/types/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/types", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Core Storybook TS Types", "keywords": [ "storybook" @@ -47,11 +47,11 @@ "@storybook/channels": "workspace:*", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", - "@types/react": "^16.14.34", "file-system-cache": "2.3.0" }, "devDependencies": { "@storybook/csf": "^0.1.0", + "@types/fs-extra": "^11.0.1", "@types/node": "^16.0.0", "typescript": "~4.9.3" }, diff --git a/code/lib/types/src/modules/addons.ts b/code/lib/types/src/modules/addons.ts index e5ec1bb2c3f3..ef76feb2560c 100644 --- a/code/lib/types/src/modules/addons.ts +++ b/code/lib/types/src/modules/addons.ts @@ -196,7 +196,7 @@ export interface Addon_BaseAnnotations< /** * Custom metadata for a story. - * @see [Parameters](https://storybook.js.org/docs/basics/writing-stories/#parameters) + * @see [Parameters](https://storybook.js.org/docs/react/writing-stories/parameters) */ parameters?: Parameters; diff --git a/code/lib/types/src/modules/api-stories.ts b/code/lib/types/src/modules/api-stories.ts index 3df42dd812ec..b6c150242a2a 100644 --- a/code/lib/types/src/modules/api-stories.ts +++ b/code/lib/types/src/modules/api-stories.ts @@ -183,8 +183,8 @@ export interface API_StatusObject { } export type API_StatusState = Record>; -export type API_StatusUpdate = Record; +export type API_StatusUpdate = Record; export type API_FilterFunction = ( - item: API_PreparedIndexEntry & { status: Record } + item: API_PreparedIndexEntry & { status: Record } ) => boolean; diff --git a/code/lib/types/src/modules/core-common.ts b/code/lib/types/src/modules/core-common.ts index 45d94e585eb3..0f2a9f54c271 100644 --- a/code/lib/types/src/modules/core-common.ts +++ b/code/lib/types/src/modules/core-common.ts @@ -369,7 +369,7 @@ export interface StorybookConfig { /** * Process CSF files for the story index. - * @soonDeprecated use {@link experimental_indexers} instead + * @deprecated use {@link experimental_indexers} instead */ storyIndexers?: PresetValue; diff --git a/code/lib/types/src/modules/indexer.ts b/code/lib/types/src/modules/indexer.ts index ccd1ddaef206..4f0838bba05e 100644 --- a/code/lib/types/src/modules/indexer.ts +++ b/code/lib/types/src/modules/indexer.ts @@ -66,20 +66,20 @@ export type Indexer = BaseIndexer & { * @param options {@link IndexerOptions} for indexing the file. * @returns A promise that resolves to an array of {@link IndexInput} objects. */ - index: (fileName: string, options: IndexerOptions) => Promise; + createIndex: (fileName: string, options: IndexerOptions) => Promise; /** - * @soonDeprecated Use {@link index} instead + * @deprecated Use {@link index} instead */ indexer?: never; }; export type DeprecatedIndexer = BaseIndexer & { indexer: (fileName: string, options: IndexerOptions) => Promise; - index?: never; + createIndex?: never; }; /** - * @soonDeprecated Use {@link Indexer} instead + * @deprecated Use {@link Indexer} instead */ export type StoryIndexer = Indexer | DeprecatedIndexer; diff --git a/code/package.json b/code/package.json index 4f9fe2399e47..c66b87af4d93 100644 --- a/code/package.json +++ b/code/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/root", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "private": true, "description": "Storybook root", "homepage": "https://storybook.js.org/", @@ -80,6 +80,7 @@ ], "resolutions": { "@playwright/test": "1.36.0", + "@testing-library/jest-dom": "^5.11.9", "@typescript-eslint/eslint-plugin": "^5.45.0", "@typescript-eslint/experimental-utils": "^5.45.0", "@typescript-eslint/parser": "^5.45.0", @@ -195,7 +196,7 @@ "@storybook/web-components": "workspace:*", "@storybook/web-components-vite": "workspace:*", "@storybook/web-components-webpack5": "workspace:*", - "@swc/core": "^1.3.23", + "@swc/core": "1.3.82", "@swc/jest": "^0.2.26", "@testing-library/dom": "^7.29.4", "@testing-library/jest-dom": "^5.11.9", @@ -215,7 +216,7 @@ "@vitejs/plugin-react": "^2.1.0", "babel-eslint": "^10.1.0", "babel-loader": "^9.1.2", - "chromatic": "6.11.2", + "chromatic": "7.1.0", "concurrently": "^5.3.0", "cross-env": "^7.0.3", "danger": "^11.2.6", @@ -327,5 +328,6 @@ "Dependency Upgrades" ] ] - } + }, + "deferredNextVersion": "7.5.0-alpha.5" } diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 7b4bbd5576d9..ff11ebc6ac0d 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-create-react-app", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Create React App preset", "keywords": [ "storybook" diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 1f35784d5240..7169a9b7f06a 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-html-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index f368bc6785d6..6a4df6a8d8ab 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-preact-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 04a2d399bee7..57ec0135a2ef 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-react-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading", "keywords": [ "storybook" diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 054090c68f0b..7998e916bdc1 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-server-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json index 2f3abbaca8db..99251c3a8a68 100644 --- a/code/presets/svelte-webpack/package.json +++ b/code/presets/svelte-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-svelte-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/vue-webpack/package.json b/code/presets/vue-webpack/package.json index 7d6d01fee249..b1479512dedd 100644 --- a/code/presets/vue-webpack/package.json +++ b/code/presets/vue-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index 434621c3ddc9..b89f171428eb 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue3-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/web-components-webpack/package.json b/code/presets/web-components-webpack/package.json index 378c65328ac3..170535b14155 100644 --- a/code/presets/web-components-webpack/package.json +++ b/code/presets/web-components-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-web-components-webpack", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit", diff --git a/code/renderers/html/package.json b/code/renderers/html/package.json index 7d169e4cadab..3ea6ca17deae 100644 --- a/code/renderers/html/package.json +++ b/code/renderers/html/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook HTML renderer", "keywords": [ "storybook" diff --git a/code/renderers/preact/package.json b/code/renderers/preact/package.json index 5cf824262425..f49856e1cb95 100644 --- a/code/renderers/preact/package.json +++ b/code/renderers/preact/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook Preact renderer", "keywords": [ "storybook" diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 5ef32e5acb82..75c51405d7e7 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook React renderer", "keywords": [ "storybook" diff --git a/code/renderers/react/src/docs/extractArgTypes.test.ts b/code/renderers/react/src/docs/extractArgTypes.test.ts index 31ea19fd754c..f96a8722e9d9 100644 --- a/code/renderers/react/src/docs/extractArgTypes.test.ts +++ b/code/renderers/react/src/docs/extractArgTypes.test.ts @@ -37,7 +37,7 @@ const transformToModule = (inputCode: string) => { const annotateWithDocgen = (inputPath: string) => { const options = { presets: ['@babel/typescript', '@babel/react'], - plugins: ['babel-plugin-react-docgen', '@babel/plugin-proposal-class-properties'], + plugins: ['babel-plugin-react-docgen', '@babel/plugin-transform-class-properties'], babelrc: false, }; const { code } = transformFileSync(inputPath, options) || {}; diff --git a/code/renderers/react/src/docs/typeScript/handleProp.test.tsx b/code/renderers/react/src/docs/typeScript/handleProp.test.tsx index 37527fd501df..a230f0229b5a 100644 --- a/code/renderers/react/src/docs/typeScript/handleProp.test.tsx +++ b/code/renderers/react/src/docs/typeScript/handleProp.test.tsx @@ -64,7 +64,7 @@ function extractPropDef(component: Component, rawDefaultProp?: any): PropDef { describe('enhanceTypeScriptProp', () => { describe('defaultValue', () => { function createTestComponent( - defaultValue: DocgenPropDefaultValue, + defaultValue: DocgenPropDefaultValue | undefined, typeName = 'anything-is-fine' ): Component { return createComponent({ @@ -295,8 +295,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support strings', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, 'foo'); @@ -305,8 +304,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support array of primitives', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, [1, 2, 3]); @@ -315,8 +313,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support array of short object', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, [{ foo: 'bar' }]); @@ -325,8 +322,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support array of long object', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, [{ foo: 'bar', bar: 'foo', hey: 'ho' }]); @@ -342,8 +338,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support short object', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, { foo: 'bar' }); @@ -352,8 +347,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support long object', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, { foo: 'bar', bar: 'foo', hey: 'ho' }); @@ -369,8 +363,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support anonymous function', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, () => 'hey!'); @@ -379,8 +372,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support named function', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, function hello() { return 'world!'; @@ -391,8 +383,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support named function with params', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component, function add(a: number, b: number) { return a + b; @@ -403,8 +394,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support React element', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const defaultProp = ; // Simulate babel-plugin-add-react-displayname. @@ -417,8 +407,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support React element with props', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); // @ts-expect-error (Converted from ts-ignore) const defaultProp = ; @@ -432,8 +421,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support short HTML element', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef(component,
HTML element
); @@ -442,8 +430,7 @@ describe('enhanceTypeScriptProp', () => { }); it('should support long HTML element', () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null); + const component = createTestComponent(undefined); const { defaultValue } = extractPropDef( component, @@ -461,8 +448,7 @@ describe('enhanceTypeScriptProp', () => { ['element', 'elementType'].forEach((x) => { it(`should support inlined React class component for ${x}`, () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null, x); + const component = createTestComponent(undefined, x); const { defaultValue } = extractPropDef( component, @@ -478,8 +464,7 @@ describe('enhanceTypeScriptProp', () => { }); it(`should support inlined anonymous React functional component for ${x}`, () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null, x); + const component = createTestComponent(undefined, x); const { defaultValue } = extractPropDef(component, () => { return
Inlined FunctionalComponent!
; @@ -490,8 +475,7 @@ describe('enhanceTypeScriptProp', () => { }); it(`should support inlined anonymous React functional component with props for ${x}`, () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null, x); + const component = createTestComponent(undefined, x); const { defaultValue } = extractPropDef(component, ({ foo }: { foo: string }) => { return
{foo}
; @@ -502,8 +486,7 @@ describe('enhanceTypeScriptProp', () => { }); it(`should support inlined named React functional component for ${x}`, () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null, x); + const component = createTestComponent(undefined, x); const { defaultValue } = extractPropDef(component, function InlinedFunctionalComponent() { return
Inlined FunctionalComponent!
; @@ -514,8 +497,7 @@ describe('enhanceTypeScriptProp', () => { }); it(`should support inlined named React functional component with props for ${x}`, () => { - // @ts-expect-error (not strict) - const component = createTestComponent(null, x); + const component = createTestComponent(undefined, x); const { defaultValue } = extractPropDef( component, diff --git a/code/renderers/react/src/public-types.test.tsx b/code/renderers/react/src/public-types.test.tsx index 8dd1a8a9f5f3..1fc3fd15d10c 100644 --- a/code/renderers/react/src/public-types.test.tsx +++ b/code/renderers/react/src/public-types.test.tsx @@ -274,3 +274,29 @@ test('Components without Props can be used, issue #21768', () => { type Expected = ReactStory<{}, {}>; expectTypeOf(Basic).toEqualTypeOf(); }); + +test('Meta is broken when using discriminating types, issue #23629', () => { + type TestButtonProps = { + text: string; + } & ( + | { + id?: string; + onClick?: (e: unknown, id: string | undefined) => void; + } + | { + id: string; + onClick: (e: unknown, id: string) => void; + } + ); + const TestButton: React.FC = ({ text }) => { + return

{text}

; + }; + + expectTypeOf({ + title: 'Components/Button', + component: TestButton, + args: { + text: 'Button', + }, + }).toMatchTypeOf>(); +}); diff --git a/code/renderers/react/src/public-types.ts b/code/renderers/react/src/public-types.ts index 25bba9ac2888..592b82b03ff9 100644 --- a/code/renderers/react/src/public-types.ts +++ b/code/renderers/react/src/public-types.ts @@ -25,7 +25,7 @@ type JSXElement = keyof JSX.IntrinsicElements | JSXElementConstructor; * * @see [Default export](https://storybook.js.org/docs/formats/component-story-format/#default-export) */ -export type Meta = TCmpOrArgs extends ComponentType +export type Meta = [TCmpOrArgs] extends [ComponentType] ? ComponentAnnotations> : ComponentAnnotations; @@ -34,7 +34,7 @@ export type Meta = TCmpOrArgs extends ComponentType * * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports) */ -export type StoryFn = TCmpOrArgs extends ComponentType +export type StoryFn = [TCmpOrArgs] extends [ComponentType] ? AnnotatedStoryFn> : AnnotatedStoryFn; @@ -43,11 +43,13 @@ export type StoryFn = TCmpOrArgs extends ComponentType * * @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports) */ -export type StoryObj = TMetaOrCmpOrArgs extends { - render?: ArgsStoryFn; - component?: infer Component; - args?: infer DefaultArgs; -} +export type StoryObj = [TMetaOrCmpOrArgs] extends [ + { + render?: ArgsStoryFn; + component?: infer Component; + args?: infer DefaultArgs; + } +] ? Simplify< (Component extends ComponentType ? ComponentProps : unknown) & ArgsFromMeta diff --git a/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot b/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot index dde0ac32a22f..560ce954feb2 100644 --- a/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot @@ -23,10 +23,15 @@ Object { }, "title": Object { "control": Object { - "type": "object", + "type": "radio", }, "description": "A title that brings attention to the alert.", "name": "title", + "options": Array [ + "Code Red", + "Code Yellow", + "Code Green", + ], "table": Object { "defaultValue": Object { "detail": undefined, @@ -39,22 +44,13 @@ Object { }, }, "type": Object { - "name": "union", + "name": "enum", "raw": "'Code Red' | 'Code Yellow' | 'Code Green'", "required": false, "value": Array [ - Object { - "name": "other", - "value": "literal", - }, - Object { - "name": "other", - "value": "literal", - }, - Object { - "name": "other", - "value": "literal", - }, + "Code Red", + "Code Yellow", + "Code Green", ], }, }, diff --git a/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/properties.snapshot b/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/properties.snapshot index f6be2f921ecf..1333ed781146 100644 --- a/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/properties.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/properties.snapshot @@ -12,21 +12,12 @@ Object { "name": "title", "required": false, "sbType": Object { - "name": "union", + "name": "enum", "raw": "'Code Red' | 'Code Yellow' | 'Code Green'", "value": Array [ - Object { - "name": "other", - "value": "literal", - }, - Object { - "name": "other", - "value": "literal", - }, - Object { - "name": "other", - "value": "literal", - }, + "Code Red", + "Code Yellow", + "Code Green", ], }, "type": Object { diff --git a/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot b/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot index cfe5c6d41a5a..35afb4cfba6f 100644 --- a/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot @@ -13,7 +13,7 @@ Object { "jsDocTags": undefined, "type": Object { "detail": undefined, - "summary": "signature", + "summary": "{ width: number; height: number }", }, }, "type": Object { diff --git a/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot b/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot index 9a88cea0e370..05ad26d8baee 100644 --- a/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot @@ -22,7 +22,7 @@ Object { }, "type": Object { "detail": undefined, - "summary": "signature", + "summary": "{ width: number; height: number }", }, }, ], diff --git a/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot b/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot index d37d679b5b9d..0f05e4e2bdf5 100644 --- a/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot @@ -13,7 +13,7 @@ Object { "jsDocTags": undefined, "type": Object { "detail": undefined, - "summary": "Array", + "summary": "string[]", }, }, "type": Object { diff --git a/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/properties.snapshot b/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/properties.snapshot index 5d944694e62b..06f92d9ce2e5 100644 --- a/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/properties.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/properties.snapshot @@ -48,7 +48,7 @@ Object { }, "type": Object { "detail": undefined, - "summary": "Array", + "summary": "string[]", }, }, ], diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json index 87a8a327d95d..e1b7a638cecb 100644 --- a/code/renderers/server/package.json +++ b/code/renderers/server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook Server renderer", "keywords": [ "storybook" diff --git a/code/renderers/server/src/preset.ts b/code/renderers/server/src/preset.ts index 23effa83e67f..63cc1aca491a 100644 --- a/code/renderers/server/src/preset.ts +++ b/code/renderers/server/src/preset.ts @@ -14,7 +14,7 @@ export const experimental_indexers: StorybookConfig['experimental_indexers'] = ( ) => [ { test: /(stories|story)\.(json|ya?ml)$/, - index: async (fileName) => { + createIndex: async (fileName) => { const content: FileContent = fileName.endsWith('.json') ? await fs.readJson(fileName, 'utf-8') : yaml.parse((await fs.readFile(fileName, 'utf-8')).toString()); diff --git a/code/renderers/svelte/package.json b/code/renderers/svelte/package.json index f55fa8c12b0e..329926365d73 100644 --- a/code/renderers/svelte/package.json +++ b/code/renderers/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook Svelte renderer", "keywords": [ "storybook" @@ -66,7 +66,7 @@ "devDependencies": { "expect-type": "^0.15.0", "svelte": "^4.0.0", - "svelte-check": "^3.4.3", + "svelte-check": "3.4.6", "typescript": "^5.0.4" }, "peerDependencies": { diff --git a/code/renderers/svelte/src/docs/sourceDecorator.test.ts b/code/renderers/svelte/src/docs/sourceDecorator.test.ts index 86b30788f462..6123b45d8b94 100644 --- a/code/renderers/svelte/src/docs/sourceDecorator.test.ts +++ b/code/renderers/svelte/src/docs/sourceDecorator.test.ts @@ -7,6 +7,9 @@ expect.addSnapshotSerializer({ test: (val: unknown) => typeof val === 'string', }); +const loremIpsum = 'Lorem ipsum dolor sit amet'; +const lotOfProperties = { property1: loremIpsum, property2: loremIpsum, property3: loremIpsum }; + function generateForArgs(args: Args, slotProperty: string | null = null) { return generateSvelteSource({ name: 'Component' }, args, {}, slotProperty); } @@ -35,6 +38,14 @@ describe('generateSvelteSource', () => { test('multiple properties', () => { expect(generateForArgs({ a: 1, b: 2 })).toMatchInlineSnapshot(``); }); + test('lot of properties', () => { + expect(generateForArgs(lotOfProperties)).toMatchInlineSnapshot(` + + `); + }); test('slot property', () => { expect(generateForArgs({ content: 'xyz', myProp: 'abc' }, 'content')).toMatchInlineSnapshot(` @@ -42,7 +53,32 @@ describe('generateSvelteSource', () => { `); }); + test('slot property with lot of properties', () => { + expect(generateForArgs({ content: 'xyz', ...lotOfProperties }, 'content')) + .toMatchInlineSnapshot(` + + xyz + + `); + }); test('component is not set', () => { expect(generateSvelteSource(null, {}, {}, null)).toBeNull(); }); + test('Skip event property', () => { + expect( + generateSvelteSource( + { name: 'Component' }, + { event_click: () => {} }, + { event_click: { action: 'click' } } + ) + ).toMatchInlineSnapshot(``); + }); + test('Property value is a function', () => { + expect( + generateSvelteSource({ name: 'Component' }, { myHandler: () => {} }, {}) + ).toMatchInlineSnapshot(`}/>`); + }); }); diff --git a/code/renderers/svelte/src/docs/sourceDecorator.ts b/code/renderers/svelte/src/docs/sourceDecorator.ts index 9f16caf80162..7b61eea6a7e9 100644 --- a/code/renderers/svelte/src/docs/sourceDecorator.ts +++ b/code/renderers/svelte/src/docs/sourceDecorator.ts @@ -38,8 +38,15 @@ function toSvelteProperty(key: string, value: any, argTypes: ArgTypes): string | return null; } + const argType = argTypes[key]; + // default value ? - if (argTypes[key] && argTypes[key].defaultValue === value) { + if (argType && argType.defaultValue === value) { + return null; + } + + // event should be skipped + if (argType && argType.action) { return null; } @@ -51,6 +58,11 @@ function toSvelteProperty(key: string, value: any, argTypes: ArgTypes): string | return `${key}=${JSON.stringify(value)}`; } + // handle function + if (typeof value === 'function') { + return `${key}={}`; + } + return `${key}={${JSON.stringify(value)}}`; } @@ -98,19 +110,21 @@ export function generateSvelteSource( return null; } - const props = Object.entries(args) + const propsArray = Object.entries(args) .filter(([k]) => k !== slotProperty) .map(([k, v]) => toSvelteProperty(k, v, argTypes)) - .filter((p) => p) - .join(' '); + .filter((p) => p); + const props = propsArray.join(' '); + + const multiline = props.length > 50; const slotValue = slotProperty ? args[slotProperty] : null; + const srcStart = multiline ? `<${name}\n ${propsArray.join('\n ')}` : `<${name} ${props}`; if (slotValue) { - return `<${name} ${props}>\n ${slotValue}\n`; + return `${srcStart}>\n ${slotValue}\n`; } - - return `<${name} ${props}/>`; + return `${srcStart}/>`; } /** diff --git a/code/renderers/vue/package.json b/code/renderers/vue/package.json index c7162ed280e3..8f0adba6c632 100644 --- a/code/renderers/vue/package.json +++ b/code/renderers/vue/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook Vue renderer", "keywords": [ "storybook" diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json index 9673350e4c2f..db1f0e632e47 100644 --- a/code/renderers/vue3/package.json +++ b/code/renderers/vue3/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook Vue 3 renderer", "keywords": [ "storybook" diff --git a/code/renderers/vue3/src/docs/sourceDecorator.ts b/code/renderers/vue3/src/docs/sourceDecorator.ts index 5c1e9e51b0e5..f0e254f082ae 100644 --- a/code/renderers/vue3/src/docs/sourceDecorator.ts +++ b/code/renderers/vue3/src/docs/sourceDecorator.ts @@ -247,7 +247,6 @@ export function generateTemplateSource( .map((child) => child.content) .join('') : ''; - console.log(' vnode ', vnode, ' childSources ', childSources, ' attributes ', attributes); const name = typeof type === 'string' ? type diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index 448afa368059..c248bd3a41c4 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook web-components renderer", "keywords": [ "lit", diff --git a/code/ui/.storybook/main.ts b/code/ui/.storybook/main.ts index 5f979898a5c2..347f21929530 100644 --- a/code/ui/.storybook/main.ts +++ b/code/ui/.storybook/main.ts @@ -51,6 +51,7 @@ const config: StorybookConfig = { '@storybook/addon-interactions', '@storybook/addon-storysource', '@storybook/addon-designs', + '@chromaui/addon-visual-tests', ], framework: { name: '@storybook/react-vite', diff --git a/code/ui/blocks/package.json b/code/ui/blocks/package.json index 436d00f85a22..060dc07626e3 100644 --- a/code/ui/blocks/package.json +++ b/code/ui/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/blocks", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Storybook Doc Blocks", "keywords": [ "storybook" diff --git a/code/ui/blocks/src/components/Story.tsx b/code/ui/blocks/src/components/Story.tsx index 2718197456f1..089df560b2d8 100644 --- a/code/ui/blocks/src/components/Story.tsx +++ b/code/ui/blocks/src/components/Story.tsx @@ -64,9 +64,6 @@ const InlineStory: FunctionComponent = (props) => { }; }, [autoplay, renderStoryToElement, story]); - // We do this so React doesn't complain when we replace the span in a secondary render - const htmlContents = ``; - if (error) { return (
@@ -83,13 +80,7 @@ const InlineStory: FunctionComponent = (props) => {
         )} { min-height: ${height}; transform: translateZ(0); overflow: auto }`}
       ) : null}
       {showLoader && }
-      
+
); }; diff --git a/code/ui/blocks/src/components/TableOfContents.tsx b/code/ui/blocks/src/components/TableOfContents.tsx index 892f1e137f20..479f589411e4 100644 --- a/code/ui/blocks/src/components/TableOfContents.tsx +++ b/code/ui/blocks/src/components/TableOfContents.tsx @@ -1,7 +1,7 @@ import React, { useEffect } from 'react'; import type { FC, ReactElement } from 'react'; import { styled } from '@storybook/theming'; -import tocbot from 'tocbot'; +import * as tocbot from 'tocbot'; export interface TocParameters { /** CSS selector for the container to search for headings. */ @@ -40,9 +40,12 @@ const Wrapper = styled.div(({ theme }) => ({ const Content = styled.div(({ theme }) => ({ position: 'fixed', + bottom: 0, top: 0, width: '10rem', paddingTop: '4rem', + paddingBottom: '2rem', + overflowY: 'auto', fontFamily: theme.typography.fonts.base, fontSize: theme.typography.size.s2, diff --git a/code/ui/components/package.json b/code/ui/components/package.json index 9b170beb3b75..0e9cc0dc42a4 100644 --- a/code/ui/components/package.json +++ b/code/ui/components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/components", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Core Storybook Components", "keywords": [ "storybook" @@ -71,12 +71,13 @@ "util-deprecate": "^1.0.2" }, "devDependencies": { + "@chromaui/addon-visual-tests": "^0.0.77", "@popperjs/core": "^2.6.0", "@storybook/icons": "^1.1.6", "@types/react-syntax-highlighter": "11.0.5", "@types/util-deprecate": "^1.0.0", "css": "^3.0.0", - "overlayscrollbars": "^2.2.0", + "overlayscrollbars": "2.2.1", "overlayscrollbars-react": "^0.5.0", "polished": "^4.2.2", "prettier": "^2.8.0", diff --git a/code/ui/components/src/components/Button/Button.tsx b/code/ui/components/src/components/Button/Button.tsx index f39414bf4345..72598c214ec7 100644 --- a/code/ui/components/src/components/Button/Button.tsx +++ b/code/ui/components/src/components/Button/Button.tsx @@ -167,7 +167,7 @@ const ButtonWrapper = styled.button<{ boxShadow: `${color} 0 0 0 1px inset`, color, - 'svg path': { + 'svg path:not([fill])': { fill: color, }, @@ -205,7 +205,7 @@ const ButtonWrapper = styled.button<{ boxShadow: `${color} 0 0 0 1px inset`, color, - 'svg path': { + 'svg path:not([fill])': { fill: color, }, diff --git a/code/ui/components/src/components/Zoom/ZoomIFrame.tsx b/code/ui/components/src/components/Zoom/ZoomIFrame.tsx index 3101364bd861..509ef5ce4d85 100644 --- a/code/ui/components/src/components/Zoom/ZoomIFrame.tsx +++ b/code/ui/components/src/components/Zoom/ZoomIFrame.tsx @@ -1,5 +1,5 @@ import type { RefObject, ReactElement } from 'react'; -import { Component } from 'react'; +import React, { Component } from 'react'; export type IZoomIFrameProps = { scale: number; @@ -57,6 +57,6 @@ export class ZoomIFrame extends Component { render() { const { children } = this.props; - return children; + return <>{children}; } } diff --git a/code/ui/components/src/components/bar/button.tsx b/code/ui/components/src/components/bar/button.tsx index a65e6fa7bc4e..7cee1e72fad7 100644 --- a/code/ui/components/src/components/bar/button.tsx +++ b/code/ui/components/src/components/bar/button.tsx @@ -116,7 +116,7 @@ export const IconButton = styled(ButtonOrLink, { shouldForwardProp: isPropValid active ? { backgroundColor: theme.background.hoverable, - color: theme.color.secondary, + color: theme.barSelectedColor, } : {}, ({ disabled, theme }) => @@ -128,7 +128,7 @@ export const IconButton = styled(ButtonOrLink, { shouldForwardProp: isPropValid : { '&:hover, &:focus-visible': { background: transparentize(0.88, theme.color.secondary), - color: theme.color.secondary, + color: theme.barHoverColor, }, '&:focus-visible': { outline: auto, // Ensures links have the same focus style diff --git a/code/ui/components/src/components/tooltip/ListItem.stories.tsx b/code/ui/components/src/components/tooltip/ListItem.stories.tsx index 38344eb63356..8ffeaf322516 100644 --- a/code/ui/components/src/components/tooltip/ListItem.stories.tsx +++ b/code/ui/components/src/components/tooltip/ListItem.stories.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { Fragment } from 'react'; import ListItem from './ListItem'; import { Icons } from '../icon/icon'; @@ -51,6 +51,93 @@ export const ActiveIcon = { right: , }, }; +export const ActiveIconLeft = { + args: { + title: 'Active icon', + active: true, + left: , + }, +}; +export const ActiveIconLeftColored = { + args: { + title: 'Active icon', + active: true, + left: ( + + + + + + + + + + + + + + + + + + + + + + + + + + + ), + }, +}; export const WPositions = { args: { diff --git a/code/ui/components/src/components/tooltip/ListItem.tsx b/code/ui/components/src/components/tooltip/ListItem.tsx index 96c5fa3f58a8..38b6488faa21 100644 --- a/code/ui/components/src/components/tooltip/ListItem.tsx +++ b/code/ui/components/src/components/tooltip/ListItem.tsx @@ -107,7 +107,7 @@ const Left = styled.span( '& svg': { opacity: 1, }, - '& svg path': { + '& svg path:not([fill])': { fill: theme.color.secondary, }, } diff --git a/code/ui/components/src/components/tooltip/WithTooltip.tsx b/code/ui/components/src/components/tooltip/WithTooltip.tsx index 058d7140c2a1..bece4bc64278 100644 --- a/code/ui/components/src/components/tooltip/WithTooltip.tsx +++ b/code/ui/components/src/components/tooltip/WithTooltip.tsx @@ -1,4 +1,4 @@ -import type { FC, ReactNode } from 'react'; +import type { ComponentProps, FC, ReactNode } from 'react'; import React, { useCallback, useState, useEffect } from 'react'; import ReactDOM from 'react-dom'; import { styled } from '@storybook/theming'; @@ -28,6 +28,7 @@ interface WithHideFn { export interface WithTooltipPureProps extends Omit, + Omit, 'trigger'>, PopperOptions { svg?: boolean; withArrows?: boolean; @@ -129,7 +130,7 @@ const WithTooltipPure: FC = ({ return ( <> - + {children} {isVisible && ReactDOM.createPortal(tooltipComponent, document.body)} diff --git a/code/ui/components/src/components/typography/link/link.tsx b/code/ui/components/src/components/typography/link/link.tsx index abd33bad4f48..193fca15e976 100644 --- a/code/ui/components/src/components/typography/link/link.tsx +++ b/code/ui/components/src/components/typography/link/link.tsx @@ -73,13 +73,13 @@ const A = styled.a( '&:hover, &:focus': { cursor: 'pointer', color: darken(0.07, theme.color.secondary), - 'svg path': { + 'svg path:not([fill])': { fill: darken(0.07, theme.color.secondary), }, }, '&:active': { color: darken(0.1, theme.color.secondary), - 'svg path': { + 'svg path:not([fill])': { fill: darken(0.1, theme.color.secondary), }, }, @@ -110,20 +110,20 @@ const A = styled.a( return colors ? { color: colors[0], - 'svg path': { + 'svg path:not([fill])': { fill: colors[0], }, '&:hover': { color: colors[1], - 'svg path': { + 'svg path:not([fill])': { fill: colors[1], }, }, '&:active': { color: colors[2], - 'svg path': { + 'svg path:not([fill])': { fill: colors[2], }, }, @@ -145,20 +145,20 @@ const A = styled.a( inverse ? { color: theme.color.lightest, - 'svg path': { + ':not([fill])': { fill: theme.color.lightest, }, '&:hover': { color: theme.color.lighter, - 'svg path': { + 'svg path:not([fill])': { fill: theme.color.lighter, }, }, '&:active': { color: theme.color.light, - 'svg path': { + 'svg path:not([fill])': { fill: theme.color.light, }, }, diff --git a/code/ui/manager/package.json b/code/ui/manager/package.json index d47573e31a8e..9a13dc094783 100644 --- a/code/ui/manager/package.json +++ b/code/ui/manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager", - "version": "7.4.0", + "version": "7.5.0-alpha.4", "description": "Core Storybook UI", "keywords": [ "storybook" @@ -65,6 +65,7 @@ "@storybook/types": "workspace:*", "@testing-library/react": "^11.2.2", "@types/semver": "^7.3.4", + "browser-dtector": "^3.4.0", "copy-to-clipboard": "^3.3.1", "downshift": "^6.0.15", "fs-extra": "^11.1.0", diff --git a/code/ui/manager/src/components/sidebar/Refs.tsx b/code/ui/manager/src/components/sidebar/Refs.tsx index a7696ee696ca..ebbbbe6d92ff 100644 --- a/code/ui/manager/src/components/sidebar/Refs.tsx +++ b/code/ui/manager/src/components/sidebar/Refs.tsx @@ -1,5 +1,5 @@ import type { FC, MutableRefObject } from 'react'; -import React, { useMemo, useState, useRef, useCallback } from 'react'; +import React, { useEffect, useMemo, useState, useRef, useCallback } from 'react'; import type { State } from '@storybook/manager-api'; import { useStorybookApi, useStorybookState } from '@storybook/manager-api'; import { styled } from '@storybook/theming'; @@ -131,6 +131,12 @@ export const Ref: FC = React. const state = getStateType(isLoading, isAuthRequired, isError, isEmpty); const [isExpanded, setExpanded] = useState(expanded); + useEffect(() => { + if (index && selectedStoryId && index[selectedStoryId]) { + setExpanded(true); + } + }, [setExpanded, index, selectedStoryId]); + const handleClick = useCallback(() => setExpanded((value) => !value), [setExpanded]); const setHighlightedItemId = useCallback( diff --git a/code/ui/manager/src/components/sidebar/Search.tsx b/code/ui/manager/src/components/sidebar/Search.tsx index af2c858efdf5..d9d03217db38 100644 --- a/code/ui/manager/src/components/sidebar/Search.tsx +++ b/code/ui/manager/src/components/sidebar/Search.tsx @@ -348,8 +348,9 @@ export const Search = React.memo<{ } } + const inputId = 'storybook-explorer-searchfield'; const inputProps = getInputProps({ - id: 'storybook-explorer-searchfield', + id: inputId, ref: inputRef, required: true, type: 'search', @@ -361,9 +362,13 @@ export const Search = React.memo<{ onBlur: () => setPlaceholder('Find components'), }); + const labelProps = getLabelProps({ + htmlFor: inputId, + }); + return ( <> - Search for components + Search for components ; } - const [i, iconColor] = item.status ? statusMapping[item.status] : []; + const [i] = item.status ? statusMapping[item.status] : []; return ( {node} - {item.status ? ( - - ) : null} + {item.status ? i : null} ); }); diff --git a/code/ui/manager/src/components/sidebar/Tree.tsx b/code/ui/manager/src/components/sidebar/Tree.tsx index 8d5ac50484ea..e329310e6b88 100644 --- a/code/ui/manager/src/components/sidebar/Tree.tsx +++ b/code/ui/manager/src/components/sidebar/Tree.tsx @@ -37,44 +37,47 @@ import { } from '../../utils/tree'; import { statusMapping, getHighestStatus, getGroupStatus } from '../../utils/status'; -export const Action = styled.button(({ theme }) => ({ - display: 'inline-flex', - alignItems: 'center', - justifyContent: 'center', - width: 20, - height: 20, - margin: 0, - marginLeft: 'auto', - padding: 0, - outline: 0, - lineHeight: 'normal', - background: 'none', - border: `1px solid transparent`, - borderRadius: '100%', - cursor: 'pointer', - transition: 'all 150ms ease-out', - color: - theme.base === 'light' - ? transparentize(0.3, theme.color.defaultText) - : transparentize(0.6, theme.color.defaultText), - - '&:hover': { - color: theme.color.secondary, - }, - '&:focus': { - color: theme.color.secondary, - borderColor: theme.color.secondary, +export const Action = styled.button<{ height?: number; width?: number }>( + ({ theme, height, width }) => ({ + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + width: width || 20, + height: height || 20, + boxSizing: 'border-box', + margin: 0, + marginLeft: 'auto', + padding: 0, + outline: 0, + lineHeight: 'normal', + background: 'none', + border: `1px solid transparent`, + borderRadius: '100%', + cursor: 'pointer', + transition: 'all 150ms ease-out', + color: + theme.base === 'light' + ? transparentize(0.3, theme.color.defaultText) + : transparentize(0.6, theme.color.defaultText), + + '&:hover': { + color: theme.color.secondary, + }, + '&:focus': { + color: theme.color.secondary, + borderColor: theme.color.secondary, - '&:not(:focus-visible)': { - borderColor: 'transparent', + '&:not(:focus-visible)': { + borderColor: 'transparent', + }, }, - }, - svg: { - width: 10, - height: 10, - }, -})); + svg: { + width: 10, + height: 10, + }, + }) +); const CollapseButton = styled.button(({ theme }) => ({ // Reset button @@ -129,7 +132,7 @@ export const LeafNodeStyleWrapper = styled.div(({ theme }) => ({ background: 'transparent', '&:hover, &:focus': { outline: 'none', - background: theme.background.hoverable, + background: transparentize(0.93, theme.color.secondary), }, '&[data-selected="true"]': { color: theme.color.lightest, @@ -207,7 +210,7 @@ const Node = React.memo(function Node({ const LeafNode = item.type === 'docs' ? DocumentNode : StoryNode; const statusValue = getHighestStatus(Object.values(status || {}).map((s) => s.status)); - const [icon, iconColor, textColor] = statusMapping[statusValue]; + const [icon, textColor] = statusMapping[statusValue]; return ( (function Node({ {icon ? ( ( ({ id: k, title: v.title, description: v.description, - right: ( - - ), + right: statusMapping[v.status][0], }))} /> )} closeOnOutsideClick > - - + + {icon} ) : null} @@ -530,7 +529,7 @@ export const Tree = React.memo<{ } const isDisplayed = !item.parent || ancestry[itemId].every((a: string) => expanded[a]); - const color = groupStatus[itemId] ? statusMapping[groupStatus[itemId]][2] : null; + const color = groupStatus[itemId] ? statusMapping[groupStatus[itemId]][1] : null; return ( (({ theme, isExpanded }) => ({ display: 'inline-block', width: 0, height: 0, - marginTop: 6, marginLeft: 8, marginRight: 5, color: transparentize(0.4, theme.textMutedColor), @@ -41,8 +40,6 @@ const TypeIcon = styled(Icons)<{ docsMode?: boolean }>( { width: 12, height: 12, - padding: 1, - marginTop: 3, marginRight: 5, flex: '0 0 auto', }, @@ -75,7 +72,7 @@ const BranchNode = styled.button<{ fontSize: `${theme.typography.size.s2 - 1}px`, background: 'transparent', '&:hover, &:focus': { - background: theme.background.hoverable, + background: transparentize(0.93, theme.color.secondary), outline: 'none', }, })); @@ -132,7 +129,27 @@ export const RootNode = styled.div(({ theme }) => ({ color: theme.textMutedColor, })); -export const GroupNode: FunctionComponent< +const Wrapper = styled.div({ + display: 'flex', + alignItems: 'center', +}); + +const InvisibleText = styled.p({ + margin: 0, + width: 0, +}); + +// Make the content have a min-height equal to one line of text +export const IconsWrapper: FC<{ children?: React.ReactNode }> = ({ children }) => { + return ( + +   + {children} + + ); +}; + +export const GroupNode: FC< ComponentProps & { isExpanded?: boolean; isExpandable?: boolean } > = React.memo(function GroupNode({ children, @@ -142,43 +159,53 @@ export const GroupNode: FunctionComponent< }) { return ( - {isExpandable ? : null} - + + {isExpandable ? : null} + + {children} ); }); -export const ComponentNode: FunctionComponent> = React.memo( +export const ComponentNode: FC> = React.memo( function ComponentNode({ theme, children, isExpanded, isExpandable, isSelected, ...props }) { return ( - {isExpandable && } - + + {isExpandable && } + + {children} ); } ); -export const DocumentNode: FunctionComponent< - ComponentProps & { docsMode: boolean } -> = React.memo(function DocumentNode({ theme, children, docsMode, ...props }) { - return ( - - - {children} - - ); -}); - -export const StoryNode: FunctionComponent> = React.memo( - function StoryNode({ theme, children, ...props }) { +export const DocumentNode: FC & { docsMode: boolean }> = React.memo( + function DocumentNode({ theme, children, docsMode, ...props }) { return ( - + + + {children} ); } ); + +export const StoryNode: FC> = React.memo(function StoryNode({ + theme, + children, + ...props +}) { + return ( + + + + + {children} + + ); +}); diff --git a/code/ui/manager/src/runtime.ts b/code/ui/manager/src/runtime.ts index dd29b9a45223..efa348ac47e0 100644 --- a/code/ui/manager/src/runtime.ts +++ b/code/ui/manager/src/runtime.ts @@ -1,5 +1,3 @@ -/* eslint-disable local-rules/no-uncategorized-errors */ - import { global } from '@storybook/global'; import type { Channel } from '@storybook/channels'; @@ -8,12 +6,12 @@ import { addons } from '@storybook/manager-api'; import type { Addon_Types, Addon_Config } from '@storybook/types'; import { createBrowserChannel } from '@storybook/channels'; import { CHANNEL_CREATED, TELEMETRY_ERROR } from '@storybook/core-events'; -import { UncaughtManagerError } from '@storybook/core-events/manager-errors'; import Provider from './provider'; import { renderStorybookUI } from './index'; import { values } from './globals/runtime'; import { Keys } from './globals/types'; +import { prepareForTelemetry, shouldSkipError } from './utils/prepareForTelemetry'; const { FEATURES, CONFIG_TYPE } = global; @@ -64,35 +62,11 @@ Object.keys(Keys).forEach((key: keyof typeof Keys) => { global[Keys[key]] = values[key]; }); -function preprocessError( - originalError: Error & { - fromStorybook?: boolean; - category?: string; - target?: any; - currentTarget?: any; - srcElement?: any; - } -) { - let error = originalError; - - if (!originalError.fromStorybook) { - error = new UncaughtManagerError(originalError); - } - - // DOM manipulation errors and other similar errors are not serializable as they contain - // circular references to the window object. If that's the case, we make a simplified copy - if (error.target === window || error.currentTarget === window || error.srcElement === window) { - error = new Error(originalError.message); - error.name = originalError.name || error.name; - error.category = originalError.category; - } - - return error; -} - global.sendTelemetryError = (error) => { - const channel = global.__STORYBOOK_ADDONS_CHANNEL__; - channel.emit(TELEMETRY_ERROR, preprocessError(error)); + if (!shouldSkipError(error)) { + const channel = global.__STORYBOOK_ADDONS_CHANNEL__; + channel.emit(TELEMETRY_ERROR, prepareForTelemetry(error)); + } }; // handle all uncaught errors at the root of the application and log to telemetry diff --git a/code/ui/manager/src/utils/prepareForTelemetry.ts b/code/ui/manager/src/utils/prepareForTelemetry.ts new file mode 100644 index 000000000000..3b28b8c42506 --- /dev/null +++ b/code/ui/manager/src/utils/prepareForTelemetry.ts @@ -0,0 +1,60 @@ +/* eslint-disable local-rules/no-uncategorized-errors */ +import { UncaughtManagerError } from '@storybook/core-events/manager-errors'; +import { global } from '@storybook/global'; +import type { BrowserInfo } from 'browser-dtector'; +import BrowserDetector from 'browser-dtector'; + +let browserInfo: BrowserInfo | undefined; + +function getBrowserInfo() { + if (!browserInfo) { + browserInfo = new BrowserDetector(global.navigator?.userAgent).getBrowserInfo(); + } + + return browserInfo; +} + +// If you're adding errors to filter, please explain why they should be filtered. +const errorMessages = [ + // It's a harmless issue with react-resize-detector that supposedly will be gone when we move to React 18. + // https://github.com/maslianok/react-resize-detector/issues/45#issuecomment-1500958024 + 'ResizeObserver loop completed with undelivered notifications.', + 'ResizeObserver loop limit exceeded', + // Safari does not seem to provide any helpful info on window.onerror + // https://bugs.webkit.org/show_bug.cgi?id=132945 + 'Script error.', +]; + +export const shouldSkipError = (error: Error) => errorMessages.includes(error?.message); + +export function prepareForTelemetry( + originalError: Error & { + fromStorybook?: boolean; + category?: string; + target?: any; + currentTarget?: any; + srcElement?: any; + browserInfo?: BrowserInfo; + } +) { + let error = originalError; + + // DOM manipulation errors and other similar errors are not serializable as they contain + // circular references to the window object. If that's the case, we make a simplified copy + if ( + originalError.target === global || + originalError.currentTarget === global || + originalError.srcElement === global + ) { + error = new Error(originalError.message); + error.name = originalError.name || error.name; + } + + if (!originalError.fromStorybook) { + error = new UncaughtManagerError({ error }); + } + + error.browserInfo = getBrowserInfo(); + + return error; +} diff --git a/code/ui/manager/src/utils/status.tsx b/code/ui/manager/src/utils/status.tsx index 259949d3c1ea..824b0ab21042 100644 --- a/code/ui/manager/src/utils/status.tsx +++ b/code/ui/manager/src/utils/status.tsx @@ -1,19 +1,33 @@ -import type { Icons } from '@storybook/components'; -import type { ComponentProps } from 'react'; +import React from 'react'; +import { Icons } from '@storybook/components'; +import type { ReactElement } from 'react'; import type { API_HashEntry, API_StatusState, API_StatusValue } from '@storybook/types'; + +import { styled } from '@storybook/theming'; // eslint-disable-next-line import/no-cycle import { getDescendantIds } from './tree'; +const SmallIcons = styled(Icons)({ + // specificity hack + '&&&': { + width: 6, + height: 6, + }, +}); + +const LoadingIcons = styled(SmallIcons)(({ theme: { animation, color, base } }) => ({ + // specificity hack + animation: `${animation.glow} 1.5s ease-in-out infinite`, + color: base === 'light' ? color.mediumdark : color.darker, +})); + export const statusPriority: API_StatusValue[] = ['unknown', 'pending', 'success', 'warn', 'error']; -export const statusMapping: Record< - API_StatusValue, - [ComponentProps['icon'] | null, string | null, string | null] -> = { - unknown: [null, null, null], - pending: ['watch', 'currentColor', 'currentColor'], - success: ['circle', 'green', 'currentColor'], - warn: ['circle', 'orange', '#A15C20'], - error: ['circle', 'red', 'brown'], +export const statusMapping: Record = { + unknown: [null, null], + pending: [, 'currentColor'], + success: [, 'currentColor'], + warn: [, '#A15C20'], + error: [, 'brown'], }; export const getHighestStatus = (statuses: API_StatusValue[]): API_StatusValue => { diff --git a/code/yarn.lock b/code/yarn.lock index debf9c20cd8d..3ec46c6397a8 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -5,6 +5,18 @@ __metadata: version: 6 cacheKey: 8c0 +"@0no-co/graphql.web@npm:^1.0.1": + version: 1.0.4 + resolution: "@0no-co/graphql.web@npm:1.0.4" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + checksum: bf63cb5b017063363c9a9e06dc17532abc1c2da402c7ebcbc7b5ab2a0601ec93b02de93af9e50d9daffb3b747eddcf0b1e5418a46d1182c5b8087b7d7a1768ad + languageName: node + linkType: hard + "@aashutoshrathi/word-wrap@npm:^1.2.3": version: 1.2.6 resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" @@ -13,9 +25,9 @@ __metadata: linkType: hard "@adobe/css-tools@npm:^4.0.1": - version: 4.2.0 - resolution: "@adobe/css-tools@npm:4.2.0" - checksum: b8dbfd9c54df73a398e9b20c922abe26c67732e16afc50668402af0e3d101409e0c944baf69bf814343eb8639014637b96f209426088b06943cea288c1ef1486 + version: 4.3.1 + resolution: "@adobe/css-tools@npm:4.3.1" + checksum: 05672719b544cc0c21ae3ed0eb6349bf458e9d09457578eeeb07cf0f696469ac6417e9c9be1b129e5d6a18098a061c1db55b2275591760ef30a79822436fcbfa languageName: node linkType: hard @@ -29,13 +41,13 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1601.5": - version: 0.1601.5 - resolution: "@angular-devkit/architect@npm:0.1601.5" +"@angular-devkit/architect@npm:0.1602.4": + version: 0.1602.4 + resolution: "@angular-devkit/architect@npm:0.1602.4" dependencies: - "@angular-devkit/core": 16.1.5 + "@angular-devkit/core": 16.2.4 rxjs: 7.8.1 - checksum: 87126d226c8d94f052df4838345a3ca49e6bfe6c03093f388cc7c91113e3213f1910062cb71a64f5ebc4a698a710b9c60f41a943663a9761670824420c16528b + checksum: 001004daa67a6c31e20bb1c1711f1b122d744d4003749399e4f72e18e6c5006dc77162bdde7dc8614b0509edec5f25cfff4dec9df6c111e5fa7036c21b207232 languageName: node linkType: hard @@ -50,39 +62,39 @@ __metadata: linkType: hard "@angular-devkit/build-angular@npm:^16.0.0-rc.4": - version: 16.1.5 - resolution: "@angular-devkit/build-angular@npm:16.1.5" + version: 16.2.4 + resolution: "@angular-devkit/build-angular@npm:16.2.4" dependencies: "@ampproject/remapping": 2.2.1 - "@angular-devkit/architect": 0.1601.5 - "@angular-devkit/build-webpack": 0.1601.5 - "@angular-devkit/core": 16.1.5 - "@babel/core": 7.22.5 - "@babel/generator": 7.22.7 + "@angular-devkit/architect": 0.1602.4 + "@angular-devkit/build-webpack": 0.1602.4 + "@angular-devkit/core": 16.2.4 + "@babel/core": 7.22.9 + "@babel/generator": 7.22.9 "@babel/helper-annotate-as-pure": 7.22.5 - "@babel/helper-split-export-declaration": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 "@babel/plugin-proposal-async-generator-functions": 7.20.7 "@babel/plugin-transform-async-to-generator": 7.22.5 - "@babel/plugin-transform-runtime": 7.22.5 - "@babel/preset-env": 7.22.5 - "@babel/runtime": 7.22.5 + "@babel/plugin-transform-runtime": 7.22.9 + "@babel/preset-env": 7.22.9 + "@babel/runtime": 7.22.6 "@babel/template": 7.22.5 "@discoveryjs/json-ext": 0.5.7 - "@ngtools/webpack": 16.1.5 + "@ngtools/webpack": 16.2.4 "@vitejs/plugin-basic-ssl": 1.0.1 ansi-colors: 4.1.3 autoprefixer: 10.4.14 - babel-loader: 9.1.2 + babel-loader: 9.1.3 babel-plugin-istanbul: 6.1.1 browserslist: ^4.21.5 - cacache: 17.1.3 chokidar: 3.5.3 copy-webpack-plugin: 11.0.0 - critters: 0.0.19 + critters: 0.0.20 css-loader: 6.8.1 - esbuild: 0.17.19 - esbuild-wasm: 0.17.19 - fast-glob: 3.2.12 + esbuild: 0.18.17 + esbuild-wasm: 0.18.17 + fast-glob: 3.3.1 + guess-parser: 0.4.22 https-proxy-agent: 5.0.1 inquirer: 8.2.4 jsonc-parser: 3.2.0 @@ -91,31 +103,31 @@ __metadata: less-loader: 11.1.0 license-webpack-plugin: 4.0.2 loader-utils: 3.2.1 - magic-string: 0.30.0 + magic-string: 0.30.1 mini-css-extract-plugin: 2.7.6 mrmime: 1.0.1 open: 8.4.2 ora: 5.4.1 parse5-html-rewriting-stream: 7.0.0 picomatch: 2.3.1 - piscina: 3.2.0 - postcss: 8.4.24 - postcss-loader: 7.3.2 + piscina: 4.0.0 + postcss: 8.4.27 + postcss-loader: 7.3.3 resolve-url-loader: 5.0.0 rxjs: 7.8.1 - sass: 1.63.2 - sass-loader: 13.3.1 - semver: 7.5.3 + sass: 1.64.1 + sass-loader: 13.3.2 + semver: 7.5.4 source-map-loader: 4.0.1 source-map-support: 0.5.21 - terser: 5.17.7 + terser: 5.19.2 text-table: 0.2.0 tree-kill: 1.2.2 - tslib: 2.5.3 - vite: 4.3.9 - webpack: 5.86.0 + tslib: 2.6.1 + vite: 4.4.7 + webpack: 5.88.2 webpack-dev-middleware: 6.1.1 - webpack-dev-server: 4.15.0 + webpack-dev-server: 4.15.1 webpack-merge: 5.9.0 webpack-subresource-integrity: 5.1.0 peerDependencies: @@ -152,20 +164,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 7534edacaf1165dfdda45acb2cb3f66567b3324b2eae97208ca229d8919290e67a25a3ab1c33c15cb64d4f046dd1755753f309cd7623a76ae86c400e29e4f6f5 + checksum: d0f3ea4ae60b0bb5f90da51fe68ac7be804e583cfec797a61c1b166e7621683e0a2f7b2e05a9ba00a93f31a9d0398f3bbe8f07fa0ff7a8a6c566ce16fce2f09f languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1601.5": - version: 0.1601.5 - resolution: "@angular-devkit/build-webpack@npm:0.1601.5" +"@angular-devkit/build-webpack@npm:0.1602.4": + version: 0.1602.4 + resolution: "@angular-devkit/build-webpack@npm:0.1602.4" dependencies: - "@angular-devkit/architect": 0.1601.5 + "@angular-devkit/architect": 0.1602.4 rxjs: 7.8.1 peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^4.0.0 - checksum: df86cca9745e731891e96bbee7d37e7b6d570bf3bbd25c78c545429074073e30ac732dc23d8cf50bf1b3986b4fe9f807381dfac367d8e676efd1c12e57bb9b0e + checksum: af362fddde0e8475fbec2798a7e7fb4a646f3aa29e0575245388db5bfd3d923fd0186116710e677d09d0e93a0fbc130022076a93013df8d321a3295fc9b1c2ef languageName: node linkType: hard @@ -187,13 +199,14 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:16.1.5, @angular-devkit/core@npm:^16.0.0-rc.4": - version: 16.1.5 - resolution: "@angular-devkit/core@npm:16.1.5" +"@angular-devkit/core@npm:16.2.4, @angular-devkit/core@npm:^16.0.0-rc.4": + version: 16.2.4 + resolution: "@angular-devkit/core@npm:16.2.4" dependencies: ajv: 8.12.0 ajv-formats: 2.1.1 jsonc-parser: 3.2.0 + picomatch: 2.3.1 rxjs: 7.8.1 source-map: 0.7.4 peerDependencies: @@ -201,42 +214,42 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 8fd5de020ab6c84a9ad71ac2778cc78d31424de2af45310dd8e0c6d5d2294c42ffdf2b8acdcffe30a01368e8004b1a82d7b8f7a3169a66f8403fa7a801d078ba + checksum: 9feffa0fce61f9609868eb557163c8963fcd642f26e8c87285a5d250825c0076c1b859683737edf808e9e85e6afbb0e5c8a933fc12b6634cf8e35b7005bc1342 languageName: node linkType: hard -"@angular-devkit/schematics@npm:16.1.5": - version: 16.1.5 - resolution: "@angular-devkit/schematics@npm:16.1.5" +"@angular-devkit/schematics@npm:16.2.4": + version: 16.2.4 + resolution: "@angular-devkit/schematics@npm:16.2.4" dependencies: - "@angular-devkit/core": 16.1.5 + "@angular-devkit/core": 16.2.4 jsonc-parser: 3.2.0 - magic-string: 0.30.0 + magic-string: 0.30.1 ora: 5.4.1 rxjs: 7.8.1 - checksum: c69a98490054d771a0bf8c6e38157daea3086c673ce492a47483762d404967e6090a0be1151a90a489a2fac1091b386ae0cd61dcb62bcb836be16562ac5d0767 + checksum: 153cd8cc7219a4002413c443688c70912237c98c745e62626273720271f131ec1ae8dd464fb73946e86dedf4cbb4a3651ef0547747fa5ee627ef27c197d675d7 languageName: node linkType: hard "@angular/animations@npm:^16.0.0-rc.4": - version: 16.1.6 - resolution: "@angular/animations@npm:16.1.6" + version: 16.2.7 + resolution: "@angular/animations@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/core": 16.1.6 - checksum: 3ce9a6d8062f7d88715733763c1fa6257676d5c818cbc9368e2c945d2168586a10c21ac49f971c513217756f8ca993e5a9f31b094ab4356ee2f859ff97905c16 + "@angular/core": 16.2.7 + checksum: 3d3d603a7f9a0d8932b0783ba120623bf5ea94842ff0ed3225262834664ba2ddb3c723b944f3a06862f90c063b73e41b06d8fe0837e29ee1bed1f1eef8773d54 languageName: node linkType: hard "@angular/cli@npm:^16.0.0-rc.4": - version: 16.1.5 - resolution: "@angular/cli@npm:16.1.5" + version: 16.2.4 + resolution: "@angular/cli@npm:16.2.4" dependencies: - "@angular-devkit/architect": 0.1601.5 - "@angular-devkit/core": 16.1.5 - "@angular-devkit/schematics": 16.1.5 - "@schematics/angular": 16.1.5 + "@angular-devkit/architect": 0.1602.4 + "@angular-devkit/core": 16.2.4 + "@angular-devkit/schematics": 16.2.4 + "@schematics/angular": 16.2.4 "@yarnpkg/lockfile": 1.1.0 ansi-colors: 4.1.3 ini: 4.1.1 @@ -248,30 +261,30 @@ __metadata: ora: 5.4.1 pacote: 15.2.0 resolve: 1.22.2 - semver: 7.5.3 + semver: 7.5.4 symbol-observable: 4.0.0 yargs: 17.7.2 bin: ng: bin/ng.js - checksum: bbb7ce5d8f5f7750b296e132752c09b66eec82dd102def46881d4d3b5c9f8f217a387eed77abba4f52e0a3f09c2d3675e91aa22787ce289a441db173e909ec55 + checksum: 2d919ed87cc03c89163988ab854d121477511782f0c9e115141d257e1af0f2ed8aa7709b04baee56b68e0e9bb75fe24b877214c9e1062f4a7654f3ddc26ae3b4 languageName: node linkType: hard "@angular/common@npm:^16.0.0-rc.4": - version: 16.1.6 - resolution: "@angular/common@npm:16.1.6" + version: 16.2.7 + resolution: "@angular/common@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/core": 16.1.6 + "@angular/core": 16.2.7 rxjs: ^6.5.3 || ^7.4.0 - checksum: e324b71166cea1df20d4333e8b2949504339a0704f0c6231b5a51a921077283be1a82f9bc96b79530229653a23498540921017822a9242ebde6154d16684e9fa + checksum: 6182db26e2c6f8a4cda58ea5573d0884856e2be9d20903e2f495d31e615edc59fc1db135bbe1d1b1b4c534727ee8e307d3f6fc76e190dc90bf19d7cbdde7def5 languageName: node linkType: hard "@angular/compiler-cli@npm:^16.0.0-rc.4": - version: 16.1.6 - resolution: "@angular/compiler-cli@npm:16.1.6" + version: 16.2.7 + resolution: "@angular/compiler-cli@npm:16.2.7" dependencies: "@babel/core": 7.22.5 "@jridgewell/sourcemap-codec": ^1.4.14 @@ -282,83 +295,83 @@ __metadata: tslib: ^2.3.0 yargs: ^17.2.1 peerDependencies: - "@angular/compiler": 16.1.6 + "@angular/compiler": 16.2.7 typescript: ">=4.9.3 <5.2" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 800068a4b6b1378f02f6942277053929659a5331bb54bf2c55e4dce62aa00bcaa62e2748207244f58bc0e7118962d3a7810ab505d93c907c7c5d80ce7ffd5fe0 + checksum: e3a5460e385ad8b3eeeeca79ca7d334990bb30928f9714fa60a0c8748b49cd04e25a14ae58beadd491ddae20787020cc846c40ce328f5c6625c23523113c33af languageName: node linkType: hard "@angular/compiler@npm:^16.0.0-rc.4": - version: 16.1.6 - resolution: "@angular/compiler@npm:16.1.6" + version: 16.2.7 + resolution: "@angular/compiler@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/core": 16.1.6 + "@angular/core": 16.2.7 peerDependenciesMeta: "@angular/core": optional: true - checksum: ce0661c9d797b94f174db9dc37df6bc627b7dcd9c52042b46d7b3d2edfa4189999f8033778084d2fb8bff14bb2ebef71957ef8097735e9681a1af9c42be9482d + checksum: edbd286f289548f8e1539c82f02b4452326552cef39dc7f2ee2df14d382a8f754f4370e7d99a8526728a8a6180d098e23b066d2f96e7c58e20f6aab33ceef8e4 languageName: node linkType: hard "@angular/core@npm:^16.0.0-rc.4": - version: 16.1.6 - resolution: "@angular/core@npm:16.1.6" + version: 16.2.7 + resolution: "@angular/core@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.13.0 - checksum: d786d039318c6794cfffb3dbfac17b34807d50c867d04d7d32b5e1ed4052f267bcf1a61bb16b18d89fd768438e44a89e6e9f445775ae042a55faa6f4b3dcbbd3 + checksum: 5d06adabe8985cd1e91aea9cf95002b5b0784cbdf12ac5ea75c9ce4cc238e0d0640cf81f8b57b08781d02129c1dfaf544419d40e9ee728593c40e42d22c52612 languageName: node linkType: hard "@angular/forms@npm:^16.0.0-rc.4": - version: 16.1.6 - resolution: "@angular/forms@npm:16.1.6" + version: 16.2.7 + resolution: "@angular/forms@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/common": 16.1.6 - "@angular/core": 16.1.6 - "@angular/platform-browser": 16.1.6 + "@angular/common": 16.2.7 + "@angular/core": 16.2.7 + "@angular/platform-browser": 16.2.7 rxjs: ^6.5.3 || ^7.4.0 - checksum: acdd98ef7a865b75e98a1c91494e5825530412529965eb177fa651cdcbd2cc17e7393ec1ca093ccf444bbc8ba212f8ee084e9a8a0321c82f9cbeee83a6bd8158 + checksum: d31bf4fbf366c6cbfaf9418dd5588694567ca6282b2efe47c6e2ed7073c8e739865dd0d8c43b3b7344b7e968f958a35bc4f740b793c6e30f7dced12f25d09f7d languageName: node linkType: hard "@angular/platform-browser-dynamic@npm:^16.0.0-rc.4": - version: 16.1.6 - resolution: "@angular/platform-browser-dynamic@npm:16.1.6" + version: 16.2.7 + resolution: "@angular/platform-browser-dynamic@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/common": 16.1.6 - "@angular/compiler": 16.1.6 - "@angular/core": 16.1.6 - "@angular/platform-browser": 16.1.6 - checksum: 5d5f16c21800dd4b5fa072af2fb772202ad21f990de91c1eabe7fda860af98fa5bfb92010a367124ca5509b37ca5590704a05b85cc5a12729b02f22284102c97 + "@angular/common": 16.2.7 + "@angular/compiler": 16.2.7 + "@angular/core": 16.2.7 + "@angular/platform-browser": 16.2.7 + checksum: a8be89497ba2823abd46352df2c36ac93ed53540d36ca1953d57458742c27d76afe9a5d93ddd7b79f10154b4d107f2581d5408bc166d6bc208ccfa395b2047ae languageName: node linkType: hard "@angular/platform-browser@npm:^16.0.0-rc.4": - version: 16.1.6 - resolution: "@angular/platform-browser@npm:16.1.6" + version: 16.2.7 + resolution: "@angular/platform-browser@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/animations": 16.1.6 - "@angular/common": 16.1.6 - "@angular/core": 16.1.6 + "@angular/animations": 16.2.7 + "@angular/common": 16.2.7 + "@angular/core": 16.2.7 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 704366e519d3f75d69ef2d483acb28909e09a103823f8c2c47daa4555d5cfc917f8c15d5842c381fb6b731f7450d402c780a556b65235d26ac2a63e56f6dc2e0 + checksum: cfb0aeb969845893353d02ed5be52e13019aac91e2689d81c98064a41a7155e91714fbd031a7fc1e4ebd9b9b0db6813dfbec93529df0f4856df25bb0d9695a8e languageName: node linkType: hard @@ -391,19 +404,20 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.8.3": - version: 7.22.5 - resolution: "@babel/code-frame@npm:7.22.5" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.8.3": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" dependencies: - "@babel/highlight": ^7.22.5 - checksum: 0b6c5eaf9e58be7140ac790b7bdf8148e8a24e26502dcaa50f157259c083b0584285748fd90d342ae311a5bb1eaad7835aec625296d2b46853464f9bd8991e28 + "@babel/highlight": ^7.22.13 + chalk: ^2.4.2 + checksum: f4cc8ae1000265677daf4845083b72f88d00d311adb1a93c94eb4b07bf0ed6828a81ae4ac43ee7d476775000b93a28a9cddec18fbdc5796212d8dcccd5de72bd languageName: node linkType: hard -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/compat-data@npm:7.22.9" - checksum: 1334264b041f8ad4e33036326970c9c26754eb5c04b3af6c223fe6da988cbb8a8542b5526f49ec1ac488210d2f710484a0e4bcd30256294ae3f261d0141febad +"@babel/compat-data@npm:^7.22.20, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/compat-data@npm:7.22.20" + checksum: 73c0f7cf4a1181a0a58bbee6a8b69dc4ba1beec1e764686a586db067e8160044d3a28da0a3542f044f3f31fa662ab22fd061dfe3fc9520dc1cee2252f460db30 languageName: node linkType: hard @@ -430,6 +444,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:7.22.9": + version: 7.22.9 + resolution: "@babel/core@npm:7.22.9" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.22.5 + "@babel/generator": ^7.22.9 + "@babel/helper-compilation-targets": ^7.22.9 + "@babel/helper-module-transforms": ^7.22.9 + "@babel/helpers": ^7.22.6 + "@babel/parser": ^7.22.7 + "@babel/template": ^7.22.5 + "@babel/traverse": ^7.22.8 + "@babel/types": ^7.22.5 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.2 + semver: ^6.3.1 + checksum: 4dffc8844bd8ab5c292e795f3eb0e636246177d28b75ec99f3349a29fe08a9f3e089fe68b857ed160f3312c035c8fb73fdc83b0c781f4629164e548a7d62a8c7 + languageName: node + linkType: hard + "@babel/core@npm:7.8.7": version: 7.8.7 resolution: "@babel/core@npm:7.8.7" @@ -453,50 +490,50 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.19.6, @babel/core@npm:^7.20.12, @babel/core@npm:^7.22.0, @babel/core@npm:^7.22.1, @babel/core@npm:^7.22.9, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5": - version: 7.22.9 - resolution: "@babel/core@npm:7.22.9" +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.9, @babel/core@npm:^7.19.6, @babel/core@npm:^7.20.12, @babel/core@npm:^7.22.0, @babel/core@npm:^7.22.1, @babel/core@npm:^7.22.9, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5": + version: 7.23.0 + resolution: "@babel/core@npm:7.23.0" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.5 - "@babel/generator": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.9 - "@babel/helper-module-transforms": ^7.22.9 - "@babel/helpers": ^7.22.6 - "@babel/parser": ^7.22.7 - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.8 - "@babel/types": ^7.22.5 - convert-source-map: ^1.7.0 + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-module-transforms": ^7.23.0 + "@babel/helpers": ^7.23.0 + "@babel/parser": ^7.23.0 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.0 + "@babel/types": ^7.23.0 + convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 - json5: ^2.2.2 + json5: ^2.2.3 semver: ^6.3.1 - checksum: 4dffc8844bd8ab5c292e795f3eb0e636246177d28b75ec99f3349a29fe08a9f3e089fe68b857ed160f3312c035c8fb73fdc83b0c781f4629164e548a7d62a8c7 + checksum: ba3604b28de28cdb07d7829f67127b03ad2e826c4e28a0560a037c8bbe16b8dc8cdb8baf344e916ad3c28c63aab88c1a1a38f5e3df6047ab79c910b41bb3a4e8 languageName: node linkType: hard -"@babel/generator@npm:7.22.7": - version: 7.22.7 - resolution: "@babel/generator@npm:7.22.7" +"@babel/generator@npm:7.22.9": + version: 7.22.9 + resolution: "@babel/generator@npm:7.22.9" dependencies: "@babel/types": ^7.22.5 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 7eb106916d782d397d0d4370bb4b23229229481218693a55f3fc0b756d4e9dc39cee41872f1735decb0b34be8dbb98c4488d5f7abbf6e40826d5dcac045b1f12 + checksum: 6ef82c7f6dc8f749c0eb3a04fe35acab032a9221d82984e67cbbada449ca857dd981e08c129f9cf5d2f342ba00efcc683a99e46a470f233b0948edf197e35d26 languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.22.5, @babel/generator@npm:^7.22.7, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.7.2, @babel/generator@npm:^7.8.7": - version: 7.22.9 - resolution: "@babel/generator@npm:7.22.9" +"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.22.5, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.7.2, @babel/generator@npm:^7.8.7": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" dependencies: - "@babel/types": ^7.22.5 + "@babel/types": ^7.23.0 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 6ef82c7f6dc8f749c0eb3a04fe35acab032a9221d82984e67cbbada449ca857dd981e08c129f9cf5d2f342ba00efcc683a99e46a470f233b0948edf197e35d26 + checksum: b7d8727c574119b5ef06e5d5d0d8d939527d51537db4b08273caebb18f3f2b1d4517b874776085e161fd47d28f26b22c08e7f270b64f43b2afd4a60c5936d6cd languageName: node linkType: hard @@ -510,37 +547,35 @@ __metadata: linkType: hard "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.5" + version: 7.22.15 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" dependencies: - "@babel/types": ^7.22.5 - checksum: 73a61a56364849770d5569264ba0a5f06035387cafd219d1ae26077f80a1dfb75f240e6abcd991c655641ad8fe066b964261942b4086ba2efc946c807c9d1698 + "@babel/types": ^7.22.15 + checksum: 2535e3824ca6337f65786bbac98e562f71699f25532cecd196f027d7698b4967a96953d64e36567956658ad1a05ccbdc62d1ba79ee751c79f4f1d2d3ecc2e01c languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-compilation-targets@npm:7.22.9" +"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9": + version: 7.22.15 + resolution: "@babel/helper-compilation-targets@npm:7.22.15" dependencies: "@babel/compat-data": ^7.22.9 - "@babel/helper-validator-option": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 browserslist: ^4.21.9 lru-cache: ^5.1.1 semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 543b9a45800c1db2f91cc53462ed1799834a1259e498d3d91f45816ae79d19719ef957fa00b0f015d8b768eac09fd1f4f5f42f868c5a10f4389e3883a3f050f1 + checksum: 45b9286861296e890f674a3abb199efea14a962a27d9b8adeb44970a9fd5c54e73a9e342e8414d2851cf4f98d5994537352fbce7b05ade32e9849bbd327f9ff1 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.5, @babel/helper-create-class-features-plugin@npm:^7.22.6, @babel/helper-create-class-features-plugin@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-create-class-features-plugin@npm:7.22.9" +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 "@babel/helper-environment-visitor": ^7.22.5 "@babel/helper-function-name": ^7.22.5 - "@babel/helper-member-expression-to-functions": ^7.22.5 + "@babel/helper-member-expression-to-functions": ^7.22.15 "@babel/helper-optimise-call-expression": ^7.22.5 "@babel/helper-replace-supers": ^7.22.9 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 @@ -548,20 +583,20 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: f383152992996b0b936e555aaef35264852908720216c298f677f4b53ba3c4325b700c6a62ff08a8e1377d76ed6538e1bd5232557266eae777cc06b7eb3dd4ad + checksum: 2ae5759fe8845fda99b34f2ba6cd0794fc860213d14c93a87aa9180960252bce621157a79c373b7fbb423b25a55fb0e20eae0d5f8e4ad5ef22dc70e7c2af3805 languageName: node linkType: hard "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.9 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.9" + version: 7.22.15 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 regexpu-core: ^5.3.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 056c9913299ba399194d9aef5f4281a81806f66979c3c9c6da19b2e29bc92abad6d6d6be0cd4b3ed5945abbdf2d4c45362ee26a012f75f16de7d26859dfde11d + checksum: 8eba4c1b7b94a83e7a82df5c3e504584ff0ba6ab8710a67ecc2c434a7fb841a29c2f5c94d2de51f25446119a1df538fa90b37bd570db22ddd5e7147fe98277c6 languageName: node linkType: hard @@ -580,20 +615,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-environment-visitor@npm:7.22.5" - checksum: c9377464c1839741a0a77bbad56de94c896f4313eb034c988fc2ab01293e7c4027244c93b4256606c5f4e34c68cf599a7d31a548d537577c7da836bbca40551b +"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-function-name@npm:7.22.5" +"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" dependencies: - "@babel/template": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: 3ce2e87967fe54aa463d279150ddda0dae3b5bc3f8c2773b90670b553b61e8fe62da7edcd7b1e1891c5b25af4924a6700dad2e9d8249b910a5bf7caa2eaf4c13 + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428 languageName: node linkType: hard @@ -606,36 +641,36 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-member-expression-to-functions@npm:7.22.5" +"@babel/helper-member-expression-to-functions@npm:^7.22.15": + version: 7.23.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" dependencies: - "@babel/types": ^7.22.5 - checksum: c04a71976b2508c6f1fa46562439b74970cea37958e450bcd59363b9c62ac49fb8e3cef544b08264b1d710b3f36214486cb7e1102e4f1ee8e1c2878b5eebcc75 + "@babel/types": ^7.23.0 + checksum: b810daddf093ffd0802f1429052349ed9ea08ef7d0c56da34ffbcdecbdafac86f95bdea2fe30e0e0e629febc7dd41b56cb5eacc10d1a44336d37b755dac31fa4 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.5, @babel/helper-module-imports@npm:^7.8.3": - version: 7.22.5 - resolution: "@babel/helper-module-imports@npm:7.22.5" +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5, @babel/helper-module-imports@npm:^7.8.3": + version: 7.22.15 + resolution: "@babel/helper-module-imports@npm:7.22.15" dependencies: - "@babel/types": ^7.22.5 - checksum: 04f8c0586c485c33017c63e0fc5fc16bd33b883cef3c88e4b3a8bf7bc807b3f9a7bcb9372fbcc01c0a539a5d1cdb477e7bdec77e250669edab00f796683b6b07 + "@babel/types": ^7.22.15 + checksum: 4e0d7fc36d02c1b8c8b3006dfbfeedf7a367d3334a04934255de5128115ea0bafdeb3e5736a2559917f0653e4e437400d54542da0468e08d3cbc86d3bbfa8f30 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-module-transforms@npm:7.22.9" +"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9, @babel/helper-module-transforms@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-module-transforms@npm:7.23.0" dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.22.15 "@babel/helper-simple-access": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: 1844dc2c9049552d13d40385cb196704a754feab60ef8c370a5e1c431a4f64b0ddd7bb1dddaa5c98288cafd5c08cd4d8e6d5aba9a11e1133b8b999ab7c9defd1 + checksum: 15a52e401bd17fe44ba9be51cca693a3e182dc93264dc28ede732081c43211741df81ce8eb15e82e81c8ad51beb8893301ecc31d5c77add0f7be78dff6815318 languageName: node linkType: hard @@ -648,36 +683,36 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.22.5 resolution: "@babel/helper-plugin-utils@npm:7.22.5" checksum: d2c4bfe2fa91058bcdee4f4e57a3f4933aed7af843acfd169cd6179fab8d13c1d636474ecabb2af107dc77462c7e893199aa26632bac1c6d7e025a17cbb9d20d languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.5": - version: 7.22.9 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.9" +"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.5, @babel/helper-remap-async-to-generator@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-wrap-function": ^7.22.9 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-wrap-function": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: e753f19726846df26a13a304632aff2bc6e437201f27eecc7ba12db04b9175062da307e72512cf4761e659ec82cb71016352acd83fbe5e527f4b881ce1e633e8 + checksum: aa93aa74250b636d477e8d863fbe59d4071f8c2654841b7ac608909e480c1cf3ff7d7af5a4038568829ad09d810bb681668cbe497d9c89ba5c352793dc9edf1e languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-replace-supers@npm:7.22.9" +"@babel/helper-replace-supers@npm:^7.22.20, @babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-member-expression-to-functions": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-member-expression-to-functions": ^7.22.15 "@babel/helper-optimise-call-expression": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: 9ef42e0d1f81d3377c96449c82666d54daea86db9f352915d2aff7540008cd65f23574bc97a74308b6203f7a8c6bf886d1cc1fa24917337d3d12ea93cb2a53a8 + checksum: 6b0858811ad46873817c90c805015d63300e003c5a85c147a17d9845fa2558a02047c3cc1f07767af59014b2dd0fa75b503e5bc36e917f360e9b67bb6f1e79f4 languageName: node linkType: hard @@ -699,16 +734,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:7.22.5": - version: 7.22.5 - resolution: "@babel/helper-split-export-declaration@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: a1e463086f97778584c44129c5c37282d033bf97867b300ff42e64279df18d41fe0e56ebe6a1b27f907afa66ad2a313558db8d2e83e73384c5b22ac726c9c52a - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.22.6": +"@babel/helper-split-export-declaration@npm:7.22.6, @babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" dependencies: @@ -724,83 +750,83 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-identifier@npm:7.22.5" - checksum: 2ff1d3833154d17ccf773b8a71fdc0cd0e7356aa8033179d0e3133787dfb33d97796cbff8b92a97c56268205337dfc720227aeddc677c1bc08ae1b67a95252d7 +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-option@npm:7.22.5" - checksum: 23e310bf1b90d085b1ae250f31d423fb6cc004da882f0d3409266e5e4c7fd41ed0a172283a6a9a16083c5f2e11f987b32c815c80c60d9a948e23dd6dcf2e0437 +"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-validator-option@npm:7.22.15" + checksum: e9661bf80ba18e2dd978217b350fb07298e57ac417f4f1ab9fa011505e20e4857f2c3b4b538473516a9dc03af5ce3a831e5ed973311c28326f4c330b6be981c2 languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-wrap-function@npm:7.22.9" +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-wrap-function@npm:7.22.20" dependencies: "@babel/helper-function-name": ^7.22.5 - "@babel/template": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: 233c10fe3b38efbf8fcf9bcda8b45b998e963d352beb1966012f4b0be8c221776546a999190c77f0a43524b35c0271691453baf71fe2772fcf7f7938d3621b0d + "@babel/template": ^7.22.15 + "@babel/types": ^7.22.19 + checksum: 97b5f42ff4d305318ff2f99a5f59d3e97feff478333b2d893c4f85456d3c66372070f71d7bf9141f598c8cf2741c49a15918193633c427a88d170d98eb8c46eb languageName: node linkType: hard -"@babel/helpers@npm:^7.22.5, @babel/helpers@npm:^7.22.6, @babel/helpers@npm:^7.8.4": - version: 7.22.6 - resolution: "@babel/helpers@npm:7.22.6" +"@babel/helpers@npm:^7.22.5, @babel/helpers@npm:^7.22.6, @babel/helpers@npm:^7.23.0, @babel/helpers@npm:^7.8.4": + version: 7.23.1 + resolution: "@babel/helpers@npm:7.23.1" dependencies: - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.6 - "@babel/types": ^7.22.5 - checksum: 8c03c19802d0fcc78d00d1eaa9ddab28f97f0c78a5d570762800e86f08c6f41750ad61e20cdede977a56173edf85e7175f1fd804eb6ef817280f064d3a3ca514 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.0 + "@babel/types": ^7.23.0 + checksum: ae5a34bb60a0d8bbf9dc4273d90cd5b9499c048f11e2f0df1b033ba3ef3876b96a411374817a20bb24e69619853a04f9a4e7d01b3d1cef5e0c054b9bce9e3128 languageName: node linkType: hard -"@babel/highlight@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/highlight@npm:7.22.5" +"@babel/highlight@npm:^7.22.13": + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" dependencies: - "@babel/helper-validator-identifier": ^7.22.5 - chalk: ^2.0.0 + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 js-tokens: ^4.0.0 - checksum: e8cc07b5de76a9bf779982096ccbbe5a867c36d3786b26151eb570d9344a68af8aa065ed97d431e0d18ba55fe792c7c4301e0d62afff7a52ee0d20678443be54 + checksum: f3c3a193afad23434297d88e81d1d6c0c2cf02423de2139ada7ce0a7fc62d8559abf4cc996533c1a9beca7fc990010eb8d544097f75e818ac113bf39ed810aa2 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.11.5, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.8.6, @babel/parser@npm:^7.8.7, @babel/parser@npm:^7.9.6": - version: 7.22.7 - resolution: "@babel/parser@npm:7.22.7" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.11.5, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.8.6, @babel/parser@npm:^7.8.7, @babel/parser@npm:^7.9.6": + version: 7.23.0 + resolution: "@babel/parser@npm:7.23.0" bin: parser: ./bin/babel-parser.js - checksum: d2bdf212644c39de58f1216540ec5aca4a05ffbec07c904eaaef8575dd9546b55345b91dcc0d306be4adbb717401ce321027bac7e2f7babfd66794c96243bb79 + checksum: ab4ea9360ed4ba3c728c5a9bf33035103ebde20a7e943c4ae1d42becb02a313d731d12a93c795c5a19777031e4022e64b92a52262eda902522a1a18649826283 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.5" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.15, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.15" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: 573bd9b1984d74e3663cb7f5f317646223020107681e8dcffe68b041bd620ebbb35c0cc05f4ee20f2da502d02a9633e2b477596e71f4f7802f72c02e948f38af + checksum: fb2288ac168e6670a77f73b92e835f7a579468435e81c9261729e9ba9c601ff22622bacd3e71eb190b135016a6fbab5d824501c7b91733dd379022a75163806c languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.5" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.15, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.15" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.22.5 + "@babel/plugin-transform-optional-chaining": ^7.22.15 peerDependencies: "@babel/core": ^7.13.0 - checksum: 1e38dcd28d2dc5012f96550a3fa1330d71fc923607ceccc91e83c0b7dd3eaeb4d8c632946909c389964acb3e35c888f81653e2d24f7cc02a83fe39a64ca59e89 + checksum: 46fb46af40446918d64530f544ea0104e274ccd8a16b8a8f6fa2e51a198af6ac2b620aaf8875f3427671f09717949a584c79fe20f521245214f50b8de56cd116 languageName: node linkType: hard @@ -818,7 +844,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.16.5, @babel/plugin-proposal-class-properties@npm:^7.18.6": +"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.16.5": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" dependencies: @@ -831,29 +857,17 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.13.5": - version: 7.22.7 - resolution: "@babel/plugin-proposal-decorators@npm:7.22.7" + version: 7.23.0 + resolution: "@babel/plugin-proposal-decorators@npm:7.23.0" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.6 + "@babel/helper-create-class-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/plugin-syntax-decorators": ^7.22.5 + "@babel/plugin-syntax-decorators": ^7.22.10 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 80a0db66b04fb09afb57abcc5dbde89659f076b4579656e4a0670510d9de7c68aa17fff7479f42078d42b00ada546228a55694a9bd6a050bc57997d1f7feb008 - languageName: node - linkType: hard - -"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9" - dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b90346bd3628ebd44138d0628a5aba1e6b11748893fb48e87008cac30f3bc7cd3161362e49433156737350318174164436357a66fbbfdbe952606b460bd8a0e4 + checksum: 983e7113f9ca3b2ae632869f71accec48cb652d68840697c3977071d44879657ca6b4427ed02e76e448e385d0feca9bd3d40edfaf1530c6c6c25fe8b97d46689 languageName: node linkType: hard @@ -869,33 +883,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-numeric-separator@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a83a65c6ec0d2293d830e9db61406d246f22d8ea03583d68460cb1b6330c6699320acce1b45f66ba3c357830720e49267e3d99f95088be457c66e6450fbfe3fa - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" - dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.20.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b9818749bb49d8095df64c45db682448d04743d96722984cbfd375733b2585c26d807f84b4fdb28474f2d614be6a6ffe3d96ffb121840e9e5345b2ccc0438bd8 - languageName: node - linkType: hard - "@babel/plugin-proposal-optional-chaining@npm:^7.13.12": version: 7.21.0 resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" @@ -1000,14 +987,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-decorators@npm:7.22.5" +"@babel/plugin-syntax-decorators@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-syntax-decorators@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a24ad01f89523575b93f3bdef48a16e80d2e0a3e0fc90803c0397c58c6c7abf92379e941719f7f469757d6778d5ac60dc488d4a8b406bd6bbf3c636da477e534 + checksum: cf606ef13ed98b3adf560ede27a873c0ab37e884c762a6f15493c881f5a78b67f24dcdd5c70e8cd8f39dbe4b23475cb98619729812f29feb2dcc241130195e7c languageName: node linkType: hard @@ -1221,17 +1208,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.22.5, @babel/plugin-transform-async-generator-functions@npm:^7.22.7": - version: 7.22.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.7" +"@babel/plugin-transform-async-generator-functions@npm:^7.22.15, @babel/plugin-transform-async-generator-functions@npm:^7.22.7": + version: 7.22.15 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.15" dependencies: "@babel/helper-environment-visitor": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.9 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b9712f47de65d8409625de5cfa4bda6984f9e7065f6170c34b3d11974879276ffa61675c8118de5de7746f5de378c5dfc21efc706664c6f0c652fb58949b53f0 + checksum: e6fea97d765c57d1bf592a2bc15b1dd0ee6247b06d2fed5c468cc9a4f4ba790b407a061f6c42cc68cd3dc18481415c6d2ffe5abc7afb23993a79a9147a232195 languageName: node linkType: hard @@ -1259,14 +1246,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.22.5, @babel/plugin-transform-block-scoping@npm:^7.8.3": - version: 7.22.5 - resolution: "@babel/plugin-transform-block-scoping@npm:7.22.5" +"@babel/plugin-transform-block-scoping@npm:^7.22.15, @babel/plugin-transform-block-scoping@npm:^7.22.5, @babel/plugin-transform-block-scoping@npm:^7.8.3": + version: 7.23.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.0" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 68f663d349345b522e1dece9641ee304d8f7db1d4b11998f47ebc5d678d281f76a143fb8603a1c12596962d7a63ffe044cd205a4910c8d74906eae17a605f96f + checksum: f5d0822a4e2bb3a0b5172f01f8c107999b880f0e538a9c1bae3c7720e85d8d117a67167f5e8eba909e0ec3db67be3b30e7f5c83211dd4be5c7096222071571be languageName: node linkType: hard @@ -1282,35 +1269,35 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-class-static-block@npm:7.22.5" +"@babel/plugin-transform-class-static-block@npm:^7.22.11, @babel/plugin-transform-class-static-block@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-class-static-block@npm:7.22.11" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.22.11 "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: 23814d00b2966e8dab7a60934622853698b2cb861a8667c006e000d8e5a50aba4d221c52852552562e7f38e32ad5c7778125ef602c2d2f1c4f9d8f790a9f27e9 + checksum: 74c06f315dbeb101784682f89d6e40a46b243132b63f430ac9ee5781d3fedff57fc6bf7390aa2b19d44a9d7e49a1e70e572bdde1907480881204ef33163b9630 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.22.5, @babel/plugin-transform-classes@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/plugin-transform-classes@npm:7.22.6" +"@babel/plugin-transform-classes@npm:^7.22.15, @babel/plugin-transform-classes@npm:^7.22.6": + version: 7.22.15 + resolution: "@babel/plugin-transform-classes@npm:7.22.15" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-compilation-targets": ^7.22.15 "@babel/helper-environment-visitor": ^7.22.5 "@babel/helper-function-name": ^7.22.5 "@babel/helper-optimise-call-expression": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.9 "@babel/helper-split-export-declaration": ^7.22.6 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 915f1c0d3a0446a3ebfb099c4a5e714896f773322432b91572e6739d7af82e9743ae2874eb596ef1d26ed94472385eb814e1f33b033fc708155576d566e1f5ff + checksum: c9342bcf41e0253d83d9f73c4f9d2c9f885c0412f58ebfe462d57579c8247b949cbb023f15383d18c89fe5d12b537633e2ca4ba906ce47238615bc679beafb55 languageName: node linkType: hard @@ -1326,14 +1313,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-destructuring@npm:7.22.5" +"@babel/plugin-transform-destructuring@npm:^7.22.15, @babel/plugin-transform-destructuring@npm:^7.22.5": + version: 7.23.0 + resolution: "@babel/plugin-transform-destructuring@npm:7.23.0" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bffd0069f44165e101368f34ab34d4bb810ef3dc16a5bf5e55e633a60b0c3aca948dccc15d04e6d6996a2a467f4a52d7224a82efc4be175836cc6e3a3702efa5 + checksum: 038505eabdde2e1bb3bb904e50292b263d61d35e18660f751e7753b5723e2a5a5903a493290d772c8598da98c2c904b7cf45552ad1c11636fcb78f60754abd53 languageName: node linkType: hard @@ -1360,15 +1347,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.5" +"@babel/plugin-transform-dynamic-import@npm:^7.22.11, @babel/plugin-transform-dynamic-import@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.11" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 82fb6fa0b6f7c7760ac21ebcb856a01579c9e64a325d5bb8841591b58b2d92024169f10f4ca2b34b45376999b352974138c94fc1d5cc330e00beeeb1bda51425 + checksum: cf0dd2d3da42ae18ccfa54bef7c80bf26b3bcc48751fc38dd41ad47bc14cc76ca8ec692f39f8b1ef54b3f48eff8db79e6397e4653033bb3a64e433f3c3a43edf languageName: node linkType: hard @@ -1384,15 +1371,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.5" +"@babel/plugin-transform-export-namespace-from@npm:^7.22.11, @babel/plugin-transform-export-namespace-from@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.11" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d5d301dde2d6e7f9e4db12ac70e19153f0e8d17406ad733a8f7d01de77d123588fe90c7f5b8cc086420594ec1e7d20abc5e08323f9ad9704a19c6c87ca03eb59 + checksum: 2b65ddf9ab4cfa8ffc72983c689b99d9ce0fe74846c2e518a1955f703e1fe073d0865810959164800613c3235a29cf9cae3567a46bf9cb53a2384469d3913e85 languageName: node linkType: hard @@ -1408,14 +1395,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-for-of@npm:7.22.5" +"@babel/plugin-transform-for-of@npm:^7.22.15, @babel/plugin-transform-for-of@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/plugin-transform-for-of@npm:7.22.15" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 08bd2d14f10b8ae421e61b55c28232547044149b8ef62c99c54561ce93a5067f9654d701d798871e733543359748e1b093f5c450b69705ec1db674175ee9fcdb + checksum: 64182292f4be8cdf1fff06fe62ba110bf5e5dbb5d966d5e8871ef40a673cd934217da51b9f4a4ba303ca936be787f30e3d13a91fe410339de79e0fe9f0807e15 languageName: node linkType: hard @@ -1432,15 +1419,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-json-strings@npm:7.22.5" +"@babel/plugin-transform-json-strings@npm:^7.22.11, @babel/plugin-transform-json-strings@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-json-strings@npm:7.22.11" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 64ee0f3497822d312b609d3b8a5a2617337d1624292e89f5e90fd25b5bc91a20beadfa91730b5b199b5a027284ced5d59748d99e8ab81ee7bdac38236e6b61ca + checksum: 90f46a99c4136187d16f30f1f5f51e479c919edb6f6b4ce43fe81fdae2c89a556a0a6f6f2ec7ea3de7014a504f6df2220e3bc19dd7011f76bd275c195842f886 languageName: node linkType: hard @@ -1455,15 +1442,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.5" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.11, @babel/plugin-transform-logical-assignment-operators@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.11" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bfacdafa8018d1607897015e1ea0f98edbefee16b4409d5f37c37df0d2058dde2e55586dd79f8479a0cd603ff06272216de077f071bc49c96014edfe1629bd26 + checksum: 9810f7918514bd59579ccc0950b4f352569abb40959569d38931e57f11e6b9aa920bdef403ffd8cd5d4e0243e0bbf7a1ebb445f3428c8b7a2421568ff2f681be languageName: node linkType: hard @@ -1479,41 +1466,41 @@ __metadata: linkType: hard "@babel/plugin-transform-modules-amd@npm:^7.13.0, @babel/plugin-transform-modules-amd@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-amd@npm:7.22.5" + version: 7.23.0 + resolution: "@babel/plugin-transform-modules-amd@npm:7.23.0" dependencies: - "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.0 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 157ae3b58a50ca52e361860ecab2b608bc9228ea6c760112a35302990976f8936b8d75a2b21925797eed7b3bab4930a3f447193127afef9a21b7b6463ff0b422 + checksum: dda02864029ff66955e21d19c3d245aad69792b75e748de1391403bc86c8e9720b4f320b0db8413a29c11ba63b168146cf849180b5677bc6a74bfd085d20376d languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.2.0, @babel/plugin-transform-modules-commonjs@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.22.5" +"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.2.0, @babel/plugin-transform-modules-commonjs@npm:^7.22.15, @babel/plugin-transform-modules-commonjs@npm:^7.22.5, @babel/plugin-transform-modules-commonjs@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.0" dependencies: - "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.0 "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-simple-access": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 818317363cc96a1ab28cd0691bdb86fe06f452d210e2cef7ef4708f2c2c80cbe3c76bca23c2ab4b1bb200d44e508eae71f627c7cb27299a41be56fc7e3aaced0 + checksum: 1f015764c2e63445d46660e7a2eb9002c20def04daf98fa93c9dadb5bd55adbefefd1ccdc11bcafa5e2f04275939d2414482703bc35bc60d6ca2bf1f67b720e3 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.5" +"@babel/plugin-transform-modules-systemjs@npm:^7.22.11, @babel/plugin-transform-modules-systemjs@npm:^7.22.5": + version: 7.23.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.0" dependencies: "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.0 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 25d7ada275039523541cfc3efd91cd3d9cfc77e7b9dd6a51e7d9ad842d2cb3e0f26aee29426aa56ac72f61247268369680f2bdc1171bb00a16cfd00bbb325a6c + checksum: 04c5cef7d6921bb9c9073cea389289099124e78cd1e3b7e020e3c085d486b48efadd9a42c0c0d963a9b1c3d5465c3151229092ea719997e53427f36935c84178 languageName: node linkType: hard @@ -1552,27 +1539,27 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.5" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.11" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 66f7237d59060954fc0ba0c5d9e7081580421014b446080b3efedb3d4be9a4346f50974c5886a4ec7962db9992e5e1c5e26cb76801728b4d9626ac2eb09c26f7 + checksum: 328c0ebfbbc82256af00252fb795996b093f57b528a57afcb30843ca52d24a6d824029ad6d22f042f3af336bb4dc1963b4841c2ad774424b02d14ae7cfff2701 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.5" +"@babel/plugin-transform-numeric-separator@npm:^7.22.11, @babel/plugin-transform-numeric-separator@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.11" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 921d6ff2165eb782c28a6c06e9eb0dc17400c9476b000a7f8b8dfa95c122c22be4adee7bc15f035a1e4269842b3a68b0a2f20e4437025a6e0fbe16e479a879b8 + checksum: fcde065002948c9c39f853be99c38b02aa1a1eb453e70ab1a164feb250c1fcbf1edd38071e28ed8bde6840b8a394af8b291b2ab2d793f283872ba43f89cf6dd2 languageName: node linkType: hard @@ -1587,18 +1574,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.5" +"@babel/plugin-transform-object-rest-spread@npm:^7.22.15, @babel/plugin-transform-object-rest-spread@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.15" dependencies: - "@babel/compat-data": ^7.22.5 - "@babel/helper-compilation-targets": ^7.22.5 + "@babel/compat-data": ^7.22.9 + "@babel/helper-compilation-targets": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.22.5 + "@babel/plugin-transform-parameters": ^7.22.15 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ab93b8f84e4ed6629ea258d94b597976598a1990035b4d5178c8d117908a48a36f0f03dd2f4a3375393a23a588ecc7817c099ac88a80f8307475b9a25e4d08e0 + checksum: c485084360607a4392227d8af461e0f313953a6088221826668f90e92df6e16da04e2b3424e283c2980586095430d1068ae6e549b828dfa3891e2d1a397bd034 languageName: node linkType: hard @@ -1614,39 +1601,39 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.5" +"@babel/plugin-transform-optional-catch-binding@npm:^7.22.11, @babel/plugin-transform-optional-catch-binding@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.11" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a15bfa5b36f5f1f61521cc1c73e1e394fbd08aef82a416e2e43f5fc7b43830f17d4c9a5605f1b69ed2bbbacd6f49f5e4f9a3e8e0b7a83841bc95e8ef2116f0a9 + checksum: 6a731f4fee93397634b088ef7de990c150ea1c29e2cf681b2520d9196888d79a4252cbcc497d9b0db0453160ea2267043036fee4ccea8964864ef1b55a40d76f languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.22.5, @babel/plugin-transform-optional-chaining@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.6" +"@babel/plugin-transform-optional-chaining@npm:^7.22.15, @babel/plugin-transform-optional-chaining@npm:^7.22.6": + version: 7.23.0 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.0" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bb8188df57ab46c4c708eea17eddd20238ef9106c0e82016b1eb9565f073746e385e0be0b6ee25148507f3dc849311147a43323109c97106f15e0e7ff3220fdf + checksum: 2bf605b908c75f8d7616e8be52e4656983f2b027032260fbf5279f28297a67a1a28ec3ed60cd5760537dbd08a021246b8092ce06fb2418884390230b807142b3 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-parameters@npm:7.22.5" +"@babel/plugin-transform-parameters@npm:^7.22.15, @babel/plugin-transform-parameters@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/plugin-transform-parameters@npm:7.22.15" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7d6a76dd1ac02373bc5542076c97fadcb18a9ebbcd4047e15f7a83d64efcff2baef1060a4bcfb9372d8ea18e5b1970f09514c58cece4145beb31d8b8d45d2e5f + checksum: 9b9faf55b20aea4755a66db75e1195f7a203b4cfeef0ed5ceb25d6364bbb7a5bd0b5c587489c37ab339c4e4e7275406d0db0c05c25aa731a3cf6b4cc51e97c8d languageName: node linkType: hard @@ -1662,17 +1649,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.5" +"@babel/plugin-transform-private-property-in-object@npm:^7.22.11, @babel/plugin-transform-private-property-in-object@npm:^7.22.5": + version: 7.22.11 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.11" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.22.11 "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f178191da005d986fdeb30ef74ea0d28878e6225d305d931ce925d87b7df432f5bb29e32173cff2a5c408cee7abc9f25fab09530d4f419ce5cc29a44a89f7a55 + checksum: ec1ed8cc5483b8661e2cf7c020ffefe2a85e793a353d580c4174686923e465cdfaf13fc344ebb2eead4a1dbecd49baba93e342a9de400a29abedb79dcc6745a2 languageName: node linkType: hard @@ -1731,18 +1718,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.14.9, @babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx@npm:7.22.5" +"@babel/plugin-transform-react-jsx@npm:^7.14.9, @babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/plugin-transform-react-jsx@npm:7.22.15" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-module-imports": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-jsx": ^7.22.5 - "@babel/types": ^7.22.5 + "@babel/types": ^7.22.15 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fa4e5b32233c41686a420ad97b07a8a8b6cec7d484e93d5917db460887ded5179a8a20867a5d56d962b5452535830c0c0f8bfdc7d55853369be1e51b6a79a14a + checksum: db37491e3eea5530521e177380312f308f01f806866fa0ce08d48fc5a8c9eaf9a954f778fa1ff477248afb72e916eb66ab3d35254bb6a8979f8b8e74a0fd8873 languageName: node linkType: hard @@ -1758,15 +1745,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-regenerator@npm:7.22.5" +"@babel/plugin-transform-regenerator@npm:^7.22.10, @babel/plugin-transform-regenerator@npm:^7.22.5": + version: 7.22.10 + resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - regenerator-transform: ^0.15.1 + regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5d9f42f831323db7e148cd9c47f61f3f667d283dba95f3221715871f52dec39868be1aa81dd834c27a2993602e5e396bb44bdfa563573a0d86b3883a58660004 + checksum: b903bfc1e849ca956a981a199b4913c0998877b6ba759f6d64530c5106610f89a818d61471a9c1bdabb6d94ba4ba150febeb4d196f6a8e67fcdc44207bb8fef6 languageName: node linkType: hard @@ -1781,35 +1768,35 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-runtime@npm:7.22.5" +"@babel/plugin-transform-runtime@npm:7.22.9": + version: 7.22.9 + resolution: "@babel/plugin-transform-runtime@npm:7.22.9" dependencies: "@babel/helper-module-imports": ^7.22.5 "@babel/helper-plugin-utils": ^7.22.5 - babel-plugin-polyfill-corejs2: ^0.4.3 - babel-plugin-polyfill-corejs3: ^0.8.1 - babel-plugin-polyfill-regenerator: ^0.5.0 - semver: ^6.3.0 + babel-plugin-polyfill-corejs2: ^0.4.4 + babel-plugin-polyfill-corejs3: ^0.8.2 + babel-plugin-polyfill-regenerator: ^0.5.1 + semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2dcd59bbf14622c2cc088a311a16073b777e34abe733a940c4df6d48fd58900fb7cb22aa2a4645939162cc717618f8e55e96c227ad61f9ae9bca098078aa7345 + checksum: 36a5c4a69ca709c6d74b35217b46d72c55a4447f7825a93cb628251b6736391d66d97635877ecb48ff1ddc4516e2e5b6e2e87999835c2c8e08b948eba5f9edfc languageName: node linkType: hard "@babel/plugin-transform-runtime@npm:^7.13.9, @babel/plugin-transform-runtime@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/plugin-transform-runtime@npm:7.22.9" + version: 7.22.15 + resolution: "@babel/plugin-transform-runtime@npm:7.22.15" dependencies: - "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-module-imports": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 - babel-plugin-polyfill-corejs2: ^0.4.4 - babel-plugin-polyfill-corejs3: ^0.8.2 - babel-plugin-polyfill-regenerator: ^0.5.1 + babel-plugin-polyfill-corejs2: ^0.4.5 + babel-plugin-polyfill-corejs3: ^0.8.3 + babel-plugin-polyfill-regenerator: ^0.5.2 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 36a5c4a69ca709c6d74b35217b46d72c55a4447f7825a93cb628251b6736391d66d97635877ecb48ff1ddc4516e2e5b6e2e87999835c2c8e08b948eba5f9edfc + checksum: a01c4bc83c720e55367de978ab5c93ed6e27cd0f5e932c3628df6aed4331ee876868a3bf9a8c588aecf1ae2894dd5a6ffb21362af19b232d9fd2e836af431828 languageName: node linkType: hard @@ -1869,28 +1856,28 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.13.0, @babel/plugin-transform-typescript@npm:^7.22.5": - version: 7.22.9 - resolution: "@babel/plugin-transform-typescript@npm:7.22.9" +"@babel/plugin-transform-typescript@npm:^7.13.0, @babel/plugin-transform-typescript@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/plugin-transform-typescript@npm:7.22.15" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.9 + "@babel/helper-create-class-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 "@babel/plugin-syntax-typescript": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: dc0623bbb21bffdc3c64bf5f50677ba06c6bd9f17edae08fd40f3e639632a716efce91100a46aeaad064e082ee71dfd35941cb605bf27f5d32363912a86ba07f + checksum: e6a110f5b70334c6a503c90855dde5660f479e48262c8338261aeb30c70eedcfe885265b788c89f5bef757d99ab6704ee22bb0d23579597bc9415cfa86607458 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.5" +"@babel/plugin-transform-unicode-escapes@npm:^7.22.10, @babel/plugin-transform-unicode-escapes@npm:^7.22.5": + version: 7.22.10 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e9005b2ca102d75e77154a9a7aa2a716d27f5fede04d98fc5f5bfc63390922da9e0112dac0e3c4df9145d30421131a8a79eeb3c6d51435cb7a6595bb692976f7 + checksum: 68425d56698650087faa33fe40adf8bde32efc1d05ce564f02b62526e7f5b2f4633278b0a10ee2e7e36fb89c79c3330c730d96b8a872acea4702c5645cee98f8 languageName: node linkType: hard @@ -1940,12 +1927,12 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:7.22.5": - version: 7.22.5 - resolution: "@babel/preset-env@npm:7.22.5" +"@babel/preset-env@npm:7.22.9": + version: 7.22.9 + resolution: "@babel/preset-env@npm:7.22.9" dependencies: - "@babel/compat-data": ^7.22.5 - "@babel/helper-compilation-targets": ^7.22.5 + "@babel/compat-data": ^7.22.9 + "@babel/helper-compilation-targets": ^7.22.9 "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-validator-option": ^7.22.5 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.5 @@ -1970,13 +1957,13 @@ __metadata: "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 "@babel/plugin-transform-arrow-functions": ^7.22.5 - "@babel/plugin-transform-async-generator-functions": ^7.22.5 + "@babel/plugin-transform-async-generator-functions": ^7.22.7 "@babel/plugin-transform-async-to-generator": ^7.22.5 "@babel/plugin-transform-block-scoped-functions": ^7.22.5 "@babel/plugin-transform-block-scoping": ^7.22.5 "@babel/plugin-transform-class-properties": ^7.22.5 "@babel/plugin-transform-class-static-block": ^7.22.5 - "@babel/plugin-transform-classes": ^7.22.5 + "@babel/plugin-transform-classes": ^7.22.6 "@babel/plugin-transform-computed-properties": ^7.22.5 "@babel/plugin-transform-destructuring": ^7.22.5 "@babel/plugin-transform-dotall-regex": ^7.22.5 @@ -2001,7 +1988,7 @@ __metadata: "@babel/plugin-transform-object-rest-spread": ^7.22.5 "@babel/plugin-transform-object-super": ^7.22.5 "@babel/plugin-transform-optional-catch-binding": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.22.5 + "@babel/plugin-transform-optional-chaining": ^7.22.6 "@babel/plugin-transform-parameters": ^7.22.5 "@babel/plugin-transform-private-methods": ^7.22.5 "@babel/plugin-transform-private-property-in-object": ^7.22.5 @@ -2019,27 +2006,27 @@ __metadata: "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 "@babel/preset-modules": ^0.1.5 "@babel/types": ^7.22.5 - babel-plugin-polyfill-corejs2: ^0.4.3 - babel-plugin-polyfill-corejs3: ^0.8.1 - babel-plugin-polyfill-regenerator: ^0.5.0 - core-js-compat: ^3.30.2 - semver: ^6.3.0 + babel-plugin-polyfill-corejs2: ^0.4.4 + babel-plugin-polyfill-corejs3: ^0.8.2 + babel-plugin-polyfill-regenerator: ^0.5.1 + core-js-compat: ^3.31.0 + semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: dd2b70e96102fc2a64f57c3ab177abeb5aac3f71f47701787b6264d91d7d3ea3d38526d8e1133eb667ca88e87c997ed4a1b8d498ca8be2af07ae4995dfac1b83 + checksum: fad75686dd55638be71657edbd428bb0266a3f34bc6e367bd55fbff911652c971fcea3e5c346288d4e0a15c81b732c4a2549fce97910b602e19170fe1ddf72d0 languageName: node linkType: hard "@babel/preset-env@npm:^7.16.5, @babel/preset-env@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/preset-env@npm:7.22.9" + version: 7.22.20 + resolution: "@babel/preset-env@npm:7.22.20" dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.9 + "@babel/compat-data": ^7.22.20 + "@babel/helper-compilation-targets": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.5 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.15 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.22.15 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 @@ -2060,76 +2047,89 @@ __metadata: "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 "@babel/plugin-transform-arrow-functions": ^7.22.5 - "@babel/plugin-transform-async-generator-functions": ^7.22.7 + "@babel/plugin-transform-async-generator-functions": ^7.22.15 "@babel/plugin-transform-async-to-generator": ^7.22.5 "@babel/plugin-transform-block-scoped-functions": ^7.22.5 - "@babel/plugin-transform-block-scoping": ^7.22.5 + "@babel/plugin-transform-block-scoping": ^7.22.15 "@babel/plugin-transform-class-properties": ^7.22.5 - "@babel/plugin-transform-class-static-block": ^7.22.5 - "@babel/plugin-transform-classes": ^7.22.6 + "@babel/plugin-transform-class-static-block": ^7.22.11 + "@babel/plugin-transform-classes": ^7.22.15 "@babel/plugin-transform-computed-properties": ^7.22.5 - "@babel/plugin-transform-destructuring": ^7.22.5 + "@babel/plugin-transform-destructuring": ^7.22.15 "@babel/plugin-transform-dotall-regex": ^7.22.5 "@babel/plugin-transform-duplicate-keys": ^7.22.5 - "@babel/plugin-transform-dynamic-import": ^7.22.5 + "@babel/plugin-transform-dynamic-import": ^7.22.11 "@babel/plugin-transform-exponentiation-operator": ^7.22.5 - "@babel/plugin-transform-export-namespace-from": ^7.22.5 - "@babel/plugin-transform-for-of": ^7.22.5 + "@babel/plugin-transform-export-namespace-from": ^7.22.11 + "@babel/plugin-transform-for-of": ^7.22.15 "@babel/plugin-transform-function-name": ^7.22.5 - "@babel/plugin-transform-json-strings": ^7.22.5 + "@babel/plugin-transform-json-strings": ^7.22.11 "@babel/plugin-transform-literals": ^7.22.5 - "@babel/plugin-transform-logical-assignment-operators": ^7.22.5 + "@babel/plugin-transform-logical-assignment-operators": ^7.22.11 "@babel/plugin-transform-member-expression-literals": ^7.22.5 "@babel/plugin-transform-modules-amd": ^7.22.5 - "@babel/plugin-transform-modules-commonjs": ^7.22.5 - "@babel/plugin-transform-modules-systemjs": ^7.22.5 + "@babel/plugin-transform-modules-commonjs": ^7.22.15 + "@babel/plugin-transform-modules-systemjs": ^7.22.11 "@babel/plugin-transform-modules-umd": ^7.22.5 "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 "@babel/plugin-transform-new-target": ^7.22.5 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.5 - "@babel/plugin-transform-numeric-separator": ^7.22.5 - "@babel/plugin-transform-object-rest-spread": ^7.22.5 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.11 + "@babel/plugin-transform-numeric-separator": ^7.22.11 + "@babel/plugin-transform-object-rest-spread": ^7.22.15 "@babel/plugin-transform-object-super": ^7.22.5 - "@babel/plugin-transform-optional-catch-binding": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.22.6 - "@babel/plugin-transform-parameters": ^7.22.5 + "@babel/plugin-transform-optional-catch-binding": ^7.22.11 + "@babel/plugin-transform-optional-chaining": ^7.22.15 + "@babel/plugin-transform-parameters": ^7.22.15 "@babel/plugin-transform-private-methods": ^7.22.5 - "@babel/plugin-transform-private-property-in-object": ^7.22.5 + "@babel/plugin-transform-private-property-in-object": ^7.22.11 "@babel/plugin-transform-property-literals": ^7.22.5 - "@babel/plugin-transform-regenerator": ^7.22.5 + "@babel/plugin-transform-regenerator": ^7.22.10 "@babel/plugin-transform-reserved-words": ^7.22.5 "@babel/plugin-transform-shorthand-properties": ^7.22.5 "@babel/plugin-transform-spread": ^7.22.5 "@babel/plugin-transform-sticky-regex": ^7.22.5 "@babel/plugin-transform-template-literals": ^7.22.5 "@babel/plugin-transform-typeof-symbol": ^7.22.5 - "@babel/plugin-transform-unicode-escapes": ^7.22.5 + "@babel/plugin-transform-unicode-escapes": ^7.22.10 "@babel/plugin-transform-unicode-property-regex": ^7.22.5 "@babel/plugin-transform-unicode-regex": ^7.22.5 "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 - "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.22.5 - babel-plugin-polyfill-corejs2: ^0.4.4 - babel-plugin-polyfill-corejs3: ^0.8.2 - babel-plugin-polyfill-regenerator: ^0.5.1 + "@babel/preset-modules": 0.1.6-no-external-plugins + "@babel/types": ^7.22.19 + babel-plugin-polyfill-corejs2: ^0.4.5 + babel-plugin-polyfill-corejs3: ^0.8.3 + babel-plugin-polyfill-regenerator: ^0.5.2 core-js-compat: ^3.31.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fad75686dd55638be71657edbd428bb0266a3f34bc6e367bd55fbff911652c971fcea3e5c346288d4e0a15c81b732c4a2549fce97910b602e19170fe1ddf72d0 + checksum: 3adf4209a785aec7bfc1a331845ca623acd115e01ff0f9c918b1bc67f69f9e06e6aad4c06940a5001c4c2189617d8c6f8b7fb4720ed7beb9b92d0bdf399692f7 languageName: node linkType: hard "@babel/preset-flow@npm:^7.13.13, @babel/preset-flow@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/preset-flow@npm:7.22.5" + version: 7.22.15 + resolution: "@babel/preset-flow@npm:7.22.15" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 "@babel/plugin-transform-flow-strip-types": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d3a54fbaa6da304bedc08847876f23c4bd6f9b13eb8b675ae48c45c678066f7610437b16a8972209c5250bdb205bde8800b8055a844922488b899fdbfe295f31 + checksum: 7eef0c84ec1889d6c4f7a67d7d1a81703420eed123a8c23f25af148eead77907f0bd701f3e729fdb37d3ddb2a373bf43938b36a9ba17f546111ddb9521466b92 + languageName: node + linkType: hard + +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 9d02f70d7052446c5f3a4fb39e6b632695fb6801e46d31d7f7c5001f7c18d31d1ea8369212331ca7ad4e7877b73231f470b0d559162624128f1b80fe591409e6 languageName: node linkType: hard @@ -2149,39 +2149,39 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/preset-react@npm:7.22.5" + version: 7.22.15 + resolution: "@babel/preset-react@npm:7.22.15" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 "@babel/plugin-transform-react-display-name": ^7.22.5 - "@babel/plugin-transform-react-jsx": ^7.22.5 + "@babel/plugin-transform-react-jsx": ^7.22.15 "@babel/plugin-transform-react-jsx-development": ^7.22.5 "@babel/plugin-transform-react-pure-annotations": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 60c1fde93d5a6bda03b3d2bb61bcbf056925fd0b01e84d789eaf2a06f639d8714e93735a75da0221fd7a8407c6b4fea7b4fbc35de5ff5d5a299aecb1c82fd530 + checksum: 80940aa494292b7f689d902b76828cb3ab4eaf4e6421107f23388b6ea7316ab25ccd817b766fde5c40787fd92f1cba1f660190bfd71965c902e49b42c9e290c2 languageName: node linkType: hard "@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/preset-typescript@npm:7.22.5" + version: 7.23.0 + resolution: "@babel/preset-typescript@npm:7.23.0" dependencies: "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 "@babel/plugin-syntax-jsx": ^7.22.5 - "@babel/plugin-transform-modules-commonjs": ^7.22.5 - "@babel/plugin-transform-typescript": ^7.22.5 + "@babel/plugin-transform-modules-commonjs": ^7.23.0 + "@babel/plugin-transform-typescript": ^7.22.15 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2d5924be38bdfea693548359dc547e8bb2c51793d6293168a7248d5ac1f5e94c5f8acea115b006bdd6fa4a20a8e92aa87a826a4aeaf143649e1683d0fe1b82d6 + checksum: 97e246bd14eefad1dd93144200e62aedfb8577fac4172c8da4760b1c2272680fe06780ad87fea1ab81b62e32a23fc9f8e9f10c31a1c22cabf879cb3025e2fed8 languageName: node linkType: hard "@babel/register@npm:^7.13.16": - version: 7.22.5 - resolution: "@babel/register@npm:7.22.5" + version: 7.22.15 + resolution: "@babel/register@npm:7.22.15" dependencies: clone-deep: ^4.0.1 find-cache-dir: ^2.0.0 @@ -2190,7 +2190,7 @@ __metadata: source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 60b04871442fecb2a296fd3acbbab07e45c3e1c1f7972e72f6c61c575c3a0d95140710c52c4aa7a9b4bb8622641af6da00e3767b8fe17999a1daa1543025fc64 + checksum: 895cc773c3b3eae909478ea2a9735ef6edd634b04b4aaaad2ce576fd591c2b3c70ff8c90423e769a291bee072186e7e4801480c1907e31ba3053c6cdba5571cb languageName: node linkType: hard @@ -2202,12 +2202,12 @@ __metadata: linkType: hard "@babel/runtime-corejs3@npm:^7.10.2": - version: 7.22.6 - resolution: "@babel/runtime-corejs3@npm:7.22.6" + version: 7.23.1 + resolution: "@babel/runtime-corejs3@npm:7.23.1" dependencies: core-js-pure: ^3.30.2 - regenerator-runtime: ^0.13.11 - checksum: 5a68532c614dfef051e155460d3090388533871c8180de770e926ee2e01fbc21ef92c0c56d6c5cb6448650068438f6d1eca0e5a5d3ae36269b0ce3b8d2a0f645 + regenerator-runtime: ^0.14.0 + checksum: 6e2c2b11779ff56c88b1f3a8742498640f7271ad4fcf9cfd24052bbb236a5e7c4c7c8d81cda751da3b4effa678736303deb78441c5752e63bfb90d6453fd870f languageName: node linkType: hard @@ -2220,12 +2220,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.22.5": - version: 7.22.5 - resolution: "@babel/runtime@npm:7.22.5" +"@babel/runtime@npm:7.22.6": + version: 7.22.6 + resolution: "@babel/runtime@npm:7.22.6" dependencies: regenerator-runtime: ^0.13.11 - checksum: 11dcaeecd2246857ccf22f939fcae28a58d29e410607bfa28b95d9b03e298a3e3df8a530e22637d5bfccfc1661fb39cc50c06b404b5d53454bd93889c7dd3eb8 + checksum: 5a273e7d66586582041c68332028db5376d754d483422541fdc904e10474a6f8aef14dd3a5aabcbcb6daea87b64531cc4be993d2943557ede4a2613f5328a981 languageName: node linkType: hard @@ -2238,12 +2238,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": - version: 7.22.6 - resolution: "@babel/runtime@npm:7.22.6" +"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": + version: 7.23.1 + resolution: "@babel/runtime@npm:7.23.1" dependencies: - regenerator-runtime: ^0.13.11 - checksum: 5a273e7d66586582041c68332028db5376d754d483422541fdc904e10474a6f8aef14dd3a5aabcbcb6daea87b64531cc4be993d2943557ede4a2613f5328a981 + regenerator-runtime: ^0.14.0 + checksum: e57ab1436d4845efe67c3f76d578508bb584173690ecfeac105bc4e09d64b2aa6a53c1e03bca3c97cc238e5390a804e5a4ded211e6350243b735905ca45a4822 languageName: node linkType: hard @@ -2256,7 +2256,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:7.22.5, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3, @babel/template@npm:^7.7.0, @babel/template@npm:^7.8.6": +"@babel/template@npm:7.22.5": version: 7.22.5 resolution: "@babel/template@npm:7.22.5" dependencies: @@ -2278,32 +2278,43 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.22.6, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.8.6": - version: 7.22.8 - resolution: "@babel/traverse@npm:7.22.8" +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3, @babel/template@npm:^7.7.0, @babel/template@npm:^7.8.6": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" dependencies: - "@babel/code-frame": ^7.22.5 - "@babel/generator": ^7.22.7 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 + "@babel/code-frame": ^7.22.13 + "@babel/parser": ^7.22.15 + "@babel/types": ^7.22.15 + checksum: 9312edd37cf1311d738907003f2aa321a88a42ba223c69209abe4d7111db019d321805504f606c7fd75f21c6cf9d24d0a8223104cd21ebd207e241b6c551f454 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.23.0, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.8.6": + version: 7.23.0 + resolution: "@babel/traverse@npm:7.23.0" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.22.7 - "@babel/types": ^7.22.5 + "@babel/parser": ^7.23.0 + "@babel/types": ^7.23.0 debug: ^4.1.0 globals: ^11.1.0 - checksum: 839014824c210388ed46f92bf5265522bd5bbb4a9a03c700f9d79b151bdd0aa077c2f6448a0cef41132188cc2bc6d8cdcad98a297ba59983401e882bdc256b1f + checksum: 84f93e64179965a0de6109a8b1ce92d66eb52a76e8ba325d27bdec6952cedd8fc98eabf09fe443ef667a051300dc7ed8924e7bf61a87ad456501d1da46657509 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.4, @babel/types@npm:^7.22.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.0, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.8.6, @babel/types@npm:^7.8.7, @babel/types@npm:^7.9.6": - version: 7.22.5 - resolution: "@babel/types@npm:7.22.5" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @babel/types@npm:^7.18.9, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.4, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.0, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.8.6, @babel/types@npm:^7.8.7, @babel/types@npm:^7.9.6": + version: 7.23.0 + resolution: "@babel/types@npm:7.23.0" dependencies: "@babel/helper-string-parser": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 to-fast-properties: ^2.0.0 - checksum: 2473295056520432ec0b5fe2dc7b37914292d211ccdbc2cb05650f9c44d5168a760bca0f492a9fff7c72459defee15cd48ef152e74961cfdc03144c7a4b8bec8 + checksum: 70e4db41acb6793d0eb8d81a2fa88f19ee661219b84bd5f703dbdb54eb3a4d3c0dfc55e69034c945b479df9f43fd4b1376480aaccfc19797ce5af1c5d2576b36 languageName: node linkType: hard @@ -2321,6 +2332,39 @@ __metadata: languageName: node linkType: hard +"@chromaui/addon-visual-tests@npm:^0.0.77": + version: 0.0.77 + resolution: "@chromaui/addon-visual-tests@npm:0.0.77" + dependencies: + "@storybook/design-system": ^7.15.15 + chromatic: 7.2.0-next.1 + date-fns: ^2.30.0 + filesize: ^10.0.12 + jsonfile: ^6.1.0 + pluralize: ^8.0.0 + ts-dedent: ^2.2.0 + urql: ^4.0.3 + uuid: ^9.0.0 + peerDependencies: + "@storybook/blocks": ^7.2.0 + "@storybook/client-logger": ^7.2.0 + "@storybook/components": ^7.2.0 + "@storybook/core-events": ^7.2.0 + "@storybook/manager-api": ^7.2.0 + "@storybook/preview-api": ^7.2.0 + "@storybook/theming": ^7.2.0 + "@storybook/types": ^7.2.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: e1f51e73bb95a66f9753a3f9acdcdfad2975c450588f2403e20840a1b4e9ba7a71906db53adcb3d6baecce1f329166835f24cabe9ff40f51609848f9c1b67988 + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -2404,15 +2448,15 @@ __metadata: linkType: hard "@digitak/esrun@npm:^3.2.2": - version: 3.2.24 - resolution: "@digitak/esrun@npm:3.2.24" + version: 3.2.25 + resolution: "@digitak/esrun@npm:3.2.25" dependencies: "@digitak/grubber": ^3.1.4 chokidar: ^3.5.1 esbuild: ^0.17.4 bin: esrun: bin.js - checksum: cfd46e5be5083d7a7b97881718ff0872ca0a314a294bf7484324d964fa92548db6603e7e5792a2f6d7a820d9e7c55715b70f534fd3cc72ea25e20f56f4490793 + checksum: d2d3291a15fae43e3cba875d12a5bea6453dfe625af90ef7835e9071db31b769219401197fe1d5efde57cf7f1eda204ca68c99022fdc0039eb057052c60d15fc languageName: node linkType: hard @@ -2423,7 +2467,7 @@ __metadata: languageName: node linkType: hard -"@discoveryjs/json-ext@npm:0.5.7, @discoveryjs/json-ext@npm:^0.5.3, @discoveryjs/json-ext@npm:^0.5.7": +"@discoveryjs/json-ext@npm:0.5.7, @discoveryjs/json-ext@npm:^0.5.3": version: 0.5.7 resolution: "@discoveryjs/json-ext@npm:0.5.7" checksum: e10f1b02b78e4812646ddf289b7d9f2cb567d336c363b266bd50cd223cf3de7c2c74018d91cd2613041568397ef3a4a2b500aba588c6e5bd78c38374ba68f38c @@ -2614,163 +2658,163 @@ __metadata: languageName: node linkType: hard -"@emotion/weak-memoize@npm:^0.3.1": +"@emotion/weak-memoize@npm:^0.3.0, @emotion/weak-memoize@npm:^0.3.1": version: 0.3.1 resolution: "@emotion/weak-memoize@npm:0.3.1" checksum: ed514b3cb94bbacece4ac2450d98898066c0a0698bdeda256e312405ca53634cb83c75889b25cd8bbbe185c80f4c05a1f0a0091e1875460ba6be61d0334f0b8a languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/android-arm64@npm:0.18.16" +"@esbuild/android-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm64@npm:0.18.20" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/android-arm@npm:0.18.16" +"@esbuild/android-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm@npm:0.18.20" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/android-x64@npm:0.18.16" +"@esbuild/android-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-x64@npm:0.18.20" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/darwin-arm64@npm:0.18.16" +"@esbuild/darwin-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-arm64@npm:0.18.20" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/darwin-x64@npm:0.18.16" +"@esbuild/darwin-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-x64@npm:0.18.20" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/freebsd-arm64@npm:0.18.16" +"@esbuild/freebsd-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-arm64@npm:0.18.20" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/freebsd-x64@npm:0.18.16" +"@esbuild/freebsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-x64@npm:0.18.20" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-arm64@npm:0.18.16" +"@esbuild/linux-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm64@npm:0.18.20" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-arm@npm:0.18.16" +"@esbuild/linux-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm@npm:0.18.20" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-ia32@npm:0.18.16" +"@esbuild/linux-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ia32@npm:0.18.20" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-loong64@npm:0.18.16" +"@esbuild/linux-loong64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-loong64@npm:0.18.20" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-mips64el@npm:0.18.16" +"@esbuild/linux-mips64el@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-mips64el@npm:0.18.20" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-ppc64@npm:0.18.16" +"@esbuild/linux-ppc64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ppc64@npm:0.18.20" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-riscv64@npm:0.18.16" +"@esbuild/linux-riscv64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-riscv64@npm:0.18.20" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-s390x@npm:0.18.16" +"@esbuild/linux-s390x@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-s390x@npm:0.18.20" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/linux-x64@npm:0.18.16" +"@esbuild/linux-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-x64@npm:0.18.20" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/netbsd-x64@npm:0.18.16" +"@esbuild/netbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/netbsd-x64@npm:0.18.20" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/openbsd-x64@npm:0.18.16" +"@esbuild/openbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/openbsd-x64@npm:0.18.20" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/sunos-x64@npm:0.18.16" +"@esbuild/sunos-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/sunos-x64@npm:0.18.20" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/win32-arm64@npm:0.18.16" +"@esbuild/win32-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-arm64@npm:0.18.20" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/win32-ia32@npm:0.18.16" +"@esbuild/win32-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-ia32@npm:0.18.20" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.18.16": - version: 0.18.16 - resolution: "@esbuild/win32-x64@npm:0.18.16" +"@esbuild/win32-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-x64@npm:0.18.20" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -2786,16 +2830,16 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0": - version: 4.6.1 - resolution: "@eslint-community/regexpp@npm:4.6.1" - checksum: 4ab30d948881ad01311a24866afb30cf7481c594ac6aecebf7fbea2f29bd42d403d5676b69790df3d333620d863df29358a0282f10726f3506e5ef52471204be +"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.9.1 + resolution: "@eslint-community/regexpp@npm:4.9.1" + checksum: d0e1bd1a37cb2cb6bbac88dfe97b62b412d4b6ea3a4bb1c4e1e503be03125063db5d80999cef9728f57b19b49979aa902ac68182bcf5f80dfce6fa9a9d34eee1 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.0": - version: 2.1.0 - resolution: "@eslint/eslintrc@npm:2.1.0" +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -2806,14 +2850,14 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: 6ffbc3e7867b377754492539af0e2f5b55645a2c67279a70508fe09080bc76d49ba64b579e59a2a04014f84d0768301736fbcdd94c7b3ad4f0e648c32bf21e43 + checksum: 00efdc3797e6f05518060522b7788e5f5aff02f13facbd0c83b176c3dee86554023283a5f68542df379c5137685d2d29745c87f62bf2406a1d38d95471f44ce6 languageName: node linkType: hard -"@eslint/js@npm:8.44.0": - version: 8.44.0 - resolution: "@eslint/js@npm:8.44.0" - checksum: ce7b966f8804228e4d5725d44d3c8fb7fc427176f077401323a02e082f628d207133a25704330e610ebe3254fdf1acb186f779d1242fd145a758fdcc4486a660 +"@eslint/js@npm:8.50.0": + version: 8.50.0 + resolution: "@eslint/js@npm:8.50.0" + checksum: 92cb0a823869e85f287bd172f14a6a20d7d65c3f4db886a0356a9efebfe8fe519e9ead84a5687bd18f45eca417bdcce96e3b83fe3feae8baf0f8f44d14073bae languageName: node linkType: hard @@ -2825,11 +2869,11 @@ __metadata: linkType: hard "@figspec/components@npm:^1.0.1": - version: 1.0.1 - resolution: "@figspec/components@npm:1.0.1" + version: 1.0.2 + resolution: "@figspec/components@npm:1.0.2" dependencies: lit: ^2.1.3 - checksum: 74e2c4c6959355efc5d89f224b32ed8207c4885b7d4bbdc2c7c9de6e5ef3e5b80a553fc26ca51eac77b03b6414ec645b147ba64211cf1165e2bcce49ced67fc8 + checksum: 8e889140d6577f6bdf31a6b460539127f1614e42c8d08b545b8dd500dbb606edae87e7619933fc6039370fc7552a4b68458e23957e0d7c28ca90eecf7b06cdce languageName: node linkType: hard @@ -2845,31 +2889,41 @@ __metadata: languageName: node linkType: hard -"@floating-ui/core@npm:^1.3.1": - version: 1.3.1 - resolution: "@floating-ui/core@npm:1.3.1" - checksum: 894bc3637c03beda184a4460cb53155fd30c2a0956569e1c714b7df9e3439517b1c34ad9a8114ea15a6c08d1e3f1d40741d259f0f1087fc3ea96fae7dfeb697e +"@floating-ui/core@npm:^1.4.2": + version: 1.5.0 + resolution: "@floating-ui/core@npm:1.5.0" + dependencies: + "@floating-ui/utils": ^0.1.3 + checksum: bca811cefd09c3f56c4cf58c3e94826c1ce4a0b40124e9030ddca2ef1cc68b4ddc5ba5b4d7cc94c9555aea6876d2428a77a2ae261fe5b39c79df247a9518b053 languageName: node linkType: hard -"@floating-ui/dom@npm:^1.3.0": - version: 1.4.5 - resolution: "@floating-ui/dom@npm:1.4.5" +"@floating-ui/dom@npm:^1.5.1": + version: 1.5.3 + resolution: "@floating-ui/dom@npm:1.5.3" dependencies: - "@floating-ui/core": ^1.3.1 - checksum: 2c406920221d99ba585f769c7aea450299cbd4d316b307151a214c861bd4deda3f724589d94b1bc676a9a33958d5a9d40b4b1e1065350e8699cc7a79f74f506e + "@floating-ui/core": ^1.4.2 + "@floating-ui/utils": ^0.1.3 + checksum: e5f30b911f939e40003851077bba441f269ae689bdc43c674bee43aa98fc6b7a5f59be432d27b7be599b1e4ab7b15c752875ea777a89cff01d157e593b78b25b languageName: node linkType: hard "@floating-ui/react-dom@npm:^2.0.0": - version: 2.0.1 - resolution: "@floating-ui/react-dom@npm:2.0.1" + version: 2.0.2 + resolution: "@floating-ui/react-dom@npm:2.0.2" dependencies: - "@floating-ui/dom": ^1.3.0 + "@floating-ui/dom": ^1.5.1 peerDependencies: react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 856c0c9de0a9117bcc69b1363fd9fa188133b9714394609db937903ab4330e9851becfd2a83453f40834de1a18377caf329b6b71afc1c69d7c5687f87da80ed4 + checksum: bfd07cfc9047a31e92e223dbbe48f2cdb75460126217b35cfbf8555eaf1718ce7c11f4ee4d39bdee89eaf9ad0a5c4dd9af443a552116fc3478a19a9f6283bdf6 + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.1.3": + version: 0.1.6 + resolution: "@floating-ui/utils@npm:0.1.6" + checksum: 0a089db0e0526b89e83cb0a773a903517db5c9067cd473febfd8fa91a3a2ccbc3a835234796c1bb528def21dbb67be50e28d9c473cb58a6d90679d7e549b9c0c languageName: node linkType: hard @@ -2880,39 +2934,41 @@ __metadata: languageName: node linkType: hard -"@gitbeaker/core@npm:^21.7.0": - version: 21.7.0 - resolution: "@gitbeaker/core@npm:21.7.0" +"@gitbeaker/core@npm:^35.8.1": + version: 35.8.1 + resolution: "@gitbeaker/core@npm:35.8.1" dependencies: - "@gitbeaker/requester-utils": ^21.7.0 - form-data: ^3.0.0 + "@gitbeaker/requester-utils": ^35.8.1 + form-data: ^4.0.0 li: ^1.3.0 + mime: ^3.0.0 + query-string: ^7.0.0 xcase: ^2.0.1 - checksum: 907f1dac7f43e288c71f184243712a65601a88ab7c9a8b7ff76629d8d94360c31f995b8142dec324615ad50f7e78e12f646a4302cb595dc990da3cdbd2514dfe + checksum: 5c23536dc83d5b4fa86c4efdae54cb2deba745e2f1f54e175c77f1883b218663e808b8fda253c81659aec791c254eb8b98c1e576f94f9c0f1d8f3c01976ae370 languageName: node linkType: hard -"@gitbeaker/node@npm:^21.3.0": - version: 21.7.0 - resolution: "@gitbeaker/node@npm:21.7.0" +"@gitbeaker/node@npm:^35.8.1": + version: 35.8.1 + resolution: "@gitbeaker/node@npm:35.8.1" dependencies: - "@gitbeaker/core": ^21.7.0 - "@gitbeaker/requester-utils": ^21.7.0 - form-data: ^3.0.0 - got: ^11.1.4 + "@gitbeaker/core": ^35.8.1 + "@gitbeaker/requester-utils": ^35.8.1 + delay: ^5.0.0 + got: ^11.8.3 xcase: ^2.0.1 - checksum: c5be30593dae749271f8529a0e33a1831f173d7e39796c9e30206a71e3007cc6368c802d296f1a8fcca056a8e718c77f50ae61aa17de8e444f0c91bf1a05950c + checksum: 387f5d7e31535454a66e627a2e830ceaa7954ac3de66882cdcc52a19d43f6b4221dc9d847baf39a7d08dda235a8f03c729a71efb32f5b84f246fd14d031b98cb languageName: node linkType: hard -"@gitbeaker/requester-utils@npm:^21.7.0": - version: 21.7.0 - resolution: "@gitbeaker/requester-utils@npm:21.7.0" +"@gitbeaker/requester-utils@npm:^35.8.1": + version: 35.8.1 + resolution: "@gitbeaker/requester-utils@npm:35.8.1" dependencies: - form-data: ^3.0.0 - query-string: ^6.12.1 + form-data: ^4.0.0 + qs: ^6.10.1 xcase: ^2.0.1 - checksum: 1930783d67a8add51bd6056e0524facfc867fb73d78387af4259a166a5e725eaa64a4c22c0fe33538762b0abb496781bf39d95fc8d544825354254dd05e05271 + checksum: 4178f7aa052cccd6caf3b2c4d63c9e04ab082ced8d32a7b07c33df6af42707769f8cabfb09b63f46e68e7e20fa0bc02757053adb8f3f79e6e5547b4cb4f119ca languageName: node linkType: hard @@ -3308,14 +3364,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10": - version: 0.11.10 - resolution: "@humanwhocodes/config-array@npm:0.11.10" +"@humanwhocodes/config-array@npm:^0.11.11": + version: 0.11.11 + resolution: "@humanwhocodes/config-array@npm:0.11.11" dependencies: "@humanwhocodes/object-schema": ^1.2.1 debug: ^4.1.1 minimatch: ^3.0.5 - checksum: 9e307a49a5baa28beb243d2c14c145f288fccd6885f4c92a9055707057ec40980242256b2a07c976cfa6c75f7081da111a40a9844d1ca8daeff2302f8b640e76 + checksum: 4195f68e485f7d1a7c95cf0f126cc41f7223eeda2f1b46b893123c99b35bb76145c37d25e2ba452d54815ed69bb656c0ce9e343ffa984470c08afa6e82a4713f languageName: node linkType: hard @@ -3347,6 +3403,19 @@ __metadata: languageName: node linkType: hard +"@hypnosphi/create-react-context@npm:^0.3.1": + version: 0.3.1 + resolution: "@hypnosphi/create-react-context@npm:0.3.1" + dependencies: + gud: ^1.0.0 + warning: ^4.0.3 + peerDependencies: + prop-types: ^15.0.0 + react: ">=0.14.0" + checksum: e8072221f9f9c2c47c3ebc5bc6079f9a71938e181d2b4aa3e1d3922707bc097336d5260dad088cf47c1d6e1ff34839fa21f2505a95bddda0d7548c5a955b5691 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -3388,50 +3457,50 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/console@npm:29.6.1" +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@types/node": "*" chalk: ^4.0.0 - jest-message-util: ^29.6.1 - jest-util: ^29.6.1 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 slash: ^3.0.0 - checksum: d62b089015f06d2ca277d8bff63a2c19b861b12161f5b8a69207498b980659dedfdcdcdcd1c0d5078a73cba5dd270392c65476ba9a48b795d1276517ba30f7ed + checksum: 7be408781d0a6f657e969cbec13b540c329671819c2f57acfad0dae9dbfe2c9be859f38fe99b35dba9ff1536937dc6ddc69fdcd2794812fa3c647a1619797f6c languageName: node linkType: hard -"@jest/core@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/core@npm:29.6.1" +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" dependencies: - "@jest/console": ^29.6.1 - "@jest/reporters": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/console": ^29.7.0 + "@jest/reporters": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 ci-info: ^3.2.0 exit: ^0.1.2 graceful-fs: ^4.2.9 - jest-changed-files: ^29.5.0 - jest-config: ^29.6.1 - jest-haste-map: ^29.6.1 - jest-message-util: ^29.6.1 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.6.1 - jest-resolve-dependencies: ^29.6.1 - jest-runner: ^29.6.1 - jest-runtime: ^29.6.1 - jest-snapshot: ^29.6.1 - jest-util: ^29.6.1 - jest-validate: ^29.6.1 - jest-watcher: ^29.6.1 + jest-changed-files: ^29.7.0 + jest-config: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-resolve-dependencies: ^29.7.0 + jest-runner: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + jest-watcher: ^29.7.0 micromatch: ^4.0.4 - pretty-format: ^29.6.1 + pretty-format: ^29.7.0 slash: ^3.0.0 strip-ansi: ^6.0.0 peerDependencies: @@ -3439,7 +3508,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: dccd83243af657da9af4c7ae578d55267c85e5bf1755a3a3e189c9ec0d23d409956e0eff7c13b81a388940ab9f294b0afc0241288d5832769687d919fae576fe + checksum: 934f7bf73190f029ac0f96662c85cd276ec460d407baf6b0dbaec2872e157db4d55a7ee0b1c43b18874602f662b37cb973dda469a4e6d88b4e4845b521adeeb2 languageName: node linkType: hard @@ -3452,72 +3521,72 @@ __metadata: languageName: node linkType: hard -"@jest/environment@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/environment@npm:29.6.1" +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" dependencies: - "@jest/fake-timers": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-mock: ^29.6.1 - checksum: 9c9fddcbec02b59b9719ede7d51e23e5dcd2230365a1df45ff782ea18af4b51fa0d9f5a3e76fbee6d0b7403ae4cd3fb9c45e9f86177c9be02bbbf84ae7f778c6 + jest-mock: ^29.7.0 + checksum: c7b1b40c618f8baf4d00609022d2afa086d9c6acc706f303a70bb4b67275868f620ad2e1a9efc5edd418906157337cce50589a627a6400bbdf117d351b91ef86 languageName: node linkType: hard -"@jest/expect-utils@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/expect-utils@npm:29.6.1" +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" dependencies: - jest-get-type: ^29.4.3 - checksum: e04164280c0b47a6285f39e70323b54eafc42367d9304897d55d70abd50324e060cb81efc7df82b1031eb46b82b85ecf343ed50c72654b11f1492b34c5e1a7b9 + jest-get-type: ^29.6.3 + checksum: 60b79d23a5358dc50d9510d726443316253ecda3a7fb8072e1526b3e0d3b14f066ee112db95699b7a43ad3f0b61b750c72e28a5a1cac361d7a2bb34747fa938a languageName: node linkType: hard -"@jest/expect@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/expect@npm:29.6.1" +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" dependencies: - expect: ^29.6.1 - jest-snapshot: ^29.6.1 - checksum: 7766e9e02eac18edd2dfdf3481083f1a45b42efdc5fb13e3290132a0379d807a8b892ba1055c6917a3a2ed902240c556ac8704e17652b1b8387a58711867ca2f + expect: ^29.7.0 + jest-snapshot: ^29.7.0 + checksum: b41f193fb697d3ced134349250aed6ccea075e48c4f803159db102b826a4e473397c68c31118259868fd69a5cba70e97e1c26d2c2ff716ca39dc73a2ccec037e languageName: node linkType: hard -"@jest/fake-timers@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/fake-timers@npm:29.6.1" +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@sinonjs/fake-timers": ^10.0.2 "@types/node": "*" - jest-message-util: ^29.6.1 - jest-mock: ^29.6.1 - jest-util: ^29.6.1 - checksum: 112b1f26f48f16dd8732f9842d480b66545cd5226d674e59c758f56680d234fc4debb77497784bf26130b21caab4d8cd39cf09afbbb2863a0a4ee0ccdb4c6e14 + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: cf0a8bcda801b28dc2e2b2ba36302200ee8104a45ad7a21e6c234148932f826cb3bc57c8df3b7b815aeea0861d7b6ca6f0d4778f93b9219398ef28749e03595c languageName: node linkType: hard -"@jest/globals@npm:^29.3.1, @jest/globals@npm:^29.5.0, @jest/globals@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/globals@npm:29.6.1" +"@jest/globals@npm:^29.3.1, @jest/globals@npm:^29.5.0, @jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" dependencies: - "@jest/environment": ^29.6.1 - "@jest/expect": ^29.6.1 - "@jest/types": ^29.6.1 - jest-mock: ^29.6.1 - checksum: 9ee8a6e476b8e74d4aa16150ea0ba0b8ecc25328062762cb46095fdec9638fc525d0e7f06e3aa1413600749c79d02a4db18da9912675843672242ea44763fa49 + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/types": ^29.6.3 + jest-mock: ^29.7.0 + checksum: a385c99396878fe6e4460c43bd7bb0a5cc52befb462cc6e7f2a3810f9e7bcce7cdeb51908fd530391ee452dc856c98baa2c5f5fa8a5b30b071d31ef7f6955cea languageName: node linkType: hard -"@jest/reporters@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/reporters@npm:29.6.1" +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" dependencies: "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/console": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 "@jridgewell/trace-mapping": ^0.3.18 "@types/node": "*" chalk: ^4.0.0 @@ -3526,13 +3595,13 @@ __metadata: glob: ^7.1.3 graceful-fs: ^4.2.9 istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^5.1.0 + istanbul-lib-instrument: ^6.0.0 istanbul-lib-report: ^3.0.0 istanbul-lib-source-maps: ^4.0.0 istanbul-reports: ^3.1.3 - jest-message-util: ^29.6.1 - jest-util: ^29.6.1 - jest-worker: ^29.6.1 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 slash: ^3.0.0 string-length: ^4.0.1 strip-ansi: ^6.0.0 @@ -3542,74 +3611,83 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: fd6e1eab9afee7eebb0a5f461b447b72d227459ce0e96e3ad4024e8795a36d03e1110c91fae9c61a5da50df42978041455f96bf5b09e5b0cead33fb44c63150b + checksum: a754402a799541c6e5aff2c8160562525e2a47e7d568f01ebfc4da66522de39cbb809bbb0a841c7052e4270d79214e70aec3c169e4eae42a03bc1a8a20cb9fa2 languageName: node linkType: hard -"@jest/schemas@npm:^29.4.3, @jest/schemas@npm:^29.6.0": - version: 29.6.0 - resolution: "@jest/schemas@npm:29.6.0" +"@jest/schemas@npm:^28.1.3": + version: 28.1.3 + resolution: "@jest/schemas@npm:28.1.3" + dependencies: + "@sinclair/typebox": ^0.24.1 + checksum: 8c325918f3e1b83e687987b05c2e5143d171f372b091f891fe17835f06fadd864ddae3c7e221a704bdd7e2ea28c4b337124c02023d8affcbdd51eca2879162ac + languageName: node + linkType: hard + +"@jest/schemas@npm:^29.4.3, @jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: "@sinclair/typebox": ^0.27.8 - checksum: 8671b1fb59c4296204d335190e8451e1983d9f2db6dbbd38f838c6c273fd222fc11e4e0df04adfb6169d36acfb9693d525db136653ec04e6884180f45a131d8f + checksum: b329e89cd5f20b9278ae1233df74016ebf7b385e0d14b9f4c1ad18d096c4c19d1e687aa113a9c976b16ec07f021ae53dea811fb8c1248a50ac34fbe009fdf6be languageName: node linkType: hard -"@jest/source-map@npm:^29.6.0": - version: 29.6.0 - resolution: "@jest/source-map@npm:29.6.0" +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" dependencies: "@jridgewell/trace-mapping": ^0.3.18 callsites: ^3.0.0 graceful-fs: ^4.2.9 - checksum: afa654e3634ad74d5f8388ccffd7ecbd745bdce7f6f0860b69c07827c3ee5bb408f52b6c3136b43157ef5874c099059484e43bd3aa391232ab27d8c330399789 + checksum: a2f177081830a2e8ad3f2e29e20b63bd40bade294880b595acf2fc09ec74b6a9dd98f126a2baa2bf4941acd89b13a4ade5351b3885c224107083a0059b60a219 languageName: node linkType: hard -"@jest/test-result@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/test-result@npm:29.6.1" +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" dependencies: - "@jest/console": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/console": ^29.7.0 + "@jest/types": ^29.6.3 "@types/istanbul-lib-coverage": ^2.0.0 collect-v8-coverage: ^1.0.0 - checksum: 0b460253f092042cb2edaae92f9f22aed150a2dc3eaa8dbd60a31db8a3b12fc14c89784b580e0a678ef52e7438a11b27eaaedd2bc9c4328dbbd6d5d72983de6c + checksum: 7de54090e54a674ca173470b55dc1afdee994f2d70d185c80236003efd3fa2b753fff51ffcdda8e2890244c411fd2267529d42c4a50a8303755041ee493e6a04 languageName: node linkType: hard -"@jest/test-sequencer@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/test-sequencer@npm:29.6.1" +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" dependencies: - "@jest/test-result": ^29.6.1 + "@jest/test-result": ^29.7.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.1 + jest-haste-map: ^29.7.0 slash: ^3.0.0 - checksum: 411b7fd3a55daaf6f3ce7d3f3cd7114580126df9190a3f27d4e5a5429d91cb56c77899560afefd69451cde4911259c44f9e5fb09d975dc1f1ba597295a64f165 + checksum: 593a8c4272797bb5628984486080cbf57aed09c7cfdc0a634e8c06c38c6bef329c46c0016e84555ee55d1cd1f381518cf1890990ff845524c1123720c8c1481b languageName: node linkType: hard -"@jest/transform@npm:^29.3.1, @jest/transform@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/transform@npm:29.6.1" +"@jest/transform@npm:^29.3.1, @jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" dependencies: "@babel/core": ^7.11.6 - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@jridgewell/trace-mapping": ^0.3.18 babel-plugin-istanbul: ^6.1.1 chalk: ^4.0.0 convert-source-map: ^2.0.0 fast-json-stable-stringify: ^2.1.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.1 - jest-regex-util: ^29.4.3 - jest-util: ^29.6.1 + jest-haste-map: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 micromatch: ^4.0.4 pirates: ^4.0.4 slash: ^3.0.0 write-file-atomic: ^4.0.2 - checksum: e34ddd89f372af749e983e29febfbb6f9a96eb677af32b5b299ce36eeab7b1ae55ddda2b64ff91437991f3f9b43cfc7ffa3b511ce7e7c1c23ae2b50d8a65a07f + checksum: 7f4a7f73dcf45dfdf280c7aa283cbac7b6e5a904813c3a93ead7e55873761fc20d5c4f0191d2019004fac6f55f061c82eb3249c2901164ad80e362e7a7ede5a6 languageName: node linkType: hard @@ -3639,17 +3717,17 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/types@npm:29.6.1" +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" dependencies: - "@jest/schemas": ^29.6.0 + "@jest/schemas": ^29.6.3 "@types/istanbul-lib-coverage": ^2.0.0 "@types/istanbul-reports": ^3.0.0 "@types/node": "*" "@types/yargs": ^17.0.8 chalk: ^4.0.0 - checksum: 58de1c2484f6c4968b566fb1661506794d3df79476c0605a71b6e40b8a5a1a9837b9c692782540a179daa424c572c7d0818afa306918e3fcd29c4a962ed34a7b + checksum: ea4e493dd3fb47933b8ccab201ae573dcc451f951dc44ed2a86123cd8541b82aa9d2b1031caf9b1080d6673c517e2dcc25a44b2dc4f3fbc37bfc965d444888c0 languageName: node linkType: hard @@ -3682,14 +3760,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: 78055e2526108331126366572045355051a930f017d1904a4f753d3f4acee8d92a14854948095626f6163cffc24ea4e3efa30637417bb866b84743dec7ef6fd9 - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.0.3": +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" checksum: 0dbc9e29bc640bbbdc5b9876d2859c69042bfcf1423c1e6421bcca53e826660bff4e41c7d4bcb8dbea696404231a6f902f76ba41835d049e20f2dd6cffb713bf @@ -3713,13 +3784,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 3fbaff1387c1338b097eeb6ff92890d7838f7de0dde259e4983763b44540bfd5ca6a1f7644dc8ad003a57f7e80670d5b96a8402f1386ba9aee074743ae9bad51 - languageName: node - linkType: hard - "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" @@ -3738,12 +3802,12 @@ __metadata: linkType: hard "@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.18 - resolution: "@jridgewell/trace-mapping@npm:0.3.18" + version: 0.3.19 + resolution: "@jridgewell/trace-mapping@npm:0.3.19" dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: e5045775f076022b6c7cc64a7b55742faa5442301cb3389fd0e6712fafc46a2bb13c68fa1ffaf7b8bb665a91196f050b4115885fc802094ebc06a1cf665935ac + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 845e6c6efca621b2b85e4d13fd25c319b6e4ab1ea78d4385ff6c0f78322ea0fcdfec8ac763aa4b56e8378c96d7bef101a2638c7a1a076f7d62f6376230c940a7 languageName: node linkType: hard @@ -3878,11 +3942,11 @@ __metadata: linkType: hard "@lit/reactive-element@npm:^1.3.0, @lit/reactive-element@npm:^1.4.0, @lit/reactive-element@npm:^1.6.0": - version: 1.6.2 - resolution: "@lit/reactive-element@npm:1.6.2" + version: 1.6.3 + resolution: "@lit/reactive-element@npm:1.6.3" dependencies: "@lit-labs/ssr-dom-shim": ^1.0.0 - checksum: 2845fa086553c131f41cf58ad3bc0ed4c9b24b3d92d8151936086d385cc5295a79da4113ae06a9a39b5f3184f43b2b85d801520c4114c13ca8e730289276a6a6 + checksum: 10f1d25e24e32feb21c4c6f9e11d062901241602e12c4ecf746b3138f87fed4d8394194645514d5c1bfd5f33f3fd56ee8ef41344e2cb4413c40fe4961ec9d419 languageName: node linkType: hard @@ -3909,84 +3973,84 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:13.4.12": - version: 13.4.12 - resolution: "@next/env@npm:13.4.12" - checksum: 751368260c72514ca2b64af8f938c1da4ca80bc888fa20333a585934edb3cbf9fcdaef84a4d4482bb2d893bbcb48cbc30ae92ffecc0b60cee5c38a2cc06ab971 +"@next/env@npm:13.4.19": + version: 13.4.19 + resolution: "@next/env@npm:13.4.19" + checksum: 0d9cb76fedcde6f8116c5f029d999cccaf929c9eb8c55daf1d38ae223a80113abae28834e537b26b81731d84ed14fd5231301b2126cd7d9097a7e175dd79bf59 languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-darwin-arm64@npm:13.4.12" +"@next/swc-darwin-arm64@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-darwin-arm64@npm:13.4.19" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-darwin-x64@npm:13.4.12" +"@next/swc-darwin-x64@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-darwin-x64@npm:13.4.19" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-linux-arm64-gnu@npm:13.4.12" +"@next/swc-linux-arm64-gnu@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-linux-arm64-gnu@npm:13.4.19" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-linux-arm64-musl@npm:13.4.12" +"@next/swc-linux-arm64-musl@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-linux-arm64-musl@npm:13.4.19" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-linux-x64-gnu@npm:13.4.12" +"@next/swc-linux-x64-gnu@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-linux-x64-gnu@npm:13.4.19" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-linux-x64-musl@npm:13.4.12" +"@next/swc-linux-x64-musl@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-linux-x64-musl@npm:13.4.19" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-win32-arm64-msvc@npm:13.4.12" +"@next/swc-win32-arm64-msvc@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-win32-arm64-msvc@npm:13.4.19" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-win32-ia32-msvc@npm:13.4.12" +"@next/swc-win32-ia32-msvc@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-win32-ia32-msvc@npm:13.4.19" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:13.4.12": - version: 13.4.12 - resolution: "@next/swc-win32-x64-msvc@npm:13.4.12" +"@next/swc-win32-x64-msvc@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-win32-x64-msvc@npm:13.4.19" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@ngtools/webpack@npm:16.1.5": - version: 16.1.5 - resolution: "@ngtools/webpack@npm:16.1.5" +"@ngtools/webpack@npm:16.2.4": + version: 16.2.4 + resolution: "@ngtools/webpack@npm:16.2.4" peerDependencies: "@angular/compiler-cli": ^16.0.0 typescript: ">=4.9.3 <5.2" webpack: ^5.54.0 - checksum: d728aeaee73597b72e2b42532e860215a2e30cc4b55c7fdb5dad251d9a6fdc11f7dd44702a1b0b43912d88d96008a5cdb6403edcb130735bbbeeadab2e0939c3 + checksum: 7bbf12e04e922372b9b8d29a8ee3dd3dd5f9bb12aaf82f85156bfd2270284875553fa5dc19566c30f3769960e701051204de646fce573098febabb629415e044 languageName: node linkType: hard @@ -4195,11 +4259,11 @@ __metadata: linkType: hard "@npmcli/query@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/query@npm:3.0.0" + version: 3.0.1 + resolution: "@npmcli/query@npm:3.0.1" dependencies: postcss-selector-parser: ^6.0.10 - checksum: 58cff90a0a0b9d603e43723bb51f28ab7d36db778b9d6ef1acf8735fb0303850695fd87ccdbfe796e6b6891b474ea95900019d74ac92f440fd1cdd20db6d5f7c + checksum: 497f03887121df13dbbc7a008772708746ecb9d8b9dbb1d8a8cdc5eb03ff6dbce0e78cbc48102e7cd3d2f3abc2faf22fd5348bb3c33efd13e2077faf8d71efde languageName: node linkType: hard @@ -4229,12 +4293,12 @@ __metadata: languageName: node linkType: hard -"@nrwl/cli@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/cli@npm:15.9.4" +"@nrwl/cli@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/cli@npm:15.9.7" dependencies: - nx: 15.9.4 - checksum: 07dc3b67297b6175c377bc9fb1f7827e1c768a116ee4b18a03d31f76178330e99b905aa197a50e75b3b2cf02d4ac1607d2397e6b2d8a2f104b898f8691d1dc51 + nx: 15.9.7 + checksum: 7fe454ae5a752abcc310edda6bd30ba4c9b7228d3c903231549d3a578825aaca4a49250b4ff73809aa02d8abc5478c6ac80ae1306b519f89a6f8cfedfb71c2cf languageName: node linkType: hard @@ -4248,17 +4312,17 @@ __metadata: linkType: hard "@nrwl/devkit@npm:>=15.5.2 < 16": - version: 15.9.4 - resolution: "@nrwl/devkit@npm:15.9.4" + version: 15.9.7 + resolution: "@nrwl/devkit@npm:15.9.7" dependencies: ejs: ^3.1.7 ignore: ^5.0.4 - semver: 7.3.4 + semver: 7.5.4 tmp: ~0.2.1 tslib: ^2.3.0 peerDependencies: nx: ">= 14.1 <= 16" - checksum: d51aee6c7e29c86904b7e85165182b222f9d93a80551ffb56dd06890d8f63f8ce4713e45b97e9e172dfa7f2ef82d9735ae4472d4f45823c95e2770f763694129 + checksum: bbf384f2e8ba6608ca17c977f9b2992ccef8f022c9687689b374acaaf94c252ebddd2389ef6e8f978af650e8c85819cc3fef440c5d873c4009e8f4c999d08f73 languageName: node linkType: hard @@ -4271,77 +4335,77 @@ __metadata: languageName: node linkType: hard -"@nrwl/nx-darwin-arm64@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-darwin-arm64@npm:15.9.4" +"@nrwl/nx-darwin-arm64@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-darwin-arm64@npm:15.9.7" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@nrwl/nx-darwin-x64@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-darwin-x64@npm:15.9.4" +"@nrwl/nx-darwin-x64@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-darwin-x64@npm:15.9.7" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@nrwl/nx-linux-arm-gnueabihf@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-linux-arm-gnueabihf@npm:15.9.4" +"@nrwl/nx-linux-arm-gnueabihf@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm-gnueabihf@npm:15.9.7" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@nrwl/nx-linux-arm64-gnu@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-linux-arm64-gnu@npm:15.9.4" +"@nrwl/nx-linux-arm64-gnu@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm64-gnu@npm:15.9.7" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@nrwl/nx-linux-arm64-musl@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-linux-arm64-musl@npm:15.9.4" +"@nrwl/nx-linux-arm64-musl@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm64-musl@npm:15.9.7" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nrwl/nx-linux-x64-gnu@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-linux-x64-gnu@npm:15.9.4" +"@nrwl/nx-linux-x64-gnu@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-x64-gnu@npm:15.9.7" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nrwl/nx-linux-x64-musl@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-linux-x64-musl@npm:15.9.4" +"@nrwl/nx-linux-x64-musl@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-x64-musl@npm:15.9.7" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nrwl/nx-win32-arm64-msvc@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-win32-arm64-msvc@npm:15.9.4" +"@nrwl/nx-win32-arm64-msvc@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-win32-arm64-msvc@npm:15.9.7" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nrwl/nx-win32-x64-msvc@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/nx-win32-x64-msvc@npm:15.9.4" +"@nrwl/nx-win32-x64-msvc@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-win32-x64-msvc@npm:15.9.7" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@nrwl/tao@npm:15.9.4": - version: 15.9.4 - resolution: "@nrwl/tao@npm:15.9.4" +"@nrwl/tao@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/tao@npm:15.9.7" dependencies: - nx: 15.9.4 + nx: 15.9.7 bin: tao: index.js - checksum: e184d41ce7cdf69ed75b8a9d8bcd7d964b83fd4134e35ab2e5fdcb2a50091f113f5ae2984da728f2b6090f30219618dde7479488502f63943de49f1fc4d853b1 + checksum: 6ef6d77da018ad0ebaddc9bd4608d859211458e65979fc034e3c1e2bdfc77041c4ef43c24ab1dac108c48e8461de3bd266978948e523d4d6214d942895d26253 languageName: node linkType: hard @@ -4591,9 +4655,9 @@ __metadata: linkType: hard "@octokit/openapi-types@npm:^18.0.0": - version: 18.0.0 - resolution: "@octokit/openapi-types@npm:18.0.0" - checksum: d90fab10d962be71e72b85ffab2055cffd9c3196ff1edc3e4106deb78e99e8782965cf7aa6a4c1398f828e4d0c3e0f905915debfe34396d956dfce8e75b21664 + version: 18.1.1 + resolution: "@octokit/openapi-types@npm:18.1.1" + checksum: 856d3bb9f8c666e837dd5e8b8c216ee4342b9ed63ff8da922ca4ce5883ed1dfbec73390eb13d69fbcb4703a4c8b8b6a586df3b0e675ff93bf3d46b5b4fe0968e languageName: node linkType: hard @@ -4818,20 +4882,6 @@ __metadata: languageName: node linkType: hard -"@pkgr/utils@npm:^2.3.1": - version: 2.4.2 - resolution: "@pkgr/utils@npm:2.4.2" - dependencies: - cross-spawn: ^7.0.3 - fast-glob: ^3.3.0 - is-glob: ^4.0.3 - open: ^9.1.0 - picocolors: ^1.0.0 - tslib: ^2.6.0 - checksum: 7c3e68f6405a1d4c51f418d8d580e71d7bade2683d5db07e8413d8e57f7e389047eda44a2341f77a1b3085895fca7676a9d45e8812a58312524f8c4c65d501be - languageName: node - linkType: hard - "@playwright/test@npm:1.36.0": version: 1.36.0 resolution: "@playwright/test@npm:1.36.0" @@ -4849,8 +4899,8 @@ __metadata: linkType: hard "@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.1, @pmmmwh/react-refresh-webpack-plugin@npm:^0.5.5": - version: 0.5.10 - resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.10" + version: 0.5.11 + resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.11" dependencies: ansi-html-community: ^0.0.8 common-path-prefix: ^3.0.0 @@ -4865,7 +4915,7 @@ __metadata: "@types/webpack": 4.x || 5.x react-refresh: ">=0.10.0 <1.0.0" sockjs-client: ^1.4.0 - type-fest: ">=0.17.0 <4.0.0" + type-fest: ">=0.17.0 <5.0.0" webpack: ">=4.43.0 <6.0.0" webpack-dev-server: 3.x || 4.x webpack-hot-middleware: 2.x @@ -4883,7 +4933,7 @@ __metadata: optional: true webpack-plugin-serve: optional: true - checksum: e470b543c5e8d73eeaa73636e1976e6719db6ae29c93fa62818f5796c1883051f379a3cb1ff85d909ef2c6bb9ef13ca46c36f1878c48d143b1355fea6660e547 + checksum: a9c8468417a14a23339e313cff6ddb8029e0637748973070e61d83a2534620b3492b9a42ecf9eb9d63cb709f53c17fe814bc7dd68d64c300db338e9fd7287bc4 languageName: node linkType: hard @@ -4921,11 +4971,11 @@ __metadata: linkType: hard "@prefresh/core@npm:^1.5.1": - version: 1.5.1 - resolution: "@prefresh/core@npm:1.5.1" + version: 1.5.2 + resolution: "@prefresh/core@npm:1.5.2" peerDependencies: preact: ^10.0.0 - checksum: 7a1063a65911fbfcd5b02f34911875de5ffedb02ad4dda2bf9c519193ccb38f21b65ac3a2ba0bc4d8526c847b623013e0d2c1e7a58091aee33fc95ac40f4ad14 + checksum: 53d1ce714ed098ccc11f3a8e2826ff6b90237445c24df6281eb162791b534d1d7626a43c0c1c7427139d2ade658e1ba7020963c001135bbdbeeb15073008529b languageName: node linkType: hard @@ -5531,8 +5581,8 @@ __metadata: linkType: hard "@rollup/pluginutils@npm:^5.0.2": - version: 5.0.2 - resolution: "@rollup/pluginutils@npm:5.0.2" + version: 5.0.4 + resolution: "@rollup/pluginutils@npm:5.0.4" dependencies: "@types/estree": ^1.0.0 estree-walker: ^2.0.2 @@ -5542,18 +5592,18 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: b06f73c15bb59418aa6fbfead5675bab2d6922e15663525ffc2eb8429530bc5add516600adb251cfbf9b60f3d12fb821cde155cb5103415154a476bd0f163432 + checksum: 4114d0dbc22623d33ee38885e90afada4d96fae92e9645693fe438f6313832377ffb6b2809d90e96cc269339a54e2c0c46a739f621d9041050b0b751020f726b languageName: node linkType: hard -"@schematics/angular@npm:16.1.5": - version: 16.1.5 - resolution: "@schematics/angular@npm:16.1.5" +"@schematics/angular@npm:16.2.4": + version: 16.2.4 + resolution: "@schematics/angular@npm:16.2.4" dependencies: - "@angular-devkit/core": 16.1.5 - "@angular-devkit/schematics": 16.1.5 + "@angular-devkit/core": 16.2.4 + "@angular-devkit/schematics": 16.2.4 jsonc-parser: 3.2.0 - checksum: 29d937ce277fdb60d4c218fbba09a6f8430ea1d9a76b8378b3c8bb1d0711d7cf7145802cb43e0f615374239f762aea8f79b173e71db19794f6140504a30396d6 + checksum: 8435fe5d85ea45c8bf848d6b4297467b25b9b0cbdc71a7b5ec80dd614f106a9e4a7738d27337507048978754ebaa241548108c94694b5359b36308d47c1f0c21 languageName: node linkType: hard @@ -5580,19 +5630,30 @@ __metadata: languageName: node linkType: hard -"@sigstore/bundle@npm:^1.0.0": - version: 1.0.0 - resolution: "@sigstore/bundle@npm:1.0.0" +"@sigstore/bundle@npm:^1.1.0": + version: 1.1.0 + resolution: "@sigstore/bundle@npm:1.1.0" dependencies: "@sigstore/protobuf-specs": ^0.2.0 - checksum: 563ffbcb1bd3d1dc9bf609a5803e153d94405ddcacd145a3d65f5519c00b158ea8fdb2476f0fdf70b40f4c4eb0643b86deb6ff7a621b33b88b0fa9f7c4f94865 + checksum: f29af2c59eefceb2c6fb88e6acb31efd7400a46968324ad60c19f054bcac3c16f6e2dfa5162feaeb57e3b1688dcd0b659a9d00ca27bbe7907d472758da15586c languageName: node linkType: hard "@sigstore/protobuf-specs@npm:^0.2.0": - version: 0.2.0 - resolution: "@sigstore/protobuf-specs@npm:0.2.0" - checksum: 77c7b16c384f249213ced779c9605aa382b85d97c4f87fb1d6e82c7cacc9493aa6ca412b0b6960a6496a47ad95188561787da263c27733a676bc80a3d79c261c + version: 0.2.1 + resolution: "@sigstore/protobuf-specs@npm:0.2.1" + checksum: 756b3bc64e7f21d966473208cd3920fcde6744025f7deb1d3be1d2b6261b825178b393db7458cd191b2eab947e516eacd6f91aa2f4545d8c045431fb699ac357 + languageName: node + linkType: hard + +"@sigstore/sign@npm:^1.0.0": + version: 1.0.0 + resolution: "@sigstore/sign@npm:1.0.0" + dependencies: + "@sigstore/bundle": ^1.1.0 + "@sigstore/protobuf-specs": ^0.2.0 + make-fetch-happen: ^11.0.1 + checksum: 579b4ba31acd662fc9053e6c1e49fda320fa7faf95233d9f7daa87cf198f6f785658fed2791d18d340176f55da300c178c00fcb4871a7d8582df446a09ac6287 languageName: node linkType: hard @@ -5606,6 +5667,13 @@ __metadata: languageName: node linkType: hard +"@sinclair/typebox@npm:^0.24.1": + version: 0.24.51 + resolution: "@sinclair/typebox@npm:0.24.51" + checksum: 458131e83ca59ad3721f0abeef2aa5220aff2083767e1143d75c67c85d55ef7a212f48f394471ee6bdd2e860ba30f09a489cdd2a28a2824d5b0d1014bdfb2552 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -5773,8 +5841,8 @@ __metadata: linkType: soft "@storybook/addon-designs@npm:^7.0.4": - version: 7.0.4 - resolution: "@storybook/addon-designs@npm:7.0.4" + version: 7.0.5 + resolution: "@storybook/addon-designs@npm:7.0.5" dependencies: "@figspec/react": ^1.0.0 peerDependencies: @@ -5791,7 +5859,7 @@ __metadata: optional: true react-dom: optional: true - checksum: cebbef90913c91e11a67ea48d9c714b47d242d22f28a04ccab6a7beecd332de3d376082b224ad2c54a3c4dc7e45d3a11692f8c14a9b17c4b085a75682292591e + checksum: 01bb51d51c141f644bf1b9a163130acc55f800f0baa2cdbe8bbff6a4e0d323f8c1f5a32448a4aac2b2e05b68cb3ab0eb37c78accc26d37c0876195e0f1217c78 languageName: node linkType: hard @@ -5801,6 +5869,7 @@ __metadata: dependencies: "@jest/transform": ^29.3.1 "@mdx-js/react": ^2.1.5 + "@rollup/pluginutils": ^5.0.2 "@storybook/blocks": "workspace:*" "@storybook/client-logger": "workspace:*" "@storybook/components": "workspace:*" @@ -5821,6 +5890,7 @@ __metadata: remark-slug: ^6.0.0 ts-dedent: ^2.0.0 typescript: ~4.9.3 + vite: ^4.0.4 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -6302,7 +6372,7 @@ __metadata: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 rxjs: ^6.0.0 || ^7.4.0 typescript: ^4.0.0 || ^5.0.0 - zone.js: ^0.8.29 || >= 0.9.0 < 1.0.0 + zone.js: ">= 0.11.1 < 1.0.0" peerDependenciesMeta: "@angular/cli": optional: true @@ -6426,7 +6496,6 @@ __metadata: "@storybook/client-logger": "workspace:*" "@storybook/core-common": "workspace:*" "@storybook/csf-plugin": "workspace:*" - "@storybook/mdx2-csf": ^1.0.0 "@storybook/node-logger": "workspace:*" "@storybook/preview": "workspace:*" "@storybook/preview-api": "workspace:*" @@ -6441,8 +6510,6 @@ __metadata: fs-extra: ^11.1.0 glob: ^10.0.0 magic-string: ^0.30.0 - remark-external-links: ^8.0.0 - remark-slug: ^6.0.0 rollup: ^3.20.1 slash: ^5.0.0 typescript: ~4.9.3 @@ -6475,7 +6542,7 @@ __metadata: "@storybook/node-logger": "workspace:*" "@storybook/preview": "workspace:*" "@storybook/preview-api": "workspace:*" - "@swc/core": ^1.3.49 + "@swc/core": ^1.3.82 "@types/node": ^16.0.0 "@types/pretty-hrtime": ^1.0.0 "@types/semver": ^7.3.4 @@ -6560,6 +6627,7 @@ __metadata: "@storybook/client-api": "workspace:*" "@storybook/codemod": "workspace:*" "@storybook/core-common": "workspace:*" + "@storybook/core-events": "workspace:*" "@storybook/core-server": "workspace:*" "@storybook/csf-tools": "workspace:*" "@storybook/node-logger": "workspace:*" @@ -6616,6 +6684,15 @@ __metadata: languageName: unknown linkType: soft +"@storybook/client-logger@npm:7.4.6": + version: 7.4.6 + resolution: "@storybook/client-logger@npm:7.4.6" + dependencies: + "@storybook/global": ^5.0.0 + checksum: 170ad58c17e2608639533fe24aaa96ddd4d77d23b4b28f265b2cb67510fef966fc20b029e070fdc7216ba1cdb724d1210b2f8edc8aa538de32fd6e549f9010cf + languageName: node + linkType: hard + "@storybook/client-logger@workspace:*, @storybook/client-logger@workspace:lib/client-logger": version: 0.0.0-use.local resolution: "@storybook/client-logger@workspace:lib/client-logger" @@ -6665,6 +6742,7 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/components@workspace:ui/components" dependencies: + "@chromaui/addon-visual-tests": ^0.0.77 "@popperjs/core": ^2.6.0 "@radix-ui/react-select": ^1.2.2 "@radix-ui/react-toolbar": ^1.0.4 @@ -6678,7 +6756,7 @@ __metadata: "@types/util-deprecate": ^1.0.0 css: ^3.0.0 memoizerific: ^1.11.3 - overlayscrollbars: ^2.2.0 + overlayscrollbars: 2.2.1 overlayscrollbars-react: ^0.5.0 polished: ^4.2.2 prettier: ^2.8.0 @@ -6708,9 +6786,11 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/core-common@workspace:lib/core-common" dependencies: + "@storybook/core-events": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/types": "workspace:*" "@types/find-cache-dir": ^3.2.1 + "@types/fs-extra": ^11.0.1 "@types/mock-fs": ^4.13.1 "@types/node": ^16.0.0 "@types/node-fetch": ^2.6.4 @@ -6718,7 +6798,7 @@ __metadata: "@types/pretty-hrtime": ^1.0.0 chalk: ^4.1.0 esbuild: ^0.18.0 - esbuild-register: ^3.4.0 + esbuild-register: ^3.5.0 file-system-cache: 2.3.0 find-cache-dir: ^3.0.0 find-up: ^5.0.0 @@ -6775,7 +6855,6 @@ __metadata: "@types/node-fetch": ^2.5.7 "@types/pretty-hrtime": ^1.0.0 "@types/semver": ^7.3.4 - "@types/serve-favicon": ^2.5.2 "@types/ws": ^8 better-opn: ^3.0.2 boxen: ^5.1.2 @@ -6796,7 +6875,6 @@ __metadata: prompts: ^2.4.0 read-pkg-up: ^7.0.1 semver: ^7.3.7 - serve-favicon: ^2.5.0 slash: ^5.0.0 telejson: ^7.2.0 tiny-invariant: ^1.3.1 @@ -6871,6 +6949,32 @@ __metadata: languageName: node linkType: hard +"@storybook/design-system@npm:^7.15.15": + version: 7.15.15 + resolution: "@storybook/design-system@npm:7.15.15" + dependencies: + "@emotion/weak-memoize": ^0.3.0 + "@storybook/theming": ^7.0.2 + "@types/pluralize": ^0.0.29 + "@types/prismjs": ^1.16.6 + "@types/react-modal": ^3.12.1 + "@types/uuid": ^8.3.1 + copy-to-clipboard: ^3.3.1 + human-format: ^0.11.0 + pluralize: ^8.0.0 + polished: ^3.6.4 + prismjs: 1.25.0 + react-github-button: ^0.1.11 + react-modal: ^3.11.2 + react-popper-tooltip: ^2.11.1 + uuid: ^3.3.3 + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 3f2ea63556aed966e906b8e56fa0ef12fd67f919426a63350a7ecba5a6cff277b8e18362d680530f7fdfa7240c8ceb890984a0594f5129f2b9d972e991b297cf + languageName: node + linkType: hard + "@storybook/docs-mdx@npm:^0.1.0": version: 0.1.0 resolution: "@storybook/docs-mdx@npm:0.1.0" @@ -6929,11 +7033,11 @@ __metadata: linkType: hard "@storybook/expect@npm:storybook-jest": - version: 27.5.2-0 - resolution: "@storybook/expect@npm:27.5.2-0" + version: 28.1.3-5 + resolution: "@storybook/expect@npm:28.1.3-5" dependencies: - "@types/jest": ">=26.0.0" - checksum: 068d07334d2dc26bdd8ddf2a2d6f98ed06536a64232c3cdf035240c4d70fdff3a4aecc33e9b012dc3d01236834116a078ef17a59d4aea90eabbe67ba60d26307 + "@types/jest": 28.1.3 + checksum: ea912b18e1353cdd3bbdf93667ffebca7f843fa28a01e647429bffa6cb074afd4401d13eb2ecbfc9714e100e128ec1fe2686bded52e9e378ce44774889563558 languageName: node linkType: hard @@ -6996,12 +7100,12 @@ __metadata: linkType: soft "@storybook/icons@npm:^1.1.6": - version: 1.1.6 - resolution: "@storybook/icons@npm:1.1.6" + version: 1.1.7 + resolution: "@storybook/icons@npm:1.1.7" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c8c2fb8f91c5c93b1cd6951c06a25f5b8203943cb95d7b6ef40015896596ed7444911fa556726c880902110f04e013f3def3fbae0eb6f7dbfcc96ec93fce9cb9 + checksum: 5bb97f948f2a1cfc067a120f8e17004cdf9cdef0d08558ec51659e4e4d4b1620c76ced6d15a57d84aed888c664a0f9daa7a6e7b4ef22302d95f3228aa627bc83 languageName: node linkType: hard @@ -7019,13 +7123,14 @@ __metadata: linkType: soft "@storybook/jest@npm:next": - version: 0.1.1-next.2 - resolution: "@storybook/jest@npm:0.1.1-next.2" + version: 0.2.3-next.0 + resolution: "@storybook/jest@npm:0.2.3-next.0" dependencies: "@storybook/expect": storybook-jest - "@testing-library/jest-dom": ^5.16.2 + "@testing-library/jest-dom": ^6.1.2 + "@types/jest": 28.1.3 jest-mock: ^27.3.0 - checksum: e19fd99003987930a808ae35930da56299ce9790714c8f5f31fcc258584d6930235ef436e87ae644a8ec2b4c281493e6ed36872554832229edd1feca8c12c451 + checksum: 96e800be9adb18d689ff66efe3b953f06d3c209cb0a08559ea47a6de0cd09678e161bdd531cb2d008d58eecc33cb9cb49228e9014435818f3259e1b9eac46635 languageName: node linkType: hard @@ -7105,6 +7210,7 @@ __metadata: "@storybook/types": "workspace:*" "@testing-library/react": ^11.2.2 "@types/semver": ^7.3.4 + browser-dtector: ^3.4.0 copy-to-clipboard: ^3.3.1 downshift: ^6.0.15 fs-extra: ^11.1.0 @@ -7139,13 +7245,13 @@ __metadata: resolution: "@storybook/nextjs@workspace:frameworks/nextjs" dependencies: "@babel/core": ^7.22.9 - "@babel/plugin-proposal-class-properties": ^7.18.6 - "@babel/plugin-proposal-export-namespace-from": ^7.18.9 - "@babel/plugin-proposal-numeric-separator": ^7.18.6 - "@babel/plugin-proposal-object-rest-spread": ^7.20.7 "@babel/plugin-syntax-bigint": ^7.8.3 "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-import-assertions": ^7.22.5 + "@babel/plugin-transform-class-properties": ^7.22.5 + "@babel/plugin-transform-export-namespace-from": ^7.22.11 + "@babel/plugin-transform-numeric-separator": ^7.22.11 + "@babel/plugin-transform-object-rest-spread": ^7.22.15 "@babel/plugin-transform-runtime": ^7.22.9 "@babel/preset-env": ^7.22.9 "@babel/preset-react": ^7.22.5 @@ -7155,6 +7261,7 @@ __metadata: "@storybook/addon-actions": "workspace:*" "@storybook/builder-webpack5": "workspace:*" "@storybook/core-common": "workspace:*" + "@storybook/core-events": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/preset-react-webpack": "workspace:*" "@storybook/preview-api": "workspace:*" @@ -7168,7 +7275,7 @@ __metadata: fs-extra: ^11.1.0 image-size: ^1.0.0 loader-utils: ^3.2.0 - next: ^13.4.8 + next: 13.4.19 node-polyfill-webpack-plugin: ^2.0.1 pnp-webpack-plugin: ^1.7.0 postcss: ^8.4.21 @@ -7506,6 +7613,7 @@ __metadata: "@storybook/core-events": "workspace:*" "@storybook/global": ^5.0.0 "@storybook/preview-api": "workspace:*" + browser-dtector: ^3.4.0 typescript: ~4.9.3 languageName: unknown linkType: soft @@ -7550,9 +7658,8 @@ __metadata: "@storybook/react": "workspace:*" "@types/node": ^16.0.0 "@vitejs/plugin-react": ^3.0.1 - ast-types: ^0.14.2 magic-string: ^0.30.0 - react-docgen: 6.0.0-alpha.3 + react-docgen: ^6.0.2 typescript: ~4.9.3 vite: ^4.0.0 peerDependencies: @@ -7732,7 +7839,7 @@ __metadata: "@storybook/web-components": "workspace:*" "@storybook/web-components-vite": "workspace:*" "@storybook/web-components-webpack5": "workspace:*" - "@swc/core": ^1.3.23 + "@swc/core": 1.3.82 "@swc/jest": ^0.2.26 "@testing-library/dom": ^7.29.4 "@testing-library/jest-dom": ^5.11.9 @@ -7752,7 +7859,7 @@ __metadata: "@vitejs/plugin-react": ^2.1.0 babel-eslint: ^10.1.0 babel-loader: ^9.1.2 - chromatic: 6.11.2 + chromatic: 7.1.0 concurrently: ^5.3.0 cross-env: ^7.0.3 danger: ^11.2.6 @@ -7949,7 +8056,7 @@ __metadata: "@storybook/types": "workspace:*" expect-type: ^0.15.0 svelte: ^4.0.0 - svelte-check: ^3.4.3 + svelte-check: 3.4.6 sveltedoc-parser: ^4.2.1 type-fest: ~2.19 typescript: ^5.0.4 @@ -7993,13 +8100,28 @@ __metadata: linkType: soft "@storybook/testing-library@npm:next": - version: 0.2.1-next.0 - resolution: "@storybook/testing-library@npm:0.2.1-next.0" + version: 0.2.2-next.0 + resolution: "@storybook/testing-library@npm:0.2.2-next.0" dependencies: "@testing-library/dom": ^9.0.0 - "@testing-library/user-event": ^14.0.0 + "@testing-library/user-event": ^14.4.0 ts-dedent: ^2.2.0 - checksum: c63e90f856505ee737bd7feb7b688c5bb5918f39c8088e85e40c6ee7ffcbb038e31d59904e3bd1a79267282f919a95ae060ab73f7af133c6f08ef0ee47ace80b + checksum: 4350e73776cba8ab5037ee9a8b07b957c73540873f64097648ed96b93f086469eab475ad19b917e5e2eee4faec67891fa443d703b9b4aa28efc9a74243970a4e + languageName: node + linkType: hard + +"@storybook/theming@npm:^7.0.2": + version: 7.4.6 + resolution: "@storybook/theming@npm:7.4.6" + dependencies: + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 + "@storybook/client-logger": 7.4.6 + "@storybook/global": ^5.0.0 + memoizerific: ^1.11.3 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 6250a413c346971792623bf5a907811fc009ff4a36b8f292d0f45c677269b2a50c29d84ab1e869ada7df3eb23d49614e1342bd2c88e71d4467702b92ebc42f2d languageName: node linkType: hard @@ -8036,8 +8158,8 @@ __metadata: "@storybook/csf": ^0.1.0 "@types/babel__core": ^7.0.0 "@types/express": ^4.7.0 + "@types/fs-extra": ^11.0.1 "@types/node": ^16.0.0 - "@types/react": ^16.14.34 file-system-cache: 2.3.0 typescript: ~4.9.3 languageName: unknown @@ -8250,121 +8372,238 @@ __metadata: languageName: node linkType: hard -"@sveltejs/vite-plugin-svelte-inspector@npm:^1.0.3": - version: 1.0.3 - resolution: "@sveltejs/vite-plugin-svelte-inspector@npm:1.0.3" +"@sveltejs/vite-plugin-svelte-inspector@npm:^1.0.4": + version: 1.0.4 + resolution: "@sveltejs/vite-plugin-svelte-inspector@npm:1.0.4" dependencies: debug: ^4.3.4 peerDependencies: "@sveltejs/vite-plugin-svelte": ^2.2.0 svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 - checksum: a64f9a8742cde3f601f6480b56128df8cab553043deab1f96884e34f153ca5020233348ce7ba624900d26b0da4324fef82f4b6a3deec33f9eca7f5938c33c1d7 + checksum: f21cb6bde0d8cce505c558dcb786d00e514c270848d9ff21dca12bc8335588e1bd05215fe3cd7478c8a6779bae7a75629b68d484fcdf309d759f25ee58ea771e languageName: node linkType: hard "@sveltejs/vite-plugin-svelte@npm:^2.4.2": - version: 2.4.3 - resolution: "@sveltejs/vite-plugin-svelte@npm:2.4.3" + version: 2.4.6 + resolution: "@sveltejs/vite-plugin-svelte@npm:2.4.6" dependencies: - "@sveltejs/vite-plugin-svelte-inspector": ^1.0.3 + "@sveltejs/vite-plugin-svelte-inspector": ^1.0.4 debug: ^4.3.4 deepmerge: ^4.3.1 kleur: ^4.1.5 - magic-string: ^0.30.1 - svelte-hmr: ^0.15.2 + magic-string: ^0.30.3 + svelte-hmr: ^0.15.3 vitefu: ^0.2.4 peerDependencies: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 - checksum: 2825f9b9625d5e1ac04f901dbeef9b9e1f6c2001f72d05b85f3d30d5d0c4eb68320901d9e06ee7b0ab842d042400ca65e88e054ef12e25ab1aa9a8710dde54d1 + checksum: de7d844bf5fc12aa4caf352f5825d58f6747eef68301a492128ea6756c3c193f1d1e1f75975abd4fdfb50f5a4ff45016a94f40c29e1b0121095c63f6bc10e219 + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-darwin-arm64@npm:1.3.82" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-darwin-arm64@npm:1.3.91" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-darwin-arm64@npm:1.3.71" - conditions: os=darwin & cpu=arm64 +"@swc/core-darwin-x64@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-darwin-x64@npm:1.3.82" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-darwin-x64@npm:1.3.71" +"@swc/core-darwin-x64@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-darwin-x64@npm:1.3.91" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.71" +"@swc/core-linux-arm-gnueabihf@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.82" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.91" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.71" +"@swc/core-linux-arm64-gnu@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.82" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.91" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.71" +"@swc/core-linux-arm64-musl@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.82" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.91" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.71" +"@swc/core-linux-x64-gnu@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.82" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.91" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-linux-x64-musl@npm:1.3.71" +"@swc/core-linux-x64-musl@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-linux-x64-musl@npm:1.3.82" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-x64-musl@npm:1.3.91" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.71" +"@swc/core-win32-arm64-msvc@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.82" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.91" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.71" +"@swc/core-win32-ia32-msvc@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.82" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.91" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.71": - version: 1.3.71 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.71" +"@swc/core-win32-x64-msvc@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.82" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.91" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.3.23, @swc/core@npm:^1.3.49": - version: 1.3.71 - resolution: "@swc/core@npm:1.3.71" +"@swc/core@npm:1.3.82": + version: 1.3.82 + resolution: "@swc/core@npm:1.3.82" + dependencies: + "@swc/core-darwin-arm64": 1.3.82 + "@swc/core-darwin-x64": 1.3.82 + "@swc/core-linux-arm-gnueabihf": 1.3.82 + "@swc/core-linux-arm64-gnu": 1.3.82 + "@swc/core-linux-arm64-musl": 1.3.82 + "@swc/core-linux-x64-gnu": 1.3.82 + "@swc/core-linux-x64-musl": 1.3.82 + "@swc/core-win32-arm64-msvc": 1.3.82 + "@swc/core-win32-ia32-msvc": 1.3.82 + "@swc/core-win32-x64-msvc": 1.3.82 + "@swc/types": ^0.1.4 + peerDependencies: + "@swc/helpers": ^0.5.0 + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: cee1f56e969074fe9e23fe51348d7da0c921949f5845e57030824d0e32d09fcefc647371c982e82836cc72c27c5fc5370c6aaff4f8f1c527d1c39c5ab6203e17 + languageName: node + linkType: hard + +"@swc/core@npm:^1.3.82": + version: 1.3.91 + resolution: "@swc/core@npm:1.3.91" dependencies: - "@swc/core-darwin-arm64": 1.3.71 - "@swc/core-darwin-x64": 1.3.71 - "@swc/core-linux-arm-gnueabihf": 1.3.71 - "@swc/core-linux-arm64-gnu": 1.3.71 - "@swc/core-linux-arm64-musl": 1.3.71 - "@swc/core-linux-x64-gnu": 1.3.71 - "@swc/core-linux-x64-musl": 1.3.71 - "@swc/core-win32-arm64-msvc": 1.3.71 - "@swc/core-win32-ia32-msvc": 1.3.71 - "@swc/core-win32-x64-msvc": 1.3.71 + "@swc/core-darwin-arm64": 1.3.91 + "@swc/core-darwin-x64": 1.3.91 + "@swc/core-linux-arm-gnueabihf": 1.3.91 + "@swc/core-linux-arm64-gnu": 1.3.91 + "@swc/core-linux-arm64-musl": 1.3.91 + "@swc/core-linux-x64-gnu": 1.3.91 + "@swc/core-linux-x64-musl": 1.3.91 + "@swc/core-win32-arm64-msvc": 1.3.91 + "@swc/core-win32-ia32-msvc": 1.3.91 + "@swc/core-win32-x64-msvc": 1.3.91 + "@swc/counter": ^0.1.1 + "@swc/types": ^0.1.5 peerDependencies: "@swc/helpers": ^0.5.0 dependenciesMeta: @@ -8391,7 +8630,14 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: f3d5fcb64056c893cd4cd108281515e843e1cbfbba6de2fa1c906f1d5cab3f25a9b6c2ad82e29c938fe031ee4b46e7162358eedf40c17569729a1f5f71768bf9 + checksum: 1b2b2fd400d476a073d69aa4a7eba754f9388c2d72e123a5fb942291c65e5c6a186302c6daafdb68121be999c604de8f01b8ff58126614e0a4e7ca5af6c9cfc7 + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.1": + version: 0.1.2 + resolution: "@swc/counter@npm:0.1.2" + checksum: 18be012107d4ba1f79776c48d83391ca2159103d7d31a59ff52fcc8024db51b71c5f46714a9fb73981739bc8a38dc6f385a046b71cc08f6043f3c47f5c409eab languageName: node linkType: hard @@ -8405,14 +8651,21 @@ __metadata: linkType: hard "@swc/jest@npm:^0.2.26": - version: 0.2.27 - resolution: "@swc/jest@npm:0.2.27" + version: 0.2.29 + resolution: "@swc/jest@npm:0.2.29" dependencies: "@jest/create-cache-key-function": ^27.4.2 jsonc-parser: ^3.2.0 peerDependencies: "@swc/core": "*" - checksum: fe996de5890e8d74aecbb4992b56d52fb1d584bfdb1ef4bcebe3d1a9690d804a95550e77dfe6b45a5f84acb137ed6f42c996e25a165aed07746094b67383d41a + checksum: 10f34341f9bc8003cec44f91a88b531ba44094aad97b2f8410fb2f94db9eb3b8fc7f6d14ba867eb9c1dc6ba29cc46058244b8280d673a7c681062fe0dc73c3f0 + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.4, @swc/types@npm:^0.1.5": + version: 0.1.5 + resolution: "@swc/types@npm:0.1.5" + checksum: b35f93fe896a2240f6f10544e408f9648c2bd4bcff9bd8d022d9a6942d31cf859f86119fb0bbb04a12eefa1f6a6745ffc7d18f3a490d76d7b6a074a7c9608144 languageName: node linkType: hard @@ -8442,8 +8695,8 @@ __metadata: linkType: hard "@testing-library/dom@npm:^9.0.0": - version: 9.3.1 - resolution: "@testing-library/dom@npm:9.3.1" + version: 9.3.3 + resolution: "@testing-library/dom@npm:9.3.3" dependencies: "@babel/code-frame": ^7.10.4 "@babel/runtime": ^7.12.5 @@ -8453,11 +8706,11 @@ __metadata: dom-accessibility-api: ^0.5.9 lz-string: ^1.5.0 pretty-format: ^27.0.2 - checksum: 25d1deddba014c107fd9703181fbb7063ed376d3ad42d7918ee752e7e677edfb5abaf672b22afc5257ffe760c9c7e5cc981656297c328bc61578d23c6b65b4dc + checksum: c3bbd67503634fd955233dc172531640656701fe35ecb9a83f85e5965874b786452f5e7c26b4f8b3b4fc4379f3a80193c74425b57843ba191f4845e22b0ac483 languageName: node linkType: hard -"@testing-library/jest-dom@npm:^5.11.9, @testing-library/jest-dom@npm:^5.16.2": +"@testing-library/jest-dom@npm:^5.11.9": version: 5.17.0 resolution: "@testing-library/jest-dom@npm:5.17.0" dependencies: @@ -8498,12 +8751,19 @@ __metadata: languageName: node linkType: hard -"@testing-library/user-event@npm:^14.0.0": - version: 14.4.3 - resolution: "@testing-library/user-event@npm:14.4.3" +"@testing-library/user-event@npm:^14.4.0": + version: 14.5.1 + resolution: "@testing-library/user-event@npm:14.5.1" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: 28e1e4ed2fdaa9486e203c6789386be228e305abd3fa41f38c828af415fd4a4e80f4de88de0e502ff11c4b4926f221b874a2a45bcc8170d30714e12dad2c1bd0 + checksum: 1e00d6ead23377885b906db6e46e259161a0efb4138f7527481d7435f3c8f65cb7e3eab2900e2ac1886fa6dd03416e773a3a60dea87a9a2086a7127dee315f6f + languageName: node + linkType: hard + +"@tootallnate/once@npm:1": + version: 1.1.2 + resolution: "@tootallnate/once@npm:1.1.2" + checksum: 8fe4d006e90422883a4fa9339dd05a83ff626806262e1710cee5758d493e8cbddf2db81c0e4690636dc840b02c9fda62877866ea774ebd07c1777ed5fafbdec6 languageName: node linkType: hard @@ -8576,83 +8836,83 @@ __metadata: linkType: hard "@types/aria-query@npm:^5.0.1": - version: 5.0.1 - resolution: "@types/aria-query@npm:5.0.1" - checksum: bc9e40ce37bd3a1654948778c7829bd55aea1bc5f2cd06fcf6cd650b07bb388995799e9aab6e2d93a6cf55dcba3b85c155f7ba93adefcc7c2e152fc6057061b5 + version: 5.0.2 + resolution: "@types/aria-query@npm:5.0.2" + checksum: 74579b9e3f7f5042e8a05ab103dd652e724a556a5700fab778c76c53729635b73da5d242143df1fb9447e607f904cbd81871dd2b876f0974831a794165287b20 languageName: node linkType: hard -"@types/babel__core@npm:^7, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.7": - version: 7.20.1 - resolution: "@types/babel__core@npm:7.20.1" +"@types/babel__core@npm:^7, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.7, @types/babel__core@npm:^7.18.0": + version: 7.20.2 + resolution: "@types/babel__core@npm:7.20.2" dependencies: "@babel/parser": ^7.20.7 "@babel/types": ^7.20.7 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: c83402fc7ef8abd1f94ffe350b8bde9a35ccb6c3624bc8e39b6a7e1a675d112f6b70ac1b05391a579ca3b126baffe66b0b94f954edef086c4482b97d293c3659 + checksum: 4bd4bc0803ddd17af37871a8139e5b6c80b182f5f6d716c6484da1286522eba84750ffc527539bc39496876e7193f316b7493b99caa37af2b4e6ef345ee2ff8c languageName: node linkType: hard "@types/babel__generator@npm:*": - version: 7.6.4 - resolution: "@types/babel__generator@npm:7.6.4" + version: 7.6.5 + resolution: "@types/babel__generator@npm:7.6.5" dependencies: "@babel/types": ^7.0.0 - checksum: e0051b450e4ba2df0a7e386f08df902a4e920f6f8d6f185d69ddbe9b0e2e2d3ae434bb51e437bc0fca2a9a0f5dc4ca44d3a1941ef75e74371e8be5bf64416fe4 + checksum: b3e2668950208a681966fb93faa3a9164319caf960ff2ae232469fd09aa9b59a35d3328221027c373bb29d250b709073479f4fa1e404d109515846a65e06f0e2 languageName: node linkType: hard "@types/babel__plugin-transform-runtime@npm:^7": - version: 7.9.2 - resolution: "@types/babel__plugin-transform-runtime@npm:7.9.2" - checksum: cee1ef257ef1ddf1ad983ed3f93826f0b51a563067791293c49713d50b721c15f990fd3760230a320426e1d367aa9f66ca35af8f5847daf8ea03588a4053cd6c + version: 7.9.3 + resolution: "@types/babel__plugin-transform-runtime@npm:7.9.3" + checksum: b78f43265cbe4b9156f5f390847a1c862e0789d4eb0fb78ef6a814ecbfe39ee262039ed16f5c62b45a418123ad09492c03205ed9bd3bf28c8988d1975e68eb1c languageName: node linkType: hard "@types/babel__preset-env@npm:^7": - version: 7.9.2 - resolution: "@types/babel__preset-env@npm:7.9.2" - checksum: 89d389de7fb2b4be8f43b021899b1fd8bdc85e912cc01b1b5a2504b033ada58b034d44131561c56ab6781c31913a21b769d33a05b549549bbc49bb92537e2dfb + version: 7.9.3 + resolution: "@types/babel__preset-env@npm:7.9.3" + checksum: c9675bdf2e0d152e4c579fe172074e8d24509229829cc29d975506137341e4a19a5c12cbb73a80d65fac7858e516ee04cdeac415fced58326afb9a7816cd58d8 languageName: node linkType: hard "@types/babel__template@npm:*": - version: 7.4.1 - resolution: "@types/babel__template@npm:7.4.1" + version: 7.4.2 + resolution: "@types/babel__template@npm:7.4.2" dependencies: "@babel/parser": ^7.1.0 "@babel/types": ^7.0.0 - checksum: 6f180e96c39765487f27e861d43eebed341ec7a2fc06cdf5a52c22872fae67f474ca165d149c708f4fd9d5482beb66c0a92f77411b234bb30262ed2303e50b1a + checksum: 487e1a2fcb382d70a6f6e8136f19979e8db6048cd2eebee153e561b5c529f45e45ee8a5422078aa66375c9c5dfc67bcd2fd3989dc8e3a4ba0149640b7dbd1c13 languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.20.1 - resolution: "@types/babel__traverse@npm:7.20.1" +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6, @types/babel__traverse@npm:^7.18.0": + version: 7.20.2 + resolution: "@types/babel__traverse@npm:7.20.2" dependencies: "@babel/types": ^7.20.7 - checksum: 5a6a3a26be090573309527184a31f1b82ef55f3d73d811c15f181d323e471305f2390651a04d49d4cd4ca41bbeabb53c9f7862a8e09eab5a0f8910a6aec6e867 + checksum: 4a018298e7da9eef2cb962cf2daa1b87dd32f6b2f800b81d2d8f1c8db6c56a2bcac432c7b7a090c746784ccccd82f2c1dcf7cebe1e72923a27359af87bef854b languageName: node linkType: hard "@types/body-parser@npm:*": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" + version: 1.19.3 + resolution: "@types/body-parser@npm:1.19.3" dependencies: "@types/connect": "*" "@types/node": "*" - checksum: c2dd533e1d4af958d656bdba7f376df68437d8dfb7e4522c88b6f3e6f827549e4be5bf0be68a5f1878accf5752ea37fba7e8a4b6dda53d0d122d77e27b69c750 + checksum: d35f76406232ee68b02b4b37b4b63cce26329f4302f55c19d5f4fd346f5b7df0994af486331849c4992567d83ded10f5beb3e200280c2142f53e0424f1565082 languageName: node linkType: hard "@types/bonjour@npm:^3.5.9": - version: 3.5.10 - resolution: "@types/bonjour@npm:3.5.10" + version: 3.5.11 + resolution: "@types/bonjour@npm:3.5.11" dependencies: "@types/node": "*" - checksum: 5a3d70695a8dfe79c020579fcbf18d7dbb89b8f061dd388c76b68c4797c0fccd71f3e8a9e2bea00afffdb9b37a49dd0ac0a192829d5b655a5b49c66f313a7be8 + checksum: 963b8260708186981b6fc75fcdbf1ab95bd83ec0472c1b9649c635bdf260d2af94c2930c1a08f97c9d6e370a14737a697e05e10796f29c2a8d81f7f0a80a8ed0 languageName: node linkType: hard @@ -8669,20 +8929,20 @@ __metadata: linkType: hard "@types/cheerio@npm:^0.22.22": - version: 0.22.31 - resolution: "@types/cheerio@npm:0.22.31" + version: 0.22.32 + resolution: "@types/cheerio@npm:0.22.32" dependencies: "@types/node": "*" - checksum: f16e9e67e3af530c3603b4b9f7651b9223ca72944afccaa31dd39be858a90bd48d5206d36b05998a0389fedca158f22430f96796007000f34b2dd8dd6b193f6e + checksum: 02c64de8e198e9bb2b162c3d426a00df8b558730df84bebf7d586cf23493043217f0dc81efabc13b32589839a82a974f02ade618ecdd7c528c3b574cf95bff97 languageName: node linkType: hard "@types/color-convert@npm:^2.0.0": - version: 2.0.0 - resolution: "@types/color-convert@npm:2.0.0" + version: 2.0.1 + resolution: "@types/color-convert@npm:2.0.1" dependencies: "@types/color-name": "*" - checksum: 87b40870ff57f1746acc3cecbbe5f74e38cd2e97a628b0680f11a4cd419d124d3251e7627f100db2b31f8383b91141c46a12b7f2dfb18f989cf686526b6e6e13 + checksum: 53eed9d08ee8211e881cf30e5950f32202825f4233bf0411bdeacc2908f7b64b79b5c1dd4ed9748c9deeb4334dccd37d415758736863900cd1e63dac18c62b7e languageName: node linkType: hard @@ -8694,48 +8954,48 @@ __metadata: linkType: hard "@types/compression@npm:^1.7.0": - version: 1.7.2 - resolution: "@types/compression@npm:1.7.2" + version: 1.7.3 + resolution: "@types/compression@npm:1.7.3" dependencies: "@types/express": "*" - checksum: 1ef9ad65cde187abd386db93c9f962c9415b77b1a81549a88cc6c7b45dac09502363efee0270493ab1541548a88b3e93115084a84d936c5cd02d59d17505dc13 + checksum: c6f7353ddb97193692bf31aad15fb27fd730081643f347d897b0451cd54ab2d2fce1973f1eed40548be1dde79d61f12966d35129e9cfd6392f4f78e8b09d0153 languageName: node linkType: hard "@types/connect-history-api-fallback@npm:^1.3.5": - version: 1.5.0 - resolution: "@types/connect-history-api-fallback@npm:1.5.0" + version: 1.5.1 + resolution: "@types/connect-history-api-fallback@npm:1.5.1" dependencies: "@types/express-serve-static-core": "*" "@types/node": "*" - checksum: 176362698eb68cfbd0517c015fc089fd764d5d35f07230238bb57f833d24a4737f46b4d78dfc225809e7324729d360b831567d1dff17639d576ad85f5b86743d + checksum: 306e19429a404625ea8bee2043e67b1222ccf46cf25846d580074519bfead6839f38fe8c710e45ea66e3e39b4ed0ebe8d0e506098d31ce078711bc94fae990f2 languageName: node linkType: hard "@types/connect@npm:*": - version: 3.4.35 - resolution: "@types/connect@npm:3.4.35" + version: 3.4.36 + resolution: "@types/connect@npm:3.4.36" dependencies: "@types/node": "*" - checksum: f11a1ccfed540723dddd7cb496543ad40a2f663f22ff825e9b220f0bae86db8b1ced2184ee41d3fb358b019ad6519e39481b06386db91ebb859003ad1d54fe6a + checksum: 0dd8fcf576e178e69cbc00d47be69d3198dca4d86734a00fc55de0df147982e0a5f34592117571c5979e92ce8f3e0596e31aa454496db8a43ab90c5ab1068f40 languageName: node linkType: hard "@types/cross-spawn@npm:^6.0.2": - version: 6.0.2 - resolution: "@types/cross-spawn@npm:6.0.2" + version: 6.0.3 + resolution: "@types/cross-spawn@npm:6.0.3" dependencies: "@types/node": "*" - checksum: 658bd49267a7200e87e67c48ef1e58ee7418bbd4417fb191393b7051d47f590023090cad7b69eb3821d1907b82392b764e1114b1ec6000b01e98126926c8b06f + checksum: a8de3fed3e9cacf8ee50e49139ef40b3fd03ee3c135140bdfc1536c00c38bd26c435be885c5facc97404be2e17b7c088fa588b43d6e974bab20cdb0e53ec6c9c languageName: node linkType: hard "@types/debug@npm:^4.0.0": - version: 4.1.8 - resolution: "@types/debug@npm:4.1.8" + version: 4.1.9 + resolution: "@types/debug@npm:4.1.9" dependencies: "@types/ms": "*" - checksum: 913aea60b8c94cd0009bbdd531d8a3594ec3275ca0e8d1cbcf783417884252b3c53113f6665fd2fb0076b8ce628ee12cd083d2af107ed26c0f2e75852d8bc074 + checksum: 8b550c47c70cc1af9a58e5c572f2418f30bface5bf5d5afa0d938923978f40be4c55646f1ab260f6f1492ca6ab065d447de23cb3b30d7b38597c2cbf89f4cb21 languageName: node linkType: hard @@ -8753,17 +9013,24 @@ __metadata: languageName: node linkType: hard +"@types/doctrine@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/doctrine@npm:0.0.6" + checksum: eae59a178be3b7989f3dd269cbe30fee9041a95ccb7ac963bbff3fcc82e7985c5002228afe23b7fad985f3eedf5257d36c7011bd8caafb087fcdcc6df1e52cb3 + languageName: node + linkType: hard + "@types/ejs@npm:^3.1.1": - version: 3.1.2 - resolution: "@types/ejs@npm:3.1.2" - checksum: 8e55275011009e7a44043d97348a4a1b5a7583e1f048b6ad8998f1b30667995314f15bc9cc9ed3e0e79722cce9a06845d06d5d023bca179bb00d52016b41ad7d + version: 3.1.3 + resolution: "@types/ejs@npm:3.1.3" + checksum: 8366861c80749a0231f58a258f1fc9ab43992e6b74d157d1fd199f273f2f7d9f016f64d61a6d899a77d86d49c2a4a569215deda899dcf2dbfef85e12d26b9715 languageName: node linkType: hard "@types/emscripten@npm:^1.39.6": - version: 1.39.6 - resolution: "@types/emscripten@npm:1.39.6" - checksum: cb1ea8ccddada1d304bdf11a54daa0d1e87f29cea947eceff54c1e0a752d2cc185eeffdcf52042f24420aa8e1fa9bbfdbab1231fb2531eefcfdc788199fee2de + version: 1.39.8 + resolution: "@types/emscripten@npm:1.39.8" + checksum: a2cc8ddb734b0cbead13c9d4b7733da07655529bdfbcd8a858067bd6b97f2b622935526a6d6ee5c9c5495d50854d608e34ad9a4e09700858d7b9418799e33197 languageName: node linkType: hard @@ -8775,38 +9042,38 @@ __metadata: linkType: hard "@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" + version: 3.7.5 + resolution: "@types/eslint-scope@npm:3.7.5" dependencies: "@types/eslint": "*" "@types/estree": "*" - checksum: f8a19cddf9d402f079bcc261958fff5ff2616465e4fb4cd423aa966a6a32bf5d3c65ca3ca0fbe824776b48c5cd525efbaf927b98b8eeef093aa68a1a2ba19359 + checksum: 9ade676030067a14d34acb4a48362bcf16632e867d059e734cf082e0523362415ed698e3776f8fad7e346019078d63a5264992b33054182607ce20ad9eaeec80 languageName: node linkType: hard "@types/eslint@npm:*": - version: 8.44.1 - resolution: "@types/eslint@npm:8.44.1" + version: 8.44.3 + resolution: "@types/eslint@npm:8.44.3" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: c71ac01bce467ab394c86154d1dee92fc46e33c8515036ecb8cde6a1f48ad9497909efe370c96136193d74007b02b8cd89fb91175b256771296e6b822ee6237f + checksum: d9d681efe461ec8934800a89773be251a200c9d4528ca2330bb99f4ca3bd6b2d053034d2b5fe645a1567331af2c89e364aed4be8c839f10a1028a3cbe2856b01 languageName: node linkType: hard "@types/estree-jsx@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/estree-jsx@npm:1.0.0" + version: 1.0.1 + resolution: "@types/estree-jsx@npm:1.0.1" dependencies: "@types/estree": "*" - checksum: faca4c8924cbc36095e11ac7677dce1875583cf8ea99b67911affbbcc2a06ef99e585c02fc7160e55406d3c127b447df5a8ba3b23c211e5bbaad45dd278cde97 + checksum: 3aa4d648ba3ddffa73eff63904a4ef7f78fc78c2fc22ad0ef80908e7e5839e4622dc8d8dc46708b07a6e732e72692cf234db63650c3ca608cc5b41c3e81f37a2 languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0": - version: 1.0.1 - resolution: "@types/estree@npm:1.0.1" - checksum: b4022067f834d86766f23074a1a7ac6c460e823b00cd8fe94c997bc491e7794615facd3e1520a934c42bd8c0689dbff81e5c643b01f1dee143fc758cac19669e +"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.1": + version: 1.0.2 + resolution: "@types/estree@npm:1.0.2" + checksum: 4b5c601d435ea8e2205458de15fd1556b5ae6c9a8323bad8a940ea502d6c824664faca94234c0bf76bf9c87cbf6ac41abee550c9e20433256549d589c9b543bd languageName: node linkType: hard @@ -8818,26 +9085,26 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33": - version: 4.17.35 - resolution: "@types/express-serve-static-core@npm:4.17.35" + version: 4.17.37 + resolution: "@types/express-serve-static-core@npm:4.17.37" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" "@types/send": "*" - checksum: 08db6ffff07b5d53d852bb0a078ea5ee6dc3eb581d8c8fdf0d65f48c641db2830658074c797844e618b0933ce4ca2ddd08191f9d79b12eb2ec3d66f8551716ec + checksum: 45487318802d9c44aac4323b9f5b33c24bb37c0258a5984c8ffe2b57f1bfc5b8ebbdc47149d6ce1b9e47e39b6cc4d1ef4468903a339990bfb8eac7995392f19f languageName: node linkType: hard "@types/express@npm:*, @types/express@npm:^4.17.11, @types/express@npm:^4.17.13, @types/express@npm:^4.7.0": - version: 4.17.17 - resolution: "@types/express@npm:4.17.17" + version: 4.17.18 + resolution: "@types/express@npm:4.17.18" dependencies: "@types/body-parser": "*" "@types/express-serve-static-core": ^4.17.33 "@types/qs": "*" "@types/serve-static": "*" - checksum: 5802a0a28f7473744dd6a118479440d8c5c801c973d34fb6f31b5ee645a41fee936193978a8e905d55deefda9b675d19924167bf11a31339874c3161a3fc2922 + checksum: 6babf7bce6abdd45138f7eac058c8705dbd3a2857208c8c78d863fcd8b3b212c6569fba1f748137e5743287f82dfecf9bc4d78d31d290afff2d37700a0cdb6fe languageName: node linkType: hard @@ -8849,12 +9116,12 @@ __metadata: linkType: hard "@types/fs-extra@npm:^11.0.1": - version: 11.0.1 - resolution: "@types/fs-extra@npm:11.0.1" + version: 11.0.2 + resolution: "@types/fs-extra@npm:11.0.2" dependencies: "@types/jsonfile": "*" "@types/node": "*" - checksum: a65f1fae47849fe1a17441dcabc9400390303405972ff3cbb3578746cea8916b23d5e7652bf57a87767f75a9b2f37caac499b78b5230ae08fef0ba58b34c3a85 + checksum: 8ab94988a3376169e3daf0a546b5312039c19a7f1fb9c5a171f7602c9398155a90c0cef81ab95273e4c8c5962ab4ec280f0a1ba8e874bab2f26ca94b282c14a3 languageName: node linkType: hard @@ -8876,7 +9143,17 @@ __metadata: languageName: node linkType: hard -"@types/glob@npm:*, @types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3": +"@types/glob@npm:*": + version: 8.1.0 + resolution: "@types/glob@npm:8.1.0" + dependencies: + "@types/minimatch": ^5.1.2 + "@types/node": "*" + checksum: ded07aa0d7a1caf3c47b85e262be82989ccd7933b4a14712b79c82fd45a239249811d9fc3a135b3e9457afa163e74a297033d7245b0dc63cd3d032f3906b053f + languageName: node + linkType: hard + +"@types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3": version: 7.2.0 resolution: "@types/glob@npm:7.2.0" dependencies: @@ -8887,20 +9164,30 @@ __metadata: linkType: hard "@types/graceful-fs@npm:^4.1.3": - version: 4.1.6 - resolution: "@types/graceful-fs@npm:4.1.6" + version: 4.1.7 + resolution: "@types/graceful-fs@npm:4.1.7" dependencies: "@types/node": "*" - checksum: b1d32c5ae7bd52cf60e29df20407904c4312a39612e7ec2ee23c1e3731c1cfe31d97c6941bf6cb52f5f929d50d86d92dd506436b63fafa833181d439b628885e + checksum: a8c04a250cb40207b15097b33c053f5ecf4352f5107c0a2635f674dae8c9a90b28dc9bd6e28307d5aab0b5d3853e713de42110a149a6e303626915047134e87d languageName: node linkType: hard "@types/hast@npm:^2.0.0": - version: 2.3.5 - resolution: "@types/hast@npm:2.3.5" + version: 2.3.6 + resolution: "@types/hast@npm:2.3.6" dependencies: "@types/unist": ^2 - checksum: 3fc5185e7fb5139a4f60f0d4450179c1f88b7e288a054415b273e4a32f0c4cfe825a4cad075824dcdf3984609b47f13141f8900dedb3aeab482ae5a16275e807 + checksum: e44fa492f9ae8a0e499a738b598fc50c6cfa8131f2758ed98f292fbe67e37f4e85edb1aa53b27450bdafcf4e52c1a9660df0478914199c058193d9cffdc7d93c + languageName: node + linkType: hard + +"@types/hoist-non-react-statics@npm:^3.3.1": + version: 3.3.2 + resolution: "@types/hoist-non-react-statics@npm:3.3.2" + dependencies: + "@types/react": "*" + hoist-non-react-statics: ^3.3.0 + checksum: 2aaff564e7674b0b7389592f30e4681919a0a71986bc5d8c5ef67d9b5b3b46913920f5002a96fd37d8904fe5c0cc1e4cc5c92884c847b2f4a74cb30d841494d4 languageName: node linkType: hard @@ -8912,34 +9199,34 @@ __metadata: linkType: hard "@types/http-cache-semantics@npm:*": - version: 4.0.1 - resolution: "@types/http-cache-semantics@npm:4.0.1" - checksum: 6d6068110a04cac213bdc0fff9c7bac028b5a2da390492204328987d8ddc500adc10d9cf5747a6333dab261712655dcfe120ea1d5527c205d012a39cdccc2a7b + version: 4.0.2 + resolution: "@types/http-cache-semantics@npm:4.0.2" + checksum: 975258beba5a6ce446b67f9bf905385d8d44cecad54d839208e86018b0fe4a517c62ec7a169ec64ed454363628def75446fa09d99755f3797f213b596477fe97 languageName: node linkType: hard "@types/http-errors@npm:*": - version: 2.0.1 - resolution: "@types/http-errors@npm:2.0.1" - checksum: 3bbc8c84fb02b381737e2eec563b434121384b1aef4e070edec4479a1bc74f27373edc09162680cd3ea1035ef8e5ab6d606bd7c99e3855c424045fb74376cb66 + version: 2.0.2 + resolution: "@types/http-errors@npm:2.0.2" + checksum: ecedc65091baf7c83e0e61e7d1992112e0fa09461d69004747f55c80b801b796bdb60161e54efdac8a720b5f78a54720b0cabde3ae7094103a552d5c189222ce languageName: node linkType: hard "@types/http-proxy@npm:^1.17.8": - version: 1.17.11 - resolution: "@types/http-proxy@npm:1.17.11" + version: 1.17.12 + resolution: "@types/http-proxy@npm:1.17.12" dependencies: "@types/node": "*" - checksum: 0af1bed7c1eaace924b8a316a718a702d40882dc541320ca1629c7f4ee852ef4dbef1963d4cb9e523b59dbe4d7f07e37def38b15e8ebb92d5b569b800b1c2bf7 + checksum: 06719371ece6bdf9fd28b90b03bd56e48ffca675dfaadca81ae12ca18db6e77e70a509537ebfa3b2c37810d77dc52e5a3190c09bc490668dde7e384c7b579090 languageName: node linkType: hard "@types/ip@npm:^1.1.0": - version: 1.1.0 - resolution: "@types/ip@npm:1.1.0" + version: 1.1.1 + resolution: "@types/ip@npm:1.1.1" dependencies: "@types/node": "*" - checksum: 4ca17133cf1e1c12f31ac8aac966cfa741917d5015c2a8dc02b9db9a7510ede7db78b6db0535764ed6aa2957008fdd1afbc50a3cf1e81529cc8e2114ce4355c3 + checksum: cabb35bfb4255805e282f8b4b26c0cdca04a0d05016fe5c0a676aabadd1065c461bff5fdf4fca01041c7589cca10202865b1e6b02e505e569928b139353d7dfc languageName: node linkType: hard @@ -8951,67 +9238,77 @@ __metadata: linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" + version: 3.0.1 + resolution: "@types/istanbul-lib-report@npm:3.0.1" dependencies: "@types/istanbul-lib-coverage": "*" - checksum: 7ced458631276a28082ee40645224c3cdd8b861961039ff811d841069171c987ec7e50bc221845ec0d04df0022b2f457a21fb2f816dab2fbe64d59377b32031f + checksum: a2a002ee7ecd9079a2c06235d28d1bc77089c3d834eec7e6dac38986203634936f2a017812624acfbedabec4bddd933942f14ac93eba2dc57f581ad4f35bbf1d languageName: node linkType: hard "@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" + version: 3.0.2 + resolution: "@types/istanbul-reports@npm:3.0.2" dependencies: "@types/istanbul-lib-report": "*" - checksum: e147f0db9346a0cae9a359220bc76f7c78509fb6979a2597feb24d64b6e8328d2d26f9d152abbd59c6bca721e4ea2530af20116d01df50815efafd1e151fd777 + checksum: df6c9e6865006be06bae29f63d5240b96bc7041b18a8c6d66be5b5d92ef5c95675c7a605a603029065f4f8aece7dba7360349e9d0543f512417e64a707a3c4fa languageName: node linkType: hard "@types/jest-image-snapshot@npm:^6.0.0": - version: 6.1.0 - resolution: "@types/jest-image-snapshot@npm:6.1.0" + version: 6.2.1 + resolution: "@types/jest-image-snapshot@npm:6.2.1" dependencies: "@types/jest": "*" "@types/pixelmatch": "*" ssim.js: ^3.1.1 - checksum: f811e9d49c1600ed85745bb5be3b0bb0c6da719eb761d62fa6f21214ca6e0ad822bc3643e7ab7260452e180dbabc2530661eb10688e49de2cb2c950bd2252ccf + checksum: d7bb16f2680e9b3f828f86effc9a8fee0e3d118c6138d537dfb3383333606d5dd765a5de3c1f4bd7ae6d2cc0e0528ee8aee055d66ef1d811719afbd6168ff616 languageName: node linkType: hard "@types/jest-specific-snapshot@npm:^0.5.6": - version: 0.5.6 - resolution: "@types/jest-specific-snapshot@npm:0.5.6" + version: 0.5.7 + resolution: "@types/jest-specific-snapshot@npm:0.5.7" dependencies: "@types/jest": "*" - checksum: 5fc9234afdf704eb7fa69bbf7860c2e9f9e76aed750e98aa44824bb47e048d1e57c5386eb3c919534a4225147f205742c6f9dac0e458e092de30efde77cc1ebe + checksum: ad18f3c6e55a533f9d9b04ae99dfdae6e6d0b5c936f348b5280325ced1c35ccf94ce629a71c3116785bb041d0192c22630d38ed30f13849fe9310935e6224fb8 languageName: node linkType: hard -"@types/jest@npm:*, @types/jest@npm:>=26.0.0": - version: 29.5.3 - resolution: "@types/jest@npm:29.5.3" +"@types/jest@npm:*": + version: 29.5.5 + resolution: "@types/jest@npm:29.5.5" dependencies: expect: ^29.0.0 pretty-format: ^29.0.0 - checksum: ba5a28569368db62eeff85ea53661c7dff79a5be739a59926c37868888cc69f8b7d0c7c6209139ecca5b83056843ba67fa764f7e7fc9c8d1c4e1f80351ede0f4 + checksum: 0a3481f119099e6a0a381fec0d410cd33241267a0981576a7a832687fc3f888f79285289dc7c054c3589fd443f7ed1598d25fa7bc9708491b58da17e423b4aff + languageName: node + linkType: hard + +"@types/jest@npm:28.1.3": + version: 28.1.3 + resolution: "@types/jest@npm:28.1.3" + dependencies: + jest-matcher-utils: ^28.0.0 + pretty-format: ^28.0.0 + checksum: d295db8680b5c230698345d6caae621ea9fa8720309027e2306fabfd8769679b4bd7474b4f6e03788905c934eff62105bc0a3e3f1e174feee51b4551d49ac42a languageName: node linkType: hard "@types/js-yaml@npm:^4.0.5": - version: 4.0.5 - resolution: "@types/js-yaml@npm:4.0.5" - checksum: 37eb783b16f1704d26bbf83b35cf5d12f6018c18f2c9232515468ac60a4c5b71b6344a7b872545eeca3dfd66bb17e2bb1e611646cc727d7c6a001165a4ec0a32 + version: 4.0.6 + resolution: "@types/js-yaml@npm:4.0.6" + checksum: e2e3ccdde9979973ea0afc357e753ddcd1a586cfccfeafcf5c17ab1ea3314c73faf7555d0af4da237c0c32c29cd4bc0f6a659a5e5085fe3f1fdc94d20fb19683 languageName: node linkType: hard "@types/jscodeshift@npm:^0.11.6": - version: 0.11.6 - resolution: "@types/jscodeshift@npm:0.11.6" + version: 0.11.7 + resolution: "@types/jscodeshift@npm:0.11.7" dependencies: ast-types: ^0.14.1 recast: ^0.20.3 - checksum: 1d204a4c3d9f52669e315dfbc1e65434ec55ee884574306d35048b89ef83b625c64d510228b6aabbd4248af566e02e0ce9de0aa8ccdfff696c69fbaced7007e7 + checksum: a2c26f8e64950296bae6176c52e832e1f5c5eb3672adad3c1cdc63e23b8bd3de47890ac8eaae7eb0788feea7628ce540513ff5189379f79e882ddcfa1c855cfc languageName: node linkType: hard @@ -9027,9 +9324,9 @@ __metadata: linkType: hard "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.12 - resolution: "@types/json-schema@npm:7.0.12" - checksum: 2c39946ae321fe42d085c61a85872a81bbee70f9b2054ad344e8811dfc478fdbaf1ebf5f2989bb87c895ba2dfc3b1dcba85db11e467bbcdc023708814207791c + version: 7.0.13 + resolution: "@types/json-schema@npm:7.0.13" + checksum: 446fe6722899333ff647b5853fdcc9f039156d56abe517166154d3578d641841cc869f61e8b7822c24a1daeb7dfbd4fdcea84bf07c0858e2f9cca415e2ca8dd4 languageName: node linkType: hard @@ -9041,11 +9338,11 @@ __metadata: linkType: hard "@types/jsonfile@npm:*": - version: 6.1.1 - resolution: "@types/jsonfile@npm:6.1.1" + version: 6.1.2 + resolution: "@types/jsonfile@npm:6.1.2" dependencies: "@types/node": "*" - checksum: 96dfca37e856978eaf256bf5200c46a01a27a0455b9323a72598e8d59ddd81095934bf15e9c84d6a30125cf63e1464aef6d70ab4a35f34ee2cdfa1fe0db0720b + checksum: c2943f9bfa7867b33fb362b88a932efdc00e9e5f2762b6ef912617cb0a3e3221a98920f8976a4cf817aa576e03d28a25391236e9644e2ebe648081b08df62ef5 languageName: node linkType: hard @@ -9059,50 +9356,50 @@ __metadata: linkType: hard "@types/lodash@npm:^4.14.167": - version: 4.14.195 - resolution: "@types/lodash@npm:4.14.195" - checksum: 6d733276df592614a0943a0053056140398b3c263cdf2557d4301b3a47b07ff561926cb9339a4725acbc7d8766f91ded218df11e0a4288cee369eafb5141d94d + version: 4.14.199 + resolution: "@types/lodash@npm:4.14.199" + checksum: a7168a0a2a7c9e8801aa95f92b02f9d664ee938a5186d73f77a3a8447f475bbadedc1f7f746ffd2530ae34069d232bf25f4f4414077f0d81c71489e34e59173e languageName: node linkType: hard "@types/mdast@npm:^3.0.0": - version: 3.0.12 - resolution: "@types/mdast@npm:3.0.12" + version: 3.0.13 + resolution: "@types/mdast@npm:3.0.13" dependencies: "@types/unist": ^2 - checksum: b5af41e4f19a149eba58cde8ccacc36117640aefe28966637c54c27a8fbcfa3972e88cafd859c7bf39cd5c4e965e4196169001beac4a1980cfee6b08eea896a6 + checksum: b328d1622075a67db1d8eac78dcbd55aefb4adaf63206b58abfce902c0ce5232a2674bd0bf961696c9a3765d5fcf145378ce03075bd1690a25adc617650f1228 languageName: node linkType: hard "@types/mdx@npm:^2.0.0": - version: 2.0.5 - resolution: "@types/mdx@npm:2.0.5" - checksum: f46932365a24ad6927dd87678598b839fa64ef8c9d0714b45a0185ac52427b374899ba96022f97330b27aca3572a6815f844cf345a50b9c0c483f485c243eda1 + version: 2.0.8 + resolution: "@types/mdx@npm:2.0.8" + checksum: 6ee0e54d886afcbc2547f1db73ac9de60603ce26592e21f5fff2ba2791f6c58d3eb7b849add8f6b8b9c10f7c8ff3855d29fe7122f532f2f64fce95fe5b8e23ef languageName: node linkType: hard "@types/mime-types@npm:^2.1.0": - version: 2.1.1 - resolution: "@types/mime-types@npm:2.1.1" - checksum: 131b33bfd89481f6a791996db9198c6c5ffccbb310e990d1dd9fab7a2287b5a0fd642bdd959a19281397c86f721498e09956e3892e5db17f93f38e726ca05008 + version: 2.1.2 + resolution: "@types/mime-types@npm:2.1.2" + checksum: aab18eefbcd759908968958eeee6483d8559178d0a3510ca8da692b43f0d98afc8956270623586c6301165a3bd2dcbd9847a8c4d1ea1711de25bb5395686d2a3 languageName: node linkType: hard "@types/mime@npm:*": - version: 3.0.1 - resolution: "@types/mime@npm:3.0.1" - checksum: c4c0fc89042822a3b5ffd6ef0da7006513454ee8376ffa492372d17d2925a4e4b1b194c977b718c711df38b33eb9d06deb5dbf9f851bcfb7e5e65f06b2a87f97 + version: 3.0.2 + resolution: "@types/mime@npm:3.0.2" + checksum: 7eef33033d9990881626611ef87d0dbb06ebff96a7ee09303874389eb482acd0fbf20fe2dc96edb861095e42e6c18d5df8476840131f9c06c57be6f1c1dc77fe languageName: node linkType: hard "@types/mime@npm:^1": - version: 1.3.2 - resolution: "@types/mime@npm:1.3.2" - checksum: 61d144e5170c6cdf6de334ec0ee4bb499b1a0fb0233834a9e8cec6d289b0e3042bedf35cbc1c995d71a247635770dae3f13a9ddae69098bb54b933429bc08d35 + version: 1.3.3 + resolution: "@types/mime@npm:1.3.3" + checksum: 56c9981b637154721753d38888c2cba85f8891a16e0f1cb1286dcbd741b220ff56d99aa2be03bf7fe88b188a27e32bf1d92976dafd6574b8f345bbf0853d462c languageName: node linkType: hard -"@types/minimatch@npm:*": +"@types/minimatch@npm:*, @types/minimatch@npm:^5.1.2": version: 5.1.2 resolution: "@types/minimatch@npm:5.1.2" checksum: 83cf1c11748891b714e129de0585af4c55dd4c2cafb1f1d5233d79246e5e1e19d1b5ad9e8db449667b3ffa2b6c80125c429dbee1054e9efb45758dbc4e118562 @@ -9117,49 +9414,56 @@ __metadata: linkType: hard "@types/minimist@npm:^1.2.0": - version: 1.2.2 - resolution: "@types/minimist@npm:1.2.2" - checksum: f220f57f682bbc3793dab4518f8e2180faa79d8e2589c79614fd777d7182be203ba399020c3a056a115064f5d57a065004a32b522b2737246407621681b24137 + version: 1.2.3 + resolution: "@types/minimist@npm:1.2.3" + checksum: e57d18f3c49b286eb5e63f2f6ec77d9a71beace3d9ef21cc3ee5a8eb4161520918b7eb0dcf20046d05339b955208a972ef474cc568542cd64b7b6365b9ec6650 languageName: node linkType: hard "@types/mock-fs@npm:^4.13.1": - version: 4.13.1 - resolution: "@types/mock-fs@npm:4.13.1" + version: 4.13.2 + resolution: "@types/mock-fs@npm:4.13.2" dependencies: "@types/node": "*" - checksum: 29cbedf7822e6fc2b6024c85dac66b0d103541edafc728b959cf07a6cd9977ee13db25c9bcb932eb7f66eb2270d79691f965c4be4bc8311d523f29bbd2ef742b + checksum: c589d8ba674e9d2279c6321841ee5b4e9ba3138a8790cbe2a61ea1da1e9d254188ef9f1a2f66539b225aaebcd56f746551f4723de24afc0c430d9e7c68344a7b languageName: node linkType: hard "@types/ms@npm:*": - version: 0.7.31 - resolution: "@types/ms@npm:0.7.31" - checksum: 19fae4f587651e8761c76a0c72ba8af1700d37054476878d164b758edcc926f4420ed06037a1a7fdddc1dbea25265895d743c8b2ea44f3f3f7ac06c449b9221e + version: 0.7.32 + resolution: "@types/ms@npm:0.7.32" + checksum: 16f60d0a2485edfa459e9570aec9135d9ef08dd855630754063f3baf1d1df7a5edd0f249ff9b460a33842181250f51b27b35078b83cf6ec1dccabb4485de19d6 languageName: node linkType: hard "@types/node-fetch@npm:^2.5.7, @types/node-fetch@npm:^2.6.4": - version: 2.6.4 - resolution: "@types/node-fetch@npm:2.6.4" + version: 2.6.6 + resolution: "@types/node-fetch@npm:2.6.6" dependencies: "@types/node": "*" - form-data: ^3.0.0 - checksum: e43e4670ed8b7693dbf660ac1450b14fcfcdd8efca1eb0f501b6ad95af2d1fa06f8541db03e9511e82a5fee510a238fe0913330c9a58f8ac6892b985f6dd993e + form-data: ^4.0.0 + checksum: fce52a0b65f4cb9e5059c9b3250682c8f0f0c2ce1d1a18b5bbc61b5fbf5f320b76d42b4dfa5c0567fe0704bdf0c0397527008efcb0749859aaaff8c51b6ed6c1 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:>= 8": + version: 20.8.2 + resolution: "@types/node@npm:20.8.2" + checksum: e9952db222dd3e1cca1107d1b2aaec4e93b4af8b4fc32b42dd4fac3719f98c14edb8c591829c972d2f6e2b527bbb34af53608f6a7973f4a7dbd1d3bc929bbe8d languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^16.0.0": - version: 16.18.39 - resolution: "@types/node@npm:16.18.39" - checksum: b33fca5a89affdd9b59bc4475ea010c547abb5742ab13918a441fb4ddbb7fbd58d0b04ec1b51bf4f0c4e8228022c9d9aedde34627c6e2b2754462fed507f7ad9 +"@types/node@npm:^16.0.0": + version: 16.18.57 + resolution: "@types/node@npm:16.18.57" + checksum: 191cfb12fde8c882f1d982a07302f7b87cda7b93ec227b0607f908f3b3b11c5ff96bbed613f370818ea60a8a98140962b193324bdadff679bd5ca75d04407e60 languageName: node linkType: hard "@types/normalize-package-data@npm:^2.4.0": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: c90b163741f27a1a4c3b1869d7d5c272adbd355eb50d5f060f9ce122ce4342cf35f5b0005f55ef780596cacfeb69b7eee54cd3c2e02d37f75e664945b6e75fc6 + version: 2.4.2 + resolution: "@types/normalize-package-data@npm:2.4.2" + checksum: e38713ca1befc341701c078d592d1fddc1d13eec73b4d81fbab14638221733029f03cdf410b4486b23d48fd8d3809fa36611de98220e76f71517d42b582b3509 languageName: node linkType: hard @@ -9178,9 +9482,9 @@ __metadata: linkType: hard "@types/picomatch@npm:^2.3.0": - version: 2.3.0 - resolution: "@types/picomatch@npm:2.3.0" - checksum: 529aca7f2397b920559c8b6314c5a543d8bc0e0b423edbba1c356ba4d1783325d712b1871991895eb80355422176e1714a097620afceaa05b160dbcf5890f577 + version: 2.3.1 + resolution: "@types/picomatch@npm:2.3.1" + checksum: 6ab42daf80d315495586bc7f276698395c47e28479cbc79c88ff14c81fd1fb38a76dee9c609dfe591036986b923198f1dab438865ce3583f1d380cac09870b3f languageName: node linkType: hard @@ -9193,6 +9497,13 @@ __metadata: languageName: node linkType: hard +"@types/pluralize@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/pluralize@npm:0.0.29" + checksum: 840796fa1db158eb4d9787758d134736e29d9a8035f5b0cbad06e3801fc64b79112ba944c83f9a1a5b94da08703f505b8315b7e0f28bfc0f8e9e1ccfead7b083 + languageName: node + linkType: hard + "@types/prettier@npm:2.7.2": version: 2.7.2 resolution: "@types/prettier@npm:2.7.2" @@ -9200,13 +9511,6 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:^2.1.5": - version: 2.7.3 - resolution: "@types/prettier@npm:2.7.3" - checksum: 0960b5c1115bb25e979009d0b44c42cf3d792accf24085e4bfce15aef5794ea042e04e70c2139a2c3387f781f18c89b5706f000ddb089e9a4a2ccb7536a2c5f0 - languageName: node - linkType: hard - "@types/pretty-hrtime@npm:^1.0.0": version: 1.0.1 resolution: "@types/pretty-hrtime@npm:1.0.1" @@ -9214,27 +9518,34 @@ __metadata: languageName: node linkType: hard +"@types/prismjs@npm:^1.16.6": + version: 1.26.1 + resolution: "@types/prismjs@npm:1.26.1" + checksum: 74b624bd0def16ba2fe4492ac74422ed9eaf5588814c14d8825c85dd4ef05b900a3685c5ec00bb13991e9f0cc4bbda196b9de3ba75cf7c00bc8ffd960c125124 + languageName: node + linkType: hard + "@types/prompts@npm:^2.0.9": - version: 2.4.4 - resolution: "@types/prompts@npm:2.4.4" + version: 2.4.5 + resolution: "@types/prompts@npm:2.4.5" dependencies: "@types/node": "*" kleur: ^3.0.3 - checksum: 9d240cdabc8bd5d7a8edaddebbd62c3fb61ddcf83b7240277682c4a73b53bb01b73d627b14befa478847085c664d310867d93f5504ec6d99fdc03cd36c2e5f81 + checksum: a2a3e802508db79e4c6bfcab09ddb37e93279152fd127a7f4a8c1e683ee6f5429ce86f70c58eb94b76b19d98e4b6ca53bbb0b375d47b0b8c4ad4ecf178227258 languageName: node linkType: hard "@types/prop-types@npm:*": - version: 15.7.5 - resolution: "@types/prop-types@npm:15.7.5" - checksum: 648aae41423821c61c83823ae36116c8d0f68258f8b609bdbc257752dcd616438d6343d554262aa9a7edaee5a19aca2e028a74fa2d0f40fffaf2816bc7056857 + version: 15.7.8 + resolution: "@types/prop-types@npm:15.7.8" + checksum: 706b3de6faa5c1a4763fc90069f25ddc54108e8b43e9724e22f510b103c418571bf14b34b241fcacd6875650959c8374af7f4633f80ec6e33e7525cb42ef6a30 languageName: node linkType: hard "@types/pug@npm:^2.0.6": - version: 2.0.6 - resolution: "@types/pug@npm:2.0.6" - checksum: 8e7a3b6c1158d3a87b643c91f6cf2552ae781bc2a8f8b17a61e7b1ddd9ce480fd3483459a9b6e0f205ebe158ed67c11fd9a3206262057a14f655138c2322b0c9 + version: 2.0.7 + resolution: "@types/pug@npm:2.0.7" + checksum: 3d0cf7945f56a2763d0917d63f1ebe9c86eed9bc0b64781d0d5ec842bcdf1779e1065e132300942a1c34fefa87212d877d7fad24a576c4ce52db8fb17c4dcd0e languageName: node linkType: hard @@ -9266,25 +9577,34 @@ __metadata: linkType: hard "@types/qs@npm:*, @types/qs@npm:^6, @types/qs@npm:^6.9.5": - version: 6.9.7 - resolution: "@types/qs@npm:6.9.7" - checksum: 157eb05f4c75790b0ebdcf7b0547ff117feabc8cda03c3cac3d3ea82bb19a1912e76a411df3eb0bdd01026a9770f07bc0e7e3fbe39ebb31c1be4564c16be35f1 + version: 6.9.8 + resolution: "@types/qs@npm:6.9.8" + checksum: 336358c279818ecedc0b4f9b29fd5052ff6e05dba3f10bad4534a4624819408d0b4710a4cdf8b58dff948dbdb1ca95a00e237189505ef1abfce0e6341eb18022 languageName: node linkType: hard "@types/range-parser@npm:*": - version: 1.2.4 - resolution: "@types/range-parser@npm:1.2.4" - checksum: 8e3c3cda88675efd9145241bcb454449715b7d015a7fb80d018dcb3d441fa1938b302242cc0dfa6b02c5d014dd8bc082ae90091e62b1e816cae3ec36c2a7dbcb + version: 1.2.5 + resolution: "@types/range-parser@npm:1.2.5" + checksum: fe4bbbbfb19f0765ea15e66e2c58e29e04f4e52055c0d348b08dbfb161c2d2a363cc21b8a6071936a0cab3f02d0f5f362a3f752b37b05ff868000dcfe9120581 languageName: node linkType: hard "@types/react-dom@npm:^16.9.14": - version: 16.9.19 - resolution: "@types/react-dom@npm:16.9.19" + version: 16.9.20 + resolution: "@types/react-dom@npm:16.9.20" dependencies: "@types/react": ^16 - checksum: fe74e2166054fd4c6ff86b561be559d2ffd77524818a49f07206892b73c473d0db0fa7d82bd68c81d5ba3dccfbb1dd0478c28879a6f8ac2639fb1e77cef3db0f + checksum: bfcecc8c63f8387ddca0fe277857b462b6cf85b497c5a5df340e695d4100de7b680eb2b269ac4958c65a905ec0d5e3391b1c4ed711ad55c5d1e7232bc190c235 + languageName: node + linkType: hard + +"@types/react-modal@npm:^3.12.1": + version: 3.16.1 + resolution: "@types/react-modal@npm:3.16.1" + dependencies: + "@types/react": "*" + checksum: 4f586bd00e4b15633ec6607cb3266183b81419a2c0931d40e6127427e944a986d3d9a9c8a23c86cb586b15e541a1c6682f6ab0d2561a3b81fcf857772727ff44 languageName: node linkType: hard @@ -9297,23 +9617,41 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:>=16, @types/react@npm:^16, @types/react@npm:^16.14.34": - version: 16.14.43 - resolution: "@types/react@npm:16.14.43" +"@types/react@npm:*, @types/react@npm:>=16": + version: 18.2.24 + resolution: "@types/react@npm:18.2.24" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: a83c7ae0010b265012ef038e3e00e4708c27c523f0aa0631e44f934e9c5338a51b6db1901f91d8ba10d3dc292a3a200b2cb5e47430cde58fbf988969866fe75a + languageName: node + linkType: hard + +"@types/react@npm:^16, @types/react@npm:^16.14.34": + version: 16.14.48 + resolution: "@types/react@npm:16.14.48" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 1878039ed0d81bcfcdb7e389e221f7e3f0470e82007c60e58196b160c733ff194f6784e104e8071a96ec93d14998875c88c2dcf48aa49b73d16c5fc75d1bb602 + checksum: 28fbacb933d614366a28c74f398ab2bf34cc95ee6d486b8dc33c9b9d76306f32196b7885c6dc4f4d6f630e8cebfb6caee6ed118e82a1d4a5ff23f29e0d724aa4 + languageName: node + linkType: hard + +"@types/resolve@npm:^1.20.2": + version: 1.20.3 + resolution: "@types/resolve@npm:1.20.3" + checksum: 0f499b6509186bd32faaf4ed640c166be0a6d487567cea1da9cdf3dc85e6b546451479ac80bd912daf4d8546c547d9feaf9e9867b438f7650cdd5a75169c5763 languageName: node linkType: hard "@types/responselike@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/responselike@npm:1.0.0" + version: 1.0.1 + resolution: "@types/responselike@npm:1.0.1" dependencies: "@types/node": "*" - checksum: 474ac2402e6d43c007eee25f50d01eb1f67255ca83dd8e036877292bbe8dd5d2d1e50b54b408e233b50a8c38e681ff3ebeaf22f18b478056eddb65536abb003a + checksum: f49d4765498d64e81fdff91267575caef0b364538994512605323b4ef74297f6ac5c61658713e1e1cc6d3951f6a5bcd436fcdec79c5f9d5e72c6b3f700b6f997 languageName: node linkType: hard @@ -9335,71 +9673,62 @@ __metadata: linkType: hard "@types/scheduler@npm:*": - version: 0.16.3 - resolution: "@types/scheduler@npm:0.16.3" - checksum: c249d4b96fa05165ac22c214f94a045ee0af8beedefdbc54b769febd0044cab3a874e55419841a0dcc76439e379a63e257f3253c87168e3261e7bc783d623302 + version: 0.16.4 + resolution: "@types/scheduler@npm:0.16.4" + checksum: 2355e63251c6c6467806c9e7085f5fad350a1e87f811cf416f1e48a888b7da4ecc4bae2b67b7b10d8f5e518305ef2b5d4a8451227158552942794b87be43c5dd languageName: node linkType: hard "@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4": - version: 7.5.0 - resolution: "@types/semver@npm:7.5.0" - checksum: ca4ba4642b5972b6e88e73c5bc02bbaceb8d76bce71748d86e3e95042d4e5a44603113a1dcd2cb9b73ad6f91f6e4ab73185eb41bbfc9c73b11f0ed3db3b7443a + version: 7.5.3 + resolution: "@types/semver@npm:7.5.3" + checksum: 1dedcf5f50a5a345e817fdf1273a14d0c57de80eb1d47bf3f17563062be53a2c99b78755a8c88c794a03757f9cd05da61b2849bf109e1b71e30fca895529c2b0 languageName: node linkType: hard "@types/send@npm:*": - version: 0.17.1 - resolution: "@types/send@npm:0.17.1" + version: 0.17.2 + resolution: "@types/send@npm:0.17.2" dependencies: "@types/mime": ^1 "@types/node": "*" - checksum: 1aad6bfafdaa3a3cadad1b441843dfd166821c0e93513daabe979de85b552a1298cfb6f07d40f80b5ecf14a3194dc148deb138605039841f1dadc7132c73e634 - languageName: node - linkType: hard - -"@types/serve-favicon@npm:^2.5.2": - version: 2.5.4 - resolution: "@types/serve-favicon@npm:2.5.4" - dependencies: - "@types/express": "*" - checksum: 60bb648eff8bba7f589e9a2027879c39c137c96e1afafb6a09cb220477c1ebe74c3ce4293c52724592f04e3278950b82741f449c8517a432c163107333a0d6b8 + checksum: 3fdd87a1b82fae523b2609f2acef25705b40899fed3c5f4dd40bf0dc91ad6a2c0a2b6c1494d1584525fe6e88bea271fcdb9775b3996ddc7f16d52261eea73432 languageName: node linkType: hard "@types/serve-index@npm:^1.9.1": - version: 1.9.1 - resolution: "@types/serve-index@npm:1.9.1" + version: 1.9.2 + resolution: "@types/serve-index@npm:1.9.2" dependencies: "@types/express": "*" - checksum: ed1ac8407101a787ebf09164a81bc24248ccf9d9789cd4eaa360a9a06163e5d2168c46ab0ddf2007e47b455182ecaa7632a886639919d9d409a27f7aef4e847a + checksum: 9b82300c6930f8a768e742f89414ef84cd7bd8bc242f13a070fd754144890ba281e7ae99d018e40a256963c12be600f4bb5cfd6e3ad72c686bc9482260c168eb languageName: node linkType: hard "@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10, @types/serve-static@npm:^1.13.8": - version: 1.15.2 - resolution: "@types/serve-static@npm:1.15.2" + version: 1.15.3 + resolution: "@types/serve-static@npm:1.15.3" dependencies: "@types/http-errors": "*" "@types/mime": "*" "@types/node": "*" - checksum: 5e7b3e17b376f8910d5c9a0b1def38d7841c8939713940098f1b80a330d5caa9cfe9b632c122252cd70165052439e18fafa46635dc55b1d6058343901eec22eb + checksum: 0aaaf8fc1c0c8f96a4786928d5d79b0fff2f31e8c3b571c84cd2711129456045a9c02fa76054fb6c76f5770e2f6dbbc3b4be008e9af68bd6ce8739cb6d66c89b languageName: node linkType: hard "@types/sockjs@npm:^0.3.33": - version: 0.3.33 - resolution: "@types/sockjs@npm:0.3.33" + version: 0.3.34 + resolution: "@types/sockjs@npm:0.3.34" dependencies: "@types/node": "*" - checksum: 75b9b2839970ebab3e557955b9e2b1091d87cefabee1023e566bccc093411acc4a1402f3da4fde18aca44f5b9c42fe0626afd073a2140002b9b53eb71a084e4d + checksum: e546c306dc7630e88a7be14faa26c6c6115847f4d334dcf7957166616c1f6d35549c93cb0985f0e0bdcc4c362fb66841b2c418c03c8df24b39be385c5496df11 languageName: node linkType: hard "@types/source-list-map@npm:*": - version: 0.1.2 - resolution: "@types/source-list-map@npm:0.1.2" - checksum: 0538ce317294febf40ed3fc3a2e483fa4aee8ba85584a66e5ed9c0af9ea48a348960bc467076643cb56aeafdd7d2252e90c75e68ef664c0477ec87ea0554ffdc + version: 0.1.3 + resolution: "@types/source-list-map@npm:0.1.3" + checksum: b0734c05ebfca29c28c1418237a13561bd16e5a848c48f0b6295bd2405aa070a317e869d9e8ba6907132928d5ea5cd339076e5e205c75137de7d6aedde11e365 languageName: node linkType: hard @@ -9432,9 +9761,9 @@ __metadata: linkType: hard "@types/tapable@npm:^1": - version: 1.0.8 - resolution: "@types/tapable@npm:1.0.8" - checksum: 01f77d47bac8aaeee7ed298e8e74eb012a28f920106c3c359e1f2730512cd810f2c6165cd2cd769422ae1064e2bf1072778b27fb5ec1973e18c35e2cc1ed5c8d + version: 1.0.9 + resolution: "@types/tapable@npm:1.0.9" + checksum: 51e7a55432c3abf71ae5e13907eb01a576efdf66ddfcd4f2a765436e684e182df527885980d4f710250cd61304a61f7fe9d447b33fef8db1fa434a395c85933d languageName: node linkType: hard @@ -9457,39 +9786,39 @@ __metadata: linkType: hard "@types/tmp@npm:^0.2.3": - version: 0.2.3 - resolution: "@types/tmp@npm:0.2.3" - checksum: a9a32d723b483713ef537af31caddfcc2129ba21a0d56f5e4eef39508e07d415b1ec7327486d15b2cd4ac277deaaef0f8368ed1a0f4029e5ef5c393f9c15856b + version: 0.2.4 + resolution: "@types/tmp@npm:0.2.4" + checksum: 26e19913170193420eddbe5bf83e873ef82a1af002d0871659e0bcd2af41fcc29818bba2571784a452c73094e50a7db1f1a89a6399c103bb037a095cfe67e63d languageName: node linkType: hard "@types/tough-cookie@npm:*": - version: 4.0.2 - resolution: "@types/tough-cookie@npm:4.0.2" - checksum: 38d01fc79a9a87166253b8c548bb401599424c57a818bea1b47a68be6dcd37fc3bff381f978354e00221f284937d5066bb92d58bf79952f9d21deb934e8ec9a7 + version: 4.0.3 + resolution: "@types/tough-cookie@npm:4.0.3" + checksum: 148ca3f9874b39279e85d742676cc132b74d121f7ed7d28ec28f6bc9ff9e1a41cfc2025195f33470ab55e58d316aa32aca8ab31380767f5178f13d0a046d2ebf languageName: node linkType: hard "@types/trusted-types@npm:^2.0.2": - version: 2.0.3 - resolution: "@types/trusted-types@npm:2.0.3" - checksum: 25eae736a8a6d24353c3e0108138935250f79d1d239f6fd6f3eb52d88476456ba946f8cb8f3130c6841d40534cafc2dd2326358d86966327c3c4a3d3eecaf585 + version: 2.0.4 + resolution: "@types/trusted-types@npm:2.0.4" + checksum: ad7ca5059168880d8fa04ebf9d5f57d402bef4d7bb8a50df5103db8bf3821a334aaa2dab9937cf5d440beb707bed35b700fa387fcbce0611821d4cea7fa94dc1 languageName: node linkType: hard "@types/uglify-js@npm:*": - version: 3.17.1 - resolution: "@types/uglify-js@npm:3.17.1" + version: 3.17.2 + resolution: "@types/uglify-js@npm:3.17.2" dependencies: source-map: ^0.6.1 - checksum: c19a44017a901ab15f862e6645023bf96ffb7502b7305a15ee811667693ec66a997a42d5d0ba67814de537b562dafd26230142e26c9bb9f840ee8bb7f798cbcc + checksum: 22ead0f6c4c5f184f5db06aa68c357ace72536ee8ccbd7abe655df2cc375ab92e1bec6c425d9be85fa309190427971c89989c0b58977e9c9167b7c26fb07b898 languageName: node linkType: hard "@types/unist@npm:^2, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2": - version: 2.0.7 - resolution: "@types/unist@npm:2.0.7" - checksum: ecfb4ad9909ba9390fc3b6923a1d783e99753b0687f5cd99a0e56b6c05e1c72bf4e55cb1b8c0ffda49c6cbead4636de351a130f63d7648c554dc526038733b25 + version: 2.0.8 + resolution: "@types/unist@npm:2.0.8" + checksum: 2c4685d5258b4f543677d20dce0d72b8235e70b6c859af24fcf445f92dac98ec8a1faa0cfb43307466561fcd9dbd2534a4860000944401ac3314a685b5efe3d7 languageName: node linkType: hard @@ -9500,54 +9829,61 @@ __metadata: languageName: node linkType: hard +"@types/uuid@npm:^8.3.1": + version: 8.3.4 + resolution: "@types/uuid@npm:8.3.4" + checksum: b9ac98f82fcf35962317ef7dc44d9ac9e0f6fdb68121d384c88fe12ea318487d5585d3480fa003cf28be86a3bbe213ca688ba786601dce4a97724765eb5b1cf2 + languageName: node + linkType: hard + "@types/uuid@npm:^9.0.1": - version: 9.0.2 - resolution: "@types/uuid@npm:9.0.2" - checksum: 4c4834f9738575a69db1179589cf397830dc205850b491216697afb254764c79c96a63b92f76e81b6d03515bed9227adf184fa4d33bb04970e6377e2f7c5bab9 + version: 9.0.4 + resolution: "@types/uuid@npm:9.0.4" + checksum: 3f713a67a56af20ecdfcbc31f29f7182a8aea51f1120d75daa76bb346973e014ae875c27cdd455bd0812a498330abad4ecbc1b65e1b4c507bb897fcda130f079 languageName: node linkType: hard -"@types/webpack-env@npm:^1.16.0, @types/webpack-env@npm:^1.17.0, @types/webpack-env@npm:^1.18.0": - version: 1.18.1 - resolution: "@types/webpack-env@npm:1.18.1" - checksum: 7b7cb8d22fe85fb3f87f592cb5ba2fb3b1057d1d5ce8d770b28728095879f5921085fae97f5bc479bdca55f2cb3111bd9148dc36cd641a5694dfbe001c5fc2f7 +"@types/webpack-env@npm:^1.16.0, @types/webpack-env@npm:^1.18.0": + version: 1.18.2 + resolution: "@types/webpack-env@npm:1.18.2" + checksum: 62a7d7e98fa462cde425c1bf9e70a84f61c522f0171a8eee493d3c26df8b0e7deff233e430c0be6bc654dded0c33f657f47d000f7e797522182817c8565d5a80 languageName: node linkType: hard "@types/webpack-hot-middleware@npm:^2.25.6": - version: 2.25.6 - resolution: "@types/webpack-hot-middleware@npm:2.25.6" + version: 2.25.7 + resolution: "@types/webpack-hot-middleware@npm:2.25.7" dependencies: "@types/connect": "*" tapable: ^2.2.0 webpack: ^5 - checksum: 4c5835dfd9d858bb8ac35170588a86c88fbef50f7bf89c8b3f50780cbc284c3091f0171ecac96dc22bf02b1a0379436a7495e2d59aeda90246fb0039035740fe + checksum: 5f33f415fe1eb5334aea422b42a85ae45cc1d6fc69078a7b1c58879a0bf757172c232c9c8253d90c554f1378492cbf7f4fa40b390b50892cc13b6f77e733b869 languageName: node linkType: hard "@types/webpack-sources@npm:*": - version: 3.2.0 - resolution: "@types/webpack-sources@npm:3.2.0" + version: 3.2.1 + resolution: "@types/webpack-sources@npm:3.2.1" dependencies: "@types/node": "*" "@types/source-list-map": "*" source-map: ^0.7.3 - checksum: 17716e9f03fa63362f92d510bb9119313bac3a7985321e0fe9326dc30ebe598cb2c85b8c7cdc4f4d34d783c4c45e74e3ec08e209f9c9dab27bf188c3def32706 + checksum: 651fcf880b2ed4f309fce9f47b85b7d1771a63436880792688b8c5e6e4177272dbe80c88cc4d877bc8370446499ab9b6a9ac6348b1fd2b29e56f7657f4562dd7 languageName: node linkType: hard "@types/webpack-virtual-modules@npm:^0.1.1": - version: 0.1.1 - resolution: "@types/webpack-virtual-modules@npm:0.1.1" + version: 0.1.2 + resolution: "@types/webpack-virtual-modules@npm:0.1.2" dependencies: "@types/webpack": ^4 - checksum: 42b9b70d19fc65588456aedf732963d0fa79245a4c72f13c30a5a6965ffaddfb7bd822328cf5ce110e4584a131a565bf0edea489626a298f52a590113f454ce8 + checksum: ad3a17f798aa2bb449140f13e251952f5fe5bf8313ced93d3eae7fb82184d82985eb18a27bfae2bd2385051d8affc675d117079f8402d9645bc4376d2a73d991 languageName: node linkType: hard "@types/webpack@npm:^4": - version: 4.41.33 - resolution: "@types/webpack@npm:4.41.33" + version: 4.41.34 + resolution: "@types/webpack@npm:4.41.34" dependencies: "@types/node": "*" "@types/tapable": ^1 @@ -9555,59 +9891,59 @@ __metadata: "@types/webpack-sources": "*" anymatch: ^3.0.0 source-map: ^0.6.0 - checksum: dc6db66fa84664d8fab7ea79bd2482ea1c4500b09ed6939258e205548501b8d29c06b0fe5e869c4b59f74acf884c61a391875dadb9f7a91c8cd10c3841143729 + checksum: 630ebd822e7ee85b7118d1c095370709ce493831365f7fd750bea88ac4726ef52df33cc25261922526e45b354c9fdb3edfabc7738d5b9ec18416fd502cda3838 languageName: node linkType: hard -"@types/ws@npm:^8, @types/ws@npm:^8.5.1": - version: 8.5.5 - resolution: "@types/ws@npm:8.5.5" +"@types/ws@npm:^8, @types/ws@npm:^8.5.5": + version: 8.5.6 + resolution: "@types/ws@npm:8.5.6" dependencies: "@types/node": "*" - checksum: 9fb5aaeb2899f2c5aa55946656a39fdf679e48ec4eff557901215249ac84f435853b1d224214e88a93fcbca4bc9a0b0af01113d76f37db0b5873a882e5e99935 + checksum: 9050eb44c23caba404f106c9ab5210aae0c5cc85b5a7ed0116d0ee1c5b4e499325cffe406b6bc71ee2d4f456e9498037d95a984a06a841a64ef58a6dd79731f4 languageName: node linkType: hard "@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: cb89f3bb2e8002f1479a65a934e825be4cc18c50b350bbc656405d41cf90b8a299b105e7da497d7eb1aa460472a07d1e5a389f3af0862f1d1252279cfcdd017c + version: 21.0.1 + resolution: "@types/yargs-parser@npm:21.0.1" + checksum: f1d723a4c4383a9c53b975820b7490186ca127237ca58eb2ee8f5eacdcdb195a81aeabd1d75560abdf22fc29f70e8bb103d7ab34c5ec49bc19196195a7bf3189 languageName: node linkType: hard "@types/yargs@npm:^15.0.0": - version: 15.0.15 - resolution: "@types/yargs@npm:15.0.15" + version: 15.0.16 + resolution: "@types/yargs@npm:15.0.16" dependencies: "@types/yargs-parser": "*" - checksum: b52519ba68a8d90996b54143ff74fcd8ac1722a1ef4a50ed8c3dbc1f7a76d14210f0262f8b91eabcdab202ff4babdd92ce7332ab1cdd6af4eae7c9fc81c83797 + checksum: 07f0960062e66226ae602fccd62e351143291d778e1f4dd645c51111e62fbedafe2a976c223dcfa7ae052e989407b62e97a7472fc1d73536110cd05502c204a5 languageName: node linkType: hard "@types/yargs@npm:^16.0.0": - version: 16.0.5 - resolution: "@types/yargs@npm:16.0.5" + version: 16.0.6 + resolution: "@types/yargs@npm:16.0.6" dependencies: "@types/yargs-parser": "*" - checksum: 7b2824c749b6e28f5ee3248d13b244eaf7d3c5bb96089add774997572b5a10f1a0826d29a7bc797d64d29ca504b0b0d6ba2e74931b3fabae78ccbbcf07282f0c + checksum: a2cc5796cea1aac492c856ff35e829a6a230e6d72540a9446273ab16392f6ef04b8fef05ddcff71c8106c047820b5534b22e031245ee55995b1ba0c8caa382b2 languageName: node linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.24 - resolution: "@types/yargs@npm:17.0.24" + version: 17.0.26 + resolution: "@types/yargs@npm:17.0.26" dependencies: "@types/yargs-parser": "*" - checksum: fbebf57e1d04199e5e7eb0c67a402566fa27177ee21140664e63da826408793d203d262b48f8f41d4a7665126393d2e952a463e960e761226def247d9bbcdbd0 + checksum: 34ab6eff6dff086b1044c65d53131e1d14e87c0c6dc44cb6851d74d8a4d1ac4503f7d12d1e1ecff25f8aea62ff7a9d6b04b05870a0324d15bbb226ddfc1d6065 languageName: node linkType: hard "@types/yauzl@npm:^2.9.1": - version: 2.10.0 - resolution: "@types/yauzl@npm:2.10.0" + version: 2.10.1 + resolution: "@types/yauzl@npm:2.10.1" dependencies: "@types/node": "*" - checksum: e917cf11c78e9ca7d037d0e6e0d6d5d99443d9d7201f8f1a556f02a2bc57ae457487e9bfec89dfa848d16979b35de6e5b34840d4d0bb9e5f33849d077ac15154 + checksum: d44eb8ab5c7bd024644bdf07e71d1e2618b1d6a9eb10609555a5359264b3f012f91d7add53a49a114df2d3fd6b1787f6204340b03590ea1a6c0e52a71e3bca54 languageName: node linkType: hard @@ -9743,6 +10079,16 @@ __metadata: languageName: node linkType: hard +"@urql/core@npm:^4.1.0": + version: 4.1.3 + resolution: "@urql/core@npm:4.1.3" + dependencies: + "@0no-co/graphql.web": ^1.0.1 + wonka: ^6.3.2 + checksum: 9aa5c8b9df04c79e71f4be6ce0d97cc2301d1ab7aea3ffafa9f53d89564f063dc77a011239c2a51581b50bbedc1e9dab0a3551acc7ee5dda9dd1bece2d5a1644 + languageName: node + linkType: hard + "@vitejs/plugin-basic-ssl@npm:1.0.1": version: 1.0.1 resolution: "@vitejs/plugin-basic-ssl@npm:1.0.1" @@ -9785,39 +10131,39 @@ __metadata: linkType: hard "@vitejs/plugin-vue@npm:^4.0.0": - version: 4.2.3 - resolution: "@vitejs/plugin-vue@npm:4.2.3" + version: 4.4.0 + resolution: "@vitejs/plugin-vue@npm:4.4.0" peerDependencies: vite: ^4.0.0 vue: ^3.2.25 - checksum: 1652df560e29133826cfa4321859fcc93e9162781b86295bab364064d8c33454c7b7bc75bdd66483222c8f88b799e8d372bfb846a710859c873df8f9da8bd349 + checksum: a430fbc504e2d14848b94866d52c8d5044ec216b1bf9304f53e3d3f3045da634db9c986e8ed2b0605fcc94e19fe67dc9c7e10971bd5aab444ca4167a71cd197d languageName: node linkType: hard -"@volar/language-core@npm:1.9.2, @volar/language-core@npm:~1.9.0": - version: 1.9.2 - resolution: "@volar/language-core@npm:1.9.2" +"@volar/language-core@npm:1.10.1, @volar/language-core@npm:~1.10.0": + version: 1.10.1 + resolution: "@volar/language-core@npm:1.10.1" dependencies: - "@volar/source-map": 1.9.2 - checksum: 0336399529252c8414538ef9ac97aaea276a655f4b36a8854cd1df4ecc2aee37a9c951787e60f7b3213f930308041f1ed1bea9c253ca9f93c09f55fcb132d9e4 + "@volar/source-map": 1.10.1 + checksum: cc4e6b07801cc48b68d9bfb4899703afc0b1d0d0a765d952df98ae63d3109555dd2d882aab8970d599521300d50aa109c82f869a590ddd8f94106b3daf0503f8 languageName: node linkType: hard -"@volar/source-map@npm:1.9.2, @volar/source-map@npm:~1.9.0": - version: 1.9.2 - resolution: "@volar/source-map@npm:1.9.2" +"@volar/source-map@npm:1.10.1, @volar/source-map@npm:~1.10.0": + version: 1.10.1 + resolution: "@volar/source-map@npm:1.10.1" dependencies: muggle-string: ^0.3.1 - checksum: 7abb6ed1e21a6f81473ae7622b13ec00ac8ce7bd01f21e44819b4912ad7c3ebc349bbbb91635fc528f37144e314207d2e1fa9485dbe7c9c03dec906d3664f138 + checksum: 9bfc96528d802959d19d07148238cf1b7f7ba7bf05a8cf78339dd1edfb0e755d88005057673c7a807aea74b234a63067fa433a81841b9b9bc1d6e741674f6e40 languageName: node linkType: hard -"@volar/typescript@npm:~1.9.0": - version: 1.9.2 - resolution: "@volar/typescript@npm:1.9.2" +"@volar/typescript@npm:~1.10.0": + version: 1.10.1 + resolution: "@volar/typescript@npm:1.10.1" dependencies: - "@volar/language-core": 1.9.2 - checksum: b6072383671ef5eca4faf7e1800fb15594eb2bbeebb3ebecf4ae6ac558b6c270a172abebeab235c88b4e76dedb060f29ac1cbbc3ea88db587349634e2bbdba18 + "@volar/language-core": 1.10.1 + checksum: daad1018ac7f9d5b45416ca8f1cabec1448c020669bcc3ad9873c277ed467b1e8a2c5849f272888cfaca5e93683f1fd67cc5532fcd1e7a5f0c3a74ad2d595ffe languageName: node linkType: hard @@ -9961,12 +10307,12 @@ __metadata: languageName: node linkType: hard -"@vue/language-core@npm:1.8.6": - version: 1.8.6 - resolution: "@vue/language-core@npm:1.8.6" +"@vue/language-core@npm:1.8.15": + version: 1.8.15 + resolution: "@vue/language-core@npm:1.8.15" dependencies: - "@volar/language-core": ~1.9.0 - "@volar/source-map": ~1.9.0 + "@volar/language-core": ~1.10.0 + "@volar/source-map": ~1.10.0 "@vue/compiler-dom": ^3.3.0 "@vue/reactivity": ^3.3.0 "@vue/shared": ^3.3.0 @@ -9978,7 +10324,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 53d118fab843ae1c84b0680007a80fc8981d4db54ff9bfedaf2235e080dc3763cf05f0cc1cb99339512b07e2da0d3f2784ca83cd5475cafd1f544d68a64534dd + checksum: 05ec3d660bd26cf05d17e722d1117324e1309360f0be4998c82ccac22689e31a332660086ece6b3f4f43660dfb94d1905eea0aa329b88b2f5afea944b01153e0 languageName: node linkType: hard @@ -10081,19 +10427,19 @@ __metadata: languageName: node linkType: hard -"@vue/typescript@npm:1.8.6": - version: 1.8.6 - resolution: "@vue/typescript@npm:1.8.6" +"@vue/typescript@npm:1.8.15": + version: 1.8.15 + resolution: "@vue/typescript@npm:1.8.15" dependencies: - "@volar/typescript": ~1.9.0 - "@vue/language-core": 1.8.6 - checksum: 55c304e018f9cc7c8ffd96c300a881c35af9f153445031b73f06748882201b3f3ffa847f4bc9e9da8cb9065df68ae2895775f3b8019d553691b353fa186e14dd + "@volar/typescript": ~1.10.0 + "@vue/language-core": 1.8.15 + checksum: c68808d29da93e616cd30bd4dc84aad0bb3d245d45537adc74244cc0fe93cb797e4bbdbdf2a4841b6bce088e6ef1bc70fa279fd2e1aabb794c42d908d8e46087 languageName: node linkType: hard "@vue/vue3-jest@npm:29": - version: 29.2.4 - resolution: "@vue/vue3-jest@npm:29.2.4" + version: 29.2.6 + resolution: "@vue/vue3-jest@npm:29.2.6" dependencies: "@babel/plugin-transform-modules-commonjs": ^7.2.0 chalk: ^2.1.0 @@ -10110,7 +10456,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3da6be2a028f2ec8f2ae4e238c132c0dbc1220c0466837909f6a35365d100b8ba03841cd753abb82f49e1a468a95adf20f893f2924aa3a4cb46d9f4a7b60fcd1 + checksum: 9615eb5d6a7803ef7b383c7c65fdf29ea5f0329bf58c9e9a0338fd9ddd409b890db6629185bf1ad986c2ab7e29747a4b4a27df761c3d754979e3d593f825b97c languageName: node linkType: hard @@ -10265,6 +10611,20 @@ __metadata: languageName: node linkType: hard +"@wessberg/ts-evaluator@npm:0.0.27": + version: 0.0.27 + resolution: "@wessberg/ts-evaluator@npm:0.0.27" + dependencies: + chalk: ^4.1.0 + jsdom: ^16.4.0 + object-path: ^0.11.5 + tslib: ^2.0.3 + peerDependencies: + typescript: ">=3.2.x || >= 4.x" + checksum: d81f7dd16ee2b95bbcab05aaeb6b6d0609183ef18d8adb42fa4b9707455ee332274da43ed7bae6b725f24e2cb75249b8cc4fbbe3aad59ab40d30b40402d815c6 + languageName: node + linkType: hard + "@xtuc/ieee754@npm:^1.2.0": version: 1.2.0 resolution: "@xtuc/ieee754@npm:1.2.0" @@ -10317,13 +10677,23 @@ __metadata: languageName: node linkType: hard +"@yarnpkg/parsers@npm:3.0.0-rc.46": + version: 3.0.0-rc.46 + resolution: "@yarnpkg/parsers@npm:3.0.0-rc.46" + dependencies: + js-yaml: ^3.10.0 + tslib: ^2.4.0 + checksum: c7f421c6885142f351459031c093fb2e79abcce6f4a89765a10e600bb7ab122949c54bcea2b23de9572a2b34ba29f822b17831c1c43ba50373ceb8cb5b336667 + languageName: node + linkType: hard + "@yarnpkg/parsers@npm:^3.0.0-rc.18": - version: 3.0.0-rc.48.1 - resolution: "@yarnpkg/parsers@npm:3.0.0-rc.48.1" + version: 3.0.0-rc.53 + resolution: "@yarnpkg/parsers@npm:3.0.0-rc.53" dependencies: js-yaml: ^3.10.0 tslib: ^2.4.0 - checksum: 05197a056e9817f9fe059df303f7e0cb9b1740ffd18b4f5bc831366f8284f638973f1ae324e99300c463540ecb5a3c189c1b36f96c320d782c8224ff2954e8c2 + checksum: e384ecc6539e3c5796d87b2910b03331407c0ad817d85bf58ba0b383afb45dd7e1ee0fc862d9756350049b816b72d052de141274804e6e5fee795483c8bd3f12 languageName: node linkType: hard @@ -10350,7 +10720,7 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.6": +"abab@npm:^2.0.3, abab@npm:^2.0.5, abab@npm:^2.0.6": version: 2.0.6 resolution: "abab@npm:2.0.6" checksum: 0b245c3c3ea2598fe0025abf7cc7bb507b06949d51e8edae5d12c1b847a0a0c09639abcb94788332b4e2044ac4491c1e8f571b51c7826fd4b0bda1685ad4a278 @@ -10390,6 +10760,16 @@ __metadata: languageName: node linkType: hard +"acorn-globals@npm:^6.0.0": + version: 6.0.0 + resolution: "acorn-globals@npm:6.0.0" + dependencies: + acorn: ^7.1.1 + acorn-walk: ^7.1.1 + checksum: 5f92390a3fd7e5a4f84fe976d4650e2a33ecf27135aa9efc5406e3406df7f00a1bbb00648ee0c8058846f55ad0924ff574e6c73395705690e754589380a41801 + languageName: node + linkType: hard + "acorn-globals@npm:^7.0.0": version: 7.0.1 resolution: "acorn-globals@npm:7.0.1" @@ -10418,7 +10798,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^7.2.0": +"acorn-walk@npm:^7.1.1, acorn-walk@npm:^7.2.0": version: 7.2.0 resolution: "acorn-walk@npm:7.2.0" checksum: ff99f3406ed8826f7d6ef6ac76b7608f099d45a1ff53229fa267125da1924188dbacf02e7903dfcfd2ae4af46f7be8847dc7d564c73c4e230dfb69c8ea8e6b4c @@ -10441,7 +10821,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.0, acorn@npm:^8.1.0, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.0.0, acorn@npm:^8.1.0, acorn@npm:^8.10.0, acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -10491,13 +10871,11 @@ __metadata: linkType: hard "agentkeepalive@npm:^4.2.1": - version: 4.3.0 - resolution: "agentkeepalive@npm:4.3.0" + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" dependencies: - debug: ^4.1.0 - depd: ^2.0.0 humanize-ms: ^1.2.1 - checksum: 61cbdab12d45e82e9ae515b0aa8d09617b66f72409e541a646dd7be4b7260d335d7f56a38079ad305bf0ffb8405592a459faf1294111289107f48352a20c2799 + checksum: 394ea19f9710f230722996e156607f48fdf3a345133b0b1823244b7989426c16019a428b56c82d3eabef616e938812981d9009f4792ecc66bd6a59e991c62612 languageName: node linkType: hard @@ -10576,7 +10954,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -10621,7 +10999,7 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": +"ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: @@ -10630,6 +11008,15 @@ __metadata: languageName: node linkType: hard +"ansi-escapes@npm:^5.0.0": + version: 5.0.0 + resolution: "ansi-escapes@npm:5.0.0" + dependencies: + type-fest: ^1.0.2 + checksum: f705cc7fbabb981ddf51562cd950792807bccd7260cc3d9478a619dda62bff6634c87ca100f2545ac7aade9b72652c4edad8c7f0d31a0b949b5fa58f33eaf0d0 + languageName: node + linkType: hard + "ansi-escapes@npm:^6.0.0": version: 6.2.0 resolution: "ansi-escapes@npm:6.2.0" @@ -10893,15 +11280,15 @@ __metadata: linkType: hard "array-includes@npm:^3.1.6": - version: 3.1.6 - resolution: "array-includes@npm:3.1.6" + version: 3.1.7 + resolution: "array-includes@npm:3.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.3 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 is-string: ^1.0.7 - checksum: d0caeaa57bea7d14b8480daee30cf8611899321006b15a6cd872b831bd7aaed7649f8764e060d01c5d33b8d9e998e5de5c87f4901874e1c1f467f429b7db2929 + checksum: 692907bd7f19d06dc58ccb761f34b58f5dc0b437d2b47a8fe42a1501849a5cf5c27aed3d521a9702667827c2c85a7e75df00a402c438094d87fc43f39ebf9b2b languageName: node linkType: hard @@ -10936,78 +11323,92 @@ __metadata: linkType: hard "array.prototype.filter@npm:^1.0.0": - version: 1.0.2 - resolution: "array.prototype.filter@npm:1.0.2" + version: 1.0.3 + resolution: "array.prototype.filter@npm:1.0.3" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-array-method-boxes-properly: ^1.0.0 is-string: ^1.0.7 - checksum: f49da13cb9110c7caede682e22b32208aaaea3b5d9760e5b417e3d62d72b5a092f0c26ad648879900cd9694371fc75e47f80a08b6a1eb5e3cc15976e8f4bc0c7 + checksum: 8b70b5f866df5d90fa27aa5bfa30f5fefc44cbea94b0513699d761713658077c2a24cbf06aac5179eabddb6c93adc467af4c288b7a839c5bc5a769ee5a2d48ad languageName: node linkType: hard "array.prototype.find@npm:^2.1.1": - version: 2.2.1 - resolution: "array.prototype.find@npm:2.2.1" + version: 2.2.2 + resolution: "array.prototype.find@npm:2.2.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + es-shim-unscopables: ^1.0.0 + checksum: 5008d3e6089f7047db1886d0dc2d75bdd342b886528dbca3c67920f18fd435dbc878b9c55243c96e18423d139d5ddb08cdbc8f95bd89ed4f2f53c63260eb444a + languageName: node + linkType: hard + +"array.prototype.findlastindex@npm:^1.2.2": + version: 1.2.3 + resolution: "array.prototype.findlastindex@npm:1.2.3" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - checksum: 09211690d57a114a0d7de39dbd812f7844322aaed74aaa353ff2b7ee9f5a416581ca72a4c0c1cdf520cf5bad62aa33f8ca7d972afa83204ebedcb72582f08a49 + get-intrinsic: ^1.2.1 + checksum: 2c5c4d3f07512d6729f728f6260a314c00f2eb0a243123092661fa1bc65dce90234c3b483b5f978396eccef6f69c50f0bea248448aaf9cdfcd1cedad6217acbb languageName: node linkType: hard "array.prototype.flat@npm:^1.2.3, array.prototype.flat@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flat@npm:1.3.1" + version: 1.3.2 + resolution: "array.prototype.flat@npm:1.3.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - checksum: 8eda91d6925cc84b73ebf5a3d406ff28745d93a22ef6a0afb967755107081a937cf6c4555d3c18354870b2c5366c0ff51b3f597c11079e689869810a418b1b4f + checksum: a578ed836a786efbb6c2db0899ae80781b476200617f65a44846cb1ed8bd8b24c8821b83703375d8af639c689497b7b07277060024b9919db94ac3e10dc8a49b languageName: node linkType: hard "array.prototype.flatmap@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flatmap@npm:1.3.1" + version: 1.3.2 + resolution: "array.prototype.flatmap@npm:1.3.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - checksum: 2bd58a0e79d5d90cb4f5ef0e287edf8b28e87c65428f54025ac6b7b4c204224b92811c266f296c53a2dbc93872117c0fcea2e51d3c9e8cecfd5024d4a4a57db4 + checksum: 67b3f1d602bb73713265145853128b1ad77cc0f9b833c7e1e056b323fbeac41a4ff1c9c99c7b9445903caea924d9ca2450578d9011913191aa88cc3c3a4b54f4 languageName: node linkType: hard "array.prototype.tosorted@npm:^1.1.1": - version: 1.1.1 - resolution: "array.prototype.tosorted@npm:1.1.1" + version: 1.1.2 + resolution: "array.prototype.tosorted@npm:1.1.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - get-intrinsic: ^1.1.3 - checksum: fd5f57aca3c7ddcd1bb83965457b625f3a67d8f334f5cbdb8ac8ef33d5b0d38281524114db2936f8c08048115d5158af216c94e6ae1eb966241b9b6f4ab8a7e8 + get-intrinsic: ^1.2.1 + checksum: aa222a0f78e9cdb4ea4d788a11f0acc2b17c2226f0912917e1c89e0f0c4dcdd14414ac88afffbd03025f33501f2649907cfb80664e48aa2af3430c1fb1b0b416 languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.1": - version: 1.0.1 - resolution: "arraybuffer.prototype.slice@npm:1.0.1" +"arraybuffer.prototype.slice@npm:^1.0.2": + version: 1.0.2 + resolution: "arraybuffer.prototype.slice@npm:1.0.2" dependencies: array-buffer-byte-length: ^1.0.0 call-bind: ^1.0.2 define-properties: ^1.2.0 + es-abstract: ^1.22.1 get-intrinsic: ^1.2.1 is-array-buffer: ^3.0.2 is-shared-array-buffer: ^1.0.2 - checksum: db460cb4a96c3c9e27a2a7eed5d0ab1fcfccae9fc8cd1b4883cbb03cd29060b373e0723e78b5c786fdec2025a0ab12eb840c72b2f26016bac906b91bc4e9e4db + checksum: 96b6e40e439678ffb7fa266398510074d33c3980fbb475490b69980cca60adec3b0777047ef377068a29862157f83edef42efc64ce48ce38977d04d68de5b7fb languageName: node linkType: hard @@ -11052,14 +11453,15 @@ __metadata: linkType: hard "assert@npm:^2.0.0": - version: 2.0.0 - resolution: "assert@npm:2.0.0" + version: 2.1.0 + resolution: "assert@npm:2.1.0" dependencies: - es6-object-assign: ^1.1.0 - is-nan: ^1.2.1 - object-is: ^1.0.1 - util: ^0.12.0 - checksum: a25c7ebc07b52cc4dadd5c46d73472e7d4b86e40eb7ebaa12f78c1ba954dbe83612be5dea314b862fc364c305ab3bdbcd1c9d4ec2d92bc37214ae7d5596347f3 + call-bind: ^1.0.2 + is-nan: ^1.3.2 + object-is: ^1.1.5 + object.assign: ^4.1.4 + util: ^0.12.5 + checksum: 7271a5da883c256a1fa690677bf1dd9d6aa882139f2bed1cd15da4f9e7459683e1da8e32a203d6cc6767e5e0f730c77a9532a87b896b4b0af0dd535f668775f0 languageName: node linkType: hard @@ -11111,13 +11513,6 @@ __metadata: languageName: node linkType: hard -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: f63d439cc383db1b9c5c6080d1e240bd14dae745f15d11ec5da863e182bbeca70df6c8191cffef5deba0b566ef98834610a68be79ac6379c95eeb26e1b310e25 - languageName: node - linkType: hard - "async-disk-cache@npm:^1.2.1": version: 1.3.5 resolution: "async-disk-cache@npm:1.3.5" @@ -11175,6 +11570,15 @@ __metadata: languageName: node linkType: hard +"asynciterator.prototype@npm:^1.0.0": + version: 1.0.0 + resolution: "asynciterator.prototype@npm:1.0.0" + dependencies: + has-symbols: ^1.0.3 + checksum: fb76850e57d931ff59fd16b6cddb79b0d34fe45f400b2c3480d38892e72cd089787401687dbdb7cdb14ece402c275d3e02a648760d1489cd493527129c4c6204 + languageName: node + linkType: hard + "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" @@ -11224,9 +11628,9 @@ __metadata: linkType: hard "axe-core@npm:^4.2.0, axe-core@npm:^4.6.2, axe-core@npm:^4.7.0": - version: 4.7.2 - resolution: "axe-core@npm:4.7.2" - checksum: 8dfc61f038fbd9623ae8a264c8a475d887113a027fb440a2b377b82ffd300e71d1a0bcf042ff13b517a8d548b34c44b4159eff693725c5d7cde240d0aa68feac + version: 4.8.2 + resolution: "axe-core@npm:4.8.2" + checksum: ad9e1125ba226bbc73d442996d8b9b35fed9af8bcfa995831e29c3d6b8ddb0d16bc7d18c66c5a685211296ee99fe966ae4d59051ca6fbef2a7ee7408322b9dbe languageName: node linkType: hard @@ -11252,13 +11656,13 @@ __metadata: linkType: hard "axios@npm:^1.0.0": - version: 1.4.0 - resolution: "axios@npm:1.4.0" + version: 1.5.1 + resolution: "axios@npm:1.5.1" dependencies: follow-redirects: ^1.15.0 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: a925a07590b0ec1d4daf28cd27890f930daab980371558deb3b883af174b881da09e5ba2cb8393a648fda5859e39934982d0b8b092fe89fc84cb6c80a70a1910 + checksum: f9d975a17a9dff8e325e204d5e09ef07bdd1b6fa63983f184c3cf33249ee38339f1e5d8f874f89116be8942b46d1f4d5ce9ddb03757be69614f5775c2dd6da25 languageName: node linkType: hard @@ -11296,37 +11700,24 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^29.6.1": - version: 29.6.1 - resolution: "babel-jest@npm:29.6.1" +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" dependencies: - "@jest/transform": ^29.6.1 + "@jest/transform": ^29.7.0 "@types/babel__core": ^7.1.14 babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^29.5.0 + babel-preset-jest: ^29.6.3 chalk: ^4.0.0 graceful-fs: ^4.2.9 slash: ^3.0.0 peerDependencies: "@babel/core": ^7.8.0 - checksum: a32ac32f3b5bd66f3f8370cfd6244b0f7b18c2dd367d5829e86dea9f8516ffda63edfb2743d3e1768db93a0698b4db09cd9d22961447e0ed6fd309b5b9c22764 - languageName: node - linkType: hard - -"babel-loader@npm:9.1.2": - version: 9.1.2 - resolution: "babel-loader@npm:9.1.2" - dependencies: - find-cache-dir: ^3.3.2 - schema-utils: ^4.0.0 - peerDependencies: - "@babel/core": ^7.12.0 - webpack: ">=5" - checksum: e62ca6af7dec5e9138908ca23f0f29b0865f733d76680b0b0ebc97b1ae18dc6e9cf887c02439ee0634a16eaaef0dc000d78d20c30c348f651a55f50aea5a62ff + checksum: 2eda9c1391e51936ca573dd1aedfee07b14c59b33dbe16ef347873ddd777bcf6e2fc739681e9e9661ab54ef84a3109a03725be2ac32cd2124c07ea4401cbe8c1 languageName: node linkType: hard -"babel-loader@npm:^7.0.0 || ^8.0.0 || ^9.0.0, babel-loader@npm:^9.0.0, babel-loader@npm:^9.1.2": +"babel-loader@npm:9.1.3, babel-loader@npm:^7.0.0 || ^8.0.0 || ^9.0.0, babel-loader@npm:^9.0.0, babel-loader@npm:^9.1.2": version: 9.1.3 resolution: "babel-loader@npm:9.1.3" dependencies: @@ -11410,15 +11801,15 @@ __metadata: languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:^29.5.0": - version: 29.5.0 - resolution: "babel-plugin-jest-hoist@npm:29.5.0" +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" dependencies: "@babel/template": ^7.3.3 "@babel/types": ^7.3.3 "@types/babel__core": ^7.1.14 "@types/babel__traverse": ^7.0.6 - checksum: 385547c4d81647848dc3e86fecf4381032be99ed97d87aee78d422631f651042600371ee31e37ec9bb6f4a0a4f296b3b5798d69c410626ea94eae76d9c64da63 + checksum: 7e6451caaf7dce33d010b8aafb970e62f1b0c0b57f4978c37b0d457bbcf0874d75a395a102daf0bae0bd14eafb9f6e9a165ee5e899c0a4f1f3bb2e07b304ed2e languageName: node linkType: hard @@ -11453,7 +11844,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.3, babel-plugin-polyfill-corejs2@npm:^0.4.4": +"babel-plugin-polyfill-corejs2@npm:^0.4.4, babel-plugin-polyfill-corejs2@npm:^0.4.5": version: 0.4.5 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.5" dependencies: @@ -11466,19 +11857,19 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.1, babel-plugin-polyfill-corejs3@npm:^0.8.2": - version: 0.8.3 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.3" +"babel-plugin-polyfill-corejs3@npm:^0.8.2, babel-plugin-polyfill-corejs3@npm:^0.8.3": + version: 0.8.4 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.4" dependencies: "@babel/helper-define-polyfill-provider": ^0.4.2 - core-js-compat: ^3.31.0 + core-js-compat: ^3.32.2 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: b5cbfad6d3695a1ea65ef62e34de7f9c6f717cd5cc6d64bde726528168ba1d0a81e09a385d9283a489aab9739fbe206f2192fd9f0f60a37a0577de6526553a8d + checksum: d015514433c092d52914319b69cb6b5b9b6e7798d2d3c8c64c2d1dc249361457411dc611b51dabfc6104856029341b37f4e76299c02be7ae47262bf79b7774d5 languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.0, babel-plugin-polyfill-regenerator@npm:^0.5.1": +"babel-plugin-polyfill-regenerator@npm:^0.5.1, babel-plugin-polyfill-regenerator@npm:^0.5.2": version: 0.5.2 resolution: "babel-plugin-polyfill-regenerator@npm:0.5.2" dependencies: @@ -11540,15 +11931,15 @@ __metadata: languageName: node linkType: hard -"babel-preset-jest@npm:^29.5.0": - version: 29.5.0 - resolution: "babel-preset-jest@npm:29.5.0" +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" dependencies: - babel-plugin-jest-hoist: ^29.5.0 + babel-plugin-jest-hoist: ^29.6.3 babel-preset-current-node-syntax: ^1.0.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 752b8682c8cf55bca46d870003f4ce43a4ba0fcaa1138ff7f0e02340628e221810b0c2c3e77a7d5070168dc163eb11907f6c9256f187242abe0f14219d1f6b12 + checksum: ec5fd0276b5630b05f0c14bb97cc3815c6b31600c683ebb51372e54dcb776cff790bdeeabd5b8d01ede375a040337ccbf6a3ccd68d3a34219125945e167ad943 languageName: node linkType: hard @@ -11683,9 +12074,9 @@ __metadata: linkType: hard "bignumber.js@npm:^9.0.0": - version: 9.1.1 - resolution: "bignumber.js@npm:9.1.1" - checksum: 950312b15d038ae06028c8a6901fb4efd57fa889ada8c887cebd856e79f2fc9667641bebfb2e2ea4cc694e663fd55c1fe6e62a7e8fe40bbdebdf92269537b802 + version: 9.1.2 + resolution: "bignumber.js@npm:9.1.2" + checksum: e17786545433f3110b868725c449fa9625366a6e675cd70eb39b60938d6adbd0158cb4b3ad4f306ce817165d37e63f4aa3098ba4110db1d9a3b9f66abfbaf10d languageName: node linkType: hard @@ -12073,6 +12464,13 @@ __metadata: languageName: node linkType: hard +"browser-dtector@npm:^3.4.0": + version: 3.4.0 + resolution: "browser-dtector@npm:3.4.0" + checksum: b2586d2fdccd9ab992b6cc254a65f10d54137b50edfd70bf80ecf80e8e7761e78482e10d7c3874609ab9b602bc6da7466a01b254d40ec721d341c723589aa288 + languageName: node + linkType: hard + "browser-process-hrtime@npm:^1.0.0": version: 1.0.0 resolution: "browser-process-hrtime@npm:1.0.0" @@ -12162,17 +12560,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.5, browserslist@npm:^4.21.9": - version: 4.21.9 - resolution: "browserslist@npm:4.21.9" +"browserslist@npm:^4.14.5, browserslist@npm:^4.21.5, browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": + version: 4.22.1 + resolution: "browserslist@npm:4.22.1" dependencies: - caniuse-lite: ^1.0.30001503 - electron-to-chromium: ^1.4.431 - node-releases: ^2.0.12 - update-browserslist-db: ^1.0.11 + caniuse-lite: ^1.0.30001541 + electron-to-chromium: ^1.4.535 + node-releases: ^2.0.13 + update-browserslist-db: ^1.0.13 bin: browserslist: cli.js - checksum: 903189787141f645f47ec46ec482dc85985d1297948062690dc2ea8480eb98fd6213507234eb17177825acaae49c53888445910f1af984abce5373fb65c270b8 + checksum: 6810f2d63f171d0b7b8d38cf091708e00cb31525501810a507839607839320d66e657293b0aa3d7f051ecbc025cb07390a90c037682c1d05d12604991e41050b languageName: node linkType: hard @@ -12265,15 +12663,6 @@ __metadata: languageName: node linkType: hard -"bundle-name@npm:^3.0.0": - version: 3.0.0 - resolution: "bundle-name@npm:3.0.0" - dependencies: - run-applescript: ^5.0.0 - checksum: 57bc7f8b025d83961b04db2f1eff6a87f2363c2891f3542a4b82471ff8ebb5d484af48e9784fcdb28ef1d48bb01f03d891966dc3ef58758e46ea32d750ce40f8 - languageName: node - linkType: hard - "busboy@npm:1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" @@ -12326,26 +12715,6 @@ __metadata: languageName: node linkType: hard -"cacache@npm:17.1.3, cacache@npm:^17.0.0, cacache@npm:^17.0.4": - version: 17.1.3 - resolution: "cacache@npm:17.1.3" - dependencies: - "@npmcli/fs": ^3.1.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^7.7.1 - minipass: ^5.0.0 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: fcb0843c8e152b0e1440328508a2c0d6435c431198155e31daa591b348a1739b089ce2a72a4528690ed10a2bf086c180ee4980e2116457131b4c8a6e65e10976 - languageName: node - linkType: hard - "cacache@npm:^16.1.0": version: 16.1.3 resolution: "cacache@npm:16.1.3" @@ -12372,6 +12741,26 @@ __metadata: languageName: node linkType: hard +"cacache@npm:^17.0.0, cacache@npm:^17.0.4": + version: 17.1.4 + resolution: "cacache@npm:17.1.4" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^7.7.1 + minipass: ^7.0.3 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: 21749dcf98c61dd570b179e51573b076c92e3f6c82166d37444242db66b92b1e6c6dc11c6059c027ac7bdef5479b513855059299cc11cda8212c49b0f69a3662 + languageName: node + linkType: hard + "cache-base@npm:^1.0.1": version: 1.0.1 resolution: "cache-base@npm:1.0.1" @@ -12483,10 +12872,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001464, caniuse-lite@npm:^1.0.30001503": - version: 1.0.30001517 - resolution: "caniuse-lite@npm:1.0.30001517" - checksum: 42625e3def1988876a7b636f6ab0c70c4b998af69689eb0abb6d4615f2139db621908bac24e29edc4f03756542fd99c7bf435f859e49313268e5223004365f86 +"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001464, caniuse-lite@npm:^1.0.30001541": + version: 1.0.30001543 + resolution: "caniuse-lite@npm:1.0.30001543" + checksum: 3d80abff0c2c70167f2bbc8f5105370a6eb9f4c2b59c520eaa18b76082d45b27a292c39d2a5dcaeca253679cab5aca8ff89b569502839fadd7be8ae04fb41349 languageName: node linkType: hard @@ -12514,10 +12903,10 @@ __metadata: languageName: node linkType: hard -"chalk@npm:5.2.0": - version: 5.2.0 - resolution: "chalk@npm:5.2.0" - checksum: 8a519b35c239f96e041b7f1ed8fdd79d3ca2332a8366cb957378b8a1b8a4cdfb740d19628e8bf74654d4c0917aa10cf39c20752e177a1304eac29a1168a740e9 +"chalk@npm:5.3.0, chalk@npm:^5.2.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 languageName: node linkType: hard @@ -12552,13 +12941,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.2.0": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 - languageName: node - linkType: hard - "char-regex@npm:^1.0.2": version: 1.0.2 resolution: "char-regex@npm:1.0.2" @@ -12707,17 +13089,25 @@ __metadata: languageName: node linkType: hard -"chromatic@npm:6.11.2": - version: 6.11.2 - resolution: "chromatic@npm:6.11.2" - dependencies: - "@discoveryjs/json-ext": ^0.5.7 - "@types/webpack-env": ^1.17.0 +"chromatic@npm:7.1.0": + version: 7.1.0 + resolution: "chromatic@npm:7.1.0" + bin: + chroma: dist/bin.js + chromatic: dist/bin.js + chromatic-cli: dist/bin.js + checksum: d5bc18f97b7829799673018e8eaa0ef6537a47e3050208b791e083bef6753c44a2506f1fef2180b71fbf05c67bc80cdaf253ea599924dee82103e58ed344ef8a + languageName: node + linkType: hard + +"chromatic@npm:7.2.0-next.1": + version: 7.2.0-next.1 + resolution: "chromatic@npm:7.2.0-next.1" bin: - chroma: bin/main.cjs - chromatic: bin/main.cjs - chromatic-cli: bin/main.cjs - checksum: 9692af67638cd90be498f9fcbca5b2397204faf04b5ccdc97118950412ebe1140a240955426e174dfcfdecb9483db8236aa70af3c26dc9c17ef73d8415d4e229 + chroma: dist/bin.js + chromatic: dist/bin.js + chromatic-cli: dist/bin.js + checksum: bae3db70834766b82488e2c419f9e4dc297f372ba6987b1abf7688f875b1405caa37375c43f0a02b391b6c23514f04e9a5ff759ef5c3c42d6a11aed22ff4b910 languageName: node linkType: hard @@ -12736,9 +13126,9 @@ __metadata: linkType: hard "ci-info@npm:^3.2.0, ci-info@npm:^3.6.1": - version: 3.8.0 - resolution: "ci-info@npm:3.8.0" - checksum: 0d3052193b58356372b34ab40d2668c3e62f1006d5ca33726d1d3c423853b19a85508eadde7f5908496fb41448f465263bf61c1ee58b7832cb6a924537e3863a + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a languageName: node linkType: hard @@ -12810,6 +13200,15 @@ __metadata: languageName: node linkType: hard +"cli-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-cursor@npm:4.0.0" + dependencies: + restore-cursor: ^4.0.0 + checksum: e776e8c3c6727300d0539b0d25160b2bb56aed1a63942753ba1826b012f337a6f4b7ace3548402e4f2f13b5e16bfd751be672c44b203205e7eca8be94afec42c + languageName: node + linkType: hard + "cli-spinners@npm:2.6.1": version: 2.6.1 resolution: "cli-spinners@npm:2.6.1" @@ -12818,9 +13217,9 @@ __metadata: linkType: hard "cli-spinners@npm:^2.5.0": - version: 2.9.0 - resolution: "cli-spinners@npm:2.9.0" - checksum: c0d5437acc1ace7361b1c58a4fda3c92c2d8691ff3169ac658ce30faee71280b7aa706c072bcb6d0e380c232f3495f7d5ad4668c1391fe02c4d3a39d37798f44 + version: 2.9.1 + resolution: "cli-spinners@npm:2.9.1" + checksum: c9b1152bd387e5b76823bdee6f19079c4017994d352627216e5d3dab9220a8402514519ad96a0a12120b80752fead98d1e7a7a5f56ce32125f92778ef47bdd8c languageName: node linkType: hard @@ -12837,16 +13236,6 @@ __metadata: languageName: node linkType: hard -"cli-truncate@npm:^2.1.0": - version: 2.1.0 - resolution: "cli-truncate@npm:2.1.0" - dependencies: - slice-ansi: ^3.0.0 - string-width: ^4.2.0 - checksum: dfaa3df675bcef7a3254773de768712b590250420345a4c7ac151f041a4bacb4c25864b1377bee54a39b5925a030c00eabf014e312e3a4ac130952ed3b3879e9 - languageName: node - linkType: hard - "cli-truncate@npm:^3.1.0": version: 3.1.0 resolution: "cli-truncate@npm:3.1.0" @@ -12994,15 +13383,15 @@ __metadata: linkType: hard "code-red@npm:^1.0.3": - version: 1.0.3 - resolution: "code-red@npm:1.0.3" + version: 1.0.4 + resolution: "code-red@npm:1.0.4" dependencies: - "@jridgewell/sourcemap-codec": ^1.4.14 - "@types/estree": ^1.0.0 - acorn: ^8.8.2 + "@jridgewell/sourcemap-codec": ^1.4.15 + "@types/estree": ^1.0.1 + acorn: ^8.10.0 estree-walker: ^3.0.3 periscopic: ^3.1.0 - checksum: d8722c5bb5898fe0723211d07067179cd0befe70b4b4115752d207b4703816bf146298fa0bfe6b1aaa94e16387bd80945bba2b7271d0ebd3b2e9d10e0b9f1e2a + checksum: 1309f062369ae520c422d7f45b93190faea2cbc7e3fe3375918f36bb394030d0936d940601426564c30abc71b8aa8e6d1505cccd67a8620183fb01c84bcb7304 languageName: node linkType: hard @@ -13071,7 +13460,7 @@ __metadata: languageName: node linkType: hard -"colorette@npm:^2.0.10, colorette@npm:^2.0.19": +"colorette@npm:^2.0.10, colorette@npm:^2.0.19, colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" checksum: e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 @@ -13111,10 +13500,10 @@ __metadata: languageName: node linkType: hard -"commander@npm:^10.0.0": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 53f33d8927758a911094adadda4b2cbac111a5b377d8706700587650fd8f45b0bbe336de4b5c3fe47fd61f420a3d9bd452b6e0e6e5600a7e74d7bf0174f6efe3 +"commander@npm:11.0.0": + version: 11.0.0 + resolution: "commander@npm:11.0.0" + checksum: 471c44cd2d31dee556753df6ceb5ef52ccded0ba6308d3ba7a76251aa0edeedf5ac66ca86cb6096cc8fe20997064233c476983d346265f85180e86312724de0c languageName: node linkType: hard @@ -13532,19 +13921,19 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.30.2, core-js-compat@npm:^3.31.0": - version: 3.31.1 - resolution: "core-js-compat@npm:3.31.1" +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2": + version: 3.33.0 + resolution: "core-js-compat@npm:3.33.0" dependencies: - browserslist: ^4.21.9 - checksum: 2f05c5d5b04e8a69cf50f538ef3fb1932ab83bd7dc690c438c7b876049cb1515eb4ca9fa29400ed7cd5885f34c901bf6a26d9149dfff8665d8302cace7e96d72 + browserslist: ^4.22.1 + checksum: 1db27222420548c65fdb92574192aa1ab434e8e3b80a347fc9c20004e459cc146e719dee8a8c3a3c0773190834e865542d3745ada27a160937fc312a14f66d5c languageName: node linkType: hard "core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.30.2": - version: 3.31.1 - resolution: "core-js-pure@npm:3.31.1" - checksum: 58e126c2fb3d2758f29f947edc9a561b367189d158f98bfdf6169a7fafbbafc61ae4a9c69df6ed48a7b3985727c60eead82b2072f66f5ca0d911b9b4c74cbb8c + version: 3.33.0 + resolution: "core-js-pure@npm:3.33.0" + checksum: dbb683bf6c5d3671129e5029e0f8047a388818bb9720352c839f46ac5627b5fed763135b9a1df89452f2afee78e49639def6063e82fc6995c4e98c31f2892db5 languageName: node linkType: hard @@ -13556,9 +13945,9 @@ __metadata: linkType: hard "core-js@npm:^3.8.2": - version: 3.31.1 - resolution: "core-js@npm:3.31.1" - checksum: 17b44ddc675d7e924ecf0da21dcae3dc9e26758048e3275ba05fcd1a8805d45e6bacee1335b781e9d59d0c38302d5cbfc49073ef33232387459f432852fb6cd9 + version: 3.33.0 + resolution: "core-js@npm:3.33.0" + checksum: f51192f311c2d75b94ebe4eb7210f91df2cb6de101b96da1a65f43cf52b9c5cfe1ce5ebebb86281e452d2ee949730afb72fb7ac826c655c9de3a92f793cf3b80 languageName: node linkType: hard @@ -13602,15 +13991,20 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^8.1.3, cosmiconfig@npm:^8.2.0": - version: 8.2.0 - resolution: "cosmiconfig@npm:8.2.0" +"cosmiconfig@npm:^8.2.0": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" dependencies: - import-fresh: ^3.2.1 + import-fresh: ^3.3.0 js-yaml: ^4.1.0 - parse-json: ^5.0.0 + parse-json: ^5.2.0 path-type: ^4.0.0 - checksum: 4180aa6d1881b75ba591b2fc04b022741a3a4b67e9e243c0eb8d169b6e1efbd3cdf7e8ca19243c0f2e53a9d59ac3eccd5cad5f95f487fcbf4e740f9e86745747 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a languageName: node linkType: hard @@ -13651,6 +14045,23 @@ __metadata: languageName: node linkType: hard +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + prompts: ^2.0.1 + bin: + create-jest: bin/create-jest.js + checksum: e7e54c280692470d3398f62a6238fd396327e01c6a0757002833f06d00afc62dd7bfe04ff2b9cd145264460e6b4d1eb8386f2925b7e567f97939843b7b0e812f + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -13658,9 +14069,9 @@ __metadata: languageName: node linkType: hard -"critters@npm:0.0.19": - version: 0.0.19 - resolution: "critters@npm:0.0.19" +"critters@npm:0.0.20": + version: 0.0.20 + resolution: "critters@npm:0.0.20" dependencies: chalk: ^4.1.0 css-select: ^5.1.0 @@ -13669,7 +14080,7 @@ __metadata: htmlparser2: ^8.0.2 postcss: ^8.4.23 pretty-bytes: ^5.3.0 - checksum: facaed781d44aba3d55e92a6e280b397b4c393f8756fe8233afb5bf35ff1cb01562258eb4c910c534c8c7746a27b48a65ab111416733d9fb3f35fe50e65ac363 + checksum: d5769969f237c1a8af92ea88c0d224a2f46e8489fa0afe04d16f65937284ceb3f0ede75e16054c9b91c35c181f5d9dc71eaa4e153de0b7c46d3dd5e4689513b9 languageName: node linkType: hard @@ -13842,6 +14253,13 @@ __metadata: languageName: node linkType: hard +"cssom@npm:^0.4.4": + version: 0.4.4 + resolution: "cssom@npm:0.4.4" + checksum: 0d4fc70255ea3afbd4add79caffa3b01720929da91105340600d8c0f06c31716f933c6314c3d43b62b57c9637bc2eb35296a9e2db427e8b572ee38a4be2b5f82 + languageName: node + linkType: hard + "cssom@npm:^0.5.0": version: 0.5.0 resolution: "cssom@npm:0.5.0" @@ -13887,10 +14305,11 @@ __metadata: linkType: hard "danger@npm:^11.2.6": - version: 11.2.6 - resolution: "danger@npm:11.2.6" + version: 11.3.0 + resolution: "danger@npm:11.3.0" dependencies: - "@gitbeaker/node": ^21.3.0 + "@gitbeaker/core": ^35.8.1 + "@gitbeaker/node": ^35.8.1 "@octokit/rest": ^18.12.0 async-retry: 1.2.3 chalk: ^2.3.0 @@ -13937,7 +14356,7 @@ __metadata: danger-process: distribution/commands/danger-process.js danger-reset-status: distribution/commands/danger-reset-status.js danger-runner: distribution/commands/danger-runner.js - checksum: 2968fbf2be3eb4b337d95e929381f69bd226bb45e54a44546600242275aae50e3a9e48557f1e0625e542d9fc99bdd67656591434aa2fdeea1f8e64a59de8b91f + checksum: 568a6c2bdbef663c9d1fca36651939b39bf7a158867bdf955054bdc0f16533658aaf258ab9bc1c1bf517609b6eabe776e3d24a0364903a5a38bf67d8d690b252 languageName: node linkType: hard @@ -13955,6 +14374,17 @@ __metadata: languageName: node linkType: hard +"data-urls@npm:^2.0.0": + version: 2.0.0 + resolution: "data-urls@npm:2.0.0" + dependencies: + abab: ^2.0.3 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.0.0 + checksum: 1246442178eb756afb1d99e54669a119eafb3e69c73300d14089687c50c64f9feadd93c973f496224a12f89daa94267a6114aecd70e9b279c09d908c5be44d01 + languageName: node + linkType: hard + "data-urls@npm:^3.0.2": version: 3.0.2 resolution: "data-urls@npm:3.0.2" @@ -13966,7 +14396,7 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^2.0.1": +"date-fns@npm:^2.0.1, date-fns@npm:^2.30.0": version: 2.30.0 resolution: "date-fns@npm:2.30.0" dependencies: @@ -13998,7 +14428,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -14036,7 +14466,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.4.2": +"decimal.js@npm:^10.2.1, decimal.js@npm:^10.4.2": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" checksum: 6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee @@ -14052,7 +14482,7 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0": +"decode-uri-component@npm:^0.2.0, decode-uri-component@npm:^0.2.2": version: 0.2.2 resolution: "decode-uri-component@npm:0.2.2" checksum: 1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31 @@ -14075,6 +14505,32 @@ __metadata: languageName: node linkType: hard +"dedent@npm:^1.0.0": + version: 1.5.1 + resolution: "dedent@npm:1.5.1" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: f8612cd5b00aab58b18bb95572dca08dc2d49720bfa7201a444c3dae430291e8a06d4928614a6ec8764d713927f44bce9c990d3b8238fca2f430990ddc17c070 + languageName: node + linkType: hard + +"deep-equal@npm:^1.1.1": + version: 1.1.1 + resolution: "deep-equal@npm:1.1.1" + dependencies: + is-arguments: ^1.0.4 + is-date-object: ^1.0.1 + is-regex: ^1.0.4 + object-is: ^1.0.1 + object-keys: ^1.1.1 + regexp.prototype.flags: ^1.2.0 + checksum: 473d5dd1d707afd5ad3068864765590591b049d0e0d9a01931599dbbd820e35f09d0a42faa6e4644deb7cf6b7dc90f7bfdf5559f42279d67f714209b62036212 + languageName: node + linkType: hard + "deep-equal@npm:^2.0.5": version: 2.2.2 resolution: "deep-equal@npm:2.2.2" @@ -14129,7 +14585,7 @@ __metadata: languageName: node linkType: hard -"default-browser-id@npm:3.0.0, default-browser-id@npm:^3.0.0": +"default-browser-id@npm:3.0.0": version: 3.0.0 resolution: "default-browser-id@npm:3.0.0" dependencies: @@ -14139,18 +14595,6 @@ __metadata: languageName: node linkType: hard -"default-browser@npm:^4.0.0": - version: 4.0.0 - resolution: "default-browser@npm:4.0.0" - dependencies: - bundle-name: ^3.0.0 - default-browser-id: ^3.0.0 - execa: ^7.1.1 - titleize: ^3.0.0 - checksum: 7c8848badc139ecf9d878e562bc4e7ab4301e51ba120b24d8dcb14739c30152115cc612065ac3ab73c02aace4afa29db5a044257b2f0cf234f16e3a58f6c925e - languageName: node - linkType: hard - "default-gateway@npm:^6.0.3": version: 6.0.3 resolution: "default-gateway@npm:6.0.3" @@ -14176,6 +14620,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1": + version: 1.1.0 + resolution: "define-data-property@npm:1.1.0" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: 312cab385c681d1fdf4085f02720a487da62c6108faaaedc51668c5f62f3425cb6370ded1d126ac6c13093451864a546074ce5c4acac4caf1d81577c10469b41 + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -14183,20 +14638,14 @@ __metadata: languageName: node linkType: hard -"define-lazy-prop@npm:^3.0.0": - version: 3.0.0 - resolution: "define-lazy-prop@npm:3.0.0" - checksum: 5ab0b2bf3fa58b3a443140bbd4cd3db1f91b985cc8a246d330b9ac3fc0b6a325a6d82bddc0b055123d745b3f9931afeea74a5ec545439a1630b9c8512b0eeb49 - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.0 - resolution: "define-properties@npm:1.2.0" +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" dependencies: + define-data-property: ^1.0.1 has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: 34b58cae4651936a3c8c720310ce393a3227f5123640ab5402e7d6e59bb44f8295b789cb5d74e7513682b2e60ff20586d6f52b726d964d617abffa3da76344e0 + checksum: 88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 languageName: node linkType: hard @@ -14251,6 +14700,13 @@ __metadata: languageName: node linkType: hard +"delay@npm:^5.0.0": + version: 5.0.0 + resolution: "delay@npm:5.0.0" + checksum: 01cdc4cd0cd35fb622518a3df848e67e09763a38e7cdada2232b6fda9ddda72eddcf74f0e24211200fbe718434f2335f2a2633875a6c96037fefa6de42896ad7 + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -14265,7 +14721,7 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0, depd@npm:^2.0.0": +"depd@npm:2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: 58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c @@ -14367,10 +14823,17 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^29.4.3": - version: 29.4.3 - resolution: "diff-sequences@npm:29.4.3" - checksum: 183800b9fd8523a05a3a50ade0fafe81d4b8a8ac113b077d2bc298052ccdc081e3b896f19bf65768b536daebd8169a493c4764cb70a2195e14c442c12538d121 +"diff-sequences@npm:^28.1.1": + version: 28.1.1 + resolution: "diff-sequences@npm:28.1.1" + checksum: 26f29fa3f6b8c9040c3c6f6dab85413d90a09c8e6cb17b318bbcf64f225d7dcb1fb64392f3a9919a90888b434c4f6c8a4cc4f807aad02bbabae912c5d13c31f7 + languageName: node + linkType: hard + +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: 32e27ac7dbffdf2fb0eb5a84efd98a9ad084fbabd5ac9abb8757c6770d5320d2acd172830b28c4add29bb873d59420601dfc805ac4064330ce59b1adfd0593b2 languageName: node linkType: hard @@ -14441,11 +14904,11 @@ __metadata: linkType: hard "dns-packet@npm:^5.2.2": - version: 5.6.0 - resolution: "dns-packet@npm:5.6.0" + version: 5.6.1 + resolution: "dns-packet@npm:5.6.1" dependencies: "@leichtgewicht/ip-codec": ^2.0.1 - checksum: b458d9c8c9f346fdf1d6e88998dc29815f1eac51c05061510b903b9b882d48cac95b132c5c33eeb330665a7c85227a922767a3eb72ce7be143964a1cce63b770 + checksum: 8948d3d03063fb68e04a1e386875f8c3bcc398fc375f535f2b438fad8f41bf1afa6f5e70893ba44f4ae884c089247e0a31045722fa6ff0f01d228da103f1811d languageName: node linkType: hard @@ -14543,6 +15006,15 @@ __metadata: languageName: node linkType: hard +"domexception@npm:^2.0.1": + version: 2.0.1 + resolution: "domexception@npm:2.0.1" + dependencies: + webidl-conversions: ^5.0.0 + checksum: 24a3a07b85420671bc805ead7305e0f2ec9e55f104889b64c5a9fa7d93681e514f05c65f947bd9401b3da67f77b92fe7861bd15f4d0d418c4d32e34a2cd55d38 + languageName: node + linkType: hard + "domexception@npm:^4.0.0": version: 4.0.0 resolution: "domexception@npm:4.0.0" @@ -14767,10 +15239,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.431": - version: 1.4.470 - resolution: "electron-to-chromium@npm:1.4.470" - checksum: a38dc521d9e93ab5d6ea6490169b36e3b308054e0693bfe865d79f02ad0ed779ca08119911c60c66b4440ab30aac84ceab27577a7ed977e3dc4121923e36cf35 +"electron-to-chromium@npm:^1.4.535": + version: 1.4.540 + resolution: "electron-to-chromium@npm:1.4.540" + checksum: 8bacd2a06a6a78875b4f4035c97fb8155447f93d854292005f9958a5d1366597fabecc1561c642eae55815583fa3436b164c8bf8f7ca3cfe15741466b3c5e0cf languageName: node linkType: hard @@ -15016,7 +15488,7 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.12.0, enhanced-resolve@npm:^5.14.1, enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.7.0": +"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.12.0, enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.7.0": version: 5.15.0 resolution: "enhanced-resolve@npm:5.15.0" dependencies: @@ -15220,17 +15692,17 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.22.1 - resolution: "es-abstract@npm:1.22.1" +"es-abstract@npm:^1.22.1": + version: 1.22.2 + resolution: "es-abstract@npm:1.22.2" dependencies: array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.2 available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.5 + function.prototype.name: ^1.1.6 get-intrinsic: ^1.2.1 get-symbol-description: ^1.0.0 globalthis: ^1.0.3 @@ -15246,24 +15718,24 @@ __metadata: is-regex: ^1.1.4 is-shared-array-buffer: ^1.0.2 is-string: ^1.0.7 - is-typed-array: ^1.1.10 + is-typed-array: ^1.1.12 is-weakref: ^1.0.2 object-inspect: ^1.12.3 object-keys: ^1.1.1 object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.0 - safe-array-concat: ^1.0.0 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.7 - string.prototype.trimend: ^1.0.6 - string.prototype.trimstart: ^1.0.6 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 typed-array-buffer: ^1.0.0 typed-array-byte-length: ^1.0.0 typed-array-byte-offset: ^1.0.0 typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.10 - checksum: 36abed2b7efa8dd337d938e50d0b97d070c0ef45b2257eec0ae8c3edc5c7e8f3e2906530afda5c0b8a4f44299391d078237fd5ea454ac4e9adb6f8343bf84980 + which-typed-array: ^1.1.11 + checksum: a491c640a01b7c18f3cc626a3d08b5c67f8d3dac70ff8b4268cda6fa0ebed80bb028ff3ee731137512e054d39e98d02575144da904fe28045019fc59e503f1f8 languageName: node linkType: hard @@ -15291,6 +15763,28 @@ __metadata: languageName: node linkType: hard +"es-iterator-helpers@npm:^1.0.12": + version: 1.0.15 + resolution: "es-iterator-helpers@npm:1.0.15" + dependencies: + asynciterator.prototype: ^1.0.0 + call-bind: ^1.0.2 + define-properties: ^1.2.1 + es-abstract: ^1.22.1 + es-set-tostringtag: ^2.0.1 + function-bind: ^1.1.1 + get-intrinsic: ^1.2.1 + globalthis: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + iterator.prototype: ^1.1.2 + safe-array-concat: ^1.0.1 + checksum: b4c83f94bfe624260d5238092de3173989f76f1416b1d02c388aea3b2024174e5f5f0e864057311ac99790b57e836ca3545b6e77256b26066dac944519f5e6d6 + languageName: node + linkType: hard + "es-module-lexer@npm:^0.9.3": version: 0.9.3 resolution: "es-module-lexer@npm:0.9.3" @@ -15299,9 +15793,9 @@ __metadata: linkType: hard "es-module-lexer@npm:^1.2.1": - version: 1.3.0 - resolution: "es-module-lexer@npm:1.3.0" - checksum: cbd9bdc65458d4c4bd0d22a1c792926bfdf7bb6a96a9ed04da7d31f317159bd4945d2dbeb318717f9214f9695ee85a8fae64a5d25bf360baa82b58079032fc7a + version: 1.3.1 + resolution: "es-module-lexer@npm:1.3.1" + checksum: 4c40e30a07c62bb6b265d4db27fb5157aec33edc9f75be06449da65e92870264fa087b6d00066a6823ad2e9d135d0f663c16b87c96b5bd30caf2878afc39f7bf languageName: node linkType: hard @@ -15336,13 +15830,6 @@ __metadata: languageName: node linkType: hard -"es6-object-assign@npm:^1.1.0": - version: 1.1.0 - resolution: "es6-object-assign@npm:1.1.0" - checksum: 11c165ae16866aca897dee9b689402f0e871589e859809343ef9e0fdd067133684db16fd15abdba2a99e7319222b9f43e6b747baabb909cee9d0ecbac8deebee - languageName: node - linkType: hard - "es6-promise@npm:^3.1.2": version: 3.3.1 resolution: "es6-promise@npm:3.3.1" @@ -15351,16 +15838,16 @@ __metadata: linkType: hard "esbuild-loader@npm:^3.0.0": - version: 3.0.1 - resolution: "esbuild-loader@npm:3.0.1" + version: 3.2.0 + resolution: "esbuild-loader@npm:3.2.0" dependencies: - esbuild: ^0.17.6 - get-tsconfig: ^4.4.0 + esbuild: ^0.19.0 + get-tsconfig: ^4.6.2 loader-utils: ^2.0.4 webpack-sources: ^1.4.3 peerDependencies: webpack: ^4.40.0 || ^5.0.0 - checksum: 3cb70d1b039c4b16772ab6fd97ea57ea67b3d3c896b615a9d81633e65c105461c1f2b770644d66c8a6c9b2d256c0687687ee2fcf836a2cf63176f0a0c8b82f3d + checksum: 06e342a4968edb10582185831aabc5202b3039cc3426fa42e17709355c0657802de331364fb13bcf151d3abd9cc7a5d2c99a6367e50bc91c1a6605ae9967a7f9 languageName: node linkType: hard @@ -15371,61 +15858,61 @@ __metadata: languageName: node linkType: hard -"esbuild-register@npm:^3.4.0": - version: 3.4.2 - resolution: "esbuild-register@npm:3.4.2" +"esbuild-register@npm:^3.5.0": + version: 3.5.0 + resolution: "esbuild-register@npm:3.5.0" dependencies: debug: ^4.3.4 peerDependencies: esbuild: ">=0.12 <1" - checksum: a7cb278126cf46fee04dad05e362c47e586aaa4bbaa43fc74931f85929b756077a01ee30ebec05c4096c915a980d2d2e75ec7df55685de5a58fa90595a0a1153 + checksum: 9ccd0573cb66018e4cce3c1416eed0f5f3794c7026ce469a94e2f8761335abed8e363fc8e8bb036ab9ad7e579bb4296b8568a04ae5626596c123576b0d9c9bde languageName: node linkType: hard -"esbuild-wasm@npm:0.17.19": - version: 0.17.19 - resolution: "esbuild-wasm@npm:0.17.19" +"esbuild-wasm@npm:0.18.17": + version: 0.18.17 + resolution: "esbuild-wasm@npm:0.18.17" bin: esbuild: bin/esbuild - checksum: 42b1800031cd3e9504ef328de225b36af61d995c000c1b2dcfb9f6c7b9bb35b43a531d19fa285ecadf4584cc4db940ad59ba666b4b9b6011670302ceb8b52273 + checksum: b92b97c43125c065847a2e910bfff72018226ddaa0ba00512c66d2dbf10b787d62848ff17c29f5540356068ae860cce1b2fb6a49974e54aa737e339cdd1d8d76 languageName: node linkType: hard "esbuild-wasm@npm:>=0.13.8": - version: 0.18.16 - resolution: "esbuild-wasm@npm:0.18.16" + version: 0.19.4 + resolution: "esbuild-wasm@npm:0.19.4" bin: esbuild: bin/esbuild - checksum: 8e3261b2e918746521095ab317274c702c4638246224132bb6d41dd824eff1250fb5c647a6a8edd5a470d8a11962c1a15f10981008676a3d4fed49be759372c7 + checksum: c2d995a280dbff4d50193dd666d3603afc33f2123c3ce8fc89dbe5915dcf0252e5f4a75429e8e5e5ba8a6df2ff397f08ba314c59868511785164f2380a3ecd18 languageName: node linkType: hard "esbuild@npm:^0.18.0": - version: 0.18.16 - resolution: "esbuild@npm:0.18.16" - dependencies: - "@esbuild/android-arm": 0.18.16 - "@esbuild/android-arm64": 0.18.16 - "@esbuild/android-x64": 0.18.16 - "@esbuild/darwin-arm64": 0.18.16 - "@esbuild/darwin-x64": 0.18.16 - "@esbuild/freebsd-arm64": 0.18.16 - "@esbuild/freebsd-x64": 0.18.16 - "@esbuild/linux-arm": 0.18.16 - "@esbuild/linux-arm64": 0.18.16 - "@esbuild/linux-ia32": 0.18.16 - "@esbuild/linux-loong64": 0.18.16 - "@esbuild/linux-mips64el": 0.18.16 - "@esbuild/linux-ppc64": 0.18.16 - "@esbuild/linux-riscv64": 0.18.16 - "@esbuild/linux-s390x": 0.18.16 - "@esbuild/linux-x64": 0.18.16 - "@esbuild/netbsd-x64": 0.18.16 - "@esbuild/openbsd-x64": 0.18.16 - "@esbuild/sunos-x64": 0.18.16 - "@esbuild/win32-arm64": 0.18.16 - "@esbuild/win32-ia32": 0.18.16 - "@esbuild/win32-x64": 0.18.16 + version: 0.18.20 + resolution: "esbuild@npm:0.18.20" + dependencies: + "@esbuild/android-arm": 0.18.20 + "@esbuild/android-arm64": 0.18.20 + "@esbuild/android-x64": 0.18.20 + "@esbuild/darwin-arm64": 0.18.20 + "@esbuild/darwin-x64": 0.18.20 + "@esbuild/freebsd-arm64": 0.18.20 + "@esbuild/freebsd-x64": 0.18.20 + "@esbuild/linux-arm": 0.18.20 + "@esbuild/linux-arm64": 0.18.20 + "@esbuild/linux-ia32": 0.18.20 + "@esbuild/linux-loong64": 0.18.20 + "@esbuild/linux-mips64el": 0.18.20 + "@esbuild/linux-ppc64": 0.18.20 + "@esbuild/linux-riscv64": 0.18.20 + "@esbuild/linux-s390x": 0.18.20 + "@esbuild/linux-x64": 0.18.20 + "@esbuild/netbsd-x64": 0.18.20 + "@esbuild/openbsd-x64": 0.18.20 + "@esbuild/sunos-x64": 0.18.20 + "@esbuild/win32-arm64": 0.18.20 + "@esbuild/win32-ia32": 0.18.20 + "@esbuild/win32-x64": 0.18.20 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -15473,7 +15960,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 7cb68f18fe10da783195d9b382956de6dc2084e60ef5843f17dc3a5114ba8f51578ff68076ec6039f0c583ba95f22fa0502a7b2eb9236d6d1bdd9987142d6021 + checksum: 473b1d92842f50a303cf948a11ebd5f69581cd254d599dd9d62f9989858e0533f64e83b723b5e1398a5b488c0f5fd088795b4235f65ecaf4f007d4b79f04bc88 languageName: node linkType: hard @@ -15580,47 +16067,46 @@ __metadata: linkType: hard "eslint-config-prettier@npm:^8.3.0": - version: 8.8.0 - resolution: "eslint-config-prettier@npm:8.8.0" + version: 8.10.0 + resolution: "eslint-config-prettier@npm:8.10.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 9e3bb602184b7ec59239d2f901b1594cd7cc59ff38c3ddcd812137817e50840f4d65d62b61c515c7eae86d85f8b6fb2ebda659a3f83b2f2c5da75feb15531508 + checksum: 19f8c497d9bdc111a17a61b25ded97217be3755bbc4714477dfe535ed539dddcaf42ef5cf8bb97908b058260cf89a3d7c565cb0be31096cbcd39f4c2fa5fe43c languageName: node linkType: hard "eslint-import-resolver-node@npm:^0.3.7": - version: 0.3.7 - resolution: "eslint-import-resolver-node@npm:0.3.7" + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" dependencies: debug: ^3.2.7 - is-core-module: ^2.11.0 - resolve: ^1.22.1 - checksum: 39c562b59ec8dfd6b85ffa52273dbf0edb661b616463e2c453c60b2398b0a76f268f15f949a1648046c9c996d29599b57f6266df4b5d3562bff1088ded3672d5 + is-core-module: ^2.13.0 + resolve: ^1.22.4 + checksum: 0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61 languageName: node linkType: hard "eslint-import-resolver-typescript@npm:^3.5.2": - version: 3.5.5 - resolution: "eslint-import-resolver-typescript@npm:3.5.5" + version: 3.6.1 + resolution: "eslint-import-resolver-typescript@npm:3.6.1" dependencies: debug: ^4.3.4 enhanced-resolve: ^5.12.0 eslint-module-utils: ^2.7.4 + fast-glob: ^3.3.1 get-tsconfig: ^4.5.0 - globby: ^13.1.3 is-core-module: ^2.11.0 is-glob: ^4.0.3 - synckit: ^0.8.5 peerDependencies: eslint: "*" eslint-plugin-import: "*" - checksum: 6cdbfae5be1087b2f18fd82939697f085a9b766e518494c45efd84b3eba3e2640f00e155b824cff4d1d9d518b46cc86082e7c72a37c784b22f5064d55c634724 + checksum: cb1cb4389916fe78bf8c8567aae2f69243dbfe624bfe21078c56ad46fa1ebf0634fa7239dd3b2055ab5c27359e4b4c28b69b11fcb3a5df8a9e6f7add8e034d86 languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4": +"eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0": version: 2.8.0 resolution: "eslint-module-utils@npm:2.8.0" dependencies: @@ -15654,27 +16140,29 @@ __metadata: linkType: hard "eslint-plugin-import@npm:^2.23.4, eslint-plugin-import@npm:^2.26.0": - version: 2.27.5 - resolution: "eslint-plugin-import@npm:2.27.5" + version: 2.28.1 + resolution: "eslint-plugin-import@npm:2.28.1" dependencies: array-includes: ^3.1.6 + array.prototype.findlastindex: ^1.2.2 array.prototype.flat: ^1.3.1 array.prototype.flatmap: ^1.3.1 debug: ^3.2.7 doctrine: ^2.1.0 eslint-import-resolver-node: ^0.3.7 - eslint-module-utils: ^2.7.4 + eslint-module-utils: ^2.8.0 has: ^1.0.3 - is-core-module: ^2.11.0 + is-core-module: ^2.13.0 is-glob: ^4.0.3 minimatch: ^3.1.2 + object.fromentries: ^2.0.6 + object.groupby: ^1.0.0 object.values: ^1.1.6 - resolve: ^1.22.1 - semver: ^6.3.0 - tsconfig-paths: ^3.14.1 + semver: ^6.3.1 + tsconfig-paths: ^3.14.2 peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: e561e79889ad3c662e305ca9a9b273a5baf8f492dad8198e42987efc4f0532c0d49caee206e78e057cec3365b36f9cef8340915e9f08adec5f29c9d631e6f691 + checksum: 5a29554d56f26d2bfb4d4f20b99aad6664c64812ef9655d5b3f089bbf70f340a34dabbe0b8ffa38bd9f1eabf828200acc5a56634842ddb83dd1e4ba01ad6d38d languageName: node linkType: hard @@ -15782,13 +16270,14 @@ __metadata: linkType: hard "eslint-plugin-react@npm:^7.24.0, eslint-plugin-react@npm:^7.31.10": - version: 7.33.0 - resolution: "eslint-plugin-react@npm:7.33.0" + version: 7.33.2 + resolution: "eslint-plugin-react@npm:7.33.2" dependencies: array-includes: ^3.1.6 array.prototype.flatmap: ^1.3.1 array.prototype.tosorted: ^1.1.1 doctrine: ^2.1.0 + es-iterator-helpers: ^1.0.12 estraverse: ^5.3.0 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.1.2 @@ -15802,13 +16291,13 @@ __metadata: string.prototype.matchall: ^4.0.8 peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 015aaaa133bacd99bd1f82b91852d6fcca7e2b6c11d1ef96ed3c0dae0b5fe89230f66990e12898f237f3f67296234650130e0337db669c32e30132ccae66a696 + checksum: f9b247861024bafc396c4bd3c9ac946604b3b23077251c98f23602aa22027a0c33a69157fd49564e4ff7f17b3678e5dc366a46c7ec42a09454d7cbce786d5001 languageName: node linkType: hard "eslint-plugin-storybook@npm:^0.6.6": - version: 0.6.13 - resolution: "eslint-plugin-storybook@npm:0.6.13" + version: 0.6.14 + resolution: "eslint-plugin-storybook@npm:0.6.14" dependencies: "@storybook/csf": ^0.0.1 "@typescript-eslint/utils": ^5.45.0 @@ -15816,7 +16305,7 @@ __metadata: ts-dedent: ^2.2.0 peerDependencies: eslint: ">=6" - checksum: 3fa79d8cf765d108f4be697246183d94de448301b56767e292c36ec1a9c12ae4f6b64f32c5e5f84b50e214f5bf2f0385d40f5543908f561319e4c8bb8bcdfb99 + checksum: fa198d9f0328ce0b40af479485d08fe74fc409a5ed4769b9531785e9f8e57553034a63f5bfb9cfa1c901e74c0996566c4bbe312d604e8d3e452f1d2c9d0306b2 languageName: node linkType: hard @@ -15830,13 +16319,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.0": - version: 7.2.1 - resolution: "eslint-scope@npm:7.2.1" +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: 7207497acab2be257979d43403368fb07d3172227d576e04f5906218d76ed7ee99e7116ca71c31b4e00ecc7bb0a00efd98b338c74aa9eec7b7dea7010f9e6da8 + checksum: 613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 languageName: node linkType: hard @@ -15847,33 +16336,33 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.1.0, eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": - version: 3.4.1 - resolution: "eslint-visitor-keys@npm:3.4.1" - checksum: b4ebd35aed5426cd81b1fb92487825f1acf47a31e91d76597a3ee0664d69627140c4dafaf9b319cfeb1f48c1113a393e21a734c669e6565a72e6fcc311bd9911 +"eslint-visitor-keys@npm:^3.1.0, eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 languageName: node linkType: hard "eslint@npm:^8.28.0": - version: 8.45.0 - resolution: "eslint@npm:8.45.0" + version: 8.50.0 + resolution: "eslint@npm:8.50.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.4.0 - "@eslint/eslintrc": ^2.1.0 - "@eslint/js": 8.44.0 - "@humanwhocodes/config-array": ^0.11.10 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.2 + "@eslint/js": 8.50.0 + "@humanwhocodes/config-array": ^0.11.11 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 - ajv: ^6.10.0 + ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.0 - eslint-visitor-keys: ^3.4.1 - espree: ^9.6.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -15897,7 +16386,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 2a043b8d3b9a5684e2f66bd446c3dc8522cc7afbb0982d0a5be76ea1f578d0e617598a7b289616a861ab8272b57f6056acb2b264bec6302c9b0921a1cfa66fdb + checksum: 91629528cb240bc61b25480574d35cd54ed444cb61a70fa76f7d5ab26af2b637b94bf8fba94403c9052c1baa944a169b6ab9cc8070496e925f7eeef730ff9038 languageName: node linkType: hard @@ -15912,7 +16401,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.6.0": +"espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -16044,6 +16533,13 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 + languageName: node + linkType: hard + "events@npm:^3.2.0, events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" @@ -16079,6 +16575,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:7.2.0": + version: 7.2.0 + resolution: "execa@npm:7.2.0" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.1 + human-signals: ^4.3.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^3.0.7 + strip-final-newline: ^3.0.0 + checksum: 098cd6a1bc26d509e5402c43f4971736450b84d058391820c6f237aeec6436963e006fd8423c9722f148c53da86aa50045929c7278b5522197dff802d10f9885 + languageName: node + linkType: hard + "execa@npm:^1.0.0": version: 1.0.0 resolution: "execa@npm:1.0.0" @@ -16128,23 +16641,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:^7.0.0, execa@npm:^7.1.1": - version: 7.1.1 - resolution: "execa@npm:7.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.1 - human-signals: ^4.3.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^3.0.7 - strip-final-newline: ^3.0.0 - checksum: 0da5ee1c895b62142bc3d1567d1974711c28c2cfa6bae96e1923379bd597e476d762a13f282f92815d8ebfa33407949634fa32a0d6db8334a20e625fe11d4351 - languageName: node - linkType: hard - "exectimer@npm:^2.2.2": version: 2.2.2 resolution: "exectimer@npm:2.2.2" @@ -16155,6 +16651,13 @@ __metadata: languageName: node linkType: hard +"exenv@npm:^1.2.0": + version: 1.2.2 + resolution: "exenv@npm:1.2.2" + checksum: 4e96b355a6b9b9547237288ca779dd673b2e698458b409e88b50df09feb7c85ef94c07354b6b87bc3ed0193a94009a6f7a3c71956da12f45911c0d0f5aa3caa0 + languageName: node + linkType: hard + "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -16193,17 +16696,16 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0, expect@npm:^29.6.1": - version: 29.6.1 - resolution: "expect@npm:29.6.1" +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" dependencies: - "@jest/expect-utils": ^29.6.1 - "@types/node": "*" - jest-get-type: ^29.4.3 - jest-matcher-utils: ^29.6.1 - jest-message-util: ^29.6.1 - jest-util: ^29.6.1 - checksum: 8ffdd2c8c09d6d632ae85a1172a7e785e75f187ac0009330fa5bcb00e07a06d781b8016579952a1f0ef43e1604068fcdaade3029c8b5ffb99931f79bff57e778 + "@jest/expect-utils": ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + checksum: 2eddeace66e68b8d8ee5f7be57f3014b19770caaf6815c7a08d131821da527fb8c8cb7b3dcd7c883d2d3d8d184206a4268984618032d1e4b16dc8d6596475d41 languageName: node linkType: hard @@ -16360,19 +16862,6 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:3.2.12": - version: 3.2.12 - resolution: "fast-glob@npm:3.2.12" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 08604fb8ef6442ce74068bef3c3104382bb1f5ab28cf75e4ee904662778b60ad620e1405e692b7edea598ef445f5d387827a965ba034e1892bf54b1dfde97f26 - languageName: node - linkType: hard - "fast-glob@npm:3.2.7": version: 3.2.7 resolution: "fast-glob@npm:3.2.7" @@ -16386,7 +16875,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.2, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": +"fast-glob@npm:3.3.1, fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.2, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1": version: 3.3.1 resolution: "fast-glob@npm:3.3.1" dependencies: @@ -16571,6 +17060,13 @@ __metadata: languageName: node linkType: hard +"filesize@npm:^10.0.12": + version: 10.1.0 + resolution: "filesize@npm:10.1.0" + checksum: 4439d2d81ecd98503367cc6d2083ea94de0859a35953325d94f95c4a18302a333a77b80b5421bc9dc663cf9fb2fc1193f15963da4fd0dab3d49168902588a790 + languageName: node + linkType: hard + "fill-range@npm:^4.0.0": version: 4.0.0 resolution: "fill-range@npm:4.0.0" @@ -16642,7 +17138,7 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^3.0.0, find-cache-dir@npm:^3.3.1, find-cache-dir@npm:^3.3.2": +"find-cache-dir@npm:^3.0.0, find-cache-dir@npm:^3.3.1": version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" dependencies: @@ -16758,12 +17254,13 @@ __metadata: linkType: hard "flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" + version: 3.1.0 + resolution: "flat-cache@npm:3.1.0" dependencies: - flatted: ^3.1.0 + flatted: ^3.2.7 + keyv: ^4.5.3 rimraf: ^3.0.2 - checksum: f274dcbadb09ad8d7b6edf2ee9b034bc40bf0c12638f6c4084e9f1d39208cb104a5ebbb24b398880ef048200eaa116852f73d2d8b72e8c9627aba8c3e27ca057 + checksum: fcbf70a2a7d8664ef8f94e25d8b4a05d0594aee8ba0b53b5b7f6287877e8e5080ae893fc4a71fb3d803c7659aeaf801d49f12183b954e21ecd98a1d74012167e languageName: node linkType: hard @@ -16776,17 +17273,17 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 207a87c7abfc1ea6928ea16bac84f9eaa6d44d365620ece419e5c41cf44a5e9902b4c1f59c9605771b10e4565a0cb46e99d78e0464e8aabb42c97de880642257 +"flatted@npm:^3.2.7": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: 5c91c5a0a21bbc0b07b272231e5b4efe6b822bcb4ad317caf6bb06984be4042a9e9045026307da0fdb4583f1f545e317a67ef1231a59e71f7fced3cc429cfc53 languageName: node linkType: hard "flow-parser@npm:0.*": - version: 0.213.1 - resolution: "flow-parser@npm:0.213.1" - checksum: 26ffdc4b08dbbbdb71d023ef327e133e2b3ba8d2efb60a19dcaf2598fbb4977c203dda216c1279de3b4a06037413be0ae518a805cbddcc1bf9e4873efcedb9fb + version: 0.217.2 + resolution: "flow-parser@npm:0.217.2" + checksum: d61127283db052fddf8275b070eea76dda5d2926aea3d8659250e168d69478f4ebdbc2bede83aa05c29f464c420ce1d701691278d3041af0492bfc16193277b5 languageName: node linkType: hard @@ -16807,12 +17304,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.0": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" + version: 1.15.3 + resolution: "follow-redirects@npm:1.15.3" peerDependenciesMeta: debug: optional: true - checksum: da5932b70e63944d38eecaa16954bac4347036f08303c913d166eda74809d8797d38386e3a0eb1d2fe37d2aaff2764cce8e9dbd99459d860cf2cdfa237923b5f + checksum: 915a2cf22e667bdf47b1a43cc6b7dce14d95039e9bbf9a24d0e739abfbdfa00077dd43c86d4a7a19efefcc7a99af144920a175eedc3888d268af5df67c272ee5 languageName: node linkType: hard @@ -16914,9 +17411,10 @@ __metadata: linkType: hard "formik@npm:^2.2.9": - version: 2.4.2 - resolution: "formik@npm:2.4.2" + version: 2.4.5 + resolution: "formik@npm:2.4.5" dependencies: + "@types/hoist-non-react-statics": ^3.3.1 deepmerge: ^2.1.1 hoist-non-react-statics: ^3.3.0 lodash: ^4.17.21 @@ -16926,7 +17424,7 @@ __metadata: tslib: ^2.0.0 peerDependencies: react: ">=16.8.0" - checksum: ef17db09ba54d1bc30989e5797a07dc9335388c76235616e10d16b3a8acf33efa0f7f742e66179f910c84c8734a5103ac7dc67c778666a4088e8b1efd53f84b3 + checksum: 61f0d9eb092edd122f0d2988ca3d0a01073bde38af977e96ba9818382dc1fefd4cdb016cd61f08443055a748bbbbe2a95347d4528b81cc5c1c6f75865fc84927 languageName: node linkType: hard @@ -16938,9 +17436,9 @@ __metadata: linkType: hard "fraction.js@npm:^4.2.0": - version: 4.2.0 - resolution: "fraction.js@npm:4.2.0" - checksum: b16c0a6a7f045b3416c1afbb174b7afca73bd7eb0c62598a0c734a8b1f888cb375684174daf170abfba314da9f366b7d6445e396359d5fae640883bdb2ed18cb + version: 4.3.6 + resolution: "fraction.js@npm:4.3.6" + checksum: d224bf62e350c4dbe66c6ac5ad9c4ec6d3c8e64c13323686dbebe7c8cc118491c297dca4961d3c93f847670794cb05e6d8b706f0e870846ab66a9c4491d0e914 languageName: node linkType: hard @@ -17064,18 +17562,18 @@ __metadata: linkType: hard "fs-minipass@npm:^3.0.0": - version: 3.0.2 - resolution: "fs-minipass@npm:3.0.2" + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" dependencies: - minipass: ^5.0.0 - checksum: 34726f25b968ac05f6122ea7e9457fe108c7ae3b82beff0256953b0e405def61af2850570e32be2eb05c1e7660b663f24e14b6ab882d1d8a858314faacc4c972 + minipass: ^7.0.3 + checksum: 63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 languageName: node linkType: hard "fs-monkey@npm:^1.0.4": - version: 1.0.4 - resolution: "fs-monkey@npm:1.0.4" - checksum: eeb2457ec50f7202c44273de2a42b50868c8e6b2ab4825d517947143d4e727c028e24f6d0f46e6f3e7a149a1c9e7d8b3ca28243c3b10366d280a08016483e829 + version: 1.0.5 + resolution: "fs-monkey@npm:1.0.5" + checksum: 815025e75549fb1ac6c403413b82fd631eded862ae27694a515c0f666069e95874ab34e79c33d1b3b8c87d1e54350d5e4262090d0aa5bd7130143cbc627537e4 languageName: node linkType: hard @@ -17124,7 +17622,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:2.3.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": +"fsevents@npm:2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -17134,7 +17632,17 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@2.3.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: latest + checksum: a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@2.3.2#~builtin": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" dependencies: @@ -17143,6 +17651,15 @@ __metadata: languageName: node linkType: hard +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + "function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" @@ -17150,19 +17667,19 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.2, function.prototype.name@npm:^1.1.5": - version: 1.1.5 - resolution: "function.prototype.name@npm:1.1.5" +"function.prototype.name@npm:^1.1.2, function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6": + version: 1.1.6 + resolution: "function.prototype.name@npm:1.1.6" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - functions-have-names: ^1.2.2 - checksum: b75fb8c5261f03a54f7cb53a8c99e0c40297efc3cf750c51d3a2e56f6741701c14eda51986d30c24063136a4c32d1643df9d1dd2f2a14b64fa011edd3e7117ae + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + functions-have-names: ^1.2.3 + checksum: 9eae11294905b62cb16874adb4fc687927cda3162285e0ad9612e6a1d04934005d46907362ea9cdb7428edce05a2f2c3dabc3b2d21e9fd343e9bb278230ad94b languageName: node linkType: hard -"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": +"functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: 33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca @@ -17381,12 +17898,12 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.4.0, get-tsconfig@npm:^4.5.0": - version: 4.6.2 - resolution: "get-tsconfig@npm:4.6.2" +"get-tsconfig@npm:^4.5.0, get-tsconfig@npm:^4.6.2": + version: 4.7.2 + resolution: "get-tsconfig@npm:4.7.2" dependencies: resolve-pkg-maps: ^1.0.0 - checksum: 352c7313720b0f1172de5b6697da55c02744bacd8587f4cd989bfa25d8bb1af702128c2869121e6e4eef06c5c2f013406d2840905a8e898fd35351a305298ee1 + checksum: 169b2beababfbb16e8a0ae813ee59d3e14d4960231c816615161ab5be68ec07a394dce59695742ac84295e2efab8d9e89bcf3abaf5e253dfbec3496e01bb9a65 languageName: node linkType: hard @@ -17567,17 +18084,17 @@ __metadata: linkType: hard "glob@npm:^10.0.0, glob@npm:^10.2.2": - version: 10.3.3 - resolution: "glob@npm:10.3.3" + version: 10.3.10 + resolution: "glob@npm:10.3.10" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.0.3 + jackspeak: ^2.3.5 minimatch: ^9.0.1 minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 path-scurry: ^1.10.1 bin: - glob: dist/cjs/src/bin.js - checksum: 50effa4208762e508def5688e4d88242db80b5913f65e9c5d5aefb707c59e66a27e845fbf18127157189f6ed0f055e2c94d7112c97a065b9cbfe002e1b26d330 + glob: dist/esm/bin.mjs + checksum: 13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d languageName: node linkType: hard @@ -17641,11 +18158,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" + version: 13.22.0 + resolution: "globals@npm:13.22.0" dependencies: type-fest: ^0.20.2 - checksum: 9a028f136f1e7a3574689f430f7d57faa0d699c4c7e92ade00b02882a892be31c314d50dff07b48e607283013117bb8a997406d03a1f7ab4a33a005eb16efd6c + checksum: e7fda8fe048a3b4fdfb95602b7dcd87d719f4b3797a6ba7f43e50fe148cfe20edfd3abeb16cc301caf679ca0f3e059b561e2d5060f2133f20f52c85bb16ac394 languageName: node linkType: hard @@ -17688,7 +18205,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^13.1.1, globby@npm:^13.1.3": +"globby@npm:^13.1.1": version: 13.2.2 resolution: "globby@npm:13.2.2" dependencies: @@ -17759,7 +18276,7 @@ __metadata: languageName: node linkType: hard -"got@npm:^11.1.4": +"got@npm:^11.8.3": version: 11.8.6 resolution: "got@npm:11.8.6" dependencies: @@ -17826,6 +18343,24 @@ __metadata: languageName: node linkType: hard +"gud@npm:^1.0.0": + version: 1.0.0 + resolution: "gud@npm:1.0.0" + checksum: a4db6edc18e2c4e3a22dc9e639e40a4e5650d53dae9cf384a96d5380dfa17ddda376cf6b7797a5c30d140d2532e5a69d167bdb70c2c151dd673253bac6b027f3 + languageName: node + linkType: hard + +"guess-parser@npm:0.4.22": + version: 0.4.22 + resolution: "guess-parser@npm:0.4.22" + dependencies: + "@wessberg/ts-evaluator": 0.0.27 + peerDependencies: + typescript: ">=3.7.5" + checksum: 6ce6de87cf88f46b6f6fa52233f6b4b996080727e166231f1dc127e0705f78407fc95749ff0e38ad2f02c5e28e97eabee76b292ab6957ddb66e05cbf9f2273cf + languageName: node + linkType: hard + "gunzip-maybe@npm:^1.4.2": version: 1.4.2 resolution: "gunzip-maybe@npm:1.4.2" @@ -17850,11 +18385,11 @@ __metadata: linkType: hard "handlebars@npm:^4.7.7": - version: 4.7.7 - resolution: "handlebars@npm:4.7.7" + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" dependencies: minimist: ^1.2.5 - neo-async: ^2.6.0 + neo-async: ^2.6.2 source-map: ^0.6.1 uglify-js: ^3.1.4 wordwrap: ^1.0.0 @@ -17863,7 +18398,7 @@ __metadata: optional: true bin: handlebars: bin/handlebars - checksum: 4c0913fc0018a2a2e358ee94e4fe83f071762b8bec51a473d187e6642e94e569843adcf550ffe329554c63ad450c062f3a05447bd2e3fff5ebfe698e214225c6 + checksum: 7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d languageName: node linkType: hard @@ -17981,11 +18516,9 @@ __metadata: linkType: hard "has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b + version: 1.0.4 + resolution: "has@npm:1.0.4" + checksum: 82c1220573dc1f0a014a5d6189ae52a1f820f99dfdc00323c3a725b5002dcb7f04e44f460fea7af068474b2dd7c88cbe1846925c84017be9e31e1708936d305b languageName: node linkType: hard @@ -18214,6 +18747,15 @@ __metadata: languageName: node linkType: hard +"html-encoding-sniffer@npm:^2.0.1": + version: 2.0.1 + resolution: "html-encoding-sniffer@npm:2.0.1" + dependencies: + whatwg-encoding: ^1.0.5 + checksum: 6dc3aa2d35a8f0c8c7906ffb665dd24a88f7004f913fafdd3541d24a4da6182ab30c4a0a81387649a1234ecb90182c4136220ed12ae3dc1a57ed68e533dea416 + languageName: node + linkType: hard + "html-encoding-sniffer@npm:^3.0.0": version: 3.0.0 resolution: "html-encoding-sniffer@npm:3.0.0" @@ -18396,6 +18938,17 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^4.0.1": + version: 4.0.1 + resolution: "http-proxy-agent@npm:4.0.1" + dependencies: + "@tootallnate/once": 1 + agent-base: 6 + debug: 4 + checksum: 4fa4774d65b5331814b74ac05cefea56854fc0d5989c80b13432c1b0d42a14c9f4342ca3ad9f0359a52e78da12b1744c9f8a28e50042136ea9171675d972a5fd + languageName: node + linkType: hard + "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -18496,6 +19049,13 @@ __metadata: languageName: node linkType: hard +"human-format@npm:^0.11.0": + version: 0.11.0 + resolution: "human-format@npm:0.11.0" + checksum: 83cc87af67036b4abb6dc585533fcc232279373f8a3a7a4fc1f6d988f6aa35664f986adb818d04d9de3dee240648ec94a9944a8ab1852df21eb67c254e991ea7 + languageName: node + linkType: hard + "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -18650,13 +19210,13 @@ __metadata: linkType: hard "immutable@npm:^4.0.0": - version: 4.3.1 - resolution: "immutable@npm:4.3.1" - checksum: 7dbe08e9568d83ddcc4eae0116385fd5642c77e4cf03c222f9d667733bfd1870d574f487c85d78ed12f55f2358372bea156732008569531f3a4740f2ce114d0e + version: 4.3.4 + resolution: "immutable@npm:4.3.4" + checksum: c15b9f0fa7b3c9315725cb00704fddad59f0e668a7379c39b9a528a8386140ee9effb015ae51a5b423e05c59d15fc0b38c970db6964ad6b3e05d0761db68441f languageName: node linkType: hard -"import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -18783,8 +19343,8 @@ __metadata: linkType: hard "inquirer@npm:^8.2.4": - version: 8.2.5 - resolution: "inquirer@npm:8.2.5" + version: 8.2.6 + resolution: "inquirer@npm:8.2.6" dependencies: ansi-escapes: ^4.2.1 chalk: ^4.1.1 @@ -18800,12 +19360,12 @@ __metadata: string-width: ^4.1.0 strip-ansi: ^6.0.0 through: ^2.3.6 - wrap-ansi: ^7.0.0 - checksum: e3e64e10f5daeeb8f770f1310acceb4aab593c10d693e7676ecd4a5b023d5b865b484fec7ead516e5e394db70eff687ef85459f75890f11a99ceadc0f4adce18 + wrap-ansi: ^6.0.1 + checksum: eb5724de1778265323f3a68c80acfa899378cb43c24cdcb58661386500e5696b6b0b6c700e046b7aa767fe7b4823c6f04e6ddc268173e3f84116112529016296 languageName: node linkType: hard -"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": +"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": version: 1.0.5 resolution: "internal-slot@npm:1.0.5" dependencies: @@ -18933,6 +19493,15 @@ __metadata: languageName: node linkType: hard +"is-async-function@npm:^2.0.0": + version: 2.0.0 + resolution: "is-async-function@npm:2.0.0" + dependencies: + has-tostringtag: ^1.0.0 + checksum: 787bc931576aad525d751fc5ce211960fe91e49ac84a5c22d6ae0bc9541945fbc3f686dc590c3175722ce4f6d7b798a93f6f8ff4847fdb2199aea6f4baf5d668 + languageName: node + linkType: hard + "is-bigint@npm:^1.0.1": version: 1.0.4 resolution: "is-bigint@npm:1.0.4" @@ -18993,12 +19562,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": - version: 2.12.1 - resolution: "is-core-module@npm:2.12.1" +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": + version: 2.13.0 + resolution: "is-core-module@npm:2.13.0" dependencies: has: ^1.0.3 - checksum: ff1d0dfc0b7851310d289398e416eb92ae8a9ac7ea8b8b9737fa8c0725f5a78c5f3db6edd4dff38c9ed731f3aaa1f6410a320233fcb52a2c8f1cf58eebf10a4b + checksum: a8e7f46f8cefd7c9f6f5d54f3dbf1c40bf79467b6612d6023421ec6ea7e8e4c22593b3963ff7a3f770db07bc19fccbe7987a550a8bc1a4d6ec4115db5e4c5dca languageName: node linkType: hard @@ -19081,15 +19650,6 @@ __metadata: languageName: node linkType: hard -"is-docker@npm:^3.0.0": - version: 3.0.0 - resolution: "is-docker@npm:3.0.0" - bin: - is-docker: cli.js - checksum: d2c4f8e6d3e34df75a5defd44991b6068afad4835bb783b902fa12d13ebdb8f41b2a199dcb0b5ed2cb78bfee9e4c0bbdb69c2d9646f4106464674d3e697a5856 - languageName: node - linkType: hard - "is-empty@npm:^1.0.0": version: 1.2.0 resolution: "is-empty@npm:1.2.0" @@ -19130,6 +19690,15 @@ __metadata: languageName: node linkType: hard +"is-finalizationregistry@npm:^1.0.2": + version: 1.0.2 + resolution: "is-finalizationregistry@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 81caecc984d27b1a35c68741156fc651fb1fa5e3e6710d21410abc527eb226d400c0943a167922b2e920f6b3e58b0dede9aa795882b038b85f50b3a4b877db86 + languageName: node + linkType: hard + "is-fullwidth-code-point@npm:^2.0.0": version: 2.0.0 resolution: "is-fullwidth-code-point@npm:2.0.0" @@ -19158,7 +19727,7 @@ __metadata: languageName: node linkType: hard -"is-generator-function@npm:^1.0.7": +"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": version: 1.0.10 resolution: "is-generator-function@npm:1.0.10" dependencies: @@ -19197,17 +19766,6 @@ __metadata: languageName: node linkType: hard -"is-inside-container@npm:^1.0.0": - version: 1.0.0 - resolution: "is-inside-container@npm:1.0.0" - dependencies: - is-docker: ^3.0.0 - bin: - is-inside-container: cli.js - checksum: a8efb0e84f6197e6ff5c64c52890fa9acb49b7b74fed4da7c95383965da6f0fa592b4dbd5e38a79f87fc108196937acdbcd758fcefc9b140e479b39ce1fcd1cd - languageName: node - linkType: hard - "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -19229,7 +19787,7 @@ __metadata: languageName: node linkType: hard -"is-nan@npm:^1.2.1": +"is-nan@npm:^1.3.2": version: 1.3.2 resolution: "is-nan@npm:1.3.2" dependencies: @@ -19351,15 +19909,15 @@ __metadata: linkType: hard "is-reference@npm:^3.0.0, is-reference@npm:^3.0.1": - version: 3.0.1 - resolution: "is-reference@npm:3.0.1" + version: 3.0.2 + resolution: "is-reference@npm:3.0.2" dependencies: "@types/estree": "*" - checksum: 003af01fd96c4300111853d68b048e2f094e27ccd70eb66fdb7bb3cd7f7a9e6ad3f633387b2b453c85134fcc1ba0473dca55349a0162312d9fd127306d9f5a9b + checksum: 652d31b405e8e8269071cee78fe874b072745012eba202c6dc86880fd603a65ae043e3160990ab4a0a4b33567cbf662eecf3bc6b3c2c1550e6c2b6cf885ce5aa languageName: node linkType: hard -"is-regex@npm:^1.0.3, is-regex@npm:^1.0.5, is-regex@npm:^1.1.0, is-regex@npm:^1.1.4": +"is-regex@npm:^1.0.3, is-regex@npm:^1.0.4, is-regex@npm:^1.0.5, is-regex@npm:^1.1.0, is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" dependencies: @@ -19456,7 +20014,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": version: 1.1.12 resolution: "is-typed-array@npm:1.1.12" dependencies: @@ -19579,7 +20137,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": +"istanbul-lib-instrument@npm:^5.0.4": version: 5.2.1 resolution: "istanbul-lib-instrument@npm:5.2.1" dependencies: @@ -19592,14 +20150,27 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.1 + resolution: "istanbul-lib-instrument@npm:6.0.1" + dependencies: + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^7.5.4 + checksum: 313d61aca3f82a04ad9377841d05061d603ea3d4a4dd281fdda2479ec4ddbc86dc1792c73651f21c93480570d1ecadc5f63011e2df86f30ee662b62c0c00e3d8 + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0": - version: 3.0.0 - resolution: "istanbul-lib-report@npm:3.0.0" + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" dependencies: istanbul-lib-coverage: ^3.0.0 - make-dir: ^3.0.0 + make-dir: ^4.0.0 supports-color: ^7.1.0 - checksum: 81b0d5187c7603ed71bdea0b701a7329f8146549ca19aa26d91b4a163aea756f9d55c1a6dc1dcd087e24dfcb99baa69e266a68644fbfd5dc98107d6f6f5948d2 + checksum: 84323afb14392de8b6a5714bd7e9af845cfbd56cfe71ed276cda2f5f1201aea673c7111901227ee33e68e4364e288d73861eb2ed48f6679d1e69a43b6d9b3ba7 languageName: node linkType: hard @@ -19615,12 +20186,12 @@ __metadata: linkType: hard "istanbul-reports@npm:^3.1.3, istanbul-reports@npm:^3.1.4": - version: 3.1.5 - resolution: "istanbul-reports@npm:3.1.5" + version: 3.1.6 + resolution: "istanbul-reports@npm:3.1.6" dependencies: html-escaper: ^2.0.0 istanbul-lib-report: ^3.0.0 - checksum: 3a147171bffdbd3034856410b6ec81637871d17d10986513328fec23df6b666f66bd08ea480f5b7a5b9f7e8abc30f3e3c2e7d1b661fc57cdc479aaaa677b1011 + checksum: ec3f1bdbc51b3e0b325a5b9f4ad31a247697f31001df4e81075f7980413f14da1b5adfec574fd156efd3b0464023f61320f6718efc66ee72b32d89611cef99dd languageName: node linkType: hard @@ -19635,16 +20206,29 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.0.3": - version: 2.2.2 - resolution: "jackspeak@npm:2.2.2" +"iterator.prototype@npm:^1.1.2": + version: 1.1.2 + resolution: "iterator.prototype@npm:1.1.2" + dependencies: + define-properties: ^1.2.1 + get-intrinsic: ^1.2.1 + has-symbols: ^1.0.3 + reflect.getprototypeof: ^1.0.4 + set-function-name: ^2.0.1 + checksum: a32151326095e916f306990d909f6bbf23e3221999a18ba686419535dcd1749b10ded505e89334b77dc4c7a58a8508978f0eb16c2c8573e6d412eb7eb894ea79 + languageName: node + linkType: hard + +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 70b286206a2729f6a2ba8470f68d4d130f7154f6a767fccabf107b9f6b3871395e89018437c2676c849450b258711cb557a4be6d7b2f889f1fa4d8b364533225 + checksum: f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 languageName: node linkType: hard @@ -19669,59 +20253,59 @@ __metadata: languageName: node linkType: hard -"jest-changed-files@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-changed-files@npm:29.5.0" +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" dependencies: execa: ^5.0.0 + jest-util: ^29.7.0 p-limit: ^3.1.0 - checksum: 96334c78507a13c0f11f1360d893ade78fba7fd169825ca4acf7565156ceddd89b952be81c00378fa87ab642d3f44902c34a20f21b561e985e79f6e81fa7e9a8 + checksum: e071384d9e2f6bb462231ac53f29bff86f0e12394c1b49ccafbad225ce2ab7da226279a8a94f421949920bef9be7ef574fd86aee22e8adfa149be73554ab828b languageName: node linkType: hard -"jest-circus@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-circus@npm:29.6.1" +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" dependencies: - "@jest/environment": ^29.6.1 - "@jest/expect": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" chalk: ^4.0.0 co: ^4.6.0 - dedent: ^0.7.0 + dedent: ^1.0.0 is-generator-fn: ^2.0.0 - jest-each: ^29.6.1 - jest-matcher-utils: ^29.6.1 - jest-message-util: ^29.6.1 - jest-runtime: ^29.6.1 - jest-snapshot: ^29.6.1 - jest-util: ^29.6.1 + jest-each: ^29.7.0 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 p-limit: ^3.1.0 - pretty-format: ^29.6.1 + pretty-format: ^29.7.0 pure-rand: ^6.0.0 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: 9321dfabfa6fe41d4495f4fd21d1a840baacdfe9f0cc7c2346b89cd4f775ee37cc839c6d6aaac415059852bbdfafca1ed8c392999f7fbd152d6b231ca0920d1d + checksum: 8d15344cf7a9f14e926f0deed64ed190c7a4fa1ed1acfcd81e4cc094d3cc5bf7902ebb7b874edc98ada4185688f90c91e1747e0dfd7ac12463b097968ae74b5e languageName: node linkType: hard -"jest-cli@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-cli@npm:29.6.1" +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" dependencies: - "@jest/core": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/core": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 chalk: ^4.0.0 + create-jest: ^29.7.0 exit: ^0.1.2 - graceful-fs: ^4.2.9 import-local: ^3.0.2 - jest-config: ^29.6.1 - jest-util: ^29.6.1 - jest-validate: ^29.6.1 - prompts: ^2.0.1 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 yargs: ^17.3.1 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -19730,34 +20314,34 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 37850378efcb5bea2d000d4c78eac5af871bcd53d3f8e60902f33f116ec847f9a3641ca78f1ca046b4c1c6e2031e084d78b01eba3592788b3e3c983c0d5a4b21 + checksum: a658fd55050d4075d65c1066364595962ead7661711495cfa1dfeecf3d6d0a8ffec532f3dbd8afbb3e172dd5fd2fb2e813c5e10256e7cf2fea766314942fb43a languageName: node linkType: hard -"jest-config@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-config@npm:29.6.1" +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" dependencies: "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^29.6.1 - "@jest/types": ^29.6.1 - babel-jest: ^29.6.1 + "@jest/test-sequencer": ^29.7.0 + "@jest/types": ^29.6.3 + babel-jest: ^29.7.0 chalk: ^4.0.0 ci-info: ^3.2.0 deepmerge: ^4.2.2 glob: ^7.1.3 graceful-fs: ^4.2.9 - jest-circus: ^29.6.1 - jest-environment-node: ^29.6.1 - jest-get-type: ^29.4.3 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.6.1 - jest-runner: ^29.6.1 - jest-util: ^29.6.1 - jest-validate: ^29.6.1 + jest-circus: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-get-type: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-runner: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 micromatch: ^4.0.4 parse-json: ^5.2.0 - pretty-format: ^29.6.1 + pretty-format: ^29.7.0 slash: ^3.0.0 strip-json-comments: ^3.1.1 peerDependencies: @@ -19768,125 +20352,146 @@ __metadata: optional: true ts-node: optional: true - checksum: 6f3c3ac7587b651d22b199fdc3c4ad17a08397c2fcae05543a7a81e03a7e12355aaa3c75ce39e6df5c8fd8efcd65518cf05f528f7724cb8df17aa4e44dd74ecf + checksum: bab23c2eda1fff06e0d104b00d6adfb1d1aabb7128441899c9bff2247bd26710b050a5364281ce8d52b46b499153bf7e3ee88b19831a8f3451f1477a0246a0f1 languageName: node linkType: hard -"jest-diff@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-diff@npm:29.6.1" +"jest-diff@npm:^28.1.3": + version: 28.1.3 + resolution: "jest-diff@npm:28.1.3" dependencies: chalk: ^4.0.0 - diff-sequences: ^29.4.3 - jest-get-type: ^29.4.3 - pretty-format: ^29.6.1 - checksum: f067d977937744df7dd8a269e2948620e4bcb35ff70d9ea1d0fe75a47fa603ce3edc350961b671c94f8de5adb65d6bdeb0002569b59983fba56f02dd4b47d171 + diff-sequences: ^28.1.1 + jest-get-type: ^28.0.2 + pretty-format: ^28.1.3 + checksum: 17a101ceb7e8f25c3ef64edda15cb1a259c2835395637099f3cc44f578fbd94ced7a13d11c0cbe8c5c1c3959a08544f0a913bec25a305b6dfc9847ce488e7198 languageName: node linkType: hard -"jest-docblock@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-docblock@npm:29.4.3" +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^29.6.3 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: 89a4a7f182590f56f526443dde69acefb1f2f0c9e59253c61d319569856c4931eae66b8a3790c443f529267a0ddba5ba80431c585deed81827032b2b2a1fc999 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" dependencies: detect-newline: ^3.0.0 - checksum: 25cdea8fe77ff09d958abd347e26dcd8766ca69d9935bc626a89d694c91d33be06d4c088b02e4b3f143f532f726a10dff0bfe1e2387a0972a95addf5d64ed407 + checksum: d932a8272345cf6b6142bb70a2bb63e0856cc0093f082821577ea5bdf4643916a98744dfc992189d2b1417c38a11fa42466f6111526bc1fb81366f56410f3be9 languageName: node linkType: hard -"jest-each@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-each@npm:29.6.1" +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 chalk: ^4.0.0 - jest-get-type: ^29.4.3 - jest-util: ^29.6.1 - pretty-format: ^29.6.1 - checksum: b2cbea027a7d68c6a22afff1d460c866389e5c3ec1fece930b3fa79df24fb39f3ca258679de9ca0c2af4a6a70e5aa542ff6779f32d21289bdf981a7c1470aa0e + jest-get-type: ^29.6.3 + jest-util: ^29.7.0 + pretty-format: ^29.7.0 + checksum: f7f9a90ebee80cc688e825feceb2613627826ac41ea76a366fa58e669c3b2403d364c7c0a74d862d469b103c843154f8456d3b1c02b487509a12afa8b59edbb4 languageName: node linkType: hard "jest-environment-jsdom@npm:^29.0.0, jest-environment-jsdom@npm:^29.5.0": - version: 29.6.1 - resolution: "jest-environment-jsdom@npm:29.6.1" + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" dependencies: - "@jest/environment": ^29.6.1 - "@jest/fake-timers": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 "@types/jsdom": ^20.0.0 "@types/node": "*" - jest-mock: ^29.6.1 - jest-util: ^29.6.1 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 jsdom: ^20.0.0 peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: canvas: optional: true - checksum: 457ac6f78b9b98d1a86af944469fd2cce6d16d40afa748a8226c77850b98fd376d5bbcbf2b68a72ee3748091b95321fedc4044d3def45c47b139a9b57d4757be + checksum: 139b94e2c8ec1bb5a46ce17df5211da65ce867354b3fd4e00fa6a0d1da95902df4cf7881273fc6ea937e5c325d39d6773f0d41b6c469363334de9d489d2c321f languageName: node linkType: hard -"jest-environment-node@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-environment-node@npm:29.6.1" +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" dependencies: - "@jest/environment": ^29.6.1 - "@jest/fake-timers": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-mock: ^29.6.1 - jest-util: ^29.6.1 - checksum: 2e168708553f45c2afc42234dd78c4677d1bd34a11e0c8d43e8ca6da8e68cd55acb2215cdfc46cba8c5b1dbc0061783006ecbc214a02a5ae962602f80232d7fc + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: 61f04fec077f8b1b5c1a633e3612fc0c9aa79a0ab7b05600683428f1e01a4d35346c474bde6f439f9fcc1a4aa9a2861ff852d079a43ab64b02105d1004b2592b languageName: node linkType: hard -"jest-get-type@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-get-type@npm:29.4.3" - checksum: 874b0ced6b1cc677ff7fcf0dc86d02674617a7d0b73d47097604fb3ca460178d16104efdd3837e8b8bf0520ad5d210838c07483b058802b457b8413e60628fd0 +"jest-get-type@npm:^28.0.2": + version: 28.0.2 + resolution: "jest-get-type@npm:28.0.2" + checksum: f64a40cfa10d79a56b383919033d35c8c4daee6145a1df31ec5ef2283fa7e8adbd443c6fcb4cfd0f60bbbd89f046c2323952f086b06e875cbbbc1a7d543a6e5e languageName: node linkType: hard -"jest-haste-map@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-haste-map@npm:29.6.1" +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 552e7a97a983d3c2d4e412a44eb7de0430ff773dd99f7500962c268d6dfbfa431d7d08f919c9d960530e5f7f78eb47f267ad9b318265e5092b3ff9ede0db7c2b + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@types/graceful-fs": ^4.1.3 "@types/node": "*" anymatch: ^3.0.3 fb-watchman: ^2.0.0 fsevents: ^2.3.2 graceful-fs: ^4.2.9 - jest-regex-util: ^29.4.3 - jest-util: ^29.6.1 - jest-worker: ^29.6.1 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 micromatch: ^4.0.4 walker: ^1.0.8 dependenciesMeta: fsevents: optional: true - checksum: 6d100cd80c89d2c45175e6504eafe40ba4dfb1e77a4e204204a5f2905a4840e73ff66cee187b39e33a1af2406831a48f1f945efdf872071e19ac417eb0a3aac1 + checksum: 2683a8f29793c75a4728787662972fedd9267704c8f7ef9d84f2beed9a977f1cf5e998c07b6f36ba5603f53cb010c911fe8cd0ac9886e073fe28ca66beefd30c languageName: node linkType: hard "jest-image-snapshot@npm:^6.0.0": - version: 6.1.0 - resolution: "jest-image-snapshot@npm:6.1.0" + version: 6.2.0 + resolution: "jest-image-snapshot@npm:6.2.0" dependencies: chalk: ^4.0.0 get-stdin: ^5.0.1 glur: ^1.1.2 lodash: ^4.17.4 - mkdirp: ^0.5.1 pixelmatch: ^5.1.0 pngjs: ^3.4.0 rimraf: ^2.6.2 ssim.js: ^3.1.1 peerDependencies: jest: ">=20 <=29" - checksum: 5426ec5fd96eab7657e2cc63fda173210d7b27f83bb9415945a714d66ba05b05e8fee7227025bb95a49115cbad2c3c0fc0f9042cec461f98f66707a9964d1ba8 + peerDependenciesMeta: + jest: + optional: true + checksum: 62e415f86f2bed30fe126520519014beed61a38a678285de44c6544d10eed7381b28958d3406f131a60c05715f42ab7bf7ea4ecfdab4f55946cec6739de23924 languageName: node linkType: hard @@ -19902,42 +20507,54 @@ __metadata: languageName: node linkType: hard -"jest-leak-detector@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-leak-detector@npm:29.6.1" +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: 71bb9f77fc489acb842a5c7be030f2b9acb18574dc9fb98b3100fc57d422b1abc55f08040884bd6e6dbf455047a62f7eaff12aa4058f7cbdc11558718ca6a395 + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^28.0.0": + version: 28.1.3 + resolution: "jest-matcher-utils@npm:28.1.3" dependencies: - jest-get-type: ^29.4.3 - pretty-format: ^29.6.1 - checksum: 17e702b3a790e37dd76b93e2f782de228bb332030e478264f2eb081e1d13907f414a6ec2271b173b2516e7faa4c7b0ddd1c9c5ae9b9293ed921a9ee943fafd1a + chalk: ^4.0.0 + jest-diff: ^28.1.3 + jest-get-type: ^28.0.2 + pretty-format: ^28.1.3 + checksum: 026fbe664cfdaed5a5c9facfc86ccc9bed3718a7d1fe061e355eb6158019a77f74e9b843bc99f9a467966cbebe60bde8b43439174cbf64997d4ad404f8f809d0 languageName: node linkType: hard -"jest-matcher-utils@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-matcher-utils@npm:29.6.1" +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" dependencies: chalk: ^4.0.0 - jest-diff: ^29.6.1 - jest-get-type: ^29.4.3 - pretty-format: ^29.6.1 - checksum: 4425bcb900bd25dbd679c220ef978f80aab11a7b6bed0e178cf8fe3c7167ecefdb6f522e3cf3e877a622160f781cea02aac43a3e243dc8afca917e90418434b8 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: 0d0e70b28fa5c7d4dce701dc1f46ae0922102aadc24ed45d594dd9b7ae0a8a6ef8b216718d1ab79e451291217e05d4d49a82666e1a3cc2b428b75cd9c933244e languageName: node linkType: hard -"jest-message-util@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-message-util@npm:29.6.1" +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" dependencies: "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@types/stack-utils": ^2.0.0 chalk: ^4.0.0 graceful-fs: ^4.2.9 micromatch: ^4.0.4 - pretty-format: ^29.6.1 + pretty-format: ^29.7.0 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: 7a34c7ee4efada36aa385a07e1d22f8b6183dda37f7bca15fcf2e9575e9b91ce6ea88429a0b749bc59d934327492e622913d7cd9ab23ca78c29353184795a68d + checksum: 850ae35477f59f3e6f27efac5215f706296e2104af39232bb14e5403e067992afb5c015e87a9243ec4d9df38525ef1ca663af9f2f4766aa116f127247008bd22 languageName: node linkType: hard @@ -19951,14 +20568,14 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-mock@npm:29.6.1" +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-util: ^29.6.1 - checksum: 26e666787d04f341887d7612b2ada7a9c86868dac319056dac46709a00fc2ee694e7a64fad8f0d5450690d779ddaacaff7a35aaf1716a165b3e1eaf56d0aa300 + jest-util: ^29.7.0 + checksum: 7b9f8349ee87695a309fe15c46a74ab04c853369e5c40952d68061d9dc3159a0f0ed73e215f81b07ee97a9faaf10aebe5877a9d6255068a0977eae6a9ff1d5ac languageName: node linkType: hard @@ -19982,8 +20599,8 @@ __metadata: linkType: hard "jest-preset-angular@npm:^13.0.1": - version: 13.1.1 - resolution: "jest-preset-angular@npm:13.1.1" + version: 13.1.2 + resolution: "jest-preset-angular@npm:13.1.2" dependencies: bs-logger: ^0.2.6 esbuild: ">=0.13.8" @@ -20002,100 +20619,100 @@ __metadata: dependenciesMeta: esbuild: optional: true - checksum: aa2952b32328e5994520eaabd5979ca1fe1ee37ec8c96b1bab5b6f6e56c578637b9af125afe209087c4e1a244cd7022d332df3b0b842014657804474a381b75a + checksum: be7efa5cca7c63d8c6df3d835eef4eff730e6f2f783cb1517e9c0060a9fc9d3d57aa2892d0704dab7226ecc80956717c98af8e6d0b8a2415dee07e88c72e34bf languageName: node linkType: hard -"jest-regex-util@npm:^29.0.0, jest-regex-util@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-regex-util@npm:29.4.3" - checksum: a7a4508bda47c5177e7337fb6fb22e9adab414ba141f224c9992c86973da1ccf5c69040e63636090ad26ef3a123d28bec950fa99496c157444b4f847e5e5a670 +"jest-regex-util@npm:^29.0.0, jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 4e33fb16c4f42111159cafe26397118dcfc4cf08bc178a67149fb05f45546a91928b820894572679d62559839d0992e21080a1527faad65daaae8743a5705a3b languageName: node linkType: hard -"jest-resolve-dependencies@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-resolve-dependencies@npm:29.6.1" +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" dependencies: - jest-regex-util: ^29.4.3 - jest-snapshot: ^29.6.1 - checksum: 330fdc103dd1c01ae73e9e4fc4ae11d341569187a82c09aea41d50cdf9e5353d00b0405177db020b3af76cb0e402c98f2dab129afde7bcd5d99f5123d6182321 + jest-regex-util: ^29.6.3 + jest-snapshot: ^29.7.0 + checksum: b6e9ad8ae5b6049474118ea6441dfddd385b6d1fc471db0136f7c8fbcfe97137a9665e4f837a9f49f15a29a1deb95a14439b7aec812f3f99d08f228464930f0d languageName: node linkType: hard -"jest-resolve@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-resolve@npm:29.6.1" +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" dependencies: chalk: ^4.0.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.1 + jest-haste-map: ^29.7.0 jest-pnp-resolver: ^1.2.2 - jest-util: ^29.6.1 - jest-validate: ^29.6.1 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 resolve: ^1.20.0 resolve.exports: ^2.0.0 slash: ^3.0.0 - checksum: 809ee25be7a97ed33755dbe536617cb83a0a8218c81310f5927f1a2f9e82e48353d60a5b0b630b6c25bc66825d0b2197c6c569d043a8431bae01ba6e226b5a57 + checksum: 59da5c9c5b50563e959a45e09e2eace783d7f9ac0b5dcc6375dea4c0db938d2ebda97124c8161310082760e8ebbeff9f6b177c15ca2f57fb424f637a5d2adb47 languageName: node linkType: hard -"jest-runner@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-runner@npm:29.6.1" +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" dependencies: - "@jest/console": ^29.6.1 - "@jest/environment": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/console": ^29.7.0 + "@jest/environment": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" chalk: ^4.0.0 emittery: ^0.13.1 graceful-fs: ^4.2.9 - jest-docblock: ^29.4.3 - jest-environment-node: ^29.6.1 - jest-haste-map: ^29.6.1 - jest-leak-detector: ^29.6.1 - jest-message-util: ^29.6.1 - jest-resolve: ^29.6.1 - jest-runtime: ^29.6.1 - jest-util: ^29.6.1 - jest-watcher: ^29.6.1 - jest-worker: ^29.6.1 + jest-docblock: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-leak-detector: ^29.7.0 + jest-message-util: ^29.7.0 + jest-resolve: ^29.7.0 + jest-runtime: ^29.7.0 + jest-util: ^29.7.0 + jest-watcher: ^29.7.0 + jest-worker: ^29.7.0 p-limit: ^3.1.0 source-map-support: 0.5.13 - checksum: 69d4f22c06d06498ffacf658460c3b40d87d77ac924a9f1e5c176f56e49d696b86234473463a764bd227f056d6e4e3852a2e10f95c74d5861d7fc4c17101ab55 + checksum: 2194b4531068d939f14c8d3274fe5938b77fa73126aedf9c09ec9dec57d13f22c72a3b5af01ac04f5c1cf2e28d0ac0b4a54212a61b05f10b5d6b47f2a1097bb4 languageName: node linkType: hard -"jest-runtime@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-runtime@npm:29.6.1" +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" dependencies: - "@jest/environment": ^29.6.1 - "@jest/fake-timers": ^29.6.1 - "@jest/globals": ^29.6.1 - "@jest/source-map": ^29.6.0 - "@jest/test-result": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/globals": ^29.7.0 + "@jest/source-map": ^29.6.3 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" chalk: ^4.0.0 cjs-module-lexer: ^1.0.0 collect-v8-coverage: ^1.0.0 glob: ^7.1.3 graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.1 - jest-message-util: ^29.6.1 - jest-mock: ^29.6.1 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.6.1 - jest-snapshot: ^29.6.1 - jest-util: ^29.6.1 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 slash: ^3.0.0 strip-bom: ^4.0.0 - checksum: 79850c21fb630cb35fe23e7688daa67d387735cf2912febcd95ef4195bcc4931699d28e3b16e705fa8c2843fca958524133b1fa3fe0361bc2dac17192b40125b + checksum: 7cd89a1deda0bda7d0941835434e44f9d6b7bd50b5c5d9b0fc9a6c990b2d4d2cab59685ab3cb2850ed4cc37059f6de903af5a50565d7f7f1192a77d3fd6dd2a6 languageName: node linkType: hard @@ -20108,32 +20725,31 @@ __metadata: languageName: node linkType: hard -"jest-snapshot@npm:^29.0.0, jest-snapshot@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-snapshot@npm:29.6.1" +"jest-snapshot@npm:^29.0.0, jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" dependencies: "@babel/core": ^7.11.6 "@babel/generator": ^7.7.2 "@babel/plugin-syntax-jsx": ^7.7.2 "@babel/plugin-syntax-typescript": ^7.7.2 "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 - "@types/prettier": ^2.1.5 + "@jest/expect-utils": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 babel-preset-current-node-syntax: ^1.0.0 chalk: ^4.0.0 - expect: ^29.6.1 + expect: ^29.7.0 graceful-fs: ^4.2.9 - jest-diff: ^29.6.1 - jest-get-type: ^29.4.3 - jest-matcher-utils: ^29.6.1 - jest-message-util: ^29.6.1 - jest-util: ^29.6.1 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 natural-compare: ^1.4.0 - pretty-format: ^29.6.1 + pretty-format: ^29.7.0 semver: ^7.5.3 - checksum: 1322fb9b23e7316b5f83d467ce2f46a65fdfa84a67e0000825fd9ef4910e66bdc732cb16e6da406f94c18905b2a8c6bbc29000c79f31e1e3eeb57508ac233bb4 + checksum: 6e9003c94ec58172b4a62864a91c0146513207bedf4e0a06e1e2ac70a4484088a2683e3a0538d8ea913bcfd53dc54a9b98a98cdfa562e7fe1d1339aeae1da570 languageName: node linkType: hard @@ -20148,31 +20764,31 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^29.0.0, jest-util@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-util@npm:29.6.1" +"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@types/node": "*" chalk: ^4.0.0 ci-info: ^3.2.0 graceful-fs: ^4.2.9 picomatch: ^2.2.3 - checksum: c4765afe8769239aef6a76aa69d9c98d383e171e4745eb65c4abb2e776f7965ab762c758f740bf726ebab428bc52b099c23f37e93dc30cf1ec46b915543f80af + checksum: bc55a8f49fdbb8f51baf31d2a4f312fb66c9db1483b82f602c9c990e659cdd7ec529c8e916d5a89452ecbcfae4949b21b40a7a59d4ffc0cd813a973ab08c8150 languageName: node linkType: hard -"jest-validate@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-validate@npm:29.6.1" +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 camelcase: ^6.2.0 chalk: ^4.0.0 - jest-get-type: ^29.4.3 + jest-get-type: ^29.6.3 leven: ^3.1.0 - pretty-format: ^29.6.1 - checksum: 4f6889852b0167f9087c3a67b598365be0807d4e8cce77e246b97df3e3cd1c13d3c98c18de07080d670c9e52b81b81d0ee48fa0544eddc987d32796f50f86371 + pretty-format: ^29.7.0 + checksum: a20b930480c1ed68778c739f4739dce39423131bc070cd2505ddede762a5570a256212e9c2401b7ae9ba4d7b7c0803f03c5b8f1561c62348213aba18d9dbece2 languageName: node linkType: hard @@ -20208,19 +20824,19 @@ __metadata: languageName: node linkType: hard -"jest-watcher@npm:^29.0.0, jest-watcher@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-watcher@npm:29.6.1" +"jest-watcher@npm:^29.0.0, jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" dependencies: - "@jest/test-result": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 emittery: ^0.13.1 - jest-util: ^29.6.1 + jest-util: ^29.7.0 string-length: ^4.0.1 - checksum: bf007eb358f27c4f180202a8ec4bae2948a9563a84da073a185375b6a5251fe6cf9bf3f02f0682d2b8c343bcc5c1c2f185703009b6a47883ef1daeefed55881c + checksum: ec6c75030562fc8f8c727cb8f3b94e75d831fc718785abfc196e1f2a2ebc9a2e38744a15147170039628a853d77a3b695561ce850375ede3a4ee6037a2574567 languageName: node linkType: hard @@ -20235,26 +20851,26 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-worker@npm:29.6.1" +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" dependencies: "@types/node": "*" - jest-util: ^29.6.1 + jest-util: ^29.7.0 merge-stream: ^2.0.0 supports-color: ^8.0.0 - checksum: 15a5c699e6074401aac85bcc869e3be95353767f127fd41cccc97c9b38e62596a1ec336866eab180beec305da2cc7da75a663f3a5ddf63b6838ff839ef5073ec + checksum: 5570a3a005b16f46c131968b8a5b56d291f9bbb85ff4217e31c80bd8a02e7de799e59a54b95ca28d5c302f248b54cbffde2d177c2f0f52ffcee7504c6eabf660 languageName: node linkType: hard "jest@npm:^29.3.1, jest@npm:^29.5.0": - version: 29.6.1 - resolution: "jest@npm:29.6.1" + version: 29.7.0 + resolution: "jest@npm:29.7.0" dependencies: - "@jest/core": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/core": ^29.7.0 + "@jest/types": ^29.6.3 import-local: ^3.0.2 - jest-cli: ^29.6.1 + jest-cli: ^29.7.0 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -20262,16 +20878,16 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 2c161c63cb502265805c4982b8b722307f6a7016afdcff267eab33e727b9b737baaf8c22e0a8fedfc19634e903421a0352f0c056d26a8f24b908aaed335283c8 + checksum: f40eb8171cf147c617cc6ada49d062fbb03b4da666cb8d39cdbfb739a7d75eea4c3ca150fb072d0d273dce0c753db4d0467d54906ad0293f59c54f9db4a09d8b languageName: node linkType: hard "jiti@npm:^1.18.2": - version: 1.19.1 - resolution: "jiti@npm:1.19.1" + version: 1.20.0 + resolution: "jiti@npm:1.20.0" bin: jiti: bin/jiti.js - checksum: c09f15b3ef81f0fcda45f96aaecd130213c81d8a9b8a92f5eb4f8d21972b833b2ef494db8fb3e819b258ceb569b9d5cfa3facbd2d786ecf0bc0fd0e98cc862f7 + checksum: e71999db5e436d38c32ca713c3688b5da2a686f264584d927dcca80a4eaece83af7dd32c047524e74084bb11bdfa148f5f91b7e9a0044b4803feffe3c2c30dbc languageName: node linkType: hard @@ -20283,22 +20899,22 @@ __metadata: linkType: hard "joi@npm:^17.7.0": - version: 17.9.2 - resolution: "joi@npm:17.9.2" + version: 17.10.2 + resolution: "joi@npm:17.10.2" dependencies: "@hapi/hoek": ^9.0.0 "@hapi/topo": ^5.0.0 "@sideway/address": ^4.1.3 "@sideway/formula": ^3.0.1 "@sideway/pinpoint": ^2.0.0 - checksum: 284bc34d5070c7b064a9fa68e02703961ad08229dd95dfe0baf2aa5d278c7a99543ecb979b8a6e6f72035539bfdaf1269ac7fa7684a503b6de18b173f72dcc89 + checksum: 5999a68f38a24de0b98850e137bbf4134e6dd8de29faa5893d7836f3e3aeb76ed5b2dd4daf836b87d2681aa9dfb6a5531c586d4d361dca9721d9ad0567be6b48 languageName: node linkType: hard "jquery@npm:^3.5.1": - version: 3.7.0 - resolution: "jquery@npm:3.7.0" - checksum: 2eea1d9ce48fabd0d8736b8bed2e2087c33f038a077ea9f8dcbad55b07c3a1abc226898f498fc992b7fb02c1296cbe79d6283902a9d2027ed41efab04d86da6f + version: 3.7.1 + resolution: "jquery@npm:3.7.1" + checksum: 808cfbfb758438560224bf26e17fcd5afc7419170230c810dd11f5c1792e2263e2970cca8d659eb84fcd9acc301edb6d310096e450277d54be4f57071b0c82d9 languageName: node linkType: hard @@ -20401,6 +21017,46 @@ __metadata: languageName: node linkType: hard +"jsdom@npm:^16.4.0": + version: 16.7.0 + resolution: "jsdom@npm:16.7.0" + dependencies: + abab: ^2.0.5 + acorn: ^8.2.4 + acorn-globals: ^6.0.0 + cssom: ^0.4.4 + cssstyle: ^2.3.0 + data-urls: ^2.0.0 + decimal.js: ^10.2.1 + domexception: ^2.0.1 + escodegen: ^2.0.0 + form-data: ^3.0.0 + html-encoding-sniffer: ^2.0.1 + http-proxy-agent: ^4.0.1 + https-proxy-agent: ^5.0.0 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.0 + parse5: 6.0.1 + saxes: ^5.0.1 + symbol-tree: ^3.2.4 + tough-cookie: ^4.0.0 + w3c-hr-time: ^1.0.2 + w3c-xmlserializer: ^2.0.0 + webidl-conversions: ^6.1.0 + whatwg-encoding: ^1.0.5 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.5.0 + ws: ^7.4.6 + xml-name-validator: ^3.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: e9ba6ea5f5e0d18647ccedec16bc3c69c8c739732ffcb27c66ffd3cc3f876add291ca4f0b9c209ace939ce2aa3ba9e4d67b7f05317921a4d3eab02fe1cc164ef + languageName: node + linkType: hard + "jsdom@npm:^20.0.0": version: 20.0.3 resolution: "jsdom@npm:20.0.3" @@ -20596,7 +21252,7 @@ __metadata: languageName: node linkType: hard -"jsonfile@npm:^6.0.1": +"jsonfile@npm:^6.0.1, jsonfile@npm:^6.1.0": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" dependencies: @@ -20631,14 +21287,20 @@ __metadata: linkType: hard "jsonwebtoken@npm:^9.0.0": - version: 9.0.1 - resolution: "jsonwebtoken@npm:9.0.1" + version: 9.0.2 + resolution: "jsonwebtoken@npm:9.0.2" dependencies: jws: ^3.2.2 - lodash: ^4.17.21 + lodash.includes: ^4.3.0 + lodash.isboolean: ^3.0.3 + lodash.isinteger: ^4.0.4 + lodash.isnumber: ^3.0.3 + lodash.isplainobject: ^4.0.6 + lodash.isstring: ^4.0.1 + lodash.once: ^4.0.0 ms: ^2.1.1 - semver: ^7.3.8 - checksum: 3508912a0fb5ad06a09a79f655681f6fc389376fb8e7fdcaf367fbdd02e9fb5e11a7a4ff715cbe44d8be0e7a99319b03a7d34ef5daede61cf1f8d3519bbb08d6 + semver: ^7.5.4 + checksum: d287a29814895e866db2e5a0209ce730cbc158441a0e5a70d5e940eb0d28ab7498c6bf45029cc8b479639bca94056e9a7f254e2cdb92a2f5750c7f358657a131 languageName: node linkType: hard @@ -20653,14 +21315,14 @@ __metadata: linkType: hard "jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.3": - version: 3.3.4 - resolution: "jsx-ast-utils@npm:3.3.4" + version: 3.3.5 + resolution: "jsx-ast-utils@npm:3.3.5" dependencies: array-includes: ^3.1.6 array.prototype.flat: ^1.3.1 object.assign: ^4.1.4 object.values: ^1.1.6 - checksum: 6761ccd830deab6a4cb8ca182c7b3627f4478138b6f4e2b680afc2b5e954635feb460ff75218b67f8694a9f8a0da6f0833a013e34961a16fbe4457fb34a0a7b2 + checksum: a32679e9cb55469cb6d8bbc863f7d631b2c98b7fc7bf172629261751a6e7bc8da6ae374ddb74d5fbd8b06cf0eb4572287b259813d92b36e384024ed35e4c13e1 languageName: node linkType: hard @@ -20729,7 +21391,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.0.0": +"keyv@npm:^4.0.0, keyv@npm:^4.5.3": version: 4.5.3 resolution: "keyv@npm:4.5.3" dependencies: @@ -20784,7 +21446,7 @@ __metadata: languageName: node linkType: hard -"klona@npm:^2.0.4, klona@npm:^2.0.6": +"klona@npm:^2.0.4": version: 2.0.6 resolution: "klona@npm:2.0.6" checksum: 94eed2c6c2ce99f409df9186a96340558897b3e62a85afdc1ee39103954d2ebe1c1c4e9fe2b0952771771fa96d70055ede8b27962a7021406374fdb695fd4d01 @@ -21067,66 +21729,61 @@ __metadata: linkType: hard "lint-staged@npm:^13.2.2": - version: 13.2.3 - resolution: "lint-staged@npm:13.2.3" + version: 13.3.0 + resolution: "lint-staged@npm:13.3.0" dependencies: - chalk: 5.2.0 - cli-truncate: ^3.1.0 - commander: ^10.0.0 - debug: ^4.3.4 - execa: ^7.0.0 + chalk: 5.3.0 + commander: 11.0.0 + debug: 4.3.4 + execa: 7.2.0 lilconfig: 2.1.0 - listr2: ^5.0.7 - micromatch: ^4.0.5 - normalize-path: ^3.0.0 - object-inspect: ^1.12.3 - pidtree: ^0.6.0 - string-argv: ^0.3.1 - yaml: ^2.2.2 + listr2: 6.6.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.1 bin: lint-staged: bin/lint-staged.js - checksum: 4907d2e60c8bd4b7ba354464a914e9db61d3e121232a3111bfe3e9f24d1ae8c9bd89c8ff19f819227a97fce0d797a33a62bcc29adebb37fb937e012a0a8b358b + checksum: 57ce70a3f05d779bd73a01a3dc8fc17a16ab5c220a77041b3d2147de3cfaba17692907fecc1426b85e0159c13814ec905a7be79171917d670a6d31d2de6bf24f languageName: node linkType: hard -"listr2@npm:^5.0.7": - version: 5.0.8 - resolution: "listr2@npm:5.0.8" +"listr2@npm:6.6.1": + version: 6.6.1 + resolution: "listr2@npm:6.6.1" dependencies: - cli-truncate: ^2.1.0 - colorette: ^2.0.19 - log-update: ^4.0.0 - p-map: ^4.0.0 + cli-truncate: ^3.1.0 + colorette: ^2.0.20 + eventemitter3: ^5.0.1 + log-update: ^5.0.1 rfdc: ^1.3.0 - rxjs: ^7.8.0 - through: ^2.3.8 - wrap-ansi: ^7.0.0 + wrap-ansi: ^8.1.0 peerDependencies: enquirer: ">= 2.3.0 < 3" peerDependenciesMeta: enquirer: optional: true - checksum: 00f00ad18262909bafff21b42d2d94faa9ed3911d70094a12a1182e773533f9b3cfd78d83a81fdbfb7dbc42e3e3252093f504c822de152100a953a91f3adf7cb + checksum: 2abfcd4346b8208e8d406cfe7a058cd10e3238f60de1ee53fa108a507b45b853ceb87e0d1d4ff229bbf6dd6e896262352e0c7a8895b8511cd55fe94304d3921e languageName: node linkType: hard "lit-element@npm:^3.2.0, lit-element@npm:^3.3.0": - version: 3.3.2 - resolution: "lit-element@npm:3.3.2" + version: 3.3.3 + resolution: "lit-element@npm:3.3.3" dependencies: "@lit-labs/ssr-dom-shim": ^1.1.0 "@lit/reactive-element": ^1.3.0 - lit-html: ^2.7.0 - checksum: cf351d743bcefff8072f717da76dce5dece249f65446fc0f151f93d1bccd4d3fe941020a536215e911509493ded24c0a3896d4441d6294defc119265ec0788b3 + lit-html: ^2.8.0 + checksum: f44c12fa3423a4e9ca5b84651410687e14646bb270ac258325e6905affac64a575f041f8440377e7ebaefa3910b6f0d6b8b1e902cb1aa5d0849b3fdfbf4fb3b6 languageName: node linkType: hard -"lit-html@npm:^2.3.0, lit-html@npm:^2.7.0": - version: 2.7.5 - resolution: "lit-html@npm:2.7.5" +"lit-html@npm:^2.3.0, lit-html@npm:^2.8.0": + version: 2.8.0 + resolution: "lit-html@npm:2.8.0" dependencies: "@types/trusted-types": ^2.0.2 - checksum: 8fbcd71a5dbcc60e23d2f3a3c6f0a0265b5faa4f2d43615d86242177d338a4b2e62ac31004d351631753e662d501638b23eb8a64c16e378376a9d193d1c08ef6 + checksum: 90057dee050803823ac884c1355b0213ab8c05fbe2ec63943c694b61aade5d36272068f3925f45a312835e504f9c9784738ef797009f0a756a750351eafb52d5 languageName: node linkType: hard @@ -21142,13 +21799,13 @@ __metadata: linkType: hard "lit@npm:^2.1.3": - version: 2.7.6 - resolution: "lit@npm:2.7.6" + version: 2.8.0 + resolution: "lit@npm:2.8.0" dependencies: "@lit/reactive-element": ^1.6.0 lit-element: ^3.3.0 - lit-html: ^2.7.0 - checksum: bfd629c6eff8e6086200d0c0904c7a20a4d1dab21d1016d40cc8591d00d972171537e8466ca4eae8c5f227f2c5d2ef2ab9a9fe3587e024a493c93614c928b6fe + lit-html: ^2.8.0 + checksum: bf33c26b1937ee204aed1adbfa4b3d43a284e85aad8ea9763c7865365917426eded4e5888158b4136095ea42054812561fe272862b61775f1198fad3588b071f languageName: node linkType: hard @@ -21325,6 +21982,13 @@ __metadata: languageName: node linkType: hard +"lodash.isboolean@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isboolean@npm:3.0.3" + checksum: 0aac604c1ef7e72f9a6b798e5b676606042401dd58e49f051df3cc1e3adb497b3d7695635a5cbec4ae5f66456b951fdabe7d6b387055f13267cde521f10ec7f7 + languageName: node + linkType: hard + "lodash.isequal@npm:^4.5.0": version: 4.5.0 resolution: "lodash.isequal@npm:4.5.0" @@ -21332,6 +21996,13 @@ __metadata: languageName: node linkType: hard +"lodash.isinteger@npm:^4.0.4": + version: 4.0.4 + resolution: "lodash.isinteger@npm:4.0.4" + checksum: 4c3e023a2373bf65bf366d3b8605b97ec830bca702a926939bcaa53f8e02789b6a176e7f166b082f9365bfec4121bfeb52e86e9040cb8d450e64c858583f61b7 + languageName: node + linkType: hard + "lodash.ismatch@npm:^4.4.0": version: 4.4.0 resolution: "lodash.ismatch@npm:4.4.0" @@ -21339,6 +22010,13 @@ __metadata: languageName: node linkType: hard +"lodash.isnumber@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isnumber@npm:3.0.3" + checksum: 2d01530513a1ee4f72dd79528444db4e6360588adcb0e2ff663db2b3f642d4bb3d687051ae1115751ca9082db4fdef675160071226ca6bbf5f0c123dbf0aa12d + languageName: node + linkType: hard + "lodash.isobject@npm:^3.0.2": version: 3.0.2 resolution: "lodash.isobject@npm:3.0.2" @@ -21346,6 +22024,20 @@ __metadata: languageName: node linkType: hard +"lodash.isplainobject@npm:^4.0.6": + version: 4.0.6 + resolution: "lodash.isplainobject@npm:4.0.6" + checksum: afd70b5c450d1e09f32a737bed06ff85b873ecd3d3d3400458725283e3f2e0bb6bf48e67dbe7a309eb371a822b16a26cca4a63c8c52db3fc7dc9d5f9dd324cbb + languageName: node + linkType: hard + +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: 09eaf980a283f9eef58ef95b30ec7fee61df4d6bf4aba3b5f096869cc58f24c9da17900febc8ffd67819b4e29de29793190e88dc96983db92d84c95fa85d1c92 + languageName: node + linkType: hard + "lodash.keys@npm:^4.0.8": version: 4.2.0 resolution: "lodash.keys@npm:4.2.0" @@ -21381,6 +22073,13 @@ __metadata: languageName: node linkType: hard +"lodash.once@npm:^4.0.0": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: 46a9a0a66c45dd812fcc016e46605d85ad599fe87d71a02f6736220554b52ffbe82e79a483ad40f52a8a95755b0d1077fba259da8bfb6694a7abbf4a48f1fc04 + languageName: node + linkType: hard + "lodash.uniq@npm:^4.2.0": version: 4.5.0 resolution: "lodash.uniq@npm:4.5.0" @@ -21388,7 +22087,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.13, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4": +"lodash@npm:^4.17.13, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c @@ -21405,15 +22104,16 @@ __metadata: languageName: node linkType: hard -"log-update@npm:^4.0.0": - version: 4.0.0 - resolution: "log-update@npm:4.0.0" +"log-update@npm:^5.0.1": + version: 5.0.1 + resolution: "log-update@npm:5.0.1" dependencies: - ansi-escapes: ^4.3.0 - cli-cursor: ^3.1.0 - slice-ansi: ^4.0.0 - wrap-ansi: ^6.2.0 - checksum: 18b299e230432a156f2535660776406d15ba8bb7817dd3eaadd58004b363756d4ecaabcd658f9949f90b62ea7d3354423be3fdeb7a201ab951ec0e8d6139af86 + ansi-escapes: ^5.0.0 + cli-cursor: ^4.0.0 + slice-ansi: ^5.0.0 + strip-ansi: ^7.0.1 + wrap-ansi: ^8.0.1 + checksum: 1050ea2027e80f32e132aace909987cb00c2719368c78b82ffca681a5b3f4020eeb5f4b4e310c47c35c6c36aff258c1d1bc51485ac44d6fdac9eb0a4275c539f languageName: node linkType: hard @@ -21511,9 +22211,9 @@ __metadata: linkType: hard "lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.0.0 - resolution: "lru-cache@npm:10.0.0" - checksum: 347b7b391091e9f91182b6f683ce04329932a542376a2d7d300637213b99f06c222a3bb0f0db59adf246dac6cef1bb509cab352451a96621d07c41b10a20495f + version: 10.0.1 + resolution: "lru-cache@npm:10.0.1" + checksum: 982dabfb227b9a2daf56d712ae0e72e01115a28c0a2068cd71277bca04568f3417bbf741c6c7941abc5c620fd8059e34f15607f90ebccbfa0a17533322d27a8e languageName: node linkType: hard @@ -21533,12 +22233,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:0.30.0": - version: 0.30.0 - resolution: "magic-string@npm:0.30.0" +"magic-string@npm:0.30.1": + version: 0.30.1 + resolution: "magic-string@npm:0.30.1" dependencies: - "@jridgewell/sourcemap-codec": ^1.4.13 - checksum: 5fac57cf190bee966d3b5c55e0c23d6148b043a43220de91a369c4a81301b483418712b38440d15055a2ac04beec63dea4866a4e5c84ad6b919186e1c5c61241 + "@jridgewell/sourcemap-codec": ^1.4.15 + checksum: 30471bbe363196a57795f903025166ba9930f9a98ea4e23d2cfbb379756414aff01309eaa06d3ae23d3cc0497babf5c5d7d98c7aeca726335cddf2d9cd873e1c languageName: node linkType: hard @@ -21569,16 +22269,16 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.1": - version: 0.30.1 - resolution: "magic-string@npm:0.30.1" +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.3": + version: 0.30.4 + resolution: "magic-string@npm:0.30.4" dependencies: "@jridgewell/sourcemap-codec": ^1.4.15 - checksum: 30471bbe363196a57795f903025166ba9930f9a98ea4e23d2cfbb379756414aff01309eaa06d3ae23d3cc0497babf5c5d7d98c7aeca726335cddf2d9cd873e1c + checksum: 076c0402334a8f7c69d83175b4ff10c83b50fd2c6d884a758a563ad9bea312db3b5c7b16cf717229c11505a1deb52d6225503b3b638e1879101d65d08f03c467 languageName: node linkType: hard -"make-dir@npm:3.1.0, make-dir@npm:^3.0.0, make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": +"make-dir@npm:3.1.0, make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -21597,6 +22297,15 @@ __metadata: languageName: node linkType: hard +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: ^7.5.3 + checksum: 69b98a6c0b8e5c4fe9acb61608a9fbcfca1756d910f51e5dbe7a9e5cfb74fca9b8a0c8a0ffdf1294a740826c1ab4871d5bf3f62f72a3049e5eac6541ddffed68 + languageName: node + linkType: hard + "make-error@npm:1.x, make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" @@ -21719,11 +22428,11 @@ __metadata: linkType: hard "markdown-to-jsx@npm:^7.1.8": - version: 7.2.1 - resolution: "markdown-to-jsx@npm:7.2.1" + version: 7.3.2 + resolution: "markdown-to-jsx@npm:7.3.2" peerDependencies: react: ">= 0.14.0" - checksum: 002ba7c723853c456a4902976d5f5a15d9585bd75dc6ab3add783b4a346e3372327c4fffd7843f30fd5b6550c5fd97e7142330521a5886f8b770db4c61558d61 + checksum: 191b9a9defeed02e12dd340cebf279f577266dac7b34574fa44ce4d64ee8536f9967d455b8303c853f84413feb473118290a6160d8221eeaf3b9e4961b8980e3 languageName: node linkType: hard @@ -22580,6 +23289,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:4.0.5, micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff + languageName: node + linkType: hard + "micromatch@npm:^3.1.10": version: 3.1.10 resolution: "micromatch@npm:3.1.10" @@ -22601,16 +23320,6 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: ^3.0.2 - picomatch: ^2.3.1 - checksum: 3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff - languageName: node - linkType: hard - "miller-rabin@npm:^4.0.0": version: 4.0.1 resolution: "miller-rabin@npm:4.0.1" @@ -22657,6 +23366,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531 + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -22685,7 +23403,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0": +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: 7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c @@ -22814,17 +23532,17 @@ __metadata: linkType: hard "minipass-fetch@npm:^3.0.0": - version: 3.0.3 - resolution: "minipass-fetch@npm:3.0.3" + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" dependencies: encoding: ^0.1.13 - minipass: ^5.0.0 + minipass: ^7.0.3 minipass-sized: ^1.0.3 minizlib: ^2.1.2 dependenciesMeta: encoding: optional: true - checksum: 12e0fde7e8fdb1bd923b9243b4788e7d3df305c6ddb3b79ab2da4587fa608c126157c7f6dd43746e8063ee99ec5abbb898d0426c812e9c9b68260c4fea9b279a + checksum: 1b63c1f3313e88eeac4689f1b71c9f086598db9a189400e3ee960c32ed89e06737fa23976c9305c2d57464fb3fcdc12749d3378805c9d6176f5569b0d0ee8a75 languageName: node linkType: hard @@ -22888,10 +23606,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0": - version: 7.0.2 - resolution: "minipass@npm:7.0.2" - checksum: 5e800acfc9dc75eacac5c4969ab50210463a8afbe8b487de1ae681106e17eb93772513854b6a38462b200b5758af95eeeb481945e050ce76f575ff1150fff4b4 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 languageName: node linkType: hard @@ -23022,13 +23740,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.1": - version: 2.1.1 - resolution: "ms@npm:2.1.1" - checksum: 056140c631e740369fa21142417aba1bd629ab912334715216c666eb681c8f015c622dd4e38bc1d836b30852b05641331661703af13a0397eb0ca420fc1e75d9 - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -23170,27 +23881,27 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.5.0, neo-async@npm:^2.6.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": +"neo-async@npm:^2.5.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d languageName: node linkType: hard -"next@npm:^13.4.8": - version: 13.4.12 - resolution: "next@npm:13.4.12" +"next@npm:13.4.19": + version: 13.4.19 + resolution: "next@npm:13.4.19" dependencies: - "@next/env": 13.4.12 - "@next/swc-darwin-arm64": 13.4.12 - "@next/swc-darwin-x64": 13.4.12 - "@next/swc-linux-arm64-gnu": 13.4.12 - "@next/swc-linux-arm64-musl": 13.4.12 - "@next/swc-linux-x64-gnu": 13.4.12 - "@next/swc-linux-x64-musl": 13.4.12 - "@next/swc-win32-arm64-msvc": 13.4.12 - "@next/swc-win32-ia32-msvc": 13.4.12 - "@next/swc-win32-x64-msvc": 13.4.12 + "@next/env": 13.4.19 + "@next/swc-darwin-arm64": 13.4.19 + "@next/swc-darwin-x64": 13.4.19 + "@next/swc-linux-arm64-gnu": 13.4.19 + "@next/swc-linux-arm64-musl": 13.4.19 + "@next/swc-linux-x64-gnu": 13.4.19 + "@next/swc-linux-x64-musl": 13.4.19 + "@next/swc-win32-arm64-msvc": 13.4.19 + "@next/swc-win32-ia32-msvc": 13.4.19 + "@next/swc-win32-x64-msvc": 13.4.19 "@swc/helpers": 0.5.1 busboy: 1.6.0 caniuse-lite: ^1.0.30001406 @@ -23200,7 +23911,6 @@ __metadata: zod: 3.21.4 peerDependencies: "@opentelemetry/api": ^1.1.0 - fibers: ">= 3.1.0" react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 @@ -23226,13 +23936,11 @@ __metadata: peerDependenciesMeta: "@opentelemetry/api": optional: true - fibers: - optional: true sass: optional: true bin: next: dist/bin/next - checksum: 8957092182c98f154d48cc3fc5fbadf07a691dded067e54274225b0d1f75c16f5a7c148361035629dcda5e8e10b9b9b0953d15438477d489bbe1a7ecdb664677 + checksum: 557fd15a52220f003ec88a79f51de41c5bb9cda5294944985f31ce45e75f98dd3caf902896d8419d96cc81596976671e953391b1eb3707757d261e362a242310 languageName: node linkType: hard @@ -23304,9 +24012,9 @@ __metadata: linkType: hard "node-fetch-native@npm:^1.0.2": - version: 1.2.0 - resolution: "node-fetch-native@npm:1.2.0" - checksum: 85faa0b7af6884fd615ddc05ec70f05d3818bef8ece43952c49dd849885b21fe7cef54f62cf17b9c0faadfe13498f667a996070d386918ab7017b46c725c5ff6 + version: 1.4.0 + resolution: "node-fetch-native@npm:1.4.0" + checksum: 2ced63b4b4cef8d05e004c5489614811ae836ae17a07e548af7a29fb22c5ea2512ea24423720f1ac9b47787d701044321d4921e3da4fe8dbcc882a8f67a1d218 languageName: node linkType: hard @@ -23325,8 +24033,8 @@ __metadata: linkType: hard "node-fetch@npm:^2.0.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7": - version: 2.6.12 - resolution: "node-fetch@npm:2.6.12" + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" dependencies: whatwg-url: ^5.0.0 peerDependencies: @@ -23334,7 +24042,7 @@ __metadata: peerDependenciesMeta: encoding: optional: true - checksum: 10372e4b5ee07acadc15e6b2bc6fd8940582eea7b9b2a331f4e3665fdcd968498c1656f79f2fa572080ebb37ea80e1474a6478b3b36057ef901b63f4be8fd899 + checksum: b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 languageName: node linkType: hard @@ -23357,13 +24065,13 @@ __metadata: linkType: hard "node-gyp-build@npm:^4.2.2, node-gyp-build@npm:^4.3.0": - version: 4.6.0 - resolution: "node-gyp-build@npm:4.6.0" + version: 4.6.1 + resolution: "node-gyp-build@npm:4.6.1" bin: node-gyp-build: bin.js node-gyp-build-optional: optional.js node-gyp-build-test: build-test.js - checksum: 147add65942acd3cf641d11d9becd030128c7298a5b4aec4ebf3ad4afcc3d0298ad2562afba3e7b2bf70160c5e2e82235e3bc043ff9c52dc68bdd36c856764fe + checksum: bd7738c96608c1fa056344623b93d4bbdc63fec05862061e5489284639e3a53daa407b9158c45bfc2e33d0b419851ed5c1f03f4c9ba34726361e2a7b765c0ddc languageName: node linkType: hard @@ -23437,7 +24145,7 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.12": +"node-releases@npm:^2.0.13": version: 2.0.13 resolution: "node-releases@npm:2.0.13" checksum: 2fb44bf70fc949d27f3a48a7fd1a9d1d603ddad4ccd091f26b3fb8b1da976605d919330d7388ccd55ca2ade0dc8b2e12841ba19ef249c8bb29bf82532d401af7 @@ -23554,11 +24262,11 @@ __metadata: linkType: hard "npm-install-checks@npm:^6.0.0": - version: 6.1.1 - resolution: "npm-install-checks@npm:6.1.1" + version: 6.2.0 + resolution: "npm-install-checks@npm:6.2.0" dependencies: semver: ^7.1.1 - checksum: f61bbd7e27738037a3e836e1b154f668f774a4eb5fd66830b9edf3ef4b0648d4477cb0c73c129a255445109a5c18f16413e1b356d56c0cac006e57ab21c66ede + checksum: d7814be08413879bb8b3c39ff15786f5865ed3359a56265a686dd7244f3b3ac37669bf740847f9f9063f1d90f2f770d84a815175030fde5f502eab1d9637433b languageName: node linkType: hard @@ -23641,7 +24349,7 @@ __metadata: languageName: node linkType: hard -"npm-pick-manifest@npm:8.0.1, npm-pick-manifest@npm:^8.0.0, npm-pick-manifest@npm:^8.0.1": +"npm-pick-manifest@npm:8.0.1": version: 8.0.1 resolution: "npm-pick-manifest@npm:8.0.1" dependencies: @@ -23653,6 +24361,18 @@ __metadata: languageName: node linkType: hard +"npm-pick-manifest@npm:^8.0.0, npm-pick-manifest@npm:^8.0.1": + version: 8.0.2 + resolution: "npm-pick-manifest@npm:8.0.2" + dependencies: + npm-install-checks: ^6.0.0 + npm-normalize-package-bin: ^3.0.0 + npm-package-arg: ^10.0.0 + semver: ^7.3.5 + checksum: 9e58f7732203dbfdd7a338d6fd691c564017fd2ebfaa0ea39528a21db0c99f26370c759d99a0c5684307b79dbf76fa20e387010358a8651e273dc89930e922a0 + languageName: node + linkType: hard + "npm-registry-fetch@npm:14.0.3": version: 14.0.3 resolution: "npm-registry-fetch@npm:14.0.3" @@ -23779,7 +24499,7 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.2": +"nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.2": version: 2.2.7 resolution: "nwsapi@npm:2.2.7" checksum: 44be198adae99208487a1c886c0a3712264f7bbafa44368ad96c003512fed2753d4e22890ca1e6edb2690c3456a169f2a3c33bfacde1905cf3bf01c7722464db @@ -23806,24 +24526,24 @@ __metadata: languageName: node linkType: hard -"nx@npm:15.9.4, nx@npm:>=15.5.2 < 16": - version: 15.9.4 - resolution: "nx@npm:15.9.4" +"nx@npm:15.9.7, nx@npm:>=15.5.2 < 16": + version: 15.9.7 + resolution: "nx@npm:15.9.7" dependencies: - "@nrwl/cli": 15.9.4 - "@nrwl/nx-darwin-arm64": 15.9.4 - "@nrwl/nx-darwin-x64": 15.9.4 - "@nrwl/nx-linux-arm-gnueabihf": 15.9.4 - "@nrwl/nx-linux-arm64-gnu": 15.9.4 - "@nrwl/nx-linux-arm64-musl": 15.9.4 - "@nrwl/nx-linux-x64-gnu": 15.9.4 - "@nrwl/nx-linux-x64-musl": 15.9.4 - "@nrwl/nx-win32-arm64-msvc": 15.9.4 - "@nrwl/nx-win32-x64-msvc": 15.9.4 - "@nrwl/tao": 15.9.4 + "@nrwl/cli": 15.9.7 + "@nrwl/nx-darwin-arm64": 15.9.7 + "@nrwl/nx-darwin-x64": 15.9.7 + "@nrwl/nx-linux-arm-gnueabihf": 15.9.7 + "@nrwl/nx-linux-arm64-gnu": 15.9.7 + "@nrwl/nx-linux-arm64-musl": 15.9.7 + "@nrwl/nx-linux-x64-gnu": 15.9.7 + "@nrwl/nx-linux-x64-musl": 15.9.7 + "@nrwl/nx-win32-arm64-msvc": 15.9.7 + "@nrwl/nx-win32-x64-msvc": 15.9.7 + "@nrwl/tao": 15.9.7 "@parcel/watcher": 2.0.4 "@yarnpkg/lockfile": ^1.1.0 - "@yarnpkg/parsers": ^3.0.0-rc.18 + "@yarnpkg/parsers": 3.0.0-rc.46 "@zkochan/js-yaml": 0.0.6 axios: ^1.0.0 chalk: ^4.1.0 @@ -23844,7 +24564,7 @@ __metadata: minimatch: 3.0.5 npm-run-path: ^4.0.1 open: ^8.4.0 - semver: 7.3.4 + semver: 7.5.4 string-width: ^4.2.3 strong-log-transformer: ^2.1.0 tar-stream: ~2.2.0 @@ -23883,7 +24603,7 @@ __metadata: optional: true bin: nx: bin/nx.js - checksum: 09e5bb47c562bbbf274509ffdc56ec565315ebf09a769e6ee3953621799db8e3d047df203e475ca3f0edd3dd5e65045c94bc37527f22e663f31ee694a7a12d5c + checksum: 39b3c7e5efef3a10d0249db321a78fc9bb34806ae3d21ee211df29321367259841556989cbb4391b74f77d78f2629f90e65387b9414030fd921a9a03f8ccfbdc languageName: node linkType: hard @@ -24016,6 +24736,13 @@ __metadata: languageName: node linkType: hard +"object-path@npm:^0.11.5": + version: 0.11.8 + resolution: "object-path@npm:0.11.8" + checksum: 73b1f33bb30a7032d8cce2e3dcffd82b80a83d8304e80b4f83b4f456165625de9907f1ca7f7441d4dfb5e73429ace1e5bf9d9315636ac0aacc76392cc21d1672 + languageName: node + linkType: hard + "object-visit@npm:^1.0.0": version: 1.0.1 resolution: "object-visit@npm:1.0.1" @@ -24038,34 +24765,46 @@ __metadata: linkType: hard "object.entries@npm:^1.1.1, object.entries@npm:^1.1.2, object.entries@npm:^1.1.6": - version: 1.1.6 - resolution: "object.entries@npm:1.1.6" + version: 1.1.7 + resolution: "object.entries@npm:1.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 8782c71db3a068ccbae9e0541e6b4ac2c25dc67c63f97b7e6ad3c88271d7820197e7398e37747f96542ed47c27f0b81148cdf14c42df15dc22f64818ae7bb5bf + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 3ad1899cc7bf14546bf28f4a9b363ae8690b90948fcfbcac4c808395435d760f26193d9cae95337ce0e3c1e5c1f4fa45f7b46b31b68d389e9e117fce38775d86 languageName: node linkType: hard "object.fromentries@npm:^2.0.5, object.fromentries@npm:^2.0.6": - version: 2.0.6 - resolution: "object.fromentries@npm:2.0.6" + version: 2.0.7 + resolution: "object.fromentries@npm:2.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: db6759ea68131cbdb70b1152f9984b49db03e81de4f6de079b39929bebd8b45501e5333ca2351991e07ee56f4651606c023396644e8f25c0806fa39a26c4c6e6 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 071745c21f6fc9e6c914691f2532c1fb60ad967e5ddc52801d09958b5de926566299d07ae14466452a7efd29015f9145d6c09c573d93a0dc6f1683ee0ec2b93b + languageName: node + linkType: hard + +"object.groupby@npm:^1.0.0": + version: 1.0.1 + resolution: "object.groupby@npm:1.0.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 + checksum: 61e41fbf08cc04ed860363db9629eedeaa590fce243c0960e948fd7b11f78a9d4350065c339936d118a2dd8775d7259e26207340cc8ce688bec66cb615fec6fe languageName: node linkType: hard "object.hasown@npm:^1.1.2": - version: 1.1.2 - resolution: "object.hasown@npm:1.1.2" + version: 1.1.3 + resolution: "object.hasown@npm:1.1.3" dependencies: - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 419fc1c74a2aea7ebb4d49b79d5b1599a010b26c18eae35bd061ccdd013ccb749c499d8dd6ee21a91e6d7264ccc592573d0f13562970f76e25fc844d8c1b02ce + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 8a41ba4fb1208a85c2275e9b5098071beacc24345b9a71ab98ef0a1c61b34dc74c6b460ff1e1884c33843d8f2553df64a10eec2b74b3ed009e3b2710c826bd2c languageName: node linkType: hard @@ -24079,13 +24818,13 @@ __metadata: linkType: hard "object.values@npm:^1.1.1, object.values@npm:^1.1.5, object.values@npm:^1.1.6": - version: 1.1.6 - resolution: "object.values@npm:1.1.6" + version: 1.1.7 + resolution: "object.values@npm:1.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 3381204390f10c9f653a4875a50d221c67b5c16cb80a6ac06c706fc82a7cad8400857d4c7a0731193b0abb56b84fe803eabcf7addcf32de76397bbf207e68c66 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: e869d6a37fb7afdd0054dea49036d6ccebb84854a8848a093bbd1bc516f53e690bba88f0bc3e83fdfa74c601469ee6989c9b13359cda9604144c6e732fad3b6b languageName: node linkType: hard @@ -24157,18 +24896,6 @@ __metadata: languageName: node linkType: hard -"open@npm:^9.1.0": - version: 9.1.0 - resolution: "open@npm:9.1.0" - dependencies: - default-browser: ^4.0.0 - define-lazy-prop: ^3.0.0 - is-inside-container: ^1.0.0 - is-wsl: ^2.2.0 - checksum: 8073ec0dd8994a7a7d9bac208bd17d093993a65ce10f2eb9b62b6d3a91c9366ae903938a237c275493c130171d339f6dcbdd2a2de7e32953452c0867b97825af - languageName: node - linkType: hard - "opencollective-postinstall@npm:^2.0.2": version: 2.0.3 resolution: "opencollective-postinstall@npm:2.0.3" @@ -24250,16 +24977,16 @@ __metadata: linkType: hard "overlayscrollbars-react@npm:^0.5.0": - version: 0.5.1 - resolution: "overlayscrollbars-react@npm:0.5.1" + version: 0.5.2 + resolution: "overlayscrollbars-react@npm:0.5.2" peerDependencies: overlayscrollbars: ^2.0.0 react: ">=16.8.0" - checksum: 3a8717d19ab54f6762a92c07ffa1f44d1b7ae72a8b60eaf88877efa9289409171eff840b0374d94935ee586f7c92e4f15a134ddb72d4b7a143defb69039fa6ca + checksum: 56e8df609f589cd38c97408d743ebd9112047c60da340c8f121b10418beabd1b5411396f4c1fd27b46dd0e663e7675ae72df1c531feb1e3f6bf1342dbafa21ef languageName: node linkType: hard -"overlayscrollbars@npm:^2.2.0": +"overlayscrollbars@npm:2.2.1": version: 2.2.1 resolution: "overlayscrollbars@npm:2.2.1" checksum: 718dd563ee17a8c92a54f0b67989806edadd5b999e36d2ab322e7813b369d1cf0198d7267ca42ca9e879023f0658825e2b050d2845e751d876285d1d3549cb5e @@ -24729,7 +25456,7 @@ __metadata: languageName: node linkType: hard -"parse5@npm:^6.0.1": +"parse5@npm:6.0.1, parse5@npm:^6.0.1": version: 6.0.1 resolution: "parse5@npm:6.0.1" checksum: 595821edc094ecbcfb9ddcb46a3e1fe3a718540f8320eff08b8cf6742a5114cce2d46d45f95c26191c11b184dcaf4e2960abcd9c5ed9eb9393ac9a37efcfdecb @@ -24965,7 +25692,7 @@ __metadata: languageName: node linkType: hard -"pidtree@npm:^0.6.0": +"pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" bin: @@ -25032,9 +25759,9 @@ __metadata: languageName: node linkType: hard -"piscina@npm:3.2.0": - version: 3.2.0 - resolution: "piscina@npm:3.2.0" +"piscina@npm:4.0.0": + version: 4.0.0 + resolution: "piscina@npm:4.0.0" dependencies: eventemitter-asyncresource: ^1.0.0 hdr-histogram-js: ^2.0.1 @@ -25043,7 +25770,7 @@ __metadata: dependenciesMeta: nice-napi: optional: true - checksum: 9676f5708f3eaf2f71121214a4989f339c65efa9197f8c33511cb5c238d54e14f701c0e421bdbfb17aa5fce37e142522b8d6a4c8a73da635757f6e66567b45f9 + checksum: 29b11b1c590a2c854ec42f71e9078fd7c3ea0cf9684e0a2d9df410d4cd3203016215b21b57820ab90bd37e49539b2885f33f03adfba1d6484a80bf10b09e08ad languageName: node linkType: hard @@ -25162,6 +25889,15 @@ __metadata: languageName: node linkType: hard +"polished@npm:^3.6.4": + version: 3.7.2 + resolution: "polished@npm:3.7.2" + dependencies: + "@babel/runtime": ^7.12.5 + checksum: c36439946b5bfbac16c06dd7b00a89f45e07410427344e909c540ce3ddeb9b44d2ae9cc035a9d77f4551e07b9803419ae77767aec85958a0978158a95c0115d8 + languageName: node + linkType: hard + "polished@npm:^4.2.2": version: 4.2.2 resolution: "polished@npm:4.2.2" @@ -25171,6 +25907,13 @@ __metadata: languageName: node linkType: hard +"popper.js@npm:^1.14.4": + version: 1.16.1 + resolution: "popper.js@npm:1.16.1" + checksum: 1c1a826f757edb5b8c2049dfd7a9febf6ae1e9d0e51342fc715b49a0c1020fced250d26484619883651e097c5764bbcacd2f31496e3646027f079dd83e072681 + languageName: node + linkType: hard + "portfinder@npm:^1.0.28": version: 1.0.32 resolution: "portfinder@npm:1.0.32" @@ -25189,22 +25932,7 @@ __metadata: languageName: node linkType: hard -"postcss-loader@npm:7.3.2": - version: 7.3.2 - resolution: "postcss-loader@npm:7.3.2" - dependencies: - cosmiconfig: ^8.1.3 - jiti: ^1.18.2 - klona: ^2.0.6 - semver: ^7.3.8 - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - checksum: 635975cd6620a251eaf19ae27e13fcb777391d68083c71551467f3fd1aec80648d444a46c9c91018e0eb0e6eb3d02cdba44ffe15eff41cf48756092766ebec4b - languageName: node - linkType: hard - -"postcss-loader@npm:^7.0.2": +"postcss-loader@npm:7.3.3, postcss-loader@npm:^7.0.2": version: 7.3.3 resolution: "postcss-loader@npm:7.3.3" dependencies: @@ -25348,14 +26076,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.24": - version: 8.4.24 - resolution: "postcss@npm:8.4.24" +"postcss@npm:8.4.27": + version: 8.4.27 + resolution: "postcss@npm:8.4.27" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 37704ee03a2cbdebf2c99a76d399d6e0250742b5f6c699a12d475c84cedfcbeb26e180d9c780e0219dd2ad70cac963ceaf1d6763a1aec3e63d0c19fceb0eab23 + checksum: 41a0476e05cb97514ff8d75e4ff9fdcf778f22b2e0d25b7028f219cd408e01d3c4f50459d4a1cd9a430d8ef08202c881374a4fa4ea6009f4a135a07315d606e5 languageName: node linkType: hard @@ -25369,14 +26097,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.10, postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.26": - version: 8.4.27 - resolution: "postcss@npm:8.4.27" +"postcss@npm:^8.1.10, postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.26, postcss@npm:^8.4.27": + version: 8.4.31 + resolution: "postcss@npm:8.4.31" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 41a0476e05cb97514ff8d75e4ff9fdcf778f22b2e0d25b7028f219cd408e01d3c4f50459d4a1cd9a430d8ef08202c881374a4fa4ea6009f4a135a07315d606e5 + checksum: 748b82e6e5fc34034dcf2ae88ea3d11fd09f69b6c50ecdd3b4a875cfc7cdca435c958b211e2cb52355422ab6fccb7d8f2f2923161d7a1b281029e4a913d59acf languageName: node linkType: hard @@ -25392,9 +26120,9 @@ __metadata: linkType: hard "preact@npm:^10.5.13": - version: 10.16.0 - resolution: "preact@npm:10.16.0" - checksum: 719d0a51dfda0149390b3f65aefd54bdc231f1f821b42ae17bc3fd5e9652d0a30d8a44c455921353e375bfed5d91d74054936827e7d780aee519e07fa84db4ac + version: 10.18.1 + resolution: "preact@npm:10.18.1" + checksum: b157c46d5dbece48cf0f31b0e24d27c989ea019e77730427b4c7549953da7de015b34f13f93d0034966f033738ec582829da918c28d084bbb31d59f320f56aa0 languageName: node linkType: hard @@ -25483,14 +26211,26 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.6.1": - version: 29.6.1 - resolution: "pretty-format@npm:29.6.1" +"pretty-format@npm:^28.0.0, pretty-format@npm:^28.1.3": + version: 28.1.3 + resolution: "pretty-format@npm:28.1.3" + dependencies: + "@jest/schemas": ^28.1.3 + ansi-regex: ^5.0.1 + ansi-styles: ^5.0.0 + react-is: ^18.0.0 + checksum: 596d8b459b6fdac7dcbd70d40169191e889939c17ffbcc73eebe2a9a6f82cdbb57faffe190274e0a507d9ecdf3affadf8a9b43442a625eecfbd2813b9319660f + languageName: node + linkType: hard + +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" dependencies: - "@jest/schemas": ^29.6.0 + "@jest/schemas": ^29.6.3 ansi-styles: ^5.0.0 react-is: ^18.0.0 - checksum: decb4ca86b34e53a08e525d2b50be19ef4bffa4bb4122787740b012c11490311879de53dee8b669a82376b6fec06040ec546831f2c3ce0df963c00d743cce664 + checksum: edc5ff89f51916f036c62ed433506b55446ff739358de77207e63e88a28ca2894caac6e73dcb68166a606e51c8087d32d400473e6a9fdd2dbe743f46c9c0276f languageName: node linkType: hard @@ -25520,6 +26260,13 @@ __metadata: languageName: node linkType: hard +"prismjs@npm:1.25.0": + version: 1.25.0 + resolution: "prismjs@npm:1.25.0" + checksum: 0c3853a6c815b23a07bef77700f60a40b2a12018a383a75cd7d108718717b73927c809e7dd08ac0ae9f16fbe1e005b337262bc95952cf9cfc91914f986b07bd3 + languageName: node + linkType: hard + "prismjs@npm:^1.27.0": version: 1.29.0 resolution: "prismjs@npm:1.29.0" @@ -25662,7 +26409,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": +"prop-types@npm:^15.5.10, prop-types@npm:^15.6.1, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -25957,9 +26704,9 @@ __metadata: linkType: hard "pure-rand@npm:^6.0.0": - version: 6.0.2 - resolution: "pure-rand@npm:6.0.2" - checksum: 0556bee2e16a8d081a2b7630d9cb4e5dafd4e6bd6e4c61de1cf1ef5974f127847523e3d0e62884f6f5d64b66a5e93b05bd8f37ed009f3a4fe5089899e05914aa + version: 6.0.4 + resolution: "pure-rand@npm:6.0.4" + checksum: 0fe7b12f25b10ea5b804598a6f37e4bcf645d2be6d44fe963741f014bf0095bdb6ff525106d6da6e76addc8142358fd380f1a9b8c62ea4d5516bf26a96a37c95 languageName: node linkType: hard @@ -25979,7 +26726,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.10.0, qs@npm:^6.11.0, qs@npm:^6.4.0": +"qs@npm:^6.10.0, qs@npm:^6.10.1, qs@npm:^6.11.2, qs@npm:^6.4.0": version: 6.11.2 resolution: "qs@npm:6.11.2" dependencies: @@ -25988,15 +26735,15 @@ __metadata: languageName: node linkType: hard -"query-string@npm:^6.12.1": - version: 6.14.1 - resolution: "query-string@npm:6.14.1" +"query-string@npm:^7.0.0": + version: 7.1.3 + resolution: "query-string@npm:7.1.3" dependencies: - decode-uri-component: ^0.2.0 + decode-uri-component: ^0.2.2 filter-obj: ^1.1.0 split-on-first: ^1.0.0 strict-uri-encode: ^2.0.0 - checksum: 900e0fa788000e9dc5f929b6f4141742dcf281f02d3bab9714bc83bea65fab3de75169ea8d61f19cda996bc0dcec72e156efe3c5614c6bce65dcf234ac955b14 + checksum: a896c08e9e0d4f8ffd89a572d11f668c8d0f7df9c27c6f49b92ab31366d3ba0e9c331b9a620ee747893436cd1f2f821a6327e2bc9776bde2402ac6c270b801b2 languageName: node linkType: hard @@ -26152,26 +26899,6 @@ __metadata: languageName: node linkType: hard -"react-docgen@npm:6.0.0-alpha.3": - version: 6.0.0-alpha.3 - resolution: "react-docgen@npm:6.0.0-alpha.3" - dependencies: - "@babel/core": ^7.7.5 - "@babel/generator": ^7.12.11 - ast-types: ^0.14.2 - commander: ^2.19.0 - doctrine: ^3.0.0 - estree-to-babel: ^3.1.0 - neo-async: ^2.6.1 - node-dir: ^0.1.10 - resolve: ^1.17.0 - strip-indent: ^3.0.0 - bin: - react-docgen: bin/react-docgen.js - checksum: 284bba5528d5e9084c3ed36b2d2fec8fc5d55f3fb8ca544ec3a0d1ab98c39001ecb7db6e03a1088b82eb3d750c1343cde2fc9b7729540277eda40e10f38912d8 - languageName: node - linkType: hard - "react-docgen@npm:^5.0.0": version: 5.4.3 resolution: "react-docgen@npm:5.4.3" @@ -26192,6 +26919,24 @@ __metadata: languageName: node linkType: hard +"react-docgen@npm:^6.0.2": + version: 6.0.4 + resolution: "react-docgen@npm:6.0.4" + dependencies: + "@babel/core": ^7.18.9 + "@babel/traverse": ^7.18.9 + "@babel/types": ^7.18.9 + "@types/babel__core": ^7.18.0 + "@types/babel__traverse": ^7.18.0 + "@types/doctrine": ^0.0.6 + "@types/resolve": ^1.20.2 + doctrine: ^3.0.0 + resolve: ^1.22.1 + strip-indent: ^4.0.0 + checksum: 6e372de705b0ce576c8a46c8aedaea3f584441b18d68c02128f14e20657597fe088c80bb67374d5057001f71505924e07d6e366ec8d768e2456d47395bd32066 + languageName: node + linkType: hard + "react-dom@npm:^16.8.0": version: 16.14.0 resolution: "react-dom@npm:16.14.0" @@ -26207,15 +26952,15 @@ __metadata: linkType: hard "react-draggable@npm:^4.4.3": - version: 4.4.5 - resolution: "react-draggable@npm:4.4.5" + version: 4.4.6 + resolution: "react-draggable@npm:4.4.6" dependencies: clsx: ^1.1.1 prop-types: ^15.8.1 peerDependencies: react: ">= 16.3.0" react-dom: ">= 16.3.0" - checksum: d950e25b41092ffd689e9882c287f7f49dbd8eb7e8a220af6e08c0dc06f1ae778871b0f414e30bd2891a96c6be1f673c3a698c0e642903542ff5ab5b0cbaf805 + checksum: 1e8cf47414a8554caa68447e5f27749bc40e1eabb4806e2dadcb39ab081d263f517d6aaec5231677e6b425603037c7e3386d1549898f9ffcc98a86cabafb2b9a languageName: node linkType: hard @@ -26247,6 +26992,15 @@ __metadata: languageName: node linkType: hard +"react-github-button@npm:^0.1.11": + version: 0.1.11 + resolution: "react-github-button@npm:0.1.11" + dependencies: + prop-types: ^15.5.10 + checksum: e00fa4f3b2dee74f45fff0c9d68d7d75eefa495d27a56ef2e2391f9600623d16b8a9f99c1d35a7b4f620dfb95dd8ed0b1a76fbbfece4be0843cd507c17a37dfa + languageName: node + linkType: hard + "react-helmet-async@npm:^1.0.7": version: 1.3.0 resolution: "react-helmet-async@npm:1.3.0" @@ -26300,6 +27054,13 @@ __metadata: languageName: node linkType: hard +"react-lifecycles-compat@npm:^3.0.0": + version: 3.0.4 + resolution: "react-lifecycles-compat@npm:3.0.4" + checksum: 1d0df3c85af79df720524780f00c064d53a9dd1899d785eddb7264b378026979acbddb58a4b7e06e7d0d12aa1494fd5754562ee55d32907b15601068dae82c27 + languageName: node + linkType: hard + "react-merge-refs@npm:^1.0.0": version: 1.1.0 resolution: "react-merge-refs@npm:1.1.0" @@ -26307,6 +27068,34 @@ __metadata: languageName: node linkType: hard +"react-modal@npm:^3.11.2": + version: 3.16.1 + resolution: "react-modal@npm:3.16.1" + dependencies: + exenv: ^1.2.0 + prop-types: ^15.7.2 + react-lifecycles-compat: ^3.0.0 + warning: ^4.0.3 + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 + react-dom: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 + checksum: 7b56e2c505b2b924736c471a34754a4211df40ac2d6fb0949cf095aea5e65d3326bd9f111fa7898acf40afa54f526809ad8aa47e02b8328663d11422568dc7b1 + languageName: node + linkType: hard + +"react-popper-tooltip@npm:^2.11.1": + version: 2.11.1 + resolution: "react-popper-tooltip@npm:2.11.1" + dependencies: + "@babel/runtime": ^7.9.2 + react-popper: ^1.3.7 + peerDependencies: + react: ^16.6.0 + react-dom: ^16.6.0 + checksum: f81278f1ea87899ffa57fed85c2531fa583ebca424ae5522e3a1b05c5635c014b3467391e77fb9c48bbc8e7b9f1050fa9302e8ee6134a9333858b5a6e0ae1b49 + languageName: node + linkType: hard + "react-popper-tooltip@npm:^4.4.2": version: 4.4.2 resolution: "react-popper-tooltip@npm:4.4.2" @@ -26321,6 +27110,23 @@ __metadata: languageName: node linkType: hard +"react-popper@npm:^1.3.7": + version: 1.3.11 + resolution: "react-popper@npm:1.3.11" + dependencies: + "@babel/runtime": ^7.1.2 + "@hypnosphi/create-react-context": ^0.3.1 + deep-equal: ^1.1.1 + popper.js: ^1.14.4 + prop-types: ^15.6.1 + typed-styles: ^0.0.7 + warning: ^4.0.2 + peerDependencies: + react: 0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: d5dd1d0d4b5a3407134681b42a079fce525c94bce892ad177515d54a8cf64203eecbc30231476367e916aaff91221f5b6abd5afc207a86c698f35b7254178488 + languageName: node + linkType: hard + "react-popper@npm:^2.3.0": version: 2.3.0 resolution: "react-popper@npm:2.3.0" @@ -26467,15 +27273,15 @@ __metadata: linkType: hard "react-textarea-autosize@npm:^8.3.0": - version: 8.5.2 - resolution: "react-textarea-autosize@npm:8.5.2" + version: 8.5.3 + resolution: "react-textarea-autosize@npm:8.5.3" dependencies: "@babel/runtime": ^7.20.13 use-composed-ref: ^1.3.0 use-latest: ^1.2.1 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c93f9ae320af990f2adadb6c55c5040d6e61cb649027b00c88c8679237c9dbffd3909c7114f2d68f420db9f7a641ec304561f28bb0b53dc2e0a1e9efea10685b + checksum: 33d38a6d96cf584842695b50c341980944ece23a42155bf0bd1958f02396adb185c7720b88678dc677817fe111783059c0ebcdf7761644006892583b10e258ee languageName: node linkType: hard @@ -26738,15 +27544,15 @@ __metadata: linkType: hard "recast@npm:^0.23.1": - version: 0.23.3 - resolution: "recast@npm:0.23.3" + version: 0.23.4 + resolution: "recast@npm:0.23.4" dependencies: assert: ^2.0.0 ast-types: ^0.16.1 esprima: ~4.0.0 source-map: ~0.6.1 tslib: ^2.0.1 - checksum: 2f2d0ce271b187e29f8ea15bf3c319e708376145aaef2797e9a9d3e337e12178bd0d05d607baf601bb607075fbc040ca51f2d58a8bd566d8069c8a9d4b334608 + checksum: d719633be8029e28f23b8191d4a525c5dbdac721792ab3cb5e9dfcf1694fb93f3c147b186916195a9c7fa0711f1e4990ba457cdcee02faed3899d4a80da1bd1f languageName: node linkType: hard @@ -26767,6 +27573,20 @@ __metadata: languageName: node linkType: hard +"reflect.getprototypeof@npm:^1.0.4": + version: 1.0.4 + resolution: "reflect.getprototypeof@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 + globalthis: ^1.0.3 + which-builtin-type: ^1.1.3 + checksum: 02104cdd22658b637efe6b1df73658edab539268347327c8250a72d0cb273dcdf280c284e2d94155d22601d022d16be1a816a8616d679e447cbcbde9860d15cb + languageName: node + linkType: hard + "reflect.ownkeys@npm:^0.2.0": version: 0.2.0 resolution: "reflect.ownkeys@npm:0.2.0" @@ -26786,11 +27606,11 @@ __metadata: linkType: hard "regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.0 - resolution: "regenerate-unicode-properties@npm:10.1.0" + version: 10.1.1 + resolution: "regenerate-unicode-properties@npm:10.1.1" dependencies: regenerate: ^1.4.2 - checksum: 17818ea6f67c5a4884b9e18842edc4b3838a12f62e24f843e80fbb6d8cb649274b5b86d98bb02075074e02021850e597a92ff6b58bbe5caba4bf5fd8e4e38b56 + checksum: 89adb5ee5ba081380c78f9057c02e156a8181969f6fcca72451efc45612e0c3df767b4333f8d8479c274d9c6fe52ec4854f0d8a22ef95dccbe87da8e5f2ac77d languageName: node linkType: hard @@ -26815,12 +27635,19 @@ __metadata: languageName: node linkType: hard -"regenerator-transform@npm:^0.15.1": - version: 0.15.1 - resolution: "regenerator-transform@npm:0.15.1" +"regenerator-runtime@npm:^0.14.0": + version: 0.14.0 + resolution: "regenerator-runtime@npm:0.14.0" + checksum: e25f062c1a183f81c99681691a342760e65c55e8d3a4d4fe347ebe72433b123754b942b70b622959894e11f8a9131dc549bd3c9a5234677db06a4af42add8d12 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" dependencies: "@babel/runtime": ^7.8.4 - checksum: 6588e0c454e92ed6c2b3ed7ab24f61270aef47ae7052eceb5367cc15658948a2e84fdd6849f7c96e561d1f8a7474dc4c292166792e07498fdde226299b9ff374 + checksum: 7cfe6931ec793269701994a93bab89c0cc95379191fad866270a7fea2adfec67ea62bb5b374db77058b60ba4509319d9b608664d0d288bd9989ca8dbd08fae90 languageName: node linkType: hard @@ -26841,14 +27668,14 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.1": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 - functions-have-names: ^1.2.3 - checksum: 312b7966c5cd2e6837da4073e0e6450191e3c6e8f07276cbed35e170ea5606f91487b435eb3290593f8aed39b1191c44f5340e6e5392650feaf2b34a98378464 + set-function-name: ^2.0.0 + checksum: 1de7d214c0a726c7c874a7023e47b0e27b9f7fdb64175bfe1861189de1704aaeca05c3d26c35aa375432289b99946f3cf86651a92a8f7601b90d8c226a23bcd8 languageName: node linkType: hard @@ -27415,16 +28242,16 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.15.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.3.2, resolve@npm:^1.4.0": - version: 1.22.3 - resolution: "resolve@npm:1.22.3" +"resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.15.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.3.2, resolve@npm:^1.4.0": + version: 1.22.6 + resolution: "resolve@npm:1.22.6" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 5ebd90dc08467e7d9af8f89a67f127c90d77e58d3bfc65da5221699cc15679c5bae5e410e6795ee4b9f717cd711c495a52a3b650ce6720b0626de46e5074e796 + checksum: 967f2eb67c77d1be7ff15676a7dbac9334090cfbf8b967305da5f4bd22fc7d12e7045223dc820bcc783031815b60b7f42f2a495165c320ffb4c7bb92eb2eb2d7 languageName: node linkType: hard @@ -27454,16 +28281,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.13.1#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.15.1#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.3.2#~builtin, resolve@patch:resolve@^1.4.0#~builtin": - version: 1.22.3 - resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.13.1#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.15.1#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.3.2#~builtin, resolve@patch:resolve@^1.4.0#~builtin": + version: 1.22.6 + resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin::version=1.22.6&hash=c3c19d" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 6267bdbbbb1da23975463e979dadf5135fcc40c4b9281c5af4581afa848ced98090ab4e2dbc9085e58f8ea48c0eb7c4fe94b1e8f55ebdd17a725d86982eb5288 + checksum: acedc45a638b3635730669bb65e87bb61f5bf9b4e81982aba9ece0049ff792472a6fbb0c22cc59073cdbf17a0926c1d3d77ba86c88c60e15cc46f929278210cb languageName: node linkType: hard @@ -27499,6 +28326,16 @@ __metadata: languageName: node linkType: hard +"restore-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "restore-cursor@npm:4.0.0" + dependencies: + onetime: ^5.1.0 + signal-exit: ^3.0.2 + checksum: 6f7da8c5e422ac26aa38354870b1afac09963572cf2879443540449068cb43476e9cbccf6f8de3e0171e0d6f7f533c2bc1a0a008003c9a525bbc098e89041318 + languageName: node + linkType: hard + "ret@npm:~0.1.10": version: 0.1.15 resolution: "ret@npm:0.1.15" @@ -27598,9 +28435,9 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.20.1, rollup@npm:^3.21.0, rollup@npm:^3.25.2": - version: 3.26.3 - resolution: "rollup@npm:3.26.3" +"rollup@npm:^3.20.1, rollup@npm:^3.25.2, rollup@npm:^3.27.1": + version: 3.29.4 + resolution: "rollup@npm:3.29.4" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -27608,7 +28445,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 41d02540dcb125150d2dc4a136e35776290eef489ed0735814afcdcfd3e0a8944cd30875daa872360e4fe8bf75bb4adf41090913a32e636722f43a5d2caf241e + checksum: 65eddf84bf389ea8e4d4c1614b1c6a298d08f8ae785c0c087e723a879190c8aaddbab4aa3b8a0524551b9036750c9f8bfea27b377798accfd2ba5084ceff5aaa languageName: node linkType: hard @@ -27643,15 +28480,6 @@ __metadata: languageName: node linkType: hard -"run-applescript@npm:^5.0.0": - version: 5.0.0 - resolution: "run-applescript@npm:5.0.0" - dependencies: - execa: ^5.0.0 - checksum: f9977db5770929f3f0db434b8e6aa266498c70dec913c84320c0a06add510cf44e3a048c44da088abee312006f9cbf572fd065cdc8f15d7682afda8755f4114c - languageName: node - linkType: hard - "run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -27695,22 +28523,15 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.0.0": - version: 1.0.0 - resolution: "safe-array-concat@npm:1.0.0" +"safe-array-concat@npm:^1.0.1": + version: 1.0.1 + resolution: "safe-array-concat@npm:1.0.1" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.2.0 + get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 isarray: ^2.0.5 - checksum: 792d41fde9834583980912cb16bee511ce25e1759d3c467fdbbb3fc3245346a2289a6476d821713aa1ae23cc1d613d17e79c80e55adb29577f6a29e6f45e7f46 - languageName: node - linkType: hard - -"safe-buffer@npm:5.1.1": - version: 5.1.1 - resolution: "safe-buffer@npm:5.1.1" - checksum: 1c233bd105deeba3c9a8911ed4ec24ba45adbb51fec02f7944a10a202c38e3df4ef2b524bdeb55f2e4f8c77c13b2959e2e2e6022e5d99acdd70633b5f7e138cf + checksum: 4b15ce5fce5ce4d7e744a63592cded88d2f27806ed229eadb2e42629cbcd40e770f7478608e75f455e7fe341acd8c0a01bdcd7146b10645ea7411c5e3c1d1dd8 languageName: node linkType: hard @@ -27774,11 +28595,10 @@ __metadata: languageName: node linkType: hard -"sass-loader@npm:13.3.1": - version: 13.3.1 - resolution: "sass-loader@npm:13.3.1" +"sass-loader@npm:13.3.2": + version: 13.3.2 + resolution: "sass-loader@npm:13.3.2" dependencies: - klona: ^2.0.6 neo-async: ^2.6.2 peerDependencies: fibers: ">= 3.1.0" @@ -27795,7 +28615,7 @@ __metadata: optional: true sass-embedded: optional: true - checksum: 68ffb7ad626a27e44b0f68cd549549e75460fa6a5100e0808b89a8b775264b98fdb8e2e1a39b7f97308a94cf87b3d7a1b42acc461cf504e83f36030a07ee95db + checksum: 7db8132101ed663f3cf936ce765b9b960a48b14f13f17d367a4e0c2ae259e91b6c401e33ab0f27ee88c98c8b5893c778848fc8366f1f387ac788ebef244e000a languageName: node linkType: hard @@ -27824,23 +28644,32 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.63.2": - version: 1.63.2 - resolution: "sass@npm:1.63.2" +"sass@npm:1.64.1": + version: 1.64.1 + resolution: "sass@npm:1.64.1" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 22dfb77f2c2707a67adef382a448899a5d0577bfa8f4cd5560ab1f3b0d492bdfee78b753f130bccef3647dfa7be3585c936fbfbfd110ee4f96d3916e937f655e + checksum: 47fc8cd65b24f71ac6f107b250f3f3bf5ea1ba631c70211a8f99716ad25b6f42c2dde3ea606ec2394bc156e3c7136ea4cc2539beff082a3cbee127febc41a20e languageName: node linkType: hard "sax@npm:^1.2.4": - version: 1.2.4 - resolution: "sax@npm:1.2.4" - checksum: 6e9b05ff443ee5e5096ce92d31c0740a20d33002fad714ebcb8fc7a664d9ee159103ebe8f7aef0a1f7c5ecacdd01f177f510dff95611c589399baf76437d3fe3 + version: 1.3.0 + resolution: "sax@npm:1.3.0" + checksum: 599dbe0ba9d8bd55e92d920239b21d101823a6cedff71e542589303fa0fa8f3ece6cf608baca0c51be846a2e88365fac94a9101a9c341d94b98e30c4deea5bea + languageName: node + linkType: hard + +"saxes@npm:^5.0.1": + version: 5.0.1 + resolution: "saxes@npm:5.0.1" + dependencies: + xmlchars: ^2.2.0 + checksum: b7476c41dbe1c3a89907d2546fecfba234de5e66743ef914cde2603f47b19bed09732ab51b528ad0f98b958369d8be72b6f5af5c9cfad69972a73d061f0b3952 languageName: node linkType: hard @@ -27873,7 +28702,7 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.1.2, schema-utils@npm:^3.2.0": +"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" dependencies: @@ -27964,14 +28793,14 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.5.3": - version: 7.5.3 - resolution: "semver@npm:7.5.3" +"semver@npm:7.5.4, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" dependencies: lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: 4cf3bab7e8cf8c2ae521fc4bcc50a4d6912a836360796b23b9f1c26f45d27a73f870e47664df4770bde0dd60dc4d4781a05fd49fe91d72376ea5519b9e791459 + checksum: 5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e languageName: node linkType: hard @@ -27984,17 +28813,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3": - version: 7.5.4 - resolution: "semver@npm:7.5.4" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e - languageName: node - linkType: hard - "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -28025,19 +28843,6 @@ __metadata: languageName: node linkType: hard -"serve-favicon@npm:^2.5.0": - version: 2.5.0 - resolution: "serve-favicon@npm:2.5.0" - dependencies: - etag: ~1.8.1 - fresh: 0.5.2 - ms: 2.1.1 - parseurl: ~1.3.2 - safe-buffer: 5.1.1 - checksum: 7244ced3c46f8dfde591dc801f1e21ebc8fa07c4870cbbaee3ce37104b3aad32858e674e251a8ed4837867ea0dd67cb734b485ae5a7b0895cb6022f8b8c79303 - languageName: node - linkType: hard - "serve-index@npm:^1.9.1": version: 1.9.1 resolution: "serve-index@npm:1.9.1" @@ -28072,6 +28877,17 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 6be7d3e15be47f4db8a5a563a35c60b5e7c4af91cc900e8972ffad33d3aaa227900faa55f60121cdb04b85866a734bb7fe4cd91f654c632861cc86121a48312a + languageName: node + linkType: hard + "set-value@npm:^2.0.0, set-value@npm:^2.0.1": version: 2.0.1 resolution: "set-value@npm:2.0.1" @@ -28191,23 +29007,24 @@ __metadata: linkType: hard "signal-exit@npm:^4.0.1": - version: 4.0.2 - resolution: "signal-exit@npm:4.0.2" - checksum: 3c36ae214f4774b4a7cbbd2d090b2864f8da4dc3f9140ba5b76f38bea7605c7aa8042adf86e48ee8a0955108421873f9b0f20281c61b8a65da4d9c1c1de4929f + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 languageName: node linkType: hard "sigstore@npm:^1.0.0, sigstore@npm:^1.3.0, sigstore@npm:^1.4.0": - version: 1.8.0 - resolution: "sigstore@npm:1.8.0" + version: 1.9.0 + resolution: "sigstore@npm:1.9.0" dependencies: - "@sigstore/bundle": ^1.0.0 + "@sigstore/bundle": ^1.1.0 "@sigstore/protobuf-specs": ^0.2.0 + "@sigstore/sign": ^1.0.0 "@sigstore/tuf": ^1.0.3 make-fetch-happen: ^11.0.1 bin: sigstore: bin/sigstore.js - checksum: 0a01bc0a93cb737794f933387ee182fea1ae087c0588d47b02bef9a06784790b356778b1849b076758dee44e68ddf19aaefc8cea856e649d0aea1a18f5691ab7 + checksum: 64091a95f7a2073ab833bc172aadae0768b84c513a4e3dd3c6f55a1120ea774c293521b7eb6de510dd00562b4351acc2b9295b604c725a9c524fe4f81e4e8203 languageName: node linkType: hard @@ -28264,28 +29081,6 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^3.0.0": - version: 3.0.0 - resolution: "slice-ansi@npm:3.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 88083c9d0ca67d09f8b4c78f68833d69cabbb7236b74df5d741ad572bbf022deaf243fa54009cd434350622a1174ab267710fcc80a214ecc7689797fe00cb27c - languageName: node - linkType: hard - -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 6c25678db1270d4793e0327620f1e0f9f5bea4630123f51e9e399191bc52c87d6e6de53ed33538609e5eacbd1fab769fae00f3705d08d029f02102a540648918 - languageName: node - linkType: hard - "slice-ansi@npm:^5.0.0": version: 5.0.0 resolution: "slice-ansi@npm:5.0.0" @@ -28594,9 +29389,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.13 - resolution: "spdx-license-ids@npm:3.0.13" - checksum: a5cb77ea7be86d574c8876970920e34d9b37f2fb6e361e6b732b61267afbc63dd37831160b731f85c1478f5ba95ae00369742555920e3c694f047f7068d33318 + version: 3.0.15 + resolution: "spdx-license-ids@npm:3.0.15" + checksum: 1d44fa43d2024d4533816ceffac983149f9c76214698033496e13f6224d7fe6e61649a2bb9eb6c88b5f7f71bc19cc5f0aed3dba75b430e27c06e0f71cc251959 languageName: node linkType: hard @@ -28671,9 +29466,9 @@ __metadata: linkType: hard "sprintf-js@npm:^1.1.1": - version: 1.1.2 - resolution: "sprintf-js@npm:1.1.2" - checksum: 6cc8382f746348bd64b31bc5c99d8ebda7efff716025c41bf501e0e8be4f6744a9fa507e18513554753553d0bcb57fd5fc8dc8c42f94f8008127a52a2c544d21 + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec languageName: node linkType: hard @@ -28701,11 +29496,11 @@ __metadata: linkType: hard "ssri@npm:^10.0.0, ssri@npm:^10.0.1": - version: 10.0.4 - resolution: "ssri@npm:10.0.4" + version: 10.0.5 + resolution: "ssri@npm:10.0.5" dependencies: - minipass: ^5.0.0 - checksum: d085474ea6b439623a9a6a2c67570cb9e68e1bb6060e46e4d387f113304d75a51946d57c524be3a90ebfa3c73026edf76eb1a2d79a7f6cff0b04f21d99f127ab + minipass: ^7.0.3 + checksum: b091f2ae92474183c7ac5ed3f9811457e1df23df7a7e70c9476eaa9a0c4a0c8fc190fb45acefbf023ca9ee864dd6754237a697dc52a0fb182afe65d8e77443d8 languageName: node linkType: hard @@ -28828,7 +29623,7 @@ __metadata: languageName: node linkType: hard -"string-argv@npm:^0.3.1": +"string-argv@npm:0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" checksum: 75c02a83759ad1722e040b86823909d9a2fc75d15dd71ec4b537c3560746e33b5f5a07f7332d1e3f88319909f82190843aa2f0a0d8c8d591ec08e93d5b8dec82 @@ -28896,51 +29691,52 @@ __metadata: linkType: hard "string.prototype.matchall@npm:^4.0.8": - version: 4.0.8 - resolution: "string.prototype.matchall@npm:4.0.8" + version: 4.0.10 + resolution: "string.prototype.matchall@npm:4.0.10" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.3 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 - internal-slot: ^1.0.3 - regexp.prototype.flags: ^1.4.3 + internal-slot: ^1.0.5 + regexp.prototype.flags: ^1.5.0 + set-function-name: ^2.0.0 side-channel: ^1.0.4 - checksum: 644523d05c1ee93bab7474e999a5734ee5f6ad2d7ad24ed6ea8706c270dc92b352bde0f2a5420bfbeed54e28cb6a770c3800e1988a5267a70fd5e677c7750abc + checksum: cd7495fb0de16d43efeee3887b98701941f3817bd5f09351ad1825b023d307720c86394d56d56380563d97767ab25bf5448db239fcecbb85c28e2180f23e324a languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.1, string.prototype.trim@npm:^1.2.7": - version: 1.2.7 - resolution: "string.prototype.trim@npm:1.2.7" +"string.prototype.trim@npm:^1.2.1, string.prototype.trim@npm:^1.2.8": + version: 1.2.8 + resolution: "string.prototype.trim@npm:1.2.8" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 31698f6d718794e422db6fcfa6685dcd9243097273b3b2a8b7948b5d45a183cd336378893ff0d4a7b2531b604c32bb5c45193dd6da3d2f5504df5cd222372c09 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 4f76c583908bcde9a71208ddff38f67f24c9ec8093631601666a0df8b52fad44dad2368c78895ce83eb2ae8e7068294cc96a02fc971ab234e4d5c9bb61ea4e34 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimend@npm:1.0.6" +"string.prototype.trimend@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimend@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 51b663e3195a74b58620a250b3fc4efb58951000f6e7d572a9f671c038f2f37f24a2b8c6994500a882aeab2f1c383fac1e8c023c01eb0c8b4e52d2f13b6c4513 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 53c24911c7c4d8d65f5ef5322de23a3d5b6b4db73273e05871d5ab4571ae5638f38f7f19d71d09116578fb060e5a145cc6a208af2d248c8baf7a34f44d32ce57 languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimstart@npm:1.0.6" +"string.prototype.trimstart@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimstart@npm:1.0.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 13b9970d4e234002dfc8069c655c1fe19e83e10ced208b54858c41bb0f7544e581ac0ce746e92b279563664ad63910039f7253f36942113fec413b2b4e7c1fcd + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 0bcf391b41ea16d4fda9c9953d0a7075171fe090d33b4cf64849af94944c50862995672ac03e0c5dba2940a213ad7f53515a668dac859ce22a0276289ae5cf4f languageName: node linkType: hard @@ -29050,6 +29846,15 @@ __metadata: languageName: node linkType: hard +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" + dependencies: + min-indent: ^1.0.1 + checksum: 6b1fb4e22056867f5c9e7a6f3f45922d9a2436cac758607d58aeaac0d3b16ec40b1c43317de7900f1b8dd7a4107352fa47fb960f2c23566538c51e8585c8870e + languageName: node + linkType: hard + "strip-json-comments@npm:^2.0.0": version: 2.0.1 resolution: "strip-json-comments@npm:2.0.1" @@ -29169,7 +29974,7 @@ __metadata: languageName: node linkType: hard -"svelte-check@npm:^3.4.3": +"svelte-check@npm:3.4.6": version: 3.4.6 resolution: "svelte-check@npm:3.4.6" dependencies: @@ -29205,12 +30010,12 @@ __metadata: languageName: node linkType: hard -"svelte-hmr@npm:^0.15.2": - version: 0.15.2 - resolution: "svelte-hmr@npm:0.15.2" +"svelte-hmr@npm:^0.15.3": + version: 0.15.3 + resolution: "svelte-hmr@npm:0.15.3" peerDependencies: - svelte: ^3.19.0 || ^4.0.0-next.0 - checksum: 933b06dcd6f926d2fc7d69505708f5e33b4acadc1689614d1f7f2cd50e2b315b6fa2cecf17ab46b97d16f2a6e4ebe461998c80bb2d0d9cac00e6b19846b2c61e + svelte: ^3.19.0 || ^4.0.0 + checksum: 80b6df78e4bc1dd8d1beb4cfc5c341a7839a444b41320cb1ff56c19741346ecc07ee7cc989d7083b02c40bad80d989d52b0defac4126cd0013eaac378f626d63 languageName: node linkType: hard @@ -29274,8 +30079,8 @@ __metadata: linkType: hard "svelte@npm:^4.0.0": - version: 4.1.1 - resolution: "svelte@npm:4.1.1" + version: 4.2.1 + resolution: "svelte@npm:4.2.1" dependencies: "@ampproject/remapping": ^2.2.1 "@jridgewell/sourcemap-codec": ^1.4.15 @@ -29290,7 +30095,7 @@ __metadata: locate-character: ^3.0.0 magic-string: ^0.30.0 periscopic: ^3.1.0 - checksum: ba5a5c8d9d6a6c8fb6d664695f02f6373489bf3bc7b83b4fd7bf22edde09015cbd41da204d534f4523594fd440fa4eaee6ff864bed1edef2900bae5f353238b2 + checksum: 5262dfceb99809a7ed01addc684351ac297dc2967b49dc99563af646c113c33a1535fe6ea5b9af4c6986880b6803ac0ca4fecb15a65bb18b641929c400d5dead languageName: node linkType: hard @@ -29356,16 +30161,6 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.8.5": - version: 0.8.5 - resolution: "synckit@npm:0.8.5" - dependencies: - "@pkgr/utils": ^2.3.1 - tslib: ^2.5.0 - checksum: 9827f828cabc404b3a147c38f824c8d5b846eb6f65189d965aa0b71ea8ecda5048f8f50b4bdfd8813148844175233cff56c6bc8d87a7118cf10707df870519f4 - languageName: node - linkType: hard - "tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -29413,8 +30208,8 @@ __metadata: linkType: hard "tar@npm:^6.1.11, tar@npm:^6.1.13, tar@npm:^6.1.2": - version: 6.1.15 - resolution: "tar@npm:6.1.15" + version: 6.2.0 + resolution: "tar@npm:6.2.0" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 @@ -29422,7 +30217,7 @@ __metadata: minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: bb2babe7b14442f690d83c2b2c571c9dd0bf802314773e05f4a3e4a241fdecd7fb560b8e4e7d6ea34533c8cd692e1b8418a3b8ba3b9687fe78a683dfbad7f82d + checksum: 02ca064a1a6b4521fef88c07d389ac0936730091f8c02d30ea60d472e0378768e870769ab9e986d87807bfee5654359cf29ff4372746cc65e30cbddc352660d8 languageName: node linkType: hard @@ -29519,9 +30314,9 @@ __metadata: languageName: node linkType: hard -"terser@npm:5.17.7": - version: 5.17.7 - resolution: "terser@npm:5.17.7" +"terser@npm:5.19.2": + version: 5.19.2 + resolution: "terser@npm:5.19.2" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.8.2 @@ -29529,13 +30324,13 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 864154a1750daf516012e5add4f0749bfc71e8f4f918973ec3d504db6a148be976adf46ae490e795173eeff59ec579d7d464bb6354c1bb71f8e14ff398409aed + checksum: 95817b86619af33d8d143d7ae02dfcd9ac2cf4ea5b5cb7b208aaccff4cdc5594893960a4c3dcdac09863ebd43e2835ab173997041790aa77092c1d31ff40c95a languageName: node linkType: hard "terser@npm:^5.10.0, terser@npm:^5.16.8": - version: 5.19.2 - resolution: "terser@npm:5.19.2" + version: 5.21.0 + resolution: "terser@npm:5.21.0" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.8.2 @@ -29543,7 +30338,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 95817b86619af33d8d143d7ae02dfcd9ac2cf4ea5b5cb7b208aaccff4cdc5594893960a4c3dcdac09863ebd43e2835ab173997041790aa77092c1d31ff40c95a + checksum: f14ee816b668e014a2a37f4d00c2d9038374be56f0a141d4eb386b316c5645f49bb038a6b78f75353e9745d622dc66a1d6368aea5b08d46489b57dbf195f761c languageName: node linkType: hard @@ -29635,13 +30430,6 @@ __metadata: languageName: node linkType: hard -"titleize@npm:^3.0.0": - version: 3.0.0 - resolution: "titleize@npm:3.0.0" - checksum: 5ae6084ba299b5782f95e3fe85ea9f0fa4d74b8ae722b6b3208157e975589fbb27733aeba4e5080fa9314a856044ef52caa61b87caea4b1baade951a55c06336 - languageName: node - linkType: hard - "tmp@npm:0.0.28": version: 0.0.28 resolution: "tmp@npm:0.0.28" @@ -29734,9 +30522,9 @@ __metadata: linkType: hard "tocbot@npm:^4.20.1": - version: 4.21.0 - resolution: "tocbot@npm:4.21.0" - checksum: 877d99df40c07ec5e5c2259b820be9c8af9a9f52d582a61b7bed3d43daff820f23031bc613a5cc3bb14ecc34b79c1a45349dcbae8f3a79de7ecc127f366ed3c6 + version: 4.21.1 + resolution: "tocbot@npm:4.21.1" + checksum: 9a3efd1e7555281872102d54bc8c683b030d341bb2d94b5e6b0fd9dea7545648ae20d5fc887c3943e073471276ad330e720b08a622cf0bf758ee668bc860f5b5 languageName: node linkType: hard @@ -29761,7 +30549,7 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.2": +"tough-cookie@npm:^4.0.0, tough-cookie@npm:^4.1.2": version: 4.1.3 resolution: "tough-cookie@npm:4.1.3" dependencies: @@ -29773,6 +30561,15 @@ __metadata: languageName: node linkType: hard +"tr46@npm:^2.1.0": + version: 2.1.0 + resolution: "tr46@npm:2.1.0" + dependencies: + punycode: ^2.1.1 + checksum: 397f5c39d97c5fe29fa9bab73b03853be18ad2738b2c66ee5ce84ecb36b091bdaec493f9b3cee711d45f7678f342452600843264cc8242b591c8dc983146a6c4 + languageName: node + linkType: hard + "tr46@npm:^3.0.0": version: 3.0.0 resolution: "tr46@npm:3.0.0" @@ -29990,7 +30787,7 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.1": +"tsconfig-paths@npm:^3.14.2": version: 3.14.2 resolution: "tsconfig-paths@npm:3.14.2" dependencies: @@ -30025,10 +30822,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.5.3": - version: 2.5.3 - resolution: "tslib@npm:2.5.3" - checksum: 4cb1817d34fae5b27d146e6c4a468d4155097d95c1335d0bc9690f11f33e63844806bf4ed6d97c30c72b8d85261b66cbbe16d871d9c594ac05701ec83e62a607 +"tslib@npm:2.6.1": + version: 2.6.1 + resolution: "tslib@npm:2.6.1" + checksum: a0382d386f5f1d6e3a39ab22bc56d1e08493da99ab3daf550e63bae6c08fdd6dd4fd20623ef387cad8262ce3fede98439257054fc025f2103cd4603b4509a052 languageName: node linkType: hard @@ -30039,10 +30836,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0": - version: 2.6.1 - resolution: "tslib@npm:2.6.1" - checksum: a0382d386f5f1d6e3a39ab22bc56d1e08493da99ab3daf550e63bae6c08fdd6dd4fd20623ef387cad8262ce3fede98439257054fc025f2103cd4603b4509a052 +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb languageName: node linkType: hard @@ -30162,6 +30959,13 @@ __metadata: languageName: node linkType: hard +"typed-styles@npm:^0.0.7": + version: 0.0.7 + resolution: "typed-styles@npm:0.0.7" + checksum: ec159f0e538364750cf9b8f19136375df64ad364fda355e6f7a7216ebffc67f18b436722c5c6853c89f70e6507eb69e5061ceb9334fa1f54902c0f6be1b985fe + languageName: node + linkType: hard + "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -30190,12 +30994,12 @@ __metadata: linkType: hard "typescript@npm:^5.0.3, typescript@npm:^5.0.4": - version: 5.1.6 - resolution: "typescript@npm:5.1.6" + version: 5.2.2 + resolution: "typescript@npm:5.2.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 45ac28e2df8365fd28dac42f5d62edfe69a7203d5ec646732cadc04065331f34f9078f81f150fde42ed9754eed6fa3b06a8f3523c40b821e557b727f1992e025 + checksum: 91ae3e6193d0ddb8656d4c418a033f0f75dec5e077ebbc2bd6d76439b93f35683936ee1bdc0e9cf94ec76863aa49f27159b5788219b50e1cd0cd6d110aa34b07 languageName: node linkType: hard @@ -30220,12 +31024,12 @@ __metadata: linkType: hard "typescript@patch:typescript@^5.0.3#~builtin, typescript@patch:typescript@^5.0.4#~builtin": - version: 5.1.6 - resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=77c9e2" + version: 5.2.2 + resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=77c9e2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: c134abcd9fc5c393db30498db18d8e89453efae14e11a39c1adb6238138d4c152472e497499b8a67b0c87ca6eafcb26b0eb02f962f240c233c2e0ad3785f8742 + checksum: 303979762f9b8932c53f8149e866521a1265168b5c0fde8cc8ad83ac3d0e8ede8096cb02dff5f2de048e7f118a6f61902f81da12d5972c7fb582f09f2f18d169 languageName: node linkType: hard @@ -30631,14 +31435,14 @@ __metadata: linkType: hard "unplugin@npm:^1.3.1": - version: 1.4.0 - resolution: "unplugin@npm:1.4.0" + version: 1.5.0 + resolution: "unplugin@npm:1.5.0" dependencies: - acorn: ^8.9.0 + acorn: ^8.10.0 chokidar: ^3.5.3 webpack-sources: ^3.2.3 webpack-virtual-modules: ^0.5.0 - checksum: d006fe3ddfcd6578e36f2951f6a21419af2ba8812bc16681876a725a0981b339c920e6afb2cd222d74ca5943e0aa41260cff8fb3528dae12e66419369ae616fc + checksum: 2f79a7bf6b428a6aac80bf21852ed83cafead0ae3ed8866db1dca1cd4489f3b50c95874275e9a9b0f10c2e3c4892bfe0431c70d13635775c4c620a6a3f9eae37 languageName: node linkType: hard @@ -30666,9 +31470,9 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.11": - version: 1.0.11 - resolution: "update-browserslist-db@npm:1.0.11" +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" dependencies: escalade: ^3.1.1 picocolors: ^1.0.0 @@ -30676,7 +31480,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 280d5cf92e302d8de0c12ef840a6af26ec024a5158aa2020975cd01bf0ded09c709793a6f421e6d0f1a47557d6a1a10dc43af80f9c30b8fd0df9691eb98c1c69 + checksum: e52b8b521c78ce1e0c775f356cd16a9c22c70d25f3e01180839c407a5dc787fb05a13f67560cbaf316770d26fa99f78f1acd711b1b54a4f35d4820d4ea7136e6 languageName: node linkType: hard @@ -30714,12 +31518,24 @@ __metadata: linkType: hard "url@npm:^0.11.0": - version: 0.11.1 - resolution: "url@npm:0.11.1" + version: 0.11.3 + resolution: "url@npm:0.11.3" dependencies: punycode: ^1.4.1 - qs: ^6.11.0 - checksum: 9e18c57b854d6a8e0288c4ddf21f9e30273a0ef2efb28a7e3e3d6eac392637dbdecce0d8f616586d58ff43154997150ecc2c9873e6c845d1e742e24c940b6e12 + qs: ^6.11.2 + checksum: 7546b878ee7927cfc62ca21dbe2dc395cf70e889c3488b2815bf2c63355cb3c7db555128176a01b0af6cccf265667b6fd0b4806de00cb71c143c53986c08c602 + languageName: node + linkType: hard + +"urql@npm:^4.0.3": + version: 4.0.5 + resolution: "urql@npm:4.0.5" + dependencies: + "@urql/core": ^4.1.0 + wonka: ^6.3.2 + peerDependencies: + react: ">= 16.8.0" + checksum: 9560d04b3c2fe72c921bdb21e969039b776e07999704d23bce35f815eb537c9357b6c7322a1b8cd43957550798c30cd15f5130ddd054dfd8a890d17d2be85282 languageName: node linkType: hard @@ -30831,7 +31647,7 @@ __metadata: languageName: node linkType: hard -"util@npm:^0.12.0, util@npm:^0.12.4": +"util@npm:^0.12.4, util@npm:^0.12.5": version: 0.12.5 resolution: "util@npm:0.12.5" dependencies: @@ -30867,12 +31683,21 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^3.3.3": + version: 3.4.0 + resolution: "uuid@npm:3.4.0" + bin: + uuid: ./bin/uuid + checksum: 1c13950df865c4f506ebfe0a24023571fa80edf2e62364297a537c80af09c618299797bbf2dbac6b1f8ae5ad182ba474b89db61e0e85839683991f7e08795347 + languageName: node + linkType: hard + "uuid@npm:^9.0.0": - version: 9.0.0 - resolution: "uuid@npm:9.0.0" + version: 9.0.1 + resolution: "uuid@npm:9.0.1" bin: uuid: dist/bin/uuid - checksum: 8867e438990d1d33ac61093e2e4e3477a2148b844e4fa9e3c2360fa4399292429c4b6ec64537eb1659c97b2d10db349c673ad58b50e2824a11e0d3630de3c056 + checksum: 1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b languageName: node linkType: hard @@ -30905,13 +31730,13 @@ __metadata: linkType: hard "v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.0.1": - version: 9.1.0 - resolution: "v8-to-istanbul@npm:9.1.0" + version: 9.1.2 + resolution: "v8-to-istanbul@npm:9.1.2" dependencies: "@jridgewell/trace-mapping": ^0.3.12 "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - checksum: 657ef7c52a514c1a0769663f96dd6f2cd11d2d3f6c8272d1035f4a543dca0b52c84b005beb7f0ca215eb98425c8bc4aa92a62826b1fc76abc1f7228d33ccbc60 + convert-source-map: ^2.0.0 + checksum: ceed817914e1ddbe88cbeaae37aff82effbbf67846810f24c551315dade629e65f65d8cd853ce0982eb30c8865eeeed2e0d3935e3b227cbcefb2c1607de04e82 languageName: node linkType: hard @@ -31039,23 +31864,24 @@ __metadata: linkType: hard "vite-plugin-turbosnap@npm:^1.0.1": - version: 1.0.2 - resolution: "vite-plugin-turbosnap@npm:1.0.2" - checksum: baa823428ce62ac935597386a85bb525ec4334f0945aa667aeb011cc1bf23fe52865ec7f3e1bd30a02bb175ef2223a76387862ff20acef1ff2affb6bf3d71553 + version: 1.0.3 + resolution: "vite-plugin-turbosnap@npm:1.0.3" + checksum: fd4a283708e24b54442b5db05461f8302bc57094234fd5b0dae1a6f76bb79078c68a729e516f352d04b89fea7c459f8272921f788bd3cd20d1488c7e73d7238e languageName: node linkType: hard -"vite@npm:4.3.9": - version: 4.3.9 - resolution: "vite@npm:4.3.9" +"vite@npm:4.4.7": + version: 4.4.7 + resolution: "vite@npm:4.4.7" dependencies: - esbuild: ^0.17.5 + esbuild: ^0.18.10 fsevents: ~2.3.2 - postcss: ^8.4.23 - rollup: ^3.21.0 + postcss: ^8.4.26 + rollup: ^3.25.2 peerDependencies: "@types/node": ">= 14" less: "*" + lightningcss: ^1.21.0 sass: "*" stylus: "*" sugarss: "*" @@ -31068,6 +31894,8 @@ __metadata: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -31078,18 +31906,18 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 9eb1c99f16992e1b29e3eea76df312983f2e59915c369fede0f1e6716b80827857f88cfc75092aac807d20c73033c65be82a315a14ab312a52d22a9bdad1ca82 + checksum: f0cd995ffd6d0311af98fa28a5ed8502c29d3aa4b3a12c812030e688f327ec17a95db0994e569bfddd6cfa602608b6892fc18d2944cbc1150d75c1ab3299bc5c languageName: node linkType: hard "vite@npm:^4.0.0, vite@npm:^4.0.4": - version: 4.4.7 - resolution: "vite@npm:4.4.7" + version: 4.4.10 + resolution: "vite@npm:4.4.10" dependencies: esbuild: ^0.18.10 fsevents: ~2.3.2 - postcss: ^8.4.26 - rollup: ^3.25.2 + postcss: ^8.4.27 + rollup: ^3.27.1 peerDependencies: "@types/node": ">= 14" less: "*" @@ -31118,7 +31946,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: f0cd995ffd6d0311af98fa28a5ed8502c29d3aa4b3a12c812030e688f327ec17a95db0994e569bfddd6cfa602608b6892fc18d2944cbc1150d75c1ab3299bc5c + checksum: d1359f147eb84aad9922460848184f14295e76f335ab03f90a585886ff070e1a7c74996022b3bb07da0a3130c9829565b5556e6eb1d0db12a8aad26f3694d445 languageName: node linkType: hard @@ -31162,16 +31990,16 @@ __metadata: linkType: hard "vscode-languageserver-textdocument@npm:^1.0.3": - version: 1.0.10 - resolution: "vscode-languageserver-textdocument@npm:1.0.10" - checksum: 0f4e82c262eaea2ed84e004c751453ac900a669763287dee92f9b631804a6ef1dabd62880185fa4d9a063f27d46e65c5251f7f0c8329aee5e3b3db6b6dfa2109 + version: 1.0.11 + resolution: "vscode-languageserver-textdocument@npm:1.0.11" + checksum: 1996a38e24571e05aa21dd4f46e0a6849e22301c9a66996762e77d9c6df3622de0bd31cd5742a0c0c47fb9dfd00b310ad08c44d08241873ea571edacd5238da6 languageName: node linkType: hard "vscode-languageserver-types@npm:^3.16.0": - version: 3.17.3 - resolution: "vscode-languageserver-types@npm:3.17.3" - checksum: a70d4ac0dbc08ba425b97e329e6a5696dabc6a264415bacb861e10d859b224f1b46d1fb41c17b6fdd31b32749d3bdfc819cb1b8a57dbe0d1e70e661ba8cfa397 + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 1e1260de79a2cc8de3e46f2e0182cdc94a7eddab487db5a3bd4ee716f67728e685852707d72c059721ce500447be9a46764a04f0611e94e4321ffa088eef36f8 languageName: node linkType: hard @@ -31199,15 +32027,15 @@ __metadata: linkType: hard "vue-component-type-helpers@npm:latest": - version: 1.8.6 - resolution: "vue-component-type-helpers@npm:1.8.6" - checksum: e2efe26d879c4f96eb01a9e6fb8764a3eeaba96d2e5ffcc64a7708d280c28b85369e72d99a610536c40f73a4caa9ea3e96647fe246cf0c1a4ad89c50bf5b5e7b + version: 1.8.15 + resolution: "vue-component-type-helpers@npm:1.8.15" + checksum: 3397faf50844e31d92a29a44616088408cf6eb8b6c88b7deb8841c4bc78e8e258fafbb7052b100e52ebea5d1c4e826b7247b2c48f6f3c330addd53132db141f9 languageName: node linkType: hard "vue-docgen-api@npm:^4.40.0, vue-docgen-api@npm:^4.44.23, vue-docgen-api@npm:^4.46.0": - version: 4.73.1 - resolution: "vue-docgen-api@npm:4.73.1" + version: 4.74.2 + resolution: "vue-docgen-api@npm:4.74.2" dependencies: "@babel/parser": ^7.21.4 "@babel/types": ^7.21.4 @@ -31220,7 +32048,9 @@ __metadata: recast: ^0.23.1 ts-map: ^1.0.3 vue-inbrowser-compiler-independent-utils: ^4.69.0 - checksum: 6ea8e8a4fbc793b79610b8b9a02e0bfae4ff17dc7e6831dbd616e8974b9315cf0497c47fcf4c0ba73d5ca5002232b628b71bba5e15bfd26e878020838de7dcf9 + peerDependencies: + vue: ">=2" + checksum: 9985c3910a40090796cd7f9ca9642134a2001e2afe5dcd6527c559f4e4e912abd45f3559d16801224ba5758551c64b7da61a8300b3a54618f1b8f7da319539cd languageName: node linkType: hard @@ -31282,8 +32112,8 @@ __metadata: linkType: hard "vue-loader@npm:^15.7.0": - version: 15.10.1 - resolution: "vue-loader@npm:15.10.1" + version: 15.10.2 + resolution: "vue-loader@npm:15.10.2" dependencies: "@vue/component-compiler-utils": ^3.1.0 hash-sum: ^1.0.2 @@ -31296,9 +32126,11 @@ __metadata: peerDependenciesMeta: cache-loader: optional: true + prettier: + optional: true vue-template-compiler: optional: true - checksum: 8754b3b1363ce83c9246c3576a0b7693d72bb557f5a7ab88f725c15d3590401609266bbab2882dccb6ad62a5cd19d0fdbf7aefeb3df955a8ef05e02543e5e1af + checksum: 1c147ccfd08e047c6a71032c5a11eed6d7e24c7e6ddf5061aa8d234f9cde454b7ba45fd1251c5fd99d1a3f7fb7584f8e605ae4c95ec1c6a6307598c044b05e48 languageName: node linkType: hard @@ -31352,17 +32184,17 @@ __metadata: linkType: hard "vue-tsc@npm:latest": - version: 1.8.6 - resolution: "vue-tsc@npm:1.8.6" + version: 1.8.15 + resolution: "vue-tsc@npm:1.8.15" dependencies: - "@vue/language-core": 1.8.6 - "@vue/typescript": 1.8.6 + "@vue/language-core": 1.8.15 + "@vue/typescript": 1.8.15 semver: ^7.3.8 peerDependencies: typescript: "*" bin: vue-tsc: bin/vue-tsc.js - checksum: 8a4fa9fc34446f064f09d4222c9b626682278ca79155428b6a0a07eaeafb7091bc0f9f406830331cb86fb95ed86c71c889f77c608d1aad1762836105ed8a05ff + checksum: 18092627141afcef9515701ea85beae564bc31258358d3b0eb7a3ae5167559ac56d8e218a0490661bae91a4f496d1351f9431074820473206dda9d0c50998216 languageName: node linkType: hard @@ -31407,6 +32239,24 @@ __metadata: languageName: node linkType: hard +"w3c-hr-time@npm:^1.0.2": + version: 1.0.2 + resolution: "w3c-hr-time@npm:1.0.2" + dependencies: + browser-process-hrtime: ^1.0.0 + checksum: 7795b61fb51ce222414891eef8e6cb13240b62f64351b4474f99c84de2bc37d37dd0efa193f37391e9737097b881a111d1e003e3d7a9583693f8d5a858b02627 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^2.0.0": + version: 2.0.0 + resolution: "w3c-xmlserializer@npm:2.0.0" + dependencies: + xml-name-validator: ^3.0.0 + checksum: 92b8af34766f5bb8f37c505bc459ee1791b30af778d3a86551f7dd3b1716f79cb98c71d65d03f2bf6eba6b09861868eaf2be7e233b9202b26a9df7595f2bd290 + languageName: node + linkType: hard + "w3c-xmlserializer@npm:^4.0.0": version: 4.0.0 resolution: "w3c-xmlserializer@npm:4.0.0" @@ -31480,7 +32330,7 @@ __metadata: languageName: node linkType: hard -"warning@npm:^4.0.2": +"warning@npm:^4.0.2, warning@npm:^4.0.3": version: 4.0.3 resolution: "warning@npm:4.0.3" dependencies: @@ -31546,6 +32396,20 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^5.0.0": + version: 5.0.0 + resolution: "webidl-conversions@npm:5.0.0" + checksum: bf31df332ed11e1114bfcae7712d9ab2c37e7faa60ba32d8fdbee785937c0b012eee235c19d2b5d84f5072db84a160e8d08dd382da7f850feec26a4f46add8ff + languageName: node + linkType: hard + +"webidl-conversions@npm:^6.1.0": + version: 6.1.0 + resolution: "webidl-conversions@npm:6.1.0" + checksum: 66ad3b9073cd1e0e173444d8c636673b016e25b5856694429072cc966229adb734a8d410188e031effadcfb837936d79bc9e87c48f4d5925a90d42dec97f6590 + languageName: node + linkType: hard + "webidl-conversions@npm:^7.0.0": version: 7.0.0 resolution: "webidl-conversions@npm:7.0.0" @@ -31586,9 +32450,9 @@ __metadata: languageName: node linkType: hard -"webpack-dev-server@npm:4.15.0": - version: 4.15.0 - resolution: "webpack-dev-server@npm:4.15.0" +"webpack-dev-server@npm:4.15.1": + version: 4.15.1 + resolution: "webpack-dev-server@npm:4.15.1" dependencies: "@types/bonjour": ^3.5.9 "@types/connect-history-api-fallback": ^1.3.5 @@ -31596,7 +32460,7 @@ __metadata: "@types/serve-index": ^1.9.1 "@types/serve-static": ^1.13.10 "@types/sockjs": ^0.3.33 - "@types/ws": ^8.5.1 + "@types/ws": ^8.5.5 ansi-html-community: ^0.0.8 bonjour-service: ^1.0.11 chokidar: ^3.5.3 @@ -31629,7 +32493,7 @@ __metadata: optional: true bin: webpack-dev-server: bin/webpack-dev-server.js - checksum: 7e4555b687071f2f4c6d7ff0faa1c7fc155bc35983c703b6fd250f3fb3e387a18394e0bd43ce0ede9bb433efe0947bc05ad55996b3ac5669a8adb64d6c1abba0 + checksum: 2cf3edf556dcafdfc938e0adeac3dadf97fb959ed66b88bdd70acdb0b77b0f25be5e2d4b30cca2da8732548451418cadf00eb09e751e7674ff914fd9ab646b26 languageName: node linkType: hard @@ -31693,7 +32557,7 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5, webpack@npm:^5, webpack@npm:^5.65.0": +"webpack@npm:5, webpack@npm:5.88.2, webpack@npm:^5, webpack@npm:^5.65.0": version: 5.88.2 resolution: "webpack@npm:5.88.2" dependencies: @@ -31730,43 +32594,6 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.86.0": - version: 5.86.0 - resolution: "webpack@npm:5.86.0" - dependencies: - "@types/eslint-scope": ^3.7.3 - "@types/estree": ^1.0.0 - "@webassemblyjs/ast": ^1.11.5 - "@webassemblyjs/wasm-edit": ^1.11.5 - "@webassemblyjs/wasm-parser": ^1.11.5 - acorn: ^8.7.1 - acorn-import-assertions: ^1.9.0 - browserslist: ^4.14.5 - chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.14.1 - es-module-lexer: ^1.2.1 - eslint-scope: 5.1.1 - events: ^3.2.0 - glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.9 - json-parse-even-better-errors: ^2.3.1 - loader-runner: ^4.2.0 - mime-types: ^2.1.27 - neo-async: ^2.6.2 - schema-utils: ^3.1.2 - tapable: ^2.1.1 - terser-webpack-plugin: ^5.3.7 - watchpack: ^2.4.0 - webpack-sources: ^3.2.3 - peerDependenciesMeta: - webpack-cli: - optional: true - bin: - webpack: bin/webpack.js - checksum: 138cd2f9d6ddd028ce7deec8958e9bc6092471c6514a3429a2383dcf9a33b4060b05de1337c461f1d3038b066f62198e5e820497f8f618441ec63108c83b8711 - languageName: node - linkType: hard - "websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": version: 0.7.4 resolution: "websocket-driver@npm:0.7.4" @@ -31785,6 +32612,15 @@ __metadata: languageName: node linkType: hard +"whatwg-encoding@npm:^1.0.5": + version: 1.0.5 + resolution: "whatwg-encoding@npm:1.0.5" + dependencies: + iconv-lite: 0.4.24 + checksum: 79d9f276234fd06bb27de4c1f9137a0471bfa578efaec0474ab46b6d64bf30bb14492e6f88eff0e6794bdd6fa48b44f4d7a2e9c41424a837a63bba9626e35c62 + languageName: node + linkType: hard + "whatwg-encoding@npm:^2.0.0": version: 2.0.0 resolution: "whatwg-encoding@npm:2.0.0" @@ -31794,6 +32630,13 @@ __metadata: languageName: node linkType: hard +"whatwg-mimetype@npm:^2.3.0": + version: 2.3.0 + resolution: "whatwg-mimetype@npm:2.3.0" + checksum: 81c5eaf660b1d1c27575406bcfdf58557b599e302211e13e3c8209020bbac903e73c17f9990f887232b39ce570cc8638331b0c3ff0842ba224a5c2925e830b06 + languageName: node + linkType: hard + "whatwg-mimetype@npm:^3.0.0": version: 3.0.0 resolution: "whatwg-mimetype@npm:3.0.0" @@ -31821,6 +32664,17 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": + version: 8.7.0 + resolution: "whatwg-url@npm:8.7.0" + dependencies: + lodash: ^4.7.0 + tr46: ^2.1.0 + webidl-conversions: ^6.1.0 + checksum: de0bc94387dba586b278e701cf5a1c1f5002725d22b8564dbca2cab1966ef24b839018e57ae2423fb514d8a2dd3aa3bf97323e2f89b55cd89e79141e432e9df1 + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -31834,6 +32688,26 @@ __metadata: languageName: node linkType: hard +"which-builtin-type@npm:^1.1.3": + version: 1.1.3 + resolution: "which-builtin-type@npm:1.1.3" + dependencies: + function.prototype.name: ^1.1.5 + has-tostringtag: ^1.0.0 + is-async-function: ^2.0.0 + is-date-object: ^1.0.5 + is-finalizationregistry: ^1.0.2 + is-generator-function: ^1.0.10 + is-regex: ^1.1.4 + is-weakref: ^1.0.2 + isarray: ^2.0.5 + which-boxed-primitive: ^1.0.2 + which-collection: ^1.0.1 + which-typed-array: ^1.1.9 + checksum: 2b7b234df3443b52f4fbd2b65b731804de8d30bcc4210ec84107ef377a81923cea7f2763b7fb78b394175cea59118bf3c41b9ffd2d643cb1d748ef93b33b6bd4 + languageName: node + linkType: hard + "which-collection@npm:^1.0.1": version: 1.0.1 resolution: "which-collection@npm:1.0.1" @@ -31860,7 +32734,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": version: 1.1.11 resolution: "which-typed-array@npm:1.1.11" dependencies: @@ -31952,6 +32826,13 @@ __metadata: languageName: node linkType: hard +"wonka@npm:^6.3.2": + version: 6.3.4 + resolution: "wonka@npm:6.3.4" + checksum: 77329eea673da07717476e1b8f1a22f1e1a4f261bb9a58fa446c03d3da13dbd5b254664f8aded5928d953f33ee5b399a17a4f70336e8b236e478209c0e78cda4 + languageName: node + linkType: hard + "wordwrap@npm:^1.0.0": version: 1.0.0 resolution: "wordwrap@npm:1.0.0" @@ -31992,7 +32873,7 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^6.2.0": +"wrap-ansi@npm:^6.0.1, wrap-ansi@npm:^6.2.0": version: 6.2.0 resolution: "wrap-ansi@npm:6.2.0" dependencies: @@ -32003,7 +32884,7 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^8.1.0": +"wrap-ansi@npm:^8.0.1, wrap-ansi@npm:^8.1.0": version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" dependencies: @@ -32106,7 +32987,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.2.3": +"ws@npm:^7.2.3, ws@npm:^7.4.6": version: 7.5.9 resolution: "ws@npm:7.5.9" peerDependencies: @@ -32122,8 +33003,8 @@ __metadata: linkType: hard "ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.2.3": - version: 8.13.0 - resolution: "ws@npm:8.13.0" + version: 8.14.2 + resolution: "ws@npm:8.14.2" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -32132,7 +33013,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 579817dbbab3ee46669129c220cfd81ba6cdb9ab5c3e9a105702dd045743c4ab72e33bb384573827c0c481213417cc880e41bc097e0fc541a0b79fa3eb38207d + checksum: 35b4c2da048b8015c797fd14bcb5a5766216ce65c8a5965616a5440ca7b6c3681ee3cbd0ea0c184a59975556e9d58f2002abf8485a14d11d3371770811050a16 languageName: node linkType: hard @@ -32162,6 +33043,13 @@ __metadata: languageName: node linkType: hard +"xml-name-validator@npm:^3.0.0": + version: 3.0.0 + resolution: "xml-name-validator@npm:3.0.0" + checksum: da310f6a7a52f8eb0fce3d04ffa1f97387ca68f47e8620ae3a259909c4e832f7003313b918e53840a6bf57fb38d5ae3c5f79f31f911b2818a7439f7898f8fbf1 + languageName: node + linkType: hard + "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" @@ -32236,6 +33124,13 @@ __metadata: languageName: node linkType: hard +"yaml@npm:2.3.1": + version: 2.3.1 + resolution: "yaml@npm:2.3.1" + checksum: ed4c21a907fb1cd60a25177612fa46d95064a144623d269199817908475fe85bef20fb17406e3bdc175351b6488056a6f84beb7836e8c262646546a0220188e3 + languageName: node + linkType: hard + "yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" @@ -32243,10 +33138,10 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.0.0, yaml@npm:^2.2.2, yaml@npm:^2.3.1": - version: 2.3.1 - resolution: "yaml@npm:2.3.1" - checksum: ed4c21a907fb1cd60a25177612fa46d95064a144623d269199817908475fe85bef20fb17406e3bdc175351b6488056a6f84beb7836e8c262646546a0220188e3 +"yaml@npm:^2.0.0, yaml@npm:^2.3.1": + version: 2.3.2 + resolution: "yaml@npm:2.3.2" + checksum: c2aac464015f037911c5b819475e81e52119e5495e3d43fe7cb82b5a84d59d66a86049dc85d8e90658636c1c04dde177ae196818deaf76c1bda4d34209d5c087 languageName: node linkType: hard @@ -32397,11 +33292,11 @@ __metadata: linkType: hard "zone.js@npm:^0.13.0": - version: 0.13.1 - resolution: "zone.js@npm:0.13.1" + version: 0.13.3 + resolution: "zone.js@npm:0.13.3" dependencies: tslib: ^2.3.0 - checksum: 3f04ded7d2f5496befbce030aa57ba58d1c604795445e555af1a0079fc9938d0a0a9c128fdbff13563423ea2e2956549383629e39c59a7f1d8d3362deacc5e5b + checksum: c2bfa9470c54742b319e81b617a95ddd72bbd4ee03dd5d4d68ae04f153490123fd38c96d2c40d70cf88722e8214b012842836a62cefb23f8f6282d3f7cc1d2b8 languageName: node linkType: hard diff --git a/docs/api/doc-block-colorpalette.md b/docs/api/doc-block-colorpalette.md index 3229612173c3..b97c6ec67b50 100644 --- a/docs/api/doc-block-colorpalette.md +++ b/docs/api/doc-block-colorpalette.md @@ -2,6 +2,8 @@ title: 'ColorPalette' --- + + The `ColorPalette` block allows you to document all color-related items (e.g., swatches) used throughout your project. ![Screenshot of ColorPalette and ColorItem blocks](./doc-block-colorpalette.png) diff --git a/docs/api/doc-block-icongallery.md b/docs/api/doc-block-icongallery.md index db16ee30ed53..c89f511f2b68 100644 --- a/docs/api/doc-block-icongallery.md +++ b/docs/api/doc-block-icongallery.md @@ -2,6 +2,8 @@ title: 'IconGallery' --- + + The `IconGallery` block enables you to easily document React icon components associated with your project, displayed in a neat grid. ![Screenshot of IconGallery and IconItem blocks](./doc-block-icongallery.png) diff --git a/docs/api/doc-block-typeset.md b/docs/api/doc-block-typeset.md index 854cd140232f..22933dc5f521 100644 --- a/docs/api/doc-block-typeset.md +++ b/docs/api/doc-block-typeset.md @@ -2,6 +2,8 @@ title: 'Typeset' --- + + The `Typeset` block helps document the fonts used throughout your project. ![Screenshot of Typeset block](./doc-block-typeset.png) diff --git a/docs/api/main-config-features.md b/docs/api/main-config-features.md index b556e8323110..81a80502a7bc 100644 --- a/docs/api/main-config-features.md +++ b/docs/api/main-config-features.md @@ -22,7 +22,9 @@ Enables Storybook's additional features. Type: `boolean` -Generates a `stories.json` file to help story loading with the on-demand mode. +Default: `true`, when [`storyStoreV7`](#storystorev7) is `true` + +Generates a `index.json` and `stories.json` files to help story loading with the on-demand mode. diff --git a/docs/api/main-config-indexers-arch-build-plugin.jpg b/docs/api/main-config-indexers-arch-build-plugin.jpg new file mode 100644 index 000000000000..73e2e5a54806 Binary files /dev/null and b/docs/api/main-config-indexers-arch-build-plugin.jpg differ diff --git a/docs/api/main-config-indexers-arch-indexer.jpg b/docs/api/main-config-indexers-arch-indexer.jpg new file mode 100644 index 000000000000..a7176864e366 Binary files /dev/null and b/docs/api/main-config-indexers-arch-indexer.jpg differ diff --git a/docs/api/main-config-indexers.md b/docs/api/main-config-indexers.md new file mode 100644 index 000000000000..d5efd754787a --- /dev/null +++ b/docs/api/main-config-indexers.md @@ -0,0 +1,366 @@ +--- +title: 'indexers' +--- + +(⚠️ **Experimental**) + +
+ +🧪 While this feature is experimental, it must be specified by the `experimental_indexers` property of [`StorybookConfig`](./main-config.md). + +
+ +Parent: [main.js|ts configuration](./main-config.md) + +Type: `(existingIndexers: Indexer[]) => Promise` + +Indexers are responsible for building Storybook's index of stories—the list of all stories and a subset of their metadata like `id`, `title`, `tags`, and more. The index can be read at the `/index.json` route of your Storybook. + +The indexers API is an advanced feature that allows you to customize Storybook's indexers, which dictate how Storybook indexes and parses files into story entries. This adds more flexibility to how you can write stories, including which language stories are defined in or where to get stories from. + +They are defined as a function that returns the full list of indexers, including the existing ones. This allows you to add your own indexer to the list, or to replace an existing one: + + + + + + + +Unless your indexer is doing something relatively trivial (e.g. [indexing stories with a different naming convention](../configure/sidebar-and-urls#story-indexers)), in addition to indexing the file, you will likely need to [transpile it to CSF](#transpiling-to-csf) so that Storybook can read them in the browser. + +## `Indexer` + +Type: + +```ts +{ + test: RegExp; + createIndex: (fileName: string, options: IndexerOptions) => Promise; +} +``` + +Specifies which files to index and how to index them as stories. + +### `test` + +(Required) + +Type: `RegExp` + +A regular expression run against file names included in the [`stories`](./main-config-stories.md) configuration that should match all files to be handled by this indexer. + +### `createIndex` + +(Required) + +Type: `(fileName: string, options: IndexerOptions) => Promise` + +Function that accepts a single CSF file and returns a list of entries to index. + +#### `fileName` + +Type: `string` + +The name of the CSF file used to create entries to index. + +#### `IndexerOptions` + +Type: + +```ts +{ + makeTitle: (userTitle?: string) => string; +} +``` + +Options for indexing the file. + +##### `makeTitle` + +Type: `(userTitle?: string) => string` + +A function that takes a user-provided title and returns a formatted title for the index entry, which is used in the sidebar. If no user title is provided, one is automatically generated based on the file name and path. + +See [`IndexInput.title`](#title) for example usage. + +#### `IndexInput` + +Type: + +```ts +{ + exportName: string; + importPath: string; + type: 'story'; + metaId?: string; + name?: string; + tags?: string[]; + title?: string; + __id?: string; +} +``` + +An object representing a story to be added to the stories index. + +##### `exportName` + +(Required) + +Type: `string` + +For each `IndexInput`, the indexer will add this export (from the file found at `importPath`) as an entry in the index. + +##### `importPath` + +(Required) + +Type: `string` + +The file to import from, e.g. the [CSF](./csf.md) file. + +It is likely that the [`fileName`](#filename) being indexed is not CSF, in which you will need to [transpile it to CSF](#transpiling-to-csf) so that Storybook can read it in the browser. + +##### `type` + +(Required) + +Type: `'story'` + +The type of entry. + +##### `metaId` + +Type: `string` + +Default: Auto-generated from [`title`](#title) + +Define the custom id for meta of the entry. + +If specified, the export default (meta) in the CSF file _must_ have a corresponding `id` property, to be correctly matched. + +##### `name` + +Type: `string` + +Default: Auto-generated from [`exportName`](#exportname) + +The name of the entry. + +##### `tags` + +Type: `string[]` + +Tags for filtering entries in Storybook and its tools. + +##### `title` + +Type: `string` + +Default: Auto-generated from default export of [`importPath`](#importpath) + +Determines the location of the entry in the sidebar. + +Most of the time, you should **not** specify a title, so that your indexer will use the default naming behavior. When specifying a title, you **must** use the [`makeTitle`](#maketitle) function provided in [`IndexerOptions`](#indexeroptions) to also use this behavior. For example, here's an indexer that merely appends a "Custom" prefix to the title derived from the file name: + + + + + + + +##### `__id` + +Type: `string` + +Default: Auto-generated from [`title`](#title)/[`metaId`](#metaid) and [`exportName`](#exportname) + +Define the custom id for the story of the entry. + +If specified, the story in the CSF file **must** have a corresponding `__id` property, to be correctly matched. + +Only use this if you need to override the auto-generated id. + +## Transpiling to CSF + +The value of [`importPath`](#importpath) in an [`IndexInput`](#indexinput) must resolve to a [CSF](./csf.md) file. Most custom indexers, however, are only necessary because the input is _not_ CSF. Therefore, you will likely need to transpile the input to CSF, so that Storybook can read it in the browser and render your stories. + +Transpiling the custom source format to CSF is beyond the scope of this documentation. This transpilation is often done at the builder level ([Vite](../builders/vite.md) and/or [Webpack](../builders/webpack.md)), and we recommend using [unplugin](https://github.com/unjs/unplugin) to create plugins for multiple builders. + +The general architecture looks something like this: + +![Architecture diagram showing how a custom indexer indexes stories from a source file](./main-config-indexers-arch-indexer.jpg) + +1. Using the [`stories`](./main-config-stories.md) configuration, Storybook finds all files that match the [`test`](#test) property of your indexer +2. Storybook passes each matching file to your indexer's [`createIndex` function](#createindex), which uses the file contents to generate and return a list of index entries (stories) to add to the index +3. The index populates the sidebar in the Storybook UI + +![Architecture diagram showing how a build plugin transforms a source file into CSF](./main-config-indexers-arch-build-plugin.jpg) + +4. In the Storybook UI, the user navigates to a URL matching the story id and the browser requests the CSF file specified by the [`importPath`](#importpath) property of the index entry +5. Back on the server, your builder plugin transpiles the source file to CSF, and serves it to the client +6. The Storybook UI reads the CSF file, imports the story specified by [`exportName`](#exportname), and renders it + +Let's look at an example of how this might work. + +First, here's an example of a non-CSF source file: + +```ts +// Button.variants.js|ts + +import { variantsFromComponent, createStoryFromVariant } from '../utils'; +import { Button } from './Button'; + +/** + * Returns raw strings representing stories via component props, eg. + * 'export const PrimaryVariant = { + * args: { + * primary: true + * }, + * };' + */ +export const generateStories = () => { + const variants = variantsFromComponent(Button); + return variants.map((variant) => createStoryFromVariant(variant)); +}; +``` + +The builder plugin would then: + +1. Receive and read the source file +2. Import the exported `generateStories` function +3. Run the function to generate the stories +4. Write the stories to a CSF file + +That resulting CSF file would then be indexed by Storybook. It would look something like this: + +```js +// virtual:Button.variants.js|ts + +import { Button } from './Button'; + +export default { + component: Button, +}; + +export const Primary = { + args: { + primary: true, + }, +}; +``` + +### Examples + +Some example usages of custom indexers include: + +
+ +Generating stories dynamically from fixture data or API endpoints + +This indexer generates stories for components based on JSON fixture data. It looks for `*.stories.json` files in the project, adds them to the index and separately converts their content to CSF. + + + + + + + +An example input JSON file could look like this: + +```json +{ + "Button": { + "componentPath": "./button/Button.jsx", + "stories": { + "Primary": { + "args": { + "primary": true + }, + "Secondary": { + "args": { + "primary": false + } + } + } + }, + "Dialog": { + "componentPath": "./dialog/Dialog.jsx", + "stories": { + "Closed": {}, + "Open": { + "args": { + "isOpen": true + } + }, + } + } +} +``` + +A builder plugin will then need to transform the JSON file into a regular CSF file. This transformation could be done with a Vite plugin similar to this: + +```ts +// vite-plugin-storybook-json-stories.ts + +import type { PluginOption } from 'vite'; +import fs from 'fs/promises'; + +function JsonStoriesPlugin(): PluginOption { + return { + name: 'vite-plugin-storybook-json-stories', + load(id) { + if (!id.startsWith('virtual:jsonstories')) { + return; + } + + const [, fileName, componentName] = id.split('--'); + const content = JSON.parse(fs.readFileSync(fileName)); + + const { componentPath, stories } = getComponentStoriesFromJson(content, componentName); + + return ` + import ${componentName} from '${componentPath}'; + + export default { component: ${componentName} }; + + ${stories.map((story) => `export const ${story.name} = ${story.config};\n`)} + `; + }, + }; +} +``` + +
+ +
+ +Generating stories with an alternative API + +You can use a custom indexer and builder plugin to create your own API for defining stories, such as imperatively defining stories similar to the legacy [`storiesOf`](https://github.com/storybookjs/storybook/blob/main/code/lib/preview-api/docs/storiesOf.md) format. + +The [dynamic stories proof of concept](https://stackblitz.com/edit/github-h2rgfk?file=README.md) is an elaborate, functional example of doing just that. It contains everything needed to support such a feature, including the indexer, a Vite plugin and a Webpack loader. + +
+ +
+ +Defining stories in non-JavaScript language + +Custom indexers can be used for an advanced purpose: defining stories in any language, including template languages, and converting the files to CSF. To see examples of this in action, you can refer to [`@storybook/addon-svelte-csf`](https://github.com/storybookjs/addon-svelte-csf) for Svelte template syntax and [`storybook-vue-addon`](https://github.com/tobiasdiez/storybook-vue-addon) for Vue template syntax. + +
diff --git a/docs/api/main-config.md b/docs/api/main-config.md index ed4b1b387319..69372067bdf8 100644 --- a/docs/api/main-config.md +++ b/docs/api/main-config.md @@ -34,6 +34,7 @@ An object to configure Storybook containing the following properties: - [`docs`](./main-config-docs.md) - [`env`](./main-config-env.md) - [`features`](./main-config-features.md) +- [`indexers`](./main-config-indexers.md) (⚠️ Experimental) - [`logLevel`](./main-config-log-level.md) - [`managerHead`](./main-config-manager-head.md) - [`previewAnnotations`](./main-config-preview-annotations.md) diff --git a/docs/builders/builder-api.md b/docs/builders/builder-api.md index ae71323218a0..c359f7c6df6d 100644 --- a/docs/builders/builder-api.md +++ b/docs/builders/builder-api.md @@ -17,6 +17,7 @@ To opt into a builder, the user must add it as a dependency and then edit their diff --git a/docs/builders/vite.md b/docs/builders/vite.md index bb56004bb49c..d964931f66ab 100644 --- a/docs/builders/vite.md +++ b/docs/builders/vite.md @@ -18,6 +18,7 @@ Run the following command to install the builder. diff --git a/docs/configure/babel.md b/docs/configure/babel.md index b497a28d4a31..331add4d5e6e 100644 --- a/docs/configure/babel.md +++ b/docs/configure/babel.md @@ -133,7 +133,9 @@ When the command finishes running, it will display the available Babel configura For more info, please refer to the [Babel documentation](https://babeljs.io/docs/en/configuration#print-effective-configs). -### SWC alternative (experimental) +### SWC alternative + +(⚠️ **Experimental**) If you're working with a Webpack-based project, you can opt into replacing Babel with the [SWC](https://swc.rs/) compiler, which can be faster for some projects. To do so, update your [Storybook configuration file](../api/main-config.md) (e.g., `.storybook/main.js|ts`) to enable the experimental `useSWC` option: diff --git a/docs/configure/frameworks.md b/docs/configure/frameworks.md index 80ebc224932e..fc9010251423 100644 --- a/docs/configure/frameworks.md +++ b/docs/configure/frameworks.md @@ -64,7 +64,7 @@ Storybook is a framework-agnostic tool. It can be used with any framework. Howev ### Legacy framework support -We're deprecating support for several frameworks, including [Aurelia](https://github.com/aurelia/framework), [Marionette](https://github.com/marionettejs/backbone.marionette), [Mithril](https://github.com/MithrilJS/mithril.js), [Rax](https://github.com/alibaba/rax), and [Riot](https://github.com/riot/riot). Nevertheless, we're always looking for help maintaining these frameworks. If you're working with one of them and you want to continue supporting them, visit the dedicated [Storybook End-of-Life repository](https://github.com/storybook-eol) to learn more about the sunsetting process and for instructions on how to contribute our visit our [Discord server](https://discord.gg/storybook). +We're deprecating support for several frameworks, including [Aurelia](https://github.com/aurelia/framework), [Marionette](https://github.com/marionettejs/backbone.marionette), [Mithril](https://github.com/MithrilJS/mithril.js), [Rax](https://github.com/alibaba/rax), and [Riot](https://github.com/riot/riot). Nevertheless, we're always looking for help maintaining these frameworks. If you're working with one of them and you want to continue supporting them, visit the dedicated [Storybook End-of-Life repository](https://github.com/storybook-eol) to learn more about the sunsetting process and for instructions on how to contribute visit our [Discord server](https://discord.gg/storybook). ### Learn about configuring Storybook diff --git a/docs/configure/overview.md b/docs/configure/overview.md index 14faf978e1a2..a5e877a03e46 100644 --- a/docs/configure/overview.md +++ b/docs/configure/overview.md @@ -51,11 +51,11 @@ Storybook's main configuration (i.e., the `main.js|ts`) defines your Storybook p Additionally, you can also provide additional feature flags to your Storybook configuration. Below is an abridged list of available features that are currently available. -| Configuration element | Description | -| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `storyStoreV7` | Configures Storybook to load stories [on demand](#on-demand-story-loading), rather than during boot up
`features: { storyStoreV7: true }` | -| `buildStoriesJson` | Generates a `stories.json` file to help story loading with the on-demand mode
`features: { buildStoriesJson: true }` | -| `legacyMdx1` | Enables support for MDX version 1 as a fallback. Requires [`@storybook/mdx1-csf`](https://github.com/storybookjs/mdx1-csf)
`features: { legacyMdx1: true }` | +| Configuration element | Description | +| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `storyStoreV7` | Configures Storybook to load stories [on demand](#on-demand-story-loading), rather than during boot up (defaults to `true` as of `v7.0`)
`features: { storyStoreV7: true }` | +| `buildStoriesJson` | Generates `index.json` and `stories.json` files to help story loading with the on-demand mode (defaults to `true` when `storyStoreV7` is `true`)
`features: { buildStoriesJson: true }` | +| `legacyMdx1` | Enables support for MDX version 1 as a fallback. Requires [`@storybook/mdx1-csf`](https://github.com/storybookjs/mdx1-csf)
`features: { legacyMdx1: true }` | ## Configure story loading diff --git a/docs/configure/sidebar-and-urls.md b/docs/configure/sidebar-and-urls.md index 094add432b1d..966d928b3fe5 100644 --- a/docs/configure/sidebar-and-urls.md +++ b/docs/configure/sidebar-and-urls.md @@ -94,6 +94,19 @@ Storybook 6.4 introduced [CSF 3.0](https://storybook.js.org/blog/component-story When Storybook loads, the story can show up in the sidebar as `components/My Component`. +Auto-titles work with explicit titling options like the component's `title` and the story's `name`: + + + + + + + ### Auto-title filename case Starting with Storybook 6.5, story titles generated automatically no longer rely on Lodash's [startCase](https://lodash.com/docs/#startCase). @@ -149,55 +162,6 @@ When Storybook generates the titles for all matching stories, they'll retain the ### Story Indexers -Story Indexers are a set of heuristics used by Storybook to crawl your filesystem based on a given glob pattern searching for matching stories, which is then used to generate an index.json (formerly stories.json) file responsible for populating the sidebar with the necessary information. By default, this heuristic will look for files that contain the following scheme \*.stories.@(js|jsx|mjs|ts|tsx). However, if you need, you can create your custom story indexer that you can use to include stories that have a different naming convention. For example: - - - - - - - -### Processing custom titles - -Out of the box, Storybook automatically infers the story's title based on a set of patterns, including, for example, the file's physical location. If you're working on creating a custom story indexer and you want to handle the titles based on your set of rules, you can adjust it and provide a `makeTitle` function inside the `loadCsf` function. Below is a condensed table and examples of how these patterns work and how they relate to stories. - -| Pattern | Description | -| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `titlePrefix` | Prefixes the indexed story title based on the [configuration](./overview.md#with-a-configuration-object). | -| `title` | Requires CSF and MDX.
Infers the story title based on the information defined in the metadata. | -| `name` | Requires CSF and MDX.
Overrides the story title based on the provided [name](../writing-stories/introduction.md#rename-stories) property. | -| `component` | Requires CSF.
Generates the title based on the component property defined in the metadata. | -| `of` | Requires MDX.
Retrieves the title based on the referenced story file. | -| `story export` | Requires CSF.
Defines the title based on the [named story export](../api/csf.md#named-story-exports). | -| `filename` | Enabled with custom indexers.
Defines the story title based on the filename parsed with the indexer. | - - - - - - - - - - - - - -
- -💡 Story indexers are a great way to get non-developers playing with your components and stories. They can do much more than documented here; we encourage you to check out the [`@storybook-extras/markdown` ](https://storybook.js.org/addons/@storybook-extras/markdown/) to learn more about these techniques. +[Story Indexers](./main-config-indexers.md) are a set of heuristics used by Storybook to crawl your filesystem based on a given glob pattern searching for matching stories, which is then used to generate an `index.json` (formerly `stories.json`) file responsible for populating the sidebar with the necessary information. By default, this heuristic will look for files that contain the following scheme `*.stories.@(js|jsx|mjs|ts|tsx)`. -
+You can provide your own indexer to include stories with a different naming convention, adjust the automatic title generation beyond a prefix, and many other use cases. For more information, see the [Story Indexers API reference](./main-config-indexers.md). diff --git a/docs/configure/styling-and-css.md b/docs/configure/styling-and-css.md index b328359af00f..2f847b80935d 100644 --- a/docs/configure/styling-and-css.md +++ b/docs/configure/styling-and-css.md @@ -2,7 +2,11 @@ title: 'Styling and CSS' --- -There are many ways to include CSS in a web application, and correspondingly there are many ways to include CSS in Storybook. Usually, it is best to try and replicate what your application does with styling in Storybook’s configuration. To make this easier, we recommend using [`@storybook/addon-styling`](https://github.com/storybookjs/addon-styling). +There are many ways to include CSS in a web application, and correspondingly there are many ways to include CSS in Storybook. Usually, it is best to try and replicate what your application does with styling in Storybook’s configuration. + +If you're using Vite to build your Storybook, you're covered! Storybook will use your vite config file which supports most popular styling tools out-of-the-box 🎉. However, if you're using Webpack, you may need some extra configuration. To make this easier, we recommend using [`@storybook/addon-styling-webpack`](https://storybook.js.org/addons/@storybook/addon-styling-webpack/). + +**Note**: If you're using Storybook with Angular or Next.js, you can skip this section. Storybook will automatically use the same styling configuration as your application. ## Importing CSS files @@ -25,21 +29,23 @@ If your component files import their CSS files, this will work too. The noticeab If you're using Vite as your builder, you're covered! Vite supports Sass and PostCSS out-of-the-box 🎉 -However, if you're using Webpack and want to use Sass and PostCss, you'll need some extra configuration. We recommend installing [`@storybook/addon-styling`](https://github.com/storybookjs/addon-styling#storybookaddon-styling) to help you configure these tools. Or if you'd prefer, you can customize [Storybook's webpack configuration yourself](../builders/webpack.md#override-the-default-configuration) to include the appropriate loader(s). +However, if you're using Webpack and want to use Sass and PostCss, you'll need some extra configuration. We recommend installing [`@storybook/addon-styling-webpack`](https://storybook.js.org/addons/@storybook/addon-styling-webpack/) to help you configure these tools. Or if you'd prefer, you can customize [Storybook's webpack configuration yourself](../builders/webpack.md#override-the-default-configuration) to include the appropriate loader(s). ## CSS-in-JS -CSS-in-JS libraries are designed to use basic JavaScript, and they often work in Storybook without any extra configuration. Some libraries expect components to render in a specific rendering “context” (for example, to provide themes), which can be accomplished with `@storybook/addon-styling`'s [`withThemeFromJSXProvider` decorator](https://github.com/storybookjs/addon-styling/blob/next/docs/api.md#withthemefromjsxprovider). +CSS-in-JS libraries are designed to use basic JavaScript, and they often work in Storybook without any extra configuration. Some libraries expect components to render in a specific rendering “context” (for example, to provide themes), which can be accomplished with `@storybook/addon-themes`'s [`withThemeFromJSXProvider` decorator](https://github.com/storybookjs/storybook/blob/next/code/addons/themes/docs/api.md#withthemefromjsxprovider). ## Adding webfonts If you need webfonts to be available, you may need to add some code to the [`.storybook/preview-head.html`](./story-rendering.md#adding-to-head) file. We recommend including any assets with your Storybook if possible, in which case you likely want to configure the [static file location](./images-and-assets.md#serving-static-files-via-storybook-configuration). + + ## Troubleshooting ### Styles aren't being applied with Angular -The latest Angular releases introduced significant changes in configuring and styling projects. If you're working with an Angular version greater than 13 and your styles aren't being applied, you may need to check your `angular.json` ad adjust the `builder` configuration to import your CSS: +The latest Angular releases introduced significant changes in configuring and styling projects. If you're working with an Angular version greater than 13 and your styles aren't being applied, you may need to check your `angular.json` and adjust the `builder` configuration to import your CSS: ```json { @@ -56,7 +62,7 @@ The latest Angular releases introduced significant changes in configuring and st } ``` -Additionally, if you need Storybook-specific styles that are separate from your application, you can configure the styles with [Storybook's custom builder](../get-started/install.md), which will override the application's styles: +Additionally, if you need Storybook-specific styles that are separate from your application, you can configure the styles with [Storybook's custom builder](../get-started/install.md#troubleshooting), which will override the application's styles: ```json { @@ -121,3 +127,5 @@ Starting with version `14.1.8`, Nx uses the Storybook builder directly, which me ``` When Nx runs, it will load Storybook's configuration and styling based on [`storybook`'s `browserTarget`](https://nx.dev/storybook/extra-topics-for-angular-projects#setting-up-browsertarget). + + diff --git a/docs/configure/theming.md b/docs/configure/theming.md index 5650ddc9899a..15828905eaab 100644 --- a/docs/configure/theming.md +++ b/docs/configure/theming.md @@ -2,6 +2,8 @@ title: 'Theming' --- + + Storybook is theme-able using a lightweight theming API. ## Global theming diff --git a/docs/essentials/actions.md b/docs/essentials/actions.md index 130b05a2e307..2ffc18444046 100644 --- a/docs/essentials/actions.md +++ b/docs/essentials/actions.md @@ -2,6 +2,8 @@ title: 'Actions' --- + + The actions addon is used to display data received by event handler (callback) arguments in your stories.