Skip to content

build(deps): update yarn packages and resolve build, test, and lint deprecations#1616

Merged
gspencergoog merged 10 commits into
a2ui-project:mainfrom
gspencergoog:yarn_cleanup
Jun 12, 2026
Merged

build(deps): update yarn packages and resolve build, test, and lint deprecations#1616
gspencergoog merged 10 commits into
a2ui-project:mainfrom
gspencergoog:yarn_cleanup

Conversation

@gspencergoog

@gspencergoog gspencergoog commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Description

This PR updates monorepo package dependencies and updates yarn.lock to resolve deprecations, bundle size budgets, and dependency misalignments.

  • Monorepo Dependency Alignment (syncpack):
    • Introduce .syncpackrc configuration enforcing unified dependency version rules (TypeScript 5.9.3, Zod 3.25.76).
    • Add syncpack to root devDependencies and configure lint:deps script for alignment verification.
    • Synchronize dependency declarations across all 32 monorepo packages (renderers, samples, evaluations).
  • Core Dependency Updates:
    • Pin TypeScript to 5.9.3 across all workspaces to prevent baseUrl compilation deprecation errors and remove ignoreDeprecations from tsconfig files.
    • Align Angular Material, CDK, and Google Maps packages to ^21.2.5 to match core Angular packages across root resolutions and applications.
    • Pin @playwright/test to 1.58.1 to maintain cached browser binary compatibility.
  • Build & Testing Adjustments:
    • Update React 19 testing assertions in components.test.tsx to account for concurrent batching.
    • Increase Angular initial bundle size budgets across sample projects to 1.5MB warning / 2.5MB error.
    • Omit explicit rootDir assignments from sub-project tsconfig.app.json files to prevent mirroring the monorepo directory structure inside compilation output folders.
  • Linter & Font Polish:
    • Remove non-existent linter rule overrides from tools/composer/eslint.config.mjs.
    • Configure Material Symbols link in tools/composer/src/app/layout.tsx to use display=block to prevent flash of unstyled text (FOUT).

…eprecations

- Pin TypeScript to 5.9.3 and Angular to v21/v20 to prevent baseUrl deprecation errors.
- Remove ignoreDeprecations across tsconfig files.
- Resolve Angular relative path mapping and CommonJS build warnings.
- Update Playwright resolution to 1.58.1 to maintain cached browser compatibility.
- Adjust React 19 testing assertions for concurrent batching in components.test.tsx.
- Disable noisy linter rules in tools/composer/eslint.config.mjs and configure Material Symbols link display.
- Increase Angular initial bundle size budgets across sample projects to 1.5MB warning / 2.5MB error.
gemini-code-assist[bot]

This comment was marked as resolved.

- Align workspace package.json versions with stable root resolutions (TypeScript 5.9.3, Zod 3.25.76, Hono 4.11.10, React Resizable Panels 3.0.6, and Angular 21.2.5).
- Remove explicit rootDir configurations from samples/mcp/a2ui-in-mcpapps/server/apps/editor/tsconfig.app.json and samples/mcp/a2ui-in-mcpapps/server/apps/src/tsconfig.app.json.
- Remove unused sub-package resolutions block in renderers/angular/package.json.
gemini-code-assist[bot]

This comment was marked as resolved.

- Remove invalid ESLint rule overrides (react-hooks/set-state-in-effect, react-hooks/immutability, preserve-caught-error) from tools/composer/eslint.config.mjs per PR review feedback.
- Align TypeScript dependency version to 5.9.3 across remaining sample and evaluation packages (renderers/lit/a2ui_explorer, specification/v0_9_1/eval, samples/mcp/a2ui-in-mcpapps/server/apps/editor, samples/mcp/a2ui-in-mcpapps/server/apps/src, samples/mcp/a2ui-over-mcp-recipe/client, samples/mcp/mcp-apps-calculator/apps/src) to match root resolutions.
- Introduce .syncpackrc config to define monorepo dependency alignment rules (TypeScript 5.9.3, Zod 3.25.76).
- Add syncpack to root devDependencies and configure lint:deps script in main/package.json.
- Execute syncpack fix-mismatches across all monorepo packages to resolve 64 semver and pin mismatches.
- Disable @next/next/google-font-display rule on Material Symbols link in tools/composer/src/app/layout.tsx to permit using display=block.
- Restore rule overrides (react-hooks/set-state-in-effect: off, react-hooks/immutability: off, preserve-caught-error: off) in tools/composer/eslint.config.mjs to ensure 100% successful linting.

@josemontespg josemontespg left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome, thank you!

<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose of the &display=block here?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It prevents the name of the icon from flashing up before the font is fully loaded. Otherwise you get stuff like [shopping_cart_checkout] showing up as text instead of the icon for a moment before it loads, and it messes with the layout a lot.

@gspencergoog gspencergoog merged commit 85381fc into a2ui-project:main Jun 12, 2026
26 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in A2UI Jun 12, 2026
ditman added a commit to ditman/a2ui-project-a2ui that referenced this pull request Jun 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants