diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index ef4948019bf7..ca375413eae5 100644 --- a/.github/workflows/assistant-to-the-branch-manager.yml +++ b/.github/workflows/assistant-to-the-branch-manager.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false - - uses: angular/dev-infra/github-actions/branch-manager@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/branch-manager@18fece68983a6e0ecaed2456ffc4035d493688f3 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/ci.material-aio.yml b/.github/workflows/ci.material-aio.yml index 38b03805a30e..c1ee3c401f3e 100644 --- a/.github/workflows/ci.material-aio.yml +++ b/.github/workflows/ci.material-aio.yml @@ -21,11 +21,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Execute Build @@ -35,11 +35,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Execute Tests @@ -56,11 +56,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Execute Lighthouse Audit diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ddccf23be31..c18acac8d804 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Checking package externals @@ -47,11 +47,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -63,11 +63,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -79,11 +79,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -96,11 +96,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -112,11 +112,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -128,11 +128,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build and Verify Release Output @@ -152,15 +152,15 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 # See: https://github.com/puppeteer/puppeteer/pull/13196 and # https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md. - name: Disable AppArmor run: echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build and Verify Release Output @@ -183,12 +183,12 @@ jobs: CI_RUNNER_NUMBER: ${{ github.run_id }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Browserstack Variables - uses: angular/dev-infra/github-actions/browserstack@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/browserstack@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Run tests on Browserstack run: ./scripts/circleci/run-browserstack-tests.sh diff --git a/.github/workflows/deploy-dev-app-main-push.yml b/.github/workflows/deploy-dev-app-main-push.yml index ab5d9918e5ac..182de8a82a23 100644 --- a/.github/workflows/deploy-dev-app-main-push.yml +++ b/.github/workflows/deploy-dev-app-main-push.yml @@ -17,11 +17,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 05327056a8da..7af663e632b4 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -12,13 +12,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/pull-request-labeling@18fece68983a6e0ecaed2456ffc4035d493688f3 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} post_approval_changes: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/post-approval-changes@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/post-approval-changes@18fece68983a6e0ecaed2456ffc4035d493688f3 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/docs-preview-build.yml b/.github/workflows/docs-preview-build.yml index 63d6b83786d0..2c044982588e 100644 --- a/.github/workflows/docs-preview-build.yml +++ b/.github/workflows/docs-preview-build.yml @@ -21,16 +21,16 @@ jobs: (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'docs: preview')) steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build docs site run: pnpm bazel build //docs:build.production - - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@18fece68983a6e0ecaed2456ffc4035d493688f3 with: workflow-artifact-name: 'docs-preview' pull-number: '${{github.event.pull_request.number}}' diff --git a/.github/workflows/docs-preview-deploy.yml b/.github/workflows/docs-preview-deploy.yml index 1c975ebb0d88..ed85fb991405 100644 --- a/.github/workflows/docs-preview-deploy.yml +++ b/.github/workflows/docs-preview-deploy.yml @@ -40,7 +40,7 @@ jobs: npx -y firebase-tools@latest target:clear --config docs/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting mat-aio npx -y firebase-tools@latest target:apply --config docs/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting mat-aio ${{env.PREVIEW_SITE}} - - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@18fece68983a6e0ecaed2456ffc4035d493688f3 with: github-token: '${{secrets.GITHUB_TOKEN}}' workflow-artifact-name: 'docs-preview' diff --git a/.github/workflows/google-internal-tests.yml b/.github/workflows/google-internal-tests.yml index cca003afa9b1..02d8aa293986 100644 --- a/.github/workflows/google-internal-tests.yml +++ b/.github/workflows/google-internal-tests.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/google-internal-tests@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/google-internal-tests@18fece68983a6e0ecaed2456ffc4035d493688f3 with: run-tests-guide-url: http://go/angular-material-presubmit github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pr.material-aio.yml b/.github/workflows/pr.material-aio.yml index fa9418395b9a..4bd8b21699ea 100644 --- a/.github/workflows/pr.material-aio.yml +++ b/.github/workflows/pr.material-aio.yml @@ -19,11 +19,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Execute Build @@ -33,11 +33,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Execute Tests @@ -54,11 +54,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Execute Lighthouse Audit diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index d3fa914efc8e..264b5517ea7f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Checking package externals @@ -43,7 +43,7 @@ jobs: - name: Check code format run: pnpm ng-dev format changed --check ${{ github.event.pull_request.base.sha }} - name: Check Package Licenses - uses: angular/dev-infra/github-actions/linting/licenses@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/linting/licenses@18fece68983a6e0ecaed2456ffc4035d493688f3 # Commit message check is last intentionally, because the caretaker can fix it # during merge, while other lint failures have to be resolved by the PR author. - name: Check commit message @@ -53,11 +53,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Check API Goldens @@ -67,11 +67,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run e2e tests @@ -81,11 +81,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run integration tests @@ -95,11 +95,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run tests @@ -109,11 +109,11 @@ jobs: runs-on: ubuntu-latest-16core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run tests @@ -123,11 +123,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build and Verify Release Output @@ -150,15 +150,15 @@ jobs: CI_RUNNER_NUMBER: ${{ github.run_id }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 with: # Checking out the pull request commit is intended here as we need to run the changed code tests. ref: ${{ github.event.pull_request.head.sha }} - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Browserstack Variables - uses: angular/dev-infra/github-actions/browserstack@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/browserstack@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Run tests on Browserstack run: ./scripts/circleci/run-browserstack-tests.sh diff --git a/.github/workflows/preview-build-dev-app.yml b/.github/workflows/preview-build-dev-app.yml index 956267effe23..0f180cb6a9fe 100644 --- a/.github/workflows/preview-build-dev-app.yml +++ b/.github/workflows/preview-build-dev-app.yml @@ -23,16 +23,16 @@ jobs: (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'dev-app preview')) steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 # Build the web package - run: bazel build //src/dev-app:web_package --symlink_prefix=dist/ - - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@18fece68983a6e0ecaed2456ffc4035d493688f3 with: workflow-artifact-name: 'dev-app' pull-number: '${{github.event.pull_request.number}}' diff --git a/.github/workflows/preview-deploy-dev-app.yml b/.github/workflows/preview-deploy-dev-app.yml index 55b0068201df..fd9cd7656a01 100644 --- a/.github/workflows/preview-deploy-dev-app.yml +++ b/.github/workflows/preview-deploy-dev-app.yml @@ -33,7 +33,7 @@ jobs: npx -y firebase-tools@latest target:clear --project ${{env.PREVIEW_PROJECT}} hosting dev-app npx -y firebase-tools@latest target:apply --project ${{env.PREVIEW_PROJECT}} hosting dev-app ${{env.PREVIEW_SITE}} - - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@18fece68983a6e0ecaed2456ffc4035d493688f3 with: github-token: '${{secrets.GITHUB_TOKEN}}' workflow-artifact-name: 'dev-app' diff --git a/.github/workflows/scheduled-ci.yml b/.github/workflows/scheduled-ci.yml index 0daf6f867e1c..76680059a689 100644 --- a/.github/workflows/scheduled-ci.yml +++ b/.github/workflows/scheduled-ci.yml @@ -19,11 +19,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Setting up Angular snapshot builds @@ -39,11 +39,11 @@ jobs: runs-on: ubuntu-latest-4core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/setup@18fece68983a6e0ecaed2456ffc4035d493688f3 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/bazel/configure-remote@18fece68983a6e0ecaed2456ffc4035d493688f3 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Setting up Angular snapshot builds @@ -61,7 +61,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@18fece68983a6e0ecaed2456ffc4035d493688f3 # See: https://github.com/puppeteer/puppeteer/pull/13196 and # https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md. - name: Disable AppArmor diff --git a/CHANGELOG.md b/CHANGELOG.md index c99e6648a672..7d80755cc335 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ + +# 20.2.8 "strontium-summit" (2025-10-08) +### material +| Commit | Type | Description | +| -- | -- | -- | +| [6d61babe7](https://github.com/angular/components/commit/6d61babe77a6a6f0c464b498ee773561b795663f) | fix | **datepicker:** error due to synchronous change detection | +| [e43dcabd0](https://github.com/angular/components/commit/e43dcabd005239a380ffef50cfea374b24a67735) | fix | **datepicker:** make date filter nullable ([#31980](https://github.com/angular/components/pull/31980)) | +| [f30c1c6c3](https://github.com/angular/components/commit/f30c1c6c3f6490ddf21ba668d4065c4d5f89f26f) | fix | **radio:** Hovering over label of a radio will show the pointer cursor ([#32015](https://github.com/angular/components/pull/32015)) | +| [de3f9e566](https://github.com/angular/components/commit/de3f9e5662edae3c19f44a89ee1ee34555eba147) | fix | **timepicker:** assign form control value before emitting events ([#31981](https://github.com/angular/components/pull/31981)) | +### material-date-fns-adapter +| Commit | Type | Description | +| -- | -- | -- | +| [2d1f8d068](https://github.com/angular/components/commit/2d1f8d068e18fa1e0044e0dd4c968c3fa6761e10) | fix | parse time string containing only hours ([#31978](https://github.com/angular/components/pull/31978)) | + + + # 20.2.7 "ceramic-nebula" (2025-10-01) ### material diff --git a/MODULE.bazel b/MODULE.bazel index 91a5af75d186..fa295c3f149d 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,7 +39,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "b7672ff60456719e6d9b0cc052abc73a7adc8df2", + commit = "18fece68983a6e0ecaed2456ffc4035d493688f3", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index a92b185cb95d..7a0278b171af 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -185,7 +185,8 @@ "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", "https://bcr.bazel.build/modules/tar.bzl/0.5.6/MODULE.bazel": "c5b8bfa6bc7b640883d41bfec4a200fb45c16a2a7b2fb081323f499197cfcc09", - "https://bcr.bazel.build/modules/tar.bzl/0.5.6/source.json": "848b3a4eaf2bb4a09ab78533c348e19a6723c7d5f820eb1dceb0eeb5e5914ac1", + "https://bcr.bazel.build/modules/tar.bzl/0.6.0/MODULE.bazel": "a3584b4edcfafcabd9b0ef9819808f05b372957bbdff41601429d5fd0aac2e7c", + "https://bcr.bazel.build/modules/tar.bzl/0.6.0/source.json": "4a620381df075a16cb3a7ed57bd1d05f7480222394c64a20fa51bdb636fda658", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", "https://bcr.bazel.build/modules/yq.bzl/0.2.0/MODULE.bazel": "6f3a675677db8885be4d607fde14cc51829715e3a879fb016eb9bf336786ce6d", @@ -229,7 +230,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "NeP8heP5Z49UtK5ZkdaSGN2wdf2vyTLxJfpSPeyvV24=", + "bzlTransitiveDigest": "kzZXVf0lIRQArtJstiytwibC6m5npERsjNfhP9yJJW4=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -409,8 +410,8 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "eebwHza1XBCmrNmoTUnW56khfYFfcwZpPWjM1Nvu3sk=", - "usagesDigest": "aoP58fHDHJmRSHzsTSkJqLBDeeIkNna9MUbGxoZJSls=", + "bzlTransitiveDigest": "KMsyoH5ShknUHVmkSHztDMIN0fXSzKZBut4ETq2s/Sw=", + "usagesDigest": "xio1ofct9NTimP7GLfQAcpNUt8IGy8dfDPLZG3LDiRI=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -547,7 +548,7 @@ "@@aspect_rules_ts~//ts:extensions.bzl%ext": { "general": { "bzlTransitiveDigest": "9IJp6IlB/FMHFBJe4MX/DQM4zi3oArC8yqYE/+NyPwk=", - "usagesDigest": "FN1SAx4DpL2FgDt82a58jz0UTyLqjp7ZhcUaVdApZz8=", + "usagesDigest": "P4CP3mQmmw+T3wI74km8xS7LtPy3ZqnRg2u/nFPEfY8=", "recordedFileInputs": { "@@rules_browsers~//package.json": "45572077938c7a4916e4aaedf7db7ce8425854ab92f35348cff02a2134023bb8" }, @@ -592,8 +593,8 @@ "bzlFile": "@@aspect_rules_ts~//ts/private:npm_repositories.bzl", "ruleClassName": "http_archive_version", "attributes": { - "version": "5.9.2", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "5.9.3", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "urls": [ "https://registry.npmjs.org/typescript/-/typescript-{}.tgz" ] diff --git a/docs/package.json b/docs/package.json index 9fe70f663905..ec9a6ddce954 100644 --- a/docs/package.json +++ b/docs/package.json @@ -46,7 +46,7 @@ "@angular/router": "catalog:", "@angular/ssr": "catalog:", "@angular/youtube-player": "workspace:*", - "@stackblitz/sdk": "^1.5.2", + "@stackblitz/sdk": "^1.11.0", "moment": "^2.29.1", "path-normalize": "^6.0.13", "rxjs": "catalog:", diff --git a/docs/src/app/pages/page-title/page-title.ts b/docs/src/app/pages/page-title/page-title.ts index 91507297ee5b..a86fb29f0f52 100644 --- a/docs/src/app/pages/page-title/page-title.ts +++ b/docs/src/app/pages/page-title/page-title.ts @@ -9,6 +9,8 @@ import {Injectable, inject} from '@angular/core'; import {Title} from '@angular/platform-browser'; +export const TITLE_SEPARATOR = ' • '; + /** * Service responsible for setting the title that appears above the components and guide pages. */ @@ -26,7 +28,7 @@ export class ComponentPageTitle { set title(title: string) { this._title = title; if (title !== '') { - title = `${title} | Angular Material`; + title = `${title} ${TITLE_SEPARATOR} Angular Material`; } else { title = this._originalTitle; } diff --git a/docs/src/app/shared/stackblitz/stackblitz-writer.spec.ts b/docs/src/app/shared/stackblitz/stackblitz-writer.spec.ts index 82ab6bb89225..772427a49b4f 100644 --- a/docs/src/app/shared/stackblitz/stackblitz-writer.spec.ts +++ b/docs/src/app/shared/stackblitz/stackblitz-writer.spec.ts @@ -113,7 +113,8 @@ describe('StackBlitzWriter', () => { expect(openProjectSpy).toHaveBeenCalledTimes(1); expect(openProjectSpy).toHaveBeenCalledWith(jasmine.objectContaining({files: expectedFiles}), { - openFile: 'src/app/test.ts', + openFile: 'src/example/test.ts', + startScript: 'start', }); })); }); diff --git a/docs/src/app/shared/stackblitz/stackblitz-writer.ts b/docs/src/app/shared/stackblitz/stackblitz-writer.ts index 1dcd5c1c5bd5..c62142999dd1 100644 --- a/docs/src/app/shared/stackblitz/stackblitz-writer.ts +++ b/docs/src/app/shared/stackblitz/stackblitz-writer.ts @@ -39,8 +39,6 @@ const TEMPLATE_PATH = '/assets/stackblitz/'; * file from the boilerplate. */ export const TEMPLATE_FILES = [ - '.gitignore', - '.stackblitzrc', 'angular.json', 'karma.conf.js', 'package.json', @@ -50,13 +48,10 @@ export const TEMPLATE_FILES = [ 'tsconfig.spec.json', 'src/index.html', 'src/main.ts', - 'src/styles.scss', + 'src/styles.css', 'src/test.ts', ]; -const PROJECT_TAGS = ['angular', 'material', 'cdk', 'web', 'example']; -const PROJECT_TEMPLATE = 'node'; - /** * Type describing an in-memory file dictionary, representing a * directory and its contents. @@ -83,7 +78,7 @@ export class StackBlitzWriter { // and the file requests can cause excessive change detections. return this._ngZone.runOutsideAngular(async () => { const files = await this._buildInMemoryFileDictionary(data, exampleId, isTest); - const exampleMainFile = `src/app/${data.indexFilename}`; + const exampleMainFile = `src/example/${data.indexFilename}`; return () => { this._openStackBlitz({ @@ -91,6 +86,7 @@ export class StackBlitzWriter { title: `Angular Components - ${data.description}`, description: `${data.description}\n\nAuto-generated from: https://material.angular.dev`, openFile: exampleMainFile, + startScript: isTest ? 'test' : 'start', }); }; }); @@ -102,21 +98,26 @@ export class StackBlitzWriter { description, openFile, files, + startScript, }: { title: string; description: string; openFile: string; files: FileDictionary; + startScript: string; }): void { stackblitz.openProject( { title, files, description, - template: PROJECT_TEMPLATE, - tags: PROJECT_TAGS, + template: 'node', + tags: ['angular', 'material', 'cdk', 'web', 'example'], + }, + { + openFile, + startScript, }, - {openFile}, ); } @@ -203,11 +204,6 @@ export class StackBlitzWriter { fileContent = fileContent .replace(/material-docs-example/g, data.selectorName) .replace(/\${title}/g, data.description); - } else if (fileName === '.stackblitzrc') { - fileContent = fileContent.replace( - /\${startCommand}/, - isTest ? 'npm run test' : 'npm run start', - ); } else if (fileName === 'src/main.ts') { const mainComponentName = data.componentNames[0]; diff --git a/docs/src/app/shared/theme-picker/theme-picker.ts b/docs/src/app/shared/theme-picker/theme-picker.ts index 72ee92d84c84..5ab8b5809d89 100644 --- a/docs/src/app/shared/theme-picker/theme-picker.ts +++ b/docs/src/app/shared/theme-picker/theme-picker.ts @@ -6,14 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import { - ChangeDetectionStrategy, - Component, - OnDestroy, - OnInit, - ViewEncapsulation, - inject, -} from '@angular/core'; +import {ChangeDetectionStrategy, Component, ViewEncapsulation, inject} from '@angular/core'; import {StyleManager} from '../style-manager'; import {DocsSiteTheme, ThemeStorage} from './theme-storage/theme-storage'; import {MatIconButton} from '@angular/material/button'; @@ -21,7 +14,7 @@ import {MatIcon} from '@angular/material/icon'; import {MatMenu, MatMenuItem, MatMenuTrigger} from '@angular/material/menu'; import {MatTooltip} from '@angular/material/tooltip'; import {ActivatedRoute, ParamMap} from '@angular/router'; -import {Subscription} from 'rxjs'; +import {takeUntilDestroyed} from '@angular/core/rxjs-interop'; import {map} from 'rxjs/operators'; import {LiveAnnouncer} from '@angular/cdk/a11y'; @@ -33,13 +26,12 @@ import {LiveAnnouncer} from '@angular/cdk/a11y'; encapsulation: ViewEncapsulation.None, imports: [MatIconButton, MatTooltip, MatMenu, MatMenuItem, MatMenuTrigger, MatIcon], }) -export class ThemePicker implements OnInit, OnDestroy { - styleManager = inject(StyleManager); - private _themeStorage = inject(ThemeStorage); - private _activatedRoute = inject(ActivatedRoute); - private _liveAnnouncer = inject(LiveAnnouncer); +export class ThemePicker { + readonly styleManager = inject(StyleManager); + private readonly _themeStorage = inject(ThemeStorage); + private readonly _activatedRoute = inject(ActivatedRoute); + private readonly _liveAnnouncer = inject(LiveAnnouncer); - private _queryParamSubscription = Subscription.EMPTY; currentTheme: DocsSiteTheme | undefined; // The below colors need to align with the themes defined in theme-picker.scss @@ -72,6 +64,17 @@ export class ThemePicker implements OnInit, OnDestroy { ]; constructor() { + this._activatedRoute.queryParamMap + .pipe( + map((params: ParamMap) => params.get('theme')), + takeUntilDestroyed(), + ) + .subscribe((themeName: string | null) => { + if (themeName) { + this.selectTheme(themeName); + } + }); + const themeName = this._themeStorage.getStoredThemeName(); if (themeName) { this.selectTheme(themeName); @@ -84,20 +87,6 @@ export class ThemePicker implements OnInit, OnDestroy { } } - ngOnInit() { - this._queryParamSubscription = this._activatedRoute.queryParamMap - .pipe(map((params: ParamMap) => params.get('theme'))) - .subscribe((themeName: string | null) => { - if (themeName) { - this.selectTheme(themeName); - } - }); - } - - ngOnDestroy() { - this._queryParamSubscription.unsubscribe(); - } - selectTheme(themeName: string) { const theme = this.themes.find(currentTheme => currentTheme.name === themeName) || diff --git a/docs/src/assets/stackblitz/.gitignore b/docs/src/assets/stackblitz/.gitignore deleted file mode 100644 index 105c00f22e08..000000000000 --- a/docs/src/assets/stackblitz/.gitignore +++ /dev/null @@ -1,46 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/tmp -/out-tsc -# Only exists if Bazel was run -/bazel-out - -# dependencies -/node_modules - -# profiling files -chrome-profiler-events*.json - -# IDEs and editors -/.idea -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -.history/* - -# misc -/.angular/cache -/.sass-cache -/connect.lock -/coverage -/libpeerconnection.log -npm-debug.log -yarn-error.log -testem.log -/typings - -# System Files -.DS_Store -Thumbs.db diff --git a/docs/src/assets/stackblitz/.stackblitzrc b/docs/src/assets/stackblitz/.stackblitzrc deleted file mode 100644 index 839f0a257f66..000000000000 --- a/docs/src/assets/stackblitz/.stackblitzrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "installDependencies": true, - "startCommand": "${startCommand}" -} diff --git a/docs/src/assets/stackblitz/angular.json b/docs/src/assets/stackblitz/angular.json index 1f72421563cf..50b3897f59a6 100644 --- a/docs/src/assets/stackblitz/angular.json +++ b/docs/src/assets/stackblitz/angular.json @@ -28,12 +28,9 @@ "browser": "src/main.ts", "polyfills": ["zone.js", "@angular/localize/init"], "tsConfig": "tsconfig.app.json", - "inlineStyleLanguage": "scss", + "inlineStyleLanguage": "css", "assets": ["src/assets"], - "styles": ["src/styles.scss"], - "stylePreprocessorOptions": { - "includePaths": ["node_modules/"] - }, + "styles": ["src/styles.css", "@angular/material/prebuilt-themes/azure-blue.css"], "scripts": [] }, "configurations": { @@ -92,12 +89,9 @@ "polyfills": ["zone.js", "zone.js/testing"], "tsConfig": "tsconfig.spec.json", "karmaConfig": "karma.conf.js", - "inlineStyleLanguage": "scss", + "inlineStyleLanguage": "css", "assets": ["src/assets"], - "stylePreprocessorOptions": { - "includePaths": ["node_modules/"] - }, - "styles": ["src/styles.scss"], + "styles": ["src/styles.css", "@angular/material/prebuilt-themes/azure-blue.css"], "scripts": [] } } diff --git a/docs/src/assets/stackblitz/src/styles.css b/docs/src/assets/stackblitz/src/styles.css new file mode 100644 index 000000000000..0b9b177cade2 --- /dev/null +++ b/docs/src/assets/stackblitz/src/styles.css @@ -0,0 +1,10 @@ +body { + font-family: Roboto, 'Helvetica Neue', sans-serif; + margin: 0; + padding: 30px; + height: 100%; +} + +html { + height: 100%; +} diff --git a/docs/src/assets/stackblitz/src/styles.scss b/docs/src/assets/stackblitz/src/styles.scss deleted file mode 100644 index 125bc0b99e3f..000000000000 --- a/docs/src/assets/stackblitz/src/styles.scss +++ /dev/null @@ -1,22 +0,0 @@ -@use '@angular/material' as mat; - -body { - font-family: Roboto, 'Helvetica Neue', sans-serif; - margin: 0; - padding: 30px; - height: 100%; - - @include mat.theme(( - color: ( - theme-type: light, - primary: mat.$azure-palette, - tertiary: mat.$blue-palette, - ), - typography: Roboto, - density: 0, - )); -} - -html { - height: 100%; -} diff --git a/goldens/material/datepicker/index.api.md b/goldens/material/datepicker/index.api.md index c1403ede28db..90ca10ee6148 100644 --- a/goldens/material/datepicker/index.api.md +++ b/goldens/material/datepicker/index.api.md @@ -132,7 +132,7 @@ export class MatCalendar implements AfterContentInit, AfterViewChecked, OnDes get currentView(): MatCalendarView; set currentView(value: MatCalendarView); dateClass: MatCalendarCellClassFunction; - dateFilter: (date: D) => boolean; + dateFilter?: ((date: D) => boolean) | null; _dateSelected(event: MatCalendarUserEvent): void; _dragEnded(event: MatCalendarUserEvent | null>): void; _dragStarted(event: MatCalendarUserEvent): void; @@ -402,7 +402,7 @@ export class MatDatepickerContent> implem // @public export interface MatDatepickerControl { // (undocumented) - dateFilter: DateFilterFn; + dateFilter: DateFilterFn | null | undefined; // (undocumented) disabled: boolean; // (undocumented) @@ -427,12 +427,12 @@ export class MatDatepickerInput extends MatDatepickerInputBase i protected _ariaOwns: i0.WritableSignal; // (undocumented) protected _assignValueToModel(value: D | null): void; - get dateFilter(): DateFilterFn; - set dateFilter(value: DateFilterFn); + get dateFilter(): DateFilterFn | null | undefined; + set dateFilter(value: DateFilterFn | null | undefined); // (undocumented) _datepicker: MatDatepickerPanel, D | null, D>; getConnectedOverlayOrigin(): ElementRef; - protected _getDateFilter(): DateFilterFn; + protected _getDateFilter(): DateFilterFn | null | undefined; _getMaxDate(): D | null; _getMinDate(): D | null; getOverlayLabelId(): string | null; @@ -563,8 +563,8 @@ export class MatDateRangeInput implements MatFormFieldControl>, comparisonEnd: D | null; comparisonStart: D | null; controlType: string; - get dateFilter(): DateFilterFn; - set dateFilter(value: DateFilterFn); + get dateFilter(): DateFilterFn | null | undefined; + set dateFilter(value: DateFilterFn | null | undefined); get describedByIds(): string[]; readonly disableAutomaticLabeling = true; get disabled(): boolean; @@ -696,31 +696,31 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { // (undocumented) readonly _changeDetectorRef: ChangeDetectorRef; comparisonEnd: D | null; - _comparisonRangeEnd: number | null; - _comparisonRangeStart: number | null; + _comparisonRangeEnd: i0.WritableSignal; + _comparisonRangeStart: i0.WritableSignal; comparisonStart: D | null; // (undocumented) _dateAdapter: DateAdapter; dateClass: MatCalendarCellClassFunction; - dateFilter: (date: D) => boolean; + dateFilter: ((date: D) => boolean) | null | undefined; _dateSelected(event: MatCalendarUserEvent): void; readonly dragEnded: EventEmitter | null>>; protected _dragEnded(event: MatCalendarUserEvent): void; readonly dragStarted: EventEmitter>; endDateAccessibleName: string | null; - _firstWeekOffset: number; + _firstWeekOffset: i0.WritableSignal; _focusActiveCell(movePreview?: boolean): void; _focusActiveCellAfterViewChecked(): void; _handleCalendarBodyKeydown(event: KeyboardEvent): void; _handleCalendarBodyKeyup(event: KeyboardEvent): void; _init(): void; - _isRange: boolean; + _isRange: i0.WritableSignal; _matCalendarBody: MatCalendarBody; get maxDate(): D | null; set maxDate(value: D | null); get minDate(): D | null; set minDate(value: D | null); - _monthLabel: string; + _monthLabel: i0.WritableSignal; // (undocumented) ngAfterContentInit(): void; // (undocumented) @@ -728,23 +728,23 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { // (undocumented) ngOnDestroy(): void; _previewChanged({ event, value: cell }: MatCalendarUserEvent | null>): void; - _previewEnd: number | null; - _previewStart: number | null; - _rangeEnd: number | null; - _rangeStart: number | null; + _previewEnd: i0.WritableSignal; + _previewStart: i0.WritableSignal; + _rangeEnd: i0.WritableSignal; + _rangeStart: i0.WritableSignal; get selected(): DateRange | D | null; set selected(value: DateRange | D | null); readonly selectedChange: EventEmitter; startDateAccessibleName: string | null; - _todayDate: number | null; + _todayDate: i0.WritableSignal; _updateActiveDate(event: MatCalendarUserEvent): void; readonly _userSelection: EventEmitter>; - _weekdays: { + _weekdays: i0.WritableSignal<{ long: string; narrow: string; id: number; - }[]; - _weeks: MatCalendarCell[][]; + }[]>; + _weeks: i0.WritableSignal[][]>; // (undocumented) static ɵcmp: i0.ɵɵComponentDeclaration, "mat-month-view", ["matMonthView"], { "activeDate": { "alias": "activeDate"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "dateFilter": { "alias": "dateFilter"; "required": false; }; "dateClass": { "alias": "dateClass"; "required": false; }; "comparisonStart": { "alias": "comparisonStart"; "required": false; }; "comparisonEnd": { "alias": "comparisonEnd"; "required": false; }; "startDateAccessibleName": { "alias": "startDateAccessibleName"; "required": false; }; "endDateAccessibleName": { "alias": "endDateAccessibleName"; "required": false; }; "activeDrag": { "alias": "activeDrag"; "required": false; }; }, { "selectedChange": "selectedChange"; "_userSelection": "_userSelection"; "dragStarted": "dragStarted"; "dragEnded": "dragEnded"; "activeDateChange": "activeDateChange"; }, never, never, true, never>; // (undocumented) @@ -760,7 +760,7 @@ export class MatMultiYearView implements AfterContentInit, OnDestroy { // (undocumented) _dateAdapter: DateAdapter; dateClass: MatCalendarCellClassFunction; - dateFilter: (date: D) => boolean; + dateFilter: ((date: D) => boolean) | null | undefined; _focusActiveCell(): void; _focusActiveCellAfterViewChecked(): void; // (undocumented) @@ -780,10 +780,10 @@ export class MatMultiYearView implements AfterContentInit, OnDestroy { get selected(): DateRange | D | null; set selected(value: DateRange | D | null); readonly selectedChange: EventEmitter; - _selectedYear: number | null; - _todayYear: number; + _selectedYear: i0.WritableSignal; + _todayYear: i0.WritableSignal; _updateActiveDate(event: MatCalendarUserEvent): void; - _years: MatCalendarCell[][]; + _years: i0.WritableSignal[][]>; readonly yearSelected: EventEmitter; _yearSelected(event: MatCalendarUserEvent): void; // (undocumented) @@ -849,7 +849,7 @@ export class MatYearView implements AfterContentInit, OnDestroy { // (undocumented) _dateAdapter: DateAdapter; dateClass: MatCalendarCellClassFunction; - dateFilter: (date: D) => boolean; + dateFilter: ((date: D) => boolean) | null | undefined; _focusActiveCell(): void; _focusActiveCellAfterViewChecked(): void; _handleCalendarBodyKeydown(event: KeyboardEvent): void; @@ -860,7 +860,7 @@ export class MatYearView implements AfterContentInit, OnDestroy { set maxDate(value: D | null); get minDate(): D | null; set minDate(value: D | null); - _months: MatCalendarCell[][]; + _months: i0.WritableSignal[][]>; readonly monthSelected: EventEmitter; _monthSelected(event: MatCalendarUserEvent): void; // (undocumented) @@ -870,10 +870,10 @@ export class MatYearView implements AfterContentInit, OnDestroy { get selected(): DateRange | D | null; set selected(value: DateRange | D | null); readonly selectedChange: EventEmitter; - _selectedMonth: number | null; - _todayMonth: number | null; + _selectedMonth: i0.WritableSignal; + _todayMonth: i0.WritableSignal; _updateActiveDate(event: MatCalendarUserEvent): void; - _yearLabel: string; + _yearLabel: i0.WritableSignal; // (undocumented) static ɵcmp: i0.ɵɵComponentDeclaration, "mat-year-view", ["matYearView"], { "activeDate": { "alias": "activeDate"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "dateFilter": { "alias": "dateFilter"; "required": false; }; "dateClass": { "alias": "dateClass"; "required": false; }; }, { "selectedChange": "selectedChange"; "monthSelected": "monthSelected"; "activeDateChange": "activeDateChange"; }, never, never, true, never>; // (undocumented) diff --git a/goldens/material/timepicker/index.api.md b/goldens/material/timepicker/index.api.md index e63bc279182b..0758b181eb6d 100644 --- a/goldens/material/timepicker/index.api.md +++ b/goldens/material/timepicker/index.api.md @@ -100,6 +100,7 @@ export class MatTimepickerInput implements ControlValueAccessor, Validator, O registerOnValidatorChange(fn: () => void): void; setDisabledState(isDisabled: boolean): void; readonly timepicker: InputSignal>; + _timepickerValueAssigned(value: D | null): void; validate(control: AbstractControl): ValidationErrors | null; readonly value: ModelSignal; writeValue(value: any): void; diff --git a/package.json b/package.json index 92453d7da618..dfc0a4e6481e 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,11 @@ "url": "https://github.com/angular/components.git" }, "license": "MIT", - "packageManager": "pnpm@10.17.1", + "packageManager": "pnpm@10.18.1", "engines": { "npm": "Please use pnpm instead of NPM to install dependencies", "yarn": "Please use pnpm instead of Yarn to install dependencies", - "pnpm": "10.17.1" + "pnpm": "10.18.1" }, "scripts": { "ng-dev": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only node_modules/@angular/ng-dev/bundles/cli.mjs", @@ -22,7 +22,7 @@ "build-and-check-release-output": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only scripts/build-and-check-release-output.mts", "dev-app": "ibazel run //src/dev-app:devserver", "universal-app": "bazel run //src/universal-app:server", - "test": "node ./scripts/run-component-tests.js", + "test": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only ./scripts/run-component-tests.mts", "test-local": "pnpm -s test --local", "test-firefox": "pnpm -s test --firefox", "test-tsec": "pnpm bazelisk test //... --build_tag_filters=tsec --test_tag_filters=tsec", @@ -42,7 +42,7 @@ "ts-circular-deps:check": "pnpm -s ng-dev ts-circular-deps check --config ./src/circular-deps-test.conf.cjs", "ts-circular-deps:approve": "pnpm -s ng-dev ts-circular-deps approve --config ./src/circular-deps-test.conf.cjs", "merge": "pnpm -s ng-dev pr merge", - "approve-api": "node ./scripts/approve-api-golden.js", + "approve-api": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only ./scripts/approve-api-golden.mts", "integration-tests": "bazel test --test_tag_filters=-linker-integration-test --build_tests_only -- //integration/...", "test-linker-aot": "bazel test --partial_compilation --test_tag_filters=partial-compilation-integration,-firefox --build_tests_only -- //integration/... //src/...", "test-linker-jit": "bazel test --partial_compilation --test_tag_filters=partial-compilation-integration,-firefox --build_tests_only --//tools:force_partial_jit_compilation=True -- //integration/... //src/...", @@ -52,7 +52,7 @@ "ci-docs-monitor-test": "node --no-warnings=ExperimentalWarning --loader ts-node/esm/transpile-only scripts/docs-deploy/monitoring/ci-test.mts", "prepare": "husky" }, - "version": "20.2.7", + "version": "20.2.8", "dependencies": { "@angular-devkit/core": "catalog:", "@angular-devkit/schematics": "catalog:", @@ -76,7 +76,7 @@ "devDependencies": { "@angular/compiler-cli": "catalog:", "@angular/localize": "catalog:", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb", "@angular/platform-server": "catalog:", "@angular/router": "catalog:", "@babel/core": "^7.16.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 662907c456c6..4c86a1989cf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,56 +7,56 @@ settings: catalogs: default: '@angular-devkit/build-angular': - specifier: 20.3.3 - version: 20.3.3 + specifier: 20.3.4 + version: 20.3.4 '@angular-devkit/core': - specifier: 20.3.3 - version: 20.3.3 + specifier: 20.3.4 + version: 20.3.4 '@angular-devkit/schematics': + specifier: 20.3.4 + version: 20.3.4 + '@angular/animations': specifier: 20.3.3 version: 20.3.3 - '@angular/animations': - specifier: 20.3.2 - version: 20.3.2 '@angular/cli': + specifier: 20.3.4 + version: 20.3.4 + '@angular/common': specifier: 20.3.3 version: 20.3.3 - '@angular/common': - specifier: 20.3.2 - version: 20.3.2 '@angular/compiler': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/compiler-cli': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/core': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/forms': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/localize': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/platform-browser': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/platform-browser-dynamic': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/platform-server': - specifier: 20.3.2 - version: 20.3.2 - '@angular/router': - specifier: 20.3.2 - version: 20.3.2 - '@angular/ssr': specifier: 20.3.3 version: 20.3.3 - '@schematics/angular': + '@angular/router': specifier: 20.3.3 version: 20.3.3 + '@angular/ssr': + specifier: 20.3.4 + version: 20.3.4 + '@schematics/angular': + specifier: 20.3.4 + version: 20.3.4 rxjs: specifier: ^6.6.7 version: 6.6.7 @@ -72,28 +72,28 @@ importers: dependencies: '@angular-devkit/core': specifier: 'catalog:' - version: 20.3.3(chokidar@4.0.3) + version: 20.3.4(chokidar@4.0.3) '@angular-devkit/schematics': specifier: 'catalog:' - version: 20.3.3(chokidar@4.0.3) + version: 20.3.4(chokidar@4.0.3) '@angular/animations': specifier: 'catalog:' - version: 20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) + version: 20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) '@angular/common': specifier: 'catalog:' - version: 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + version: 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) '@angular/compiler': specifier: 'catalog:' - version: 20.3.2 + version: 20.3.3 '@angular/core': specifier: 'catalog:' - version: 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) + version: 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) '@angular/forms': specifier: 'catalog:' - version: 20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9) + version: 20.3.3(c468df340d8bf2f2c91d17d98cea4990) '@angular/platform-browser': specifier: 'catalog:' - version: 20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) + version: 20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) '@types/google.maps': specifier: ^3.54.10 version: 3.58.1 @@ -127,19 +127,19 @@ importers: devDependencies: '@angular/compiler-cli': specifier: 'catalog:' - version: 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + version: 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@angular/localize': specifier: 'catalog:' - version: 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2) + version: 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb(@modelcontextprotocol/sdk@1.18.2) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb(@modelcontextprotocol/sdk@1.19.1) '@angular/platform-server': specifier: 'catalog:' - version: 20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511) + version: 20.3.3(775236399f10ac42dfaa7965cb97fba5) '@angular/router': specifier: 'catalog:' - version: 20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9) + version: 20.3.3(c468df340d8bf2f2c91d17d98cea4990) '@babel/core': specifier: ^7.16.12 version: 7.28.4 @@ -166,13 +166,13 @@ importers: version: 22.0.0 '@rollup/plugin-commonjs': specifier: ^28.0.0 - version: 28.0.6(rollup@4.52.3) + version: 28.0.6(rollup@4.52.4) '@rollup/plugin-node-resolve': specifier: ^16.0.0 - version: 16.0.1(rollup@4.52.3) + version: 16.0.2(rollup@4.52.4) '@schematics/angular': specifier: 'catalog:' - version: 20.3.3(chokidar@4.0.3) + version: 20.3.4(chokidar@4.0.3) '@types/babel__core': specifier: ^7.1.18 version: 7.20.5 @@ -187,7 +187,7 @@ importers: version: 3.7.1 '@types/node': specifier: ^22.14.1 - version: 22.18.6 + version: 22.18.8 '@types/selenium-webdriver': specifier: ^3.0.17 version: 3.0.26 @@ -220,7 +220,7 @@ importers: version: 0.25.10 firebase-tools: specifier: 14.12.0 - version: 14.12.0(@types/node@22.18.6)(bufferutil@4.0.9)(encoding@0.1.13) + version: 14.12.0(@types/node@22.18.8)(bufferutil@4.0.9)(encoding@0.1.13) fs-extra: specifier: ^11.0.0 version: 11.3.2 @@ -292,13 +292,13 @@ importers: version: 2.3.7 rollup: specifier: ^4.0.0 - version: 4.52.3 + version: 4.52.4 rollup-plugin-dts: specifier: 6.2.1 - version: 6.2.1(rollup@4.52.3)(typescript@5.9.2) + version: 6.2.1(rollup@4.52.4)(typescript@5.9.2) rollup-plugin-sourcemaps2: specifier: 0.5.3 - version: 0.5.3(@types/node@22.18.6)(rollup@4.52.3) + version: 0.5.3(@types/node@22.18.8)(rollup@4.52.4) sass: specifier: ^1.80.6 version: 1.90.0 @@ -325,7 +325,7 @@ importers: version: 5.44.0 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@22.18.6)(typescript@5.9.2) + version: 10.9.2(@types/node@22.18.8)(typescript@5.9.2) tsec: specifier: 0.2.8 version: 0.2.8(@bazel/bazelisk@1.26.0)(typescript@5.9.2) @@ -355,7 +355,7 @@ importers: dependencies: '@angular/animations': specifier: 'catalog:' - version: 20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) + version: 20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) '@angular/cdk': specifier: workspace:* version: link:../src/cdk @@ -364,25 +364,25 @@ importers: version: link:../src/cdk-experimental '@angular/common': specifier: 'catalog:' - version: 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + version: 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) '@angular/compiler': specifier: 'catalog:' - version: 20.3.2 + version: 20.3.3 '@angular/components-examples': specifier: workspace:* version: link:../src/components-examples '@angular/core': specifier: 'catalog:' - version: 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) + version: 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) '@angular/forms': specifier: 'catalog:' - version: 20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9) + version: 20.3.3(c468df340d8bf2f2c91d17d98cea4990) '@angular/google-maps': specifier: workspace:* version: link:../src/google-maps '@angular/localize': specifier: 'catalog:' - version: 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2) + version: 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3) '@angular/material': specifier: workspace:* version: link:../src/material @@ -394,21 +394,21 @@ importers: version: link:../src/material-moment-adapter '@angular/platform-browser': specifier: 'catalog:' - version: 20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) + version: 20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: 'catalog:' - version: 20.3.2(7f9c0f71824eb93d839a8f72a67b60af) + version: 20.3.3(ffdacba40dd6f02e372ceb07fc177f6c) '@angular/router': specifier: 'catalog:' - version: 20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9) + version: 20.3.3(c468df340d8bf2f2c91d17d98cea4990) '@angular/ssr': specifier: 'catalog:' - version: 20.3.3(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(@angular/platform-server@20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511))(@angular/router@20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9)) + version: 20.3.4(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(@angular/platform-server@20.3.3(775236399f10ac42dfaa7965cb97fba5))(@angular/router@20.3.3(c468df340d8bf2f2c91d17d98cea4990)) '@angular/youtube-player': specifier: workspace:* version: link:../src/youtube-player '@stackblitz/sdk': - specifier: ^1.5.2 + specifier: ^1.11.0 version: 1.11.0 moment: specifier: ^2.29.1 @@ -428,13 +428,13 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: 'catalog:' - version: 20.3.3(437ac7de9f3d1fed6740423c36eb7ebc) + version: 20.3.4(6489d4826f04a5ddbdcf317d7bfb615b) '@angular/cli': specifier: 'catalog:' - version: 20.3.3(@types/node@22.18.6)(chokidar@4.0.3) + version: 20.3.4(@types/node@22.18.8)(chokidar@4.0.3) '@angular/compiler-cli': specifier: 'catalog:' - version: 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + version: 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@bazel/bazelisk': specifier: ^1.12.1 version: 1.26.0 @@ -443,13 +443,13 @@ importers: version: 5.1.8 '@types/node': specifier: ^22.14.1 - version: 22.18.6 + version: 22.18.8 '@types/shelljs': specifier: 0.8.17 version: 0.8.17 firebase-tools: specifier: ^14.0.0 - version: 14.12.0(@types/node@22.18.6)(bufferutil@4.0.9)(encoding@0.1.13) + version: 14.12.0(@types/node@22.18.8)(bufferutil@4.0.9)(encoding@0.1.13) jasmine-core: specifier: 5.9.0 version: 5.9.0 @@ -491,7 +491,7 @@ importers: version: 7.0.0 puppeteer-core: specifier: ^24.6.1 - version: 24.22.3(bufferutil@4.0.9) + version: 24.23.0(bufferutil@4.0.9) sass: specifier: 1.90.0 version: 1.90.0 @@ -500,7 +500,7 @@ importers: version: 0.10.0 ts-node: specifier: 10.9.2 - version: 10.9.2(@types/node@22.18.6)(typescript@5.9.2) + version: 10.9.2(@types/node@22.18.8)(typescript@5.9.2) typescript: specifier: 5.9.2 version: 5.9.2 @@ -781,12 +781,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.3': - resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} + '@angular-devkit/architect@0.2003.4': + resolution: {integrity: sha512-OKT6QuoG+rZZmRQ9mSZoh1pCGB5jBrkb45CzI8VdaLFhrZ7Uqg1wri1tj5KpSQYLAd22uUFNIE0uzMmGwXHbYA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/build-angular@20.3.3': - resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} + '@angular-devkit/build-angular@20.3.4': + resolution: {integrity: sha512-Lc/Hi4A0xBDbPb0tg7JHofIkqTigwKFOTU4Y/y/sN/9BQ7z3M/cHylaFceCtTjwnqybOzWyR58bStLO1wIN8Gw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^20.0.0 @@ -795,7 +795,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.3 + '@angular/ssr': ^20.3.4 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -835,15 +835,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.3': - resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} + '@angular-devkit/build-webpack@0.2003.4': + resolution: {integrity: sha512-p5nBSTu9ijz+v3ku+eWc8m+nYjn8q36dkupoKUCgaG1UkPTeHvgI341xPqvY1uxyYzCaxuUms44XIkdAJbmzww==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - '@angular-devkit/core@20.3.3': - resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} + '@angular-devkit/core@20.3.4': + resolution: {integrity: sha512-r83jn9yVdPh618oGgoKPggMsQGOkQqJbxEutd4CE9mnotPCE2uRTIyaFMh8sohNUeoQNRmj9rbr2pWGVlgERpg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: chokidar: ^4.0.0 @@ -851,19 +851,19 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.3': - resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} + '@angular-devkit/schematics@20.3.4': + resolution: {integrity: sha512-JYlcmVBKNT9+cQ6T2tmu+yVQ2bJk8tG0mXvPHWXrl/M4c6NObhSSThK50tJHy0Xo3gl8WgogOxUeJNnBq67cIQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular/animations@20.3.2': - resolution: {integrity: sha512-za7onSElEUbaI9iS8j7nKf8FjyvVng6wFsb2ZuHxr71dMgnYkqPfMu0KMP+mkZ3yUVc//7SllXcSkGBHShyCcw==} + '@angular/animations@20.3.3': + resolution: {integrity: sha512-nXpe1sAhMbQm4VTKhnP/zL2w5s2Kxjr9bZ7krOSTtyO9Wxjhd7oJN4mgCVRa80oEMheiDTmanPaMFLEN0pzang==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: '@angular/common': '*' - '@angular/core': 20.3.2 + '@angular/core': 20.3.3 - '@angular/build@20.3.3': - resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} + '@angular/build@20.3.4': + resolution: {integrity: sha512-2ZPyEQxg9FCM7gv5NZHZVCec6ubb7HM/fkzr7wcYQArN8E8EknlyfXn6G5AoqkEsQZGqtJOD8sfti0m4kYiwkQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^20.0.0 @@ -873,7 +873,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.3 + '@angular/ssr': ^20.3.4 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -908,38 +908,38 @@ packages: vitest: optional: true - '@angular/cli@20.3.3': - resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} + '@angular/cli@20.3.4': + resolution: {integrity: sha512-aNPk9ljY2PTc+ZoA7M67rxNvhbUJvzkuYcAdJuHbAIDoWcr2HhyFM2aGrLH3DVemY39xN/haJHj3FYJ8rCdXNw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular/common@20.3.2': - resolution: {integrity: sha512-5V9AzLhCA1dNhF+mvihmdHoZHbEhIb1jNYRA1/JMheR+G7NR8Mznu6RmWaKSWZ4AJeSJN8rizWN2wpVPWTKjSQ==} + '@angular/common@20.3.3': + resolution: {integrity: sha512-iArFCXvgYJCpxLZv8o6rV7Cxuqv1hbndoeUmQgL7ekXwVS6BA49VErXbTPM+pfhAJ+v1fc/DG3rzBwXk3eW2lw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 20.3.2 + '@angular/core': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@20.3.2': - resolution: {integrity: sha512-rLox2THiALVQqYGUaxZ6YD8qUoXIOGTw3s0tim9/U65GuXGRtYgG0ZQWYp3yjEBes0Ksx2/15eFPp1Ol4FdEKQ==} + '@angular/compiler-cli@20.3.3': + resolution: {integrity: sha512-kSIE6hkTiZGiJLyisp5Q6NXOHiDNOItp7N2HVNPrK1bqzM8foN6H6BE1a+LYO3Lwy3PkwQFzx03BnzxkM4sWng==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.2 + '@angular/compiler': 20.3.3 typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true - '@angular/compiler@20.3.2': - resolution: {integrity: sha512-5fSzkPmRomZ9H43c82FJWLwdOi7MICMimP1y1oYJZcUh3jYRhXUrQvD0jifdRVkkgKNjaZYlMr0NkrYQFgFong==} + '@angular/compiler@20.3.3': + resolution: {integrity: sha512-7AUtF7PO8xo+jOgrhLRPXmt65M/KFuYIsVZGVLB1FTCUAPByFJEUYOSnUuHyvFQQqHesK4aYSP27slDpHH/PSA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@20.3.2': - resolution: {integrity: sha512-88uPgs5LjtnywnQaZE2ShBb1wa8IuD6jWs4nc4feo32QdBc55tjebTBFJSHbi3mUVAp0eS4wI6ITo0YIb01H4g==} + '@angular/core@20.3.3': + resolution: {integrity: sha512-AWBCixxw4N9VgKT1uwrRPr1dH3CpT/ffcCsXJQ8TjzsKYjVBkXVht5OjtxJOWOQ2KaHwsGFEmDMv9fc1BHDFhQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 20.3.2 + '@angular/compiler': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 peerDependenciesMeta: @@ -948,69 +948,69 @@ packages: zone.js: optional: true - '@angular/forms@20.3.2': - resolution: {integrity: sha512-ECIbtwc7n9fPbiZXZVaoZpSiOksgcNbZ27oUN9BT7EmoXRzBw6yDL2UX6Ig7pEKhQGyBkKB+TMerRwTDVkkCWg==} + '@angular/forms@20.3.3': + resolution: {integrity: sha512-Rv3sO1vOAbw03IRK30CB45eucxZ1rI0Jyaa6QVmDlOzQ4bktkanbGxQtaxBdc9bKPBO1SVx27eTbStR7i3BNRg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.2 - '@angular/core': 20.3.2 - '@angular/platform-browser': 20.3.2 + '@angular/common': 20.3.3 + '@angular/core': 20.3.3 + '@angular/platform-browser': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@20.3.2': - resolution: {integrity: sha512-RZMHgLZV1Aka7rUKvQbg08Dn+dMyVBEGTlUS6/bTDoB1Xq2UE9L8YKmlnEDQyzveO5vTsPvZZQRL4iLc4IokzQ==} + '@angular/localize@20.3.3': + resolution: {integrity: sha512-myToeQiFPzOxXu5CBoQPnMPCpM4HtQh9m+tiL5RsMtZs5NrD3DX9QxzVJl2Y4nozpphfQejoI1t2fbS7yM5qAQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 20.3.2 - '@angular/compiler-cli': 20.3.2 + '@angular/compiler': 20.3.3 + '@angular/compiler-cli': 20.3.3 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb} - version: 0.0.0-b7672ff60456719e6d9b0cc052abc73a7adc8df2 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb} + version: 0.0.0-18fece68983a6e0ecaed2456ffc4035d493688f3 hasBin: true - '@angular/platform-browser-dynamic@20.3.2': - resolution: {integrity: sha512-ehoV67Vxr3ZE8BJ3g7Q4ZLHo3qJVoDUDz/4UeCqmDeOnKxcdD53HTA/pgOO4QhKStUFbzgU19OQD4e6fkP8YoQ==} + '@angular/platform-browser-dynamic@20.3.3': + resolution: {integrity: sha512-QzJUeHgzUWpNrPF4tgqwO3jzmDGlM8aLwbA7BJBp2BOJZKg34BF4CzTngK5Z6LWcZ4gofTSzDOw9TIrk8U8g6Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.2 - '@angular/compiler': 20.3.2 - '@angular/core': 20.3.2 - '@angular/platform-browser': 20.3.2 + '@angular/common': 20.3.3 + '@angular/compiler': 20.3.3 + '@angular/core': 20.3.3 + '@angular/platform-browser': 20.3.3 - '@angular/platform-browser@20.3.2': - resolution: {integrity: sha512-d9XcT2UuWZCc0UOtkCcPEnMcOFKNczahamT/Izg3H9jLS3IcT6l0ry23d/Xf0DRwhLYQdOZiG7l8HMZ1sWPMOg==} + '@angular/platform-browser@20.3.3': + resolution: {integrity: sha512-RUWpg49GnXdINjomRFrE/SRioxEehYqUzDVskDWddNeNhV9Z21zeC6Ao2i5q8UKq0y/oq2ShX7XFLprxqLoLnQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 20.3.2 - '@angular/common': 20.3.2 - '@angular/core': 20.3.2 + '@angular/animations': 20.3.3 + '@angular/common': 20.3.3 + '@angular/core': 20.3.3 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@20.3.2': - resolution: {integrity: sha512-D7tf5S5xxQQUDtw/dkMa2XePnxHwyZElN5FQP99ByiEy9PjT1iFjyKuP9jjHsI4Nmi+Juq0F1uo4azPfPaV/3w==} + '@angular/platform-server@20.3.3': + resolution: {integrity: sha512-8tu+Un0snSTyb0kq4xWa6DCbyyZzVjCVyZ68uT2Q0inoKM/ja/1wfYQQwroT8Yw7wg2IExjaJ2e6Pk5R2de4ew==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.2 - '@angular/compiler': 20.3.2 - '@angular/core': 20.3.2 - '@angular/platform-browser': 20.3.2 + '@angular/common': 20.3.3 + '@angular/compiler': 20.3.3 + '@angular/core': 20.3.3 + '@angular/platform-browser': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@20.3.2': - resolution: {integrity: sha512-+Crx6QpK00juoNU3A1vbVf4DQ7fduLe3DUdAob6a9Uj+IoWj2Ijd8zUWF8E0cfNNFotJ4Gost0lJORDvqKcC7A==} + '@angular/router@20.3.3': + resolution: {integrity: sha512-IrO5GY/vmaWwNdfR51xswNnBSxeEuvQAUqK3H0UNxhZlIE9gUS6pbbSidGGrQOZK+i0nd/rDz7j+RV7h2NK9aA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 20.3.2 - '@angular/core': 20.3.2 - '@angular/platform-browser': 20.3.2 + '@angular/common': 20.3.3 + '@angular/core': 20.3.3 + '@angular/platform-browser': 20.3.3 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ssr@20.3.3': - resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} + '@angular/ssr@20.3.4': + resolution: {integrity: sha512-0jfFHUz5JkKI4DJ05lkob4AAOt1LPNsQ3A/u0k1Ctej15jR4fOdE+NcHBV+AZ3XV8eNPqlYbOuTa0lGOon9y/A==} peerDependencies: '@angular/common': ^20.0.0 '@angular/core': ^20.0.0 @@ -1581,8 +1581,8 @@ packages: peerDependencies: postcss-selector-parser: ^6.0.10 - '@dabh/diagnostics@2.0.3': - resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + '@dabh/diagnostics@2.0.8': + resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} '@discoveryjs/json-ext@0.6.3': resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} @@ -1599,15 +1599,6 @@ packages: '@electric-sql/pglite@0.3.10': resolution: {integrity: sha512-1XtXXprd848aR4hvjNqBc3Gc86zNGmd60x+MgOUShbHYxt+J76N8A81DqTEl275T8xBD0vdTgqR/dJ4yJyz0NQ==} - '@emnapi/core@1.5.0': - resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} - - '@emnapi/runtime@1.5.0': - resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} - - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@esbuild/aix-ppc64@0.25.10': resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} engines: {node: '>=18'} @@ -2134,20 +2125,20 @@ packages: '@firebase/webchannel-wrapper@1.0.5': resolution: {integrity: sha512-+uGNN7rkfn41HLO0vekTFhTxk61eKa8mTpRGLO0QSqlQdKvIoGAvLp3ppdVIWbTGYJWM6Kp0iN+PjMIOcnVqTw==} - '@formatjs/ecma402-abstract@2.3.4': - resolution: {integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==} + '@formatjs/ecma402-abstract@2.3.5': + resolution: {integrity: sha512-1HTESOq1IUa23g1lFZEGIXsfZKZOwWmB9RROwGn+xariiQnd++wwTMvlRAbZ8wtXRHFUamJPxsKcxpSzeCvFWQ==} '@formatjs/fast-memoize@2.2.7': resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} - '@formatjs/icu-messageformat-parser@2.11.2': - resolution: {integrity: sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==} + '@formatjs/icu-messageformat-parser@2.11.3': + resolution: {integrity: sha512-H/KfWSosaiDiOaW4nHe1Fn4Cgzm+oFQ8giTmB5RJzTBNSMmd+j2NVrvvZHAmlxJHcuOelzKBLjQ2EDcyH4NSWw==} - '@formatjs/icu-skeleton-parser@1.8.14': - resolution: {integrity: sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==} + '@formatjs/icu-skeleton-parser@1.8.15': + resolution: {integrity: sha512-qNrKxWJmnWxin5U4A4Evy7C0rgRiNw3IqXu9OGuT31B8lDxBGl+OgT8kcq0ZVKK0gqA4l4SQB9x+SFAvLT5hcQ==} - '@formatjs/intl-localematcher@0.6.1': - resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} + '@formatjs/intl-localematcher@0.6.2': + resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} '@google-cloud/cloud-sql-connector@1.8.3': resolution: {integrity: sha512-Xmh1U0cw5goTWchBqvXfcffz2B6eGUnMH+iY6NTz6A+WlsvlDtAi87NlMst4yKYNfF7gRmNnnJTcK25I6TR6cA==} @@ -2197,8 +2188,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.21.0': - resolution: {integrity: sha512-k47DECR8BF9z7IJxQd3reKuH2eUnOH5NlJWSe+CKM6nbXx+wH3hmtWQxUQR9M8gzWW1EvFuRVgjQssEIreNZsw==} + '@google/genai@1.22.0': + resolution: {integrity: sha512-siETS3zTm3EGpTT4+BFc1z20xXBYfueD3gCYfxkOjuAKRk8lt8TJevDHi3zepn1oSI6NhG/LZvy0i+Q3qheObg==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.4 @@ -2516,8 +2507,8 @@ packages: resolution: {integrity: sha512-JPwUKWSsbzx+DLFznf/QZ32Qa+ptfbUlHhRLrBQBAFu9iI1iYvizM4p+zhhRDceSsPutXp4z+R/HPVphlIiclg==} engines: {node: '>=18'} - '@modelcontextprotocol/sdk@1.18.2': - resolution: {integrity: sha512-beedclIvFcCnPrYgHsylqiYJVJ/CI47Vyc4tY8no1/Li/O8U4BTlJfy6ZwxkYwx+Mx10nrgwSVrA7VBbhh4slg==} + '@modelcontextprotocol/sdk@1.19.1': + resolution: {integrity: sha512-3Y2h3MZKjec1eAqSTBclATlX+AbC6n1LgfVzRMJLt3v6w0RCYgwLrjbxPDbhsYHt6Wdqc/aCceNJYgj448ELQQ==} engines: {node: '>=18'} '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': @@ -2667,16 +2658,13 @@ packages: resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@1.0.5': - resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@nginfra/angular-linking@1.0.9': resolution: {integrity: sha512-25cph8loaVTzSxD6Ll5vjUhm/xxbr1OHLaH/kh464yOMaiK2eKYpNdnIPpfsTFStrwh5/3wKTWTNSCFvjgeTiQ==} peerDependencies: '@angular/compiler-cli': '*' - '@ngtools/webpack@20.3.3': - resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} + '@ngtools/webpack@20.3.4': + resolution: {integrity: sha512-5G2Q9VguR73RaSbqVpsW1LumITsPxceLL0+L94IOHoV4eYlFciJTXLWgcRUoChh73bt0wLMgdwUVWKjaVtjOLQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler-cli': ^20.0.0 @@ -2732,57 +2720,54 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@octokit/auth-app@8.1.0': - resolution: {integrity: sha512-6bWhyvLXqCSfHiqlwzn9pScLZ+Qnvh/681GR/UEEPCMIVwfpRDBw0cCzy3/t2Dq8B7W2X/8pBgmw6MOiyE0DXQ==} + '@octokit/auth-app@8.1.1': + resolution: {integrity: sha512-yW9YUy1cuqWlz8u7908ed498wJFt42VYsYWjvepjojM4BdZSp4t+5JehFds7LfvYi550O/GaUI94rgbhswvxfA==} engines: {node: '>= 20'} - '@octokit/auth-oauth-app@9.0.1': - resolution: {integrity: sha512-TthWzYxuHKLAbmxdFZwFlmwVyvynpyPmjwc+2/cI3cvbT7mHtsAW9b1LvQaNnAuWL+pFnqtxdmrU8QpF633i1g==} + '@octokit/auth-oauth-app@9.0.2': + resolution: {integrity: sha512-vmjSHeuHuM+OxZLzOuoYkcY3OPZ8erJ5lfswdTmm+4XiAKB5PmCk70bA1is4uwSl/APhRVAv4KHsgevWfEKIPQ==} engines: {node: '>= 20'} - '@octokit/auth-oauth-device@8.0.1': - resolution: {integrity: sha512-TOqId/+am5yk9zor0RGibmlqn4V0h8vzjxlw/wYr3qzkQxl8aBPur384D1EyHtqvfz0syeXji4OUvKkHvxk/Gw==} + '@octokit/auth-oauth-device@8.0.2': + resolution: {integrity: sha512-KW7Ywrz7ei7JX+uClWD2DN1259fnkoKuVdhzfpQ3/GdETaCj4Tx0IjvuJrwhP/04OhcMu5yR6tjni0V6LBihdw==} engines: {node: '>= 20'} - '@octokit/auth-oauth-user@6.0.0': - resolution: {integrity: sha512-GV9IW134PHsLhtUad21WIeP9mlJ+QNpFd6V9vuPWmaiN25HEJeEQUcS4y5oRuqCm9iWDLtfIs+9K8uczBXKr6A==} + '@octokit/auth-oauth-user@6.0.1': + resolution: {integrity: sha512-vlKsL1KUUPvwXpv574zvmRd+/4JiDFXABIZNM39+S+5j2kODzGgjk7w5WtiQ1x24kRKNaE7v9DShNbw43UA3Hw==} engines: {node: '>= 20'} '@octokit/auth-token@6.0.0': resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} - '@octokit/core@7.0.4': - resolution: {integrity: sha512-jOT8V1Ba5BdC79sKrRWDdMT5l1R+XNHTPR6CPWzUP2EcfAcvIHZWF0eAbmRcpOOP5gVIwnqNg0C4nvh6Abc3OA==} + '@octokit/core@7.0.5': + resolution: {integrity: sha512-t54CUOsFMappY1Jbzb7fetWeO0n6K0k/4+/ZpkS+3Joz8I4VcvY9OiEBFRYISqaI2fq5sCiPtAjRDOzVYG8m+Q==} engines: {node: '>= 20'} - '@octokit/endpoint@11.0.0': - resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} + '@octokit/endpoint@11.0.1': + resolution: {integrity: sha512-7P1dRAZxuWAOPI7kXfio88trNi/MegQ0IJD3vfgC3b+LZo1Qe6gRJc2v0mz2USWWJOKrB2h5spXCzGbw+fAdqA==} engines: {node: '>= 20'} '@octokit/graphql-schema@15.26.0': resolution: {integrity: sha512-SoVbh+sXe9nsoweFbLT3tAk3XWYbYLs5ku05wij1zhyQ2U3lewdrhjo5Tb7lfaOGWNHSkPZT4uuPZp8neF7P7A==} - '@octokit/graphql@9.0.1': - resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} + '@octokit/graphql@9.0.2': + resolution: {integrity: sha512-iz6KzZ7u95Fzy9Nt2L8cG88lGRMr/qy1Q36ih/XVzMIlPDMYwaNLE/ENhqmIzgPrlNWiYJkwmveEetvxAgFBJw==} engines: {node: '>= 20'} '@octokit/oauth-authorization-url@8.0.0': resolution: {integrity: sha512-7QoLPRh/ssEA/HuHBHdVdSgF8xNLz/Bc5m9fZkArJE5bb6NmVkDm3anKxXPmN1zh6b5WKZPRr3697xKT/yM3qQ==} engines: {node: '>= 20'} - '@octokit/oauth-methods@6.0.0': - resolution: {integrity: sha512-Q8nFIagNLIZgM2odAraelMcDssapc+lF+y3OlcIPxyAU+knefO8KmozGqfnma1xegRDP4z5M73ABsamn72bOcA==} + '@octokit/oauth-methods@6.0.1': + resolution: {integrity: sha512-xi6Iut3izMCFzXBJtxxJehxJmAKjE8iwj6L5+raPRwlTNKAbOOBJX7/Z8AF5apD4aXvc2skwIdOnC+CQ4QuA8Q==} engines: {node: '>= 20'} - '@octokit/openapi-types@25.1.0': - resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} - '@octokit/openapi-types@26.0.0': resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} - '@octokit/plugin-paginate-rest@13.1.1': - resolution: {integrity: sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==} + '@octokit/plugin-paginate-rest@13.2.0': + resolution: {integrity: sha512-YuAlyjR8o5QoRSOvMHxSJzPtogkNMgeMv2mpccrvdUGeC3MKyfi/hS+KiFwyH/iRKIKyx+eIMsDjbt3p9r2GYA==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -2799,21 +2784,18 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/request-error@7.0.0': - resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} + '@octokit/request-error@7.0.1': + resolution: {integrity: sha512-CZpFwV4+1uBrxu7Cw8E5NCXDWFNf18MSY23TdxCBgjw1tXXHvTrZVsXlW8hgFTOLw8RQR1BBrMvYRtuyaijHMA==} engines: {node: '>= 20'} - '@octokit/request@10.0.3': - resolution: {integrity: sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==} + '@octokit/request@10.0.5': + resolution: {integrity: sha512-TXnouHIYLtgDhKo+N6mXATnDBkV05VwbR0TtMWpgTHIoQdRQfCSzmy/LGqR1AbRMbijq/EckC/E3/ZNcU92NaQ==} engines: {node: '>= 20'} '@octokit/rest@22.0.0': resolution: {integrity: sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA==} engines: {node: '>= 20'} - '@octokit/types@14.1.0': - resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} - '@octokit/types@15.0.0': resolution: {integrity: sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==} @@ -2850,9 +2832,6 @@ packages: resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} - '@oxc-project/types@0.89.0': - resolution: {integrity: sha512-yuo+ECPIW5Q9mSeNmCDC2im33bfKuwW18mwkaHMQh8KakHYDzj4ci/q7wxf2qS3dMlVVCIyrs3kFtH5LmnlYnw==} - '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -2957,20 +2936,20 @@ packages: resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} - '@pnpm/crypto.hash@1000.2.0': - resolution: {integrity: sha512-L22sQHDC4VM9cPSbOFi0e+C7JSt3isl/biV1jShz8MG9QjemiwTUMog4h0k0C5HoB1ycUjGkXTqAE4RJu3jLQA==} + '@pnpm/crypto.hash@1000.2.1': + resolution: {integrity: sha512-Kgo3bgYbdKkC5xFvvQshbHa+Nru7k50D91+yyq7enp4Ur2EMp4wg5oXleaC5xu5hC9A/1eSCRI8npCioplxG4A==} engines: {node: '>=18.12'} '@pnpm/crypto.polyfill@1000.1.0': resolution: {integrity: sha512-tNe7a6U4rCpxLMBaR0SIYTdjxGdL0Vwb3G1zY8++sPtHSvy7qd54u8CIB0Z+Y6t5tc9pNYMYCMwhE/wdSY7ltg==} engines: {node: '>=18.12'} - '@pnpm/dependency-path@1001.1.1': - resolution: {integrity: sha512-kUQeP42kxGSEyqhAZGzMs3UQGDiY8Xk3/718uIKqhtHUCSoCas/p3xRRiEXKs7Wesp0Eb1X0I5xrugZbPiK1dw==} + '@pnpm/dependency-path@1001.1.2': + resolution: {integrity: sha512-fih99/lY+HRRak0U0KMKAO7+nacilWMcvFTH6YDKzjCBTOhxDr6Eeap2mF7uf4ED4dnKsQVNUGmFpvaSXSuFCQ==} engines: {node: '>=18.12'} - '@pnpm/graceful-fs@1000.0.0': - resolution: {integrity: sha512-RvMEliAmcfd/4UoaYQ93DLQcFeqit78jhYmeJJVPxqFGmj0jEcb9Tu0eAOXr7tGP3eJHpgvPbTU4o6pZ1bJhxg==} + '@pnpm/graceful-fs@1000.0.1': + resolution: {integrity: sha512-JnzaAVFJIEgwTcB55eww8N3h5B6qJdZqDA2wYkSK+OcTvvMSQb9c2STMhBP6GfkWygG1fs3w8D7JRx9SPZnxJg==} engines: {node: '>=18.12'} '@pnpm/network.ca-file@1.0.2': @@ -3025,96 +3004,6 @@ packages: engines: {node: '>=18'} hasBin: true - '@rolldown/binding-android-arm64@1.0.0-beta.38': - resolution: {integrity: sha512-AE3HFQrjWCKLFZD1Vpiy+qsqTRwwoil1oM5WsKPSmfQ5fif/A+ZtOZetF32erZdsR7qyvns6qHEteEsF6g6rsQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - - '@rolldown/binding-darwin-arm64@1.0.0-beta.38': - resolution: {integrity: sha512-RaoWOKc0rrFsVmKOjQpebMY6c6/I7GR1FBc25v7L/R7NlM0166mUotwGEv7vxu7ruXH4SJcFeVrfADFUUXUmmQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@rolldown/binding-darwin-x64@1.0.0-beta.38': - resolution: {integrity: sha512-Ymojqc2U35iUc8NFU2XX1WQPfBRRHN6xHcrxAf9WS8BFFBn8pDrH5QPvH1tYs3lDkw6UGGbanr1RGzARqdUp1g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - - '@rolldown/binding-freebsd-x64@1.0.0-beta.38': - resolution: {integrity: sha512-0ermTQ//WzSI0nOL3z/LUWMNiE9xeM5cLGxjewPFEexqxV/0uM8/lNp9QageQ8jfc/VO1OURsGw34HYO5PaL8w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': - resolution: {integrity: sha512-GADxzVUTCTp6EWI52831A29Tt7PukFe94nhg/SUsfkI33oTiNQtPxyLIT/3oRegizGuPSZSlrdBurkjDwxyEUQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': - resolution: {integrity: sha512-SKO7Exl5Yem/OSNoA5uLHzyrptUQ8Hg70kHDxuwEaH0+GUg+SQe9/7PWmc4hFKBMrJGdQtii8WZ0uIz9Dofg5Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': - resolution: {integrity: sha512-SOo6+WqhXPBaShLxLT0eCgH17d3Yu1lMAe4mFP0M9Bvr/kfMSOPQXuLxBcbBU9IFM9w3N6qP9xWOHO+oUJvi8Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': - resolution: {integrity: sha512-yvsQ3CyrodOX+lcoi+lejZGCOvJZa9xTsNB8OzpMDmHeZq3QzJfpYjXSAS6vie70fOkLVJb77UqYO193Cl8XBQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': - resolution: {integrity: sha512-84qzKMwUwikfYeOuJ4Kxm/3z15rt0nFGGQArHYIQQNSTiQdxGHxOkqXtzPFqrVfBJUdxBAf+jYzR1pttFJuWyg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - - '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': - resolution: {integrity: sha512-QrNiWlce01DYH0rL8K3yUBu+lNzY+B0DyCbIc2Atan6/S6flxOL0ow5DLQvMamOI/oKhrJ4xG+9MkMb9dDHbLQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - - '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': - resolution: {integrity: sha512-fnLtHyjwEsG4/aNV3Uv3Qd1ZbdH+CopwJNoV0RgBqrcQB8V6/Qdikd5JKvnO23kb3QvIpP+dAMGZMv1c2PJMzw==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': - resolution: {integrity: sha512-19cTfnGedem+RY+znA9J6ARBOCEFD4YSjnx0p5jiTm9tR6pHafRfFIfKlTXhun+NL0WWM/M0eb2IfPPYUa8+wg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': - resolution: {integrity: sha512-HcICm4YzFJZV+fI0O0bFLVVlsWvRNo/AB9EfUXvNYbtAxakCnQZ15oq22deFdz6sfi9Y4/SagH2kPU723dhCFA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ia32] - os: [win32] - - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': - resolution: {integrity: sha512-4Qx6cgEPXLb0XsCyLoQcUgYBpfL0sjugftob+zhUH0EOk/NVCAIT+h0NJhY+jn7pFpeKxhNMqhvTNx3AesxIAQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - - '@rolldown/pluginutils@1.0.0-beta.38': - resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} - '@rollup/plugin-commonjs@28.0.6': resolution: {integrity: sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -3124,8 +3013,8 @@ packages: rollup: optional: true - '@rollup/plugin-node-resolve@16.0.1': - resolution: {integrity: sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==} + '@rollup/plugin-node-resolve@16.0.2': + resolution: {integrity: sha512-tCtHJ2BlhSoK4cCs25NMXfV7EALKr0jyasmqVCq3y9cBrKdmJhtsy1iTz36Xhk/O+pDJbzawxF4K6ZblqCnITQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -3156,124 +3045,245 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.52.4': + resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.52.3': resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.52.4': + resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.52.3': resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.52.4': + resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.52.3': resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.52.4': + resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.52.3': resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.52.4': + resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.52.3': resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.52.4': + resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==} cpu: [arm] os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm-gnueabihf@4.52.4': + resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==} + cpu: [arm] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm-musleabihf@4.52.3': resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==} cpu: [arm] os: [linux] libc: [musl] + '@rollup/rollup-linux-arm-musleabihf@4.52.4': + resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==} + cpu: [arm] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-arm64-gnu@4.52.3': resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==} cpu: [arm64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm64-gnu@4.52.4': + resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm64-musl@4.52.3': resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==} cpu: [arm64] os: [linux] libc: [musl] + '@rollup/rollup-linux-arm64-musl@4.52.4': + resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-loong64-gnu@4.52.3': resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==} cpu: [loong64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-loong64-gnu@4.52.4': + resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==} + cpu: [loong64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-ppc64-gnu@4.52.3': resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==} cpu: [ppc64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-ppc64-gnu@4.52.4': + resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-riscv64-gnu@4.52.3': resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==} cpu: [riscv64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-riscv64-gnu@4.52.4': + resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-riscv64-musl@4.52.3': resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==} cpu: [riscv64] os: [linux] libc: [musl] + '@rollup/rollup-linux-riscv64-musl@4.52.4': + resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-s390x-gnu@4.52.3': resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==} cpu: [s390x] os: [linux] libc: [glibc] + '@rollup/rollup-linux-s390x-gnu@4.52.4': + resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.52.3': resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==} cpu: [x64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.52.4': + resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-musl@4.52.3': resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==} cpu: [x64] os: [linux] libc: [musl] + '@rollup/rollup-linux-x64-musl@4.52.4': + resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==} + cpu: [x64] + os: [linux] + libc: [musl] + '@rollup/rollup-openharmony-arm64@4.52.3': resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==} cpu: [arm64] os: [openharmony] + '@rollup/rollup-openharmony-arm64@4.52.4': + resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==} + cpu: [arm64] + os: [openharmony] + '@rollup/rollup-win32-arm64-msvc@4.52.3': resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.52.4': + resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.52.3': resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.52.4': + resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-gnu@4.52.3': resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-gnu@4.52.4': + resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.52.3': resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==} cpu: [x64] os: [win32] - '@schematics/angular@20.3.3': - resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} + '@rollup/rollup-win32-x64-msvc@4.52.4': + resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==} + cpu: [x64] + os: [win32] + + '@schematics/angular@20.3.4': + resolution: {integrity: sha512-aIgeRAfSJdxVfsES521vNb6Nuy+Uei7xE85hD+mQHX+62bN7vJhM/tmMFIYS7UF8d0rRnMPiGEr2Rfx6Om5iPg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@sentry/core@6.19.7': @@ -3328,6 +3338,9 @@ packages: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} + '@so-ric/colorspace@1.1.6': + resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} + '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} @@ -3361,9 +3374,6 @@ packages: resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} engines: {node: ^18.17.0 || >=20.5.0} - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -3469,11 +3479,11 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.18.6': - resolution: {integrity: sha512-r8uszLPpeIWbNKtvWRt/DbVi5zbqZyj1PTmhRMqBMvDnaz1QpmSKujUtJLrqGZeoM8v72MfYggDceY4K1itzWQ==} + '@types/node@22.18.8': + resolution: {integrity: sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==} - '@types/node@24.5.2': - resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} + '@types/node@24.7.0': + resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3511,11 +3521,14 @@ packages: '@types/send@0.17.5': resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==} + '@types/send@1.2.0': + resolution: {integrity: sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==} + '@types/serve-index@1.9.4': resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - '@types/serve-static@1.15.8': - resolution: {integrity: sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==} + '@types/serve-static@1.15.9': + resolution: {integrity: sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==} '@types/shelljs@0.8.17': resolution: {integrity: sha512-IDksKYmQA2W9MkQjiyptbMmcQx+8+Ol6b7h6dPU5S05JyiQDSb/nZKnrMrZqGwgV6VkVdl6/SPCKPDlMRvqECg==} @@ -3771,10 +3784,6 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} - ansis@4.2.0: - resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} - engines: {node: '>=14'} - any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -3978,8 +3987,8 @@ packages: resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} engines: {node: ^4.5.0 || >= 5.9} - baseline-browser-mapping@2.8.9: - resolution: {integrity: sha512-hY/u2lxLrbecMEWSB0IpGzGyDyeoMFQhCvZd2jGFSE5I17Fh01sYUBPCJtkWERw7zrac9+cIghxm/ytJa2X8iA==} + baseline-browser-mapping@2.8.12: + resolution: {integrity: sha512-vAPMQdnyKCBtkmQA6FMCBvU9qFIppS3nzyXnEM+Lo2IAhG4Mpjv9cCxMudhgV3YdNNJv6TNqXy97dfRVL2LmaQ==} hasBin: true basic-auth-connect@1.1.0: @@ -4058,8 +4067,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.26.2: - resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} + browserslist@4.26.3: + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4148,8 +4157,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001745: - resolution: {integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==} + caniuse-lite@1.0.30001747: + resolution: {integrity: sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==} canonical-path@0.0.2: resolution: {integrity: sha512-y8EIEvL+IW81S4hRQWCRFtly+g1cc1G+wxHpjhYR9jI2+JJjWiaKnkH8mmvNHOMOAd9fzgARDO3AEzjuR51qaA==} @@ -4313,17 +4322,27 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + color-convert@3.1.2: + resolution: {integrity: sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==} + engines: {node: '>=14.6'} + color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-name@2.0.2: + resolution: {integrity: sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==} + engines: {node: '>=12.20'} - color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + color-string@2.1.2: + resolution: {integrity: sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==} + engines: {node: '>=18'} + + color@5.0.2: + resolution: {integrity: sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==} + engines: {node: '>=18'} colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -4339,9 +4358,6 @@ packages: resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} - colorspace@1.1.4: - resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -4750,8 +4766,8 @@ packages: devtools-protocol@0.0.1312386: resolution: {integrity: sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==} - devtools-protocol@0.0.1495869: - resolution: {integrity: sha512-i+bkd9UYFis40RcnkW7XrOprCujXRAHg62IVh/Ah3G8MmNXpCGt1m0dTFhSdx/AVs8XEMbdOGRwdkR1Bcta8AA==} + devtools-protocol@0.0.1508733: + resolution: {integrity: sha512-QJ1R5gtck6nDcdM+nlsaJXcelPEI7ZxSMw1ujHpO1c4+9l+Nue5qlebi9xO1Z2MGr92bFOQTW7/rrheh5hHxDg==} dgeni-packages@0.30.0: resolution: {integrity: sha512-k5y9HSwJzWgc8S7bHxejojJfuo2heltY9lTa5UgfqoBv2vubCwqXhVxFBXr3nKfymc9YOALCnk10JYeOdVLLWQ==} @@ -4846,8 +4862,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.227: - resolution: {integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==} + electron-to-chromium@1.5.230: + resolution: {integrity: sha512-A6A6Fd3+gMdaed9wX83CvHYJb4UuapPD5X5SLq72VZJzxHSY0/LUweGXRWmQlh2ln7KV7iw7jnwXK7dlPoOnHQ==} emoji-regex@10.5.0: resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} @@ -5377,6 +5393,10 @@ packages: resolution: {integrity: sha512-UcO3kefx6dCcZkgcTGgVOTFb7b1LlQ02hY1omMjjrrBzkajRMCFgYOjs7J71WqnuG1k2b+9ppGL7FsOfhZMQKQ==} engines: {node: '>=18'} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -5438,8 +5458,8 @@ packages: glob-slasher@1.0.1: resolution: {integrity: sha512-5MUzqFiycIKLMD1B0dYOE4hGgLLUZUNGGYO4BExdwT32wUwW3DBOE7lMQars7vB1q43Fb3Tyt+HmgLKsJhDYdg==} - glob-to-regex.js@1.0.1: - resolution: {integrity: sha512-CG/iEvgQqfzoVsMUbxSJcwbG2JwyZ3naEqPkeltwl0BSS8Bp83k3xlGms+0QdWFUAwV+uvo80wNswKF6FWEkKg==} + glob-to-regex.js@1.2.0: + resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -5499,8 +5519,8 @@ packages: resolution: {integrity: sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==} engines: {node: '>= 0.10'} - google-auth-library@10.3.0: - resolution: {integrity: sha512-ylSE3RlCRZfZB56PFJSfUCuiuPq83Fx8hqu1KPWGK8FVdSaxlp/qkeMMX/DT/18xkwXIHvXEXkZsljRwfrdEfQ==} + google-auth-library@10.4.0: + resolution: {integrity: sha512-CmIrSy1bqMQUsPmA9+hcSbAXL80cFhu40cGMUjCaLpNKVzzvi+0uAHq8GNZxkoGYIsTX4ZQ7e4aInAqWxgn4fg==} engines: {node: '>=18'} google-auth-library@9.15.1: @@ -5511,8 +5531,8 @@ packages: resolution: {integrity: sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==} engines: {node: '>=14'} - google-gax@5.0.3: - resolution: {integrity: sha512-DkWybwgkV8HA9aIizNEHEUHd8ho1BzGGQ/YMGDsTt167dQ8pk/oMiwxpUFvh6Ta93m8ZN7KwdWmP3o46HWjV+A==} + google-gax@5.0.4: + resolution: {integrity: sha512-HmQ6zIYBs2EikTk+kjeHmtHprNTEpsnVaKONw9cwZZwUNCkUb+D5RYrJpCxyjdvIDvJp3wLbVReolJLRZRms1g==} engines: {node: '>=18'} google-logging-utils@0.0.2: @@ -5644,8 +5664,8 @@ packages: header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} - heap-js@2.6.0: - resolution: {integrity: sha512-trFMIq3PATiFRiQmNNeHtsrkwYRByIXUbYNbotiY9RLVfMkdwZdd2eQ38mGt7BRiCKBaj1DyBAIHmm7mmXPuuw==} + heap-js@2.7.1: + resolution: {integrity: sha512-EQfezRg0NCZGNlhlDR3Evrw1FVL2G3LhU7EgPoxufQKruNBSYA8MiRPHeWbU+36o+Fhel0wMwM+sLEiBAlNLJA==} engines: {node: '>=10.0.0'} highlight.js@10.7.3: @@ -5873,8 +5893,8 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - intl-messageformat@10.7.16: - resolution: {integrity: sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==} + intl-messageformat@10.7.17: + resolution: {integrity: sha512-0Ugaf65B2J76rb31drgNF1l6bGEDkbIiYc2Glx6jaZINHnwa5kDRGy8KXYuA+/8P4G0c9prAFhfVhQJJfzUuvQ==} ip-address@10.0.1: resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} @@ -5905,9 +5925,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.4: - resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} - is-async-function@2.1.1: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} @@ -5984,8 +6001,8 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -6267,6 +6284,9 @@ packages: jasmine-core@5.11.0: resolution: {integrity: sha512-MPJ8L5yyNul0F2SuEsLASwESXQjJvBXnKu31JWFyRZSvuv2B79K4GDWN3pSqvLheUNh7Fyb6dXwd4rsz95O2Kg==} + jasmine-core@5.12.0: + resolution: {integrity: sha512-QqO4pX33GEML5JoGQU6BM5NHKPgEsg+TXp3jCIDek9MbfEp2JUYEFBo9EF1+hegWy/bCHS1m5nP0BOp18G6rVA==} + jasmine-core@5.9.0: resolution: {integrity: sha512-OMUvF1iI6+gSRYOhMrH4QYothVLN9C3EJ6wm4g7zLJlnaTl8zbaPOr0bTw70l7QxkoM7sVFOWo83u9B2Fe2Zng==} @@ -6284,6 +6304,10 @@ packages: resolution: {integrity: sha512-MhIYY2pLfRA5hhIvY72ZLilwKeZEBuTyIUv9JDB+b+pEYehsJDW2obKF2dmMtWaFG6pDiFiAUNphpZ7SW7fFMA==} hasBin: true + jasmine@5.12.0: + resolution: {integrity: sha512-KmKeTNuH8rgAuPRL5AUsXWSdJVlDu+pgqi2dLXoZUSH/g3kR+7Ho8B7hEhwDu0fu1PLuiXZtfaxmQ/mB5wqihw==} + hasBin: true + jasminewd2@2.2.0: resolution: {integrity: sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==} engines: {node: '>= 6.9.x'} @@ -6762,8 +6786,8 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@4.47.0: - resolution: {integrity: sha512-Xey8IZA57tfotV/TN4d6BmccQuhFP+CqRiI7TTNdipZdZBzF2WnzUcH//Cudw6X4zJiUbo/LTuU/HPA/iC/pNg==} + memfs@4.48.1: + resolution: {integrity: sha512-vWO+1ROkhOALF1UnT9aNOOflq5oFDlqwTXaPg6duo07fBLxSH0+bcF0TY1lbA1zTNKyGgDxgaDdKx5MaewLX5A==} memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} @@ -7070,8 +7094,8 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - node-releases@2.0.21: - resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} + node-releases@2.0.23: + resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} nopt@3.0.6: resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} @@ -7721,8 +7745,8 @@ packages: resolution: {integrity: sha512-cHArnywCiAAVXa3t4GGL2vttNxh7GqXtIYGym99egkNJ3oG//wL9LkvO4WE8W1TJe95t1F1ocu9X4xWaGsOKOA==} engines: {node: '>=18'} - puppeteer-core@24.22.3: - resolution: {integrity: sha512-M/Jhg4PWRANSbL/C9im//Yb55wsWBS5wdp+h59iwM+EPicVQQCNs56iC5aEAO7avfDPRfxs4MM16wHjOYHNJEw==} + puppeteer-core@24.23.0: + resolution: {integrity: sha512-yl25C59gb14sOdIiSnJ08XiPP+O2RjuyZmEG+RjYmCXO7au0jcLf7fRiyii96dXGUBW7Zwei/mVKfxMx/POeFw==} engines: {node: '>=18'} q@1.4.1: @@ -7985,11 +8009,6 @@ packages: resolution: {integrity: sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==} engines: {node: '>=10.0.0'} - rolldown@1.0.0-beta.38: - resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rollup-plugin-dts@6.2.1: resolution: {integrity: sha512-sR3CxYUl7i2CHa0O7bA45mCrgADyAQ0tVtGSqi3yvH28M+eg1+g5d7kQ9hLvEz5dorK3XVsH5L2jwHLQf72DzA==} engines: {node: '>=16'} @@ -8012,6 +8031,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.52.4: + resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -8100,8 +8124,8 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - schema-utils@4.3.2: - resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} select-hose@2.0.0: @@ -8245,9 +8269,6 @@ packages: resolution: {integrity: sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==} engines: {node: ^18.17.0 || >=20.5.0} - simple-swizzle@0.2.4: - resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} - sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -8385,8 +8406,8 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sql-formatter@15.6.9: - resolution: {integrity: sha512-r9VKnkRfKW7jbhTgytwbM+JqmFclQYN9L58Z3UTktuy9V1f1Y+rGK3t70Truh2wIOJzvZkzobAQ2PwGjjXsr6Q==} + sql-formatter@15.6.10: + resolution: {integrity: sha512-0bJOPQrRO/JkjQhiThVayq0hOKnI1tHI+2OTkmT7TGtc6kqS+V7kveeMzRW+RNQGxofmTmet9ILvztyuxv0cJQ==} hasBin: true sshpk@1.18.0: @@ -8585,8 +8606,8 @@ packages: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} - tapable@2.2.3: - resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} tar-fs@3.1.1: @@ -8915,8 +8936,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.12.0: - resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} + undici-types@7.14.0: + resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} @@ -9152,8 +9173,8 @@ packages: web-vitals@4.2.4: resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} - webdriver-bidi-protocol@0.2.11: - resolution: {integrity: sha512-Y9E1/oi4XMxcR8AT0ZC4OvYntl34SPgwjmELH+owjBr0korAX4jKgZULBWILGCVGdVCQ0dodTToIETozhG8zvA==} + webdriver-bidi-protocol@0.3.6: + resolution: {integrity: sha512-mlGndEOA9yK9YAbvtxaPTqdi/kaCWYYfwrZvGzcmkr/3lWM+tQj53BxtpVd6qbC6+E5OnHXgCcAhre6AkXzxjA==} webdriver-js-extender@2.1.0: resolution: {integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==} @@ -9284,8 +9305,8 @@ packages: resolution: {integrity: sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg==} engines: {node: '>= 0.10.0'} - winston@3.17.0: - resolution: {integrity: sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==} + winston@3.18.3: + resolution: {integrity: sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==} engines: {node: '>= 12.0.0'} word-wrap@1.2.5: @@ -9587,21 +9608,21 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.4(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/core': 20.3.4(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.3(437ac7de9f3d1fed6740423c36eb7ebc)': + '@angular-devkit/build-angular@20.3.4(6489d4826f04a5ddbdcf317d7bfb615b)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(bufferutil@4.0.9)(webpack@5.101.2(esbuild@0.25.9)))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.3(chokidar@4.0.3) - '@angular/build': 20.3.3(896052a359e6447dff74055664bb27ed) - '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + '@angular-devkit/architect': 0.2003.4(chokidar@4.0.3) + '@angular-devkit/build-webpack': 0.2003.4(chokidar@4.0.3)(webpack-dev-server@5.2.2(bufferutil@4.0.9)(webpack@5.101.2(esbuild@0.25.9)))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.4(chokidar@4.0.3) + '@angular/build': 20.3.4(53b3a9f8314bf73588a0751b50294f65) + '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@babel/core': 7.28.3 '@babel/generator': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 @@ -9612,11 +9633,11 @@ snapshots: '@babel/preset-env': 7.28.3(@babel/core@7.28.3) '@babel/runtime': 7.28.3 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 20.3.3(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.4(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) ansi-colors: 4.1.3 autoprefixer: 10.4.21(postcss@8.5.6) babel-loader: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)) - browserslist: 4.26.2 + browserslist: 4.26.3 copy-webpack-plugin: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) css-loader: 7.1.2(webpack@5.101.2(esbuild@0.25.9)) esbuild-wasm: 0.25.9 @@ -9653,11 +9674,11 @@ snapshots: webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.101.2(esbuild@0.25.9)) optionalDependencies: - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@angular/localize': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) - '@angular/platform-server': 20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511) - '@angular/ssr': 20.3.3(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(@angular/platform-server@20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511))(@angular/router@20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9)) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@angular/localize': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) + '@angular/platform-server': 20.3.3(775236399f10ac42dfaa7965cb97fba5) + '@angular/ssr': 20.3.4(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(@angular/platform-server@20.3.3(775236399f10ac42dfaa7965cb97fba5))(@angular/router@20.3.3(c468df340d8bf2f2c91d17d98cea4990)) esbuild: 0.25.9 karma: 6.4.4(bufferutil@4.0.9) protractor: 7.0.0 @@ -9684,16 +9705,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(bufferutil@4.0.9)(webpack@5.101.2(esbuild@0.25.9)))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.4(chokidar@4.0.3)(webpack-dev-server@5.2.2(bufferutil@4.0.9)(webpack@5.101.2(esbuild@0.25.9)))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.4(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(bufferutil@4.0.9)(webpack@5.101.2(esbuild@0.25.9)) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.3(chokidar@4.0.3)': + '@angular-devkit/core@20.3.4(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1 @@ -9704,9 +9725,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.4(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/core': 20.3.4(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -9714,29 +9735,29 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))': + '@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)) + '@angular/common': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)) tslib: 2.8.1 transitivePeerDependencies: - '@angular/compiler-cli' - supports-color - '@angular/build@20.3.3(896052a359e6447dff74055664bb27ed)': + '@angular/build@20.3.4(53b3a9f8314bf73588a0751b50294f65)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) - '@angular/compiler': 20.3.2 - '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + '@angular-devkit/architect': 0.2003.4(chokidar@4.0.3) + '@angular/compiler': 20.3.3 + '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.14(@types/node@22.18.6) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.5(@types/node@22.18.6)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) + '@inquirer/confirm': 5.1.14(@types/node@22.18.8) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.5(@types/node@22.18.8)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)) beasties: 0.3.5 - browserslist: 4.26.2 + browserslist: 4.26.3 esbuild: 0.25.9 https-proxy-agent: 7.0.6(supports-color@10.2.2) istanbul-lib-instrument: 6.0.3 @@ -9747,21 +9768,21 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.38 + rollup: 4.52.3 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 tinyglobby: 0.2.14 tslib: 2.8.1 typescript: 5.9.2 - vite: 7.1.5(@types/node@22.18.6)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@22.18.8)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@angular/localize': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) - '@angular/platform-server': 20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511) - '@angular/ssr': 20.3.3(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(@angular/platform-server@20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511))(@angular/router@20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9)) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@angular/localize': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) + '@angular/platform-server': 20.3.3(775236399f10ac42dfaa7965cb97fba5) + '@angular/ssr': 20.3.4(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(@angular/platform-server@20.3.3(775236399f10ac42dfaa7965cb97fba5))(@angular/router@20.3.3(c468df340d8bf2f2c91d17d98cea4990)) karma: 6.4.4(bufferutil@4.0.9) less: 4.4.0 lmdb: 3.4.2 @@ -9779,15 +9800,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.3(@types/node@22.18.6)(chokidar@4.0.3)': + '@angular/cli@20.3.4(@types/node@22.18.8)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) - '@angular-devkit/core': 20.3.3(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) - '@inquirer/prompts': 7.8.2(@types/node@22.18.6) - '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@22.18.6))(@types/node@22.18.6)(listr2@9.0.1) + '@angular-devkit/architect': 0.2003.4(chokidar@4.0.3) + '@angular-devkit/core': 20.3.4(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.4(chokidar@4.0.3) + '@inquirer/prompts': 7.8.2(@types/node@22.18.8) + '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@22.18.8))(@types/node@22.18.8)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.3(chokidar@4.0.3) + '@schematics/angular': 20.3.4(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -9804,19 +9825,19 @@ snapshots: - chokidar - supports-color - '@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7)': + '@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7)': dependencies: - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)) rxjs: 6.6.7 tslib: 2.8.1 transitivePeerDependencies: - '@angular/compiler-cli' - supports-color - '@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)': + '@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)': dependencies: - '@angular/compiler': 20.3.2 + '@angular/compiler': 20.3.3 '@babel/core': 7.28.3 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 4.0.3 @@ -9830,67 +9851,67 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@20.3.2': + '@angular/compiler@20.3.3': dependencies: tslib: 2.8.1 - '@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)': + '@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)': dependencies: rxjs: 6.6.7 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 20.3.2 + '@angular/compiler': 20.3.3 zone.js: 0.15.1 - '@angular/forms@20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9)': + '@angular/forms@20.3.3(c468df340d8bf2f2c91d17d98cea4990)': dependencies: - '@angular/common': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) - '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)) + '@angular/common': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) + '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)) rxjs: 6.6.7 tslib: 2.8.1 transitivePeerDependencies: - '@angular/compiler-cli' - supports-color - '@angular/localize@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/compiler@20.3.2)': + '@angular/localize@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/compiler@20.3.3)': dependencies: - '@angular/compiler': 20.3.2 - '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + '@angular/compiler': 20.3.3 + '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@babel/core': 7.28.3 - '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)) + '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)) '@types/babel__core': 7.20.5 tinyglobby: 0.2.15 yargs: 18.0.0 transitivePeerDependencies: - supports-color - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb(@modelcontextprotocol/sdk@1.18.2)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/de1f701ba5cbfa36b0f02eecc7fdedb74490f0cb(@modelcontextprotocol/sdk@1.19.1)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) - '@google/genai': 1.21.0(@modelcontextprotocol/sdk@1.18.2)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) - '@inquirer/prompts': 7.8.6(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) - '@octokit/auth-app': 8.1.0 - '@octokit/core': 7.0.4 - '@octokit/graphql': 9.0.1 + '@google/genai': 1.22.0(@modelcontextprotocol/sdk@1.19.1)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@inquirer/prompts': 7.8.6(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) + '@octokit/auth-app': 8.1.1 + '@octokit/core': 7.0.5 + '@octokit/graphql': 9.0.2 '@octokit/graphql-schema': 15.26.0 '@octokit/openapi-types': 26.0.0 - '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.4) - '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.4) - '@octokit/request-error': 7.0.0 + '@octokit/plugin-paginate-rest': 13.2.0(@octokit/core@7.0.5) + '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.5) + '@octokit/request-error': 7.0.1 '@octokit/rest': 22.0.0 '@octokit/types': 15.0.0 - '@pnpm/dependency-path': 1001.1.1 + '@pnpm/dependency-path': 1001.1.2 '@types/cli-progress': 3.11.6 '@types/ejs': 3.1.5 '@types/events': 3.0.3 '@types/folder-hash': 4.0.4 '@types/git-raw-commits': 5.0.0 '@types/jasmine': 5.1.9 - '@types/node': 24.5.2 + '@types/node': 24.7.0 '@types/semver': 7.7.1 '@types/which': 3.0.4 '@types/yargs': 17.0.33 @@ -9907,8 +9928,8 @@ snapshots: firebase: 12.3.0 folder-hash: 4.1.1(supports-color@10.2.2) git-raw-commits: 5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.0) - jasmine: 5.11.0 - jasmine-core: 5.11.0 + jasmine: 5.12.0 + jasmine-core: 5.12.0 jasmine-reporters: 2.5.2 jsonc-parser: 3.3.1 minimatch: 10.0.3 @@ -9927,33 +9948,33 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/platform-browser-dynamic@20.3.2(7f9c0f71824eb93d839a8f72a67b60af)': + '@angular/platform-browser-dynamic@20.3.3(ffdacba40dd6f02e372ceb07fc177f6c)': dependencies: - '@angular/common': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) - '@angular/compiler': 20.3.2 - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) + '@angular/common': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + '@angular/compiler': 20.3.3 + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) tslib: 2.8.1 - '@angular/platform-browser@20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))': + '@angular/platform-browser@20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))': dependencies: - '@angular/common': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)) + '@angular/common': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) + '@angular/animations': 20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) transitivePeerDependencies: - '@angular/compiler-cli' - supports-color - '@angular/platform-server@20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511)': + '@angular/platform-server@20.3.3(775236399f10ac42dfaa7965cb97fba5)': dependencies: - '@angular/common': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) - '@angular/compiler': 20.3.2 - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) - '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)) + '@angular/common': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + '@angular/compiler': 20.3.3 + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) + '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)) rxjs: 6.6.7 tslib: 2.8.1 xhr2: 0.2.1 @@ -9961,26 +9982,26 @@ snapshots: - '@angular/compiler-cli' - supports-color - '@angular/router@20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9)': + '@angular/router@20.3.3(c468df340d8bf2f2c91d17d98cea4990)': dependencies: - '@angular/common': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@angular/platform-browser': 20.3.2(@angular/animations@20.3.2(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1)) - '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2)) + '@angular/common': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.3(@angular/animations@20.3.3(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)))(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1)) + '@nginfra/angular-linking': 1.0.9(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2)) rxjs: 6.6.7 tslib: 2.8.1 transitivePeerDependencies: - '@angular/compiler-cli' - supports-color - '@angular/ssr@20.3.3(@angular/common@20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(@angular/platform-server@20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511))(@angular/router@20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9))': + '@angular/ssr@20.3.4(@angular/common@20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(@angular/platform-server@20.3.3(775236399f10ac42dfaa7965cb97fba5))(@angular/router@20.3.3(c468df340d8bf2f2c91d17d98cea4990))': dependencies: - '@angular/common': 20.3.2(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(@angular/core@20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) - '@angular/core': 20.3.2(@angular/compiler@20.3.2)(rxjs@6.6.7)(zone.js@0.15.1) - '@angular/router': 20.3.2(ff3721a10fb5fa33acc2f9b04d9fb2f9) + '@angular/common': 20.3.3(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(@angular/core@20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1))(rxjs@6.6.7) + '@angular/core': 20.3.3(@angular/compiler@20.3.3)(rxjs@6.6.7)(zone.js@0.15.1) + '@angular/router': 20.3.3(c468df340d8bf2f2c91d17d98cea4990) tslib: 2.8.1 optionalDependencies: - '@angular/platform-server': 20.3.2(c04c5ae8b002cf3479e6b4e0bc5a7511) + '@angular/platform-server': 20.3.3(775236399f10ac42dfaa7965cb97fba5) '@apidevtools/json-schema-ref-parser@9.1.2': dependencies: @@ -10073,7 +10094,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.4 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.26.2 + browserslist: 4.26.3 lru-cache: 5.1.1 semver: 6.3.1 @@ -10745,9 +10766,9 @@ snapshots: dependencies: postcss-selector-parser: 6.1.2 - '@dabh/diagnostics@2.0.3': + '@dabh/diagnostics@2.0.8': dependencies: - colorspace: 1.1.4 + '@so-ric/colorspace': 1.1.6 enabled: 2.0.0 kuler: 2.0.0 @@ -10761,22 +10782,6 @@ snapshots: '@electric-sql/pglite@0.3.10': {} - '@emnapi/core@1.5.0': - dependencies: - '@emnapi/wasi-threads': 1.1.0 - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.5.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.1.0': - dependencies: - tslib: 2.8.1 - optional: true - '@esbuild/aix-ppc64@0.25.10': optional: true @@ -11253,10 +11258,10 @@ snapshots: '@firebase/webchannel-wrapper@1.0.5': {} - '@formatjs/ecma402-abstract@2.3.4': + '@formatjs/ecma402-abstract@2.3.5': dependencies: '@formatjs/fast-memoize': 2.2.7 - '@formatjs/intl-localematcher': 0.6.1 + '@formatjs/intl-localematcher': 0.6.2 decimal.js: 10.6.0 tslib: 2.8.1 @@ -11264,18 +11269,18 @@ snapshots: dependencies: tslib: 2.8.1 - '@formatjs/icu-messageformat-parser@2.11.2': + '@formatjs/icu-messageformat-parser@2.11.3': dependencies: - '@formatjs/ecma402-abstract': 2.3.4 - '@formatjs/icu-skeleton-parser': 1.8.14 + '@formatjs/ecma402-abstract': 2.3.5 + '@formatjs/icu-skeleton-parser': 1.8.15 tslib: 2.8.1 - '@formatjs/icu-skeleton-parser@1.8.14': + '@formatjs/icu-skeleton-parser@1.8.15': dependencies: - '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/ecma402-abstract': 2.3.5 tslib: 2.8.1 - '@formatjs/intl-localematcher@0.6.1': + '@formatjs/intl-localematcher@0.6.2': dependencies: tslib: 2.8.1 @@ -11283,7 +11288,7 @@ snapshots: dependencies: '@googleapis/sqladmin': 31.1.0 gaxios: 7.1.2(supports-color@10.2.2) - google-auth-library: 10.3.0(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) p-throttle: 7.0.0 transitivePeerDependencies: - supports-color @@ -11295,7 +11300,7 @@ snapshots: arrify: 2.0.1 duplexify: 4.1.3 extend: 3.0.2 - google-auth-library: 10.3.0(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) html-entities: 2.6.0 retry-request: 8.0.2(supports-color@10.2.2) teeny-request: 10.1.0(supports-color@10.2.2) @@ -11333,7 +11338,7 @@ snapshots: extend: 3.0.2 google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) google-gax: 4.6.1(encoding@0.1.13) - heap-js: 2.6.0 + heap-js: 2.7.1 is-stream-ended: 0.1.4 lodash.snakecase: 4.1.1 p-defer: 3.0.0 @@ -11359,8 +11364,8 @@ snapshots: duplexify: 4.1.3 events-intercept: 2.0.0 extend: 3.0.2 - google-auth-library: 10.3.0(supports-color@10.2.2) - google-gax: 5.0.3(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) + google-gax: 5.0.4(supports-color@10.2.2) grpc-gcp: 1.0.1 is: 3.3.2 lodash.snakecase: 4.1.1 @@ -11376,12 +11381,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.21.0(@modelcontextprotocol/sdk@1.18.2)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': + '@google/genai@1.22.0(@modelcontextprotocol/sdk@1.19.1)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': dependencies: google-auth-library: 9.15.1(encoding@0.1.13)(supports-color@10.2.2) ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) optionalDependencies: - '@modelcontextprotocol/sdk': 1.18.2 + '@modelcontextprotocol/sdk': 1.19.1 transitivePeerDependencies: - bufferutil - encoding @@ -11402,7 +11407,7 @@ snapshots: '@grpc/grpc-js@1.9.15': dependencies: '@grpc/proto-loader': 0.7.15 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@grpc/proto-loader@0.7.15': dependencies: @@ -11420,271 +11425,271 @@ snapshots: '@inquirer/ansi@1.0.0': {} - '@inquirer/checkbox@4.2.4(@types/node@22.18.6)': + '@inquirer/checkbox@4.2.4(@types/node@22.18.8)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/type': 3.0.8(@types/node@22.18.8) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/checkbox@4.2.4(@types/node@24.5.2)': + '@inquirer/checkbox@4.2.4(@types/node@24.7.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/confirm@5.1.14(@types/node@22.18.6)': + '@inquirer/confirm@5.1.14(@types/node@22.18.8)': dependencies: - '@inquirer/core': 10.2.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/confirm@5.1.18(@types/node@22.18.6)': + '@inquirer/confirm@5.1.18(@types/node@22.18.8)': dependencies: - '@inquirer/core': 10.2.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/confirm@5.1.18(@types/node@24.5.2)': + '@inquirer/confirm@5.1.18(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/core@10.2.2(@types/node@22.18.6)': + '@inquirer/core@10.2.2(@types/node@22.18.8)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/type': 3.0.8(@types/node@22.18.8) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/core@10.2.2(@types/node@24.5.2)': + '@inquirer/core@10.2.2(@types/node@24.7.0)': dependencies: '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.7.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/editor@4.2.20(@types/node@22.18.6)': + '@inquirer/editor@4.2.20(@types/node@22.18.8)': dependencies: - '@inquirer/core': 10.2.2(@types/node@22.18.6) - '@inquirer/external-editor': 1.0.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) + '@inquirer/external-editor': 1.0.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/editor@4.2.20(@types/node@24.5.2)': + '@inquirer/editor@4.2.20(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/external-editor': 1.0.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/external-editor': 1.0.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/expand@4.0.20(@types/node@22.18.6)': + '@inquirer/expand@4.0.20(@types/node@22.18.8)': dependencies: - '@inquirer/core': 10.2.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/expand@4.0.20(@types/node@24.5.2)': + '@inquirer/expand@4.0.20(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/external-editor@1.0.2(@types/node@22.18.6)': + '@inquirer/external-editor@1.0.2(@types/node@22.18.8)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/external-editor@1.0.2(@types/node@24.5.2)': + '@inquirer/external-editor@1.0.2(@types/node@24.7.0)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.4(@types/node@22.18.6)': + '@inquirer/input@4.2.4(@types/node@22.18.8)': dependencies: - '@inquirer/core': 10.2.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/input@4.2.4(@types/node@24.5.2)': + '@inquirer/input@4.2.4(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/number@3.0.20(@types/node@22.18.6)': + '@inquirer/number@3.0.20(@types/node@22.18.8)': dependencies: - '@inquirer/core': 10.2.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/number@3.0.20(@types/node@24.5.2)': + '@inquirer/number@3.0.20(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/password@4.0.20(@types/node@22.18.6)': + '@inquirer/password@4.0.20(@types/node@22.18.8)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/password@4.0.20(@types/node@24.5.2)': + '@inquirer/password@4.0.20(@types/node@24.7.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 - - '@inquirer/prompts@7.8.2(@types/node@22.18.6)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@22.18.6) - '@inquirer/confirm': 5.1.18(@types/node@22.18.6) - '@inquirer/editor': 4.2.20(@types/node@22.18.6) - '@inquirer/expand': 4.0.20(@types/node@22.18.6) - '@inquirer/input': 4.2.4(@types/node@22.18.6) - '@inquirer/number': 3.0.20(@types/node@22.18.6) - '@inquirer/password': 4.0.20(@types/node@22.18.6) - '@inquirer/rawlist': 4.1.8(@types/node@22.18.6) - '@inquirer/search': 3.1.3(@types/node@22.18.6) - '@inquirer/select': 4.3.4(@types/node@22.18.6) + '@types/node': 24.7.0 + + '@inquirer/prompts@7.8.2(@types/node@22.18.8)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@22.18.8) + '@inquirer/confirm': 5.1.18(@types/node@22.18.8) + '@inquirer/editor': 4.2.20(@types/node@22.18.8) + '@inquirer/expand': 4.0.20(@types/node@22.18.8) + '@inquirer/input': 4.2.4(@types/node@22.18.8) + '@inquirer/number': 3.0.20(@types/node@22.18.8) + '@inquirer/password': 4.0.20(@types/node@22.18.8) + '@inquirer/rawlist': 4.1.8(@types/node@22.18.8) + '@inquirer/search': 3.1.3(@types/node@22.18.8) + '@inquirer/select': 4.3.4(@types/node@22.18.8) optionalDependencies: - '@types/node': 22.18.6 - - '@inquirer/prompts@7.8.6(@types/node@22.18.6)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@22.18.6) - '@inquirer/confirm': 5.1.18(@types/node@22.18.6) - '@inquirer/editor': 4.2.20(@types/node@22.18.6) - '@inquirer/expand': 4.0.20(@types/node@22.18.6) - '@inquirer/input': 4.2.4(@types/node@22.18.6) - '@inquirer/number': 3.0.20(@types/node@22.18.6) - '@inquirer/password': 4.0.20(@types/node@22.18.6) - '@inquirer/rawlist': 4.1.8(@types/node@22.18.6) - '@inquirer/search': 3.1.3(@types/node@22.18.6) - '@inquirer/select': 4.3.4(@types/node@22.18.6) + '@types/node': 22.18.8 + + '@inquirer/prompts@7.8.6(@types/node@22.18.8)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@22.18.8) + '@inquirer/confirm': 5.1.18(@types/node@22.18.8) + '@inquirer/editor': 4.2.20(@types/node@22.18.8) + '@inquirer/expand': 4.0.20(@types/node@22.18.8) + '@inquirer/input': 4.2.4(@types/node@22.18.8) + '@inquirer/number': 3.0.20(@types/node@22.18.8) + '@inquirer/password': 4.0.20(@types/node@22.18.8) + '@inquirer/rawlist': 4.1.8(@types/node@22.18.8) + '@inquirer/search': 3.1.3(@types/node@22.18.8) + '@inquirer/select': 4.3.4(@types/node@22.18.8) optionalDependencies: - '@types/node': 22.18.6 - - '@inquirer/prompts@7.8.6(@types/node@24.5.2)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.5.2) - '@inquirer/confirm': 5.1.18(@types/node@24.5.2) - '@inquirer/editor': 4.2.20(@types/node@24.5.2) - '@inquirer/expand': 4.0.20(@types/node@24.5.2) - '@inquirer/input': 4.2.4(@types/node@24.5.2) - '@inquirer/number': 3.0.20(@types/node@24.5.2) - '@inquirer/password': 4.0.20(@types/node@24.5.2) - '@inquirer/rawlist': 4.1.8(@types/node@24.5.2) - '@inquirer/search': 3.1.3(@types/node@24.5.2) - '@inquirer/select': 4.3.4(@types/node@24.5.2) + '@types/node': 22.18.8 + + '@inquirer/prompts@7.8.6(@types/node@24.7.0)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.7.0) + '@inquirer/confirm': 5.1.18(@types/node@24.7.0) + '@inquirer/editor': 4.2.20(@types/node@24.7.0) + '@inquirer/expand': 4.0.20(@types/node@24.7.0) + '@inquirer/input': 4.2.4(@types/node@24.7.0) + '@inquirer/number': 3.0.20(@types/node@24.7.0) + '@inquirer/password': 4.0.20(@types/node@24.7.0) + '@inquirer/rawlist': 4.1.8(@types/node@24.7.0) + '@inquirer/search': 3.1.3(@types/node@24.7.0) + '@inquirer/select': 4.3.4(@types/node@24.7.0) optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/rawlist@4.1.8(@types/node@22.18.6)': + '@inquirer/rawlist@4.1.8(@types/node@22.18.8)': dependencies: - '@inquirer/core': 10.2.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/rawlist@4.1.8(@types/node@24.5.2)': + '@inquirer/rawlist@4.1.8(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/search@3.1.3(@types/node@22.18.6)': + '@inquirer/search@3.1.3(@types/node@22.18.8)': dependencies: - '@inquirer/core': 10.2.2(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/type': 3.0.8(@types/node@22.18.8) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/search@3.1.3(@types/node@24.5.2)': + '@inquirer/search@3.1.3(@types/node@24.7.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/select@4.3.4(@types/node@22.18.6)': + '@inquirer/select@4.3.4(@types/node@22.18.8)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@22.18.6) + '@inquirer/core': 10.2.2(@types/node@22.18.8) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/type': 3.0.8(@types/node@22.18.8) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/select@4.3.4(@types/node@24.5.2)': + '@inquirer/select@4.3.4(@types/node@24.7.0)': dependencies: '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/core': 10.2.2(@types/node@24.7.0) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 - '@inquirer/type@3.0.8(@types/node@22.18.6)': + '@inquirer/type@3.0.8(@types/node@22.18.8)': optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@inquirer/type@3.0.8(@types/node@24.5.2)': + '@inquirer/type@3.0.8(@types/node@24.7.0)': optionalDependencies: - '@types/node': 24.5.2 + '@types/node': 24.7.0 '@isaacs/balanced-match@4.0.1': {} @@ -11777,10 +11782,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@22.18.6))(@types/node@22.18.6)(listr2@9.0.1)': + '@listr2/prompt-adapter-inquirer@3.0.1(@inquirer/prompts@7.8.2(@types/node@22.18.8))(@types/node@22.18.8)(listr2@9.0.1)': dependencies: - '@inquirer/prompts': 7.8.2(@types/node@22.18.6) - '@inquirer/type': 3.0.8(@types/node@22.18.6) + '@inquirer/prompts': 7.8.2(@types/node@22.18.8) + '@inquirer/type': 3.0.8(@types/node@22.18.8) listr2: 9.0.1 transitivePeerDependencies: - '@types/node' @@ -11825,7 +11830,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@modelcontextprotocol/sdk@1.18.2': + '@modelcontextprotocol/sdk@1.19.1': dependencies: ajv: 6.12.6 content-type: 1.0.5 @@ -11941,27 +11946,20 @@ snapshots: '@napi-rs/nice-win32-x64-msvc': 1.1.1 optional: true - '@napi-rs/wasm-runtime@1.0.5': - dependencies: - '@emnapi/core': 1.5.0 - '@emnapi/runtime': 1.5.0 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@nginfra/angular-linking@1.0.9(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))': + '@nginfra/angular-linking@1.0.9(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))': dependencies: - '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) '@babel/core': 7.26.10 '@types/babel__core': 7.20.5 - '@types/node': 22.18.6 + '@types/node': 22.18.8 tinyglobby: 0.2.12 typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@ngtools/webpack@20.3.3(@angular/compiler-cli@20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2))(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.4(@angular/compiler-cli@20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2))(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular/compiler-cli': 20.3.2(@angular/compiler@20.3.2)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.3(@angular/compiler@20.3.3)(typescript@5.9.2) typescript: 5.9.2 webpack: 5.101.2(esbuild@0.25.9) @@ -12036,55 +12034,55 @@ snapshots: transitivePeerDependencies: - supports-color - '@octokit/auth-app@8.1.0': + '@octokit/auth-app@8.1.1': dependencies: - '@octokit/auth-oauth-app': 9.0.1 - '@octokit/auth-oauth-user': 6.0.0 - '@octokit/request': 10.0.3 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/auth-oauth-app': 9.0.2 + '@octokit/auth-oauth-user': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 toad-cache: 3.7.0 universal-github-app-jwt: 2.2.2 universal-user-agent: 7.0.3 - '@octokit/auth-oauth-app@9.0.1': + '@octokit/auth-oauth-app@9.0.2': dependencies: - '@octokit/auth-oauth-device': 8.0.1 - '@octokit/auth-oauth-user': 6.0.0 - '@octokit/request': 10.0.3 - '@octokit/types': 14.1.0 + '@octokit/auth-oauth-device': 8.0.2 + '@octokit/auth-oauth-user': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 - '@octokit/auth-oauth-device@8.0.1': + '@octokit/auth-oauth-device@8.0.2': dependencies: - '@octokit/oauth-methods': 6.0.0 - '@octokit/request': 10.0.3 - '@octokit/types': 14.1.0 + '@octokit/oauth-methods': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 - '@octokit/auth-oauth-user@6.0.0': + '@octokit/auth-oauth-user@6.0.1': dependencies: - '@octokit/auth-oauth-device': 8.0.1 - '@octokit/oauth-methods': 6.0.0 - '@octokit/request': 10.0.3 - '@octokit/types': 14.1.0 + '@octokit/auth-oauth-device': 8.0.2 + '@octokit/oauth-methods': 6.0.1 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 '@octokit/auth-token@6.0.0': {} - '@octokit/core@7.0.4': + '@octokit/core@7.0.5': dependencies: '@octokit/auth-token': 6.0.0 - '@octokit/graphql': 9.0.1 - '@octokit/request': 10.0.3 - '@octokit/request-error': 7.0.0 + '@octokit/graphql': 9.0.2 + '@octokit/request': 10.0.5 + '@octokit/request-error': 7.0.1 '@octokit/types': 15.0.0 before-after-hook: 4.0.0 universal-user-agent: 7.0.3 - '@octokit/endpoint@11.0.0': + '@octokit/endpoint@11.0.1': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 '@octokit/graphql-schema@15.26.0': @@ -12092,61 +12090,55 @@ snapshots: graphql: 16.11.0 graphql-tag: 2.12.6(graphql@16.11.0) - '@octokit/graphql@9.0.1': + '@octokit/graphql@9.0.2': dependencies: - '@octokit/request': 10.0.3 - '@octokit/types': 14.1.0 + '@octokit/request': 10.0.5 + '@octokit/types': 15.0.0 universal-user-agent: 7.0.3 '@octokit/oauth-authorization-url@8.0.0': {} - '@octokit/oauth-methods@6.0.0': + '@octokit/oauth-methods@6.0.1': dependencies: '@octokit/oauth-authorization-url': 8.0.0 - '@octokit/request': 10.0.3 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 - - '@octokit/openapi-types@25.1.0': {} + '@octokit/request': 10.0.5 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 '@octokit/openapi-types@26.0.0': {} - '@octokit/plugin-paginate-rest@13.1.1(@octokit/core@7.0.4)': + '@octokit/plugin-paginate-rest@13.2.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.4 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.5 + '@octokit/types': 15.0.0 - '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.4)': + '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.4 + '@octokit/core': 7.0.5 - '@octokit/plugin-rest-endpoint-methods@16.1.0(@octokit/core@7.0.4)': + '@octokit/plugin-rest-endpoint-methods@16.1.0(@octokit/core@7.0.5)': dependencies: - '@octokit/core': 7.0.4 + '@octokit/core': 7.0.5 '@octokit/types': 15.0.0 - '@octokit/request-error@7.0.0': + '@octokit/request-error@7.0.1': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 15.0.0 - '@octokit/request@10.0.3': + '@octokit/request@10.0.5': dependencies: - '@octokit/endpoint': 11.0.0 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/endpoint': 11.0.1 + '@octokit/request-error': 7.0.1 + '@octokit/types': 15.0.0 fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.3 '@octokit/rest@22.0.0': dependencies: - '@octokit/core': 7.0.4 - '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.4) - '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.4) - '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.4) - - '@octokit/types@14.1.0': - dependencies: - '@octokit/openapi-types': 25.1.0 + '@octokit/core': 7.0.5 + '@octokit/plugin-paginate-rest': 13.2.0(@octokit/core@7.0.5) + '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.5) + '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.5) '@octokit/types@15.0.0': dependencies: @@ -12176,8 +12168,6 @@ snapshots: '@opentelemetry/semantic-conventions@1.37.0': {} - '@oxc-project/types@0.89.0': {} - '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -12251,21 +12241,21 @@ snapshots: '@pnpm/config.env-replace@1.1.0': {} - '@pnpm/crypto.hash@1000.2.0': + '@pnpm/crypto.hash@1000.2.1': dependencies: '@pnpm/crypto.polyfill': 1000.1.0 - '@pnpm/graceful-fs': 1000.0.0 + '@pnpm/graceful-fs': 1000.0.1 ssri: 10.0.5 '@pnpm/crypto.polyfill@1000.1.0': {} - '@pnpm/dependency-path@1001.1.1': + '@pnpm/dependency-path@1001.1.2': dependencies: - '@pnpm/crypto.hash': 1000.2.0 + '@pnpm/crypto.hash': 1000.2.1 '@pnpm/types': 1000.8.0 semver: 7.7.2 - '@pnpm/graceful-fs@1000.0.0': + '@pnpm/graceful-fs@1000.0.1': dependencies: graceful-fs: 4.2.11 @@ -12333,55 +12323,9 @@ snapshots: - react-native-b4a - supports-color - '@rolldown/binding-android-arm64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-darwin-arm64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-darwin-x64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-freebsd-x64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': - optional: true - - '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': - optional: true - - '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': - optional: true - - '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': + '@rollup/plugin-commonjs@28.0.6(rollup@4.52.4)': dependencies: - '@napi-rs/wasm-runtime': 1.0.5 - optional: true - - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': - optional: true - - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': - optional: true - - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': - optional: true - - '@rolldown/pluginutils@1.0.0-beta.38': {} - - '@rollup/plugin-commonjs@28.0.6(rollup@4.52.3)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.5.0(picomatch@4.0.3) @@ -12389,104 +12333,170 @@ snapshots: magic-string: 0.30.17 picomatch: 4.0.3 optionalDependencies: - rollup: 4.52.3 + rollup: 4.52.4 - '@rollup/plugin-node-resolve@16.0.1(rollup@4.52.3)': + '@rollup/plugin-node-resolve@16.0.2(rollup@4.52.4)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.10 optionalDependencies: - rollup: 4.52.3 + rollup: 4.52.4 - '@rollup/pluginutils@5.2.0(rollup@4.52.3)': + '@rollup/pluginutils@5.2.0(rollup@4.52.4)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.52.3 + rollup: 4.52.4 - '@rollup/pluginutils@5.3.0(rollup@4.52.3)': + '@rollup/pluginutils@5.3.0(rollup@4.52.4)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.52.3 + rollup: 4.52.4 '@rollup/rollup-android-arm-eabi@4.52.3': optional: true + '@rollup/rollup-android-arm-eabi@4.52.4': + optional: true + '@rollup/rollup-android-arm64@4.52.3': optional: true + '@rollup/rollup-android-arm64@4.52.4': + optional: true + '@rollup/rollup-darwin-arm64@4.52.3': optional: true + '@rollup/rollup-darwin-arm64@4.52.4': + optional: true + '@rollup/rollup-darwin-x64@4.52.3': optional: true + '@rollup/rollup-darwin-x64@4.52.4': + optional: true + '@rollup/rollup-freebsd-arm64@4.52.3': optional: true + '@rollup/rollup-freebsd-arm64@4.52.4': + optional: true + '@rollup/rollup-freebsd-x64@4.52.3': optional: true + '@rollup/rollup-freebsd-x64@4.52.4': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.52.4': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.52.3': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.52.4': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.52.3': optional: true + '@rollup/rollup-linux-arm64-gnu@4.52.4': + optional: true + '@rollup/rollup-linux-arm64-musl@4.52.3': optional: true + '@rollup/rollup-linux-arm64-musl@4.52.4': + optional: true + '@rollup/rollup-linux-loong64-gnu@4.52.3': optional: true + '@rollup/rollup-linux-loong64-gnu@4.52.4': + optional: true + '@rollup/rollup-linux-ppc64-gnu@4.52.3': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.52.4': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.52.3': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.52.4': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.52.3': optional: true + '@rollup/rollup-linux-riscv64-musl@4.52.4': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.52.3': optional: true + '@rollup/rollup-linux-s390x-gnu@4.52.4': + optional: true + '@rollup/rollup-linux-x64-gnu@4.52.3': optional: true + '@rollup/rollup-linux-x64-gnu@4.52.4': + optional: true + '@rollup/rollup-linux-x64-musl@4.52.3': optional: true + '@rollup/rollup-linux-x64-musl@4.52.4': + optional: true + '@rollup/rollup-openharmony-arm64@4.52.3': optional: true + '@rollup/rollup-openharmony-arm64@4.52.4': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.52.3': optional: true + '@rollup/rollup-win32-arm64-msvc@4.52.4': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.52.3': optional: true + '@rollup/rollup-win32-ia32-msvc@4.52.4': + optional: true + '@rollup/rollup-win32-x64-gnu@4.52.3': optional: true + '@rollup/rollup-win32-x64-gnu@4.52.4': + optional: true + '@rollup/rollup-win32-x64-msvc@4.52.3': optional: true - '@schematics/angular@20.3.3(chokidar@4.0.3)': + '@rollup/rollup-win32-x64-msvc@4.52.4': + optional: true + + '@schematics/angular@20.3.4(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.3(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) + '@angular-devkit/core': 20.3.4(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.4(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -12565,6 +12575,11 @@ snapshots: '@sindresorhus/is@4.6.0': {} + '@so-ric/colorspace@1.1.6': + dependencies: + color: 5.0.2 + text-hex: 1.0.0 + '@socket.io/component-emitter@3.1.2': {} '@stackblitz/sdk@1.11.0': {} @@ -12588,11 +12603,6 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 9.0.5 - '@tybys/wasm-util@0.10.1': - dependencies: - tslib: 2.8.1 - optional: true - '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.4 @@ -12619,34 +12629,34 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/caseless@0.12.5': {} '@types/cli-progress@3.11.6': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.6 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/cors@2.8.19': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/duplexify@3.6.4': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/ejs@3.1.5': {} @@ -12666,28 +12676,28 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 - '@types/send': 0.17.5 + '@types/send': 1.2.0 '@types/express@4.17.23': dependencies: '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 4.19.6 '@types/qs': 6.14.0 - '@types/serve-static': 1.15.8 + '@types/serve-static': 1.15.9 '@types/folder-hash@4.0.4': {} '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/git-raw-commits@5.0.0': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/google.maps@3.58.1': {} @@ -12695,7 +12705,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/jasmine@5.1.8': {} @@ -12705,7 +12715,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/long@4.0.2': {} @@ -12717,15 +12727,15 @@ snapshots: '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 - '@types/node@22.18.6': + '@types/node@22.18.8': dependencies: undici-types: 6.21.0 - '@types/node@24.5.2': + '@types/node@24.7.0': dependencies: - undici-types: 7.12.0 + undici-types: 7.14.0 '@types/normalize-package-data@2.4.4': {} @@ -12734,7 +12744,7 @@ snapshots: '@types/pumpify@1.4.4': dependencies: '@types/duplexify': 3.6.4 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/q@0.0.32': {} @@ -12745,7 +12755,7 @@ snapshots: '@types/request@2.48.13': dependencies: '@types/caseless': 0.12.5 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/tough-cookie': 4.0.5 form-data: 2.5.5 @@ -12760,26 +12770,30 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.18.6 + '@types/node': 22.18.8 + + '@types/send@1.2.0': + dependencies: + '@types/node': 22.18.8 '@types/serve-index@1.9.4': dependencies: '@types/express': 4.17.23 - '@types/serve-static@1.15.8': + '@types/serve-static@1.15.9': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/send': 0.17.5 '@types/shelljs@0.8.17': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 glob: 11.0.3 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/stack-trace@0.0.33': {} @@ -12797,7 +12811,7 @@ snapshots: '@types/vfile@3.0.2': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/unist': 2.0.11 '@types/vfile-message': 2.0.0 @@ -12805,7 +12819,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 '@types/yargs-parser@21.0.3': {} @@ -12817,14 +12831,14 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 optional: true '@types/youtube@0.1.2': {} - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@22.18.6)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@22.18.8)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@22.18.6)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) + vite: 7.1.5(@types/node@22.18.8)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1) '@webassemblyjs/ast@1.14.1': dependencies: @@ -13042,8 +13056,6 @@ snapshots: ansi-styles@6.2.3: {} - ansis@4.2.0: {} - any-promise@1.3.0: {} anymatch@3.1.3: @@ -13146,8 +13158,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.26.2 - caniuse-lite: 1.0.30001745 + browserslist: 4.26.3 + caniuse-lite: 1.0.30001747 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -13241,7 +13253,7 @@ snapshots: base64id@2.0.0: {} - baseline-browser-mapping@2.8.9: {} + baseline-browser-mapping@2.8.12: {} basic-auth-connect@1.1.0: dependencies: @@ -13358,13 +13370,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.26.2: + browserslist@4.26.3: dependencies: - baseline-browser-mapping: 2.8.9 - caniuse-lite: 1.0.30001745 - electron-to-chromium: 1.5.227 - node-releases: 2.0.21 - update-browserslist-db: 1.1.3(browserslist@4.26.2) + baseline-browser-mapping: 2.8.12 + caniuse-lite: 1.0.30001747 + electron-to-chromium: 1.5.230 + node-releases: 2.0.23 + update-browserslist-db: 1.1.3(browserslist@4.26.3) browserstack-local@1.5.8: dependencies: @@ -13471,7 +13483,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001745: {} + caniuse-lite@1.0.30001747: {} canonical-path@0.0.2: {} @@ -13565,7 +13577,7 @@ snapshots: chrome-launcher@1.2.1: dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 2.0.2 @@ -13581,9 +13593,9 @@ snapshots: urlpattern-polyfill: 10.0.0 zod: 3.23.8 - chromium-bidi@9.1.0(devtools-protocol@0.0.1495869): + chromium-bidi@9.1.0(devtools-protocol@0.0.1508733): dependencies: - devtools-protocol: 0.0.1495869 + devtools-protocol: 0.0.1508733 mitt: 3.0.1 zod: 3.25.76 @@ -13673,19 +13685,24 @@ snapshots: dependencies: color-name: 1.1.4 + color-convert@3.1.2: + dependencies: + color-name: 2.0.2 + color-name@1.1.3: {} color-name@1.1.4: {} - color-string@1.9.1: + color-name@2.0.2: {} + + color-string@2.1.2: dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.4 + color-name: 2.0.2 - color@3.2.1: + color@5.0.2: dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 + color-convert: 3.1.2 + color-string: 2.1.2 colord@2.9.3: {} @@ -13695,11 +13712,6 @@ snapshots: colors@1.4.0: {} - colorspace@1.1.4: - dependencies: - color: 3.2.1 - text-hex: 1.0.0 - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -13821,14 +13833,14 @@ snapshots: dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 - schema-utils: 4.3.2 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 tinyglobby: 0.2.15 webpack: 5.101.2(esbuild@0.25.9) core-js-compat@3.45.1: dependencies: - browserslist: 4.26.2 + browserslist: 4.26.3 core-util-is@1.0.2: {} @@ -14069,7 +14081,7 @@ snapshots: devtools-protocol@0.0.1312386: {} - devtools-protocol@0.0.1495869: {} + devtools-protocol@0.0.1508733: {} dgeni-packages@0.30.0(dgeni@0.4.14): dependencies: @@ -14210,7 +14222,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.227: {} + electron-to-chromium@1.5.230: {} emoji-regex@10.5.0: {} @@ -14241,7 +14253,7 @@ snapshots: engine.io@6.6.4(bufferutil@4.0.9): dependencies: '@types/cors': 2.8.19 - '@types/node': 22.18.6 + '@types/node': 22.18.8 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -14257,7 +14269,7 @@ snapshots: enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.3 + tapable: 2.3.0 enquirer@2.4.1: dependencies: @@ -14771,14 +14783,14 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - firebase-tools@14.12.0(@types/node@22.18.6)(bufferutil@4.0.9)(encoding@0.1.13): + firebase-tools@14.12.0(@types/node@22.18.8)(bufferutil@4.0.9)(encoding@0.1.13): dependencies: '@electric-sql/pglite': 0.3.10 '@electric-sql/pglite-tools': 0.2.15(@electric-sql/pglite@0.3.10) '@google-cloud/cloud-sql-connector': 1.8.3 '@google-cloud/pubsub': 4.11.0(encoding@0.1.13) - '@inquirer/prompts': 7.8.6(@types/node@22.18.6) - '@modelcontextprotocol/sdk': 1.18.2 + '@inquirer/prompts': 7.8.6(@types/node@22.18.8) + '@modelcontextprotocol/sdk': 1.19.1 abort-controller: 3.0.0 ajv: 8.17.1 ajv-formats: 3.0.1 @@ -14830,7 +14842,7 @@ snapshots: proxy-agent: 6.5.0 retry: 0.13.1 semver: 7.7.2 - sql-formatter: 15.6.9 + sql-formatter: 15.6.10 stream-chain: 2.2.5 stream-json: 1.9.1 superstatic: 9.2.0(encoding@0.1.13) @@ -14841,7 +14853,7 @@ snapshots: universal-analytics: 0.5.3 update-notifier-cjs: 5.1.7(encoding@0.1.13) uuid: 8.3.2 - winston: 3.17.0 + winston: 3.18.3 winston-transport: 4.9.0 ws: 7.5.10(bufferutil@4.0.9) yaml: 2.8.1 @@ -15046,6 +15058,8 @@ snapshots: transitivePeerDependencies: - supports-color + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -15122,7 +15136,7 @@ snapshots: lodash.isobject: 2.4.1 toxic: 1.0.1 - glob-to-regex.js@1.0.1(tslib@2.8.1): + glob-to-regex.js@1.2.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -15159,7 +15173,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.8 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 @@ -15217,7 +15231,7 @@ snapshots: lodash: 4.17.21 minimatch: 3.0.8 - google-auth-library@10.3.0(supports-color@10.2.2): + google-auth-library@10.4.0(supports-color@10.2.2): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 @@ -15259,13 +15273,12 @@ snapshots: - encoding - supports-color - google-gax@5.0.3(supports-color@10.2.2): + google-gax@5.0.4(supports-color@10.2.2): dependencies: '@grpc/grpc-js': 1.14.0 '@grpc/proto-loader': 0.8.0 - abort-controller: 3.0.0 duplexify: 4.1.3 - google-auth-library: 10.3.0(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 @@ -15283,7 +15296,7 @@ snapshots: dependencies: extend: 3.0.2 gaxios: 7.1.2(supports-color@10.2.2) - google-auth-library: 10.3.0(supports-color@10.2.2) + google-auth-library: 10.4.0(supports-color@10.2.2) qs: 6.14.0 url-template: 2.0.8 transitivePeerDependencies: @@ -15413,7 +15426,7 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 - heap-js@2.6.0: {} + heap-js@2.7.1: {} highlight.js@10.7.3: {} @@ -15650,11 +15663,11 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - intl-messageformat@10.7.16: + intl-messageformat@10.7.17: dependencies: - '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/ecma402-abstract': 2.3.5 '@formatjs/fast-memoize': 2.2.7 - '@formatjs/icu-messageformat-parser': 2.11.2 + '@formatjs/icu-messageformat-parser': 2.11.3 tslib: 2.8.1 ip-address@10.0.1: {} @@ -15680,8 +15693,6 @@ snapshots: is-arrayish@0.2.1: {} - is-arrayish@0.3.4: {} - is-async-function@2.1.1: dependencies: async-function: 1.0.0 @@ -15748,9 +15759,10 @@ snapshots: dependencies: get-east-asian-width: 1.4.0 - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -16015,6 +16027,8 @@ snapshots: jasmine-core@5.11.0: {} + jasmine-core@5.12.0: {} + jasmine-core@5.9.0: {} jasmine-reporters@2.5.2: @@ -16037,11 +16051,16 @@ snapshots: glob: 10.4.5 jasmine-core: 5.11.0 + jasmine@5.12.0: + dependencies: + glob: 10.4.5 + jasmine-core: 5.12.0 + jasminewd2@2.2.0: {} jest-worker@27.5.1: dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -16363,7 +16382,7 @@ snapshots: devtools-protocol: 0.0.1232444 enquirer: 2.4.1 http-link-header: 1.1.3 - intl-messageformat: 10.7.16 + intl-messageformat: 10.7.17 jpeg-js: 0.4.4 js-library-detector: 6.7.0 lighthouse-logger: 2.0.2 @@ -16627,11 +16646,11 @@ snapshots: media-typer@1.1.0: {} - memfs@4.47.0: + memfs@4.48.1: dependencies: '@jsonjoy.com/json-pack': 1.14.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) - glob-to-regex.js: 1.0.1(tslib@2.8.1) + glob-to-regex.js: 1.2.0(tslib@2.8.1) thingies: 2.5.0(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 @@ -16696,8 +16715,8 @@ snapshots: mini-css-extract-plugin@2.9.4(webpack@5.101.2(esbuild@0.25.9)): dependencies: - schema-utils: 4.3.2 - tapable: 2.2.3 + schema-utils: 4.3.3 + tapable: 2.3.0 webpack: 5.101.2(esbuild@0.25.9) minimalistic-assert@1.0.1: {} @@ -16936,7 +16955,7 @@ snapshots: transitivePeerDependencies: - supports-color - node-releases@2.0.21: {} + node-releases@2.0.23: {} nopt@3.0.6: dependencies: @@ -17542,7 +17561,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.18.6 + '@types/node': 22.18.8 long: 5.3.2 protobufjs@7.5.4: @@ -17557,7 +17576,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.18.6 + '@types/node': 22.18.8 long: 5.3.2 protractor@7.0.0: @@ -17651,14 +17670,14 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@24.22.3(bufferutil@4.0.9): + puppeteer-core@24.23.0(bufferutil@4.0.9): dependencies: '@puppeteer/browsers': 2.10.10 - chromium-bidi: 9.1.0(devtools-protocol@0.0.1495869) + chromium-bidi: 9.1.0(devtools-protocol@0.0.1508733) debug: 4.4.3(supports-color@10.2.2) - devtools-protocol: 0.0.1495869 + devtools-protocol: 0.0.1508733 typed-query-selector: 2.12.0 - webdriver-bidi-protocol: 0.2.11 + webdriver-bidi-protocol: 0.3.6 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bare-buffer @@ -17965,41 +17984,20 @@ snapshots: robots-parser@3.0.1: {} - rolldown@1.0.0-beta.38: - dependencies: - '@oxc-project/types': 0.89.0 - '@rolldown/pluginutils': 1.0.0-beta.38 - ansis: 4.2.0 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.38 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.38 - '@rolldown/binding-darwin-x64': 1.0.0-beta.38 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.38 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.38 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.38 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.38 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.38 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.38 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.38 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.38 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.38 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.38 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.38 - - rollup-plugin-dts@6.2.1(rollup@4.52.3)(typescript@5.9.2): + rollup-plugin-dts@6.2.1(rollup@4.52.4)(typescript@5.9.2): dependencies: magic-string: 0.30.17 - rollup: 4.52.3 + rollup: 4.52.4 typescript: 5.9.2 optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.6)(rollup@4.52.3): + rollup-plugin-sourcemaps2@0.5.3(@types/node@22.18.8)(rollup@4.52.4): dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.52.3) - rollup: 4.52.3 + '@rollup/pluginutils': 5.2.0(rollup@4.52.4) + rollup: 4.52.4 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 rollup@4.52.3: dependencies: @@ -18029,6 +18027,34 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.3 fsevents: 2.3.3 + rollup@4.52.4: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.52.4 + '@rollup/rollup-android-arm64': 4.52.4 + '@rollup/rollup-darwin-arm64': 4.52.4 + '@rollup/rollup-darwin-x64': 4.52.4 + '@rollup/rollup-freebsd-arm64': 4.52.4 + '@rollup/rollup-freebsd-x64': 4.52.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.4 + '@rollup/rollup-linux-arm-musleabihf': 4.52.4 + '@rollup/rollup-linux-arm64-gnu': 4.52.4 + '@rollup/rollup-linux-arm64-musl': 4.52.4 + '@rollup/rollup-linux-loong64-gnu': 4.52.4 + '@rollup/rollup-linux-ppc64-gnu': 4.52.4 + '@rollup/rollup-linux-riscv64-gnu': 4.52.4 + '@rollup/rollup-linux-riscv64-musl': 4.52.4 + '@rollup/rollup-linux-s390x-gnu': 4.52.4 + '@rollup/rollup-linux-x64-gnu': 4.52.4 + '@rollup/rollup-linux-x64-musl': 4.52.4 + '@rollup/rollup-openharmony-arm64': 4.52.4 + '@rollup/rollup-win32-arm64-msvc': 4.52.4 + '@rollup/rollup-win32-ia32-msvc': 4.52.4 + '@rollup/rollup-win32-x64-gnu': 4.52.4 + '@rollup/rollup-win32-x64-msvc': 4.52.4 + fsevents: 2.3.3 + router@2.2.0: dependencies: debug: 4.4.3(supports-color@10.2.2) @@ -18132,7 +18158,7 @@ snapshots: sax@1.4.1: {} - schema-utils@4.3.2: + schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 ajv: 8.17.1 @@ -18359,10 +18385,6 @@ snapshots: transitivePeerDependencies: - supports-color - simple-swizzle@0.2.4: - dependencies: - is-arrayish: 0.3.4 - sisteransi@1.0.5: {} skin-tone@2.0.0: @@ -18517,7 +18539,7 @@ snapshots: speedline-core@1.4.3: dependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 image-ssim: 0.2.0 jpeg-js: 0.4.4 @@ -18538,7 +18560,7 @@ snapshots: sprintf-js@1.0.3: {} - sql-formatter@15.6.9: + sql-formatter@15.6.10: dependencies: argparse: 2.0.1 nearley: 2.20.1 @@ -18821,7 +18843,7 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - tapable@2.2.3: {} + tapable@2.3.0: {} tar-fs@3.1.1: dependencies: @@ -18894,7 +18916,7 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.2 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.43.1 webpack: 5.101.2(esbuild@0.25.9) @@ -19013,14 +19035,14 @@ snapshots: trough@1.0.5: {} - ts-node@10.9.2(@types/node@22.18.6)(typescript@5.9.2): + ts-node@10.9.2(@types/node@22.18.8)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.18.6 + '@types/node': 22.18.8 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -19195,7 +19217,7 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.12.0: {} + undici-types@7.14.0: {} undici@5.29.0: dependencies: @@ -19262,9 +19284,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.26.2): + update-browserslist-db@1.1.3(browserslist@4.26.3): dependencies: - browserslist: 4.26.2 + browserslist: 4.26.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -19362,16 +19384,16 @@ snapshots: unist-util-stringify-position: 1.1.2 vfile-message: 1.1.1 - vite@7.1.5(@types/node@22.18.6)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): + vite@7.1.5(@types/node@22.18.8)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.18.6 + '@types/node': 22.18.8 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.0 @@ -19409,7 +19431,7 @@ snapshots: web-vitals@4.2.4: {} - webdriver-bidi-protocol@0.2.11: {} + webdriver-bidi-protocol@0.3.6: {} webdriver-js-extender@2.1.0: dependencies: @@ -19435,11 +19457,11 @@ snapshots: webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 - memfs: 4.47.0 + memfs: 4.48.1 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 - schema-utils: 4.3.2 + schema-utils: 4.3.3 optionalDependencies: webpack: 5.101.2(esbuild@0.25.9) @@ -19450,7 +19472,7 @@ snapshots: '@types/express': 4.17.23 '@types/express-serve-static-core': 4.19.6 '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.8 + '@types/serve-static': 1.15.9 '@types/sockjs': 0.3.36 '@types/ws': 8.18.1 ansi-html-community: 0.0.8 @@ -19466,7 +19488,7 @@ snapshots: launch-editor: 2.11.1 open: 10.2.0 p-retry: 6.2.1 - schema-utils: 4.3.2 + schema-utils: 4.3.3 selfsigned: 2.4.1 serve-index: 1.9.1 sockjs: 0.3.24 @@ -19504,7 +19526,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.26.2 + browserslist: 4.26.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -19516,8 +19538,8 @@ snapshots: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 4.3.2 - tapable: 2.2.3 + schema-utils: 4.3.3 + tapable: 2.3.0 terser-webpack-plugin: 5.3.14(esbuild@0.25.9)(webpack@5.101.2(esbuild@0.25.9)) watchpack: 2.4.4 webpack-sources: 3.3.3 @@ -19557,7 +19579,7 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 @@ -19621,10 +19643,10 @@ snapshots: isstream: 0.1.2 stack-trace: 0.0.10 - winston@3.17.0: + winston@3.18.3: dependencies: '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.3 + '@dabh/diagnostics': 2.0.8 async: 3.2.6 is-stream: 2.0.1 logform: 2.7.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1f1a0cd2b3c6..3f854bbfff10 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -17,24 +17,24 @@ packages: - src/youtube-player catalog: - '@angular-devkit/build-angular': 20.3.3 - '@angular-devkit/core': 20.3.3 - '@angular-devkit/schematics': 20.3.3 - '@angular/animations': 20.3.2 - '@angular/build': 20.3.3 - '@angular/cli': 20.3.3 - '@angular/common': 20.3.2 - '@angular/compiler-cli': 20.3.2 - '@angular/compiler': 20.3.2 - '@angular/core': 20.3.2 - '@angular/ssr': 20.3.3 - '@angular/forms': 20.3.2 - '@angular/localize': 20.3.2 - '@angular/platform-browser': 20.3.2 - '@angular/platform-browser-dynamic': 20.3.2 - '@angular/platform-server': 20.3.2 - '@angular/router': 20.3.2 - '@schematics/angular': 20.3.3 + '@angular-devkit/build-angular': 20.3.4 + '@angular-devkit/core': 20.3.4 + '@angular-devkit/schematics': 20.3.4 + '@angular/animations': 20.3.3 + '@angular/build': 20.3.4 + '@angular/cli': 20.3.4 + '@angular/common': 20.3.3 + '@angular/compiler-cli': 20.3.3 + '@angular/compiler': 20.3.3 + '@angular/core': 20.3.3 + '@angular/ssr': 20.3.4 + '@angular/forms': 20.3.3 + '@angular/localize': 20.3.3 + '@angular/platform-browser': 20.3.3 + '@angular/platform-browser-dynamic': 20.3.3 + '@angular/platform-server': 20.3.3 + '@angular/router': 20.3.3 + '@schematics/angular': 20.3.4 'rxjs': ^6.6.7 # The minimum age of a release to be considered for dependency installation. diff --git a/scripts/approve-api-golden.js b/scripts/approve-api-golden.mts similarity index 57% rename from scripts/approve-api-golden.js rename to scripts/approve-api-golden.mts index 972ef559e719..791084f9e3ea 100644 --- a/scripts/approve-api-golden.js +++ b/scripts/approve-api-golden.mts @@ -1,10 +1,10 @@ #!/usr/bin/env node -const shelljs = require('shelljs'); -const chalk = require('chalk'); -const path = require('path'); -const {guessPackageName} = require('./util'); -const projectDir = path.join(__dirname, '../'); +import chalk from 'chalk'; +import {join} from 'path'; +import sh from 'shelljs'; +import {guessPackageName} from './util.mjs'; + const bazel = process.env['BAZEL'] || 'pnpm -s bazel'; if (process.argv.length < 3) { @@ -12,12 +12,10 @@ if (process.argv.length < 3) { process.exit(1); } -// ShellJS should exit if any command fails. -shelljs.set('-e'); -shelljs.cd(projectDir); +sh.set('-e'); for (const searchPackageName of process.argv.slice(2)) { - const packageNameGuess = guessPackageName(searchPackageName, path.join(projectDir, 'src')); + const packageNameGuess = guessPackageName(searchPackageName, join(process.cwd(), 'src')); if (!packageNameGuess.result) { console.error( @@ -30,8 +28,8 @@ for (const searchPackageName of process.argv.slice(2)) { process.exit(1); } - const [packageName, ..._entryPointTail] = packageNameGuess.result.split('/'); + const [packageName] = packageNameGuess.result.split('/'); const apiGoldenTargetName = `//goldens:${packageName}_api.accept`.replace(/-/g, '_'); - shelljs.exec(`${bazel} run ${apiGoldenTargetName}`); + sh.exec(`${bazel} run ${apiGoldenTargetName}`); } diff --git a/scripts/run-component-tests.js b/scripts/run-component-tests.mts similarity index 68% rename from scripts/run-component-tests.js rename to scripts/run-component-tests.mts index bb703afd5d7f..86a6d2442323 100644 --- a/scripts/run-component-tests.js +++ b/scripts/run-component-tests.mts @@ -17,27 +17,31 @@ * --no-watch | Watch mode is enabled by default. This flag opts-out to standard Bazel. */ -const yargs = require('yargs'); -const shelljs = require('shelljs'); -const chalk = require('chalk'); -const path = require('path'); -const args = process.argv.slice(2); -const {guessPackageName, convertPathToPosix} = require('./util'); +import chalk from 'chalk'; +import {join, relative} from 'path'; +import sh from 'shelljs'; +import yargs from 'yargs'; +import {guessPackageName, convertPathToPosix} from './util.mjs'; -// Path to the project directory. -const projectDir = path.join(__dirname, '../'); +const args = process.argv.slice(2); // Path to the directory that contains all packages. -const packagesDir = path.join(projectDir, 'src/'); +const packagesDir = join(process.cwd(), 'src/'); // ShellJS should exit if any command fails. -shelljs.set('-e'); -shelljs.cd(projectDir); +sh.set('-e'); + +interface CliArgs { + components: string[]; + debug: boolean; + firefox: boolean; + watch: boolean; +} // Extracts the supported command line options. -const {components, debug, firefox, watch} = yargs(args) +const parser = yargs(args) .command('* ', 'Run tests for specified components', args => - args.positional('components', {type: 'array'}), + args.positional('components', {type: 'string', array: true}), ) .option('debug', { alias: 'local', @@ -53,8 +57,9 @@ const {components, debug, firefox, watch} = yargs(args) default: true, description: 'Whether tests should be re-run automatically upon changes.', }) - .strict() - .parseSync(); + .strict(); + +const {components, debug, firefox, watch} = parser.parseSync() as unknown as CliArgs; // Whether tests for all components should be run. const all = components.length === 1 && components[0] === 'all'; @@ -84,51 +89,49 @@ if (all) { console.warn(chalk.yellow('Unable to run all component tests in watch mode.')); console.warn(chalk.yellow('Tests will be run in non-watch mode..')); } - shelljs.exec( + sh.exec( `pnpm -s bazel test --test_tag_filters=-e2e,browser:${browserName} ` + `--build_tag_filters=browser:${browserName} --build_tests_only //src/...`, ); - return; -} +} else { + // Exit if no component has been specified. + if (!components.length) { + console.error( + chalk.red( + 'No component specified. Please either specify individual components, or pass "all" ' + + 'in order to run tests for all components.', + ), + ); + console.info(chalk.yellow('Below are a few examples of how the script can be run:')); + console.info(chalk.yellow(` - pnpm test all`)); + console.info(chalk.yellow(` - pnpm test cdk/overlay material/stepper`)); + console.info(chalk.yellow(` - pnpm test button toolbar`)); + process.exit(1); + } -// Exit if no component has been specified. -if (!components.length) { - console.error( - chalk.red( - 'No component specified. Please either specify individual components, or pass "all" ' + - 'in order to run tests for all components.', - ), + const bazelAction = debug ? 'run' : 'test'; + const testLabels = components.map( + t => `${getBazelPackageOfComponentName(t)}:${getTargetName(t)}`, ); - console.info(chalk.yellow('Below are a few examples of how the script can be run:')); - console.info(chalk.yellow(` - pnpm test all`)); - console.info(chalk.yellow(` - pnpm test cdk/overlay material/stepper`)); - console.info(chalk.yellow(` - pnpm test button toolbar`)); - process.exit(1); -} - -const bazelAction = debug ? 'run' : 'test'; -const testLabels = components.map(t => `${getBazelPackageOfComponentName(t)}:${getTargetName(t)}`); - -// Runs Bazel for the determined test labels. -shelljs.exec(`${bazelBinary} ${bazelAction} ${testLabels.join(' ')}`); + // Runs Bazel for the determined test labels. + sh.exec(`${bazelBinary} ${bazelAction} ${testLabels.join(' ')}`); +} /** * Gets the Bazel package label for the specified component name. Throws if * the component could not be resolved to a Bazel package. */ -function getBazelPackageOfComponentName(name) { +function getBazelPackageOfComponentName(name: string) { // Before guessing any Bazel package, we test if the name contains the // package name already. If so, we just use that for Bazel package. const targetName = - convertPathToBazelLabel(name) || convertPathToBazelLabel(path.join(packagesDir, name)); + convertPathToBazelLabel(name) || convertPathToBazelLabel(join(packagesDir, name)); if (targetName !== null) { return targetName; } // If the name does not contain an explicit package name, try to guess it. const guess = guessPackageName(name, packagesDir); - const guessLabel = guess.result - ? convertPathToBazelLabel(path.join(packagesDir, guess.result)) - : null; + const guessLabel = guess.result ? convertPathToBazelLabel(join(packagesDir, guess.result)) : null; if (guessLabel) { return guessLabel; @@ -144,15 +147,15 @@ function getBazelPackageOfComponentName(name) { } /** Converts a path to a Bazel label. */ -function convertPathToBazelLabel(name) { - if (shelljs.test('-d', name)) { - return `//${convertPathToPosix(path.relative(projectDir, name))}`; +function convertPathToBazelLabel(name: string) { + if (sh.test('-d', name)) { + return `//${convertPathToPosix(relative(process.cwd(), name))}`; } return null; } /** Gets the name of the target that should be run. */ -function getTargetName(packageName) { +function getTargetName(packageName: string) { // Schematics don't have _debug and browser targets. if (packageName && packageName.endsWith('schematics')) { return 'unit_tests'; diff --git a/scripts/util.js b/scripts/util.mts similarity index 72% rename from scripts/util.js rename to scripts/util.mts index 67e8d64f1fcf..f5031cf0b797 100644 --- a/scripts/util.js +++ b/scripts/util.mts @@ -1,5 +1,5 @@ -const path = require('path'); -const shelljs = require('shelljs'); +import {join} from 'path'; +import sh from 'shelljs'; /** Map of common typos in target names. The key is the typo, the value is the correct form. */ const commonTypos = new Map([['snackbar', 'snack-bar']]); @@ -13,12 +13,12 @@ const orderedGuessPackages = ['material', 'cdk', 'material-experimental', 'cdk-e * Tries to guess the full name of a package, based on a shorthand name. * Returns an object with the result of the guess and the names that were attempted. */ -function guessPackageName(name, packagesDir) { +export function guessPackageName(name: string, packagesDir: string) { name = correctTypos(name); // Build up a list of packages that we're going to try. - const attempts = [name, ...orderedGuessPackages.map(package => path.join(package, name))]; - const result = attempts.find(guessName => shelljs.test('-d', path.join(packagesDir, guessName))); + const attempts = [name, ...orderedGuessPackages.map(guessPackage => join(guessPackage, name))]; + const result = attempts.find(guessName => sh.test('-d', join(packagesDir, guessName))); return { result: result ? convertPathToPosix(result) : null, @@ -27,12 +27,12 @@ function guessPackageName(name, packagesDir) { } /** Converts an arbitrary path to a Posix path. */ -function convertPathToPosix(pathName) { +export function convertPathToPosix(pathName: string) { return pathName.replace(/\\/g, '/'); } /** Correct common typos in a target name */ -function correctTypos(target) { +function correctTypos(target: string) { let correctedTarget = target; for (const [typo, correction] of commonTypos) { correctedTarget = correctedTarget.replace(typo, correction); @@ -40,8 +40,3 @@ function correctTypos(target) { return correctedTarget; } - -module.exports = { - guessPackageName, - convertPathToPosix, -}; diff --git a/src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-form-example.html b/src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-reactive-form-example.html similarity index 97% rename from src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-form-example.html rename to src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-reactive-form-example.html index b7987183786b..d121016c525d 100644 --- a/src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-form-example.html +++ b/src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-reactive-form-example.html @@ -7,4 +7,4 @@

Option selected: {{shoesControl.value ? shoesControl.value[0] : 'None'}}

- \ No newline at end of file + diff --git a/src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-reactive-form-example.ts b/src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-reactive-form-example.ts index 792f785200a0..15638f509367 100644 --- a/src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-reactive-form-example.ts +++ b/src/components-examples/material/list/list-single-selection-reactive-form/list-single-selection-reactive-form-example.ts @@ -6,12 +6,13 @@ interface Shoes { value: string; name: string; } + /** * @title List with single selection using Reactive forms */ @Component({ selector: 'list-single-selection-reactive-form-example', - templateUrl: 'list-single-selection-form-example.html', + templateUrl: 'list-single-selection-reactive-form-example.html', imports: [MatListModule, FormsModule, ReactiveFormsModule], }) export class ListSingleSelectionReactiveFormExample { diff --git a/src/components-examples/material/list/list-single-selection/list-single-selection-example.html b/src/components-examples/material/list/list-single-selection/list-single-selection-example.html index 03221a0f5159..0c653bd3b6da 100644 --- a/src/components-examples/material/list/list-single-selection/list-single-selection-example.html +++ b/src/components-examples/material/list/list-single-selection/list-single-selection-example.html @@ -1,10 +1,9 @@ -
- - @for (shoe of shoes; track shoe) { - {{shoe.name}} - } - -

- Option selected: {{shoesControl.value ? shoesControl.value[0] : 'None'}} -

-
\ No newline at end of file + + @for (shoe of typesOfShoes; track shoe) { + {{shoe}} + } + + +

+ Option selected: {{shoes.selectedOptions.hasValue() ? shoes.selectedOptions.selected[0].value : 'None'}} +

diff --git a/src/components-examples/material/list/list-single-selection/list-single-selection-example.ts b/src/components-examples/material/list/list-single-selection/list-single-selection-example.ts index 4f9fbd0f29bf..7027d7c290a7 100644 --- a/src/components-examples/material/list/list-single-selection/list-single-selection-example.ts +++ b/src/components-examples/material/list/list-single-selection/list-single-selection-example.ts @@ -1,32 +1,14 @@ import {Component} from '@angular/core'; -import {FormControl, FormGroup, FormsModule, ReactiveFormsModule} from '@angular/forms'; import {MatListModule} from '@angular/material/list'; -interface Shoes { - value: string; - name: string; -} + /** - * @title List with single selection using Reactive Forms + * @title List with single selection */ @Component({ selector: 'list-single-selection-example', templateUrl: 'list-single-selection-example.html', - imports: [MatListModule, FormsModule, ReactiveFormsModule], + imports: [MatListModule], }) export class ListSingleSelectionExample { - form: FormGroup; - shoes: Shoes[] = [ - {value: 'boots', name: 'Boots'}, - {value: 'clogs', name: 'Clogs'}, - {value: 'loafers', name: 'Loafers'}, - {value: 'moccasins', name: 'Moccasins'}, - {value: 'sneakers', name: 'Sneakers'}, - ]; - shoesControl = new FormControl(); - - constructor() { - this.form = new FormGroup({ - clothes: this.shoesControl, - }); - } + typesOfShoes: string[] = ['Boots', 'Clogs', 'Loafers', 'Moccasins', 'Sneakers']; } diff --git a/src/material-date-fns-adapter/adapter/date-fns-adapter.spec.ts b/src/material-date-fns-adapter/adapter/date-fns-adapter.spec.ts index d85b32e8341d..aa4973e3e419 100644 --- a/src/material-date-fns-adapter/adapter/date-fns-adapter.spec.ts +++ b/src/material-date-fns-adapter/adapter/date-fns-adapter.spec.ts @@ -535,6 +535,15 @@ describe('DateFnsAdapter', () => { expect(adapter.getSeconds(result)).toBe(0); }); + it('should parse a time string containing only hours', () => { + const result = adapter.parseTime('11', 'HH')!; + expect(result).toBeTruthy(); + expect(adapter.isValid(result)).toBe(true); + expect(adapter.getHours(result)).toBe(11); + expect(adapter.getMinutes(result)).toBe(0); + expect(adapter.getSeconds(result)).toBe(0); + }); + it('should return an invalid date when parsing invalid time string', () => { expect(adapter.isValid(adapter.parseTime('abc', 'p')!)).toBe(false); expect(adapter.isValid(adapter.parseTime('123', 'p')!)).toBe(false); diff --git a/src/material-date-fns-adapter/adapter/date-fns-adapter.ts b/src/material-date-fns-adapter/adapter/date-fns-adapter.ts index 91e37fb1cc2d..3201880f33dc 100644 --- a/src/material-date-fns-adapter/adapter/date-fns-adapter.ts +++ b/src/material-date-fns-adapter/adapter/date-fns-adapter.ts @@ -162,35 +162,7 @@ export class DateFnsAdapter extends DateAdapter { } parse(value: unknown, parseFormat: string | string[]): Date | null { - if (typeof value == 'string' && value.length > 0) { - const iso8601Date = parseISO(value); - - if (this.isValid(iso8601Date)) { - return iso8601Date; - } - - const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat]; - - if (!parseFormat.length) { - throw Error('Formats array must not be empty.'); - } - - for (const currentFormat of formats) { - const fromFormat = parse(value, currentFormat, new Date(), {locale: this.locale}); - - if (this.isValid(fromFormat)) { - return fromFormat; - } - } - - return this.invalid(); - } else if (typeof value === 'number') { - return new Date(value); - } else if (value instanceof Date) { - return this.clone(value); - } - - return null; + return this._parse(value, parseFormat); } format(date: Date, displayFormat: string): string { @@ -278,10 +250,48 @@ export class DateFnsAdapter extends DateAdapter { } override parseTime(value: unknown, parseFormat: string | string[]): Date | null { - return this.parse(value, parseFormat); + return this._parse(value, parseFormat, false); } override addSeconds(date: Date, amount: number): Date { return addSeconds(date, amount); } + + private _parse( + value: unknown, + parseFormat: string | string[], + shouldTryParseIso = true, + ): Date | null { + if (typeof value == 'string' && value.length > 0) { + if (shouldTryParseIso) { + const iso8601Date = parseISO(value); + + if (this.isValid(iso8601Date)) { + return iso8601Date; + } + } + + const formats = Array.isArray(parseFormat) ? parseFormat : [parseFormat]; + + if (!parseFormat.length) { + throw Error('Formats array must not be empty.'); + } + + for (const currentFormat of formats) { + const fromFormat = parse(value, currentFormat, new Date(), {locale: this.locale}); + + if (this.isValid(fromFormat)) { + return fromFormat; + } + } + + return this.invalid(); + } else if (typeof value === 'number') { + return new Date(value); + } else if (value instanceof Date) { + return this.clone(value); + } + + return null; + } } diff --git a/src/material-luxon-adapter/adapter/luxon-date-adapter.spec.ts b/src/material-luxon-adapter/adapter/luxon-date-adapter.spec.ts index 5eed39517609..962ea66ee11f 100644 --- a/src/material-luxon-adapter/adapter/luxon-date-adapter.spec.ts +++ b/src/material-luxon-adapter/adapter/luxon-date-adapter.spec.ts @@ -633,6 +633,15 @@ describe('LuxonDateAdapter', () => { expect(adapter.getSeconds(result)).toBe(0); }); + it('should parse a time string containing only hours', () => { + const result = adapter.parseTime('11', 'HH')!; + expect(result).toBeTruthy(); + expect(adapter.isValid(result)).toBe(true); + expect(adapter.getHours(result)).toBe(11); + expect(adapter.getMinutes(result)).toBe(0); + expect(adapter.getSeconds(result)).toBe(0); + }); + it('should parse a time string with characters around the time', () => { adapter.setLocale('bg-BG'); const result = adapter.parseTime('14:52 ч.', 't')!; diff --git a/src/material-moment-adapter/adapter/moment-date-adapter.spec.ts b/src/material-moment-adapter/adapter/moment-date-adapter.spec.ts index dffc542d3c26..c53365209bb6 100644 --- a/src/material-moment-adapter/adapter/moment-date-adapter.spec.ts +++ b/src/material-moment-adapter/adapter/moment-date-adapter.spec.ts @@ -614,6 +614,15 @@ describe('MomentDateAdapter', () => { expect(adapter.getSeconds(result)).toBe(0); }); + it('should parse a time string containing only hours', () => { + const result = adapter.parseTime('11', 'HH')!; + expect(result).toBeTruthy(); + expect(adapter.isValid(result)).toBe(true); + expect(adapter.getHours(result)).toBe(11); + expect(adapter.getMinutes(result)).toBe(0); + expect(adapter.getSeconds(result)).toBe(0); + }); + it('should parse a time string with characters around the time', () => { adapter.setLocale('bg-BG'); const result = adapter.parseTime('14:52 ч.', 'LT')!; diff --git a/src/material/datepicker/calendar-body.ts b/src/material/datepicker/calendar-body.ts index 34af64d8faba..18a163974166 100644 --- a/src/material/datepicker/calendar-body.ts +++ b/src/material/datepicker/calendar-body.ts @@ -615,7 +615,9 @@ export class MatCalendarBody implements OnChanges, OnDestroy, AfterView const col = cell.getAttribute('data-mat-col'); if (row && col) { - return this.rows[parseInt(row)][parseInt(col)]; + // We need the optional read here, because this can + // fire too late when the user is navigating quickly. + return this.rows[parseInt(row)]?.[parseInt(col)] || null; } } diff --git a/src/material/datepicker/calendar.ts b/src/material/datepicker/calendar.ts index 9f54fb28a703..436070604eae 100644 --- a/src/material/datepicker/calendar.ts +++ b/src/material/datepicker/calendar.ts @@ -327,7 +327,7 @@ export class MatCalendar implements AfterContentInit, AfterViewChecked, OnDes private _maxDate: D | null; /** Function used to filter which dates are selectable. */ - @Input() dateFilter: (date: D) => boolean; + @Input() dateFilter?: ((date: D) => boolean) | null; /** Function that can be used to add custom CSS classes to dates. */ @Input() dateClass: MatCalendarCellClassFunction; diff --git a/src/material/datepicker/date-range-input.ts b/src/material/datepicker/date-range-input.ts index 0d507fd3c24a..86992cb617c4 100644 --- a/src/material/datepicker/date-range-input.ts +++ b/src/material/datepicker/date-range-input.ts @@ -154,7 +154,7 @@ export class MatDateRangeInput get dateFilter() { return this._dateFilter; } - set dateFilter(value: DateFilterFn) { + set dateFilter(value: DateFilterFn | null | undefined) { const start = this._startInput; const end = this._endInput; const wasMatchingStart = start && start._matchesFilter(start.value); @@ -169,7 +169,7 @@ export class MatDateRangeInput end._validatorOnChange(); } } - private _dateFilter: DateFilterFn; + private _dateFilter?: DateFilterFn | null; /** The minimum valid date. */ @Input() diff --git a/src/material/datepicker/datepicker-base.ts b/src/material/datepicker/datepicker-base.ts index 35075750eaa9..7d3f8c1825f7 100644 --- a/src/material/datepicker/datepicker-base.ts +++ b/src/material/datepicker/datepicker-base.ts @@ -346,7 +346,7 @@ export interface MatDatepickerControl { min: D | null; max: D | null; disabled: boolean; - dateFilter: DateFilterFn; + dateFilter: DateFilterFn | null | undefined; getConnectedOverlayOrigin(): ElementRef; getOverlayLabelId(): string | null; stateChanges: Observable; @@ -545,7 +545,7 @@ export abstract class MatDatepickerBase< return this.datepickerInput && this.datepickerInput.max; } - _getDateFilter(): DateFilterFn { + _getDateFilter(): DateFilterFn | null | undefined { return this.datepickerInput && this.datepickerInput.dateFilter; } diff --git a/src/material/datepicker/datepicker-input-base.ts b/src/material/datepicker/datepicker-input-base.ts index 632cec9d45a4..01de0feb77b5 100644 --- a/src/material/datepicker/datepicker-input-base.ts +++ b/src/material/datepicker/datepicker-input-base.ts @@ -203,7 +203,7 @@ export abstract class MatDatepickerInputBase | undefined; + protected abstract _getDateFilter(): DateFilterFn | null | undefined; /** Registers a date selection model with the input. */ _registerModel(model: MatDateSelectionModel): void { diff --git a/src/material/datepicker/datepicker-input.ts b/src/material/datepicker/datepicker-input.ts index d555a1b5812e..dea01bd24252 100644 --- a/src/material/datepicker/datepicker-input.ts +++ b/src/material/datepicker/datepicker-input.ts @@ -119,7 +119,7 @@ export class MatDatepickerInput get dateFilter() { return this._dateFilter; } - set dateFilter(value: DateFilterFn) { + set dateFilter(value: DateFilterFn | null | undefined) { const wasMatchingValue = this._matchesFilter(this.value); this._dateFilter = value; @@ -127,7 +127,7 @@ export class MatDatepickerInput this._validatorOnChange(); } } - private _dateFilter: DateFilterFn; + private _dateFilter: DateFilterFn | null | undefined; /** The combined form control validator for this input. */ protected _validator: ValidatorFn | null; diff --git a/src/material/datepicker/month-view.html b/src/material/datepicker/month-view.html index 538d85f91435..fa0c2750d94d 100644 --- a/src/material/datepicker/month-view.html +++ b/src/material/datepicker/month-view.html @@ -1,7 +1,7 @@ - @for (day of _weekdays; track day.id) { + @for (day of _weekdays(); track day.id) { implements AfterContentInit, OnChanges, OnDestroy { private _maxDate: D | null; /** Function used to filter which dates are selectable. */ - @Input() dateFilter: (date: D) => boolean; + @Input() dateFilter: ((date: D) => boolean) | null | undefined; /** Function that can be used to add custom CSS classes to dates. */ @Input() dateClass: MatCalendarCellClassFunction; @@ -183,40 +184,40 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { @ViewChild(MatCalendarBody) _matCalendarBody: MatCalendarBody; /** The label for this month (e.g. "January 2017"). */ - _monthLabel: string; + _monthLabel = signal(''); /** Grid of calendar cells representing the dates of the month. */ - _weeks: MatCalendarCell[][]; + _weeks = signal([]); /** The number of blank cells in the first row before the 1st of the month. */ - _firstWeekOffset: number; + _firstWeekOffset = signal(0); /** Start value of the currently-shown date range. */ - _rangeStart: number | null; + _rangeStart = signal(null); /** End value of the currently-shown date range. */ - _rangeEnd: number | null; + _rangeEnd = signal(null); /** Start value of the currently-shown comparison date range. */ - _comparisonRangeStart: number | null; + _comparisonRangeStart = signal(null); /** End value of the currently-shown comparison date range. */ - _comparisonRangeEnd: number | null; + _comparisonRangeEnd = signal(null); /** Start of the preview range. */ - _previewStart: number | null; + _previewStart = signal(null); /** End of the preview range. */ - _previewEnd: number | null; + _previewEnd = signal(null); /** Whether the user is currently selecting a range of dates. */ - _isRange: boolean; + _isRange = signal(false); /** The date of the month that today falls on. Null if today is in another month. */ - _todayDate: number | null; + _todayDate = signal(null); /** The names of the weekdays. */ - _weekdays: {long: string; narrow: string; id: number}[]; + _weekdays = signal<{long: string; narrow: string; id: number}[]>([]); constructor(...args: unknown[]); @@ -359,7 +360,7 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { return; case ESCAPE: // Abort the current range selection if the user presses escape mid-selection. - if (this._previewEnd != null && !hasModifierKey(event)) { + if (this._previewEnd() != null && !hasModifierKey(event)) { this._clearPreview(); // If a drag is in progress, cancel the drag without changing the // current selection. @@ -402,23 +403,26 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { /** Initializes this month view. */ _init() { this._setRanges(this.selected); - this._todayDate = this._getCellCompareValue(this._dateAdapter.today()); - this._monthLabel = this._dateFormats.display.monthLabel - ? this._dateAdapter.format(this.activeDate, this._dateFormats.display.monthLabel) - : this._dateAdapter - .getMonthNames('short') - [this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase(); + this._todayDate.set(this._getCellCompareValue(this._dateAdapter.today())); + this._monthLabel.set( + this._dateFormats.display.monthLabel + ? this._dateAdapter.format(this.activeDate, this._dateFormats.display.monthLabel) + : this._dateAdapter + .getMonthNames('short') + [this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase(), + ); let firstOfMonth = this._dateAdapter.createDate( this._dateAdapter.getYear(this.activeDate), this._dateAdapter.getMonth(this.activeDate), 1, ); - this._firstWeekOffset = + this._firstWeekOffset.set( (DAYS_PER_WEEK + this._dateAdapter.getDayOfWeek(firstOfMonth) - this._dateAdapter.getFirstDayOfWeek()) % - DAYS_PER_WEEK; + DAYS_PER_WEEK, + ); this._initWeekdays(); this._createWeekCells(); @@ -446,8 +450,8 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { this.selected as DateRange, event, ); - this._previewStart = this._getCellCompareValue(previewRange.start); - this._previewEnd = this._getCellCompareValue(previewRange.end); + this._previewStart.set(this._getCellCompareValue(previewRange.start)); + this._previewEnd.set(this._getCellCompareValue(previewRange.end)); if (this.activeDrag && value) { const dragRange = this._rangeStrategy.createDrag?.( @@ -458,16 +462,10 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { ); if (dragRange) { - this._previewStart = this._getCellCompareValue(dragRange.start); - this._previewEnd = this._getCellCompareValue(dragRange.end); + this._previewStart.set(this._getCellCompareValue(dragRange.start)); + this._previewEnd.set(this._getCellCompareValue(dragRange.end)); } } - - // Note that here we need to use `detectChanges`, rather than `markForCheck`, because - // the way `_focusActiveCell` is set up at the moment makes it fire at the wrong time - // when navigating one month back using the keyboard which will cause this handler - // to throw a "changed after checked" error when updating the preview state. - this._changeDetectorRef.detectChanges(); } } @@ -512,20 +510,20 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { const longWeekdays = this._dateAdapter.getDayOfWeekNames('long'); // Rotate the labels for days of the week based on the configured first day of the week. - let weekdays = longWeekdays.map((long, i) => { + const weekdays = longWeekdays.map((long, i) => { return {long, narrow: narrowWeekdays[i], id: uniqueIdCounter++}; }); - this._weekdays = weekdays.slice(firstDayOfWeek).concat(weekdays.slice(0, firstDayOfWeek)); + this._weekdays.set(weekdays.slice(firstDayOfWeek).concat(weekdays.slice(0, firstDayOfWeek))); } /** Creates MatCalendarCells for the dates in this month. */ private _createWeekCells() { const daysInMonth = this._dateAdapter.getNumDaysInMonth(this.activeDate); const dateNames = this._dateAdapter.getDateNames(); - this._weeks = [[]]; - for (let i = 0, cell = this._firstWeekOffset; i < daysInMonth; i++, cell++) { + const weeks: MatCalendarCell[][] = [[]]; + for (let i = 0, cell = this._firstWeekOffset(); i < daysInMonth; i++, cell++) { if (cell == DAYS_PER_WEEK) { - this._weeks.push([]); + weeks.push([]); cell = 0; } const date = this._dateAdapter.createDate( @@ -537,7 +535,7 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { const ariaLabel = this._dateAdapter.format(date, this._dateFormats.display.dateA11yLabel); const cellClasses = this.dateClass ? this.dateClass(date, 'month') : undefined; - this._weeks[this._weeks.length - 1].push( + weeks[weeks.length - 1].push( new MatCalendarCell( i + 1, dateNames[i], @@ -549,6 +547,7 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { ), ); } + this._weeks.set(weeks); } /** Date filter for the month */ @@ -603,16 +602,17 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { /** Sets the current range based on a model value. */ private _setRanges(selectedValue: DateRange | D | null) { if (selectedValue instanceof DateRange) { - this._rangeStart = this._getCellCompareValue(selectedValue.start); - this._rangeEnd = this._getCellCompareValue(selectedValue.end); - this._isRange = true; + this._rangeStart.set(this._getCellCompareValue(selectedValue.start)); + this._rangeEnd.set(this._getCellCompareValue(selectedValue.end)); + this._isRange.set(true); } else { - this._rangeStart = this._rangeEnd = this._getCellCompareValue(selectedValue); - this._isRange = false; + this._rangeStart.set(this._getCellCompareValue(selectedValue)); + this._rangeEnd.set(this._rangeStart()); + this._isRange.set(false); } - this._comparisonRangeStart = this._getCellCompareValue(this.comparisonStart); - this._comparisonRangeEnd = this._getCellCompareValue(this.comparisonEnd); + this._comparisonRangeStart.set(this._getCellCompareValue(this.comparisonStart)); + this._comparisonRangeEnd.set(this._getCellCompareValue(this.comparisonEnd)); } /** Gets whether a date can be selected in the month view. */ @@ -622,6 +622,7 @@ export class MatMonthView implements AfterContentInit, OnChanges, OnDestroy { /** Clears out preview state. */ private _clearPreview() { - this._previewStart = this._previewEnd = null; + this._previewStart.set(null); + this._previewEnd.set(null); } } diff --git a/src/material/datepicker/multi-year-view.html b/src/material/datepicker/multi-year-view.html index 84220c8fa95f..91a72ab51eb0 100644 --- a/src/material/datepicker/multi-year-view.html +++ b/src/material/datepicker/multi-year-view.html @@ -3,10 +3,10 @@ implements AfterContentInit, OnDestroy { private _maxDate: D | null; /** A function used to filter which dates are selectable. */ - @Input() dateFilter: (date: D) => boolean; + @Input() dateFilter: ((date: D) => boolean) | null | undefined; /** Function that can be used to add custom CSS classes to date cells. */ @Input() dateClass: MatCalendarCellClassFunction; @@ -150,13 +151,13 @@ export class MatMultiYearView implements AfterContentInit, OnDestroy { @ViewChild(MatCalendarBody) _matCalendarBody: MatCalendarBody; /** Grid of calendar cells representing the currently displayed years. */ - _years: MatCalendarCell[][]; + _years = signal([]); /** The year that today falls on. */ - _todayYear: number; + _todayYear = signal(0); /** The year of the selected date. Null if the selected date is null. */ - _selectedYear: number | null; + _selectedYear = signal(null); constructor(...args: unknown[]); @@ -180,7 +181,7 @@ export class MatMultiYearView implements AfterContentInit, OnDestroy { /** Initializes this multi-year view. */ _init() { - this._todayYear = this._dateAdapter.getYear(this._dateAdapter.today()); + this._todayYear.set(this._dateAdapter.getYear(this._dateAdapter.today())); // We want a range years such that we maximize the number of // enabled dates visible at once. This prevents issues where the minimum year @@ -192,14 +193,15 @@ export class MatMultiYearView implements AfterContentInit, OnDestroy { const minYearOfPage = activeYear - getActiveOffset(this._dateAdapter, this.activeDate, this.minDate, this.maxDate); - this._years = []; + const years: MatCalendarCell[][] = []; for (let i = 0, row: number[] = []; i < yearsPerPage; i++) { row.push(minYearOfPage + i); if (row.length == yearsPerRow) { - this._years.push(row.map(year => this._createCellForYear(year))); + years.push(row.map(year => this._createCellForYear(year))); row = []; } } + this._years.set(years); this._changeDetectorRef.markForCheck(); } @@ -389,16 +391,16 @@ export class MatMultiYearView implements AfterContentInit, OnDestroy { /** Sets the currently-highlighted year based on a model value. */ private _setSelectedYear(value: DateRange | D | null) { - this._selectedYear = null; + this._selectedYear.set(null); if (value instanceof DateRange) { const displayValue = value.start || value.end; if (displayValue) { - this._selectedYear = this._dateAdapter.getYear(displayValue); + this._selectedYear.set(this._dateAdapter.getYear(displayValue)); } } else if (value) { - this._selectedYear = this._dateAdapter.getYear(value); + this._selectedYear.set(this._dateAdapter.getYear(value)); } } } diff --git a/src/material/datepicker/year-view.html b/src/material/datepicker/year-view.html index afb9821dd416..343cd814dfd6 100644 --- a/src/material/datepicker/year-view.html +++ b/src/material/datepicker/year-view.html @@ -3,11 +3,11 @@ implements AfterContentInit, OnDestroy { private _maxDate: D | null; /** A function used to filter which dates are selectable. */ - @Input() dateFilter: (date: D) => boolean; + @Input() dateFilter: ((date: D) => boolean) | null | undefined; /** Function that can be used to add custom CSS classes to date cells. */ @Input() dateClass: MatCalendarCellClassFunction; @@ -139,19 +140,19 @@ export class MatYearView implements AfterContentInit, OnDestroy { @ViewChild(MatCalendarBody) _matCalendarBody: MatCalendarBody; /** Grid of calendar cells representing the months of the year. */ - _months: MatCalendarCell[][]; + _months = signal([]); /** The label for this year (e.g. "2017"). */ - _yearLabel: string; + _yearLabel = signal(''); /** The month in this year that today falls on. Null if today is in a different year. */ - _todayMonth: number | null; + _todayMonth = signal(null); /** * The month in this year that the selected Date falls on. * Null if the selected Date is in a different year. */ - _selectedMonth: number | null; + _selectedMonth = signal(null); constructor(...args: unknown[]); @@ -296,16 +297,18 @@ export class MatYearView implements AfterContentInit, OnDestroy { /** Initializes this year view. */ _init() { this._setSelectedMonth(this.selected); - this._todayMonth = this._getMonthInCurrentYear(this._dateAdapter.today()); - this._yearLabel = this._dateAdapter.getYearName(this.activeDate); + this._todayMonth.set(this._getMonthInCurrentYear(this._dateAdapter.today())); + this._yearLabel.set(this._dateAdapter.getYearName(this.activeDate)); let monthNames = this._dateAdapter.getMonthNames('short'); // First row of months only contains 5 elements so we can fit the year label on the same row. - this._months = [ - [0, 1, 2, 3], - [4, 5, 6, 7], - [8, 9, 10, 11], - ].map(row => row.map(month => this._createCellForMonth(month, monthNames[month]))); + this._months.set( + [ + [0, 1, 2, 3], + [4, 5, 6, 7], + [8, 9, 10, 11], + ].map(row => row.map(month => this._createCellForMonth(month, monthNames[month]))), + ); this._changeDetectorRef.markForCheck(); } @@ -435,10 +438,11 @@ export class MatYearView implements AfterContentInit, OnDestroy { /** Sets the currently-selected month based on a model value. */ private _setSelectedMonth(value: DateRange | D | null) { if (value instanceof DateRange) { - this._selectedMonth = - this._getMonthInCurrentYear(value.start) || this._getMonthInCurrentYear(value.end); + this._selectedMonth.set( + this._getMonthInCurrentYear(value.start) || this._getMonthInCurrentYear(value.end), + ); } else { - this._selectedMonth = this._getMonthInCurrentYear(value); + this._selectedMonth.set(this._getMonthInCurrentYear(value)); } } } diff --git a/src/material/radio/radio.scss b/src/material/radio/radio.scss index d92b39e23ba6..2b294bb1cd81 100644 --- a/src/material/radio/radio.scss +++ b/src/material/radio/radio.scss @@ -11,6 +11,12 @@ $fallbacks: m3-radio.get-tokens(); @include radio-common.radio-structure(true); @include radio-common.radio-noop-animations(); + // Clicking the label toggles the radio, but MDC does not include any styles that inform the + // user of this. Therefore we add the pointer cursor on top of MDC's styles. + label { + cursor: pointer; + } + .mdc-radio__background::before { background-color: token-utils.slot(radio-ripple-color, $fallbacks); } diff --git a/src/material/timepicker/timepicker-input.ts b/src/material/timepicker/timepicker-input.ts index 93e695139fde..8e9d0106f55d 100644 --- a/src/material/timepicker/timepicker-input.ts +++ b/src/material/timepicker/timepicker-input.ts @@ -317,6 +317,14 @@ export class MatTimepickerInput implements ControlValueAccessor, Validator, O } } + /** Called by the timepicker to sync up the user-selected value. */ + _timepickerValueAssigned(value: D | null) { + if (!this._dateAdapter.sameTime(value, this.value())) { + this._assignUserSelection(value, true); + this._formatValue(value); + } + } + /** Sets up the code that watches for changes in the value and adjusts the input. */ private _respondToValueChanges(): void { effect(() => { @@ -346,12 +354,6 @@ export class MatTimepickerInput implements ControlValueAccessor, Validator, O const timepicker = this.timepicker(); timepicker.registerInput(this); timepicker.closed.subscribe(() => this._onTouched?.()); - timepicker.selected.subscribe(({value}) => { - if (!this._dateAdapter.sameTime(value, this.value())) { - this._assignUserSelection(value, true); - this._formatValue(value); - } - }); }); } @@ -371,8 +373,10 @@ export class MatTimepickerInput implements ControlValueAccessor, Validator, O * @param propagateToAccessor Whether the value should be propagated to the ControlValueAccessor. */ private _assignUserSelection(selection: D | null, propagateToAccessor: boolean) { + let toAssign: D | null; + if (selection == null || !this._isValid(selection)) { - this.value.set(selection); + toAssign = selection; } else { // If a datepicker and timepicker are writing to the same object and the user enters an // invalid time into the timepicker, we may end up clearing their selection from the @@ -384,12 +388,15 @@ export class MatTimepickerInput implements ControlValueAccessor, Validator, O const hours = adapter.getHours(selection); const minutes = adapter.getMinutes(selection); const seconds = adapter.getSeconds(selection); - this.value.set(target ? adapter.setTime(target, hours, minutes, seconds) : selection); + toAssign = target ? adapter.setTime(target, hours, minutes, seconds) : selection; } + // Propagate to the form control before emitting to `valueChange`. if (propagateToAccessor) { - this._onChange?.(this.value()); + this._onChange?.(toAssign); } + + this.value.set(toAssign); } /** Formats the current value and assigns it to the input. */ diff --git a/src/material/timepicker/timepicker.spec.ts b/src/material/timepicker/timepicker.spec.ts index 3fa080efb157..0953b748e50c 100644 --- a/src/material/timepicker/timepicker.spec.ts +++ b/src/material/timepicker/timepicker.spec.ts @@ -1156,6 +1156,75 @@ describe('MatTimepicker', () => { expect(input.disabled).toBe(true); expect(fixture.componentInstance.input.disabled()).toBe(true); }); + + it('should emit to valueChange before assigning control value when typing', () => { + const fixture = TestBed.createComponent(TimepickerWithForms); + const control = fixture.componentInstance.control; + let eventValue: Date | null = null; + let controlValue: Date | null = null; + fixture.detectChanges(); + + const subscription = fixture.componentInstance.input.value.subscribe(value => { + eventValue = value; + controlValue = control.value; + }); + + typeInElement(getInput(fixture), '1:37 PM'); + fixture.detectChanges(); + + expect(eventValue).toBeTruthy(); + expect(controlValue).toBeTruthy(); + expectSameTime(eventValue, controlValue); + subscription.unsubscribe(); + }); + + it('should emit to valueChange before assigning control value when clicking an option', () => { + const fixture = TestBed.createComponent(TimepickerWithForms); + const control = fixture.componentInstance.control; + let eventValue: Date | null = null; + let controlValue: Date | null = null; + fixture.detectChanges(); + + const subscription = fixture.componentInstance.input.value.subscribe(value => { + eventValue = value; + controlValue = control.value; + }); + + getInput(fixture).click(); + fixture.detectChanges(); + getOptions()[5].click(); + fixture.detectChanges(); + fixture.detectChanges(); + + expect(eventValue).toBeTruthy(); + expect(controlValue).toBeTruthy(); + expectSameTime(eventValue, controlValue); + subscription.unsubscribe(); + }); + + it('should emit to selected event before assigning control value when clicking an option', () => { + const fixture = TestBed.createComponent(TimepickerWithForms); + const control = fixture.componentInstance.control; + let eventValue: Date | null = null; + let controlValue: Date | null = null; + fixture.detectChanges(); + + const subscription = fixture.componentInstance.timepicker.selected.subscribe(event => { + eventValue = event.value; + controlValue = control.value; + }); + + getInput(fixture).click(); + fixture.detectChanges(); + getOptions()[5].click(); + fixture.detectChanges(); + fixture.detectChanges(); + + expect(eventValue).toBeTruthy(); + expect(controlValue).toBeTruthy(); + expectSameTime(eventValue, controlValue); + subscription.unsubscribe(); + }); }); describe('timepicker toggle', () => { @@ -1410,6 +1479,7 @@ class TimepickerTwoWayBinding { }) class TimepickerWithForms { @ViewChild(MatTimepickerInput) input: MatTimepickerInput; + @ViewChild(MatTimepicker) timepicker: MatTimepicker; readonly control = new FormControl(null, [Validators.required]); readonly min = signal(null); readonly max = signal(null); diff --git a/src/material/timepicker/timepicker.ts b/src/material/timepicker/timepicker.ts index ab63291c9699..e5feb08a4854 100644 --- a/src/material/timepicker/timepicker.ts +++ b/src/material/timepicker/timepicker.ts @@ -296,6 +296,8 @@ export class MatTimepicker implements OnDestroy, MatOptionParentComponent { current.deselect(false); } }); + // Notify the input first so it can sync up the form control before emitting to `selected`. + this._input()?._timepickerValueAssigned(option.value); this.selected.emit({value: option.value, source: this}); this._input()?.focus(); }
{{day.long}} @@ -11,16 +11,16 @@