From 68a4f9f1be0aa8dca7353a72e8ccfdd6b562ef59 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Fri, 31 Jul 2026 11:57:24 +0000 Subject: [PATCH 01/10] Use `changesets` instead of `beachball` --- .changeset/README.md | 7 + .changeset/changelog-github.mjs | 46 + .changeset/config.json | 14 + .github/CODEOWNERS | 24 +- .github/workflows/changeset-release.yml | 55 ++ .github/workflows/ci.yml | 11 +- .pipelines/publish.yaml | 72 -- CONTRIBUTING.md | 52 +- beachball.config.dev.js | 14 - beachball.config.js | 71 -- package.json | 11 +- pnpm-lock.yaml | 1173 ++++++++++++++--------- scripts/check-package-versions.js | 61 ++ scripts/create-changeset.js | 61 ++ 14 files changed, 1027 insertions(+), 645 deletions(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/changelog-github.mjs create mode 100644 .changeset/config.json create mode 100644 .github/workflows/changeset-release.yml delete mode 100644 .pipelines/publish.yaml delete mode 100644 beachball.config.dev.js delete mode 100644 beachball.config.js create mode 100644 scripts/check-package-versions.js create mode 100644 scripts/create-changeset.js diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000000..0358334132 --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,7 @@ +# Changesets + +This folder contains release metadata generated by `@changesets/cli`. + +Run `pnpm change` to describe a change that requires a package release. Changes that do not require a package release do not need a changeset. + +See the [Changesets documentation](https://github.com/changesets/changesets/tree/main/docs) for more information. diff --git a/.changeset/changelog-github.mjs b/.changeset/changelog-github.mjs new file mode 100644 index 0000000000..a57fc47080 --- /dev/null +++ b/.changeset/changelog-github.mjs @@ -0,0 +1,46 @@ +// see https://github.com/changesets/changesets/blob/main/docs/modifying-changelog-format.md +/** @type {import('@changesets/types').ChangelogFunctions} */ +const changelogFunctions = { + getReleaseLine: async ({ commit, summary }, _type, options) => { + if (!options.repo) { + throw new Error('Configure the changelog generator with a GitHub repository, for example: ["./changelog-github.mjs", { "repo": "org/repo" }]'); + } + + const [firstLine, ...followingLines] = summary.split("\n").map((line) => line.trimEnd()); + const pullRequestOrCommit = await getPullRequestLink(options.repo, commit); + let releaseLine = `- ${pullRequestOrCommit}: ${firstLine}`; + + if (followingLines.length > 0) { + releaseLine += `\n${followingLines.map((line) => ` ${line}`).join("\n")}`; + } + + return releaseLine; + }, + + getDependencyReleaseLine: async (_changesets, dependenciesUpdated) => { + if (dependenciesUpdated.length === 0) { + return ""; + } + + const updatedDependencies = dependenciesUpdated.map((dependency) => ` - ${dependency.name}@${dependency.newVersion}`); + return ["- Updated dependencies:", ...updatedDependencies].join("\n"); + }, +}; + +export default changelogFunctions; + +async function getPullRequestLink(repository, commit) { + try { + const response = await fetch(`https://api.github.com/repos/${repository}/commits/${commit}/pulls`); + const pullRequests = await response.json(); + const pullRequest = pullRequests.find(({ merge_commit_sha: mergeCommit }) => mergeCommit?.includes(commit)); + + if (pullRequest) { + return `[#${pullRequest.number}](https://github.com/${repository}/pull/${pullRequest.number})`; + } + } catch { + // Fall back to the commit when GitHub cannot resolve the pull request. + } + + return commit; +} diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000000..3a484ba965 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.4/schema.json", + "changelog": ["./changelog-github.mjs", { "repo": "iTwin/viewer-components-react" }], + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "master", + "updateInternalDependencies": "patch", + "bumpVersionsWithWorkspaceProtocolOnly": true, + "privatePackages": { + "version": false + } +} diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 47b51a7788..ca692a1b46 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -10,6 +10,8 @@ # review when someone opens a pull request. * @itwin/viewer-components-reviewers +/.changeset/multi-package-* @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation + /packages/test-utilities @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation /apps/test-viewer @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation @@ -17,31 +19,33 @@ /apps/performance-tests @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation /packages/property-grid @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation -/change/@itwin-property-grid-react* @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation +/packages/property-grid/CHANGELOG.md @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation +/.changeset/@itwin-property-grid-react-* @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation /packages/tree-widget @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation -/change/@itwin-tree-widget-react* @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation +/packages/tree-widget/CHANGELOG.md @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation +/.changeset/@itwin-tree-widget-react-* @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation /packages/measure-tools @itwin/viewer-components-reviewers @simnorm @a-gagnon @bsy-nicholasw -/change/@itwin-measure-tools-react* @itwin/viewer-components-reviewers @simnorm @a-gagnon @bsy-nicholasw +/packages/measure-tools/CHANGELOG.md @itwin/viewer-components-reviewers /archive/grouping-mapping-widget @itwin/viewer-components-reviewers @itwin/insights-and-reporting-platform -/change/@itwin-grouping-mapping-widget* @itwin/viewer-components-reviewers @itwin/insights-and-reporting-platform +/archive/grouping-mapping-widget/CHANGELOG.md @itwin/viewer-components-reviewers /archive/one-click-lca-widget @itwin/viewer-components-reviewers @itwin/insights-and-reporting-platform -/change/@itwin-one-click-lca-react* @itwin/viewer-components-reviewers @itwin/insights-and-reporting-platform +/archive/one-click-lca-widget/CHANGELOG.md @itwin/viewer-components-reviewers /archive/reports-config-widget @itwin/viewer-components-reviewers @itwin/insights-and-reporting-platform -/change/@itwin-reports-config-widget-react* @itwin/viewer-components-reviewers @itwin/insights-and-reporting-platform +/archive/reports-config-widget/CHANGELOG.md @itwin/viewer-components-reviewers /packages/geo-tools @itwin/viewer-components-reviewers @mdastous-bentley -/change/@itwin-geo-tools-react* @itwin/viewer-components-reviewers @mdastous-bentley +/packages/geo-tools/CHANGELOG.md @itwin/viewer-components-reviewers /archive/ec3-widget @itwin/viewer-components-reviewers @itwin/insights-and-reporting-platform -/change/@itwin-ec3-widget-react* @itwin/viewer-components-reviewers @itwin/insights-and-reporting-platform +/archive/ec3-widget/CHANGELOG.md @itwin/viewer-components-reviewers /packages/map-layers @itwin/viewer-components-reviewers @mdastous-bentley @eringram -/change/@itwin-map-layers* @itwin/viewer-components-reviewers @mdastous-bentley @eringram +/packages/map-layers/CHANGELOG.md @itwin/viewer-components-reviewers /packages/quantity-formatting @itwin/itwinjs-core-presentation @hl662 -/change/@itwin-quantity-formatting-react* @itwin/itwinjs-core-presentation @hl662 +/packages/quantity-formatting/CHANGELOG.md @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation diff --git a/.github/workflows/changeset-release.yml b/.github/workflows/changeset-release.yml new file mode 100644 index 0000000000..a0790aebed --- /dev/null +++ b/.github/workflows/changeset-release.yml @@ -0,0 +1,55 @@ +# cspell:ignore NPMJS imodeljs +name: Release packages (changeset) + +on: + push: + branches: + - master + +env: + NPM_CONFIG_PROVENANCE: true + HUSKY: 0 + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +jobs: + release: + name: Release + if: github.repository_owner == 'iTwin' + permissions: + id-token: write + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd + with: + fetch-depth: 0 + token: ${{ secrets.IMJS_ADMIN_GH_TOKEN }} + + - name: Install pnpm + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 + + - name: Use Node.js 22 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e + with: + node-version: 22 + registry-url: https://registry.npmjs.org/ + cache: "pnpm" + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Create release PR or publish to npm + uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b + with: + publish: pnpm release + title: Release packages [publish docs] + commit: Release packages [publish docs] + commitMode: github-api + env: + GITHUB_TOKEN: ${{ secrets.IMJS_ADMIN_GH_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPMJS_PUBLISH_ITWIN }} + GIT_AUTHOR_NAME: imodeljs-admin + GIT_AUTHOR_EMAIL: imodeljs-admin@users.noreply.github.com + GIT_COMMITTER_NAME: imodeljs-admin + GIT_COMMITTER_EMAIL: imodeljs-admin@users.noreply.github.com diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 81f1555d12..6549d8e172 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,12 +24,14 @@ jobs: - run: pnpm install check: + if: ${{ github.event.pull_request.head.ref != 'changeset-release/master' || github.event.pull_request.user.login != 'imodeljs-admin' }} runs-on: ubuntu-latest - needs: install - name: Check change files + name: Check package versions steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Setup pnpm uses: pnpm/action-setup@v4 @@ -40,9 +42,8 @@ jobs: node-version: 22 cache: 'pnpm' - - run: pnpm install - - - run: pnpm check && pnpm check:dev + - name: Prevent manual package version changes + run: pnpm check:versions audit: runs-on: ubuntu-latest diff --git a/.pipelines/publish.yaml b/.pipelines/publish.yaml deleted file mode 100644 index 95c9198d96..0000000000 --- a/.pipelines/publish.yaml +++ /dev/null @@ -1,72 +0,0 @@ -parameters: - - name: dev - type: boolean - default: false - displayName: "Publish pre-release versions" - - name: noPublish - type: boolean - default: false - displayName: "Only bump versions without publishing" - -trigger: none -pr: none - -pool: - vmImage: "ubuntu-latest" - -variables: - - group: "Caleb - iTwin GitHub Token" - - name: REPO_URL - value: github.com/iTwin/viewer-components-react - - name: NodeVersion - value: 22.x - - name: pnpm_config_cache - value: $(Pipeline.Workspace)/.pnpm-store - -steps: - - checkout: self - fetchDepth: 0 # Fetch all history (required by beachball to look at history) - - - task: UseNode@1 - displayName: "Use Node $(NodeVersion)" - inputs: - version: "$(NodeVersion)" - - - task: Cache@2 - displayName: Cache pnpm - inputs: - key: 'pnpm | "$(Agent.OS)" | pnpm-lock.yaml' - path: $(pnpm_config_cache) - - - script: | - corepack enable - displayName: "Enable corepack" - - - script: | - pnpm config set store-dir $(pnpm_config_cache) - displayName: "Setup pnpm" - env: - COREPACK_INTEGRITY_KEYS: 0 - - - script: pnpm install --frozen-lockfile - displayName: pnpm install - - - script: pnpm audit --registry=https://registry.npmjs.org --audit-level=high --production - displayName: Audit - - - script: pnpm exec lage lint extract-api cover --grouped - displayName: Build, Lint, Cover and check for unexpected API changes - - - script: | - git config --global user.email imodeljs-admin@users.noreply.github.com - git config --global user.name imodeljs-admin - git remote set-url origin "https://$(GITHUBTOKEN)@$(REPO_URL)" - pnpm run publish --message "applying package updates" --token $NPM_AUTH_TOKEN --branch $branchName $beachballConfig $publishOptions - displayName: "Publish packages" - env: - NPM_AUTH_TOKEN: $(npmToken) - branchName: ${{ replace(variables['Build.SourceBranch'], 'refs/heads/', 'origin/') }} - ${{ if eq(parameters.dev, true) }}: - beachballConfig: "--config beachball.config.dev.js --keep-change-files" - ${{ if eq(parameters.noPublish, true) }}: - publishOptions: "--no-publish" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 49fe9295e9..c91df7bd66 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,8 @@ Please take a read through this document to help streamline the process of getti - [Creating Issues and Enhancements](#creating-issues-and-enhancements) - [Writing Good Bug Reports and Feature Requests](#writing-good-bug-reports-and-feature-requests) - [Pull Requests](#pull-requests) - - [Source Code Edit Workflow](#code-change-workflow) +- [Development Workflow](#development-workflow) +- [Changesets and Releases](#changesets-and-releases) ## Adding a New Project @@ -55,36 +56,43 @@ We follow the normal [GitHub pull request workflow](https://help.github.com/en/g Every change must be tested with proper unit tests. Integration tests are highly encouraged in libraries with critical workflows to ensure end-to-end consistency. -Every change must be described with a change log: Run "pnpm change" on your committed and always choose "patch" as the change type. Commit your change log along with your pull request. +## Development Workflow -## Source Code Edit Workflow +1. Clone the repository or pull the latest changes from `master`. +2. Install dependencies: `pnpm install`. +3. Create a branch and make your changes. +4. Add or update tests for the changed behavior. +5. Run the relevant validation commands. The root commands include: -### Build Instructions +- `pnpm build` +- `pnpm test` +- `pnpm lint` +- `pnpm prettier` +- `pnpm cspell` -1. Clone repository (first time) with `git clone` or pull updates to the repository (subsequent times) with `git pull` -2. Install dependencies: `pnpm install` -3. Clean: `pnpm run clean` -4. Rebuild source: `pnpm run build` -5. Run tests: `pnpm run test` +6. Commit and push your changes, then open a pull request. The above commands iterate and perform their action against each package in the monorepo. -For incremental builds, the `pnpm run build` command can be used to only build packages that have changes. - > Note: It is a good idea to `pnpm install` after each `git pull` as dependencies may have changed. -### Making and testing changes +## Changesets and Releases + +Every change that requires a public package release must include a changeset. Documentation, tests, tooling, and other changes that do not affect a published package do not need one. Empty changesets are not used. + +Before opening a pull request: + +1. Run `pnpm change`. +2. Select each affected package and its release type: + +- `patch` for backward-compatible fixes. +- `minor` for backward-compatible features. +- `major` for breaking changes. -1. Make source code changes on a new Git branch -2. Ensure unit tests pass when run locally: `pnpm run test` -3. Locally commit changes: `git commit` (or use the Visual Studio Code user interface) -4. Repeat steps 1-3 until ready to push changes -5. Add changelog entry (which could potentially cover several commits): `pnpm change` -6. Follow prompts to enter a change description or press ENTER if the change does not warrant a changelog entry. If multiple packages have changed, multiple sets of prompts will be presented. -7. Completing the `pnpm change` prompts will cause new changelog entry JSON files to be created. -8. Commit the changelog JSON files. -9. Publish changes on the branch and open a pull request. +3. Enter a concise summary suitable for the package changelog. +4. Review the generated `.changeset/*.md` file. Single-package changesets use the package name in the filename for package-specific reviewer routing. Changesets affecting multiple packages use the `multi-package` prefix. The Markdown content may be expanded with examples, code snippets, migration guidance, or any other context needed for useful release notes. +5. Commit the generated file from the `.changeset` directory with your pull request. -> Note: The CI build will break if changes are pushed without running `pnpm change`. The fix will be to complete steps 5 through 9. +Do not edit package versions or package CHANGELOG.md files manually. After changesets are merged to `master`, the release workflow creates or updates a release pull request containing the generated version and changelog changes. Merging that release pull request publishes the packages to npm. Here is a sample [changelog](https://github.com/microsoft/rushstack/blob/master/apps/rush/CHANGELOG.md) to demonstrate the level of detail expected. diff --git a/beachball.config.dev.js b/beachball.config.dev.js deleted file mode 100644 index 1843a8c2ea..0000000000 --- a/beachball.config.dev.js +++ /dev/null @@ -1,14 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ -const base = require("./beachball.config.js"); - -/** @type {import("beachball").BeachballConfig } */ -module.exports = { - ...base, - scope: [], // List package paths to include in the dev release ie: "packages/map-layers" - tag: "dev", - prereleasePrefix: "dev", - generateChangelog: false, -}; diff --git a/beachball.config.js b/beachball.config.js deleted file mode 100644 index a5ee001e0d..0000000000 --- a/beachball.config.js +++ /dev/null @@ -1,71 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ -const { execSync } = require("child_process"); - -/** @type {import("beachball").BeachballConfig } */ -module.exports = { - bumpDeps: false, - access: "public", - tag: "latest", - scope: ["packages/*"], // Can be used to exclude packages that are in dev release, i.e. "!packages/map-layers" - ignorePatterns: [ - ".nycrc", - "eslint.config.js", - ".mocharc.json", - ".*ignore", - ".github/**", - ".vscode/**", - "**/test/**", - "**/e2e-tests/**", - "pnpm-lock.yaml", - "playwright.config.ts", - ], - changehint: "Run 'pnpm change' to generate a change file", - changelog: { - customRenderers: { - renderEntry: (entry) => { - return `- ${entry.comment}${getPRLink(entry.commit)}`; - }, - }, - }, - publish: true, -}; - -const remoteUrl = execSync("git remote get-url origin", { encoding: "utf-8" }).trim(); -const prPrefix = getPRPrefix(remoteUrl); -const prRegex = prPrefix.startsWith("https://github.com") ? /#([0-9]+)/ : /^Merged PR ([0-9]+):/; - -/** @type {(a:string) => string | undefined} */ -function getPRPrefix(url) { - if (url.startsWith("https://github.com")) - // GitHub HTTPS - return url.replace(/\.git$/, "") + "/pull/"; - if (url.includes("@github.com")) - // GitHub SSH - return `https://${url.split("@")[1]}/pull/`; -} - -/** @type {(a: string) => string | undefined} */ -function getPRNumber(commitHash) { - // beachball might not find commit and uses `not available` string as commit hash. Do not try to look up PR number if there is no valid commit hash. - if (commitHash === "not available") { - return undefined; - } - - // %s = subject - const commitMessage = execSync(`git log -1 --pretty=format:%s ${commitHash}`, { encoding: "utf-8" }); - // match PR links - const match = commitMessage.match(prRegex); - return match?.[1]; -} - -/** @type {(a: string) => string | undefined} */ -function getPRLink(commitHash) { - const pr = getPRNumber(commitHash); - if (prPrefix && pr) { - return ` ([#${pr}](${prPrefix}${pr}))`; - } - return ""; -} diff --git a/package.json b/package.json index a85df9b12e..0291bcd82f 100644 --- a/package.json +++ b/package.json @@ -14,14 +14,11 @@ "lint": "lage lint --grouped --continue", "clean": "lage clean --grouped --continue", "extract-api": "lage extract-api --grouped --continue", - "check": "beachball check", - "check:dev": "beachball check --config beachball.config.dev.js", - "change": "beachball change --no-commit", - "change:dev": "beachball change --config beachball.config.dev.js --no-commit", + "check:versions": "node scripts/check-package-versions.js", + "change": "node scripts/create-changeset.js", "cspell": "cspell .", "check-inline-styles": "node scripts/check-inline-styles.js", - "publish": "beachball publish --new", - "bump": "beachball bump", + "release": "pnpm build && changeset publish", "prettier": "prettier --check .", "prettier:fix": "prettier --write .", "gather-docs": "node ./scripts/gatherDocs.js", @@ -30,8 +27,8 @@ "benchmark:tree-widget": "pnpm run -C ./apps/performance-tests benchmark:tree-widget" }, "devDependencies": { + "@changesets/cli": "^2.31.1", "@ianvs/prettier-plugin-sort-imports": "^4.7.1", - "beachball": "^2.65.4", "cpx2": "^8.0.2", "cspell": "^9.8.0", "glob": "^13.0.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b48b08dc4..c3e1bf67ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,12 +9,12 @@ importers: .: devDependencies: + '@changesets/cli': + specifier: ^2.31.1 + version: 2.31.1 '@ianvs/prettier-plugin-sort-imports': specifier: ^4.7.1 - version: 4.7.1(prettier@3.8.3) - beachball: - specifier: ^2.65.4 - version: 2.65.4 + version: 4.7.1(prettier@3.9.6) cpx2: specifier: ^8.0.2 version: 8.0.2 @@ -26,53 +26,112 @@ importers: version: 13.0.6 lage: specifier: ^2.15.12 - version: 2.15.12 + version: 2.15.17 prettier: specifier: ^3.8.3 - version: 3.8.3 + version: 3.9.6 yargs: specifier: ^18.0.0 - version: 18.0.0 + version: 18.1.0 packages: - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} engines: {node: '>=6.9.0'} - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.3': - resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + + '@changesets/apply-release-plan@7.1.1': + resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} + + '@changesets/assemble-release-plan@6.0.10': + resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==} + + '@changesets/changelog-git@0.2.1': + resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} + + '@changesets/cli@2.31.1': + resolution: {integrity: sha512-uO05WTcRBwuVOJVSW8Cmpqw6q0WDL53ajGCMyszutvOe5toOnunbpM4jZzf+qxBOz7i0AzopZ8diBuewjmF40w==} + hasBin: true + + '@changesets/config@3.1.4': + resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.4': + resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} + + '@changesets/get-release-plan@4.0.16': + resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.4': + resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.3': + resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} + + '@changesets/pre@2.0.2': + resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} + + '@changesets/read@0.6.7': + resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} + + '@changesets/should-skip-package@0.1.2': + resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.1.0': + resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} + + '@changesets/write@0.4.0': + resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + '@cspell/cspell-bundled-dicts@9.8.0': resolution: {integrity: sha512-MpXFpVyBPfJQ1YuVotljqUaGf6lWuf+fuWBBgs0PHFYTSjRPWuIxviAaCDnup/CJLLH60xQL4IlcQe4TOjzljw==} engines: {node: '>=20'} @@ -114,11 +173,11 @@ packages: '@cspell/dict-aws@4.0.17': resolution: {integrity: sha512-ORcblTWcdlGjIbWrgKF+8CNEBQiLVKdUOFoTn0KPNkAYnFcdPP0muT4892h7H4Xafh3j72wqB4/loQ6Nti9E/w==} - '@cspell/dict-bash@4.2.2': - resolution: {integrity: sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==} + '@cspell/dict-bash@4.2.3': + resolution: {integrity: sha512-ljUZoKHbDqw5Sx0qpL2qTUlmkmr+vhZH/sCNrNaBZKTbdgiswErSnIF1jRbGmEitJNxHRHWsuZyVgnTGfVO1Yw==} - '@cspell/dict-companies@3.2.11': - resolution: {integrity: sha512-0cmafbcz2pTHXLd59eLR1gvDvN6aWAOM0+cIL4LLF9GX9yB2iKDNrKsvs4tJRqutoaTdwNFBbV0FYv+6iCtebQ==} + '@cspell/dict-companies@3.2.12': + resolution: {integrity: sha512-mjiz/N3zWOCsz5VfwMUydSl7uW0OU9H2PnbCNc3RV44Vj6Q59CSp6EYGSGZQxrXU1gpsuZUrwr6QCjNjFOOg5A==} '@cspell/dict-cpp@7.0.2': resolution: {integrity: sha512-dfbeERiVNeqmo/npivdR6rDiBCqZi3QtjH2Z0HFcXwpdj6i97dX1xaKyK2GUsO/p4u1TOv63Dmj5Vm48haDpuA==} @@ -129,14 +188,14 @@ packages: '@cspell/dict-csharp@4.0.8': resolution: {integrity: sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==} - '@cspell/dict-css@4.1.1': - resolution: {integrity: sha512-y/Vgo6qY08e1t9OqR56qjoFLBCpi4QfWMf2qzD1l9omRZwvSMQGRPz4x0bxkkkU4oocMAeztjzCsmLew//c/8w==} + '@cspell/dict-css@4.1.2': + resolution: {integrity: sha512-+ylGoKdwZ2sVOCOnU2Eq5wDZx+RaVX3HoKyNHGGsFvhSw6IidQ6tH/mAPKBDofViHJoWCPNlklE0lTr6MDG3QA==} '@cspell/dict-dart@2.3.2': resolution: {integrity: sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==} - '@cspell/dict-data-science@2.0.13': - resolution: {integrity: sha512-l1HMEhBJkPmw4I2YGVu2eBSKM89K9pVF+N6qIr5Uo5H3O979jVodtuwP8I7LyPrJnC6nz28oxeGRCLh9xC5CVA==} + '@cspell/dict-data-science@2.0.16': + resolution: {integrity: sha512-M72mxv5asuAnORurz4iXRJ+Tw9XBq6eu7D2Ne7biP0Z1RciKGNxXWu9JycA/KlVvK1hAlKj/fANlXhuEWpXKFg==} '@cspell/dict-django@4.1.6': resolution: {integrity: sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==} @@ -150,14 +209,14 @@ packages: '@cspell/dict-elixir@4.0.8': resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} - '@cspell/dict-en-common-misspellings@2.1.12': - resolution: {integrity: sha512-14Eu6QGqyksqOd4fYPuRb58lK1Va7FQK9XxFsRKnZU8LhL3N+kj7YKDW+7aIaAN/0WGEqslGP6lGbQzNti8Akw==} + '@cspell/dict-en-common-misspellings@2.1.13': + resolution: {integrity: sha512-00rpydUxKNWY2xxrSx+h46aNWLvbkJdd57SsnEFt24fbs1fROhXZ6XSQu+gQz/zNuiCvFi4Ro3ej9DLbEdWQmQ==} - '@cspell/dict-en-gb-mit@3.1.22': - resolution: {integrity: sha512-xE5Vg6gGdMkZ1Ep6z9SJMMioGkkT1GbxS5Mm0U3Ey1/H68P0G7cJcyiVr1CARxFbLqKE4QUpoV1o6jz1Z5Yl9Q==} + '@cspell/dict-en-gb-mit@3.1.25': + resolution: {integrity: sha512-zGODptk24CMrXi49ieG2SUm94CKxEsVF0dYNF+1ZYH0MSsQDZ/PKDlrrbvtBqSupKdPSj0Z9sjOmMNfHHW9ZSg==} - '@cspell/dict-en_us@4.4.33': - resolution: {integrity: sha512-zWftVqfUStDA37wO1ZNDN1qMJOfcxELa8ucHW8W8wBAZY3TK5Nb6deLogCK/IJi/Qljf30dwwuqqv84Qqle9Tw==} + '@cspell/dict-en_us@4.4.36': + resolution: {integrity: sha512-2yOhI/+7d1DbfvMljGW4jw8pLqDEsVmnvUXBOCFXtLU2BWgQkrqOJDCNseYjEiEbTp0OtdrWEWWPFSP1TNugQw==} '@cspell/dict-filetypes@3.0.18': resolution: {integrity: sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==} @@ -201,8 +260,8 @@ packages: '@cspell/dict-julia@1.1.1': resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} - '@cspell/dict-k8s@1.0.12': - resolution: {integrity: sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==} + '@cspell/dict-k8s@1.0.13': + resolution: {integrity: sha512-ELGkS13k7K/NEfVimBSrxVTfqXvOF/Kvxj4I62YxRm8bvHbfoXgrGaOx28lPiNRz+dmu+yYtvuXbnURKtYbC6g==} '@cspell/dict-kotlin@1.1.1': resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} @@ -219,10 +278,10 @@ packages: '@cspell/dict-makefile@1.0.5': resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} - '@cspell/dict-markdown@2.0.16': - resolution: {integrity: sha512-976RRqKv6cwhrxdFCQP2DdnBVB86BF57oQtPHy4Zbf4jF/i2Oy29MCrxirnOBalS1W6KQeto7NdfDXRAwkK4PQ==} + '@cspell/dict-markdown@2.0.17': + resolution: {integrity: sha512-H8bAxih6U8NOnSPL7R8My+tqjaB4tmnJTjERuz4zYqmf+cH+5xshX3UVgKlwWFcyjsYfv/zEDuRdMctQv1q6HQ==} peerDependencies: - '@cspell/dict-css': ^4.1.1 + '@cspell/dict-css': ^4.1.2 '@cspell/dict-html': ^4.0.15 '@cspell/dict-html-symbol-entities': ^4.0.5 '@cspell/dict-typescript': ^3.2.3 @@ -233,8 +292,8 @@ packages: '@cspell/dict-node@5.0.9': resolution: {integrity: sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==} - '@cspell/dict-npm@5.2.38': - resolution: {integrity: sha512-21ucGRPYYhr91C2cDBoMPTrcIOStQv33xOqJB0JLoC5LAs2Sfj9EoPGhGb+gIFVHz6Ia7JQWE2SJsOVFJD1wmg==} + '@cspell/dict-npm@5.2.43': + resolution: {integrity: sha512-H2gYwtu59dNO9662Uq0usfuhyNd7lZJE1C61a/UXcpRyWWSrTo2Bz+vwGYp1bXZ1LmjXadqvwJ8ArFlGdiadNQ==} '@cspell/dict-php@4.1.1': resolution: {integrity: sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==} @@ -245,8 +304,8 @@ packages: '@cspell/dict-public-licenses@2.0.16': resolution: {integrity: sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==} - '@cspell/dict-python@4.2.26': - resolution: {integrity: sha512-hbjN6BjlSgZOG2dA2DtvYNGBM5Aq0i0dHaZjMOI9K/9vRicVvKbcCiBSSrR3b+jwjhQL5ff7HwG5xFaaci0GQA==} + '@cspell/dict-python@4.2.29': + resolution: {integrity: sha512-OnEt1a35iuQzc2Ize1qU/43ZyF10urRKAm+mlTz++vnAgDLBHpKfWakpSK50nyL5/1WvyQ8BaMjb52MBLEpTeA==} '@cspell/dict-r@2.1.1': resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} @@ -260,11 +319,11 @@ packages: '@cspell/dict-scala@5.0.9': resolution: {integrity: sha512-AjVcVAELgllybr1zk93CJ5wSUNu/Zb5kIubymR/GAYkMyBdYFCZ3Zbwn4Zz8GJlFFAbazABGOu0JPVbeY59vGg==} - '@cspell/dict-shell@1.1.2': - resolution: {integrity: sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==} + '@cspell/dict-shell@1.2.0': + resolution: {integrity: sha512-PVctvT22lJ49niMiakO8xieY7ELCAzjSqhejWR7bAMb5AZ9F4WDEs+XdGMnoVHWeXq7K5rcepLPmEJb+37zzIw==} - '@cspell/dict-software-terms@5.2.2': - resolution: {integrity: sha512-0CaYd6TAsKtEoA7tNswm1iptEblTzEe3UG8beG2cpSTHk7afWIVMtJLgXDv0f/Li67Lf3Z1Jf3JeXR7GsJ2TRw==} + '@cspell/dict-software-terms@5.2.4': + resolution: {integrity: sha512-z6y/TGH3QNf5wB4pVvN/P3GfFEW/Whf6QAekNsIn06VKl95dnamfpkPWqV8rEtCixQFaKalb5+y9hRQXH3XQ1g==} '@cspell/dict-sql@2.2.1': resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} @@ -275,8 +334,8 @@ packages: '@cspell/dict-swift@2.0.6': resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} - '@cspell/dict-terraform@1.1.3': - resolution: {integrity: sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==} + '@cspell/dict-terraform@1.1.4': + resolution: {integrity: sha512-Ere42ilvMFvQA4GlcN0OKlruMPR6EsvaB+iTHzj2xc+NJGRK64V7yApUcWrOrSgTiM/vhWXPIsK3OMfiAiNdmA==} '@cspell/dict-typescript@3.2.3': resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==} @@ -325,6 +384,15 @@ packages: prettier-plugin-ember-template-tag: optional: true + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -338,6 +406,12 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -350,16 +424,16 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@types/parse-path@7.1.0': - resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} - deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@vercel/detect-agent@1.2.3': - resolution: {integrity: sha512-VYNCgUc0nOmC4WJmWw9GkrKdfr8Zl4/rxhC5SvgacBgxiW9W/9NRttUoHHXV8xdII3MaRgkZZVX8Ikzc/Jmjag==} - engines: {node: '>=14'} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} - '@yarnpkg/lockfile@1.1.0': - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} ansi-regex@6.2.2: resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} @@ -369,30 +443,30 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} array-timsort@1.0.3: resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - beachball@2.65.4: - resolution: {integrity: sha512-ag2DrWfFMOPhjM0gnJXLsgqF2hJ9he1vyqjoS9bHwiGUFpaQuO8MB3mj2AeI+PwNztaTx8yBzFSP6vdrAyDXhg==} - engines: {node: '>=14.0.0'} - hasBin: true - - brace-expansion@1.1.14: - resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} - brace-expansion@5.0.5: - resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} - engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + engines: {node: 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -410,8 +484,11 @@ packages: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - clear-module@4.1.2: - resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} + chardet@2.2.0: + resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==} + + clear-module@4.1.3: + resolution: {integrity: sha512-XdLrg7BnbXKntyrbs2dNjDN9CVoTQ+WV0i7jT5/r9ahzAaSDSzC9e2OVZB/QVwbxBb1/1AeObzjlxsYk5HFvww==} engines: {node: '>=8'} cliui@9.0.1: @@ -426,18 +503,6 @@ packages: resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} engines: {node: '>= 6'} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - cosmiconfig@9.0.1: - resolution: {integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - cpx2@8.0.2: resolution: {integrity: sha512-exLFEIh8XgWthEtrEq8hs+S6jxM5ZHpjQnRH6D7VU+2uAYS3amLSVOUSuirfx3HeN7WBCq+xFygHpt7l+gQtUA==} engines: {node: ^20.0.0 || >=22.0.0, npm: '>=10'} @@ -501,20 +566,25 @@ packages: supports-color: optional: true + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} env-paths@4.0.0: resolution: {integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==} engines: {node: '>=20'} - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} @@ -528,12 +598,11 @@ packages: engines: {node: '>=4'} hasBin: true - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - fast-equals@6.0.0: - resolution: {integrity: sha512-PFhhIGgdM79r5Uztdj9Zb6Tt1zKafqVfdMGwVca1z5z6fbX7DmsySSuJd8HiP6I1j505DCS83cLxo5rmSNeVEA==} + fast-equals@6.0.2: + resolution: {integrity: sha512-sAjhj9ZhOxYCGiNMnZLaucOqf5ZeFnHNoKoAZiD9thhJ0N8RP85qJK759/97C/3L7NzzmGVB5uiX9AUpySZmUQ==} engines: {node: '>=6.0.0'} fast-glob@3.3.3: @@ -562,8 +631,20 @@ packages: find-index@0.1.1: resolution: {integrity: sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==} - flatted@3.4.2: - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -581,20 +662,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.5.0: - resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} engines: {node: '>=18'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - git-up@8.1.1: - resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==} - - git-url-parse@16.1.0: - resolution: {integrity: sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==} - glob-hasher-darwin-arm64@1.4.2: resolution: {integrity: sha512-zqCZDkDrgo86UsEbOV5wnfyAVlNQ85clGt9EV4LlskDmv2aeuHD6dFYU8hLbbQSC7nvd90EWewy1WqvV6KsL7A==} engines: {node: '>= 10'} @@ -646,16 +717,31 @@ packages: resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} engines: {node: '>=20'} - hasown@2.0.3: - resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + human-id@4.2.0: + resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==} + hasBin: true + + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + ignore@7.0.6: + resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} engines: {node: '>= 4'} import-fresh@3.3.1: @@ -669,9 +755,6 @@ packages: resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} engines: {node: ^20.17.0 || >=22.9.0} - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-core-module@2.16.2: resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} @@ -692,24 +775,26 @@ packages: resolution: {integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==} engines: {node: '>=20'} - is-ssh@1.4.1: - resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + js-yaml@3.15.0: + resolution: {integrity: sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==} + hasBin: true + + js-yaml@4.3.0: + resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} hasBin: true jsesc@3.1.0: @@ -717,28 +802,25 @@ packages: engines: {node: '>=6'} hasBin: true - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - lage@2.15.12: - resolution: {integrity: sha512-4q7IqUo9Czae79DfRDfn+DJFc9eiQjEVh0t5GLGCXcWlwL1fkZgP2TE7LBtc2hBq4+FANB407a2VXkstdIQumg==} + lage@2.15.17: + resolution: {integrity: sha512-f99L+jUcBsDYg/tjDml+fWQr4d11URwAFiDI70rNgea2V0N//AGgIpnLoIgW2/c+CfastpQUE+sYZ7Y3OCjyPg==} engines: {node: '>=16.14.0'} hasBin: true - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lru-cache@11.3.6: - resolution: {integrity: sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==} + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} engines: {node: 20 || >=22} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -747,17 +829,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} engines: {node: 18 || 20 || >=22} - minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -765,28 +840,43 @@ packages: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} - p-graph@1.3.0: - resolution: {integrity: sha512-QL8xXlJl/oWWbzQK0de3KMFDzCXF8SQ2medloXxRFI1GUjNFBHiOtNv7X1azGBzF1SolIhm+gZ5XshBo6+3sdw==} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} - p-map@7.0.4: - resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + p-map@7.0.6: + resolution: {integrity: sha512-I4Prw6ivkd6p8PiYR1tXASOAOBzIJwu0TB7fqaX0c/8c3QAehNYmX57EijyGGGBt3c/BIowGwV03RVBtXvHEVg==} engines: {node: '>=18'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -795,17 +885,10 @@ packages: resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} engines: {node: '>=8'} - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - parse-path@7.1.0: - resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} - - parse-url@9.2.0: - resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} - engines: {node: '>=14.13.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -817,6 +900,10 @@ packages: resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} engines: {node: 18 || 20 || >=22} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -824,25 +911,34 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} - prettier@3.8.3: - resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} - engines: {node: '>=14'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} hasBin: true - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + prettier@3.9.6: + resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==} + engines: {node: '>=14'} + hasBin: true - protocols@2.0.2: - resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -863,8 +959,11 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true @@ -876,31 +975,47 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + shell-quote@1.10.0: + resolution: {integrity: sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==} engines: {node: '>= 0.4'} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} - smol-toml@1.6.1: - resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} + smol-toml@1.7.1: + resolution: {integrity: sha512-PPlsspAZ4jbMBu5DMFhfUGDQLu/vrL4SyBROVS37x8ynnVmFIs1VPBz1Co8Xks3TvpIaZXmU85y4DrQ+UyVFoQ==} engines: {node: '>= 18'} + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string-width@8.2.2: + resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==} + engines: {node: '>=20'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + strip-ansi@7.2.0: resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} subarg@1.0.0: resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} @@ -909,14 +1024,22 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tinyglobby@0.2.16: - resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + vscode-languageserver-textdocument@1.0.12: resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} @@ -928,9 +1051,6 @@ packages: engines: {node: '>= 8'} hasBin: true - workspace-tools@0.41.7: - resolution: {integrity: sha512-krsae4CHOG+jBRj76xtiFeQ35BEJC1Yb4601a3dLoZm1oeswSRiEvgcHJel2JXZESiKT/pXiISOodpLsIKWf+Q==} - wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} @@ -943,96 +1063,233 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yaml@2.8.4: - resolution: {integrity: sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==} + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} engines: {node: '>= 14.6'} hasBin: true - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - yargs-parser@22.0.0: resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yargs@18.0.0: - resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + yargs@18.1.0: + resolution: {integrity: sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - snapshots: - '@babel/code-frame@7.29.0': + '@babel/code-frame@7.29.7': dependencies: - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/generator@7.29.1': + '@babel/generator@7.29.7': dependencies: - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@7.29.7': {} - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.29.7': {} - '@babel/parser@7.29.3': + '@babel/parser@7.29.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 + + '@babel/runtime@7.29.7': {} - '@babel/template@7.28.6': + '@babel/template@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.3 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 - '@babel/traverse@7.29.0': + '@babel/traverse@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.3 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.29.0': + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@changesets/apply-release-plan@7.1.1': + dependencies: + '@changesets/config': 3.1.4 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.8.5 + + '@changesets/assemble-release-plan@6.0.10': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.8.5 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/cli@2.31.1': + dependencies: + '@changesets/apply-release-plan': 7.1.1 + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.4 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/get-release-plan': 4.0.16 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.7 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@changesets/write': 0.4.0 + '@inquirer/external-editor': 1.0.3 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + enquirer: 2.4.1 + fs-extra: 7.0.1 + mri: 1.2.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.8.5 + spawndamnit: 3.0.1 + term-size: 2.2.1 + transitivePeerDependencies: + - '@types/node' + + '@changesets/config@3.1.4': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.4 + '@changesets/logger': 0.1.1 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.4': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.8.5 + + '@changesets/get-release-plan@4.0.16': + dependencies: + '@changesets/assemble-release-plan': 6.0.10 + '@changesets/config': 3.1.4 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.7 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.3': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@changesets/types': 6.1.0 + js-yaml: 4.3.0 + + '@changesets/pre@2.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.7': + dependencies: + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.3 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.2': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.2.0 + prettier: 2.8.8 '@cspell/cspell-bundled-dicts@9.8.0': dependencies: '@cspell/dict-ada': 4.1.1 '@cspell/dict-al': 1.1.1 '@cspell/dict-aws': 4.0.17 - '@cspell/dict-bash': 4.2.2 - '@cspell/dict-companies': 3.2.11 + '@cspell/dict-bash': 4.2.3 + '@cspell/dict-companies': 3.2.12 '@cspell/dict-cpp': 7.0.2 '@cspell/dict-cryptocurrencies': 5.0.5 '@cspell/dict-csharp': 4.0.8 - '@cspell/dict-css': 4.1.1 + '@cspell/dict-css': 4.1.2 '@cspell/dict-dart': 2.3.2 - '@cspell/dict-data-science': 2.0.13 + '@cspell/dict-data-science': 2.0.16 '@cspell/dict-django': 4.1.6 '@cspell/dict-docker': 1.1.17 '@cspell/dict-dotnet': 5.0.13 '@cspell/dict-elixir': 4.0.8 - '@cspell/dict-en-common-misspellings': 2.1.12 - '@cspell/dict-en-gb-mit': 3.1.22 - '@cspell/dict-en_us': 4.4.33 + '@cspell/dict-en-common-misspellings': 2.1.13 + '@cspell/dict-en-gb-mit': 3.1.25 + '@cspell/dict-en_us': 4.4.36 '@cspell/dict-filetypes': 3.0.18 '@cspell/dict-flutter': 1.1.1 '@cspell/dict-fonts': 4.0.6 @@ -1047,30 +1304,30 @@ snapshots: '@cspell/dict-html-symbol-entities': 4.0.5 '@cspell/dict-java': 5.0.12 '@cspell/dict-julia': 1.1.1 - '@cspell/dict-k8s': 1.0.12 + '@cspell/dict-k8s': 1.0.13 '@cspell/dict-kotlin': 1.1.1 '@cspell/dict-latex': 5.1.0 '@cspell/dict-lorem-ipsum': 4.0.5 '@cspell/dict-lua': 4.0.8 '@cspell/dict-makefile': 1.0.5 - '@cspell/dict-markdown': 2.0.16(@cspell/dict-css@4.1.1)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3) + '@cspell/dict-markdown': 2.0.17(@cspell/dict-css@4.1.2)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3) '@cspell/dict-monkeyc': 1.0.12 '@cspell/dict-node': 5.0.9 - '@cspell/dict-npm': 5.2.38 + '@cspell/dict-npm': 5.2.43 '@cspell/dict-php': 4.1.1 '@cspell/dict-powershell': 5.0.15 '@cspell/dict-public-licenses': 2.0.16 - '@cspell/dict-python': 4.2.26 + '@cspell/dict-python': 4.2.29 '@cspell/dict-r': 2.1.1 '@cspell/dict-ruby': 5.1.1 '@cspell/dict-rust': 4.1.2 '@cspell/dict-scala': 5.0.9 - '@cspell/dict-shell': 1.1.2 - '@cspell/dict-software-terms': 5.2.2 + '@cspell/dict-shell': 1.2.0 + '@cspell/dict-software-terms': 5.2.4 '@cspell/dict-sql': 2.2.1 '@cspell/dict-svelte': 1.0.7 '@cspell/dict-swift': 2.0.6 - '@cspell/dict-terraform': 1.1.3 + '@cspell/dict-terraform': 1.1.4 '@cspell/dict-typescript': 3.2.3 '@cspell/dict-vue': 3.0.5 '@cspell/dict-zig': 1.0.0 @@ -1101,11 +1358,11 @@ snapshots: '@cspell/dict-aws@4.0.17': {} - '@cspell/dict-bash@4.2.2': + '@cspell/dict-bash@4.2.3': dependencies: - '@cspell/dict-shell': 1.1.2 + '@cspell/dict-shell': 1.2.0 - '@cspell/dict-companies@3.2.11': {} + '@cspell/dict-companies@3.2.12': {} '@cspell/dict-cpp@7.0.2': {} @@ -1113,11 +1370,11 @@ snapshots: '@cspell/dict-csharp@4.0.8': {} - '@cspell/dict-css@4.1.1': {} + '@cspell/dict-css@4.1.2': {} '@cspell/dict-dart@2.3.2': {} - '@cspell/dict-data-science@2.0.13': {} + '@cspell/dict-data-science@2.0.16': {} '@cspell/dict-django@4.1.6': {} @@ -1127,11 +1384,11 @@ snapshots: '@cspell/dict-elixir@4.0.8': {} - '@cspell/dict-en-common-misspellings@2.1.12': {} + '@cspell/dict-en-common-misspellings@2.1.13': {} - '@cspell/dict-en-gb-mit@3.1.22': {} + '@cspell/dict-en-gb-mit@3.1.25': {} - '@cspell/dict-en_us@4.4.33': {} + '@cspell/dict-en_us@4.4.36': {} '@cspell/dict-filetypes@3.0.18': {} @@ -1161,7 +1418,7 @@ snapshots: '@cspell/dict-julia@1.1.1': {} - '@cspell/dict-k8s@1.0.12': {} + '@cspell/dict-k8s@1.0.13': {} '@cspell/dict-kotlin@1.1.1': {} @@ -1173,9 +1430,9 @@ snapshots: '@cspell/dict-makefile@1.0.5': {} - '@cspell/dict-markdown@2.0.16(@cspell/dict-css@4.1.1)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3)': + '@cspell/dict-markdown@2.0.17(@cspell/dict-css@4.1.2)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3)': dependencies: - '@cspell/dict-css': 4.1.1 + '@cspell/dict-css': 4.1.2 '@cspell/dict-html': 4.0.15 '@cspell/dict-html-symbol-entities': 4.0.5 '@cspell/dict-typescript': 3.2.3 @@ -1184,7 +1441,7 @@ snapshots: '@cspell/dict-node@5.0.9': {} - '@cspell/dict-npm@5.2.38': {} + '@cspell/dict-npm@5.2.43': {} '@cspell/dict-php@4.1.1': {} @@ -1192,9 +1449,9 @@ snapshots: '@cspell/dict-public-licenses@2.0.16': {} - '@cspell/dict-python@4.2.26': + '@cspell/dict-python@4.2.29': dependencies: - '@cspell/dict-data-science': 2.0.13 + '@cspell/dict-data-science': 2.0.16 '@cspell/dict-r@2.1.1': {} @@ -1204,9 +1461,9 @@ snapshots: '@cspell/dict-scala@5.0.9': {} - '@cspell/dict-shell@1.1.2': {} + '@cspell/dict-shell@1.2.0': {} - '@cspell/dict-software-terms@5.2.2': {} + '@cspell/dict-software-terms@5.2.4': {} '@cspell/dict-sql@2.2.1': {} @@ -1214,7 +1471,7 @@ snapshots: '@cspell/dict-swift@2.0.6': {} - '@cspell/dict-terraform@1.1.3': {} + '@cspell/dict-terraform@1.1.4': {} '@cspell/dict-typescript@3.2.3': {} @@ -1235,17 +1492,22 @@ snapshots: '@cspell/url@9.8.0': {} - '@ianvs/prettier-plugin-sort-imports@4.7.1(prettier@3.8.3)': + '@ianvs/prettier-plugin-sort-imports@4.7.1(prettier@3.9.6)': dependencies: - '@babel/generator': 7.29.1 - '@babel/parser': 7.29.3 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - prettier: 3.8.3 - semver: 7.7.4 + '@babel/generator': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + prettier: 3.9.6 + semver: 7.8.5 transitivePeerDependencies: - supports-color + '@inquirer/external-editor@1.0.3': + dependencies: + chardet: 2.2.0 + iconv-lite: 0.7.3 + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -1260,6 +1522,22 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.29.7 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.29.7 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1272,47 +1550,33 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@types/parse-path@7.1.0': - dependencies: - parse-path: 7.1.0 + '@types/node@12.20.55': {} - '@vercel/detect-agent@1.2.3': {} + ansi-colors@4.1.3: {} - '@yarnpkg/lockfile@1.1.0': {} + ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} ansi-styles@6.2.3: {} + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + argparse@2.0.1: {} array-timsort@1.0.3: {} - balanced-match@1.0.2: {} + array-union@2.1.0: {} balanced-match@4.0.4: {} - beachball@2.65.4: - dependencies: - '@vercel/detect-agent': 1.2.3 - cosmiconfig: 9.0.1 - execa: 5.1.1 - minimatch: 3.1.5 - p-graph: 1.3.0 - p-limit: 3.1.0 - prompts: 2.4.2 - semver: 7.7.4 - workspace-tools: 0.41.7 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - typescript - - brace-expansion@1.1.14: + better-path-resolve@1.0.0: dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 + is-windows: 1.0.2 - brace-expansion@5.0.5: + brace-expansion@5.0.9: dependencies: balanced-match: 4.0.4 @@ -1328,7 +1592,9 @@ snapshots: chalk@5.6.2: {} - clear-module@4.1.2: + chardet@2.2.0: {} + + clear-module@4.1.3: dependencies: parent-module: 2.0.0 resolve-from: 5.0.0 @@ -1346,25 +1612,16 @@ snapshots: array-timsort: 1.0.3 esprima: 4.0.1 - concat-map@0.0.1: {} - - cosmiconfig@9.0.1: - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - parse-json: 5.2.0 - cpx2@8.0.2: dependencies: debounce: 3.0.0 glob: 13.0.6 glob2base: 0.0.12 - ignore: 7.0.5 - minimatch: 10.2.5 - p-map: 7.0.4 + ignore: 7.0.6 + minimatch: 10.2.6 + p-map: 7.0.6 resolve: 1.22.12 - shell-quote: 1.8.3 + shell-quote: 1.10.0 subarg: 1.0.0 cross-spawn@7.0.6: @@ -1377,8 +1634,8 @@ snapshots: dependencies: '@cspell/cspell-types': 9.8.0 comment-json: 4.6.2 - smol-toml: 1.6.1 - yaml: 2.8.4 + smol-toml: 1.7.1 + yaml: 2.9.0 cspell-dictionary@9.8.0: dependencies: @@ -1386,7 +1643,7 @@ snapshots: '@cspell/cspell-pipe': 9.8.0 '@cspell/cspell-types': 9.8.0 cspell-trie-lib: 9.8.0(@cspell/cspell-types@9.8.0) - fast-equals: 6.0.0 + fast-equals: 6.0.2 cspell-gitignore@9.8.0: dependencies: @@ -1397,7 +1654,7 @@ snapshots: cspell-glob@9.8.0: dependencies: '@cspell/url': 9.8.0 - picomatch: 4.0.4 + picomatch: 4.0.5 cspell-grammar@9.8.0: dependencies: @@ -1421,7 +1678,7 @@ snapshots: '@cspell/rpc': 9.8.0 '@cspell/strong-weak-map': 9.8.0 '@cspell/url': 9.8.0 - clear-module: 4.1.2 + clear-module: 4.1.3 cspell-config-lib: 9.8.0 cspell-dictionary: 9.8.0 cspell-glob: 9.8.0 @@ -1460,9 +1717,9 @@ snapshots: cspell-io: 9.8.0 cspell-lib: 9.8.0 fast-json-stable-stringify: 2.1.0 - flatted: 3.4.2 - semver: 7.7.4 - tinyglobby: 0.2.16 + flatted: 3.4.4 + semver: 7.8.5 + tinyglobby: 0.2.17 debounce@3.0.0: {} @@ -1470,37 +1727,32 @@ snapshots: dependencies: ms: 2.1.3 + detect-indent@6.1.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + emoji-regex@10.6.0: {} - env-paths@2.2.1: {} + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 env-paths@4.0.0: dependencies: is-safe-filename: 0.1.1 - error-ex@1.3.4: - dependencies: - is-arrayish: 0.2.1 - es-errors@1.3.0: {} escalade@3.2.0: {} esprima@4.0.1: {} - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 + extendable-error@0.1.7: {} - fast-equals@6.0.0: {} + fast-equals@6.0.2: {} fast-glob@3.3.3: dependencies: @@ -1516,9 +1768,9 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.5.0(picomatch@4.0.4): + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 fill-range@7.1.1: dependencies: @@ -1526,7 +1778,24 @@ snapshots: find-index@0.1.1: {} - flatted@3.4.2: {} + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + flatted@3.4.4: {} + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 fsevents@2.3.3: optional: true @@ -1537,18 +1806,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.5.0: {} - - get-stream@6.0.1: {} - - git-up@8.1.1: - dependencies: - is-ssh: 1.4.1 - parse-url: 9.2.0 - - git-url-parse@16.1.0: - dependencies: - git-up: 8.1.1 + get-east-asian-width@1.6.0: {} glob-hasher-darwin-arm64@1.4.2: optional: true @@ -1583,7 +1841,7 @@ snapshots: glob@13.0.6: dependencies: - minimatch: 10.2.5 + minimatch: 10.2.6 minipass: 7.1.3 path-scurry: 2.0.2 @@ -1591,13 +1849,30 @@ snapshots: dependencies: ini: 6.0.0 - hasown@2.0.3: + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + graceful-fs@4.2.11: {} + + hasown@2.0.4: dependencies: function-bind: 1.1.2 - human-signals@2.1.0: {} + human-id@4.2.0: {} - ignore@7.0.5: {} + iconv-lite@0.7.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + ignore@7.0.6: {} import-fresh@3.3.1: dependencies: @@ -1608,11 +1883,9 @@ snapshots: ini@6.0.0: {} - is-arrayish@0.2.1: {} - is-core-module@2.16.2: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-extglob@2.1.1: {} @@ -1624,39 +1897,44 @@ snapshots: is-safe-filename@0.1.1: {} - is-ssh@1.4.1: + is-subdir@1.2.0: dependencies: - protocols: 2.0.2 + better-path-resolve: 1.0.0 - is-stream@2.0.1: {} + is-windows@1.0.2: {} isexe@2.0.0: {} - jju@1.4.0: {} - js-tokens@4.0.0: {} - js-yaml@4.1.1: + js-yaml@3.15.0: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.3.0: dependencies: argparse: 2.0.1 jsesc@3.1.0: {} - json-parse-even-better-errors@2.3.1: {} - - kleur@3.0.3: {} + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 - lage@2.15.12: + lage@2.15.17: dependencies: glob-hasher: 1.4.2 optionalDependencies: fsevents: 2.3.3 - lines-and-columns@1.2.4: {} + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 - lru-cache@11.3.6: {} + lodash.startcase@4.4.0: {} - merge-stream@2.0.0: {} + lru-cache@11.5.2: {} merge2@1.4.1: {} @@ -1665,37 +1943,41 @@ snapshots: braces: 3.0.3 picomatch: 2.3.2 - mimic-fn@2.1.0: {} - - minimatch@10.2.5: + minimatch@10.2.6: dependencies: - brace-expansion: 5.0.5 - - minimatch@3.1.5: - dependencies: - brace-expansion: 1.1.14 + brace-expansion: 5.0.9 minimist@1.2.8: {} minipass@7.1.3: {} + mri@1.2.0: {} + ms@2.1.3: {} - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 + outdent@0.5.0: {} - onetime@5.1.2: + p-filter@2.1.0: dependencies: - mimic-fn: 2.1.0 + p-map: 2.1.0 - p-graph@1.3.0: {} + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 - p-limit@3.1.0: + p-locate@4.1.0: dependencies: - yocto-queue: 0.1.0 + p-limit: 2.3.0 + + p-map@2.1.0: {} + + p-map@7.0.6: {} - p-map@7.0.4: {} + p-try@2.2.0: {} + + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.11 parent-module@1.0.1: dependencies: @@ -1705,21 +1987,7 @@ snapshots: dependencies: callsites: 3.1.0 - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.29.0 - error-ex: 1.3.4 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse-path@7.1.0: - dependencies: - protocols: 2.0.2 - - parse-url@9.2.0: - dependencies: - '@types/parse-path': 7.1.0 - parse-path: 7.1.0 + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -1727,26 +1995,34 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.3.6 + lru-cache: 11.5.2 minipass: 7.1.3 + path-type@4.0.0: {} + picocolors@1.1.1: {} picomatch@2.3.2: {} - picomatch@4.0.4: {} + picomatch@4.0.5: {} - prettier@3.8.3: {} + pify@4.0.1: {} - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 + prettier@2.8.8: {} + + prettier@3.9.6: {} - protocols@2.0.2: {} + quansync@0.2.11: {} queue-microtask@1.2.3: {} + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.15.0 + pify: 4.0.1 + strip-bom: 3.0.0 + resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -1764,7 +2040,9 @@ snapshots: dependencies: queue-microtask: 1.2.3 - semver@7.7.4: {} + safer-buffer@2.1.2: {} + + semver@7.8.5: {} shebang-command@2.0.0: dependencies: @@ -1772,25 +2050,41 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.3: {} + shell-quote@1.10.0: {} + + signal-exit@4.1.0: {} - signal-exit@3.0.7: {} + slash@3.0.0: {} - sisteransi@1.0.5: {} + smol-toml@1.7.1: {} - smol-toml@1.6.1: {} + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + sprintf-js@1.0.3: {} string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.5.0 + get-east-asian-width: 1.6.0 + strip-ansi: 7.2.0 + + string-width@8.2.2: + dependencies: + get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + strip-ansi@7.2.0: dependencies: ansi-regex: 6.2.2 - strip-final-newline@2.0.0: {} + strip-bom@3.0.0: {} subarg@1.0.0: dependencies: @@ -1798,15 +2092,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - tinyglobby@0.2.16: + term-size@2.2.1: {} + + tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + universalify@0.1.2: {} + vscode-languageserver-textdocument@1.0.12: {} vscode-uri@3.1.0: {} @@ -1815,15 +2113,6 @@ snapshots: dependencies: isexe: 2.0.0 - workspace-tools@0.41.7: - dependencies: - '@yarnpkg/lockfile': 1.1.0 - fast-glob: 3.3.3 - git-url-parse: 16.1.0 - jju: 1.4.0 - js-yaml: 4.1.1 - micromatch: 4.0.8 - wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 @@ -1834,19 +2123,15 @@ snapshots: y18n@5.0.8: {} - yaml@2.8.4: {} - - yargs-parser@21.1.1: {} + yaml@2.9.0: {} yargs-parser@22.0.0: {} - yargs@18.0.0: + yargs@18.1.0: dependencies: cliui: 9.0.1 escalade: 3.2.0 get-caller-file: 2.0.5 - string-width: 7.2.0 + string-width: 8.2.2 y18n: 5.0.8 yargs-parser: 22.0.0 - - yocto-queue@0.1.0: {} diff --git a/scripts/check-package-versions.js b/scripts/check-package-versions.js new file mode 100644 index 0000000000..7919f55a6d --- /dev/null +++ b/scripts/check-package-versions.js @@ -0,0 +1,61 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ + +/** + * Prevents feature pull requests from changing public package versions. Changesets publishes + * versions that are newer than those on npm, even when the version was edited manually. + * Restricting version changes to the trusted Changesets release pull request ensures package + * versions, changelogs, and release metadata are generated together. Newly public packages must + * start at 0.0.0 so they cannot be published before Changesets assigns their release version. + */ +const fs = require("fs"); +const { execFileSync } = require("child_process"); + +const base = process.argv[2] ?? "origin/master"; +const changedFiles = new Set([...getChangedPackageFiles(`${base}...HEAD`), ...getChangedPackageFiles("HEAD")]); + +const errors = []; + +for (const file of changedFiles) { + const currentPackage = JSON.parse(fs.readFileSync(file, "utf8")); + if (currentPackage.private) { + continue; + } + + const basePackage = readPackageAtRevision(base, file); + if (!basePackage || basePackage.private) { + if (currentPackage.version !== "0.0.0") { + errors.push(`${file}: newly public packages must start at version 0.0.0, found ${currentPackage.version}`); + } + continue; + } + + if (currentPackage.version !== basePackage.version) { + errors.push(`${file}: version changed from ${basePackage.version} to ${currentPackage.version}`); + } +} + +if (errors.length > 0) { + console.error("Package versions may only be changed by the Changesets release pull request:\n"); + console.error(errors.map((error) => `- ${error}`).join("\n")); + process.exit(1); +} + +console.log("Public package versions are unchanged."); + +function readPackageAtRevision(revision, file) { + try { + return JSON.parse(execFileSync("git", ["show", `${revision}:${file}`], { encoding: "utf8" })); + } catch { + return undefined; + } +} + +function getChangedPackageFiles(revision) { + return execFileSync("git", ["diff", "--name-only", "--diff-filter=AM", revision], { encoding: "utf8" }) + .trim() + .split("\n") + .filter((file) => file.endsWith("package.json")); +} diff --git a/scripts/create-changeset.js b/scripts/create-changeset.js new file mode 100644 index 0000000000..c5d4077ce8 --- /dev/null +++ b/scripts/create-changeset.js @@ -0,0 +1,61 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Bentley Systems, Incorporated. All rights reserved. + * See LICENSE.md in the project root for license terms and full copyright notice. + *--------------------------------------------------------------------------------------------*/ + +/** + * Runs the interactive Changesets CLI, then prefixes its random output filename for CODEOWNERS. + * Single-package changesets use the package name; multi-package changesets use "multi-package" prefix. Empty changesets are rejected because changes that + * do not require a release need no changeset. + */ +const fs = require("fs"); +const path = require("path"); +const { spawnSync } = require("child_process"); + +const changesetDirectory = path.resolve(".changeset"); +const existingChangesets = new Set(getChangesetFiles()); +const result = spawnSync("pnpm", ["exec", "changeset", "add", ...process.argv.slice(2)], { stdio: "inherit" }); + +if (result.status !== 0) { + process.exit(result.status ?? 1); +} + +for (const changesetFile of getChangesetFiles().filter((file) => !existingChangesets.has(file))) { + prefixChangeset(changesetFile); +} + +function prefixChangeset(changesetFile) { + const sourcePath = path.join(changesetDirectory, changesetFile); + const content = fs.readFileSync(sourcePath, "utf8"); + const parts = content.split("---"); + if (parts.length < 3) { + throw new Error(`Invalid changeset in ${changesetFile}.`); + } + let affectedPackagesString = parts[1]; + const removableParts = ['"', "major", "minor", "patch", ":"]; + for (const part of removableParts) { + affectedPackagesString = affectedPackagesString.replaceAll(part, ""); + } + const affectedPackages = affectedPackagesString + .split("\n") + .map((line) => line.trim()) + .filter((line) => line.length > 0); + + if (affectedPackages.length === 0) { + fs.unlinkSync(sourcePath); + throw new Error("Empty changesets are not allowed. The generated file was removed."); + } + + const packagePrefix = affectedPackages.length === 1 ? toFilePrefix(affectedPackages[0]) : "multi-package"; + const targetFile = `${packagePrefix}-${changesetFile}`; + fs.renameSync(sourcePath, path.join(changesetDirectory, targetFile)); + console.log(`Created .changeset/${targetFile}`); +} + +function toFilePrefix(packageName) { + return packageName.replaceAll("/", "-"); +} + +function getChangesetFiles() { + return fs.readdirSync(changesetDirectory).filter((file) => file.endsWith(".md") && file !== "README.md"); +} From fcbd6825a993094e559267f89cc3902728d619bb Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Fri, 31 Jul 2026 12:30:55 +0000 Subject: [PATCH 02/10] Fix comments --- .changeset/changelog-github.mjs | 17 +++++++++++++++-- .github/workflows/ci.yml | 2 +- scripts/create-changeset.js | 21 ++++++++++++--------- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/.changeset/changelog-github.mjs b/.changeset/changelog-github.mjs index a57fc47080..bbaa01e5c1 100644 --- a/.changeset/changelog-github.mjs +++ b/.changeset/changelog-github.mjs @@ -31,9 +31,22 @@ export default changelogFunctions; async function getPullRequestLink(repository, commit) { try { - const response = await fetch(`https://api.github.com/repos/${repository}/commits/${commit}/pulls`); + const headers = { + Accept: "application/vnd.github+json", + ...(process.env.GITHUB_TOKEN ? { Authorization: `Bearer ${process.env.GITHUB_TOKEN}` } : {}), + }; + + const response = await fetch(`https://api.github.com/repos/${repository}/commits/${commit}/pulls`, { headers }); + if (!response.ok) { + throw new Error(`GitHub returned ${response.status} while resolving commit ${commit}.`); + } + const pullRequests = await response.json(); - const pullRequest = pullRequests.find(({ merge_commit_sha: mergeCommit }) => mergeCommit?.includes(commit)); + if (!Array.isArray(pullRequests)) { + throw new Error("GitHub returned an unexpected pull request response."); + } + + const pullRequest = pullRequests.find(({ merge_commit_sha: mergeCommit }) => mergeCommit?.startsWith(commit)); if (pullRequest) { return `[#${pullRequest.number}](https://github.com/${repository}/pull/${pullRequest.number})`; diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6549d8e172..df96e3725c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,7 +43,7 @@ jobs: cache: 'pnpm' - name: Prevent manual package version changes - run: pnpm check:versions + run: pnpm check:versions -- ${{ github.event.pull_request.base.sha }} audit: runs-on: ubuntu-latest diff --git a/scripts/create-changeset.js b/scripts/create-changeset.js index c5d4077ce8..e662cc1b12 100644 --- a/scripts/create-changeset.js +++ b/scripts/create-changeset.js @@ -27,19 +27,22 @@ for (const changesetFile of getChangesetFiles().filter((file) => !existingChange function prefixChangeset(changesetFile) { const sourcePath = path.join(changesetDirectory, changesetFile); const content = fs.readFileSync(sourcePath, "utf8"); - const parts = content.split("---"); - if (parts.length < 3) { + const frontmatter = content.match(/^---\r?\n([\s\S]*?)^---\r?\n/m); + if (!frontmatter) { throw new Error(`Invalid changeset in ${changesetFile}.`); } - let affectedPackagesString = parts[1]; - const removableParts = ['"', "major", "minor", "patch", ":"]; - for (const part of removableParts) { - affectedPackagesString = affectedPackagesString.replaceAll(part, ""); - } - const affectedPackages = affectedPackagesString - .split("\n") + + const releaseLines = frontmatter[1] + .split(/\r?\n/) .map((line) => line.trim()) .filter((line) => line.length > 0); + const affectedPackages = releaseLines.map((line) => { + const release = line.match(/^"([^"]+)":\s*(?:major|minor|patch)$/); + if (!release) { + throw new Error(`Invalid changeset release in ${changesetFile}: ${line}`); + } + return release[1]; + }); if (affectedPackages.length === 0) { fs.unlinkSync(sourcePath); From 8e275c6268aaa22015da5d9bc9f39bb39dcdd5cf Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Fri, 31 Jul 2026 12:36:28 +0000 Subject: [PATCH 03/10] prettier --- .../trees/categories-tree/CategoriesTreeDefinition.ts | 10 ++++------ .../components/trees/common/UseTelemetryContext.tsx | 8 +------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.ts b/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.ts index cff1ef86ef..908808a768 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.ts +++ b/packages/tree-widget/src/tree-widget-react/components/trees/categories-tree/CategoriesTreeDefinition.ts @@ -427,12 +427,10 @@ async function createInstanceKeyPathsFromInstanceLabel( return imodelAccess.createQueryReader(queryProps, { restartToken: `${componentName}/${componentId}/filter-by-label`, limit }); }), releaseMainThreadOnItemsCount(1000), - map( - (row): InstanceKey => ({ - className: row.ClassName === "c" ? categoryClass : row.ClassName === "sc" ? SUB_CATEGORY_CLASS : DEFINITION_CONTAINER_CLASS, - id: row.ECInstanceId, - }), - ), + map((row): InstanceKey => ({ + className: row.ClassName === "c" ? categoryClass : row.ClassName === "sc" ? SUB_CATEGORY_CLASS : DEFINITION_CONTAINER_CLASS, + id: row.ECInstanceId, + })), toArray(), mergeMap((targetItems): Observable => createInstanceKeyPathsFromTargetItems({ ...props, targetItems })), toArray(), diff --git a/packages/tree-widget/src/tree-widget-react/components/trees/common/UseTelemetryContext.tsx b/packages/tree-widget/src/tree-widget-react/components/trees/common/UseTelemetryContext.tsx index 2ed2a56171..60acee2c77 100644 --- a/packages/tree-widget/src/tree-widget-react/components/trees/common/UseTelemetryContext.tsx +++ b/packages/tree-widget/src/tree-widget-react/components/trees/common/UseTelemetryContext.tsx @@ -9,13 +9,7 @@ import { useLatest } from "./Utils.js"; import type { PropsWithChildren } from "react"; type TrackedFeatures = - | "visibility-change" - | "hierarchy-level-filtering" - | "filtering" - | "hierarchy-level-size-limit-hit" - | "zoom-to-node" - | "error-timeout" - | "error-unknown"; + "visibility-change" | "hierarchy-level-filtering" | "filtering" | "hierarchy-level-size-limit-hit" | "zoom-to-node" | "error-timeout" | "error-unknown"; interface TelemetryContext { onPerformanceMeasured: (featureId: string, duration: number) => void; From df610dd6b784ea8ad95c429602211b163b37951a Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Fri, 31 Jul 2026 12:39:57 +0000 Subject: [PATCH 04/10] Fix check package versions --- scripts/check-package-versions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check-package-versions.js b/scripts/check-package-versions.js index 7919f55a6d..48ce0179c9 100644 --- a/scripts/check-package-versions.js +++ b/scripts/check-package-versions.js @@ -13,7 +13,7 @@ const fs = require("fs"); const { execFileSync } = require("child_process"); -const base = process.argv[2] ?? "origin/master"; +const base = process.argv.slice(2).find((argument) => argument !== "--") ?? "origin/master"; const changedFiles = new Set([...getChangedPackageFiles(`${base}...HEAD`), ...getChangedPackageFiles("HEAD")]); const errors = []; From aa69fd4400f9f3a1fcd81c4fa254611da24a8278 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Fri, 31 Jul 2026 12:42:00 +0000 Subject: [PATCH 05/10] docs --- packages/tree-widget/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/tree-widget/README.md b/packages/tree-widget/README.md index 7f3545e0fa..535bca618c 100644 --- a/packages/tree-widget/README.md +++ b/packages/tree-widget/README.md @@ -323,7 +323,6 @@ Use `getFilteredPaths` when you need more control over filtering behaviour. Here - **Apply custom logic to generate instance keys**: Generate instance keys using custom implementation. For example: only apply the given filter string to `bis.Subject` and `bis.Model` instances, but not others (`bis.Category`, `bis.GeometricElement`). - ```tsx function CustomModelsTreeComponentWithFilterAndTargetItems({ viewport, @@ -392,7 +391,6 @@ Use `getFilteredPaths` when you need more control over filtering behaviour. Here ); } ``` - Use `getSubTreePaths` when you need to restrict the visible hierarchy to a specific sub-tree of nodes, without changing how filtering works. Here is an example use case: @@ -877,6 +875,7 @@ This can be achieved by passing `onFeatureUsed` function to `CategoriesTreeCompo - `"categories-tree-showall"` - when "Show All" button is used in `CategoriesTreeComponent`. - `"categories-tree-hideall"` - when "Hide All" button is used in `CategoriesTreeComponent`. - `"categories-tree-invert"` - when "Invert" button is used in `CategoriesTreeComponent`. + Where `{tree}` specifies which tree component the feature is of. From 50710f39bde1442ef91f4224c8746003b517bf03 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Fri, 31 Jul 2026 12:45:06 +0000 Subject: [PATCH 06/10] test --- packages/tree-widget/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tree-widget/package.json b/packages/tree-widget/package.json index faa044cf72..212da9fdcd 100644 --- a/packages/tree-widget/package.json +++ b/packages/tree-widget/package.json @@ -1,6 +1,6 @@ { "name": "@itwin/tree-widget-react", - "version": "3.18.0", + "version": "3.18.1", "description": "Tree Widget React", "keywords": [ "Bentley", From 1a0568731283045c5874e772908b4fbffbac66de Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Fri, 31 Jul 2026 12:46:38 +0000 Subject: [PATCH 07/10] remove test --- packages/tree-widget/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tree-widget/package.json b/packages/tree-widget/package.json index 212da9fdcd..faa044cf72 100644 --- a/packages/tree-widget/package.json +++ b/packages/tree-widget/package.json @@ -1,6 +1,6 @@ { "name": "@itwin/tree-widget-react", - "version": "3.18.1", + "version": "3.18.0", "description": "Tree Widget React", "keywords": [ "Bentley", From 3d8b98fd2a16741a612a8e0d9caca04d68734948 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Mon, 3 Aug 2026 14:10:10 +0300 Subject: [PATCH 08/10] Update .github/CODEOWNERS Co-authored-by: Saulius Skliutas <24278440+saskliutas@users.noreply.github.com> --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ca692a1b46..d2753e501b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -48,4 +48,4 @@ /packages/map-layers/CHANGELOG.md @itwin/viewer-components-reviewers /packages/quantity-formatting @itwin/itwinjs-core-presentation @hl662 -/packages/quantity-formatting/CHANGELOG.md @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation +/packages/quantity-formatting/CHANGELOG.md @itwin/viewer-components-reviewers @itwin/itwinjs-core-presentation @hl662 From 7a2319dd523869817765dcd468eba121566b1677 Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:50:47 +0000 Subject: [PATCH 09/10] Remove [publish docs] --- .github/workflows/changeset-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/changeset-release.yml b/.github/workflows/changeset-release.yml index a0790aebed..8391040927 100644 --- a/.github/workflows/changeset-release.yml +++ b/.github/workflows/changeset-release.yml @@ -43,8 +43,8 @@ jobs: uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b with: publish: pnpm release - title: Release packages [publish docs] - commit: Release packages [publish docs] + title: Release packages + commit: Release packages commitMode: github-api env: GITHUB_TOKEN: ${{ secrets.IMJS_ADMIN_GH_TOKEN }} From 8c0bbf8b1359ba95f0841ebfabf3a5845cecda9a Mon Sep 17 00:00:00 2001 From: JonasDov <100586436+JonasDov@users.noreply.github.com> Date: Mon, 3 Aug 2026 14:07:00 +0000 Subject: [PATCH 10/10] Move condition under step instead of job --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df96e3725c..339b3b3a84 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,6 @@ jobs: - run: pnpm install check: - if: ${{ github.event.pull_request.head.ref != 'changeset-release/master' || github.event.pull_request.user.login != 'imodeljs-admin' }} runs-on: ubuntu-latest name: Check package versions steps: @@ -43,6 +42,8 @@ jobs: cache: 'pnpm' - name: Prevent manual package version changes + # Skip here so the job still runs and this required check reports a status. + if: ${{ github.event.pull_request.head.ref != 'changeset-release/master' || github.event.pull_request.user.login != 'imodeljs-admin' }} run: pnpm check:versions -- ${{ github.event.pull_request.base.sha }} audit: