Optimize security and accessibility - #132
Open
amrabed wants to merge 38 commits into
Open
Conversation
…ponents unit test
Bumps the npm_and_yarn group with 1 update in the /docs directory: [next](https://github.com/vercel/next.js). Updates `next` from 16.2.10 to 16.2.11 - [Release notes](https://github.com/vercel/next.js/releases) - [Commits](vercel/next.js@v16.2.10...v16.2.11) --- updated-dependencies: - dependency-name: next dependency-version: 16.2.11 dependency-type: direct:production dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [next](https://github.com/vercel/next.js) from 16.2.10 to 16.2.11. - [Release notes](https://github.com/vercel/next.js/releases) - [Commits](vercel/next.js@v16.2.10...v16.2.11) --- updated-dependencies: - dependency-name: next dependency-version: 16.2.11 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
…al hints - Configured a reusable shortcuts registry in `app/config/shortcuts.ts` - Created a robust custom hook `useShortcuts` in `app/hooks/use-shortcuts.ts` with auto-bypassing on input focus - Updated `ThemeToggle` to bind Alt+T to theme toggling and display platform-appropriate (Alt+T or ⌥T) hints in the Tooltip - Added comprehensive unit tests for `useShortcuts` and updated `ThemeToggle` unit tests to achieve 100% test coverage and verify correct keydown dispatch behavior
Bumps [jdx/mise-action](https://github.com/jdx/mise-action) from 4 to 4.2.3. - [Release notes](https://github.com/jdx/mise-action/releases) - [Changelog](https://github.com/jdx/mise-action/blob/main/CHANGELOG.md) - [Commits](jdx/mise-action@v4...v4.2.3) --- updated-dependencies: - dependency-name: jdx/mise-action dependency-version: 4.2.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps the production group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@heroui/react](https://github.com/heroui-inc/heroui/tree/HEAD/packages/react) | `3.2.2` | `3.2.3` | | [@heroui/styles](https://github.com/heroui-inc/heroui/tree/HEAD/packages/styles) | `3.2.2` | `3.2.3` | | [framer-motion](https://github.com/motiondivision/motion) | `12.42.2` | `12.43.0` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.25.0` | `1.28.0` | | [next](https://github.com/vercel/next.js) | `16.2.10` | `16.2.12` | | [postcss](https://github.com/postcss/postcss) | `8.5.20` | `8.5.25` | | [react](https://github.com/react/react/tree/HEAD/packages/react) | `19.2.7` | `19.2.8` | | [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) | `19.2.7` | `19.2.8` | Updates `@heroui/react` from 3.2.2 to 3.2.3 - [Release notes](https://github.com/heroui-inc/heroui/releases) - [Changelog](https://github.com/heroui-inc/heroui/blob/v3/packages/react/CHANGELOG.md) - [Commits](https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/react) Updates `@heroui/styles` from 3.2.2 to 3.2.3 - [Release notes](https://github.com/heroui-inc/heroui/releases) - [Changelog](https://github.com/heroui-inc/heroui/blob/v3/packages/styles/CHANGELOG.md) - [Commits](https://github.com/heroui-inc/heroui/commits/v3.2.3/packages/styles) Updates `framer-motion` from 12.42.2 to 12.43.0 - [Changelog](https://github.com/motiondivision/motion/blob/main/CHANGELOG.md) - [Commits](motiondivision/motion@v12.42.2...v12.43.0) Updates `lucide-react` from 1.25.0 to 1.28.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.28.0/packages/lucide-react) Updates `next` from 16.2.10 to 16.2.12 - [Release notes](https://github.com/vercel/next.js/releases) - [Commits](vercel/next.js@v16.2.10...v16.2.12) Updates `postcss` from 8.5.20 to 8.5.25 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.20...8.5.25) Updates `react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react) Updates `react-dom` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/react/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom) --- updated-dependencies: - dependency-name: "@heroui/react" dependency-version: 3.2.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: "@heroui/styles" dependency-version: 3.2.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: framer-motion dependency-version: 12.43.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production - dependency-name: lucide-react dependency-version: 1.28.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production - dependency-name: next dependency-version: 16.2.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: postcss dependency-version: 8.5.25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: react dependency-version: 19.2.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production - dependency-name: react-dom dependency-version: 19.2.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.20 to 8.5.23. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.20...8.5.23) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.23 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps the development group with 17 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@next/bundle-analyzer](https://github.com/vercel/next.js/tree/HEAD/packages/next-bundle-analyzer) | `16.2.10` | `16.2.12` | | [@next/eslint-plugin-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-plugin-next) | `16.2.10` | `16.2.12` | | [@playwright/test](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.1` | | [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.0` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.1` | `26.1.2` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.64.0` | `8.65.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.64.0` | `8.65.0` | | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.3` | `6.0.5` | | [eslint](https://github.com/eslint/eslint) | `10.7.0` | `10.8.0` | | [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.2.10` | `16.2.12` | | [firebase-tools](https://github.com/firebase/firebase-tools) | `15.24.0` | `15.25.1` | | [globals](https://github.com/sindresorhus/globals) | `17.7.0` | `17.8.0` | | [jsdom](https://github.com/jsdom/jsdom) | `29.1.1` | `30.0.1` | | [playwright](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.1` | | [prettier](https://github.com/prettier/prettier) | `3.9.5` | `3.9.6` | | [vercel](https://github.com/vercel/vercel/tree/HEAD/packages/cli) | `56.3.1` | `58.4.4` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.5` | `8.2.0` | Updates `@next/bundle-analyzer` from 16.2.10 to 16.2.12 - [Release notes](https://github.com/vercel/next.js/releases) - [Commits](https://github.com/vercel/next.js/commits/v16.2.12/packages/next-bundle-analyzer) Updates `@next/eslint-plugin-next` from 16.2.10 to 16.2.12 - [Release notes](https://github.com/vercel/next.js/releases) - [Commits](https://github.com/vercel/next.js/commits/v16.2.12/packages/eslint-plugin-next) Updates `@playwright/test` from 1.61.1 to 1.62.1 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](microsoft/playwright@v1.61.1...v1.62.1) Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.0 - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](testing-library/jest-dom@v6.9.1...v7.0.0) Updates `@types/node` from 26.1.1 to 26.1.2 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@typescript-eslint/eslint-plugin` from 8.64.0 to 8.65.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.64.0 to 8.65.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/parser) Updates `@vitejs/plugin-react` from 6.0.3 to 6.0.5 - [Release notes](https://github.com/vitejs/vite-plugin-react/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.5/packages/plugin-react) Updates `eslint` from 10.7.0 to 10.8.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v10.7.0...v10.8.0) Updates `eslint-config-next` from 16.2.10 to 16.2.12 - [Release notes](https://github.com/vercel/next.js/releases) - [Commits](https://github.com/vercel/next.js/commits/v16.2.12/packages/eslint-config-next) Updates `firebase-tools` from 15.24.0 to 15.25.1 - [Release notes](https://github.com/firebase/firebase-tools/releases) - [Changelog](https://github.com/firebase/firebase-tools/blob/main/CHANGELOG.md) - [Commits](firebase/firebase-tools@v15.24.0...v15.25.1) Updates `globals` from 17.7.0 to 17.8.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](sindresorhus/globals@v17.7.0...v17.8.0) Updates `jsdom` from 29.1.1 to 30.0.1 - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](jsdom/jsdom@v29.1.1...v30.0.1) Updates `playwright` from 1.61.1 to 1.62.1 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](microsoft/playwright@v1.61.1...v1.62.1) Updates `prettier` from 3.9.5 to 3.9.6 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](prettier/prettier@3.9.5...3.9.6) Updates `vercel` from 56.3.1 to 58.4.4 - [Release notes](https://github.com/vercel/vercel/releases) - [Changelog](https://github.com/vercel/vercel/blob/main/packages/cli/CHANGELOG.md) - [Commits](https://github.com/vercel/vercel/commits/vercel@58.4.4/packages/cli) Updates `vite` from 8.1.5 to 8.2.0 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/create-vite@8.2.0/packages/vite) --- updated-dependencies: - dependency-name: "@next/bundle-analyzer" dependency-version: 16.2.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development - dependency-name: "@next/eslint-plugin-next" dependency-version: 16.2.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development - dependency-name: "@playwright/test" dependency-version: 1.62.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: "@testing-library/jest-dom" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: development - dependency-name: "@types/node" dependency-version: 26.1.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.65.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: "@typescript-eslint/parser" dependency-version: 8.65.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: "@vitejs/plugin-react" dependency-version: 6.0.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development - dependency-name: eslint dependency-version: 10.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: eslint-config-next dependency-version: 16.2.12 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development - dependency-name: firebase-tools dependency-version: 15.25.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: globals dependency-version: 17.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: jsdom dependency-version: 30.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: development - dependency-name: playwright dependency-version: 1.62.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development - dependency-name: prettier dependency-version: 3.9.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development - dependency-name: vercel dependency-version: 58.4.4 dependency-type: direct:development update-type: version-update:semver-major dependency-group: development - dependency-name: vite dependency-version: 8.2.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development ... Signed-off-by: dependabot[bot] <support@github.com>
Added the Lucide ExternalLink icon to the GitHub external button in the Hero component for visual consistency and clarity. Included aria-hidden="true" to keep it accessible and updated the tests.
Avoid using useMemo for lightweight, non-expensive computations like simple ternary checks and template literal interpolations, which saves unnecessary hook initialization, dependency tracking, and memory overhead.
…keys in error-reporting utility - Implemented recursive `sanitize` function in `app/lib/error-reporting.ts` to redact Vercel Blob tokens (matching `vercel_blob_rw_[a-zA-Z0-9_-]+`) and sensitive properties (e.g. `password`, `secret`, `token`, `key`, `authorization`, `cookie`, `credential`, `apikey`). - Handled built-in objects directly (Date/RegExp) and avoided circular reference stack overflows using a WeakSet. - Added comprehensive unit tests in `tests/unit/lib/error-reporting.test.ts`.
…_and_yarn-1c4f37dfd6' into consolidate-all-prs-v2
…2.11' into consolidate-all-prs-v2
…10972623816863788' into consolidate-all-prs-v2
…2f2' into consolidate-all-prs-v2 # Conflicts: # app/components/ThemeToggle/index.tsx # docs/app/sitemap.ts
…se-action-4.2.3' into consolidate-all-prs-v2
…on-3b15bfa80d' into consolidate-all-prs-v2 # Conflicts: # docs/package.json # package.json # pnpm-lock.yaml
…8.5.23' into consolidate-all-prs-v2 # Conflicts: # docs/package.json # package.json # pnpm-lock.yaml
…ent-2db6e17a74' into consolidate-all-prs-v2 # Conflicts: # docs/package.json # package.json # pnpm-lock.yaml
…12436628194456488898' into consolidate-all-prs-v2
…8046246243248' into consolidate-all-prs-v2 # Conflicts: # app/components/ThemeToggle/index.tsx
…1813671919977372' into consolidate-all-prs-v2 # Conflicts: # app/lib/error-reporting.ts # tests/unit/lib/error-reporting.test.ts
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…y and fix regex duplicate character class
… v3 button compatibility
… rendering compatibility
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



This PR consolidates all open pull requests into a single unified branch.
Consolidated Pull Requests:
Verification:
mise run verifypassed (lint, typecheck, unit test coverage).mise run buildpassed (Next.js production build).