From 46eed6a0fb19d974744a2fee3af4d52ee358946e Mon Sep 17 00:00:00 2001 From: Doug Parker Date: Wed, 24 Sep 2025 13:43:34 -0700 Subject: [PATCH 01/42] refactor(devtools): update DevTools release script to resolve `origin` URL (#64062) `git config` only lists the configured value, but `git remote get-url` actually resolves the URL and is more stable. I had a local configuration which aliased `gh:` to the appropriate GitHub URL: ``` [url "git@github.com:"] insteadOf = "gh:" pushInsteadOf = "git@github.com" ``` In this scenario, `git config` returns `gh:dgp1130/angular`, but `git remote get-url` returns `git@github.com:dgp1130/angular`, which is what the subsequent regex expects. PR Close #64062 --- devtools/tools/release.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/tools/release.mts b/devtools/tools/release.mts index bdd8ab350f39..0884ca118aab 100644 --- a/devtools/tools/release.mts +++ b/devtools/tools/release.mts @@ -298,7 +298,7 @@ async function prepareReleasePullRequest(newVersion: string): Promise { await exec(`git push origin ${releaseBranch} --force-with-lease`); console.log(chalk.green('Release branch pushed to your fork.')); - const {stdout: remoteUrl} = await exec('git config --get remote.origin.url'); + const {stdout: remoteUrl} = await exec('git remote get-url origin'); const match = remoteUrl.trim().match(/github\.com[/:]([\w-]+)\/angular/); const origin = match ? match[1] : 'angular'; From 0270ed232efbf2721942fe8c58a7ce8aa7c8a141 Mon Sep 17 00:00:00 2001 From: Doug Parker Date: Wed, 24 Sep 2025 14:31:20 -0700 Subject: [PATCH 02/42] refactor(devtools): update release script to use `/pull/new` endpoint (#64062) This jumps straight to the "Open a pull request" screen rather than having the user click through the compare screen to start a PR. PR Close #64062 --- devtools/tools/release.mts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/devtools/tools/release.mts b/devtools/tools/release.mts index 0884ca118aab..43c816bb772c 100644 --- a/devtools/tools/release.mts +++ b/devtools/tools/release.mts @@ -299,12 +299,13 @@ async function prepareReleasePullRequest(newVersion: string): Promise { console.log(chalk.green('Release branch pushed to your fork.')); const {stdout: remoteUrl} = await exec('git remote get-url origin'); - const match = remoteUrl.trim().match(/github\.com[/:]([\w-]+)\/angular/); - const origin = match ? match[1] : 'angular'; + const match = remoteUrl.trim().match(/github\.com[/:]([\w-]+)\/([\w-]+)/); + const originUser = match ? match[1] : 'angular'; + const originRepo = match ? match[2] : 'angular'; console.log( chalk.yellow( - `Please create a pull request by visiting: https://github.com/${origin}/angular/compare/${releaseBranch}`, + `Please create a pull request by visiting: https://github.com/${originUser}/${originRepo}/pull/new/${releaseBranch}`, ), ); } From 076ccbf7fe721d7c69d412d1f033ec065f456ca4 Mon Sep 17 00:00:00 2001 From: Doug Parker Date: Wed, 24 Sep 2025 14:27:18 -0700 Subject: [PATCH 03/42] refactor(devtools): remove hard newlines from reviewer note (#64062) These newlines aren't necessary and potentially forced undesired formatting on the reviewer. PR Close #64062 --- devtools/tools/release.mts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/devtools/tools/release.mts b/devtools/tools/release.mts index 43c816bb772c..ebcc3feb948a 100644 --- a/devtools/tools/release.mts +++ b/devtools/tools/release.mts @@ -438,13 +438,11 @@ function generateChangelog(commits: string[]): string { * @returns The reviewer note. */ function getFirefoxReviewerNote(commitSha: string): string { - return `This is a monorepo and includes much more code than just the DevTools extension. The relevant -code is under \`devtools/...\` and \`devtools/README.md\` contains instructions for compiling -release builds locally. + return ` +This is a monorepo and includes much more code than just the DevTools extension. The relevant code is under \`devtools/...\` and \`devtools/README.md\` contains instructions for compiling release builds locally. -The uploaded source is equivalent to: -https://github.com/angular/angular/tree/${commitSha}/. -`; +The uploaded source is equivalent to: https://github.com/angular/angular/tree/${commitSha}/. + `.trim(); } /** From a74d74bfecd34f98c1264464c7080565946829ac Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Thu, 25 Sep 2025 18:09:28 +0200 Subject: [PATCH 04/42] docs: fix homepage width (#64087) Long term, we probably need to rework how adev behave on very large screen. PR Close #64087 --- adev/src/app/app.component.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/adev/src/app/app.component.scss b/adev/src/app/app.component.scss index 6a607e8701d0..481428b3bf09 100644 --- a/adev/src/app/app.component.scss +++ b/adev/src/app/app.component.scss @@ -99,7 +99,6 @@ flex-direction: column; min-height: 100vh; width: 100%; - max-width: 2560px; // If navs are open, render a blurry background over content ::after { From 542cd0019aa509e399282ccf7cb5fa6208cef70e Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Thu, 25 Sep 2025 19:21:54 +0200 Subject: [PATCH 05/42] fix(core): do not rename ARIA property bindings to attributes (#64089) angular#62630 made it so that all ARIA property bindings would write to their corresponding attribute instead. The primary motivation for this change was to ensure that ARIA attributes were always rendered correctly on the server, where the emulated DOM may not correctly reflect ARIA properties as attributes. Furthermore, this change added support for binding to ARIA attributes using the property binding syntax (e.g. `[aria-label]`). Unfortunately, angular#62630 relied on the incorrect assumptions that an ARIA property name could be converted to its attribute name (without hardcoding the conversion), and that the value of an ARIA property matched its corresponding attribute. For example, the `ariaLabelledByElements` property's value is an array of DOM elements, while the corresponding `aria-labelledby` attribute's value is a string containing the IDs of the DOM elements. This partially reverts angular#62630 so that only property bindings with ARIA attribute names (begin with `aria-`) are converted to attribute bindings. * `[ariaLabel]` will revert to binding to the `ariaLabel` property. * `[aria-label]` will continue binding to the `aria-label` attribute. Note the only difference between `[aria-label]` and `[attr.aria-label]` is that the former will attempt to bind to inputs of the same name while the latter will not. PR Close #64089 --- .../host_bindings/GOLDEN_PARTIAL.js | 38 +++++++++++++++ .../host_bindings/TEST_CASES.json | 10 ++++ .../host_bindings/aria_bindings.js | 6 +++ .../host_bindings/aria_bindings.ts | 15 ++++++ .../property_bindings/aria_dom_properties.js | 3 +- .../property_bindings/aria_properties.js | 3 +- .../src/phases/binding_specialization.ts | 25 ++++++++-- .../src/template/pipeline/src/phases/reify.ts | 48 ++++--------------- .../template/pipeline/src/util/attributes.ts | 18 +++++++ .../src/render3/instructions/aria_property.ts | 32 ++----------- .../test/acceptance/property_binding_spec.ts | 10 ++-- packages/platform-server/test/render_spec.ts | 14 ------ 12 files changed, 131 insertions(+), 91 deletions(-) create mode 100644 packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/aria_bindings.js create mode 100644 packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/aria_bindings.ts create mode 100644 packages/compiler/src/template/pipeline/src/util/attributes.ts diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/GOLDEN_PARTIAL.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/GOLDEN_PARTIAL.js index 86d3d4163abd..2831f0d23ba7 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/GOLDEN_PARTIAL.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/GOLDEN_PARTIAL.js @@ -1,3 +1,41 @@ +/**************************************************************************************************** + * PARTIAL FILE: aria_bindings.js + ****************************************************************************************************/ +import { Component } from '@angular/core'; +import * as i0 from "@angular/core"; +export class MyComponent { + constructor() { + this.disabled = ''; + this.readonly = ''; + this.label = ''; + } +} +MyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); +MyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "0.0.0-PLACEHOLDER", type: MyComponent, isStandalone: true, selector: "ng-component", host: { properties: { "attr.aria-disabled": "disabled", "aria-readonly": "readonly", "ariaLabel": "label" } }, ngImport: i0, template: ``, isInline: true }); +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "0.0.0-PLACEHOLDER", ngImport: i0, type: MyComponent, decorators: [{ + type: Component, + args: [{ + template: ``, + host: { + '[attr.aria-disabled]': 'disabled', + '[aria-readonly]': 'readonly', + '[ariaLabel]': 'label', + }, + }] + }] }); + +/**************************************************************************************************** + * PARTIAL FILE: aria_bindings.d.ts + ****************************************************************************************************/ +import * as i0 from "@angular/core"; +export declare class MyComponent { + disabled: string; + readonly: string; + label: string; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} + /**************************************************************************************************** * PARTIAL FILE: host_bindings.js ****************************************************************************************************/ diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/TEST_CASES.json b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/TEST_CASES.json index 22b15e636402..9c7ba5a3755e 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/TEST_CASES.json +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/TEST_CASES.json @@ -1,6 +1,16 @@ { "$schema": "../../test_case_schema.json", "cases": [ + { + "description": "should support host bindings to ARIA attributes", + "inputFiles": ["aria_bindings.ts"], + "expectations": [ + { + "failureMessage": "Invalid host binding code", + "files": ["aria_bindings.js"] + } + ] + }, { "description": "should support host bindings", "inputFiles": ["host_bindings.ts"], diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/aria_bindings.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/aria_bindings.js new file mode 100644 index 000000000000..cfba583398f3 --- /dev/null +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/aria_bindings.js @@ -0,0 +1,6 @@ +hostBindings: function MyComponent_HostBindings(rf, ctx) { + if (rf & 2) { + $r3$.ɵɵdomProperty("ariaLabel", ctx.label); + $r3$.ɵɵattribute("aria-disabled", ctx.disabled)("aria-readonly", ctx.readonly); + } +} \ No newline at end of file diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/aria_bindings.ts b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/aria_bindings.ts new file mode 100644 index 000000000000..0541557b067d --- /dev/null +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/host_bindings/aria_bindings.ts @@ -0,0 +1,15 @@ +import {Component} from '@angular/core'; + +@Component({ + template: ``, + host: { + '[attr.aria-disabled]': 'disabled', + '[aria-readonly]': 'readonly', + '[ariaLabel]': 'label', + }, +}) +export class MyComponent { + disabled = ''; + readonly = ''; + label = ''; +} diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/aria_dom_properties.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/aria_dom_properties.js index 70b953846881..53b4c722ed35 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/aria_dom_properties.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/aria_dom_properties.js @@ -1,3 +1,4 @@ if (rf & 2) { - $r3$.ɵɵattribute("aria-readonly", ctx.readonly)("aria-label", ctx.label)("aria-disabled", ctx.disabled); + $r3$.ɵɵdomProperty("ariaLabel", ctx.label); + $r3$.ɵɵattribute("aria-disabled", ctx.disabled)("aria-readonly", ctx.readonly); } \ No newline at end of file diff --git a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/aria_properties.js b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/aria_properties.js index 05161595d7e5..eeef20f2caa9 100644 --- a/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/aria_properties.js +++ b/packages/compiler-cli/test/compliance/test_cases/r3_view_compiler_bindings/property_bindings/aria_properties.js @@ -1,4 +1,5 @@ if (rf & 2) { - $r3$.ɵɵariaProperty("aria-readonly", ctx.readonly)("ariaLabel", ctx.label); + $r3$.ɵɵariaProperty("aria-readonly", ctx.readonly); + $r3$.ɵɵproperty("ariaLabel", ctx.label); $r3$.ɵɵattribute("aria-disabled", ctx.disabled); } \ No newline at end of file diff --git a/packages/compiler/src/template/pipeline/src/phases/binding_specialization.ts b/packages/compiler/src/template/pipeline/src/phases/binding_specialization.ts index 974cc92c499c..5348e146a749 100644 --- a/packages/compiler/src/template/pipeline/src/phases/binding_specialization.ts +++ b/packages/compiler/src/template/pipeline/src/phases/binding_specialization.ts @@ -9,7 +9,8 @@ import {splitNsName} from '../../../../ml_parser/tags'; import * as o from '../../../../output/output_ast'; import * as ir from '../../ir'; -import {CompilationJob, CompilationJobKind} from '../compilation'; +import {CompilationJob, CompilationJobKind, TemplateCompilationMode} from '../compilation'; +import {isAriaAttribute} from '../util/attributes'; /** * Looks up an element in the given map by xref ID. @@ -95,7 +96,26 @@ export function specializeBindings(job: CompilationJob): void { break; case ir.BindingKind.Property: case ir.BindingKind.LegacyAnimation: - if (job.kind === CompilationJobKind.Host) { + // Convert a property binding targeting an ARIA attribute (e.g. [aria-label]) into an + // attribute binding when we know it can't also target an input. Note that a `Host` job is + // always `DomOnly`, so this condition must be checked first. + if (job.mode === TemplateCompilationMode.DomOnly && isAriaAttribute(op.name)) { + ir.OpList.replace( + op, + ir.createAttributeOp( + op.target, + /* namespace= */ null, + op.name, + op.expression, + op.securityContext, + /* isTextAttribute= */ false, + op.isStructuralTemplateAttribute, + op.templateKind, + op.i18nMessage, + op.sourceSpan, + ), + ); + } else if (job.kind === CompilationJobKind.Host) { ir.OpList.replace( op, ir.createDomPropertyOp( @@ -124,7 +144,6 @@ export function specializeBindings(job: CompilationJob): void { ), ); } - break; case ir.BindingKind.TwoWayProperty: if (!(op.expression instanceof o.Expression)) { diff --git a/packages/compiler/src/template/pipeline/src/phases/reify.ts b/packages/compiler/src/template/pipeline/src/phases/reify.ts index 87366adf76d2..dead4e4f9c1f 100644 --- a/packages/compiler/src/template/pipeline/src/phases/reify.ts +++ b/packages/compiler/src/template/pipeline/src/phases/reify.ts @@ -16,8 +16,7 @@ import { type CompilationUnit, } from '../compilation'; import * as ng from '../instruction'; - -const ARIA_PREFIX = 'aria'; +import {isAriaAttribute} from '../util/attributes'; /** * Map of target resolvers for event listeners. @@ -687,35 +686,6 @@ function reifyUpdateOperations(unit: CompilationUnit, ops: ir.OpList ARIA_PREFIX.length; -} - /** * Reifies a DOM property binding operation. * @@ -726,14 +696,12 @@ function isAriaProperty(name: string): boolean { * @returns A statement to update the property at runtime. */ function reifyDomProperty(op: ir.DomPropertyOp | ir.PropertyOp): ir.UpdateOp { - return isAriaProperty(op.name) - ? ng.attribute(ariaAttrName(op.name), op.expression, null, null, op.sourceSpan) - : ng.domProperty( - DOM_PROPERTY_REMAPPING.get(op.name) ?? op.name, - op.expression, - op.sanitizer, - op.sourceSpan, - ); + return ng.domProperty( + DOM_PROPERTY_REMAPPING.get(op.name) ?? op.name, + op.expression, + op.sanitizer, + op.sourceSpan, + ); } /** @@ -746,7 +714,7 @@ function reifyDomProperty(op: ir.DomPropertyOp | ir.PropertyOp): ir.UpdateOp { * @returns A statement to update the property at runtime. */ function reifyProperty(op: ir.PropertyOp): ir.UpdateOp { - return isAriaProperty(op.name) + return isAriaAttribute(op.name) ? ng.ariaProperty(op.name, op.expression, op.sourceSpan) : ng.property(op.name, op.expression, op.sanitizer, op.sourceSpan); } diff --git a/packages/compiler/src/template/pipeline/src/util/attributes.ts b/packages/compiler/src/template/pipeline/src/util/attributes.ts new file mode 100644 index 000000000000..8a046e1461be --- /dev/null +++ b/packages/compiler/src/template/pipeline/src/util/attributes.ts @@ -0,0 +1,18 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.dev/license + */ + +const ARIA_PREFIX = 'aria-'; + +/** + * Returns whether `name` is an ARIA attribute name. + * + * This is a heuristic based on whether name begins with and is longer than `aria-`. + */ +export function isAriaAttribute(name: string): boolean { + return name.startsWith(ARIA_PREFIX) && name.length > ARIA_PREFIX.length; +} diff --git a/packages/core/src/render3/instructions/aria_property.ts b/packages/core/src/render3/instructions/aria_property.ts index 69ef7c2c204d..68d2dadb2e6f 100644 --- a/packages/core/src/render3/instructions/aria_property.ts +++ b/packages/core/src/render3/instructions/aria_property.ts @@ -21,15 +21,13 @@ import { storePropertyBindingMetadata, } from './shared'; -const ARIA_PREFIX = 'aria'; - /** - * Update an ARIA attribute by either its attribute or property name on a selected element. + * Update an ARIA attribute on a selected element. * - * If the property name also exists as an input property on any of the element's directives, those - * inputs will be set instead of the element property. + * If the attribute name also exists as an input property on any of the element's directives, those + * inputs will be set instead of the element attribute. * - * @param name Name of the ARIA attribute or property (beginning with `aria`). + * @param name Name of the ARIA attribute (beginning with `aria-`). * @param value New value to write. * @returns This function returns itself so that it may be chained. * @@ -49,30 +47,10 @@ export function ɵɵariaProperty(name: string, value: T): typeof ɵɵariaProp } else { ngDevMode && assertTNodeType(tNode, TNodeType.Element); const element = getNativeByTNode(tNode, lView) as RElement; - const attributeName = ariaAttrName(name); - setElementAttribute(lView[RENDERER], element, null, tNode.value, attributeName, value, null); + setElementAttribute(lView[RENDERER], element, null, tNode.value, name, value, null); } ngDevMode && storePropertyBindingMetadata(tView.data, tNode, name, bindingIndex); } return ɵɵariaProperty; } - -/** - * Converts an ARIA property name to its corresponding attribute name, if necessary. - * - * For example, converts `ariaLabel` to `aria-label`. - * - * https://www.w3.org/TR/wai-aria-1.2/#accessibilityroleandproperties-correspondence - * - * This must be kept in sync with the the function of the same name in - * packages/compiler/src/template/pipeline/src/phases/reify.ts - * - * @param name A property name that starts with `aria`. - * @returns The corresponding attribute name. - */ -function ariaAttrName(name: string): string { - return name.charAt(ARIA_PREFIX.length) !== '-' - ? ARIA_PREFIX + '-' + name.slice(ARIA_PREFIX.length).toLowerCase() - : name; // Property already has attribute name. -} diff --git a/packages/core/test/acceptance/property_binding_spec.ts b/packages/core/test/acceptance/property_binding_spec.ts index df0df69585f7..48d9bb92563d 100644 --- a/packages/core/test/acceptance/property_binding_spec.ts +++ b/packages/core/test/acceptance/property_binding_spec.ts @@ -142,7 +142,7 @@ describe('property bindings', () => { }, ); - it('should bind ARIA properties to their corresponding attributes', () => { + it('should bind ARIA properties', () => { @Component({ template: '', }) @@ -152,19 +152,19 @@ describe('property bindings', () => { } const fixture = TestBed.createComponent(MyComp); - const button = fixture.debugElement.query(By.css('button')).nativeElement; + const button = fixture.debugElement.query(By.css('button')).nativeElement as HTMLButtonElement; fixture.componentInstance.label = 'Open'; fixture.componentInstance.hasPopup = 'menu'; fixture.detectChanges(); - expect(button.getAttribute('aria-label')).toBe('Open'); - expect(button.getAttribute('aria-haspopup')).toBe('menu'); + expect(button.ariaLabel).toBe('Open'); + expect(button.ariaHasPopup).toBe('menu'); fixture.componentInstance.label = 'Close'; fixture.detectChanges(); - expect(button.getAttribute('aria-label')).toBe('Close'); + expect(button.ariaLabel).toBe('Close'); }); it('should bind interpolated ARIA attributes', () => { diff --git a/packages/platform-server/test/render_spec.ts b/packages/platform-server/test/render_spec.ts index 45a88b736ee7..da862f417201 100644 --- a/packages/platform-server/test/render_spec.ts +++ b/packages/platform-server/test/render_spec.ts @@ -24,20 +24,6 @@ describe('renderApplication', () => { expect(html).toContain('aria-label="some label"'); }); - it('should render ARIA attributes from their corresponding property bindings', async () => { - @Component({ - selector: 'app', - standalone: true, - template: '
', - }) - class SomeComponent { - label = 'some other label'; - } - - const html = await ssr(SomeComponent); - expect(html).toContain('aria-label="some other label"'); - }); - it('should render ARIA attributes using property binding syntax', async () => { @Component({ selector: 'app', From 36c4b3f2b1f0b11b1676fd8b5cf40bf0269bacf6 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 25 Sep 2025 15:16:54 +0000 Subject: [PATCH 06/42] build: update all github actions (#64082) See associated pull request for more information. PR Close #64082 --- .github/workflows/ci.yml | 2 +- .github/workflows/pr.yml | 2 +- .github/workflows/scorecard.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d484d6cdcaf..2e61481cc937 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,7 +49,7 @@ jobs: with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Cache downloaded Cypress binary - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: '~/.cache/Cypress' key: cypress-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 62a4ab8d2010..832a8152b787 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -53,7 +53,7 @@ jobs: - name: Setup Bazel RBE uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 - name: Cache downloaded Cypress binary - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: '~/.cache/Cypress' key: cypress-cache-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 10bac8cf7139..bdc26c3b68f9 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -47,6 +47,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: 'Upload to code-scanning' - uses: github/codeql-action/upload-sarif@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3 + uses: github/codeql-action/upload-sarif@303c0aef88fc2fe5ff6d63d3b1596bfd83dfa1f9 # v3.30.4 with: sarif_file: results.sarif From e5157bd933c41836fb431659f42dfb4cdbe0d2d1 Mon Sep 17 00:00:00 2001 From: Jessica Janiuk Date: Thu, 25 Sep 2025 09:11:25 -0700 Subject: [PATCH 07/42] fix(core): prevents unintended early termination of leave animations and hoisting (#64088) The event listeners for animationstart and animationend weren't properly checking whether the animation event fired matched the node we're bound to, since animation events bubble. This resulted in child node animation events bubbling up and causing elements to get prematurely removed. fixes: #64084 PR Close #64088 --- .../src/render3/instructions/animation.ts | 11 ++- .../core/test/acceptance/animation_spec.ts | 74 +++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) diff --git a/packages/core/src/render3/instructions/animation.ts b/packages/core/src/render3/instructions/animation.ts index d94f8ceea035..a409ad08e438 100644 --- a/packages/core/src/render3/instructions/animation.ts +++ b/packages/core/src/render3/instructions/animation.ts @@ -89,6 +89,9 @@ export function runEnterAnimation(lView: LView, tNode: TNode, value: string | Fu // This also allows us to setup cancellation of animations in progress if the // gets removed early. const handleEnterAnimationStart = (event: AnimationEvent | TransitionEvent) => { + // this early exit case is to prevent issues with bubbling events that are from child element animations + if (event.target !== nativeElement) return; + const eventName = event instanceof AnimationEvent ? 'animationend' : 'transitionend'; ngZone.runOutsideAngular(() => { cleanupFns.push(renderer.listen(nativeElement, eventName, handleEnterAnimationEnd)); @@ -97,6 +100,9 @@ export function runEnterAnimation(lView: LView, tNode: TNode, value: string | Fu // When the longest animation ends, we can remove all the classes const handleEnterAnimationEnd = (event: AnimationEvent | TransitionEvent) => { + // this early exit case is to prevent issues with bubbling events that are from child element animations + if (event.target !== nativeElement) return; + enterAnimationEnd(event, nativeElement, renderer); }; @@ -135,7 +141,8 @@ function enterAnimationEnd( renderer: Renderer, ) { const elementData = enterClassMap.get(nativeElement); - if (!elementData) return; + // this event.target check is to prevent issues with bubbling events that are from child element animations + if (event.target !== nativeElement || !elementData) return; if (isLongestAnimation(event, nativeElement)) { // Now that we've found the longest animation, there's no need // to keep bubbling up this event as it's not going to apply to @@ -279,6 +286,8 @@ function animateLeaveClassRunner( cancelAnimationsIfRunning(el, renderer); const handleOutAnimationEnd = (event: AnimationEvent | TransitionEvent | CustomEvent) => { + // this early exit case is to prevent issues with bubbling events that are from child element animations + if (event.target !== el) return; if (event instanceof CustomEvent || isLongestAnimation(event, el)) { // Now that we've found the longest animation, there's no need // to keep bubbling up this event as it's not going to apply to diff --git a/packages/core/test/acceptance/animation_spec.ts b/packages/core/test/acceptance/animation_spec.ts index f87329d0f049..333fe6ee2008 100644 --- a/packages/core/test/acceptance/animation_spec.ts +++ b/packages/core/test/acceptance/animation_spec.ts @@ -1673,5 +1673,79 @@ describe('Animation', () => { tick(); expect(fixture.debugElement.queryAll(By.css('p')).length).toBe(3); })); + + it('should not remove elements when child element animations finish', fakeAsync(() => { + const animateStyles = ` + .fade { + animation: fade-out 500ms; + } + .flash { + animation: flash 200ms; + } + @keyframes flash { + from { + background-color: rgba(255, 255, 255, 1); + } + to { + background-color: rgba(255, 255, 255, 0);; + } + } + @keyframes fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } + } + `; + + @Component({ + selector: 'test-cmp', + styles: animateStyles, + template: ` +
+ @if (show()) { +

+ I should slide in. + +

+ } +
+ `, + encapsulation: ViewEncapsulation.None, + }) + class TestComponent { + show = signal(true); + buttonClass = signal(''); + flash() { + this.show.update((val) => !val); + this.buttonClass.set('flash'); + } + } + TestBed.configureTestingModule({animationsEnabled: true}); + + const fixture = TestBed.createComponent(TestComponent); + const cmp = fixture.componentInstance; + fixture.detectChanges(); + cmp.flash(); + fixture.detectChanges(); + tickAnimationFrames(1); + + fixture.debugElement + .query(By.css('button')) + .nativeElement.dispatchEvent( + new AnimationEvent('animationend', {animationName: 'flash', bubbles: true}), + ); + tick(); + expect(fixture.debugElement.queryAll(By.css('p')).length).toBe(1); + fixture.debugElement + .query(By.css('p')) + .nativeElement.dispatchEvent( + new AnimationEvent('animationend', {animationName: 'fade-out', bubbles: true}), + ); + tick(); + expect(fixture.debugElement.queryAll(By.css('p')).length).toBe(0); + })); }); }); From bd2b841e39a2371fcb74809a0f0ac1ab0b16a54e Mon Sep 17 00:00:00 2001 From: Jad Chahed Date: Thu, 25 Sep 2025 16:00:52 +0200 Subject: [PATCH 08/42] docs: fix XLIFF 1.2 specification URL in i18n translation files guide (#64075) PR Close #64075 --- adev/src/content/guide/i18n/translation-files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adev/src/content/guide/i18n/translation-files.md b/adev/src/content/guide/i18n/translation-files.md index 6ee0a2559a70..5b90e6001acd 100644 --- a/adev/src/content/guide/i18n/translation-files.md +++ b/adev/src/content/guide/i18n/translation-files.md @@ -245,7 +245,7 @@ The following example displays both translation units after translating. [JsonMain]: https://www.json.org "Introducing JSON | JSON" -[OasisOpenDocsXliffXliffCoreXliffCoreHtml]: http://docs.oasis-open.org/xliff/xliff-core/xliff-core.html "XLIFF Version 1.2 Specification | Oasis Open Docs" +[OasisOpenDocsXliffXliffCoreXliffCoreHtml]: https://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html "XLIFF Version 1.2 Specification | Oasis Open Docs" [OasisOpenDocsXliffXliffCoreV20Cos01XliffCoreV20Cose01Html]: http://docs.oasis-open.org/xliff/xliff-core/v2.0/cos01/xliff-core-v2.0-cos01.html "XLIFF Version 2.0 | Oasis Open Docs" [UnicodeCldrDevelopmentDevelopmentProcessDesignProposalsXmb]: http://cldr.unicode.org/development/development-process/design-proposals/xmb "XMB | CLDR - Unicode Common Locale Data Repository | Unicode" From 7d720d52ec7dde2315224c8ebc0c6c290ba0affd Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Thu, 25 Sep 2025 19:08:45 +0000 Subject: [PATCH 09/42] build: update cross-repo angular dependencies (#64077) See associated pull request for more information. PR Close #64077 --- adev/package.json | 12 +- .../cli-hello-world-ivy-i18n/package.json | 6 +- .../cli-hello-world-ivy-i18n/pnpm-lock.yaml | 259 +++++------ integration/cli-hello-world-lazy/package.json | 8 +- .../cli-hello-world-lazy/pnpm-lock.yaml | 271 ++++++------ integration/cli-hello-world/package.json | 8 +- integration/cli-hello-world/pnpm-lock.yaml | 271 ++++++------ integration/cli-signal-inputs/package.json | 4 +- integration/cli-signal-inputs/pnpm-lock.yaml | 253 +++++------ integration/defer/package.json | 6 +- integration/defer/pnpm-lock.yaml | 257 +++++------ .../legacy-animations-async/package.json | 4 +- .../legacy-animations-async/pnpm-lock.yaml | 253 +++++------ integration/legacy-animations/package.json | 4 +- integration/legacy-animations/pnpm-lock.yaml | 253 +++++------ integration/ng-add-localize/package.json | 4 +- integration/ng-add-localize/pnpm-lock.yaml | 253 +++++------ .../platform-server-hydration/package.json | 8 +- .../platform-server-hydration/pnpm-lock.yaml | 271 ++++++------ .../platform-server-zoneless/package.json | 8 +- .../platform-server-zoneless/pnpm-lock.yaml | 273 ++++++------ integration/platform-server/package.json | 8 +- integration/platform-server/pnpm-lock.yaml | 273 ++++++------ integration/standalone-bootstrap/package.json | 8 +- .../standalone-bootstrap/pnpm-lock.yaml | 271 ++++++------ integration/trusted-types/package.json | 8 +- integration/trusted-types/pnpm-lock.yaml | 273 ++++++------ modules/package.json | 2 +- package.json | 20 +- packages/core/test/bundling/package.json | 2 +- pnpm-lock.yaml | 417 +++++++++--------- 31 files changed, 2033 insertions(+), 1935 deletions(-) diff --git a/adev/package.json b/adev/package.json index c398f83ba626..5b4811a19bcd 100644 --- a/adev/package.json +++ b/adev/package.json @@ -1,21 +1,21 @@ { "dependencies": { - "@angular-devkit/build-angular": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", "@angular/animations": "workspace:*", - "@angular/build": "20.3.2", - "@angular/cdk": "20.2.4", - "@angular/cli": "20.3.2", + "@angular/build": "20.3.3", + "@angular/cdk": "20.2.5", + "@angular/cli": "20.3.3", "@angular/common": "workspace:*", "@angular/compiler-cli": "workspace:*", "@angular/compiler": "workspace:*", "@angular/core": "workspace:*", "@angular/docs": "workspace:*", "@angular/forms": "workspace:*", - "@angular/material": "20.2.4", + "@angular/material": "20.2.5", "@angular/platform-browser": "workspace:*", "@angular/platform-server": "workspace:*", "@angular/router": "workspace:*", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "@codemirror/autocomplete": "6.18.6", "@codemirror/commands": "6.8.1", "@codemirror/lang-angular": "0.1.4", diff --git a/integration/cli-hello-world-ivy-i18n/package.json b/integration/cli-hello-world-ivy-i18n/package.json index a917f69fd389..d5a5928b0835 100644 --- a/integration/cli-hello-world-ivy-i18n/package.json +++ b/integration/cli-hello-world-ivy-i18n/package.json @@ -27,9 +27,9 @@ "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/jasmine": "^5.0.0", "@types/jasminewd2": "^2.0.8", diff --git a/integration/cli-hello-world-ivy-i18n/pnpm-lock.yaml b/integration/cli-hello-world-ivy-i18n/pnpm-lock.yaml index 52c911d2bb67..9741c0703fcb 100644 --- a/integration/cli-hello-world-ivy-i18n/pnpm-lock.yaml +++ b/integration/cli-hello-world-ivy-i18n/pnpm-lock.yaml @@ -40,14 +40,14 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -144,12 +144,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -158,7 +158,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -198,15 +198,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -214,12 +214,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -229,7 +229,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -264,8 +264,8 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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 @@ -1360,8 +1360,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1417,12 +1417,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1516,82 +1512,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1714,8 +1723,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -4353,8 +4362,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -5313,20 +5323,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -5338,7 +5348,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -5407,16 +5417,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -5427,9 +5437,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -5437,10 +5447,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -5460,7 +5470,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -5489,15 +5499,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -6641,7 +6651,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -6718,9 +6728,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -6786,51 +6794,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -6898,10 +6906,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -7434,7 +7442,7 @@ snapshots: dependencies: ansi-align: 2.0.0 camelcase: 4.1.0 - chalk: 2.4.1 + chalk: 2.4.2 cli-boxes: 1.0.0 string-width: 2.1.1 term-size: 1.2.0 @@ -9790,27 +9798,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/cli-hello-world-lazy/package.json b/integration/cli-hello-world-lazy/package.json index 210b50e2251f..35992a50d048 100644 --- a/integration/cli-hello-world-lazy/package.json +++ b/integration/cli-hello-world-lazy/package.json @@ -13,15 +13,15 @@ "@angular/core": "link:./in-existing-linked-by-bazel", "@angular/platform-browser": "link:./in-existing-linked-by-bazel", "@angular/router": "link:./in-existing-linked-by-bazel", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "rxjs": "^7.0.0", "tslib": "^2.3.0", "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/node": "^20.14.8", "ts-node": "^10.9.1", diff --git a/integration/cli-hello-world-lazy/pnpm-lock.yaml b/integration/cli-hello-world-lazy/pnpm-lock.yaml index a1c1798553cc..7b72c4b5a4cd 100644 --- a/integration/cli-hello-world-lazy/pnpm-lock.yaml +++ b/integration/cli-hello-world-lazy/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + specifier: 20.3.3 + version: 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) rxjs: specifier: ^7.0.0 version: 7.8.2 @@ -37,14 +37,14 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -120,12 +120,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -134,7 +134,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -174,15 +174,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -190,12 +190,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -205,7 +205,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -240,13 +240,13 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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/ssr@20.3.2': - resolution: {integrity: sha512-IMSl4wUM1297HmAB+iT72hbku3mP7uswV/EoE87oK7txvQExSNEFtO/8NJbgBrdFOLhG0JH+axqfwZo1vfBJAA==} + '@angular/ssr@20.3.3': + resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} peerDependencies: '@angular/common': ^20.0.0 '@angular/core': ^20.0.0 @@ -1347,8 +1347,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1404,12 +1404,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1503,82 +1499,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1701,8 +1710,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -3585,8 +3594,9 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4318,20 +4328,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4343,7 +4353,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4386,7 +4396,7 @@ snapshots: optionalDependencies: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) esbuild: 0.25.9 transitivePeerDependencies: - '@angular/compiler' @@ -4411,16 +4421,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4431,9 +4441,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4441,10 +4451,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4464,7 +4474,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -4476,7 +4486,7 @@ snapshots: optionalDependencies: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 @@ -4493,15 +4503,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -4518,7 +4528,7 @@ snapshots: - chokidar - supports-color - '@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': + '@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': dependencies: '@angular/common': link:in-existing-linked-by-bazel '@angular/core': link:in-existing-linked-by-bazel @@ -5652,7 +5662,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -5729,9 +5739,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -5797,51 +5805,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -5909,10 +5917,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -7912,27 +7920,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/cli-hello-world/package.json b/integration/cli-hello-world/package.json index 3d34ea960b30..710786c64733 100644 --- a/integration/cli-hello-world/package.json +++ b/integration/cli-hello-world/package.json @@ -18,15 +18,15 @@ "@angular/forms": "link:./in-existing-linked-by-bazel", "@angular/platform-browser": "link:./in-existing-linked-by-bazel", "@angular/router": "link:./in-existing-linked-by-bazel", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "rxjs": "^7.0.0", "tslib": "^2.3.0", "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/node": "^20.14.8", "ts-node": "^10.9.1", diff --git a/integration/cli-hello-world/pnpm-lock.yaml b/integration/cli-hello-world/pnpm-lock.yaml index 6fcd46cc7314..920a1bbd72b7 100644 --- a/integration/cli-hello-world/pnpm-lock.yaml +++ b/integration/cli-hello-world/pnpm-lock.yaml @@ -27,8 +27,8 @@ importers: specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + specifier: 20.3.3 + version: 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) rxjs: specifier: ^7.0.0 version: 7.8.2 @@ -40,14 +40,14 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -123,12 +123,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -137,7 +137,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -177,15 +177,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -193,12 +193,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -208,7 +208,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -243,13 +243,13 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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/ssr@20.3.2': - resolution: {integrity: sha512-IMSl4wUM1297HmAB+iT72hbku3mP7uswV/EoE87oK7txvQExSNEFtO/8NJbgBrdFOLhG0JH+axqfwZo1vfBJAA==} + '@angular/ssr@20.3.3': + resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} peerDependencies: '@angular/common': ^20.0.0 '@angular/core': ^20.0.0 @@ -1350,8 +1350,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1407,12 +1407,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1506,82 +1502,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1704,8 +1713,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -3588,8 +3597,9 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4321,20 +4331,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4346,7 +4356,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4389,7 +4399,7 @@ snapshots: optionalDependencies: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) esbuild: 0.25.9 transitivePeerDependencies: - '@angular/compiler' @@ -4414,16 +4424,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4434,9 +4444,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4444,10 +4454,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4467,7 +4477,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -4479,7 +4489,7 @@ snapshots: optionalDependencies: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 @@ -4496,15 +4506,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -4521,7 +4531,7 @@ snapshots: - chokidar - supports-color - '@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': + '@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': dependencies: '@angular/common': link:in-existing-linked-by-bazel '@angular/core': link:in-existing-linked-by-bazel @@ -5655,7 +5665,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -5732,9 +5742,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -5800,51 +5808,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -5912,10 +5920,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -7915,27 +7923,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/cli-signal-inputs/package.json b/integration/cli-signal-inputs/package.json index 1ccc6639996c..46b64a4bc9ed 100644 --- a/integration/cli-signal-inputs/package.json +++ b/integration/cli-signal-inputs/package.json @@ -25,8 +25,8 @@ "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/jasmine": "^5.0.0", "@types/jasminewd2": "^2.0.8", diff --git a/integration/cli-signal-inputs/pnpm-lock.yaml b/integration/cli-signal-inputs/pnpm-lock.yaml index 237a245511fd..457d00eff42a 100644 --- a/integration/cli-signal-inputs/pnpm-lock.yaml +++ b/integration/cli-signal-inputs/pnpm-lock.yaml @@ -40,11 +40,11 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -150,12 +150,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -164,7 +164,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -204,15 +204,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -220,12 +220,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -235,7 +235,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -270,8 +270,8 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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 @@ -1370,8 +1370,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1427,12 +1427,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1526,82 +1522,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1724,8 +1733,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -4115,8 +4124,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4998,20 +5008,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -5023,7 +5033,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -5092,16 +5102,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -5112,9 +5122,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -5122,10 +5132,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -5145,7 +5155,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -5174,15 +5184,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -6328,7 +6338,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -6405,9 +6415,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -6473,51 +6481,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -6585,10 +6593,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -9157,27 +9165,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/defer/package.json b/integration/defer/package.json index a8b309586696..eda423953763 100644 --- a/integration/defer/package.json +++ b/integration/defer/package.json @@ -23,9 +23,9 @@ "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "ts-node": "10.9.1", "typescript": "5.9.2" diff --git a/integration/defer/pnpm-lock.yaml b/integration/defer/pnpm-lock.yaml index d705daad64d7..d8d1e3c500be 100644 --- a/integration/defer/pnpm-lock.yaml +++ b/integration/defer/pnpm-lock.yaml @@ -37,14 +37,14 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@24.5.2)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@24.5.2)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -117,12 +117,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -131,7 +131,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -171,15 +171,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -187,12 +187,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -202,7 +202,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -237,8 +237,8 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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 @@ -1333,8 +1333,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1390,12 +1390,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1489,82 +1485,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1687,8 +1696,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -3571,8 +3580,9 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4304,20 +4314,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4329,7 +4339,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4396,16 +4406,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4416,9 +4426,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4426,10 +4436,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4449,7 +4459,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -4477,15 +4487,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@24.5.2)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@24.5.2)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@24.5.2) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.5.2))(@types/node@24.5.2)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -5629,7 +5639,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -5706,9 +5716,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -5774,51 +5782,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -5886,10 +5894,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -7889,27 +7897,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/legacy-animations-async/package.json b/integration/legacy-animations-async/package.json index e4255f39b3f5..7988ddf2c47e 100644 --- a/integration/legacy-animations-async/package.json +++ b/integration/legacy-animations-async/package.json @@ -23,8 +23,8 @@ "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/node": "^20.14.8", "ts-node": "^10.9.1", diff --git a/integration/legacy-animations-async/pnpm-lock.yaml b/integration/legacy-animations-async/pnpm-lock.yaml index 5102faf99f25..9bd71f76adbe 100644 --- a/integration/legacy-animations-async/pnpm-lock.yaml +++ b/integration/legacy-animations-async/pnpm-lock.yaml @@ -37,11 +37,11 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -117,12 +117,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -131,7 +131,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -171,15 +171,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -187,12 +187,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -202,7 +202,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -237,8 +237,8 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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 @@ -1333,8 +1333,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1390,12 +1390,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1489,82 +1485,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1687,8 +1696,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -3571,8 +3580,9 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4304,20 +4314,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4329,7 +4339,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4396,16 +4406,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4416,9 +4426,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4426,10 +4436,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4449,7 +4459,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -4477,15 +4487,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -5629,7 +5639,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -5706,9 +5716,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -5774,51 +5782,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -5886,10 +5894,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -7889,27 +7897,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/legacy-animations/package.json b/integration/legacy-animations/package.json index 185c2cb33f9a..fcac28d89267 100644 --- a/integration/legacy-animations/package.json +++ b/integration/legacy-animations/package.json @@ -23,8 +23,8 @@ "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@angular/language-service": "link:./in-existing-linked-by-bazel", "@types/jasmine": "^5.0.0", diff --git a/integration/legacy-animations/pnpm-lock.yaml b/integration/legacy-animations/pnpm-lock.yaml index 8d049b1a43cc..ad58b4533d79 100644 --- a/integration/legacy-animations/pnpm-lock.yaml +++ b/integration/legacy-animations/pnpm-lock.yaml @@ -37,11 +37,11 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -147,12 +147,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -161,7 +161,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -201,15 +201,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -217,12 +217,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -232,7 +232,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -267,8 +267,8 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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 @@ -1367,8 +1367,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1424,12 +1424,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1523,82 +1519,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1721,8 +1730,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -4086,8 +4095,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4965,20 +4975,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4990,7 +5000,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -5059,16 +5069,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -5079,9 +5089,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -5089,10 +5099,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -5112,7 +5122,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -5141,15 +5151,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -6295,7 +6305,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -6372,9 +6382,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -6440,51 +6448,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -6552,10 +6560,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -9087,27 +9095,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/ng-add-localize/package.json b/integration/ng-add-localize/package.json index 79cff225d94d..867b5bab883e 100644 --- a/integration/ng-add-localize/package.json +++ b/integration/ng-add-localize/package.json @@ -21,8 +21,8 @@ "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/node": "^20.14.8", "typescript": "5.9.2" diff --git a/integration/ng-add-localize/pnpm-lock.yaml b/integration/ng-add-localize/pnpm-lock.yaml index 40f09e92f556..32ee56840cf7 100644 --- a/integration/ng-add-localize/pnpm-lock.yaml +++ b/integration/ng-add-localize/pnpm-lock.yaml @@ -37,11 +37,11 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -114,12 +114,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -128,7 +128,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -168,15 +168,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -184,12 +184,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -199,7 +199,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -234,8 +234,8 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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 @@ -1323,8 +1323,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1380,12 +1380,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1479,82 +1475,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1677,8 +1686,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -3532,8 +3541,9 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4244,20 +4254,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4269,7 +4279,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4337,16 +4347,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4357,9 +4367,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4367,10 +4377,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/localize@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4390,7 +4400,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -4419,15 +4429,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -5562,7 +5572,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -5639,9 +5649,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -5707,51 +5715,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -5819,10 +5827,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -7802,27 +7810,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/platform-server-hydration/package.json b/integration/platform-server-hydration/package.json index 04853b2166e0..ad2139f8aafe 100644 --- a/integration/platform-server-hydration/package.json +++ b/integration/platform-server-hydration/package.json @@ -19,15 +19,15 @@ "@angular/platform-browser": "link:./in-existing-linked-by-bazel", "@angular/platform-server": "link:./in-existing-linked-by-bazel", "@angular/router": "link:./in-existing-linked-by-bazel", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "rxjs": "^7.0.0", "tslib": "^2.3.0", "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/jasmine": "^5.0.0", "@types/node": "^20.14.8", diff --git a/integration/platform-server-hydration/pnpm-lock.yaml b/integration/platform-server-hydration/pnpm-lock.yaml index 4cf94eb55f91..2578e69a2c24 100644 --- a/integration/platform-server-hydration/pnpm-lock.yaml +++ b/integration/platform-server-hydration/pnpm-lock.yaml @@ -30,8 +30,8 @@ importers: specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + specifier: 20.3.3 + version: 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) rxjs: specifier: ^7.0.0 version: 7.8.2 @@ -43,14 +43,14 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -144,12 +144,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -158,7 +158,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -198,15 +198,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -214,12 +214,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -229,7 +229,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -264,13 +264,13 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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/ssr@20.3.2': - resolution: {integrity: sha512-IMSl4wUM1297HmAB+iT72hbku3mP7uswV/EoE87oK7txvQExSNEFtO/8NJbgBrdFOLhG0JH+axqfwZo1vfBJAA==} + '@angular/ssr@20.3.3': + resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} peerDependencies: '@angular/common': ^20.0.0 '@angular/core': ^20.0.0 @@ -1371,8 +1371,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1428,12 +1428,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1527,82 +1523,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1725,8 +1734,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -3954,8 +3963,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4778,20 +4788,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4803,7 +4813,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4847,7 +4857,7 @@ snapshots: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel '@angular/platform-server': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) esbuild: 0.25.9 protractor: 7.0.0 transitivePeerDependencies: @@ -4873,16 +4883,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4893,9 +4903,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4903,10 +4913,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4926,7 +4936,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -4939,7 +4949,7 @@ snapshots: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel '@angular/platform-server': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 @@ -4956,15 +4966,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -4981,7 +4991,7 @@ snapshots: - chokidar - supports-color - '@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': + '@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': dependencies: '@angular/common': link:in-existing-linked-by-bazel '@angular/core': link:in-existing-linked-by-bazel @@ -6117,7 +6127,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -6194,9 +6204,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -6262,51 +6270,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -6374,10 +6382,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -8724,27 +8732,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/platform-server-zoneless/package.json b/integration/platform-server-zoneless/package.json index baca4cd83493..ff34ed6355d4 100644 --- a/integration/platform-server-zoneless/package.json +++ b/integration/platform-server-zoneless/package.json @@ -21,15 +21,15 @@ "@angular/platform-browser": "link:./in-existing-linked-by-bazel", "@angular/platform-server": "link:./in-existing-linked-by-bazel", "@angular/router": "link:./in-existing-linked-by-bazel", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "express": "~5.1.0", "rxjs": "^7.0.0", "tslib": "^2.3.0" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/express": "^5.0.3", "@types/jasmine": "^5.0.0", diff --git a/integration/platform-server-zoneless/pnpm-lock.yaml b/integration/platform-server-zoneless/pnpm-lock.yaml index 505151ebbbf6..5fa1564635d0 100644 --- a/integration/platform-server-zoneless/pnpm-lock.yaml +++ b/integration/platform-server-zoneless/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + specifier: 20.3.3 + version: 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) express: specifier: ~5.1.0 version: 5.1.0 @@ -46,14 +46,14 @@ importers: version: 2.8.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -153,12 +153,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -167,7 +167,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -207,15 +207,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -223,12 +223,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -238,7 +238,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -273,13 +273,13 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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/ssr@20.3.2': - resolution: {integrity: sha512-IMSl4wUM1297HmAB+iT72hbku3mP7uswV/EoE87oK7txvQExSNEFtO/8NJbgBrdFOLhG0JH+axqfwZo1vfBJAA==} + '@angular/ssr@20.3.3': + resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} peerDependencies: '@angular/common': ^20.0.0 '@angular/core': ^20.0.0 @@ -1380,8 +1380,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1437,12 +1437,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1536,82 +1532,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1734,8 +1743,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -4003,8 +4012,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4840,20 +4850,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4865,7 +4875,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4909,7 +4919,7 @@ snapshots: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel '@angular/platform-server': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) esbuild: 0.25.9 protractor: 7.0.0 transitivePeerDependencies: @@ -4935,16 +4945,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4955,9 +4965,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4965,10 +4975,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4988,7 +4998,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -5001,7 +5011,7 @@ snapshots: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel '@angular/platform-server': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 @@ -5018,15 +5028,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -5043,7 +5053,7 @@ snapshots: - chokidar - supports-color - '@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': + '@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': dependencies: '@angular/common': link:in-existing-linked-by-bazel '@angular/core': link:in-existing-linked-by-bazel @@ -6179,7 +6189,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -6256,9 +6266,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -6324,51 +6332,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -6436,10 +6444,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -6507,7 +6515,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.6 + '@types/express-serve-static-core': 5.0.7 '@types/node': 20.19.17 '@types/connect@3.4.38': @@ -8834,27 +8842,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/platform-server/package.json b/integration/platform-server/package.json index 3fd011f2f6cd..700986c1bc32 100644 --- a/integration/platform-server/package.json +++ b/integration/platform-server/package.json @@ -24,16 +24,16 @@ "@angular/platform-browser": "link:./in-existing-linked-by-bazel", "@angular/platform-server": "link:./in-existing-linked-by-bazel", "@angular/router": "link:./in-existing-linked-by-bazel", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "express": "~5.1.0", "rxjs": "^7.0.0", "tslib": "^2.3.0", "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/express": "^5.0.3", "@types/jasmine": "^5.0.0", diff --git a/integration/platform-server/pnpm-lock.yaml b/integration/platform-server/pnpm-lock.yaml index dd5a30b778c4..db9541d9a1b3 100644 --- a/integration/platform-server/pnpm-lock.yaml +++ b/integration/platform-server/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + specifier: 20.3.3 + version: 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) express: specifier: ~5.1.0 version: 5.1.0 @@ -49,14 +49,14 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -156,12 +156,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -170,7 +170,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -210,15 +210,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -226,12 +226,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -241,7 +241,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -276,13 +276,13 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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/ssr@20.3.2': - resolution: {integrity: sha512-IMSl4wUM1297HmAB+iT72hbku3mP7uswV/EoE87oK7txvQExSNEFtO/8NJbgBrdFOLhG0JH+axqfwZo1vfBJAA==} + '@angular/ssr@20.3.3': + resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} peerDependencies: '@angular/common': ^20.0.0 '@angular/core': ^20.0.0 @@ -1383,8 +1383,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1440,12 +1440,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1539,82 +1535,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1737,8 +1746,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -4006,8 +4015,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4846,20 +4856,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(protractor@7.0.0)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4871,7 +4881,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4915,7 +4925,7 @@ snapshots: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel '@angular/platform-server': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) esbuild: 0.25.9 protractor: 7.0.0 transitivePeerDependencies: @@ -4941,16 +4951,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4961,9 +4971,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4971,10 +4981,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4994,7 +5004,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -5007,7 +5017,7 @@ snapshots: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel '@angular/platform-server': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 @@ -5024,15 +5034,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -5049,7 +5059,7 @@ snapshots: - chokidar - supports-color - '@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': + '@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-server@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': dependencies: '@angular/common': link:in-existing-linked-by-bazel '@angular/core': link:in-existing-linked-by-bazel @@ -6185,7 +6195,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -6262,9 +6272,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -6330,51 +6338,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -6442,10 +6450,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -6513,7 +6521,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.6 + '@types/express-serve-static-core': 5.0.7 '@types/node': 20.19.17 '@types/connect@3.4.38': @@ -8840,27 +8848,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/standalone-bootstrap/package.json b/integration/standalone-bootstrap/package.json index 2763c094cf26..99082b93e785 100644 --- a/integration/standalone-bootstrap/package.json +++ b/integration/standalone-bootstrap/package.json @@ -17,15 +17,15 @@ "@angular/core": "link:./in-existing-linked-by-bazel", "@angular/platform-browser": "link:./in-existing-linked-by-bazel", "@angular/router": "link:./in-existing-linked-by-bazel", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "rxjs": "^7.0.0", "tslib": "^2.3.0", "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/node": "^20.14.8", "ts-node": "^10.9.1", diff --git a/integration/standalone-bootstrap/pnpm-lock.yaml b/integration/standalone-bootstrap/pnpm-lock.yaml index a1c1798553cc..7b72c4b5a4cd 100644 --- a/integration/standalone-bootstrap/pnpm-lock.yaml +++ b/integration/standalone-bootstrap/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + specifier: 20.3.3 + version: 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) rxjs: specifier: ^7.0.0 version: 7.8.2 @@ -37,14 +37,14 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -120,12 +120,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -134,7 +134,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -174,15 +174,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -190,12 +190,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -205,7 +205,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -240,13 +240,13 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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/ssr@20.3.2': - resolution: {integrity: sha512-IMSl4wUM1297HmAB+iT72hbku3mP7uswV/EoE87oK7txvQExSNEFtO/8NJbgBrdFOLhG0JH+axqfwZo1vfBJAA==} + '@angular/ssr@20.3.3': + resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} peerDependencies: '@angular/common': ^20.0.0 '@angular/core': ^20.0.0 @@ -1347,8 +1347,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1404,12 +1404,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1503,82 +1499,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1701,8 +1710,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -3585,8 +3594,9 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -4318,20 +4328,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -4343,7 +4353,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -4386,7 +4396,7 @@ snapshots: optionalDependencies: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) esbuild: 0.25.9 transitivePeerDependencies: - '@angular/compiler' @@ -4411,16 +4421,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4431,9 +4441,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -4441,10 +4451,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -4464,7 +4474,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -4476,7 +4486,7 @@ snapshots: optionalDependencies: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 @@ -4493,15 +4503,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -4518,7 +4528,7 @@ snapshots: - chokidar - supports-color - '@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': + '@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': dependencies: '@angular/common': link:in-existing-linked-by-bazel '@angular/core': link:in-existing-linked-by-bazel @@ -5652,7 +5662,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -5729,9 +5739,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -5797,51 +5805,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -5909,10 +5917,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -7912,27 +7920,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/integration/trusted-types/package.json b/integration/trusted-types/package.json index 0b912803031a..83b8f7f0a680 100644 --- a/integration/trusted-types/package.json +++ b/integration/trusted-types/package.json @@ -19,15 +19,15 @@ "@angular/forms": "link:./in-existing-linked-by-bazel", "@angular/platform-browser": "link:./in-existing-linked-by-bazel", "@angular/router": "link:./in-existing-linked-by-bazel", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "rxjs": "^7.0.0", "tslib": "^2.3.0", "zone.js": "0.15.1" }, "devDependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular/build": "20.3.2", - "@angular/cli": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular/build": "20.3.3", + "@angular/cli": "20.3.3", "@angular/compiler-cli": "link:./in-existing-linked-by-bazel", "@types/jasmine": "^5.0.0", "@types/node": "^20.14.8", diff --git a/integration/trusted-types/pnpm-lock.yaml b/integration/trusted-types/pnpm-lock.yaml index f0c2828fcfd4..d5ed8ca25362 100644 --- a/integration/trusted-types/pnpm-lock.yaml +++ b/integration/trusted-types/pnpm-lock.yaml @@ -30,8 +30,8 @@ importers: specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + specifier: 20.3.3 + version: 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) rxjs: specifier: ^7.0.0 version: 7.8.2 @@ -43,14 +43,14 @@ importers: version: 0.15.1 devDependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2) '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + specifier: 20.3.3 + version: 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@20.19.17)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@20.19.17)(chokidar@4.0.3) '@angular/compiler-cli': specifier: link:./in-existing-linked-by-bazel version: link:in-existing-linked-by-bazel @@ -153,12 +153,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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 @@ -167,7 +167,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -207,15 +207,15 @@ packages: tailwindcss: optional: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -223,12 +223,12 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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 @@ -238,7 +238,7 @@ packages: '@angular/platform-browser': ^20.0.0 '@angular/platform-server': ^20.0.0 '@angular/service-worker': ^20.0.0 - '@angular/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -273,13 +273,13 @@ packages: vitest: optional: true - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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/ssr@20.3.2': - resolution: {integrity: sha512-IMSl4wUM1297HmAB+iT72hbku3mP7uswV/EoE87oK7txvQExSNEFtO/8NJbgBrdFOLhG0JH+axqfwZo1vfBJAA==} + '@angular/ssr@20.3.3': + resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} peerDependencies: '@angular/common': ^20.0.0 '@angular/core': ^20.0.0 @@ -1391,8 +1391,8 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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 @@ -1448,12 +1448,8 @@ packages: resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -1547,82 +1543,95 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/rollup-android-arm-eabi@4.52.0': resolution: {integrity: sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==} @@ -1745,8 +1754,8 @@ packages: cpu: [x64] os: [win32] - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@sigstore/bundle@3.1.0': @@ -4134,8 +4143,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + rolldown@1.0.0-beta.38: + resolution: {integrity: sha512-58frPNX55Je1YsyrtPJv9rOSR3G5efUZpRqok94Efsj0EUa8dnqJV3BldShyI7A+bVPleucOtzXHwVpJRcR0kQ==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup@4.52.0: @@ -5017,20 +5027,20 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2)': + '@angular-devkit/build-angular@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(protractor@7.0.0)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) + '@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(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9)) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular/build': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2) '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 '@babel/generator': 7.28.3 @@ -5042,7 +5052,7 @@ 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.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(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)) @@ -5085,7 +5095,7 @@ snapshots: optionalDependencies: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) esbuild: 0.25.9 karma: 6.4.4 protractor: 7.0.0 @@ -5112,16 +5122,16 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.2(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': + '@angular-devkit/build-webpack@0.2003.3(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2(esbuild@0.25.9))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) webpack-dev-server: 5.2.2(webpack@5.101.2) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -5132,9 +5142,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -5142,10 +5152,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': + '@angular/build@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(@angular/compiler@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/platform-browser@in-existing-linked-by-bazel)(@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel))(@types/node@20.19.17)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(typescript@5.9.2)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:in-existing-linked-by-bazel '@angular/compiler-cli': link:in-existing-linked-by-bazel '@babel/core': 7.28.3 @@ -5165,7 +5175,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -5177,7 +5187,7 @@ snapshots: optionalDependencies: '@angular/core': link:in-existing-linked-by-bazel '@angular/platform-browser': link:in-existing-linked-by-bazel - '@angular/ssr': 20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) + '@angular/ssr': 20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel) karma: 6.4.4 less: 4.4.0 lmdb: 3.4.2 @@ -5195,15 +5205,15 @@ snapshots: - tsx - yaml - '@angular/cli@20.3.2(@types/node@20.19.17)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@20.19.17)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@20.19.17) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@20.19.17))(@types/node@20.19.17)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -5220,7 +5230,7 @@ snapshots: - chokidar - supports-color - '@angular/ssr@20.3.2(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': + '@angular/ssr@20.3.3(@angular/common@in-existing-linked-by-bazel)(@angular/core@in-existing-linked-by-bazel)(@angular/router@in-existing-linked-by-bazel)': dependencies: '@angular/common': link:in-existing-linked-by-bazel '@angular/core': link:in-existing-linked-by-bazel @@ -6390,7 +6400,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@ngtools/webpack@20.3.2(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(@angular/compiler-cli@in-existing-linked-by-bazel)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:in-existing-linked-by-bazel typescript: 5.9.2 @@ -6467,9 +6477,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -6535,51 +6543,51 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/rollup-android-arm-eabi@4.52.0': optional: true @@ -6647,10 +6655,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.0': optional: true - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -8234,7 +8242,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.4 '@babel/parser': 7.28.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -9224,27 +9232,26 @@ snapshots: dependencies: glob: 7.2.3 - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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@4.52.0: dependencies: diff --git a/modules/package.json b/modules/package.json index 74f8066f3847..fc0c32b047ce 100644 --- a/modules/package.json +++ b/modules/package.json @@ -2,7 +2,7 @@ "dependencies": { "@angular/animations": "workspace:*", "@angular/benchpress": "workspace:*", - "@angular/build": "20.3.2", + "@angular/build": "20.3.3", "@angular/common": "workspace:*", "@angular/compiler": "workspace:*", "@angular/compiler-cli": "workspace:*", diff --git a/package.json b/package.json index 690c1bb853c5..334befc18b6e 100644 --- a/package.json +++ b/package.json @@ -49,14 +49,14 @@ }, "// 1": "dependencies are used locally and by bazel", "dependencies": { - "@angular-devkit/build-angular": "20.3.2", - "@angular-devkit/core": "20.3.2", - "@angular-devkit/schematics": "20.3.2", + "@angular-devkit/build-angular": "20.3.3", + "@angular-devkit/core": "20.3.3", + "@angular-devkit/schematics": "20.3.3", "@angular/animations": "workspace:*", "@angular/benchpress": "workspace: *", - "@angular/build": "20.3.2", - "@angular/cdk": "20.2.4", - "@angular/cli": "20.3.2", + "@angular/build": "20.3.3", + "@angular/cdk": "20.2.5", + "@angular/cli": "20.3.3", "@angular/common": "workspace:*", "@angular/compiler": "workspace:*", "@angular/compiler-cli": "workspace:*", @@ -65,13 +65,13 @@ "@angular/forms": "workspace:*", "@angular/language-service": "workspace: *", "@angular/localize": "workspace: *", - "@angular/material": "20.2.4", + "@angular/material": "20.2.5", "@angular/platform-browser": "workspace:*", "@angular/platform-browser-dynamic": "workspace:*", "@angular/platform-server": "workspace:*", "@angular/router": "workspace:*", "@angular/service-worker": "workspace:*", - "@angular/ssr": "20.3.2", + "@angular/ssr": "20.3.3", "@angular/upgrade": "workspace: *", "@babel/cli": "7.28.3", "@babel/core": "7.28.3", @@ -81,7 +81,7 @@ "@rollup/plugin-babel": "^6.0.0", "@rollup/plugin-commonjs": "^28.0.0", "@rollup/plugin-node-resolve": "^16.0.0", - "@schematics/angular": "20.3.2", + "@schematics/angular": "20.3.3", "@types/angular": "^1.6.47", "@types/babel__core": "7.20.5", "@types/babel__generator": "7.27.0", @@ -167,7 +167,7 @@ "devDependencies": { "@actions/core": "^1.10.0", "@actions/github": "^6.0.0", - "@angular-devkit/architect-cli": "0.2003.2", + "@angular-devkit/architect-cli": "0.2003.3", "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#388e486d3909cd065e26c368d4e465dfae76a156", "@babel/plugin-proposal-async-generator-functions": "7.20.7", "@babel/plugin-transform-async-generator-functions": "^7.27.1", diff --git a/packages/core/test/bundling/package.json b/packages/core/test/bundling/package.json index f794254722c5..36ef8b9a754b 100644 --- a/packages/core/test/bundling/package.json +++ b/packages/core/test/bundling/package.json @@ -1,7 +1,7 @@ { "dependencies": { "@angular/animations": "workspace:*", - "@angular/build": "20.3.2", + "@angular/build": "20.3.3", "@angular/common": "workspace:*", "@angular/compiler-cli": "workspace:*", "@angular/compiler": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a69ac7ea72a8..594b41137410 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,14 +22,14 @@ importers: .: dependencies: '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/ssr@20.3.2)(@types/node@18.19.127)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + specifier: 20.3.3 + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@18.19.127)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) '@angular-devkit/core': - specifier: 20.3.2 - version: 20.3.2(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(chokidar@4.0.3) '@angular-devkit/schematics': - specifier: 20.3.2 - version: 20.3.2(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(chokidar@4.0.3) '@angular/animations': specifier: workspace:* version: link:packages/animations @@ -37,14 +37,14 @@ importers: specifier: 'workspace: *' version: link:packages/benchpress '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/ssr@20.3.2)(@types/node@18.19.127)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + specifier: 20.3.3 + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@18.19.127)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) '@angular/cdk': - specifier: 20.2.4 - version: 20.2.4(rxjs@7.8.2) + specifier: 20.2.5 + version: 20.2.5(rxjs@7.8.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@18.19.127)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@18.19.127)(chokidar@4.0.3) '@angular/common': specifier: workspace:* version: link:packages/common @@ -70,8 +70,8 @@ importers: specifier: 'workspace: *' version: link:packages/localize '@angular/material': - specifier: 20.2.4 - version: 20.2.4(@angular/cdk@20.2.4(rxjs@7.8.2))(rxjs@7.8.2) + specifier: 20.2.5 + version: 20.2.5(@angular/cdk@20.2.5(rxjs@7.8.2))(rxjs@7.8.2) '@angular/platform-browser': specifier: workspace:* version: link:packages/platform-browser @@ -88,8 +88,8 @@ importers: specifier: workspace:* version: link:packages/service-worker '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@angular/upgrade': specifier: 'workspace: *' version: link:packages/upgrade @@ -118,8 +118,8 @@ importers: specifier: ^16.0.0 version: 16.0.1(rollup@4.46.4) '@schematics/angular': - specifier: 20.3.2 - version: 20.3.2(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(chokidar@4.0.3) '@types/angular': specifier: ^1.6.47 version: 1.8.9 @@ -272,7 +272,7 @@ importers: version: 0.1.1 ngx-progressbar: specifier: ^14.0.0 - version: 14.0.0(@angular/cdk@20.2.4(rxjs@7.8.2))(rxjs@7.8.2) + version: 14.0.0(@angular/cdk@20.2.5(rxjs@7.8.2))(rxjs@7.8.2) open-in-idx: specifier: ^0.1.1 version: 0.1.1 @@ -368,8 +368,8 @@ importers: specifier: ^6.0.0 version: 6.0.1 '@angular-devkit/architect-cli': - specifier: 0.2003.2 - version: 0.2003.2(chokidar@4.0.3) + specifier: 0.2003.3 + version: 0.2003.3(chokidar@4.0.3) '@angular/ng-dev': specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#388e486d3909cd065e26c368d4e465dfae76a156 version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156(@modelcontextprotocol/sdk@1.18.1) @@ -527,20 +527,20 @@ importers: specifier: 5.35.0 version: 5.35.0 '@angular-devkit/build-angular': - specifier: 20.3.2 - version: 20.3.2(@angular/ssr@20.3.2)(@types/node@24.3.0)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(utf-8-validate@6.0.5)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + specifier: 20.3.3 + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(utf-8-validate@6.0.5)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) '@angular/animations': specifier: workspace:* version: link:../packages/animations '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/ssr@20.3.2)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + specifier: 20.3.3 + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) '@angular/cdk': - specifier: 20.2.4 - version: 20.2.4(rxjs@7.8.2) + specifier: 20.2.5 + version: 20.2.5(rxjs@7.8.2) '@angular/cli': - specifier: 20.3.2 - version: 20.3.2(@types/node@24.3.0)(chokidar@4.0.3) + specifier: 20.3.3 + version: 20.3.3(@types/node@24.3.0)(chokidar@4.0.3) '@angular/common': specifier: workspace:* version: link:../packages/common @@ -560,8 +560,8 @@ importers: specifier: workspace:* version: link:../packages/forms '@angular/material': - specifier: 20.2.4 - version: 20.2.4(@angular/cdk@20.2.4(rxjs@7.8.2))(rxjs@7.8.2) + specifier: 20.2.5 + version: 20.2.5(@angular/cdk@20.2.5(rxjs@7.8.2))(rxjs@7.8.2) '@angular/platform-browser': specifier: workspace:* version: link:../packages/platform-browser @@ -572,8 +572,8 @@ importers: specifier: workspace:* version: link:../packages/router '@angular/ssr': - specifier: 20.3.2 - version: 20.3.2 + specifier: 20.3.3 + version: 20.3.3 '@codemirror/autocomplete': specifier: 6.18.6 version: 6.18.6 @@ -708,7 +708,7 @@ importers: version: 11.10.0 ngx-progressbar: specifier: 14.0.0 - version: 14.0.0(@angular/cdk@20.2.4(rxjs@7.8.2))(rxjs@7.8.2) + version: 14.0.0(@angular/cdk@20.2.5(rxjs@7.8.2))(rxjs@7.8.2) open-in-idx: specifier: 0.1.1 version: 0.1.1 @@ -869,8 +869,8 @@ importers: specifier: workspace:* version: link:../packages/benchpress '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/ssr@20.3.2)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + specifier: 20.3.3 + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) '@angular/common': specifier: workspace:* version: link:../packages/common @@ -1040,8 +1040,8 @@ importers: specifier: workspace:* version: link:../../../animations '@angular/build': - specifier: 20.3.2 - version: 20.3.2(@angular/ssr@20.3.2)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + specifier: 20.3.3 + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) '@angular/common': specifier: workspace:* version: link:../../../common @@ -1393,20 +1393,20 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@angular-devkit/architect-cli@0.2003.2': - resolution: {integrity: sha512-+cOFC+XHFXo2locpf33qWfhlSqiNMLE0OR7lnpG0uy1qFXloturENEcGSxbEuM3H9qaVcUqze4n8xfexq+G0Iw==} + '@angular-devkit/architect-cli@0.2003.3': + resolution: {integrity: sha512-8pY63XsKdANrLxiyiD/voBaiPY/OOAzXLEKJjnS9BDk1/yQR4HIBhd+lESu92yEyggkuOplqdz3CJKksckbJ7g==} 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-devkit/architect@0.2003.2': - resolution: {integrity: sha512-3QFQlSg92lz+Zid1CGcnYVuPo0RIyq+TEbaJUQmi7K9Ms0VxVNMIwTNIN3SI6QThD0Bg3sVRtsHWw84qoMwjKA==} + '@angular-devkit/architect@0.2003.3': + resolution: {integrity: sha512-DOnGyv9g24vaDzf5koLOcVri1kYJIBD9UKiJWOWk4H5cFlcpTXQ+PilPmDq6A+X94Tt4MZHImmKsk6LLRPIwFg==} 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.2': - resolution: {integrity: sha512-DMNyW17Z4a7zyew9YJrNcNnKSbgFBc+EsFSa05dH5oLvcwtGQood35AzhncXpsUqO16NQBfWuUscuf2WrvG1iA==} + '@angular-devkit/build-angular@20.3.3': + resolution: {integrity: sha512-DdzWJ4m+x4jYIvqeDF1Mbt5i9iR7qJ9BT3oTa8ycc5bNGMEz0HAf0J7ZTKQFg5USSz6MC/pWrH/gu9D5RMTwnQ==} 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/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 '@web/test-runner': ^0.20.0 browser-sync: ^3.0.2 jest: ^29.5.0 @@ -1441,15 +1441,15 @@ packages: engines: {node: '>= 8.9.0', npm: '>= 5.5.1'} hasBin: true - '@angular-devkit/build-webpack@0.2003.2': - resolution: {integrity: sha512-cipoxofI4HdKk9lAqPloPrp/HEV3ME3fIKSmckUsmPcJzy62YdXkkFv6zE4EENUPNP5d8SoSpZ5FPW+wNMV+yg==} + '@angular-devkit/build-webpack@0.2003.3': + resolution: {integrity: sha512-tFs9SZ5AjBjx1B34fNMhtLBRLaYbbjQb4ZLRo0n6PcaBU/O8Gfy1RDBJO5ihiAtr6f+noeudXxOFYYalK2KJDA==} 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.2': - resolution: {integrity: sha512-MsYPu/WaHQInCxLRfX3vOaf4uedvwX5yI29X/tQpD59/gI5Yq4YMDT48ntryZHclRuQ9x4vdm2Gp9e/LcP0ydw==} + '@angular-devkit/core@20.3.3': + resolution: {integrity: sha512-2T5mX2duLapZYPYmXUSUe9VW8Dhu10nVBVvEp31jSE6xvjbPM5mlsv6+fks1E4RjhzvaamY9bm3WgwYwNiEV5g==} 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 @@ -1457,15 +1457,15 @@ packages: chokidar: optional: true - '@angular-devkit/schematics@20.3.2': - resolution: {integrity: sha512-CHHq2qWgHNi3fkhBMpSxVSrST2mBN31QfZpvKFp1sWvtJDN7sRHlvLCML81+KplVd8aWkbQqeAG73dgRDPbSBw==} + '@angular-devkit/schematics@20.3.3': + resolution: {integrity: sha512-LDn39BjyQLAK/DaVamLElMtI0UoCZIs4jKcMEv8PJ/nnBmrYFHVavWPggeFWMycjeXsdX34Msiml88HZWlXypw==} 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/build@20.3.2': - resolution: {integrity: sha512-PiyvOvNtNM9p2YdCgNHTCqF7Fnyq5ug45Zhv7m6yRgin5VcDuSF/Mv2x7AY3HiN+w89Oxozvm13cSanzrw7acA==} + '@angular/build@20.3.3': + resolution: {integrity: sha512-WhwAbovHAxDbNeR5jB2IS/SVs+yQg9NETFeJ5f7T3n/414ULkGOhXn+29i1rzwJhf1uqM9lsedcv2tKn1N24/A==} 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/ssr': ^20.3.2 + '@angular/ssr': ^20.3.3 karma: ^6.4.0 less: ^4.2.0 ng-packagr: ^20.0.0 @@ -1490,13 +1490,13 @@ packages: vitest: optional: true - '@angular/cdk@20.2.4': - resolution: {integrity: sha512-5UzrN854pnQH+Qw6XZRxx2zWkcOxKrzWPLXe+gHFxFhxWUZfJKGcTJeAj8bnmyb+C3lqBbGpoNQPQ8pFXQGEaQ==} + '@angular/cdk@20.2.5': + resolution: {integrity: sha512-1cpR/5jeKXLR1D+PsEvRn0QhSWD3/AjtbugJF5nlx/7L90YXhNFCmNAxAkdFKSn4YIDoPwMHgvOpS7yb51wohQ==} peerDependencies: rxjs: ^6.5.3 || ^7.4.0 - '@angular/cli@20.3.2': - resolution: {integrity: sha512-5R+f11IbGkNGXTwTfVbhQXCh/jdQxlmdK11P3yoqhj2OcBM+GY8ALCyf0vyoOxocxt7NAJUq4fIpT9W2YhTVLQ==} + '@angular/cli@20.3.3': + resolution: {integrity: sha512-3c8xCklJ0C0T6ETSncAoXlOYNi3x7vLT3PS56rIaQ0jtlvD4Y+RQakd3+iffVAapvh/JB27WNor8pJRThLZ/jg==} 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 @@ -1508,10 +1508,10 @@ packages: resolution: {tarball: https://codeload.github.com/angular/domino/tar.gz/93e720f143d0296dd2726ffbcf4fc12283363a7b} version: 2.1.6 - '@angular/material@20.2.4': - resolution: {integrity: sha512-B1XUOL9TbBDQZpH3j2C6hEpwdokvvmoeaOI7aMTpXrNzomyXHTWZWrMybq30trB7sE7cNze1DQRiOuDXsLgnTw==} + '@angular/material@20.2.5': + resolution: {integrity: sha512-zgmHqPykH3InEsVmNSpcVicXLWcYKHIt9Nv/J86K3NZDw4/IQgpfujnr7IotLwc9VpgI4Cl7Jbo95tFVFQAYmw==} peerDependencies: - '@angular/cdk': 20.2.4 + '@angular/cdk': 20.2.5 rxjs: ^6.5.3 || ^7.4.0 '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156': @@ -1519,8 +1519,8 @@ packages: version: 0.0.0-08d451f9b4e900928b65cd31234693ef9a994492 hasBin: true - '@angular/ssr@20.3.2': - resolution: {integrity: sha512-IMSl4wUM1297HmAB+iT72hbku3mP7uswV/EoE87oK7txvQExSNEFtO/8NJbgBrdFOLhG0JH+axqfwZo1vfBJAA==} + '@angular/ssr@20.3.3': + resolution: {integrity: sha512-DdwpwfNcoiaiaPvcm3aL+k24JWB0OOTq8/oM8HY4gAZbGNTnn8n1gTbTq3qjLt8zFtCWWqVU0+ejBgHIEvmDOw==} '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} @@ -3373,8 +3373,8 @@ packages: '@nginfra/angular-linking@1.0.10': resolution: {integrity: sha512-31zx+PCN8tBlC0FYUuCxS4uVPJLAlBhi4UVp6QgoQG44RsOHKTmcRORMVSJdPLRgRuCJkY45kj+PE3AxsgiUKA==} - '@ngtools/webpack@20.3.2': - resolution: {integrity: sha512-i5sbPfhQI6suMF+02KV3PzLBITlXZhiEKPjnQHUK/kCRc+tV+WQidxaO/UTkgSzqhzWGVHkmtE1Sau08K5Wi+A==} + '@ngtools/webpack@20.3.3': + resolution: {integrity: sha512-fVvLhT2wQnydn8JbMHSF+9VLZHL3iOO9vND2OZ6aUWIUJ0IHFqfCyrEvFh6eCtRuCIf2MyTuFXRP4PDAfMO2mw==} 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: typescript: '>=5.8 <6.0' @@ -3598,12 +3598,8 @@ packages: resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==} engines: {node: '>=14'} - '@oxc-project/runtime@0.81.0': - resolution: {integrity: sha512-zm/LDVOq9FEmHiuM8zO4DWirv0VP2Tv2VsgaiHby9nvpq+FVrcqNYgv+TysLKOITQXWZj/roluTxFvpkHP0Iuw==} - engines: {node: '>=6.9.0'} - - '@oxc-project/types@0.81.0': - resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@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==} @@ -3768,82 +3764,95 @@ packages: engines: {node: '>=18'} hasBin: true - '@rolldown/binding-android-arm64@1.0.0-beta.32': - resolution: {integrity: sha512-Gs+313LfR4Ka3hvifdag9r44WrdKQaohya7ZXUXzARF7yx0atzFlVZjsvxtKAw1Vmtr4hB/RjUD1jf73SW7zDw==} + '@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.32': - resolution: {integrity: sha512-W8oMqzGcI7wKPXUtS3WJNXzbghHfNiuM1UBAGpVb+XlUCgYRQJd2PRGP7D3WGql3rR3QEhUvSyAuCBAftPQw6Q==} + '@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.32': - resolution: {integrity: sha512-pM4c4sKUk37noJrnnDkJknLhCsfZu7aWyfe67bD0GQHfzAPjV16wPeD9CmQg4/0vv+5IfHYaa4VE536xbA+W0Q==} + '@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.32': - resolution: {integrity: sha512-M8SUgFlYb5kJJWcFC8gUMRiX4WLFxPKMed3SJ2YrxontgIrEcpizPU8nLNVsRYEStoSfKHKExpQw3OP6fm+5bw==} + '@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.32': - resolution: {integrity: sha512-FuQpbNC/hE//bvv29PFnk0AtpJzdPdYl5CMhlWPovd9g3Kc3lw9TrEPIbL7gRPUdhKAiq6rVaaGvOnXxsa0eww==} + '@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.32': - resolution: {integrity: sha512-hRZygRlaGCjcNTNY9GV7dDI18sG1dK3cc7ujHq72LoDad23zFDUGMQjiSxHWK+/r92iMV+j2MiHbvzayxqynsg==} + '@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.32': - resolution: {integrity: sha512-HzgT6h+CXLs+GKAU0Wvkt3rvcv0CmDBsDjlPhh4GHysOKbG9NjpKYX2zvjx671E9pGbTvcPpwy7gGsy7xpu+8g==} + '@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.32': - resolution: {integrity: sha512-Ab/wbf6gdzphDbsg51UaxsC93foQ7wxhtg0SVCXd25BrV4MAJ1HoDtKN/f4h0maFmJobkqYub2DlmoasUzkvBg==} + '@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.32': - resolution: {integrity: sha512-VoxqGEfh5A1Yx+zBp/FR5QwAbtzbuvky2SVc+ii4g1gLD4zww6mt/hPi5zG+b88zYPFBKHpxMtsz9cWqXU5V5Q==} + '@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.32': - resolution: {integrity: sha512-qZ1ViyOUDGbiZrSAJ/FIAhYUElDfVxxFW6DLT/w4KeoZN3HsF4jmRP95mXtl51/oGrqzU9l9Q2f7/P4O/o2ZZA==} + '@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.32': - resolution: {integrity: sha512-hEkG3wD+f3wytV0lqwb/uCrXc4r4Ny/DWJFJPfQR3VeMWplhWGgSHNwZc2Q7k86Yi36f9NNzzWmrIuvHI9lCVw==} + '@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.32': - resolution: {integrity: sha512-k3MvDf8SiA7uP2ikP0unNouJ2YCrnwi7xcVW+RDgMp5YXVr3Xu6svmT3HGn0tkCKUuPmf+uy8I5uiHt5qWQbew==} + '@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.32': - resolution: {integrity: sha512-wAi/FxGh7arDOUG45UmnXE1sZUa0hY4cXAO2qWAjFa3f7bTgz/BqwJ7XN5SUezvAJPNkME4fEpInfnBvM25a0w==} + '@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.32': - resolution: {integrity: sha512-Ej0i4PZk8ltblZtzVK8ouaGUacUtxRmTm5S9794mdyU/tYxXjAJNseOfxrnHpMWKjMDrOKbqkPqJ52T9NR4LQQ==} + '@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.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} '@rollup/plugin-babel@6.0.4': resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==} @@ -4033,8 +4042,8 @@ packages: '@rushstack/ts-command-line@5.0.3': resolution: {integrity: sha512-bgPhQEqLVv/2hwKLYv/XvsTWNZ9B/+X1zJ7WgQE9rO5oiLzrOZvkIW4pk13yOQBhHyjcND5qMOa6p83t+Z66iQ==} - '@schematics/angular@20.3.2': - resolution: {integrity: sha512-bd23C6Map7Rfrryc8pZuyPPG8yQLCH863ISo32ARVwiAmBFgjfyNwqC5FsuqHWrYlTzZDzZUk5CjKp1SXxqqxg==} + '@schematics/angular@20.3.3': + resolution: {integrity: sha512-lqIP1pNKp8yaqd663R3graZWaTBjXH+Cl72BQl1Ghl7lFGReZJALr4GiSMiBR9r30Epklcw5TwOSi+Bs4UKmbw==} 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'} '@shikijs/core@3.11.0': @@ -10344,8 +10353,9 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - rolldown@1.0.0-beta.32: - resolution: {integrity: sha512-vxI2sPN07MMaoYKlFrVva5qZ1Y7DAZkgp7MQwTnyHt4FUMz9Sh+YeCzNFV9JYHI6ZNwoGWLCfCViE3XVsRC1cg==} + 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.3: @@ -12441,30 +12451,30 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect-cli@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect-cli@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) ansi-colors: 4.1.3 progress: 2.0.3 yargs-parser: 22.0.0 transitivePeerDependencies: - chokidar - '@angular-devkit/architect@0.2003.2(chokidar@4.0.3)': + '@angular-devkit/architect@0.2003.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@20.3.2(@angular/ssr@20.3.2)(@types/node@18.19.127)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular-devkit/build-angular@20.3.3(@angular/ssr@20.3.3)(@types/node@18.19.127)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(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.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/ssr@20.3.2)(@types/node@18.19.127)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + '@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(@angular/ssr@20.3.3)(@types/node@18.19.127)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) '@angular/compiler-cli': link:packages/compiler-cli '@angular/core': link:packages/core '@angular/localize': link:packages/localize @@ -12481,7 +12491,7 @@ 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.2(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(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)) @@ -12522,7 +12532,7 @@ snapshots: webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.101.2(esbuild@0.25.9)) optionalDependencies: - '@angular/ssr': 20.3.2 + '@angular/ssr': 20.3.3 esbuild: 0.25.9 karma: 6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) protractor: 7.0.0 @@ -12548,13 +12558,13 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@20.3.2(@angular/ssr@20.3.2)(@types/node@24.3.0)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(utf-8-validate@6.0.5)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular-devkit/build-angular@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(utf-8-validate@6.0.5)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.2(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.2(chokidar@4.0.3) - '@angular/build': 20.3.2(@angular/ssr@20.3.2)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + '@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(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) '@angular/compiler-cli': link:packages/compiler-cli '@angular/core': link:packages/core '@angular/localize': link:packages/localize @@ -12571,7 +12581,7 @@ 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.2(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) + '@ngtools/webpack': 20.3.3(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)) @@ -12612,7 +12622,7 @@ snapshots: webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.101.2(esbuild@0.25.9)) optionalDependencies: - '@angular/ssr': 20.3.2 + '@angular/ssr': 20.3.3 esbuild: 0.25.9 karma: 6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) protractor: 7.0.0 @@ -12645,16 +12655,16 @@ snapshots: typescript: 3.2.4 webpack-sources: 1.3.0 - '@angular-devkit/build-webpack@0.2003.2(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.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))': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(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)(utf-8-validate@6.0.5)(webpack@5.101.2(esbuild@0.25.9)) transitivePeerDependencies: - chokidar - '@angular-devkit/core@20.3.2(chokidar@4.0.3)': + '@angular-devkit/core@20.3.3(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1 @@ -12665,9 +12675,9 @@ snapshots: optionalDependencies: chokidar: 4.0.3 - '@angular-devkit/schematics@20.3.2(chokidar@4.0.3)': + '@angular-devkit/schematics@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 8.2.0 @@ -12675,10 +12685,10 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@20.3.2(@angular/ssr@20.3.2)(@types/node@18.19.127)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@18.19.127)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:packages/compiler '@angular/compiler-cli': link:packages/compiler-cli '@angular/core': link:packages/core @@ -12703,7 +12713,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -12713,7 +12723,7 @@ snapshots: vite: 7.1.5(@types/node@18.19.127)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: - '@angular/ssr': 20.3.2 + '@angular/ssr': 20.3.3 karma: 6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) less: 4.4.0 lmdb: 3.4.2 @@ -12732,10 +12742,10 @@ snapshots: - tsx - yaml - '@angular/build@20.3.2(@angular/ssr@20.3.2)(@types/node@18.19.127)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@18.19.127)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@18.19.127)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:packages/compiler '@angular/compiler-cli': link:packages/compiler-cli '@angular/core': link:packages/core @@ -12760,7 +12770,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -12770,7 +12780,7 @@ snapshots: vite: 7.1.5(@types/node@18.19.127)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: - '@angular/ssr': 20.3.2 + '@angular/ssr': 20.3.3 karma: 6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) less: 4.4.0 lmdb: 3.4.2 @@ -12789,10 +12799,10 @@ snapshots: - tsx - yaml - '@angular/build@20.3.2(@angular/ssr@20.3.2)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:packages/compiler '@angular/compiler-cli': link:packages/compiler-cli '@angular/core': link:packages/core @@ -12817,7 +12827,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -12827,7 +12837,7 @@ snapshots: vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: - '@angular/ssr': 20.3.2 + '@angular/ssr': 20.3.3 karma: 6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) less: 4.4.0 lmdb: 3.4.2 @@ -12846,10 +12856,10 @@ snapshots: - tsx - yaml - '@angular/build@20.3.2(@angular/ssr@20.3.2)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:packages/compiler '@angular/compiler-cli': link:packages/compiler-cli '@angular/core': link:packages/core @@ -12874,7 +12884,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -12884,7 +12894,7 @@ snapshots: vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: - '@angular/ssr': 20.3.2 + '@angular/ssr': 20.3.3 karma: 6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) less: 4.4.0 lmdb: 3.4.2 @@ -12903,10 +12913,10 @@ snapshots: - tsx - yaml - '@angular/build@20.3.2(@angular/ssr@20.3.2)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) + '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) '@angular/compiler': link:packages/compiler '@angular/compiler-cli': link:packages/compiler-cli '@angular/core': link:packages/core @@ -12931,7 +12941,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.3 piscina: 5.1.3 - rolldown: 1.0.0-beta.32 + rolldown: 1.0.0-beta.38 sass: 1.90.0 semver: 7.7.2 source-map-support: 0.5.21 @@ -12941,7 +12951,7 @@ snapshots: vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: - '@angular/ssr': 20.3.2 + '@angular/ssr': 20.3.3 karma: 6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5) less: 4.4.0 lmdb: 3.4.2 @@ -12960,7 +12970,7 @@ snapshots: - tsx - yaml - '@angular/cdk@20.2.4(rxjs@7.8.2)': + '@angular/cdk@20.2.5(rxjs@7.8.2)': dependencies: '@angular/common': link:packages/common '@angular/core': link:packages/core @@ -12968,15 +12978,15 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/cli@20.3.2(@types/node@18.19.127)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@18.19.127)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@18.19.127) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@18.19.127))(@types/node@18.19.127)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -12993,15 +13003,15 @@ snapshots: - chokidar - supports-color - '@angular/cli@20.3.2(@types/node@24.3.0)(chokidar@4.0.3)': + '@angular/cli@20.3.3(@types/node@24.3.0)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.2003.2(chokidar@4.0.3) - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@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@24.3.0) '@listr2/prompt-adapter-inquirer': 3.0.1(@inquirer/prompts@7.8.2(@types/node@24.3.0))(@types/node@24.3.0)(listr2@9.0.1) '@modelcontextprotocol/sdk': 1.17.3 - '@schematics/angular': 20.3.2(chokidar@4.0.3) + '@schematics/angular': 20.3.3(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.35.0 ini: 5.0.0 @@ -13027,9 +13037,9 @@ snapshots: '@angular/domino@https://codeload.github.com/angular/domino/tar.gz/93e720f143d0296dd2726ffbcf4fc12283363a7b': {} - '@angular/material@20.2.4(@angular/cdk@20.2.4(rxjs@7.8.2))(rxjs@7.8.2)': + '@angular/material@20.2.5(@angular/cdk@20.2.5(rxjs@7.8.2))(rxjs@7.8.2)': dependencies: - '@angular/cdk': 20.2.4(rxjs@7.8.2) + '@angular/cdk': 20.2.5(rxjs@7.8.2) '@angular/common': link:packages/common '@angular/core': link:packages/core '@angular/forms': link:packages/forms @@ -13098,7 +13108,7 @@ snapshots: - '@modelcontextprotocol/sdk' - '@react-native-async-storage/async-storage' - '@angular/ssr@20.3.2': + '@angular/ssr@20.3.3': dependencies: '@angular/common': link:packages/common '@angular/core': link:packages/core @@ -15701,7 +15711,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@ngtools/webpack@20.3.2(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': + '@ngtools/webpack@20.3.3(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': link:packages/compiler-cli typescript: 5.9.2 @@ -15979,9 +15989,7 @@ snapshots: '@opentelemetry/semantic-conventions@1.37.0': {} - '@oxc-project/runtime@0.81.0': {} - - '@oxc-project/types@0.81.0': {} + '@oxc-project/types@0.89.0': {} '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -16118,51 +16126,51 @@ snapshots: - react-native-b4a - supports-color - '@rolldown/binding-android-arm64@1.0.0-beta.32': + '@rolldown/binding-android-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-beta.32': + '@rolldown/binding-darwin-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-darwin-x64@1.0.0-beta.32': + '@rolldown/binding-darwin-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-beta.32': + '@rolldown/binding-freebsd-x64@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.32': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.32': + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.38': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-beta.32': + '@rolldown/binding-linux-x64-musl@1.0.0-beta.38': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-beta.32': + '@rolldown/binding-openharmony-arm64@1.0.0-beta.38': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-beta.32': + '@rolldown/binding-wasm32-wasi@1.0.0-beta.38': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.38': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.32': + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.38': optional: true - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.38': {} '@rollup/plugin-babel@6.0.4(@babel/core@7.28.3)(@types/babel__core@7.20.5)(rollup@4.46.4)': dependencies: @@ -16314,10 +16322,10 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@schematics/angular@20.3.2(chokidar@4.0.3)': + '@schematics/angular@20.3.3(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 20.3.2(chokidar@4.0.3) - '@angular-devkit/schematics': 20.3.2(chokidar@4.0.3) + '@angular-devkit/core': 20.3.3(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.3(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -22688,9 +22696,9 @@ snapshots: '@angular/core': link:packages/core tslib: 2.8.1 - ngx-progressbar@14.0.0(@angular/cdk@20.2.4(rxjs@7.8.2))(rxjs@7.8.2): + ngx-progressbar@14.0.0(@angular/cdk@20.2.5(rxjs@7.8.2))(rxjs@7.8.2): dependencies: - '@angular/cdk': 20.2.4(rxjs@7.8.2) + '@angular/cdk': 20.2.5(rxjs@7.8.2) '@angular/common': link:packages/common '@angular/core': link:packages/core rxjs: 7.8.2 @@ -23903,27 +23911,26 @@ snapshots: robust-predicates@3.0.2: {} - rolldown@1.0.0-beta.32: + rolldown@1.0.0-beta.38: dependencies: - '@oxc-project/runtime': 0.81.0 - '@oxc-project/types': 0.81.0 - '@rolldown/pluginutils': 1.0.0-beta.32 + '@oxc-project/types': 0.89.0 + '@rolldown/pluginutils': 1.0.0-beta.38 ansis: 4.1.0 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-arm64': 1.0.0-beta.32 - '@rolldown/binding-darwin-x64': 1.0.0-beta.32 - '@rolldown/binding-freebsd-x64': 1.0.0-beta.32 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.32 - '@rolldown/binding-linux-x64-musl': 1.0.0-beta.32 - '@rolldown/binding-openharmony-arm64': 1.0.0-beta.32 - '@rolldown/binding-wasm32-wasi': 1.0.0-beta.32 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.32 - '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.32 + '@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.3(rollup@4.46.4)(typescript@5.9.2): dependencies: From b12e5e62f2c08734413e16f52479d42d18f1de6f Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Thu, 25 Sep 2025 00:15:01 +0200 Subject: [PATCH 10/42] docs: add warning to `AbstractControl.setErrors` (#64063) fixes #38191 PR Close #64063 --- packages/forms/src/model/abstract_model.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/forms/src/model/abstract_model.ts b/packages/forms/src/model/abstract_model.ts index 7880d16037ee..53e926da80f3 100644 --- a/packages/forms/src/model/abstract_model.ts +++ b/packages/forms/src/model/abstract_model.ts @@ -1443,6 +1443,8 @@ export abstract class AbstractControl< * * Calling `setErrors` also updates the validity of the parent control. * + * Note: Manually set errors are always overwritten by the results of the next validation run. + * * @param opts Configuration options that determine how the control propagates * changes and emits events after the control errors are set. * * `emitEvent`: When true or not supplied (the default), the `statusChanges` From ba28b3764cf1950910ae50b038eb5f4e079b86cd Mon Sep 17 00:00:00 2001 From: Ankita Sood Date: Thu, 25 Sep 2025 18:45:16 -0500 Subject: [PATCH 11/42] docs: update text (#64095) replace `above` with `below` PR Close #64095 --- adev/src/content/guide/animations/css.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adev/src/content/guide/animations/css.md b/adev/src/content/guide/animations/css.md index b91b3743d421..64e66355f363 100644 --- a/adev/src/content/guide/animations/css.md +++ b/adev/src/content/guide/animations/css.md @@ -167,7 +167,7 @@ In this example, the `rotate` and `fade-in` animations fire at the same time, bu ### Animating the items of a reordering list -Items in a `@for` loop will be removed and re-added, which will fire off animations using `@starting-styles` for entry animations. Alternatively, you can use `animate.enter` for this same behavior. Use `animate.leave` to animate elements as they are removed, as seen in the example above. +Items in a `@for` loop will be removed and re-added, which will fire off animations using `@starting-styles` for entry animations. Alternatively, you can use `animate.enter` for this same behavior. Use `animate.leave` to animate elements as they are removed, as seen in the example below. From e02985ac5b29dd1c907ee4ac4fb9d90839d82a01 Mon Sep 17 00:00:00 2001 From: Jens Kuehlers Date: Thu, 25 Sep 2025 15:37:33 +0000 Subject: [PATCH 12/42] docs: add StateOfJS survey banner (#64083) PR Close #64083 --- adev/src/app/app.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adev/src/app/app.component.html b/adev/src/app/app.component.html index 0c8ea9b6dc9a..5977c3aa81d7 100644 --- a/adev/src/app/app.component.html +++ b/adev/src/app/app.component.html @@ -2,7 +2,7 @@ @defer (when isBrowser) { - + }
From 8cf95ceb11c05b5a6751041a39926791cc2cde69 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 26 Sep 2025 13:46:07 +0000 Subject: [PATCH 13/42] build: update cross-repo angular dependencies (#64094) See associated pull request for more information. PR Close #64094 --- .github/actions/saucelabs-legacy/action.yml | 4 +- .github/workflows/adev-preview-build.yml | 8 ++-- .github/workflows/adev-preview-deploy.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/benchmark-compare.yml | 2 +- .github/workflows/ci.yml | 44 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/google-internal-tests.yml | 2 +- .github/workflows/manual.yml | 8 ++-- .github/workflows/merge-ready-status.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 34 +++++++------- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 14 files changed, 66 insertions(+), 66 deletions(-) diff --git a/.github/actions/saucelabs-legacy/action.yml b/.github/actions/saucelabs-legacy/action.yml index 77496b7352da..a1e2b6363d0f 100644 --- a/.github/actions/saucelabs-legacy/action.yml +++ b/.github/actions/saucelabs-legacy/action.yml @@ -5,9 +5,9 @@ runs: using: 'composite' steps: - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Saucelabs Variables - uses: angular/dev-infra/github-actions/saucelabs@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/saucelabs@eec872ff45c27532947b960e146d2452f9b29f85 - name: Starting Saucelabs tunnel service shell: bash run: ./tools/saucelabs/sauce-service.sh run & diff --git a/.github/workflows/adev-preview-build.yml b/.github/workflows/adev-preview-build.yml index 06e0bf6d1e33..188f0d789a62 100644 --- a/.github/workflows/adev-preview-build.yml +++ b/.github/workflows/adev-preview-build.yml @@ -21,16 +21,16 @@ jobs: (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'adev: preview')) steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build adev run: pnpm bazel build //adev:build.production - - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@eec872ff45c27532947b960e146d2452f9b29f85 with: workflow-artifact-name: 'adev-preview' pull-number: '${{github.event.pull_request.number}}' diff --git a/.github/workflows/adev-preview-deploy.yml b/.github/workflows/adev-preview-deploy.yml index ef95f0e76c5c..48261a37372c 100644 --- a/.github/workflows/adev-preview-deploy.yml +++ b/.github/workflows/adev-preview-deploy.yml @@ -40,7 +40,7 @@ jobs: npx -y firebase-tools@latest target:clear --config adev/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting angular-docs npx -y firebase-tools@latest target:apply --config adev/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting angular-docs ${{env.PREVIEW_SITE}} - - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@eec872ff45c27532947b960e146d2452f9b29f85 with: github-token: '${{secrets.GITHUB_TOKEN}}' workflow-artifact-name: 'adev-preview' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index d36aa5c3c623..f2b238d19a03 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@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/branch-manager@eec872ff45c27532947b960e146d2452f9b29f85 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/benchmark-compare.yml b/.github/workflows/benchmark-compare.yml index a21abb0cce60..d033f2a9d660 100644 --- a/.github/workflows/benchmark-compare.yml +++ b/.github/workflows/benchmark-compare.yml @@ -38,7 +38,7 @@ jobs: - run: pnpm install --frozen-lockfile - - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 with: bazelrc: ./.bazelrc.user diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e61481cc937..2f0e721664ed 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - name: Check code lint @@ -39,13 +39,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Cache downloaded Cypress binary @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -88,11 +88,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -105,11 +105,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -124,13 +124,13 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - run: echo "https://${{secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN}}:@github.com" > ${HOME}/.git_credentials @@ -142,11 +142,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -196,11 +196,11 @@ jobs: runs-on: ubuntu-latest-8core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build adev diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index d4517cef5a41..973294b64d16 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/pull-request-labeling@eec872ff45c27532947b960e146d2452f9b29f85 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@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/post-approval-changes@eec872ff45c27532947b960e146d2452f9b29f85 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/google-internal-tests.yml b/.github/workflows/google-internal-tests.yml index 2f8bf2ffc4f0..8c187c31b5cc 100644 --- a/.github/workflows/google-internal-tests.yml +++ b/.github/workflows/google-internal-tests.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/google-internal-tests@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/google-internal-tests@eec872ff45c27532947b960e146d2452f9b29f85 with: run-tests-guide-url: http://go/angular-g3sync-start github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index d0798589f5a7..85db8ab309d5 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -13,17 +13,17 @@ jobs: JOBS: 2 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 with: cache-node-modules: true - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Saucelabs Variables - uses: angular/dev-infra/github-actions/saucelabs@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/saucelabs@eec872ff45c27532947b960e146d2452f9b29f85 - name: Set up Sauce Tunnel Daemon run: pnpm bazel run //tools/saucelabs-daemon/background-service -- $JOBS & env: diff --git a/.github/workflows/merge-ready-status.yml b/.github/workflows/merge-ready-status.yml index 33cffb976555..53acb623350e 100644 --- a/.github/workflows/merge-ready-status.yml +++ b/.github/workflows/merge-ready-status.yml @@ -9,6 +9,6 @@ jobs: status: runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/unified-status-check@08d451f9b4e900928b65cd31234693ef9a994492 + - uses: angular/dev-infra/github-actions/unified-status-check@eec872ff45c27532947b960e146d2452f9b29f85 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index cf9c160cb4b2..1e868c23e054 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -21,7 +21,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -36,9 +36,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 832a8152b787..ab1e04518643 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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - name: Check code lint @@ -37,7 +37,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@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/linting/licenses@eec872ff45c27532947b960e146d2452f9b29f85 with: allow-dependencies-licenses: 'pkg:npm/google-protobuf@' @@ -45,13 +45,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Cache downloaded Cypress binary uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: @@ -76,11 +76,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run CI tests for framework @@ -100,11 +100,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run integration CI tests for framework @@ -115,11 +115,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run tests @@ -132,11 +132,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@08d451f9b4e900928b65cd31234693ef9a994492 + uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 - name: Install node modules run: pnpm install --frozen-lockfile - run: | diff --git a/package.json b/package.json index 334befc18b6e..68fa6b3f278f 100644 --- a/package.json +++ b/package.json @@ -168,7 +168,7 @@ "@actions/core": "^1.10.0", "@actions/github": "^6.0.0", "@angular-devkit/architect-cli": "0.2003.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#388e486d3909cd065e26c368d4e465dfae76a156", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#48fe526910f72741e4c65a92aff07001c2e3ad60", "@babel/plugin-proposal-async-generator-functions": "7.20.7", "@babel/plugin-transform-async-generator-functions": "^7.27.1", "@bazel/bazelisk": "^1.7.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 594b41137410..9704a6480a7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -371,8 +371,8 @@ importers: specifier: 0.2003.3 version: 0.2003.3(chokidar@4.0.3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#388e486d3909cd065e26c368d4e465dfae76a156 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156(@modelcontextprotocol/sdk@1.18.1) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#48fe526910f72741e4c65a92aff07001c2e3ad60 + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/48fe526910f72741e4c65a92aff07001c2e3ad60(@modelcontextprotocol/sdk@1.18.1) '@babel/plugin-proposal-async-generator-functions': specifier: 7.20.7 version: 7.20.7(@babel/core@7.28.3) @@ -1514,9 +1514,9 @@ packages: '@angular/cdk': 20.2.5 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156} - version: 0.0.0-08d451f9b4e900928b65cd31234693ef9a994492 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/48fe526910f72741e4c65a92aff07001c2e3ad60': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/48fe526910f72741e4c65a92aff07001c2e3ad60} + version: 0.0.0-eec872ff45c27532947b960e146d2452f9b29f85 hasBin: true '@angular/ssr@20.3.3': @@ -13047,7 +13047,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/388e486d3909cd065e26c368d4e465dfae76a156(@modelcontextprotocol/sdk@1.18.1)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/48fe526910f72741e4c65a92aff07001c2e3ad60(@modelcontextprotocol/sdk@1.18.1)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) From 9dbcff87946876a30abe93ce4131f60f4284d126 Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Thu, 25 Sep 2025 11:21:08 +0200 Subject: [PATCH 14/42] refactor(compiler): Remove the interpolation config (#64071) After #63474, we don't need that anymore. PR Close #64071 --- .../partial_component_linker_1.ts | 26 ------------- .../annotations/component/src/handler.ts | 5 +-- .../annotations/component/src/resources.ts | 10 ----- .../src/ngtsc/xi18n/src/context.ts | 4 +- .../compiler/src/compiler_facade_interface.ts | 2 - .../compiler/src/expression_parser/parser.ts | 38 +++++------------- .../compiler/src/i18n/extractor_merger.ts | 23 ++++------- .../compiler/src/i18n/i18n_html_parser.ts | 12 +----- packages/compiler/src/i18n/i18n_parser.ts | 7 +--- packages/compiler/src/i18n/message_bundle.ts | 13 +------ packages/compiler/src/jit_compiler_facade.ts | 21 ++-------- packages/compiler/src/ml_parser/defaults.ts | 3 ++ packages/compiler/src/ml_parser/lexer.ts | 29 +++++++------- packages/compiler/src/render3/partial/api.ts | 5 --- .../compiler/src/render3/partial/component.ts | 7 ---- packages/compiler/src/render3/view/api.ts | 6 --- .../compiler/src/render3/view/i18n/meta.ts | 8 +--- .../compiler/src/render3/view/template.ts | 30 ++------------ .../src/template_parser/binding_parser.ts | 28 ++----------- .../test/expression_parser/parser_spec.ts | 11 ------ .../test/expression_parser/utils/unparser.ts | 23 ++++------- .../test/i18n/extractor_merger_spec.ts | 39 +++---------------- packages/compiler/test/i18n/i18n_ast_spec.ts | 3 +- .../compiler/test/i18n/i18n_parser_spec.ts | 2 - .../compiler/test/i18n/integration_common.ts | 3 +- .../compiler/test/i18n/message_bundle_spec.ts | 8 +--- .../test/i18n/serializers/xliff2_spec.ts | 3 +- .../test/i18n/serializers/xliff_spec.ts | 3 +- .../test/i18n/serializers/xmb_spec.ts | 3 +- .../test/i18n/whitespace_sensitivity_spec.ts | 3 +- .../compiler/test/ml_parser/lexer_spec.ts | 11 ------ packages/compiler/test/render3/view/util.ts | 18 ++------- .../src/utils/extract_template.ts | 4 -- .../src/compiler/compiler_facade_interface.ts | 2 - 34 files changed, 74 insertions(+), 339 deletions(-) diff --git a/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.ts b/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.ts index 640315de07a8..aa41c63697af 100644 --- a/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.ts +++ b/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.ts @@ -10,10 +10,8 @@ import { compileComponentFromMetadata, ConstantPool, DeclarationListEmitMode, - DEFAULT_INTERPOLATION_CONFIG, DeferBlockDepsEmitMode, ForwardRefHandling, - InterpolationConfig, makeBindingParser, outputAst as o, ParsedTemplate, @@ -95,7 +93,6 @@ export class PartialComponentLinkerVersion1 metaObj: AstObject, version: string, ): R3ComponentMetadata { - const interpolation = parseInterpolationConfig(metaObj); const templateSource = metaObj.getValue('template'); const isInline = metaObj.has('isInline') ? metaObj.getBoolean('isInline') : false; const templateInfo = this.getTemplateInfo(templateSource, isInline); @@ -109,7 +106,6 @@ export class PartialComponentLinkerVersion1 const template = parseTemplate(templateInfo.code, templateInfo.sourceUrl, { escapedString: templateInfo.isEscaped, - interpolationConfig: interpolation, range: templateInfo.range, enableI18nLegacyMessageIdFormat: false, preserveWhitespaces: metaObj.has('preserveWhitespaces') @@ -244,7 +240,6 @@ export class PartialComponentLinkerVersion1 encapsulation: metaObj.has('encapsulation') ? parseEncapsulation(metaObj.getValue('encapsulation')) : ViewEncapsulation.Emulated, - interpolation, changeDetection: metaObj.has('changeDetection') ? parseChangeDetectionStrategy(metaObj.getValue('changeDetection')) : ChangeDetectionStrategy.Default, @@ -380,27 +375,6 @@ interface TemplateInfo { isEscaped: boolean; } -/** - * Extract an `InterpolationConfig` from the component declaration. - */ -function parseInterpolationConfig( - metaObj: AstObject, -): InterpolationConfig { - if (!metaObj.has('interpolation')) { - return DEFAULT_INTERPOLATION_CONFIG; - } - - const interpolationExpr = metaObj.getValue('interpolation'); - const values = interpolationExpr.getArray().map((entry) => entry.getString()); - if (values.length !== 2) { - throw new FatalLinkerError( - interpolationExpr.expression, - 'Unsupported interpolation config, expected an array containing exactly two strings', - ); - } - return InterpolationConfig.fromArray(values as [string, string]); -} - /** * Determines the `ViewEncapsulation` mode from the AST value's symbol name. */ diff --git a/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts b/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts index b3d350493e7d..609ac9c97fb8 100644 --- a/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts +++ b/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts @@ -20,7 +20,6 @@ import { CssSelector, DeclarationListEmitMode, DeclareComponentTemplateInfo, - DEFAULT_INTERPOLATION_CONFIG, DeferBlockDepsEmitMode, DomElementSchemaRegistry, ExternalExpr, @@ -951,7 +950,6 @@ export class ComponentDecoratorHandler template, encapsulation, changeDetection, - interpolation: template.interpolationConfig ?? DEFAULT_INTERPOLATION_CONFIG, styles, externalStyles, // These will be replaced during the compilation step, after all `NgModule`s have been @@ -1345,7 +1343,6 @@ export class ComponentDecoratorHandler ctx.updateFromTemplate( analysis.template.content, analysis.template.declaration.resolvedTemplateUrl, - analysis.template.interpolationConfig ?? DEFAULT_INTERPOLATION_CONFIG, ); } @@ -2469,7 +2466,7 @@ export class ComponentDecoratorHandler /** Creates a new binding parser. */ private getNewBindingParser() { - return makeBindingParser(undefined, this.enableSelectorless); + return makeBindingParser(this.enableSelectorless); } } diff --git a/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.ts b/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.ts index 0b56ef5ccf66..4a7f0e216b5b 100644 --- a/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.ts +++ b/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.ts @@ -7,8 +7,6 @@ */ import { - DEFAULT_INTERPOLATION_CONFIG, - InterpolationConfig, LexerRange, ParsedTemplate, ParseSourceFile, @@ -91,7 +89,6 @@ export interface ParsedTemplateWithSource extends ParsedComponentTemplate { */ interface CommonTemplateDeclaration { preserveWhitespaces: boolean; - interpolationConfig: InterpolationConfig; templateUrl: string; resolvedTemplateUrl: string; } @@ -284,7 +281,6 @@ export function createEmptyTemplate( declaration: templateUrl ? { isInline: false, - interpolationConfig: InterpolationConfig.fromArray(null), preserveWhitespaces: false, templateUrlExpression: templateUrl, templateUrl: 'missing.ng.html', @@ -292,7 +288,6 @@ export function createEmptyTemplate( } : { isInline: true, - interpolationConfig: InterpolationConfig.fromArray(null), preserveWhitespaces: false, expression: template!, templateUrl: containingFile, @@ -312,7 +307,6 @@ function parseExtractedTemplate( // We always normalize line endings if the template has been escaped (i.e. is inline). const i18nNormalizeLineEndingsInICUs = escapedString || options.i18nNormalizeLineEndingsInICUs; const commonParseOptions: ParseTemplateOptions = { - interpolationConfig: template.interpolationConfig, range: sourceParseRange ?? undefined, enableI18nLegacyMessageIdFormat: options.enableI18nLegacyMessageIdFormat, i18nNormalizeLineEndingsInICUs, @@ -379,7 +373,6 @@ export function parseTemplateDeclaration( preserveWhitespaces = value; } - let interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; if (component.has('interpolation')) { const expr = component.get('interpolation')!; const value = evaluator.evaluate(expr); @@ -394,7 +387,6 @@ export function parseTemplateDeclaration( 'interpolation must be an array with 2 elements of string type', ); } - interpolationConfig = InterpolationConfig.fromArray(value as [string, string]); } if (component.has('templateUrl')) { @@ -411,7 +403,6 @@ export function parseTemplateDeclaration( const resourceUrl = resourceLoader.resolve(templateUrl, containingFile); return { isInline: false, - interpolationConfig, preserveWhitespaces, templateUrl, templateUrlExpression: templateUrlExpr, @@ -433,7 +424,6 @@ export function parseTemplateDeclaration( } else if (component.has('template')) { return { isInline: true, - interpolationConfig, preserveWhitespaces, expression: component.get('template')!, templateUrl: containingFile, diff --git a/packages/compiler-cli/src/ngtsc/xi18n/src/context.ts b/packages/compiler-cli/src/ngtsc/xi18n/src/context.ts index 55759b35accf..04fecfd6f82c 100644 --- a/packages/compiler-cli/src/ngtsc/xi18n/src/context.ts +++ b/packages/compiler-cli/src/ngtsc/xi18n/src/context.ts @@ -6,8 +6,6 @@ * found in the LICENSE file at https://angular.dev/license */ -import {InterpolationConfig} from '@angular/compiler'; - /** * Captures template information intended for extraction of i18n messages from a template. * @@ -23,5 +21,5 @@ export interface Xi18nContext { * the return type is declared as `void` for simplicity, since any parse errors would be reported * as diagnostics anyway. */ - updateFromTemplate(html: string, url: string, interpolationConfig: InterpolationConfig): void; + updateFromTemplate(html: string, url: string): void; } diff --git a/packages/compiler/src/compiler_facade_interface.ts b/packages/compiler/src/compiler_facade_interface.ts index af405c1e2d0d..40257917b73b 100644 --- a/packages/compiler/src/compiler_facade_interface.ts +++ b/packages/compiler/src/compiler_facade_interface.ts @@ -214,7 +214,6 @@ export interface R3ComponentMetadataFacade extends R3DirectiveMetadataFacade { styles: string[]; encapsulation: ViewEncapsulation; viewProviders: Provider[] | null; - interpolation?: [string, string]; changeDetection?: ChangeDetectionStrategy; hasDirectiveDependencies: boolean; } @@ -277,7 +276,6 @@ export interface R3DeclareComponentFacade extends R3DeclareDirectiveFacade { animations?: OpaqueValue; changeDetection?: ChangeDetectionStrategy; encapsulation?: ViewEncapsulation; - interpolation?: [string, string]; preserveWhitespaces?: boolean; } diff --git a/packages/compiler/src/expression_parser/parser.ts b/packages/compiler/src/expression_parser/parser.ts index 05e779ad6104..5878807cfb9b 100644 --- a/packages/compiler/src/expression_parser/parser.ts +++ b/packages/compiler/src/expression_parser/parser.ts @@ -7,7 +7,6 @@ */ import * as chars from '../chars'; -import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../ml_parser/defaults'; import { InterpolatedAttributeToken, InterpolatedTextToken, @@ -102,10 +101,9 @@ export class Parser { input: string, parseSourceSpan: ParseSourceSpan, absoluteOffset: number, - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): ASTWithSource { const errors: ParseError[] = []; - this._checkNoInterpolation(errors, input, parseSourceSpan, interpolationConfig); + this._checkNoInterpolation(errors, input, parseSourceSpan); const {stripped: sourceToLex} = this._stripComments(input); const tokens = this._lexer.tokenize(sourceToLex); const ast = new _ParseAST( @@ -126,16 +124,9 @@ export class Parser { input: string, parseSourceSpan: ParseSourceSpan, absoluteOffset: number, - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): ASTWithSource { const errors: ParseError[] = []; - const ast = this._parseBindingAst( - input, - parseSourceSpan, - absoluteOffset, - interpolationConfig, - errors, - ); + const ast = this._parseBindingAst(input, parseSourceSpan, absoluteOffset, errors); return new ASTWithSource(ast, input, getLocation(parseSourceSpan), absoluteOffset, errors); } @@ -150,16 +141,9 @@ export class Parser { input: string, parseSourceSpan: ParseSourceSpan, absoluteOffset: number, - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): ASTWithSource { const errors: ParseError[] = []; - const ast = this._parseBindingAst( - input, - parseSourceSpan, - absoluteOffset, - interpolationConfig, - errors, - ); + const ast = this._parseBindingAst(input, parseSourceSpan, absoluteOffset, errors); const simplExpressionErrors = this.checkSimpleExpression(ast); if (simplExpressionErrors.length > 0) { @@ -179,10 +163,9 @@ export class Parser { input: string, parseSourceSpan: ParseSourceSpan, absoluteOffset: number, - interpolationConfig: InterpolationConfig, errors: ParseError[], ): AST { - this._checkNoInterpolation(errors, input, parseSourceSpan, interpolationConfig); + this._checkNoInterpolation(errors, input, parseSourceSpan); const {stripped: sourceToLex} = this._stripComments(input); const tokens = this._lexer.tokenize(sourceToLex); return new _ParseAST( @@ -253,7 +236,6 @@ export class Parser { parseSourceSpan: ParseSourceSpan, absoluteOffset: number, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): ASTWithSource | null { const errors: ParseError[] = []; const {strings, expressions, offsets} = this.splitInterpolation( @@ -261,7 +243,6 @@ export class Parser { parseSourceSpan, errors, interpolatedTokens, - interpolationConfig, ); if (expressions.length === 0) return null; @@ -376,7 +357,6 @@ export class Parser { parseSourceSpan: ParseSourceSpan, errors: ParseError[], interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): SplitInterpolation { const strings: InterpolationPiece[] = []; const expressions: InterpolationPiece[] = []; @@ -387,7 +367,8 @@ export class Parser { let i = 0; let atInterpolation = false; let extendLastString = false; - let {start: interpStart, end: interpEnd} = interpolationConfig; + const interpStart = '{{'; + const interpEnd = '}}'; while (i < input.length) { if (!atInterpolation) { // parse until starting {{ @@ -492,18 +473,17 @@ export class Parser { errors: ParseError[], input: string, parseSourceSpan: ParseSourceSpan, - {start, end}: InterpolationConfig, ): void { let startIndex = -1; let endIndex = -1; for (const charIndex of this._forEachUnquotedChar(input, 0)) { if (startIndex === -1) { - if (input.startsWith(start)) { + if (input.startsWith('{{')) { startIndex = charIndex; } } else { - endIndex = this._getInterpolationEndIndex(input, end, charIndex); + endIndex = this._getInterpolationEndIndex(input, '}}', charIndex); if (endIndex > -1) { break; } @@ -513,7 +493,7 @@ export class Parser { if (startIndex > -1 && endIndex > -1) { errors.push( getParseError( - `Got interpolation (${start}${end}) where expression was expected`, + `Got interpolation ({{}}) where expression was expected`, input, `at column ${startIndex} in`, parseSourceSpan, diff --git a/packages/compiler/src/i18n/extractor_merger.ts b/packages/compiler/src/i18n/extractor_merger.ts index 35bf56b19979..d753c71fa144 100644 --- a/packages/compiler/src/i18n/extractor_merger.ts +++ b/packages/compiler/src/i18n/extractor_merger.ts @@ -7,7 +7,7 @@ */ import * as html from '../ml_parser/ast'; -import {DEFAULT_CONTAINER_BLOCKS, InterpolationConfig} from '../ml_parser/defaults'; +import {DEFAULT_CONTAINER_BLOCKS} from '../ml_parser/defaults'; import {ParseTreeResult} from '../ml_parser/parser'; import {TokenType} from '../ml_parser/tokens'; import {ParseError} from '../parse_util'; @@ -28,24 +28,22 @@ let i18nCommentsWarned = false; */ export function extractMessages( nodes: html.Node[], - interpolationConfig: InterpolationConfig, implicitTags: string[], implicitAttrs: {[k: string]: string[]}, preserveSignificantWhitespace: boolean, ): ExtractionResult { const visitor = new _Visitor(implicitTags, implicitAttrs, preserveSignificantWhitespace); - return visitor.extract(nodes, interpolationConfig); + return visitor.extract(nodes); } export function mergeTranslations( nodes: html.Node[], translations: TranslationBundle, - interpolationConfig: InterpolationConfig, implicitTags: string[], implicitAttrs: {[k: string]: string[]}, ): ParseTreeResult { const visitor = new _Visitor(implicitTags, implicitAttrs); - return visitor.merge(nodes, translations, interpolationConfig); + return visitor.merge(nodes, translations); } export class ExtractionResult { @@ -106,8 +104,8 @@ class _Visitor implements html.Visitor { /** * Extracts the messages from the tree */ - extract(nodes: html.Node[], interpolationConfig: InterpolationConfig): ExtractionResult { - this._init(_VisitorMode.Extract, interpolationConfig); + extract(nodes: html.Node[]): ExtractionResult { + this._init(_VisitorMode.Extract); nodes.forEach((node) => node.visit(this, null)); @@ -121,12 +119,8 @@ class _Visitor implements html.Visitor { /** * Returns a tree where all translatable nodes are translated */ - merge( - nodes: html.Node[], - translations: TranslationBundle, - interpolationConfig: InterpolationConfig, - ): ParseTreeResult { - this._init(_VisitorMode.Merge, interpolationConfig); + merge(nodes: html.Node[], translations: TranslationBundle): ParseTreeResult { + this._init(_VisitorMode.Merge); this._translations = translations; // Construct a single fake root element @@ -280,7 +274,7 @@ class _Visitor implements html.Visitor { throw new Error('unreachable code'); } - private _init(mode: _VisitorMode, interpolationConfig: InterpolationConfig): void { + private _init(mode: _VisitorMode): void { this._mode = mode; this._inI18nBlock = false; this._inI18nNode = false; @@ -291,7 +285,6 @@ class _Visitor implements html.Visitor { this._messages = []; this._inImplicitNode = false; this._createI18nMessage = createI18nMessageFactory( - interpolationConfig, DEFAULT_CONTAINER_BLOCKS, // When dropping significant whitespace we need to retain whitespace tokens or // else we won't be able to reuse source spans because empty tokens would be diff --git a/packages/compiler/src/i18n/i18n_html_parser.ts b/packages/compiler/src/i18n/i18n_html_parser.ts index 7cf3ad6b8e8e..9a910aa1ede0 100644 --- a/packages/compiler/src/i18n/i18n_html_parser.ts +++ b/packages/compiler/src/i18n/i18n_html_parser.ts @@ -7,7 +7,6 @@ */ import {MissingTranslationStrategy} from '../core'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../ml_parser/defaults'; import {HtmlParser} from '../ml_parser/html_parser'; import {TokenizeOptions} from '../ml_parser/lexer'; import {ParseTreeResult} from '../ml_parser/parser'; @@ -57,20 +56,13 @@ export class I18NHtmlParser implements HtmlParser { } parse(source: string, url: string, options: TokenizeOptions = {}): ParseTreeResult { - const interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG; - const parseResult = this._htmlParser.parse(source, url, {interpolationConfig, ...options}); + const parseResult = this._htmlParser.parse(source, url, {...options}); if (parseResult.errors.length) { return new ParseTreeResult(parseResult.rootNodes, parseResult.errors); } - return mergeTranslations( - parseResult.rootNodes, - this._translationBundle, - interpolationConfig, - [], - {}, - ); + return mergeTranslations(parseResult.rootNodes, this._translationBundle, [], {}); } } diff --git a/packages/compiler/src/i18n/i18n_parser.ts b/packages/compiler/src/i18n/i18n_parser.ts index a23d627f2dd6..b1b07301689d 100644 --- a/packages/compiler/src/i18n/i18n_parser.ts +++ b/packages/compiler/src/i18n/i18n_parser.ts @@ -10,7 +10,6 @@ import {Lexer as ExpressionLexer} from '../expression_parser/lexer'; import {Parser as ExpressionParser} from '../expression_parser/parser'; import {serialize as serializeExpression} from '../expression_parser/serializer'; import * as html from '../ml_parser/ast'; -import {InterpolationConfig} from '../ml_parser/defaults'; import {getHtmlTagDefinition} from '../ml_parser/html_tags'; import { AttributeValueInterpolationToken, @@ -39,17 +38,15 @@ export interface I18nMessageFactory { } /** - * Returns a function converting html nodes to an i18n Message given an interpolationConfig + * Returns a function converting html nodes to an i18n Message */ export function createI18nMessageFactory( - interpolationConfig: InterpolationConfig, containerBlocks: Set, retainEmptyTokens: boolean, preserveExpressionWhitespace: boolean, ): I18nMessageFactory { const visitor = new _I18nVisitor( _expParser, - interpolationConfig, containerBlocks, retainEmptyTokens, preserveExpressionWhitespace, @@ -74,7 +71,6 @@ function noopVisitNodeFn(_html: html.Node, i18n: i18n.Node): i18n.Node { class _I18nVisitor implements html.Visitor { constructor( private _expressionParser: ExpressionParser, - private _interpolationConfig: InterpolationConfig, private _containerBlocks: Set, private readonly _retainEmptyTokens: boolean, private readonly _preserveExpressionWhitespace: boolean, @@ -389,7 +385,6 @@ class _I18nVisitor implements html.Visitor { expression, /* location */ token.sourceSpan, /* absoluteOffset */ token.sourceSpan.start.offset, - this._interpolationConfig, ); return serializeExpression(expr); } diff --git a/packages/compiler/src/i18n/message_bundle.ts b/packages/compiler/src/i18n/message_bundle.ts index 9fa475a7b2f1..cd5a1f48ccfd 100644 --- a/packages/compiler/src/i18n/message_bundle.ts +++ b/packages/compiler/src/i18n/message_bundle.ts @@ -6,7 +6,6 @@ * found in the LICENSE file at https://angular.dev/license */ -import {InterpolationConfig} from '../ml_parser/defaults'; import {HtmlParser} from '../ml_parser/html_parser'; import {WhitespaceVisitor, visitAllWithSiblings} from '../ml_parser/html_whitespaces'; import {ParseError} from '../parse_util'; @@ -29,15 +28,8 @@ export class MessageBundle { private readonly _preserveWhitespace = true, ) {} - updateFromTemplate( - source: string, - url: string, - interpolationConfig: InterpolationConfig, - ): ParseError[] { - const htmlParserResult = this._htmlParser.parse(source, url, { - tokenizeExpansionForms: true, - interpolationConfig, - }); + updateFromTemplate(source: string, url: string): ParseError[] { + const htmlParserResult = this._htmlParser.parse(source, url, {tokenizeExpansionForms: true}); if (htmlParserResult.errors.length) { return htmlParserResult.errors; @@ -55,7 +47,6 @@ export class MessageBundle { const i18nParserResult = extractMessages( rootNodes, - interpolationConfig, this._implicitTags, this._implicitAttrs, /* preserveSignificantWhitespace */ this._preserveWhitespace, diff --git a/packages/compiler/src/jit_compiler_facade.ts b/packages/compiler/src/jit_compiler_facade.ts index f34c8e041a09..45e9826d9e74 100644 --- a/packages/compiler/src/jit_compiler_facade.ts +++ b/packages/compiler/src/jit_compiler_facade.ts @@ -45,7 +45,6 @@ import { ViewEncapsulation, } from './core'; import {compileInjectable} from './injectable_compiler_2'; -import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from './ml_parser/defaults'; import { DeclareVarStmt, Expression, @@ -292,12 +291,11 @@ export class CompilerFacadeImpl implements CompilerFacade { facade: R3ComponentMetadataFacade, ): any { // Parse the template and check for errors. - const {template, interpolation, defer} = parseJitTemplate( + const {template, defer} = parseJitTemplate( facade.template, facade.name, sourceMapUrl, facade.preserveWhitespaces, - facade.interpolation, undefined, ); @@ -313,7 +311,6 @@ export class CompilerFacadeImpl implements CompilerFacade { styles: [...facade.styles, ...template.styles], encapsulation: facade.encapsulation, - interpolation, changeDetection: facade.changeDetection ?? null, animations: facade.animations != null ? new WrappedNodeExpr(facade.animations) : null, viewProviders: @@ -346,7 +343,7 @@ export class CompilerFacadeImpl implements CompilerFacade { meta: R3ComponentMetadata, ): any { const constantPool = new ConstantPool(); - const bindingParser = makeBindingParser(meta.interpolation); + const bindingParser = makeBindingParser(); const res = compileComponentFromMetadata(meta, constantPool, bindingParser); return this.jitExpression( res.expression, @@ -619,12 +616,11 @@ function convertDeclareComponentFacadeToMetadata( typeSourceSpan: ParseSourceSpan, sourceMapUrl: string, ): R3ComponentMetadata { - const {template, interpolation, defer} = parseJitTemplate( + const {template, defer} = parseJitTemplate( decl.template, decl.type.name, sourceMapUrl, decl.preserveWhitespaces ?? false, - decl.interpolation, decl.deferBlockDependencies, ); @@ -673,7 +669,6 @@ function convertDeclareComponentFacadeToMetadata( defer, changeDetection: decl.changeDetection ?? ChangeDetectionStrategy.Default, encapsulation: decl.encapsulation ?? ViewEncapsulation.Emulated, - interpolation, declarationListEmitMode: DeclarationListEmitMode.ClosureResolved, relativeContextFilePath: '', i18nUseExternalIds: true, @@ -737,17 +732,10 @@ function parseJitTemplate( typeName: string, sourceMapUrl: string, preserveWhitespaces: boolean, - interpolation: [string, string] | undefined, deferBlockDependencies: (() => Promise | null)[] | undefined, ) { - const interpolationConfig = interpolation - ? InterpolationConfig.fromArray(interpolation) - : DEFAULT_INTERPOLATION_CONFIG; // Parse the template and check for errors. - const parsed = parseTemplate(template, sourceMapUrl, { - preserveWhitespaces, - interpolationConfig, - }); + const parsed = parseTemplate(template, sourceMapUrl, {preserveWhitespaces}); if (parsed.errors !== null) { const errors = parsed.errors.map((err) => err.toString()).join(', '); throw new Error(`Errors during JIT compilation of template for ${typeName}: ${errors}`); @@ -757,7 +745,6 @@ function parseJitTemplate( return { template: parsed, - interpolation: interpolationConfig, defer: createR3ComponentDeferMetadata(boundTarget, deferBlockDependencies), }; } diff --git a/packages/compiler/src/ml_parser/defaults.ts b/packages/compiler/src/ml_parser/defaults.ts index a4b817174f26..90e30e55d2a4 100644 --- a/packages/compiler/src/ml_parser/defaults.ts +++ b/packages/compiler/src/ml_parser/defaults.ts @@ -24,6 +24,9 @@ export class InterpolationConfig { ) {} } +/** + * This symbol is referenced inside G3 and will require some cleanup. + */ export const DEFAULT_INTERPOLATION_CONFIG: InterpolationConfig = new InterpolationConfig( '{{', '}}', diff --git a/packages/compiler/src/ml_parser/lexer.ts b/packages/compiler/src/ml_parser/lexer.ts index 34cc570bd48e..de96aa74fba2 100644 --- a/packages/compiler/src/ml_parser/lexer.ts +++ b/packages/compiler/src/ml_parser/lexer.ts @@ -9,7 +9,6 @@ import * as chars from '../chars'; import {ParseError, ParseLocation, ParseSourceFile, ParseSourceSpan} from '../parse_util'; -import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from './defaults'; import {NAMED_ENTITIES} from './entities'; import {TagContentType, TagDefinition} from './tags'; import { @@ -42,8 +41,6 @@ export interface LexerRange { export interface TokenizeOptions { /** Whether to tokenize ICU messages (considered as text nodes when false). */ tokenizeExpansionForms?: boolean; - /** How to tokenize interpolation markers. */ - interpolationConfig?: InterpolationConfig; /** * The start and end point of the text to parse within the `source` string. * The entire `source` string is parsed if this is not provided. @@ -158,11 +155,15 @@ const SUPPORTED_BLOCKS = [ '@error', ]; +const INTERPOLATION = { + start: '{{', + end: '}}', +}; + // See https://www.w3.org/TR/html51/syntax.html#writing-html-documents class _Tokenizer { private _cursor: CharacterCursor; private _tokenizeIcu: boolean; - private _interpolationConfig: InterpolationConfig; private _leadingTriviaCodePoints: number[] | undefined; private _currentTokenStart: CharacterCursor | null = null; private _currentTokenType: TokenType | null = null; @@ -189,7 +190,6 @@ class _Tokenizer { options: TokenizeOptions, ) { this._tokenizeIcu = options.tokenizeExpansionForms || false; - this._interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG; this._leadingTriviaCodePoints = options.leadingTriviaChars && options.leadingTriviaChars.map((c) => c.codePointAt(0) || 0); const range = options.range || { @@ -1145,7 +1145,7 @@ class _Tokenizer { while (!endPredicate()) { const current = this._cursor.clone(); - if (this._interpolationConfig && this._attemptStr(this._interpolationConfig.start)) { + if (this._attemptStr(INTERPOLATION.start)) { this._endToken([this._processCarriageReturns(parts.join(''))], current); parts.length = 0; this._consumeInterpolation(interpolationTokenType, current, endInterpolation); @@ -1182,7 +1182,7 @@ class _Tokenizer { ): void { const parts: string[] = []; this._beginToken(interpolationTokenType, interpolationStart); - parts.push(this._interpolationConfig.start); + parts.push(INTERPOLATION.start); // Find the end of the interpolation, ignoring content inside quotes. const expressionStart = this._cursor.clone(); @@ -1205,10 +1205,10 @@ class _Tokenizer { } if (inQuote === null) { - if (this._attemptStr(this._interpolationConfig.end)) { + if (this._attemptStr(INTERPOLATION.end)) { // We are not in a string, and we hit the end interpolation marker parts.push(this._getProcessedChars(expressionStart, current)); - parts.push(this._interpolationConfig.end); + parts.push(INTERPOLATION.end); this._endToken(parts); return; } else if (this._attemptStr('//')) { @@ -1380,13 +1380,10 @@ class _Tokenizer { if (this._cursor.peek() !== chars.$LBRACE) { return false; } - if (this._interpolationConfig) { - const start = this._cursor.clone(); - const isInterpolation = this._attemptStr(this._interpolationConfig.start); - this._cursor = start; - return !isInterpolation; - } - return true; + const start = this._cursor.clone(); + const isInterpolation = this._attemptStr(INTERPOLATION.start); + this._cursor = start; + return !isInterpolation; } } diff --git a/packages/compiler/src/render3/partial/api.ts b/packages/compiler/src/render3/partial/api.ts index 9bd1c7e07fd5..8369c0399e70 100644 --- a/packages/compiler/src/render3/partial/api.ts +++ b/packages/compiler/src/render3/partial/api.ts @@ -228,11 +228,6 @@ export interface R3DeclareComponentMetadata extends R3DeclareDirectiveMetadata { */ encapsulation?: ViewEncapsulation; - /** - * Overrides the default interpolation start and end delimiters. Defaults to {{ and }}. - */ - interpolation?: [string, string]; - /** * Whether whitespace in the template should be preserved. Defaults to false. */ diff --git a/packages/compiler/src/render3/partial/component.ts b/packages/compiler/src/render3/partial/component.ts index c1defd2fa1c5..c9eb8c596882 100644 --- a/packages/compiler/src/render3/partial/component.ts +++ b/packages/compiler/src/render3/partial/component.ts @@ -6,7 +6,6 @@ * found in the LICENSE file at https://angular.dev/license */ import * as core from '../../core'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../../ml_parser/defaults'; import * as o from '../../output/output_ast'; import {ParseLocation, ParseSourceFile, ParseSourceSpan} from '../../parse_util'; import {RecursiveVisitor, visitAll} from '../r3_ast'; @@ -125,12 +124,6 @@ export function createComponentDefinitionMap( o.importExpr(R3.ViewEncapsulation).prop(core.ViewEncapsulation[meta.encapsulation]), ); } - if (meta.interpolation !== DEFAULT_INTERPOLATION_CONFIG) { - definitionMap.set( - 'interpolation', - o.literalArr([o.literal(meta.interpolation.start), o.literal(meta.interpolation.end)]), - ); - } if (template.preserveWhitespaces === true) { definitionMap.set('preserveWhitespaces', o.literal(true)); diff --git a/packages/compiler/src/render3/view/api.ts b/packages/compiler/src/render3/view/api.ts index a4abce3f00d8..71fb08145aeb 100644 --- a/packages/compiler/src/render3/view/api.ts +++ b/packages/compiler/src/render3/view/api.ts @@ -7,7 +7,6 @@ */ import {ChangeDetectionStrategy, ViewEncapsulation} from '../../core'; -import {InterpolationConfig} from '../../ml_parser/defaults'; import * as o from '../../output/output_ast'; import {ParseSourceSpan} from '../../parse_util'; import * as t from '../r3_ast'; @@ -274,11 +273,6 @@ export interface R3ComponentMetadata */ i18nUseExternalIds: boolean; - /** - * Overrides the default interpolation start and end delimiters ({{ and }}). - */ - interpolation: InterpolationConfig; - /** * Strategy used for detecting changes in the component. * diff --git a/packages/compiler/src/render3/view/i18n/meta.ts b/packages/compiler/src/render3/view/i18n/meta.ts index 8ed8e0a9f85a..00007d2ff4c7 100644 --- a/packages/compiler/src/render3/view/i18n/meta.ts +++ b/packages/compiler/src/render3/view/i18n/meta.ts @@ -11,11 +11,7 @@ import {computeDecimalDigest, computeDigest, decimalDigest} from '../../../i18n/ import * as i18n from '../../../i18n/i18n_ast'; import {createI18nMessageFactory, VisitNodeFn} from '../../../i18n/i18n_parser'; import * as html from '../../../ml_parser/ast'; -import { - DEFAULT_CONTAINER_BLOCKS, - DEFAULT_INTERPOLATION_CONFIG, - InterpolationConfig, -} from '../../../ml_parser/defaults'; +import {DEFAULT_CONTAINER_BLOCKS} from '../../../ml_parser/defaults'; import {ParseTreeResult} from '../../../ml_parser/parser'; import * as o from '../../../output/output_ast'; import {isTrustedTypesSink} from '../../../schema/trusted_types_sinks'; @@ -65,7 +61,6 @@ export class I18nMetaVisitor implements html.Visitor { private _errors: ParseError[] = []; constructor( - private interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, private keepI18nAttrs = false, private enableI18nLegacyMessageIdFormat = false, private containerBlocks: Set = DEFAULT_CONTAINER_BLOCKS, @@ -87,7 +82,6 @@ export class I18nMetaVisitor implements html.Visitor { ): i18n.Message { const {meaning, description, customId} = this._parseMetadata(meta); const createI18nMessage = createI18nMessageFactory( - this.interpolationConfig, this.containerBlocks, this.retainEmptyTokens, /* preserveExpressionWhitespace */ this.preserveSignificantWhitespace, diff --git a/packages/compiler/src/render3/view/template.ts b/packages/compiler/src/render3/view/template.ts index 5bdc5bf64de1..8fa6121b2014 100644 --- a/packages/compiler/src/render3/view/template.ts +++ b/packages/compiler/src/render3/view/template.ts @@ -9,7 +9,6 @@ import {Lexer} from '../../expression_parser/lexer'; import {Parser} from '../../expression_parser/parser'; import * as html from '../../ml_parser/ast'; -import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../../ml_parser/defaults'; import {HtmlParser} from '../../ml_parser/html_parser'; import {WhitespaceVisitor} from '../../ml_parser/html_whitespaces'; import {LexerRange} from '../../ml_parser/lexer'; @@ -39,10 +38,6 @@ export interface ParseTemplateOptions { * Preserve whitespace significant to rendering. */ preserveSignificantWhitespace?: boolean; - /** - * How to parse interpolation markers. - */ - interpolationConfig?: InterpolationConfig; /** * The start and end point of the text to parse within the `source` string. * The entire `source` string is parsed if this is not provided. @@ -147,9 +142,9 @@ export function parseTemplate( templateUrl: string, options: ParseTemplateOptions = {}, ): ParsedTemplate { - const {interpolationConfig, preserveWhitespaces, enableI18nLegacyMessageIdFormat} = options; + const {preserveWhitespaces, enableI18nLegacyMessageIdFormat} = options; const selectorlessEnabled = options.enableSelectorless ?? false; - const bindingParser = makeBindingParser(interpolationConfig, selectorlessEnabled); + const bindingParser = makeBindingParser(selectorlessEnabled); const htmlParser = new HtmlParser(); const parseResult = htmlParser.parse(template, templateUrl, { leadingTriviaChars: LEADING_TRIVIA_CHARS, @@ -166,7 +161,6 @@ export function parseTemplate( parseResult.errors.length > 0 ) { const parsedTemplate: ParsedTemplate = { - interpolationConfig, preserveWhitespaces, errors: parseResult.errors, nodes: [], @@ -193,7 +187,6 @@ export function parseTemplate( // extraction process (ng extract-i18n) relies on a raw content to generate // message ids const i18nMetaVisitor = new I18nMetaVisitor( - interpolationConfig, /* keepI18nAttrs */ !preserveWhitespaces, enableI18nLegacyMessageIdFormat, /* containerBlocks */ undefined, @@ -208,7 +201,6 @@ export function parseTemplate( i18nMetaResult.errors.length > 0 ) { const parsedTemplate: ParsedTemplate = { - interpolationConfig, preserveWhitespaces, errors: i18nMetaResult.errors, nodes: [], @@ -252,7 +244,6 @@ export function parseTemplate( if (i18nMetaVisitor.hasI18nMeta) { rootNodes = html.visitAll( new I18nMetaVisitor( - interpolationConfig, /* keepI18nAttrs */ false, /* enableI18nLegacyMessageIdFormat */ undefined, /* containerBlocks */ undefined, @@ -272,7 +263,6 @@ export function parseTemplate( errors.push(...parseResult.errors, ...i18nMetaResult.errors); const parsedTemplate: ParsedTemplate = { - interpolationConfig, preserveWhitespaces, errors: errors.length > 0 ? errors : null, nodes, @@ -292,16 +282,8 @@ const elementRegistry = new DomElementSchemaRegistry(); /** * Construct a `BindingParser` with a default configuration. */ -export function makeBindingParser( - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, - selectorlessEnabled = false, -): BindingParser { - return new BindingParser( - new Parser(new Lexer(), selectorlessEnabled), - interpolationConfig, - elementRegistry, - [], - ); +export function makeBindingParser(selectorlessEnabled = false): BindingParser { + return new BindingParser(new Parser(new Lexer(), selectorlessEnabled), elementRegistry, []); } /** @@ -316,10 +298,6 @@ export interface ParsedTemplate { */ preserveWhitespaces?: boolean; - /** - * How to parse interpolation markers. - */ - interpolationConfig?: InterpolationConfig; /** * Any errors from parsing the template the first time. * diff --git a/packages/compiler/src/template_parser/binding_parser.ts b/packages/compiler/src/template_parser/binding_parser.ts index fe31021a1c73..9233dea4e8d8 100644 --- a/packages/compiler/src/template_parser/binding_parser.ts +++ b/packages/compiler/src/template_parser/binding_parser.ts @@ -32,7 +32,6 @@ import { VariableBinding, } from '../expression_parser/ast'; import {Parser} from '../expression_parser/parser'; -import {InterpolationConfig} from '../ml_parser/defaults'; import {mergeNsAndName} from '../ml_parser/tags'; import {InterpolatedAttributeToken, InterpolatedTextToken} from '../ml_parser/tokens'; import {ParseError, ParseErrorLevel, ParseSourceSpan} from '../parse_util'; @@ -62,15 +61,10 @@ export interface HostListeners { export class BindingParser { constructor( private _exprParser: Parser, - private _interpolationConfig: InterpolationConfig, private _schemaRegistry: ElementSchemaRegistry, public errors: ParseError[], ) {} - get interpolationConfig(): InterpolationConfig { - return this._interpolationConfig; - } - createBoundHostProperties( properties: HostProperties, sourceSpan: ParseSourceSpan, @@ -154,7 +148,6 @@ export class BindingParser { sourceSpan, absoluteOffset, interpolatedTokens, - this._interpolationConfig, )!; if (ast) { this.errors.push(...ast.errors); @@ -536,18 +529,8 @@ export class BindingParser { ): ASTWithSource { try { const ast = isHostBinding - ? this._exprParser.parseSimpleBinding( - value, - sourceSpan, - absoluteOffset, - this._interpolationConfig, - ) - : this._exprParser.parseBinding( - value, - sourceSpan, - absoluteOffset, - this._interpolationConfig, - ); + ? this._exprParser.parseSimpleBinding(value, sourceSpan, absoluteOffset) + : this._exprParser.parseBinding(value, sourceSpan, absoluteOffset); if (ast) { this.errors.push(...ast.errors); } @@ -795,12 +778,7 @@ export class BindingParser { const absoluteOffset = sourceSpan && sourceSpan.start ? sourceSpan.start.offset : 0; try { - const ast = this._exprParser.parseAction( - value, - sourceSpan, - absoluteOffset, - this._interpolationConfig, - ); + const ast = this._exprParser.parseAction(value, sourceSpan, absoluteOffset); if (ast) { this.errors.push(...ast.errors); } diff --git a/packages/compiler/test/expression_parser/parser_spec.ts b/packages/compiler/test/expression_parser/parser_spec.ts index 47043bb3a571..3e8a6ac1007c 100644 --- a/packages/compiler/test/expression_parser/parser_spec.ts +++ b/packages/compiler/test/expression_parser/parser_spec.ts @@ -1270,17 +1270,6 @@ describe('parser', () => { checkInterpolation(`{{ 'foo' +\n 'bar' +\r 'baz' }}`, `{{ "foo" + "bar" + "baz" }}`); }); - it('should support custom interpolation', () => { - const parser = new Parser(new Lexer()); - const ast = parser.parseInterpolation('{% a %}', getFakeSpan(), 0, null, { - start: '{%', - end: '%}', - })!.ast as any; - expect(ast.strings).toEqual(['', '']); - expect(ast.expressions.length).toEqual(1); - expect(ast.expressions[0].name).toEqual('a'); - }); - describe('comments', () => { it('should ignore comments in interpolation expressions', () => { checkInterpolation('{{a //comment}}', '{{ a }}'); diff --git a/packages/compiler/test/expression_parser/utils/unparser.ts b/packages/compiler/test/expression_parser/utils/unparser.ts index e9cbe45e2d5d..b515bd09af77 100644 --- a/packages/compiler/test/expression_parser/utils/unparser.ts +++ b/packages/compiler/test/expression_parser/utils/unparser.ts @@ -37,17 +37,14 @@ import { Unary, VoidExpression, } from '../../../src/expression_parser/ast'; -import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../../../src/ml_parser/defaults'; class Unparser implements AstVisitor { private static _quoteRegExp = /"/g; // using non-null assertion because they're both re(set) by unparse() private _expression!: string; - private _interpolationConfig!: InterpolationConfig; - unparse(ast: AST, interpolationConfig: InterpolationConfig) { + unparse(ast: AST) { this._expression = ''; - this._interpolationConfig = interpolationConfig; this._visit(ast); return this._expression; } @@ -127,9 +124,9 @@ class Unparser implements AstVisitor { for (let i = 0; i < ast.strings.length; i++) { this._expression += ast.strings[i]; if (i < ast.expressions.length) { - this._expression += `${this._interpolationConfig.start} `; + this._expression += `{{ `; this._visit(ast.expressions[i]); - this._expression += ` ${this._interpolationConfig.end}`; + this._expression += ` }}`; } } } @@ -244,20 +241,14 @@ class Unparser implements AstVisitor { const sharedUnparser = new Unparser(); -export function unparse( - ast: AST, - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, -): string { - return sharedUnparser.unparse(ast, interpolationConfig); +export function unparse(ast: AST): string { + return sharedUnparser.unparse(ast); } // [unparsed AST, original source code of AST] type UnparsedWithSpan = [string, string]; -export function unparseWithSpan( - ast: ASTWithSource, - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, -): UnparsedWithSpan[] { +export function unparseWithSpan(ast: ASTWithSource): UnparsedWithSpan[] { const unparsed: UnparsedWithSpan[] = []; const source = ast.source!; const recursiveSpanUnparser = new (class extends RecursiveAstVisitor { @@ -265,7 +256,7 @@ export function unparseWithSpan( const span = ast[spanKey]; const prefix = spanKey === 'span' ? '' : `[${spanKey}] `; const src = source.substring(span.start, span.end); - unparsedList.push([unparse(ast, interpolationConfig), prefix + src]); + unparsedList.push([unparse(ast), prefix + src]); } override visit(ast: AST, unparsedList: UnparsedWithSpan[]) { diff --git a/packages/compiler/test/i18n/extractor_merger_spec.ts b/packages/compiler/test/i18n/extractor_merger_spec.ts index bdb82e4004fb..fde4dc6ef136 100644 --- a/packages/compiler/test/i18n/extractor_merger_spec.ts +++ b/packages/compiler/test/i18n/extractor_merger_spec.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {DEFAULT_INTERPOLATION_CONFIG, HtmlParser} from '../../index'; +import {HtmlParser} from '../../index'; import {MissingTranslationStrategy} from '@angular/core'; import {digest, serializeNodes as serializeI18nNodes} from '../../src/i18n/digest'; @@ -530,7 +530,6 @@ describe('Merger', () => { const htmlNodes: html.Node[] = parseHtml(HTML); const messages: i18n.Message[] = extractMessages( htmlNodes, - DEFAULT_INTERPOLATION_CONFIG, [], {}, /* preserveSignificantWhitespace */ true, @@ -541,13 +540,7 @@ describe('Merger', () => { i18nMsgMap[digest(messages[0])] = []; const translations = new TranslationBundle(i18nMsgMap, null, digest); - const output = mergeTranslations( - htmlNodes, - translations, - DEFAULT_INTERPOLATION_CONFIG, - [], - {}, - ); + const output = mergeTranslations(htmlNodes, translations, [], {}); expect(output.errors).toEqual([]); expect(serializeHtmlNodes(output.rootNodes).join('')).toEqual(`
`); @@ -607,7 +600,6 @@ describe('Merger', () => { const htmlNodes: html.Node[] = parseHtml(HTML); const messages: i18n.Message[] = extractMessages( htmlNodes, - DEFAULT_INTERPOLATION_CONFIG, [], {}, /* preserveSignificantWhitespace */ true, @@ -618,13 +610,7 @@ describe('Merger', () => { i18nMsgMap[digest(messages[0])] = []; const translations = new TranslationBundle(i18nMsgMap, null, digest); - const output = mergeTranslations( - htmlNodes, - translations, - DEFAULT_INTERPOLATION_CONFIG, - [], - {}, - ); + const output = mergeTranslations(htmlNodes, translations, [], {}); expect(output.errors).toEqual([]); expect(serializeHtmlNodes(output.rootNodes).join('')).toEqual( @@ -675,7 +661,6 @@ function fakeTranslate( const htmlNodes: html.Node[] = parseHtml(content); const messages: i18n.Message[] = extractMessages( htmlNodes, - DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs, /* preserveSignificantWhitespace */ true, @@ -690,13 +675,7 @@ function fakeTranslate( }); const translationBundle = new TranslationBundle(i18nMsgMap, null, digest); - const output = mergeTranslations( - htmlNodes, - translationBundle, - DEFAULT_INTERPOLATION_CONFIG, - implicitTags, - implicitAttrs, - ); + const output = mergeTranslations(htmlNodes, translationBundle, implicitTags, implicitAttrs); expect(output.errors).toEqual([]); return serializeHtmlNodes(output.rootNodes).join(''); @@ -716,13 +695,7 @@ function fakeNoTranslate( MissingTranslationStrategy.Ignore, console, ); - const output = mergeTranslations( - htmlNodes, - translationBundle, - DEFAULT_INTERPOLATION_CONFIG, - implicitTags, - implicitAttrs, - ); + const output = mergeTranslations(htmlNodes, translationBundle, implicitTags, implicitAttrs); expect(output.errors).toEqual([]); return serializeHtmlNodes(output.rootNodes).join(''); @@ -735,7 +708,6 @@ function extract( ): [string[], string, string, string][] { const result = extractMessages( parseHtml(html), - DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs, /* preserveSignificantWhitespace */ true, @@ -760,7 +732,6 @@ function extractErrors( ): any[] { const errors = extractMessages( parseHtml(html), - DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs, /* preserveSignificantWhitespace */ true, diff --git a/packages/compiler/test/i18n/i18n_ast_spec.ts b/packages/compiler/test/i18n/i18n_ast_spec.ts index 69c946d315d9..537b4e5b0083 100644 --- a/packages/compiler/test/i18n/i18n_ast_spec.ts +++ b/packages/compiler/test/i18n/i18n_ast_spec.ts @@ -8,12 +8,11 @@ import {createI18nMessageFactory} from '../../src/i18n/i18n_parser'; import {Node} from '../../src/ml_parser/ast'; -import {DEFAULT_CONTAINER_BLOCKS, DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; +import {DEFAULT_CONTAINER_BLOCKS} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; describe('Message', () => { const messageFactory = createI18nMessageFactory( - DEFAULT_INTERPOLATION_CONFIG, DEFAULT_CONTAINER_BLOCKS, /* retainEmptyTokens */ false, /* preserveExpressionWhitespace */ true, diff --git a/packages/compiler/test/i18n/i18n_parser_spec.ts b/packages/compiler/test/i18n/i18n_parser_spec.ts index a1767086c2bc..9cb3968b9fe2 100644 --- a/packages/compiler/test/i18n/i18n_parser_spec.ts +++ b/packages/compiler/test/i18n/i18n_parser_spec.ts @@ -9,7 +9,6 @@ import {digest, serializeNodes} from '../../src/i18n/digest'; import {extractMessages} from '../../src/i18n/extractor_merger'; import {Message} from '../../src/i18n/i18n_ast'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; describe('I18nParser', () => { @@ -426,7 +425,6 @@ export function _extractMessages( return extractMessages( parseResult.rootNodes, - DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs, preserveSignificantWhitespace, diff --git a/packages/compiler/test/i18n/integration_common.ts b/packages/compiler/test/i18n/integration_common.ts index 81b3a24e853b..1d41fef9c0e4 100644 --- a/packages/compiler/test/i18n/integration_common.ts +++ b/packages/compiler/test/i18n/integration_common.ts @@ -9,7 +9,6 @@ import {NgLocalization} from '@angular/common'; import {Serializer} from '../../src/i18n'; import {MessageBundle} from '../../src/i18n/message_bundle'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; import {ResourceLoader} from '../../src/resource_loader'; import {Component, DebugElement, TRANSLATIONS, TRANSLATIONS_FORMAT} from '@angular/core'; @@ -204,6 +203,6 @@ export function createComponent(html: string) { export function serializeTranslations(html: string, serializer: Serializer) { const catalog = new MessageBundle(new HtmlParser(), [], {}); - catalog.updateFromTemplate(html, 'file.ts', DEFAULT_INTERPOLATION_CONFIG); + catalog.updateFromTemplate(html, 'file.ts'); return catalog.write(serializer); } diff --git a/packages/compiler/test/i18n/message_bundle_spec.ts b/packages/compiler/test/i18n/message_bundle_spec.ts index 524c6133cb29..7c2cdab44133 100644 --- a/packages/compiler/test/i18n/message_bundle_spec.ts +++ b/packages/compiler/test/i18n/message_bundle_spec.ts @@ -10,7 +10,6 @@ import {serializeNodes} from '../../src/i18n/digest'; import * as i18n from '../../src/i18n/i18n_ast'; import {MessageBundle} from '../../src/i18n/message_bundle'; import {Serializer} from '../../src/i18n/serializers/serializer'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; describe('MessageBundle', () => { @@ -22,11 +21,7 @@ describe('MessageBundle', () => { }); it('should extract the message to the catalog', () => { - messages.updateFromTemplate( - '

Translate Me

', - 'url', - DEFAULT_INTERPOLATION_CONFIG, - ); + messages.updateFromTemplate('

Translate Me

', 'url'); expect(humanizeMessages(messages)).toEqual(['Translate Me (m|d)']); }); @@ -34,7 +29,6 @@ describe('MessageBundle', () => { messages.updateFromTemplate( '

Translate Me

Translate Me

Translate Me

', 'url', - DEFAULT_INTERPOLATION_CONFIG, ); expect(humanizeMessages(messages)).toEqual(['Translate Me (m|d)', 'Translate Me (|)']); }); diff --git a/packages/compiler/test/i18n/serializers/xliff2_spec.ts b/packages/compiler/test/i18n/serializers/xliff2_spec.ts index d9bcf2351db5..01db83afdd7d 100644 --- a/packages/compiler/test/i18n/serializers/xliff2_spec.ts +++ b/packages/compiler/test/i18n/serializers/xliff2_spec.ts @@ -11,7 +11,6 @@ import {escapeRegExp} from '../../../src/util'; import {serializeNodes} from '../../../src/i18n/digest'; import {MessageBundle} from '../../../src/i18n/message_bundle'; import {Xliff2} from '../../../src/i18n/serializers/xliff2'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../../../src/ml_parser/defaults'; import {HtmlParser} from '../../../src/ml_parser/html_parser'; const HTML = ` @@ -283,7 +282,7 @@ describe('XLIFF 2.0 serializer', () => { function toXliff(html: string, locale: string | null = null): string { const catalog = new MessageBundle(new HtmlParser(), [], {}, locale); - catalog.updateFromTemplate(html, 'file.ts', DEFAULT_INTERPOLATION_CONFIG); + catalog.updateFromTemplate(html, 'file.ts'); return catalog.write(serializer); } diff --git a/packages/compiler/test/i18n/serializers/xliff_spec.ts b/packages/compiler/test/i18n/serializers/xliff_spec.ts index 051fcd23b802..02ec43bc16fc 100644 --- a/packages/compiler/test/i18n/serializers/xliff_spec.ts +++ b/packages/compiler/test/i18n/serializers/xliff_spec.ts @@ -11,7 +11,6 @@ import {escapeRegExp} from '../../../src/util'; import {serializeNodes} from '../../../src/i18n/digest'; import {MessageBundle} from '../../../src/i18n/message_bundle'; import {Xliff} from '../../../src/i18n/serializers/xliff'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../../../src/ml_parser/defaults'; import {HtmlParser} from '../../../src/ml_parser/html_parser'; const HTML = ` @@ -261,7 +260,7 @@ describe('XLIFF serializer', () => { function toXliff(html: string, locale: string | null = null): string { const catalog = new MessageBundle(new HtmlParser(), [], {}, locale); - catalog.updateFromTemplate(html, 'file.ts', DEFAULT_INTERPOLATION_CONFIG); + catalog.updateFromTemplate(html, 'file.ts'); return catalog.write(serializer); } diff --git a/packages/compiler/test/i18n/serializers/xmb_spec.ts b/packages/compiler/test/i18n/serializers/xmb_spec.ts index b94eae0224f1..69f93724e1ba 100644 --- a/packages/compiler/test/i18n/serializers/xmb_spec.ts +++ b/packages/compiler/test/i18n/serializers/xmb_spec.ts @@ -8,7 +8,6 @@ import {MessageBundle} from '../../../src/i18n/message_bundle'; import {Xmb} from '../../../src/i18n/serializers/xmb'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../../../src/ml_parser/defaults'; import {HtmlParser} from '../../../src/ml_parser/html_parser'; describe('XMB serializer', () => { @@ -80,7 +79,7 @@ function toXmb(html: string, url: string, locale: string | null = null): string const catalog = new MessageBundle(new HtmlParser(), [], {}, locale); const serializer = new Xmb(); - catalog.updateFromTemplate(html, url, DEFAULT_INTERPOLATION_CONFIG); + catalog.updateFromTemplate(html, url); return catalog.write(serializer); } diff --git a/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts b/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts index eccba9892665..78468b19dc33 100644 --- a/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts +++ b/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts @@ -8,7 +8,6 @@ import * as i18n from '../../src/i18n/i18n_ast'; import {MessageBundle} from '../../src/i18n/message_bundle'; -import {DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; import {Xmb} from '../../src/i18n/serializers/xmb'; @@ -452,7 +451,7 @@ function extractMessages(source: string, preserveWhitespace: boolean): Assertabl undefined /* locale */, preserveWhitespace, ); - const errors = bundle.updateFromTemplate(source, 'url', DEFAULT_INTERPOLATION_CONFIG); + const errors = bundle.updateFromTemplate(source, 'url'); if (errors.length !== 0) { throw new Error( `Failed to parse template:\n${errors.map((err) => err.toString()).join('\n\n')}`, diff --git a/packages/compiler/test/ml_parser/lexer_spec.ts b/packages/compiler/test/ml_parser/lexer_spec.ts index 6bac11ae3e0c..6587fc799cd9 100644 --- a/packages/compiler/test/ml_parser/lexer_spec.ts +++ b/packages/compiler/test/ml_parser/lexer_spec.ts @@ -2203,17 +2203,6 @@ describe('HtmlLexer', () => { ]); }); - it('should parse interpolation with custom markers', () => { - expect( - tokenizeAndHumanizeParts('{% a %}', {interpolationConfig: {start: '{%', end: '%}'}}), - ).toEqual([ - [TokenType.TEXT, ''], - [TokenType.INTERPOLATION, '{%', ' a ', '%}'], - [TokenType.TEXT, ''], - [TokenType.EOF], - ]); - }); - it('should handle CR & LF in text', () => { expect(tokenizeAndHumanizeParts('t\ne\rs\r\nt')).toEqual([ [TokenType.TEXT, 't\ne\ns\nt'], diff --git a/packages/compiler/test/render3/view/util.ts b/packages/compiler/test/render3/view/util.ts index b63d5a355aa6..a8141cb1f0e1 100644 --- a/packages/compiler/test/render3/view/util.ts +++ b/packages/compiler/test/render3/view/util.ts @@ -10,7 +10,6 @@ import * as e from '../../../src/expression_parser/ast'; import {Lexer} from '../../../src/expression_parser/lexer'; import {Parser} from '../../../src/expression_parser/parser'; import * as html from '../../../src/ml_parser/ast'; -import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../../../src/ml_parser/defaults'; import {HtmlParser} from '../../../src/ml_parser/html_parser'; import {WhitespaceVisitor, visitAllWithSiblings} from '../../../src/ml_parser/html_whitespaces'; import {ParseTreeResult} from '../../../src/ml_parser/parser'; @@ -182,12 +181,7 @@ export function parseR3( ['onEvent'], ['onEvent'], ); - const bindingParser = new BindingParser( - expressionParser, - DEFAULT_INTERPOLATION_CONFIG, - schemaRegistry, - [], - ); + const bindingParser = new BindingParser(expressionParser, schemaRegistry, []); const r3Result = htmlAstToRender3Ast(htmlNodes, bindingParser, {collectCommentNodes: false}); if (r3Result.errors.length > 0 && !options.ignoreError) { @@ -198,15 +192,9 @@ export function parseR3( return r3Result; } -export function processI18nMeta( - htmlAstWithErrors: ParseTreeResult, - interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, -): ParseTreeResult { +export function processI18nMeta(htmlAstWithErrors: ParseTreeResult): ParseTreeResult { return new ParseTreeResult( - html.visitAll( - new I18nMetaVisitor(interpolationConfig, /* keepI18nAttrs */ false), - htmlAstWithErrors.rootNodes, - ), + html.visitAll(new I18nMetaVisitor(/* keepI18nAttrs */ false), htmlAstWithErrors.rootNodes), htmlAstWithErrors.errors, ); } diff --git a/packages/core/schematics/migrations/signal-migration/src/utils/extract_template.ts b/packages/core/schematics/migrations/signal-migration/src/utils/extract_template.ts index 4be82bc74949..760332d5ada7 100644 --- a/packages/core/schematics/migrations/signal-migration/src/utils/extract_template.ts +++ b/packages/core/schematics/migrations/signal-migration/src/utils/extract_template.ts @@ -8,14 +8,12 @@ import ts from 'typescript'; import {ReflectionHost, reflectObjectLiteral} from '@angular/compiler-cli/src/ngtsc/reflection'; -import {MigrationHost} from '../migration_host'; import {getAngularDecorators, ResourceLoader} from '@angular/compiler-cli/src/ngtsc/annotations'; import {PartialEvaluator} from '@angular/compiler-cli/src/ngtsc/partial_evaluator'; import { ExternalTemplateDeclaration, InlineTemplateDeclaration, } from '@angular/compiler-cli/src/ngtsc/annotations/component/src/resources'; -import {DEFAULT_INTERPOLATION_CONFIG} from '@angular/compiler'; /** * Attempts to extract the `TemplateDefinition` for the given @@ -59,7 +57,6 @@ export function attemptExtractTemplateDefinition( return { isInline: true, expression: templateProp, - interpolationConfig: DEFAULT_INTERPOLATION_CONFIG, preserveWhitespaces: false, resolvedTemplateUrl: containingFile, templateUrl: containingFile, @@ -74,7 +71,6 @@ export function attemptExtractTemplateDefinition( if (typeof templateUrl === 'string') { return { isInline: false, - interpolationConfig: DEFAULT_INTERPOLATION_CONFIG, preserveWhitespaces: false, templateUrlExpression: templateUrlProp, templateUrl, diff --git a/packages/core/src/compiler/compiler_facade_interface.ts b/packages/core/src/compiler/compiler_facade_interface.ts index 8d9c9c564284..2bcabf8d6cbd 100644 --- a/packages/core/src/compiler/compiler_facade_interface.ts +++ b/packages/core/src/compiler/compiler_facade_interface.ts @@ -214,7 +214,6 @@ export interface R3ComponentMetadataFacade extends R3DirectiveMetadataFacade { styles: string[]; encapsulation: ViewEncapsulation; viewProviders: Provider[] | null; - interpolation?: [string, string]; changeDetection?: ChangeDetectionStrategy; hasDirectiveDependencies: boolean; } @@ -277,7 +276,6 @@ export interface R3DeclareComponentFacade extends R3DeclareDirectiveFacade { animations?: OpaqueValue; changeDetection?: ChangeDetectionStrategy; encapsulation?: ViewEncapsulation; - interpolation?: [string, string]; preserveWhitespaces?: boolean; } From 71cde35f5e9825c56a7c3ced5b4f7f49372f386f Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Thu, 25 Sep 2025 11:41:05 +0200 Subject: [PATCH 15/42] refactor(compiler): throw on attribute bindings for `ng-container` (#64072) They are never valid on ng-container. fixes #53760 PR Close #64072 --- .../src/render3/r3_template_transform.ts | 12 ++++++++++++ .../test/render3/r3_template_transform_spec.ts | 17 ++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/compiler/src/render3/r3_template_transform.ts b/packages/compiler/src/render3/r3_template_transform.ts index d740a75dca96..c38c30a12286 100644 --- a/packages/compiler/src/render3/r3_template_transform.ts +++ b/packages/compiler/src/render3/r3_template_transform.ts @@ -234,6 +234,18 @@ class HtmlAstToIvyAst implements html.Visitor { parsedProperties, i18nAttrsMeta, ); + + if (element.name === 'ng-container') { + for (const bound of attrs.bound) { + if (bound.type === BindingType.Attribute) { + this.reportError( + `Attribute bindings are not supported on ng-container. Use property bindings instead.`, + bound.sourceSpan, + ); + } + } + } + parsedElement = new t.Element( element.name, attributes, diff --git a/packages/compiler/test/render3/r3_template_transform_spec.ts b/packages/compiler/test/render3/r3_template_transform_spec.ts index 643095c30f05..8e96ebbc8f62 100644 --- a/packages/compiler/test/render3/r3_template_transform_spec.ts +++ b/packages/compiler/test/render3/r3_template_transform_spec.ts @@ -2664,7 +2664,7 @@ describe('R3 template transform', () => { ['Directive', 'Dir'], ['TextAttribute', 'a', '1'], ['BoundAttribute', 0, 'b', 'two'], - ['BoundAttribute', 5, 'd', 'd'], + ['BoundAttribute', BindingType.TwoWay, 'd', 'd'], ['BoundEvent', 0, 'c', null, 'c()'], ['BoundEvent', 2, 'dChange', null, 'd'], ]); @@ -2771,4 +2771,19 @@ describe('R3 template transform', () => { }); }); }); + + it('should report an error for attribute bindings on ng-container', () => { + const template = ``; + const errors = parse(template, {ignoreError: true}).errors; + expect(errors.length).toBe(1); + expect(errors[0].msg).toBe( + 'Attribute bindings are not supported on ng-container. Use property bindings instead.', + ); + }); + + it('should not report an error on non-attr bindings on ng-container', () => { + const template = ``; + const errors = parse(template, {ignoreError: true}).errors; + expect(errors.length).toBe(0); + }); }); From d900dba595fc1c544122b0aad0a2dbfaf25d32ca Mon Sep 17 00:00:00 2001 From: Jessica Janiuk Date: Fri, 26 Sep 2025 12:04:22 -0700 Subject: [PATCH 16/42] Revert "refactor(compiler): Remove the interpolation config (#64071)" (#64110) This reverts commit 768a09d3c306737d1cae55ae6accbb89ca50a40a. PR Close #64110 --- .../partial_component_linker_1.ts | 26 +++++++++++++ .../annotations/component/src/handler.ts | 5 ++- .../annotations/component/src/resources.ts | 10 +++++ .../src/ngtsc/xi18n/src/context.ts | 4 +- .../compiler/src/compiler_facade_interface.ts | 2 + .../compiler/src/expression_parser/parser.ts | 38 +++++++++++++----- .../compiler/src/i18n/extractor_merger.ts | 23 +++++++---- .../compiler/src/i18n/i18n_html_parser.ts | 12 +++++- packages/compiler/src/i18n/i18n_parser.ts | 7 +++- packages/compiler/src/i18n/message_bundle.ts | 13 ++++++- packages/compiler/src/jit_compiler_facade.ts | 21 ++++++++-- packages/compiler/src/ml_parser/defaults.ts | 3 -- packages/compiler/src/ml_parser/lexer.ts | 29 +++++++------- packages/compiler/src/render3/partial/api.ts | 5 +++ .../compiler/src/render3/partial/component.ts | 7 ++++ packages/compiler/src/render3/view/api.ts | 6 +++ .../compiler/src/render3/view/i18n/meta.ts | 8 +++- .../compiler/src/render3/view/template.ts | 30 ++++++++++++-- .../src/template_parser/binding_parser.ts | 28 +++++++++++-- .../test/expression_parser/parser_spec.ts | 11 ++++++ .../test/expression_parser/utils/unparser.ts | 23 +++++++---- .../test/i18n/extractor_merger_spec.ts | 39 ++++++++++++++++--- packages/compiler/test/i18n/i18n_ast_spec.ts | 3 +- .../compiler/test/i18n/i18n_parser_spec.ts | 2 + .../compiler/test/i18n/integration_common.ts | 3 +- .../compiler/test/i18n/message_bundle_spec.ts | 8 +++- .../test/i18n/serializers/xliff2_spec.ts | 3 +- .../test/i18n/serializers/xliff_spec.ts | 3 +- .../test/i18n/serializers/xmb_spec.ts | 3 +- .../test/i18n/whitespace_sensitivity_spec.ts | 3 +- .../compiler/test/ml_parser/lexer_spec.ts | 11 ++++++ packages/compiler/test/render3/view/util.ts | 18 +++++++-- .../src/utils/extract_template.ts | 4 ++ .../src/compiler/compiler_facade_interface.ts | 2 + 34 files changed, 339 insertions(+), 74 deletions(-) diff --git a/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.ts b/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.ts index aa41c63697af..640315de07a8 100644 --- a/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.ts +++ b/packages/compiler-cli/linker/src/file_linker/partial_linkers/partial_component_linker_1.ts @@ -10,8 +10,10 @@ import { compileComponentFromMetadata, ConstantPool, DeclarationListEmitMode, + DEFAULT_INTERPOLATION_CONFIG, DeferBlockDepsEmitMode, ForwardRefHandling, + InterpolationConfig, makeBindingParser, outputAst as o, ParsedTemplate, @@ -93,6 +95,7 @@ export class PartialComponentLinkerVersion1 metaObj: AstObject, version: string, ): R3ComponentMetadata { + const interpolation = parseInterpolationConfig(metaObj); const templateSource = metaObj.getValue('template'); const isInline = metaObj.has('isInline') ? metaObj.getBoolean('isInline') : false; const templateInfo = this.getTemplateInfo(templateSource, isInline); @@ -106,6 +109,7 @@ export class PartialComponentLinkerVersion1 const template = parseTemplate(templateInfo.code, templateInfo.sourceUrl, { escapedString: templateInfo.isEscaped, + interpolationConfig: interpolation, range: templateInfo.range, enableI18nLegacyMessageIdFormat: false, preserveWhitespaces: metaObj.has('preserveWhitespaces') @@ -240,6 +244,7 @@ export class PartialComponentLinkerVersion1 encapsulation: metaObj.has('encapsulation') ? parseEncapsulation(metaObj.getValue('encapsulation')) : ViewEncapsulation.Emulated, + interpolation, changeDetection: metaObj.has('changeDetection') ? parseChangeDetectionStrategy(metaObj.getValue('changeDetection')) : ChangeDetectionStrategy.Default, @@ -375,6 +380,27 @@ interface TemplateInfo { isEscaped: boolean; } +/** + * Extract an `InterpolationConfig` from the component declaration. + */ +function parseInterpolationConfig( + metaObj: AstObject, +): InterpolationConfig { + if (!metaObj.has('interpolation')) { + return DEFAULT_INTERPOLATION_CONFIG; + } + + const interpolationExpr = metaObj.getValue('interpolation'); + const values = interpolationExpr.getArray().map((entry) => entry.getString()); + if (values.length !== 2) { + throw new FatalLinkerError( + interpolationExpr.expression, + 'Unsupported interpolation config, expected an array containing exactly two strings', + ); + } + return InterpolationConfig.fromArray(values as [string, string]); +} + /** * Determines the `ViewEncapsulation` mode from the AST value's symbol name. */ diff --git a/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts b/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts index 609ac9c97fb8..b3d350493e7d 100644 --- a/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts +++ b/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.ts @@ -20,6 +20,7 @@ import { CssSelector, DeclarationListEmitMode, DeclareComponentTemplateInfo, + DEFAULT_INTERPOLATION_CONFIG, DeferBlockDepsEmitMode, DomElementSchemaRegistry, ExternalExpr, @@ -950,6 +951,7 @@ export class ComponentDecoratorHandler template, encapsulation, changeDetection, + interpolation: template.interpolationConfig ?? DEFAULT_INTERPOLATION_CONFIG, styles, externalStyles, // These will be replaced during the compilation step, after all `NgModule`s have been @@ -1343,6 +1345,7 @@ export class ComponentDecoratorHandler ctx.updateFromTemplate( analysis.template.content, analysis.template.declaration.resolvedTemplateUrl, + analysis.template.interpolationConfig ?? DEFAULT_INTERPOLATION_CONFIG, ); } @@ -2466,7 +2469,7 @@ export class ComponentDecoratorHandler /** Creates a new binding parser. */ private getNewBindingParser() { - return makeBindingParser(this.enableSelectorless); + return makeBindingParser(undefined, this.enableSelectorless); } } diff --git a/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.ts b/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.ts index 4a7f0e216b5b..0b56ef5ccf66 100644 --- a/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.ts +++ b/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.ts @@ -7,6 +7,8 @@ */ import { + DEFAULT_INTERPOLATION_CONFIG, + InterpolationConfig, LexerRange, ParsedTemplate, ParseSourceFile, @@ -89,6 +91,7 @@ export interface ParsedTemplateWithSource extends ParsedComponentTemplate { */ interface CommonTemplateDeclaration { preserveWhitespaces: boolean; + interpolationConfig: InterpolationConfig; templateUrl: string; resolvedTemplateUrl: string; } @@ -281,6 +284,7 @@ export function createEmptyTemplate( declaration: templateUrl ? { isInline: false, + interpolationConfig: InterpolationConfig.fromArray(null), preserveWhitespaces: false, templateUrlExpression: templateUrl, templateUrl: 'missing.ng.html', @@ -288,6 +292,7 @@ export function createEmptyTemplate( } : { isInline: true, + interpolationConfig: InterpolationConfig.fromArray(null), preserveWhitespaces: false, expression: template!, templateUrl: containingFile, @@ -307,6 +312,7 @@ function parseExtractedTemplate( // We always normalize line endings if the template has been escaped (i.e. is inline). const i18nNormalizeLineEndingsInICUs = escapedString || options.i18nNormalizeLineEndingsInICUs; const commonParseOptions: ParseTemplateOptions = { + interpolationConfig: template.interpolationConfig, range: sourceParseRange ?? undefined, enableI18nLegacyMessageIdFormat: options.enableI18nLegacyMessageIdFormat, i18nNormalizeLineEndingsInICUs, @@ -373,6 +379,7 @@ export function parseTemplateDeclaration( preserveWhitespaces = value; } + let interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; if (component.has('interpolation')) { const expr = component.get('interpolation')!; const value = evaluator.evaluate(expr); @@ -387,6 +394,7 @@ export function parseTemplateDeclaration( 'interpolation must be an array with 2 elements of string type', ); } + interpolationConfig = InterpolationConfig.fromArray(value as [string, string]); } if (component.has('templateUrl')) { @@ -403,6 +411,7 @@ export function parseTemplateDeclaration( const resourceUrl = resourceLoader.resolve(templateUrl, containingFile); return { isInline: false, + interpolationConfig, preserveWhitespaces, templateUrl, templateUrlExpression: templateUrlExpr, @@ -424,6 +433,7 @@ export function parseTemplateDeclaration( } else if (component.has('template')) { return { isInline: true, + interpolationConfig, preserveWhitespaces, expression: component.get('template')!, templateUrl: containingFile, diff --git a/packages/compiler-cli/src/ngtsc/xi18n/src/context.ts b/packages/compiler-cli/src/ngtsc/xi18n/src/context.ts index 04fecfd6f82c..55759b35accf 100644 --- a/packages/compiler-cli/src/ngtsc/xi18n/src/context.ts +++ b/packages/compiler-cli/src/ngtsc/xi18n/src/context.ts @@ -6,6 +6,8 @@ * found in the LICENSE file at https://angular.dev/license */ +import {InterpolationConfig} from '@angular/compiler'; + /** * Captures template information intended for extraction of i18n messages from a template. * @@ -21,5 +23,5 @@ export interface Xi18nContext { * the return type is declared as `void` for simplicity, since any parse errors would be reported * as diagnostics anyway. */ - updateFromTemplate(html: string, url: string): void; + updateFromTemplate(html: string, url: string, interpolationConfig: InterpolationConfig): void; } diff --git a/packages/compiler/src/compiler_facade_interface.ts b/packages/compiler/src/compiler_facade_interface.ts index 40257917b73b..af405c1e2d0d 100644 --- a/packages/compiler/src/compiler_facade_interface.ts +++ b/packages/compiler/src/compiler_facade_interface.ts @@ -214,6 +214,7 @@ export interface R3ComponentMetadataFacade extends R3DirectiveMetadataFacade { styles: string[]; encapsulation: ViewEncapsulation; viewProviders: Provider[] | null; + interpolation?: [string, string]; changeDetection?: ChangeDetectionStrategy; hasDirectiveDependencies: boolean; } @@ -276,6 +277,7 @@ export interface R3DeclareComponentFacade extends R3DeclareDirectiveFacade { animations?: OpaqueValue; changeDetection?: ChangeDetectionStrategy; encapsulation?: ViewEncapsulation; + interpolation?: [string, string]; preserveWhitespaces?: boolean; } diff --git a/packages/compiler/src/expression_parser/parser.ts b/packages/compiler/src/expression_parser/parser.ts index 5878807cfb9b..05e779ad6104 100644 --- a/packages/compiler/src/expression_parser/parser.ts +++ b/packages/compiler/src/expression_parser/parser.ts @@ -7,6 +7,7 @@ */ import * as chars from '../chars'; +import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../ml_parser/defaults'; import { InterpolatedAttributeToken, InterpolatedTextToken, @@ -101,9 +102,10 @@ export class Parser { input: string, parseSourceSpan: ParseSourceSpan, absoluteOffset: number, + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): ASTWithSource { const errors: ParseError[] = []; - this._checkNoInterpolation(errors, input, parseSourceSpan); + this._checkNoInterpolation(errors, input, parseSourceSpan, interpolationConfig); const {stripped: sourceToLex} = this._stripComments(input); const tokens = this._lexer.tokenize(sourceToLex); const ast = new _ParseAST( @@ -124,9 +126,16 @@ export class Parser { input: string, parseSourceSpan: ParseSourceSpan, absoluteOffset: number, + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): ASTWithSource { const errors: ParseError[] = []; - const ast = this._parseBindingAst(input, parseSourceSpan, absoluteOffset, errors); + const ast = this._parseBindingAst( + input, + parseSourceSpan, + absoluteOffset, + interpolationConfig, + errors, + ); return new ASTWithSource(ast, input, getLocation(parseSourceSpan), absoluteOffset, errors); } @@ -141,9 +150,16 @@ export class Parser { input: string, parseSourceSpan: ParseSourceSpan, absoluteOffset: number, + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): ASTWithSource { const errors: ParseError[] = []; - const ast = this._parseBindingAst(input, parseSourceSpan, absoluteOffset, errors); + const ast = this._parseBindingAst( + input, + parseSourceSpan, + absoluteOffset, + interpolationConfig, + errors, + ); const simplExpressionErrors = this.checkSimpleExpression(ast); if (simplExpressionErrors.length > 0) { @@ -163,9 +179,10 @@ export class Parser { input: string, parseSourceSpan: ParseSourceSpan, absoluteOffset: number, + interpolationConfig: InterpolationConfig, errors: ParseError[], ): AST { - this._checkNoInterpolation(errors, input, parseSourceSpan); + this._checkNoInterpolation(errors, input, parseSourceSpan, interpolationConfig); const {stripped: sourceToLex} = this._stripComments(input); const tokens = this._lexer.tokenize(sourceToLex); return new _ParseAST( @@ -236,6 +253,7 @@ export class Parser { parseSourceSpan: ParseSourceSpan, absoluteOffset: number, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): ASTWithSource | null { const errors: ParseError[] = []; const {strings, expressions, offsets} = this.splitInterpolation( @@ -243,6 +261,7 @@ export class Parser { parseSourceSpan, errors, interpolatedTokens, + interpolationConfig, ); if (expressions.length === 0) return null; @@ -357,6 +376,7 @@ export class Parser { parseSourceSpan: ParseSourceSpan, errors: ParseError[], interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, ): SplitInterpolation { const strings: InterpolationPiece[] = []; const expressions: InterpolationPiece[] = []; @@ -367,8 +387,7 @@ export class Parser { let i = 0; let atInterpolation = false; let extendLastString = false; - const interpStart = '{{'; - const interpEnd = '}}'; + let {start: interpStart, end: interpEnd} = interpolationConfig; while (i < input.length) { if (!atInterpolation) { // parse until starting {{ @@ -473,17 +492,18 @@ export class Parser { errors: ParseError[], input: string, parseSourceSpan: ParseSourceSpan, + {start, end}: InterpolationConfig, ): void { let startIndex = -1; let endIndex = -1; for (const charIndex of this._forEachUnquotedChar(input, 0)) { if (startIndex === -1) { - if (input.startsWith('{{')) { + if (input.startsWith(start)) { startIndex = charIndex; } } else { - endIndex = this._getInterpolationEndIndex(input, '}}', charIndex); + endIndex = this._getInterpolationEndIndex(input, end, charIndex); if (endIndex > -1) { break; } @@ -493,7 +513,7 @@ export class Parser { if (startIndex > -1 && endIndex > -1) { errors.push( getParseError( - `Got interpolation ({{}}) where expression was expected`, + `Got interpolation (${start}${end}) where expression was expected`, input, `at column ${startIndex} in`, parseSourceSpan, diff --git a/packages/compiler/src/i18n/extractor_merger.ts b/packages/compiler/src/i18n/extractor_merger.ts index d753c71fa144..35bf56b19979 100644 --- a/packages/compiler/src/i18n/extractor_merger.ts +++ b/packages/compiler/src/i18n/extractor_merger.ts @@ -7,7 +7,7 @@ */ import * as html from '../ml_parser/ast'; -import {DEFAULT_CONTAINER_BLOCKS} from '../ml_parser/defaults'; +import {DEFAULT_CONTAINER_BLOCKS, InterpolationConfig} from '../ml_parser/defaults'; import {ParseTreeResult} from '../ml_parser/parser'; import {TokenType} from '../ml_parser/tokens'; import {ParseError} from '../parse_util'; @@ -28,22 +28,24 @@ let i18nCommentsWarned = false; */ export function extractMessages( nodes: html.Node[], + interpolationConfig: InterpolationConfig, implicitTags: string[], implicitAttrs: {[k: string]: string[]}, preserveSignificantWhitespace: boolean, ): ExtractionResult { const visitor = new _Visitor(implicitTags, implicitAttrs, preserveSignificantWhitespace); - return visitor.extract(nodes); + return visitor.extract(nodes, interpolationConfig); } export function mergeTranslations( nodes: html.Node[], translations: TranslationBundle, + interpolationConfig: InterpolationConfig, implicitTags: string[], implicitAttrs: {[k: string]: string[]}, ): ParseTreeResult { const visitor = new _Visitor(implicitTags, implicitAttrs); - return visitor.merge(nodes, translations); + return visitor.merge(nodes, translations, interpolationConfig); } export class ExtractionResult { @@ -104,8 +106,8 @@ class _Visitor implements html.Visitor { /** * Extracts the messages from the tree */ - extract(nodes: html.Node[]): ExtractionResult { - this._init(_VisitorMode.Extract); + extract(nodes: html.Node[], interpolationConfig: InterpolationConfig): ExtractionResult { + this._init(_VisitorMode.Extract, interpolationConfig); nodes.forEach((node) => node.visit(this, null)); @@ -119,8 +121,12 @@ class _Visitor implements html.Visitor { /** * Returns a tree where all translatable nodes are translated */ - merge(nodes: html.Node[], translations: TranslationBundle): ParseTreeResult { - this._init(_VisitorMode.Merge); + merge( + nodes: html.Node[], + translations: TranslationBundle, + interpolationConfig: InterpolationConfig, + ): ParseTreeResult { + this._init(_VisitorMode.Merge, interpolationConfig); this._translations = translations; // Construct a single fake root element @@ -274,7 +280,7 @@ class _Visitor implements html.Visitor { throw new Error('unreachable code'); } - private _init(mode: _VisitorMode): void { + private _init(mode: _VisitorMode, interpolationConfig: InterpolationConfig): void { this._mode = mode; this._inI18nBlock = false; this._inI18nNode = false; @@ -285,6 +291,7 @@ class _Visitor implements html.Visitor { this._messages = []; this._inImplicitNode = false; this._createI18nMessage = createI18nMessageFactory( + interpolationConfig, DEFAULT_CONTAINER_BLOCKS, // When dropping significant whitespace we need to retain whitespace tokens or // else we won't be able to reuse source spans because empty tokens would be diff --git a/packages/compiler/src/i18n/i18n_html_parser.ts b/packages/compiler/src/i18n/i18n_html_parser.ts index 9a910aa1ede0..7cf3ad6b8e8e 100644 --- a/packages/compiler/src/i18n/i18n_html_parser.ts +++ b/packages/compiler/src/i18n/i18n_html_parser.ts @@ -7,6 +7,7 @@ */ import {MissingTranslationStrategy} from '../core'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../ml_parser/defaults'; import {HtmlParser} from '../ml_parser/html_parser'; import {TokenizeOptions} from '../ml_parser/lexer'; import {ParseTreeResult} from '../ml_parser/parser'; @@ -56,13 +57,20 @@ export class I18NHtmlParser implements HtmlParser { } parse(source: string, url: string, options: TokenizeOptions = {}): ParseTreeResult { - const parseResult = this._htmlParser.parse(source, url, {...options}); + const interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG; + const parseResult = this._htmlParser.parse(source, url, {interpolationConfig, ...options}); if (parseResult.errors.length) { return new ParseTreeResult(parseResult.rootNodes, parseResult.errors); } - return mergeTranslations(parseResult.rootNodes, this._translationBundle, [], {}); + return mergeTranslations( + parseResult.rootNodes, + this._translationBundle, + interpolationConfig, + [], + {}, + ); } } diff --git a/packages/compiler/src/i18n/i18n_parser.ts b/packages/compiler/src/i18n/i18n_parser.ts index b1b07301689d..a23d627f2dd6 100644 --- a/packages/compiler/src/i18n/i18n_parser.ts +++ b/packages/compiler/src/i18n/i18n_parser.ts @@ -10,6 +10,7 @@ import {Lexer as ExpressionLexer} from '../expression_parser/lexer'; import {Parser as ExpressionParser} from '../expression_parser/parser'; import {serialize as serializeExpression} from '../expression_parser/serializer'; import * as html from '../ml_parser/ast'; +import {InterpolationConfig} from '../ml_parser/defaults'; import {getHtmlTagDefinition} from '../ml_parser/html_tags'; import { AttributeValueInterpolationToken, @@ -38,15 +39,17 @@ export interface I18nMessageFactory { } /** - * Returns a function converting html nodes to an i18n Message + * Returns a function converting html nodes to an i18n Message given an interpolationConfig */ export function createI18nMessageFactory( + interpolationConfig: InterpolationConfig, containerBlocks: Set, retainEmptyTokens: boolean, preserveExpressionWhitespace: boolean, ): I18nMessageFactory { const visitor = new _I18nVisitor( _expParser, + interpolationConfig, containerBlocks, retainEmptyTokens, preserveExpressionWhitespace, @@ -71,6 +74,7 @@ function noopVisitNodeFn(_html: html.Node, i18n: i18n.Node): i18n.Node { class _I18nVisitor implements html.Visitor { constructor( private _expressionParser: ExpressionParser, + private _interpolationConfig: InterpolationConfig, private _containerBlocks: Set, private readonly _retainEmptyTokens: boolean, private readonly _preserveExpressionWhitespace: boolean, @@ -385,6 +389,7 @@ class _I18nVisitor implements html.Visitor { expression, /* location */ token.sourceSpan, /* absoluteOffset */ token.sourceSpan.start.offset, + this._interpolationConfig, ); return serializeExpression(expr); } diff --git a/packages/compiler/src/i18n/message_bundle.ts b/packages/compiler/src/i18n/message_bundle.ts index cd5a1f48ccfd..9fa475a7b2f1 100644 --- a/packages/compiler/src/i18n/message_bundle.ts +++ b/packages/compiler/src/i18n/message_bundle.ts @@ -6,6 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ +import {InterpolationConfig} from '../ml_parser/defaults'; import {HtmlParser} from '../ml_parser/html_parser'; import {WhitespaceVisitor, visitAllWithSiblings} from '../ml_parser/html_whitespaces'; import {ParseError} from '../parse_util'; @@ -28,8 +29,15 @@ export class MessageBundle { private readonly _preserveWhitespace = true, ) {} - updateFromTemplate(source: string, url: string): ParseError[] { - const htmlParserResult = this._htmlParser.parse(source, url, {tokenizeExpansionForms: true}); + updateFromTemplate( + source: string, + url: string, + interpolationConfig: InterpolationConfig, + ): ParseError[] { + const htmlParserResult = this._htmlParser.parse(source, url, { + tokenizeExpansionForms: true, + interpolationConfig, + }); if (htmlParserResult.errors.length) { return htmlParserResult.errors; @@ -47,6 +55,7 @@ export class MessageBundle { const i18nParserResult = extractMessages( rootNodes, + interpolationConfig, this._implicitTags, this._implicitAttrs, /* preserveSignificantWhitespace */ this._preserveWhitespace, diff --git a/packages/compiler/src/jit_compiler_facade.ts b/packages/compiler/src/jit_compiler_facade.ts index 45e9826d9e74..f34c8e041a09 100644 --- a/packages/compiler/src/jit_compiler_facade.ts +++ b/packages/compiler/src/jit_compiler_facade.ts @@ -45,6 +45,7 @@ import { ViewEncapsulation, } from './core'; import {compileInjectable} from './injectable_compiler_2'; +import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from './ml_parser/defaults'; import { DeclareVarStmt, Expression, @@ -291,11 +292,12 @@ export class CompilerFacadeImpl implements CompilerFacade { facade: R3ComponentMetadataFacade, ): any { // Parse the template and check for errors. - const {template, defer} = parseJitTemplate( + const {template, interpolation, defer} = parseJitTemplate( facade.template, facade.name, sourceMapUrl, facade.preserveWhitespaces, + facade.interpolation, undefined, ); @@ -311,6 +313,7 @@ export class CompilerFacadeImpl implements CompilerFacade { styles: [...facade.styles, ...template.styles], encapsulation: facade.encapsulation, + interpolation, changeDetection: facade.changeDetection ?? null, animations: facade.animations != null ? new WrappedNodeExpr(facade.animations) : null, viewProviders: @@ -343,7 +346,7 @@ export class CompilerFacadeImpl implements CompilerFacade { meta: R3ComponentMetadata, ): any { const constantPool = new ConstantPool(); - const bindingParser = makeBindingParser(); + const bindingParser = makeBindingParser(meta.interpolation); const res = compileComponentFromMetadata(meta, constantPool, bindingParser); return this.jitExpression( res.expression, @@ -616,11 +619,12 @@ function convertDeclareComponentFacadeToMetadata( typeSourceSpan: ParseSourceSpan, sourceMapUrl: string, ): R3ComponentMetadata { - const {template, defer} = parseJitTemplate( + const {template, interpolation, defer} = parseJitTemplate( decl.template, decl.type.name, sourceMapUrl, decl.preserveWhitespaces ?? false, + decl.interpolation, decl.deferBlockDependencies, ); @@ -669,6 +673,7 @@ function convertDeclareComponentFacadeToMetadata( defer, changeDetection: decl.changeDetection ?? ChangeDetectionStrategy.Default, encapsulation: decl.encapsulation ?? ViewEncapsulation.Emulated, + interpolation, declarationListEmitMode: DeclarationListEmitMode.ClosureResolved, relativeContextFilePath: '', i18nUseExternalIds: true, @@ -732,10 +737,17 @@ function parseJitTemplate( typeName: string, sourceMapUrl: string, preserveWhitespaces: boolean, + interpolation: [string, string] | undefined, deferBlockDependencies: (() => Promise | null)[] | undefined, ) { + const interpolationConfig = interpolation + ? InterpolationConfig.fromArray(interpolation) + : DEFAULT_INTERPOLATION_CONFIG; // Parse the template and check for errors. - const parsed = parseTemplate(template, sourceMapUrl, {preserveWhitespaces}); + const parsed = parseTemplate(template, sourceMapUrl, { + preserveWhitespaces, + interpolationConfig, + }); if (parsed.errors !== null) { const errors = parsed.errors.map((err) => err.toString()).join(', '); throw new Error(`Errors during JIT compilation of template for ${typeName}: ${errors}`); @@ -745,6 +757,7 @@ function parseJitTemplate( return { template: parsed, + interpolation: interpolationConfig, defer: createR3ComponentDeferMetadata(boundTarget, deferBlockDependencies), }; } diff --git a/packages/compiler/src/ml_parser/defaults.ts b/packages/compiler/src/ml_parser/defaults.ts index 90e30e55d2a4..a4b817174f26 100644 --- a/packages/compiler/src/ml_parser/defaults.ts +++ b/packages/compiler/src/ml_parser/defaults.ts @@ -24,9 +24,6 @@ export class InterpolationConfig { ) {} } -/** - * This symbol is referenced inside G3 and will require some cleanup. - */ export const DEFAULT_INTERPOLATION_CONFIG: InterpolationConfig = new InterpolationConfig( '{{', '}}', diff --git a/packages/compiler/src/ml_parser/lexer.ts b/packages/compiler/src/ml_parser/lexer.ts index de96aa74fba2..34cc570bd48e 100644 --- a/packages/compiler/src/ml_parser/lexer.ts +++ b/packages/compiler/src/ml_parser/lexer.ts @@ -9,6 +9,7 @@ import * as chars from '../chars'; import {ParseError, ParseLocation, ParseSourceFile, ParseSourceSpan} from '../parse_util'; +import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from './defaults'; import {NAMED_ENTITIES} from './entities'; import {TagContentType, TagDefinition} from './tags'; import { @@ -41,6 +42,8 @@ export interface LexerRange { export interface TokenizeOptions { /** Whether to tokenize ICU messages (considered as text nodes when false). */ tokenizeExpansionForms?: boolean; + /** How to tokenize interpolation markers. */ + interpolationConfig?: InterpolationConfig; /** * The start and end point of the text to parse within the `source` string. * The entire `source` string is parsed if this is not provided. @@ -155,15 +158,11 @@ const SUPPORTED_BLOCKS = [ '@error', ]; -const INTERPOLATION = { - start: '{{', - end: '}}', -}; - // See https://www.w3.org/TR/html51/syntax.html#writing-html-documents class _Tokenizer { private _cursor: CharacterCursor; private _tokenizeIcu: boolean; + private _interpolationConfig: InterpolationConfig; private _leadingTriviaCodePoints: number[] | undefined; private _currentTokenStart: CharacterCursor | null = null; private _currentTokenType: TokenType | null = null; @@ -190,6 +189,7 @@ class _Tokenizer { options: TokenizeOptions, ) { this._tokenizeIcu = options.tokenizeExpansionForms || false; + this._interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG; this._leadingTriviaCodePoints = options.leadingTriviaChars && options.leadingTriviaChars.map((c) => c.codePointAt(0) || 0); const range = options.range || { @@ -1145,7 +1145,7 @@ class _Tokenizer { while (!endPredicate()) { const current = this._cursor.clone(); - if (this._attemptStr(INTERPOLATION.start)) { + if (this._interpolationConfig && this._attemptStr(this._interpolationConfig.start)) { this._endToken([this._processCarriageReturns(parts.join(''))], current); parts.length = 0; this._consumeInterpolation(interpolationTokenType, current, endInterpolation); @@ -1182,7 +1182,7 @@ class _Tokenizer { ): void { const parts: string[] = []; this._beginToken(interpolationTokenType, interpolationStart); - parts.push(INTERPOLATION.start); + parts.push(this._interpolationConfig.start); // Find the end of the interpolation, ignoring content inside quotes. const expressionStart = this._cursor.clone(); @@ -1205,10 +1205,10 @@ class _Tokenizer { } if (inQuote === null) { - if (this._attemptStr(INTERPOLATION.end)) { + if (this._attemptStr(this._interpolationConfig.end)) { // We are not in a string, and we hit the end interpolation marker parts.push(this._getProcessedChars(expressionStart, current)); - parts.push(INTERPOLATION.end); + parts.push(this._interpolationConfig.end); this._endToken(parts); return; } else if (this._attemptStr('//')) { @@ -1380,10 +1380,13 @@ class _Tokenizer { if (this._cursor.peek() !== chars.$LBRACE) { return false; } - const start = this._cursor.clone(); - const isInterpolation = this._attemptStr(INTERPOLATION.start); - this._cursor = start; - return !isInterpolation; + if (this._interpolationConfig) { + const start = this._cursor.clone(); + const isInterpolation = this._attemptStr(this._interpolationConfig.start); + this._cursor = start; + return !isInterpolation; + } + return true; } } diff --git a/packages/compiler/src/render3/partial/api.ts b/packages/compiler/src/render3/partial/api.ts index 8369c0399e70..9bd1c7e07fd5 100644 --- a/packages/compiler/src/render3/partial/api.ts +++ b/packages/compiler/src/render3/partial/api.ts @@ -228,6 +228,11 @@ export interface R3DeclareComponentMetadata extends R3DeclareDirectiveMetadata { */ encapsulation?: ViewEncapsulation; + /** + * Overrides the default interpolation start and end delimiters. Defaults to {{ and }}. + */ + interpolation?: [string, string]; + /** * Whether whitespace in the template should be preserved. Defaults to false. */ diff --git a/packages/compiler/src/render3/partial/component.ts b/packages/compiler/src/render3/partial/component.ts index c9eb8c596882..c1defd2fa1c5 100644 --- a/packages/compiler/src/render3/partial/component.ts +++ b/packages/compiler/src/render3/partial/component.ts @@ -6,6 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ import * as core from '../../core'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../../ml_parser/defaults'; import * as o from '../../output/output_ast'; import {ParseLocation, ParseSourceFile, ParseSourceSpan} from '../../parse_util'; import {RecursiveVisitor, visitAll} from '../r3_ast'; @@ -124,6 +125,12 @@ export function createComponentDefinitionMap( o.importExpr(R3.ViewEncapsulation).prop(core.ViewEncapsulation[meta.encapsulation]), ); } + if (meta.interpolation !== DEFAULT_INTERPOLATION_CONFIG) { + definitionMap.set( + 'interpolation', + o.literalArr([o.literal(meta.interpolation.start), o.literal(meta.interpolation.end)]), + ); + } if (template.preserveWhitespaces === true) { definitionMap.set('preserveWhitespaces', o.literal(true)); diff --git a/packages/compiler/src/render3/view/api.ts b/packages/compiler/src/render3/view/api.ts index 71fb08145aeb..a4abce3f00d8 100644 --- a/packages/compiler/src/render3/view/api.ts +++ b/packages/compiler/src/render3/view/api.ts @@ -7,6 +7,7 @@ */ import {ChangeDetectionStrategy, ViewEncapsulation} from '../../core'; +import {InterpolationConfig} from '../../ml_parser/defaults'; import * as o from '../../output/output_ast'; import {ParseSourceSpan} from '../../parse_util'; import * as t from '../r3_ast'; @@ -273,6 +274,11 @@ export interface R3ComponentMetadata */ i18nUseExternalIds: boolean; + /** + * Overrides the default interpolation start and end delimiters ({{ and }}). + */ + interpolation: InterpolationConfig; + /** * Strategy used for detecting changes in the component. * diff --git a/packages/compiler/src/render3/view/i18n/meta.ts b/packages/compiler/src/render3/view/i18n/meta.ts index 00007d2ff4c7..8ed8e0a9f85a 100644 --- a/packages/compiler/src/render3/view/i18n/meta.ts +++ b/packages/compiler/src/render3/view/i18n/meta.ts @@ -11,7 +11,11 @@ import {computeDecimalDigest, computeDigest, decimalDigest} from '../../../i18n/ import * as i18n from '../../../i18n/i18n_ast'; import {createI18nMessageFactory, VisitNodeFn} from '../../../i18n/i18n_parser'; import * as html from '../../../ml_parser/ast'; -import {DEFAULT_CONTAINER_BLOCKS} from '../../../ml_parser/defaults'; +import { + DEFAULT_CONTAINER_BLOCKS, + DEFAULT_INTERPOLATION_CONFIG, + InterpolationConfig, +} from '../../../ml_parser/defaults'; import {ParseTreeResult} from '../../../ml_parser/parser'; import * as o from '../../../output/output_ast'; import {isTrustedTypesSink} from '../../../schema/trusted_types_sinks'; @@ -61,6 +65,7 @@ export class I18nMetaVisitor implements html.Visitor { private _errors: ParseError[] = []; constructor( + private interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, private keepI18nAttrs = false, private enableI18nLegacyMessageIdFormat = false, private containerBlocks: Set = DEFAULT_CONTAINER_BLOCKS, @@ -82,6 +87,7 @@ export class I18nMetaVisitor implements html.Visitor { ): i18n.Message { const {meaning, description, customId} = this._parseMetadata(meta); const createI18nMessage = createI18nMessageFactory( + this.interpolationConfig, this.containerBlocks, this.retainEmptyTokens, /* preserveExpressionWhitespace */ this.preserveSignificantWhitespace, diff --git a/packages/compiler/src/render3/view/template.ts b/packages/compiler/src/render3/view/template.ts index 8fa6121b2014..5bdc5bf64de1 100644 --- a/packages/compiler/src/render3/view/template.ts +++ b/packages/compiler/src/render3/view/template.ts @@ -9,6 +9,7 @@ import {Lexer} from '../../expression_parser/lexer'; import {Parser} from '../../expression_parser/parser'; import * as html from '../../ml_parser/ast'; +import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../../ml_parser/defaults'; import {HtmlParser} from '../../ml_parser/html_parser'; import {WhitespaceVisitor} from '../../ml_parser/html_whitespaces'; import {LexerRange} from '../../ml_parser/lexer'; @@ -38,6 +39,10 @@ export interface ParseTemplateOptions { * Preserve whitespace significant to rendering. */ preserveSignificantWhitespace?: boolean; + /** + * How to parse interpolation markers. + */ + interpolationConfig?: InterpolationConfig; /** * The start and end point of the text to parse within the `source` string. * The entire `source` string is parsed if this is not provided. @@ -142,9 +147,9 @@ export function parseTemplate( templateUrl: string, options: ParseTemplateOptions = {}, ): ParsedTemplate { - const {preserveWhitespaces, enableI18nLegacyMessageIdFormat} = options; + const {interpolationConfig, preserveWhitespaces, enableI18nLegacyMessageIdFormat} = options; const selectorlessEnabled = options.enableSelectorless ?? false; - const bindingParser = makeBindingParser(selectorlessEnabled); + const bindingParser = makeBindingParser(interpolationConfig, selectorlessEnabled); const htmlParser = new HtmlParser(); const parseResult = htmlParser.parse(template, templateUrl, { leadingTriviaChars: LEADING_TRIVIA_CHARS, @@ -161,6 +166,7 @@ export function parseTemplate( parseResult.errors.length > 0 ) { const parsedTemplate: ParsedTemplate = { + interpolationConfig, preserveWhitespaces, errors: parseResult.errors, nodes: [], @@ -187,6 +193,7 @@ export function parseTemplate( // extraction process (ng extract-i18n) relies on a raw content to generate // message ids const i18nMetaVisitor = new I18nMetaVisitor( + interpolationConfig, /* keepI18nAttrs */ !preserveWhitespaces, enableI18nLegacyMessageIdFormat, /* containerBlocks */ undefined, @@ -201,6 +208,7 @@ export function parseTemplate( i18nMetaResult.errors.length > 0 ) { const parsedTemplate: ParsedTemplate = { + interpolationConfig, preserveWhitespaces, errors: i18nMetaResult.errors, nodes: [], @@ -244,6 +252,7 @@ export function parseTemplate( if (i18nMetaVisitor.hasI18nMeta) { rootNodes = html.visitAll( new I18nMetaVisitor( + interpolationConfig, /* keepI18nAttrs */ false, /* enableI18nLegacyMessageIdFormat */ undefined, /* containerBlocks */ undefined, @@ -263,6 +272,7 @@ export function parseTemplate( errors.push(...parseResult.errors, ...i18nMetaResult.errors); const parsedTemplate: ParsedTemplate = { + interpolationConfig, preserveWhitespaces, errors: errors.length > 0 ? errors : null, nodes, @@ -282,8 +292,16 @@ const elementRegistry = new DomElementSchemaRegistry(); /** * Construct a `BindingParser` with a default configuration. */ -export function makeBindingParser(selectorlessEnabled = false): BindingParser { - return new BindingParser(new Parser(new Lexer(), selectorlessEnabled), elementRegistry, []); +export function makeBindingParser( + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, + selectorlessEnabled = false, +): BindingParser { + return new BindingParser( + new Parser(new Lexer(), selectorlessEnabled), + interpolationConfig, + elementRegistry, + [], + ); } /** @@ -298,6 +316,10 @@ export interface ParsedTemplate { */ preserveWhitespaces?: boolean; + /** + * How to parse interpolation markers. + */ + interpolationConfig?: InterpolationConfig; /** * Any errors from parsing the template the first time. * diff --git a/packages/compiler/src/template_parser/binding_parser.ts b/packages/compiler/src/template_parser/binding_parser.ts index 9233dea4e8d8..fe31021a1c73 100644 --- a/packages/compiler/src/template_parser/binding_parser.ts +++ b/packages/compiler/src/template_parser/binding_parser.ts @@ -32,6 +32,7 @@ import { VariableBinding, } from '../expression_parser/ast'; import {Parser} from '../expression_parser/parser'; +import {InterpolationConfig} from '../ml_parser/defaults'; import {mergeNsAndName} from '../ml_parser/tags'; import {InterpolatedAttributeToken, InterpolatedTextToken} from '../ml_parser/tokens'; import {ParseError, ParseErrorLevel, ParseSourceSpan} from '../parse_util'; @@ -61,10 +62,15 @@ export interface HostListeners { export class BindingParser { constructor( private _exprParser: Parser, + private _interpolationConfig: InterpolationConfig, private _schemaRegistry: ElementSchemaRegistry, public errors: ParseError[], ) {} + get interpolationConfig(): InterpolationConfig { + return this._interpolationConfig; + } + createBoundHostProperties( properties: HostProperties, sourceSpan: ParseSourceSpan, @@ -148,6 +154,7 @@ export class BindingParser { sourceSpan, absoluteOffset, interpolatedTokens, + this._interpolationConfig, )!; if (ast) { this.errors.push(...ast.errors); @@ -529,8 +536,18 @@ export class BindingParser { ): ASTWithSource { try { const ast = isHostBinding - ? this._exprParser.parseSimpleBinding(value, sourceSpan, absoluteOffset) - : this._exprParser.parseBinding(value, sourceSpan, absoluteOffset); + ? this._exprParser.parseSimpleBinding( + value, + sourceSpan, + absoluteOffset, + this._interpolationConfig, + ) + : this._exprParser.parseBinding( + value, + sourceSpan, + absoluteOffset, + this._interpolationConfig, + ); if (ast) { this.errors.push(...ast.errors); } @@ -778,7 +795,12 @@ export class BindingParser { const absoluteOffset = sourceSpan && sourceSpan.start ? sourceSpan.start.offset : 0; try { - const ast = this._exprParser.parseAction(value, sourceSpan, absoluteOffset); + const ast = this._exprParser.parseAction( + value, + sourceSpan, + absoluteOffset, + this._interpolationConfig, + ); if (ast) { this.errors.push(...ast.errors); } diff --git a/packages/compiler/test/expression_parser/parser_spec.ts b/packages/compiler/test/expression_parser/parser_spec.ts index 3e8a6ac1007c..47043bb3a571 100644 --- a/packages/compiler/test/expression_parser/parser_spec.ts +++ b/packages/compiler/test/expression_parser/parser_spec.ts @@ -1270,6 +1270,17 @@ describe('parser', () => { checkInterpolation(`{{ 'foo' +\n 'bar' +\r 'baz' }}`, `{{ "foo" + "bar" + "baz" }}`); }); + it('should support custom interpolation', () => { + const parser = new Parser(new Lexer()); + const ast = parser.parseInterpolation('{% a %}', getFakeSpan(), 0, null, { + start: '{%', + end: '%}', + })!.ast as any; + expect(ast.strings).toEqual(['', '']); + expect(ast.expressions.length).toEqual(1); + expect(ast.expressions[0].name).toEqual('a'); + }); + describe('comments', () => { it('should ignore comments in interpolation expressions', () => { checkInterpolation('{{a //comment}}', '{{ a }}'); diff --git a/packages/compiler/test/expression_parser/utils/unparser.ts b/packages/compiler/test/expression_parser/utils/unparser.ts index b515bd09af77..e9cbe45e2d5d 100644 --- a/packages/compiler/test/expression_parser/utils/unparser.ts +++ b/packages/compiler/test/expression_parser/utils/unparser.ts @@ -37,14 +37,17 @@ import { Unary, VoidExpression, } from '../../../src/expression_parser/ast'; +import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../../../src/ml_parser/defaults'; class Unparser implements AstVisitor { private static _quoteRegExp = /"/g; // using non-null assertion because they're both re(set) by unparse() private _expression!: string; + private _interpolationConfig!: InterpolationConfig; - unparse(ast: AST) { + unparse(ast: AST, interpolationConfig: InterpolationConfig) { this._expression = ''; + this._interpolationConfig = interpolationConfig; this._visit(ast); return this._expression; } @@ -124,9 +127,9 @@ class Unparser implements AstVisitor { for (let i = 0; i < ast.strings.length; i++) { this._expression += ast.strings[i]; if (i < ast.expressions.length) { - this._expression += `{{ `; + this._expression += `${this._interpolationConfig.start} `; this._visit(ast.expressions[i]); - this._expression += ` }}`; + this._expression += ` ${this._interpolationConfig.end}`; } } } @@ -241,14 +244,20 @@ class Unparser implements AstVisitor { const sharedUnparser = new Unparser(); -export function unparse(ast: AST): string { - return sharedUnparser.unparse(ast); +export function unparse( + ast: AST, + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, +): string { + return sharedUnparser.unparse(ast, interpolationConfig); } // [unparsed AST, original source code of AST] type UnparsedWithSpan = [string, string]; -export function unparseWithSpan(ast: ASTWithSource): UnparsedWithSpan[] { +export function unparseWithSpan( + ast: ASTWithSource, + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, +): UnparsedWithSpan[] { const unparsed: UnparsedWithSpan[] = []; const source = ast.source!; const recursiveSpanUnparser = new (class extends RecursiveAstVisitor { @@ -256,7 +265,7 @@ export function unparseWithSpan(ast: ASTWithSource): UnparsedWithSpan[] { const span = ast[spanKey]; const prefix = spanKey === 'span' ? '' : `[${spanKey}] `; const src = source.substring(span.start, span.end); - unparsedList.push([unparse(ast), prefix + src]); + unparsedList.push([unparse(ast, interpolationConfig), prefix + src]); } override visit(ast: AST, unparsedList: UnparsedWithSpan[]) { diff --git a/packages/compiler/test/i18n/extractor_merger_spec.ts b/packages/compiler/test/i18n/extractor_merger_spec.ts index fde4dc6ef136..bdb82e4004fb 100644 --- a/packages/compiler/test/i18n/extractor_merger_spec.ts +++ b/packages/compiler/test/i18n/extractor_merger_spec.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {HtmlParser} from '../../index'; +import {DEFAULT_INTERPOLATION_CONFIG, HtmlParser} from '../../index'; import {MissingTranslationStrategy} from '@angular/core'; import {digest, serializeNodes as serializeI18nNodes} from '../../src/i18n/digest'; @@ -530,6 +530,7 @@ describe('Merger', () => { const htmlNodes: html.Node[] = parseHtml(HTML); const messages: i18n.Message[] = extractMessages( htmlNodes, + DEFAULT_INTERPOLATION_CONFIG, [], {}, /* preserveSignificantWhitespace */ true, @@ -540,7 +541,13 @@ describe('Merger', () => { i18nMsgMap[digest(messages[0])] = []; const translations = new TranslationBundle(i18nMsgMap, null, digest); - const output = mergeTranslations(htmlNodes, translations, [], {}); + const output = mergeTranslations( + htmlNodes, + translations, + DEFAULT_INTERPOLATION_CONFIG, + [], + {}, + ); expect(output.errors).toEqual([]); expect(serializeHtmlNodes(output.rootNodes).join('')).toEqual(`
`); @@ -600,6 +607,7 @@ describe('Merger', () => { const htmlNodes: html.Node[] = parseHtml(HTML); const messages: i18n.Message[] = extractMessages( htmlNodes, + DEFAULT_INTERPOLATION_CONFIG, [], {}, /* preserveSignificantWhitespace */ true, @@ -610,7 +618,13 @@ describe('Merger', () => { i18nMsgMap[digest(messages[0])] = []; const translations = new TranslationBundle(i18nMsgMap, null, digest); - const output = mergeTranslations(htmlNodes, translations, [], {}); + const output = mergeTranslations( + htmlNodes, + translations, + DEFAULT_INTERPOLATION_CONFIG, + [], + {}, + ); expect(output.errors).toEqual([]); expect(serializeHtmlNodes(output.rootNodes).join('')).toEqual( @@ -661,6 +675,7 @@ function fakeTranslate( const htmlNodes: html.Node[] = parseHtml(content); const messages: i18n.Message[] = extractMessages( htmlNodes, + DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs, /* preserveSignificantWhitespace */ true, @@ -675,7 +690,13 @@ function fakeTranslate( }); const translationBundle = new TranslationBundle(i18nMsgMap, null, digest); - const output = mergeTranslations(htmlNodes, translationBundle, implicitTags, implicitAttrs); + const output = mergeTranslations( + htmlNodes, + translationBundle, + DEFAULT_INTERPOLATION_CONFIG, + implicitTags, + implicitAttrs, + ); expect(output.errors).toEqual([]); return serializeHtmlNodes(output.rootNodes).join(''); @@ -695,7 +716,13 @@ function fakeNoTranslate( MissingTranslationStrategy.Ignore, console, ); - const output = mergeTranslations(htmlNodes, translationBundle, implicitTags, implicitAttrs); + const output = mergeTranslations( + htmlNodes, + translationBundle, + DEFAULT_INTERPOLATION_CONFIG, + implicitTags, + implicitAttrs, + ); expect(output.errors).toEqual([]); return serializeHtmlNodes(output.rootNodes).join(''); @@ -708,6 +735,7 @@ function extract( ): [string[], string, string, string][] { const result = extractMessages( parseHtml(html), + DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs, /* preserveSignificantWhitespace */ true, @@ -732,6 +760,7 @@ function extractErrors( ): any[] { const errors = extractMessages( parseHtml(html), + DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs, /* preserveSignificantWhitespace */ true, diff --git a/packages/compiler/test/i18n/i18n_ast_spec.ts b/packages/compiler/test/i18n/i18n_ast_spec.ts index 537b4e5b0083..69c946d315d9 100644 --- a/packages/compiler/test/i18n/i18n_ast_spec.ts +++ b/packages/compiler/test/i18n/i18n_ast_spec.ts @@ -8,11 +8,12 @@ import {createI18nMessageFactory} from '../../src/i18n/i18n_parser'; import {Node} from '../../src/ml_parser/ast'; -import {DEFAULT_CONTAINER_BLOCKS} from '../../src/ml_parser/defaults'; +import {DEFAULT_CONTAINER_BLOCKS, DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; describe('Message', () => { const messageFactory = createI18nMessageFactory( + DEFAULT_INTERPOLATION_CONFIG, DEFAULT_CONTAINER_BLOCKS, /* retainEmptyTokens */ false, /* preserveExpressionWhitespace */ true, diff --git a/packages/compiler/test/i18n/i18n_parser_spec.ts b/packages/compiler/test/i18n/i18n_parser_spec.ts index 9cb3968b9fe2..a1767086c2bc 100644 --- a/packages/compiler/test/i18n/i18n_parser_spec.ts +++ b/packages/compiler/test/i18n/i18n_parser_spec.ts @@ -9,6 +9,7 @@ import {digest, serializeNodes} from '../../src/i18n/digest'; import {extractMessages} from '../../src/i18n/extractor_merger'; import {Message} from '../../src/i18n/i18n_ast'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; describe('I18nParser', () => { @@ -425,6 +426,7 @@ export function _extractMessages( return extractMessages( parseResult.rootNodes, + DEFAULT_INTERPOLATION_CONFIG, implicitTags, implicitAttrs, preserveSignificantWhitespace, diff --git a/packages/compiler/test/i18n/integration_common.ts b/packages/compiler/test/i18n/integration_common.ts index 1d41fef9c0e4..81b3a24e853b 100644 --- a/packages/compiler/test/i18n/integration_common.ts +++ b/packages/compiler/test/i18n/integration_common.ts @@ -9,6 +9,7 @@ import {NgLocalization} from '@angular/common'; import {Serializer} from '../../src/i18n'; import {MessageBundle} from '../../src/i18n/message_bundle'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; import {ResourceLoader} from '../../src/resource_loader'; import {Component, DebugElement, TRANSLATIONS, TRANSLATIONS_FORMAT} from '@angular/core'; @@ -203,6 +204,6 @@ export function createComponent(html: string) { export function serializeTranslations(html: string, serializer: Serializer) { const catalog = new MessageBundle(new HtmlParser(), [], {}); - catalog.updateFromTemplate(html, 'file.ts'); + catalog.updateFromTemplate(html, 'file.ts', DEFAULT_INTERPOLATION_CONFIG); return catalog.write(serializer); } diff --git a/packages/compiler/test/i18n/message_bundle_spec.ts b/packages/compiler/test/i18n/message_bundle_spec.ts index 7c2cdab44133..524c6133cb29 100644 --- a/packages/compiler/test/i18n/message_bundle_spec.ts +++ b/packages/compiler/test/i18n/message_bundle_spec.ts @@ -10,6 +10,7 @@ import {serializeNodes} from '../../src/i18n/digest'; import * as i18n from '../../src/i18n/i18n_ast'; import {MessageBundle} from '../../src/i18n/message_bundle'; import {Serializer} from '../../src/i18n/serializers/serializer'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; describe('MessageBundle', () => { @@ -21,7 +22,11 @@ describe('MessageBundle', () => { }); it('should extract the message to the catalog', () => { - messages.updateFromTemplate('

Translate Me

', 'url'); + messages.updateFromTemplate( + '

Translate Me

', + 'url', + DEFAULT_INTERPOLATION_CONFIG, + ); expect(humanizeMessages(messages)).toEqual(['Translate Me (m|d)']); }); @@ -29,6 +34,7 @@ describe('MessageBundle', () => { messages.updateFromTemplate( '

Translate Me

Translate Me

Translate Me

', 'url', + DEFAULT_INTERPOLATION_CONFIG, ); expect(humanizeMessages(messages)).toEqual(['Translate Me (m|d)', 'Translate Me (|)']); }); diff --git a/packages/compiler/test/i18n/serializers/xliff2_spec.ts b/packages/compiler/test/i18n/serializers/xliff2_spec.ts index 01db83afdd7d..d9bcf2351db5 100644 --- a/packages/compiler/test/i18n/serializers/xliff2_spec.ts +++ b/packages/compiler/test/i18n/serializers/xliff2_spec.ts @@ -11,6 +11,7 @@ import {escapeRegExp} from '../../../src/util'; import {serializeNodes} from '../../../src/i18n/digest'; import {MessageBundle} from '../../../src/i18n/message_bundle'; import {Xliff2} from '../../../src/i18n/serializers/xliff2'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../../../src/ml_parser/defaults'; import {HtmlParser} from '../../../src/ml_parser/html_parser'; const HTML = ` @@ -282,7 +283,7 @@ describe('XLIFF 2.0 serializer', () => { function toXliff(html: string, locale: string | null = null): string { const catalog = new MessageBundle(new HtmlParser(), [], {}, locale); - catalog.updateFromTemplate(html, 'file.ts'); + catalog.updateFromTemplate(html, 'file.ts', DEFAULT_INTERPOLATION_CONFIG); return catalog.write(serializer); } diff --git a/packages/compiler/test/i18n/serializers/xliff_spec.ts b/packages/compiler/test/i18n/serializers/xliff_spec.ts index 02ec43bc16fc..051fcd23b802 100644 --- a/packages/compiler/test/i18n/serializers/xliff_spec.ts +++ b/packages/compiler/test/i18n/serializers/xliff_spec.ts @@ -11,6 +11,7 @@ import {escapeRegExp} from '../../../src/util'; import {serializeNodes} from '../../../src/i18n/digest'; import {MessageBundle} from '../../../src/i18n/message_bundle'; import {Xliff} from '../../../src/i18n/serializers/xliff'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../../../src/ml_parser/defaults'; import {HtmlParser} from '../../../src/ml_parser/html_parser'; const HTML = ` @@ -260,7 +261,7 @@ describe('XLIFF serializer', () => { function toXliff(html: string, locale: string | null = null): string { const catalog = new MessageBundle(new HtmlParser(), [], {}, locale); - catalog.updateFromTemplate(html, 'file.ts'); + catalog.updateFromTemplate(html, 'file.ts', DEFAULT_INTERPOLATION_CONFIG); return catalog.write(serializer); } diff --git a/packages/compiler/test/i18n/serializers/xmb_spec.ts b/packages/compiler/test/i18n/serializers/xmb_spec.ts index 69f93724e1ba..b94eae0224f1 100644 --- a/packages/compiler/test/i18n/serializers/xmb_spec.ts +++ b/packages/compiler/test/i18n/serializers/xmb_spec.ts @@ -8,6 +8,7 @@ import {MessageBundle} from '../../../src/i18n/message_bundle'; import {Xmb} from '../../../src/i18n/serializers/xmb'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../../../src/ml_parser/defaults'; import {HtmlParser} from '../../../src/ml_parser/html_parser'; describe('XMB serializer', () => { @@ -79,7 +80,7 @@ function toXmb(html: string, url: string, locale: string | null = null): string const catalog = new MessageBundle(new HtmlParser(), [], {}, locale); const serializer = new Xmb(); - catalog.updateFromTemplate(html, url); + catalog.updateFromTemplate(html, url, DEFAULT_INTERPOLATION_CONFIG); return catalog.write(serializer); } diff --git a/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts b/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts index 78468b19dc33..eccba9892665 100644 --- a/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts +++ b/packages/compiler/test/i18n/whitespace_sensitivity_spec.ts @@ -8,6 +8,7 @@ import * as i18n from '../../src/i18n/i18n_ast'; import {MessageBundle} from '../../src/i18n/message_bundle'; +import {DEFAULT_INTERPOLATION_CONFIG} from '../../src/ml_parser/defaults'; import {HtmlParser} from '../../src/ml_parser/html_parser'; import {Xmb} from '../../src/i18n/serializers/xmb'; @@ -451,7 +452,7 @@ function extractMessages(source: string, preserveWhitespace: boolean): Assertabl undefined /* locale */, preserveWhitespace, ); - const errors = bundle.updateFromTemplate(source, 'url'); + const errors = bundle.updateFromTemplate(source, 'url', DEFAULT_INTERPOLATION_CONFIG); if (errors.length !== 0) { throw new Error( `Failed to parse template:\n${errors.map((err) => err.toString()).join('\n\n')}`, diff --git a/packages/compiler/test/ml_parser/lexer_spec.ts b/packages/compiler/test/ml_parser/lexer_spec.ts index 6587fc799cd9..6bac11ae3e0c 100644 --- a/packages/compiler/test/ml_parser/lexer_spec.ts +++ b/packages/compiler/test/ml_parser/lexer_spec.ts @@ -2203,6 +2203,17 @@ describe('HtmlLexer', () => { ]); }); + it('should parse interpolation with custom markers', () => { + expect( + tokenizeAndHumanizeParts('{% a %}', {interpolationConfig: {start: '{%', end: '%}'}}), + ).toEqual([ + [TokenType.TEXT, ''], + [TokenType.INTERPOLATION, '{%', ' a ', '%}'], + [TokenType.TEXT, ''], + [TokenType.EOF], + ]); + }); + it('should handle CR & LF in text', () => { expect(tokenizeAndHumanizeParts('t\ne\rs\r\nt')).toEqual([ [TokenType.TEXT, 't\ne\ns\nt'], diff --git a/packages/compiler/test/render3/view/util.ts b/packages/compiler/test/render3/view/util.ts index a8141cb1f0e1..b63d5a355aa6 100644 --- a/packages/compiler/test/render3/view/util.ts +++ b/packages/compiler/test/render3/view/util.ts @@ -10,6 +10,7 @@ import * as e from '../../../src/expression_parser/ast'; import {Lexer} from '../../../src/expression_parser/lexer'; import {Parser} from '../../../src/expression_parser/parser'; import * as html from '../../../src/ml_parser/ast'; +import {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from '../../../src/ml_parser/defaults'; import {HtmlParser} from '../../../src/ml_parser/html_parser'; import {WhitespaceVisitor, visitAllWithSiblings} from '../../../src/ml_parser/html_whitespaces'; import {ParseTreeResult} from '../../../src/ml_parser/parser'; @@ -181,7 +182,12 @@ export function parseR3( ['onEvent'], ['onEvent'], ); - const bindingParser = new BindingParser(expressionParser, schemaRegistry, []); + const bindingParser = new BindingParser( + expressionParser, + DEFAULT_INTERPOLATION_CONFIG, + schemaRegistry, + [], + ); const r3Result = htmlAstToRender3Ast(htmlNodes, bindingParser, {collectCommentNodes: false}); if (r3Result.errors.length > 0 && !options.ignoreError) { @@ -192,9 +198,15 @@ export function parseR3( return r3Result; } -export function processI18nMeta(htmlAstWithErrors: ParseTreeResult): ParseTreeResult { +export function processI18nMeta( + htmlAstWithErrors: ParseTreeResult, + interpolationConfig: InterpolationConfig = DEFAULT_INTERPOLATION_CONFIG, +): ParseTreeResult { return new ParseTreeResult( - html.visitAll(new I18nMetaVisitor(/* keepI18nAttrs */ false), htmlAstWithErrors.rootNodes), + html.visitAll( + new I18nMetaVisitor(interpolationConfig, /* keepI18nAttrs */ false), + htmlAstWithErrors.rootNodes, + ), htmlAstWithErrors.errors, ); } diff --git a/packages/core/schematics/migrations/signal-migration/src/utils/extract_template.ts b/packages/core/schematics/migrations/signal-migration/src/utils/extract_template.ts index 760332d5ada7..4be82bc74949 100644 --- a/packages/core/schematics/migrations/signal-migration/src/utils/extract_template.ts +++ b/packages/core/schematics/migrations/signal-migration/src/utils/extract_template.ts @@ -8,12 +8,14 @@ import ts from 'typescript'; import {ReflectionHost, reflectObjectLiteral} from '@angular/compiler-cli/src/ngtsc/reflection'; +import {MigrationHost} from '../migration_host'; import {getAngularDecorators, ResourceLoader} from '@angular/compiler-cli/src/ngtsc/annotations'; import {PartialEvaluator} from '@angular/compiler-cli/src/ngtsc/partial_evaluator'; import { ExternalTemplateDeclaration, InlineTemplateDeclaration, } from '@angular/compiler-cli/src/ngtsc/annotations/component/src/resources'; +import {DEFAULT_INTERPOLATION_CONFIG} from '@angular/compiler'; /** * Attempts to extract the `TemplateDefinition` for the given @@ -57,6 +59,7 @@ export function attemptExtractTemplateDefinition( return { isInline: true, expression: templateProp, + interpolationConfig: DEFAULT_INTERPOLATION_CONFIG, preserveWhitespaces: false, resolvedTemplateUrl: containingFile, templateUrl: containingFile, @@ -71,6 +74,7 @@ export function attemptExtractTemplateDefinition( if (typeof templateUrl === 'string') { return { isInline: false, + interpolationConfig: DEFAULT_INTERPOLATION_CONFIG, preserveWhitespaces: false, templateUrlExpression: templateUrlProp, templateUrl, diff --git a/packages/core/src/compiler/compiler_facade_interface.ts b/packages/core/src/compiler/compiler_facade_interface.ts index 2bcabf8d6cbd..8d9c9c564284 100644 --- a/packages/core/src/compiler/compiler_facade_interface.ts +++ b/packages/core/src/compiler/compiler_facade_interface.ts @@ -214,6 +214,7 @@ export interface R3ComponentMetadataFacade extends R3DirectiveMetadataFacade { styles: string[]; encapsulation: ViewEncapsulation; viewProviders: Provider[] | null; + interpolation?: [string, string]; changeDetection?: ChangeDetectionStrategy; hasDirectiveDependencies: boolean; } @@ -276,6 +277,7 @@ export interface R3DeclareComponentFacade extends R3DeclareDirectiveFacade { animations?: OpaqueValue; changeDetection?: ChangeDetectionStrategy; encapsulation?: ViewEncapsulation; + interpolation?: [string, string]; preserveWhitespaces?: boolean; } From c6809273b0d89ca9940b920faa0c76430325c785 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Fri, 26 Sep 2025 19:39:19 +0000 Subject: [PATCH 17/42] build: update cross-repo angular dependencies (#64108) See associated pull request for more information. PR Close #64108 --- .github/actions/saucelabs-legacy/action.yml | 4 +- .github/workflows/adev-preview-build.yml | 8 ++-- .github/workflows/adev-preview-deploy.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/benchmark-compare.yml | 2 +- .github/workflows/ci.yml | 44 +++++++++---------- .github/workflows/dev-infra.yml | 4 +- .github/workflows/google-internal-tests.yml | 2 +- .github/workflows/manual.yml | 8 ++-- .github/workflows/merge-ready-status.yml | 2 +- .github/workflows/perf.yml | 6 +-- .github/workflows/pr.yml | 34 +++++++------- MODULE.bazel | 2 +- MODULE.bazel.lock | 8 ++-- package.json | 2 +- pnpm-lock.yaml | 12 ++--- 16 files changed, 71 insertions(+), 71 deletions(-) diff --git a/.github/actions/saucelabs-legacy/action.yml b/.github/actions/saucelabs-legacy/action.yml index a1e2b6363d0f..7f3ad0b7f613 100644 --- a/.github/actions/saucelabs-legacy/action.yml +++ b/.github/actions/saucelabs-legacy/action.yml @@ -5,9 +5,9 @@ runs: using: 'composite' steps: - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Saucelabs Variables - uses: angular/dev-infra/github-actions/saucelabs@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/saucelabs@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Starting Saucelabs tunnel service shell: bash run: ./tools/saucelabs/sauce-service.sh run & diff --git a/.github/workflows/adev-preview-build.yml b/.github/workflows/adev-preview-build.yml index 188f0d789a62..4facbed6f540 100644 --- a/.github/workflows/adev-preview-build.yml +++ b/.github/workflows/adev-preview-build.yml @@ -21,16 +21,16 @@ jobs: (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'adev: preview')) steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build adev run: pnpm bazel build //adev:build.production - - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@eec872ff45c27532947b960e146d2452f9b29f85 + - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: workflow-artifact-name: 'adev-preview' pull-number: '${{github.event.pull_request.number}}' diff --git a/.github/workflows/adev-preview-deploy.yml b/.github/workflows/adev-preview-deploy.yml index 48261a37372c..ffe6a84b109b 100644 --- a/.github/workflows/adev-preview-deploy.yml +++ b/.github/workflows/adev-preview-deploy.yml @@ -40,7 +40,7 @@ jobs: npx -y firebase-tools@latest target:clear --config adev/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting angular-docs npx -y firebase-tools@latest target:apply --config adev/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting angular-docs ${{env.PREVIEW_SITE}} - - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@eec872ff45c27532947b960e146d2452f9b29f85 + - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: github-token: '${{secrets.GITHUB_TOKEN}}' workflow-artifact-name: 'adev-preview' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index f2b238d19a03..dd17d9e54e73 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@eec872ff45c27532947b960e146d2452f9b29f85 + - uses: angular/dev-infra/github-actions/branch-manager@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/benchmark-compare.yml b/.github/workflows/benchmark-compare.yml index d033f2a9d660..ff2aa73fe26a 100644 --- a/.github/workflows/benchmark-compare.yml +++ b/.github/workflows/benchmark-compare.yml @@ -38,7 +38,7 @@ jobs: - run: pnpm install --frozen-lockfile - - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: bazelrc: ./.bazelrc.user diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f0e721664ed..3981620029b9 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@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Check code lint @@ -39,13 +39,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Cache downloaded Cypress binary @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -88,11 +88,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -105,11 +105,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -124,13 +124,13 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - run: echo "https://${{secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN}}:@github.com" > ${HOME}/.git_credentials @@ -142,11 +142,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -196,11 +196,11 @@ jobs: runs-on: ubuntu-latest-8core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build adev diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 973294b64d16..04c1a7d25610 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@eec872ff45c27532947b960e146d2452f9b29f85 + - uses: angular/dev-infra/github-actions/pull-request-labeling@00cef30761644cb8c8e75ea448e958e4eeed3aa7 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@eec872ff45c27532947b960e146d2452f9b29f85 + - uses: angular/dev-infra/github-actions/post-approval-changes@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/google-internal-tests.yml b/.github/workflows/google-internal-tests.yml index 8c187c31b5cc..b19a19d21474 100644 --- a/.github/workflows/google-internal-tests.yml +++ b/.github/workflows/google-internal-tests.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/google-internal-tests@eec872ff45c27532947b960e146d2452f9b29f85 + - uses: angular/dev-infra/github-actions/google-internal-tests@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: run-tests-guide-url: http://go/angular-g3sync-start github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 85db8ab309d5..cb19438f390d 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -13,17 +13,17 @@ jobs: JOBS: 2 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: cache-node-modules: true - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Saucelabs Variables - uses: angular/dev-infra/github-actions/saucelabs@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/saucelabs@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Set up Sauce Tunnel Daemon run: pnpm bazel run //tools/saucelabs-daemon/background-service -- $JOBS & env: diff --git a/.github/workflows/merge-ready-status.yml b/.github/workflows/merge-ready-status.yml index 53acb623350e..a9c52e2008a8 100644 --- a/.github/workflows/merge-ready-status.yml +++ b/.github/workflows/merge-ready-status.yml @@ -9,6 +9,6 @@ jobs: status: runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/unified-status-check@eec872ff45c27532947b960e146d2452f9b29f85 + - uses: angular/dev-infra/github-actions/unified-status-check@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 1e868c23e054..1c2c25c30029 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -21,7 +21,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -36,9 +36,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ab1e04518643..cf8d674c0347 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@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Check code lint @@ -37,7 +37,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@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/linting/licenses@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: allow-dependencies-licenses: 'pkg:npm/google-protobuf@' @@ -45,13 +45,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Cache downloaded Cypress binary uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: @@ -76,11 +76,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run CI tests for framework @@ -100,11 +100,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run integration CI tests for framework @@ -115,11 +115,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run tests @@ -132,11 +132,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@eec872ff45c27532947b960e146d2452f9b29f85 + uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 - name: Install node modules run: pnpm install --frozen-lockfile - run: | diff --git a/MODULE.bazel b/MODULE.bazel index 8ad6ae8d5f24..4c77caec1414 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -25,7 +25,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "ad9c933cb115f77a73c0d78a82328448a66ad89c", + commit = "00cef30761644cb8c8e75ea448e958e4eeed3aa7", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index c6c4fd6babfd..155bb5b9b17d 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -16,7 +16,6 @@ "https://bcr.bazel.build/modules/aspect_bazel_lib/2.11.0/MODULE.bazel": "cb1ba9f9999ed0bc08600c221f532c1ddd8d217686b32ba7d45b0713b5131452", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", - "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/MODULE.bazel": "07e3ce3eaaa50dbd0be7fa0094e36890478937adc780ec53e77fd9fe543af8b1", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/MODULE.bazel": "276347663a25b0d5bd6cad869252bea3e160c4d980e764b15f3bae7f80b30624", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/source.json": "f42051fa42629f0e59b7ac2adf0a55749144b11f1efcd8c697f0ee247181e526", "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.7/MODULE.bazel": "491f8681205e31bb57892d67442ce448cda4f472a8e6b3dc062865e29a64f89c", @@ -63,7 +62,8 @@ "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", - "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/source.json": "7ebaefba0b03efe59cac88ed5bbc67bcf59a3eff33af937345ede2a38b2d368a", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb", "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", @@ -228,7 +228,7 @@ }, "@@aspect_rules_esbuild~//esbuild:extensions.bzl%esbuild": { "general": { - "bzlTransitiveDigest": "vmy9g9SEtzBm7P+a19lslJkVMPbwO857cmH5ZZMWaPc=", + "bzlTransitiveDigest": "NeP8heP5Z49UtK5ZkdaSGN2wdf2vyTLxJfpSPeyvV24=", "usagesDigest": "u8wMZJd6Ovxb3YTmhoM3sMbh11Qwrv5EHaggdNi5Wb8=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, @@ -408,7 +408,7 @@ }, "@@aspect_rules_js~//npm:extensions.bzl%pnpm": { "general": { - "bzlTransitiveDigest": "BZ1QxfApFDl/gTOUNdVuajx6Dm/RCMb80c+ykawEKTc=", + "bzlTransitiveDigest": "eebwHza1XBCmrNmoTUnW56khfYFfcwZpPWjM1Nvu3sk=", "usagesDigest": "LXGqD89vujoiYUGLlPI1UcHEdy3p899TrYwtpQUR2hM=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, diff --git a/package.json b/package.json index 68fa6b3f278f..6566bbd0b004 100644 --- a/package.json +++ b/package.json @@ -168,7 +168,7 @@ "@actions/core": "^1.10.0", "@actions/github": "^6.0.0", "@angular-devkit/architect-cli": "0.2003.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#48fe526910f72741e4c65a92aff07001c2e3ad60", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#e162324c6d6c9b4d712eeb9b786937165c1f310e", "@babel/plugin-proposal-async-generator-functions": "7.20.7", "@babel/plugin-transform-async-generator-functions": "^7.27.1", "@bazel/bazelisk": "^1.7.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9704a6480a7b..d14f400dff7f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -371,8 +371,8 @@ importers: specifier: 0.2003.3 version: 0.2003.3(chokidar@4.0.3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#48fe526910f72741e4c65a92aff07001c2e3ad60 - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/48fe526910f72741e4c65a92aff07001c2e3ad60(@modelcontextprotocol/sdk@1.18.1) + specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e162324c6d6c9b4d712eeb9b786937165c1f310e + version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e(@modelcontextprotocol/sdk@1.18.1) '@babel/plugin-proposal-async-generator-functions': specifier: 7.20.7 version: 7.20.7(@babel/core@7.28.3) @@ -1514,9 +1514,9 @@ packages: '@angular/cdk': 20.2.5 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/48fe526910f72741e4c65a92aff07001c2e3ad60': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/48fe526910f72741e4c65a92aff07001c2e3ad60} - version: 0.0.0-eec872ff45c27532947b960e146d2452f9b29f85 + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e': + resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e} + version: 0.0.0-00cef30761644cb8c8e75ea448e958e4eeed3aa7 hasBin: true '@angular/ssr@20.3.3': @@ -13047,7 +13047,7 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/48fe526910f72741e4c65a92aff07001c2e3ad60(@modelcontextprotocol/sdk@1.18.1)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e(@modelcontextprotocol/sdk@1.18.1)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) From 495211084eed66b66f9a601f00c64c776cbecc15 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Mon, 29 Sep 2025 09:13:58 +0000 Subject: [PATCH 18/42] docs: remove note about node.js 17+ (#64129) This note is pretty old and the mentioned behaviour has been the default for a number of major version. PR Close #64129 --- adev/src/content/tools/cli/serve.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/adev/src/content/tools/cli/serve.md b/adev/src/content/tools/cli/serve.md index 448b952e1508..1682cff84119 100644 --- a/adev/src/content/tools/cli/serve.md +++ b/adev/src/content/tools/cli/serve.md @@ -77,14 +77,3 @@ Edit the proxy configuration file to add configuration options; following are so For a detailed description of all options, refer to the [webpack DevServer documentation](https://webpack.js.org/configuration/dev-server/#devserverproxy) when using `@angular-devkit/build-angular:browser`, or the [Vite DevServer documentation](https://vite.dev/config/server-options#server-proxy) when using `@angular-devkit/build-angular:browser-esbuild` or `@angular-devkit/build-angular:application`. NOTE: If you edit the proxy configuration file, you must relaunch the `ng serve` process to make your changes effective. - -## `localhost` resolution - -As of Node version 17, Node will _not_ always resolve `http://localhost:` to `http://127.0.0.1:` -depending on each machine's configuration. - -If you get an `ECONNREFUSED` error using a proxy targeting a `localhost` URL, -you can fix this issue by updating the target from `http://localhost:` to `http://127.0.0.1:`. - -See [the `http-proxy-middleware` documentation](https://github.com/chimurai/http-proxy-middleware#nodejs-17-econnrefused-issue-with-ipv6-and-localhost-705) -for more information. From c0bb52829a0146c075c58265ec72b30ce3b7ae70 Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Sun, 28 Sep 2025 15:58:16 +0200 Subject: [PATCH 19/42] refactor(devtools): themed devtool tab icons for firefox (#64122) With this change, Firefox get a different tab icon when the dark theme is enabled fixes #52980 PR Close #64122 --- devtools/projects/shell-browser/src/devtools.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/devtools/projects/shell-browser/src/devtools.ts b/devtools/projects/shell-browser/src/devtools.ts index e25785c54784..dada122858bc 100644 --- a/devtools/projects/shell-browser/src/devtools.ts +++ b/devtools/projects/shell-browser/src/devtools.ts @@ -7,4 +7,11 @@ */ /// -chrome.devtools.panels.create('Angular', 'assets/icon-bw16.png', 'index.html'); +const theme = chrome.devtools.panels.themeName; +chrome.devtools.panels.create( + 'Angular', + // Firefox specifically displays the icon in the tab. + // the bw icon wasn't visible in dark mode + theme === 'dark' ? 'assets/icon16.png' : 'assets/icon-bw16.png', + 'index.html', +); From e6c0d7eba107d2a8cd8a68050bf69f9eb7462baa Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Sun, 28 Sep 2025 07:05:35 +0000 Subject: [PATCH 20/42] build: update github/codeql-action action to v3.30.5 (#64121) See associated pull request for more information. PR Close #64121 --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index bdc26c3b68f9..973d1edf0529 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -47,6 +47,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: 'Upload to code-scanning' - uses: github/codeql-action/upload-sarif@303c0aef88fc2fe5ff6d63d3b1596bfd83dfa1f9 # v3.30.4 + uses: github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5 with: sarif_file: results.sarif From 633db24ca2bec4d96bcd490c227fd0860b0aa953 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 29 Sep 2025 14:44:39 +0000 Subject: [PATCH 21/42] build: update bazel dependencies (#64100) See associated pull request for more information. PR Close #64100 --- MODULE.bazel | 4 +-- MODULE.bazel.lock | 64 ++--------------------------------------------- 2 files changed, 4 insertions(+), 64 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 4c77caec1414..3a03c81bc38f 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -11,9 +11,9 @@ bazel_dep(name = "aspect_rules_js", version = "2.6.0") bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1") bazel_dep(name = "aspect_rules_jasmine", version = "2.0.0") bazel_dep(name = "aspect_rules_rollup", version = "2.0.1") -bazel_dep(name = "bazel_skylib", version = "1.8.1") +bazel_dep(name = "bazel_skylib", version = "1.8.2") bazel_dep(name = "aspect_bazel_lib", version = "2.21.2") -bazel_dep(name = "tar.bzl", version = "0.5.5") +bazel_dep(name = "tar.bzl", version = "0.5.6") bazel_dep(name = "yq.bzl", version = "0.2.0") bazel_dep(name = "rules_angular") git_override( diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 155bb5b9b17d..a8a0eb960d98 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.5/MODULE.bazel": "4bfab9bbc7a1966c2c5f7371f5848f5e2d27c465951b4435adc9aaf00ed681da", - "https://bcr.bazel.build/modules/tar.bzl/0.5.5/source.json": "67c322bd9f9a6714b9d55d4df36ddc222976a7fbb2070410ef036f68cdf2eeb7", + "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/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", @@ -4186,67 +4187,6 @@ "recordedRepoMappingEntries": [] } }, - "@@tar.bzl~//tar:extensions.bzl%toolchains": { - "general": { - "bzlTransitiveDigest": "x8T4avQwaccwFRDkBObSMray93ZBHwpcjsZTPQOyII0=", - "usagesDigest": "aQJiuhjXhigIjDvDZxsHPfosrrHvNBHV55yj8QdZQgs=", - "recordedFileInputs": {}, - "recordedDirentsInputs": {}, - "envVariables": {}, - "generatedRepoSpecs": { - "bsd_tar_toolchains": { - "bzlFile": "@@tar.bzl~//tar/toolchain:toolchain.bzl", - "ruleClassName": "tar_toolchains_repo", - "attributes": { - "user_repository_name": "bsd_tar_toolchains" - } - }, - "bsd_tar_toolchains_darwin_amd64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "darwin_amd64" - } - }, - "bsd_tar_toolchains_darwin_arm64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "darwin_arm64" - } - }, - "bsd_tar_toolchains_linux_amd64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "linux_amd64" - } - }, - "bsd_tar_toolchains_linux_arm64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "linux_arm64" - } - }, - "bsd_tar_toolchains_windows_amd64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "windows_amd64" - } - }, - "bsd_tar_toolchains_windows_arm64": { - "bzlFile": "@@tar.bzl~//tar/toolchain:platforms.bzl", - "ruleClassName": "bsdtar_binary_repo", - "attributes": { - "platform": "windows_arm64" - } - } - }, - "recordedRepoMappingEntries": [] - } - }, "@@yq.bzl~//yq:extensions.bzl%yq": { "general": { "bzlTransitiveDigest": "61Uz+o5PnlY0jJfPZEUNqsKxnM/UCLeWsn5VVCc8u5Y=", From 4b3f7a0e5fb7225da8672b081babfd0ab5a783cc Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Mon, 29 Sep 2025 18:41:24 +0200 Subject: [PATCH 22/42] refactor(devtools): guard value reads in the serializer (#64096) Some properties (like gets) might throw when we try to read them. With this commit we fail gracefuly and show a warning message for the property that can't be read. fixes #56755 PR Close #64096 --- .../serialized-descriptor-factory.ts | 5 +++++ .../src/lib/state-serializer/state-serializer.ts | 15 ++++++++++++++- devtools/projects/protocol/src/lib/messages.ts | 3 +++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/devtools/projects/ng-devtools-backend/src/lib/state-serializer/serialized-descriptor-factory.ts b/devtools/projects/ng-devtools-backend/src/lib/state-serializer/serialized-descriptor-factory.ts index 9ea02b237a0f..0509826bfc64 100644 --- a/devtools/projects/ng-devtools-backend/src/lib/state-serializer/serialized-descriptor-factory.ts +++ b/devtools/projects/ng-devtools-backend/src/lib/state-serializer/serialized-descriptor-factory.ts @@ -71,6 +71,7 @@ const typeToDescriptorPreview: Formatter = { return `${prop}`; }, [PropType.Unknown]: (_: any) => 'unknown', + [PropType.Error]: (_: any) => '[⚠️ Error when retrieving the value]', }; type Key = string | number; @@ -141,6 +142,10 @@ const shallowPropTypeToTreeMetaData: Record< editable: false, expandable: false, }, + [PropType.Error]: { + editable: false, + expandable: false, + }, }; const isEditable = ( diff --git a/devtools/projects/ng-devtools-backend/src/lib/state-serializer/state-serializer.ts b/devtools/projects/ng-devtools-backend/src/lib/state-serializer/state-serializer.ts index 340125d0ddc8..565e61060b44 100644 --- a/devtools/projects/ng-devtools-backend/src/lib/state-serializer/state-serializer.ts +++ b/devtools/projects/ng-devtools-backend/src/lib/state-serializer/state-serializer.ts @@ -81,7 +81,20 @@ function levelSerializer( level = MAX_LEVEL, continuation = levelSerializer, ): Descriptor { - const serializableInstance = instance[propName]; + let serializableInstance: any; + try { + serializableInstance = instance[propName]; + } catch { + return { + type: PropType.Error, + value: '', + containerType: null, + editable: false, + expandable: false, + preview: '', + }; + } + const propData: PropertyData = { prop: serializableInstance, type: getPropType(serializableInstance), diff --git a/devtools/projects/protocol/src/lib/messages.ts b/devtools/projects/protocol/src/lib/messages.ts index 885273e31dc7..28dde899330b 100644 --- a/devtools/projects/protocol/src/lib/messages.ts +++ b/devtools/projects/protocol/src/lib/messages.ts @@ -150,6 +150,9 @@ export enum PropType { Set, Map, Unknown, + + // Special Type when an error occurs during property access + Error, } export interface Descriptor { From aa28aa274c05affdebaf5770b6817f04f49872b1 Mon Sep 17 00:00:00 2001 From: SkyZeroZx <73321943+SkyZeroZx@users.noreply.github.com> Date: Sun, 28 Sep 2025 11:32:56 -0500 Subject: [PATCH 23/42] docs: Adds guide for custom HTTP parameter encoding (#64119) PR Close #64119 --- .../src/content/guide/http/making-requests.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/adev/src/content/guide/http/making-requests.md b/adev/src/content/guide/http/making-requests.md index 96569efde023..180f9f3bdbac 100644 --- a/adev/src/content/guide/http/making-requests.md +++ b/adev/src/content/guide/http/making-requests.md @@ -104,6 +104,49 @@ http.get('/api/config', { You can instantiate `HttpParams` with a custom `HttpParameterCodec` that determines how `HttpClient` will encode the parameters into the URL. +### Custom parameter encoding + +By default, `HttpParams` uses the built-in [`HttpUrlEncodingCodec`](api/common/http/HttpUrlEncodingCodec) to encode and decode parameter keys and values. + +You can provide your own implementation of [`HttpParameterCodec`](api/common/http/HttpParameterCodec) to customize how encoding and decoding are applied. + +```ts +import { HttpClient, HttpParams, HttpParameterCodec } from '@angular/common/http'; +import { inject } from '@angular/core'; + +export class CustomHttpParamEncoder implements HttpParameterCodec { + encodeKey(key: string): string { + return encodeURIComponent(key); + } + + encodeValue(value: string): string { + return encodeURIComponent(value); + } + + decodeKey(key: string): string { + return decodeURIComponent(key); + } + + decodeValue(value: string): string { + return decodeURIComponent(value); + } +} + +export class ApiService { + private http = inject(HttpClient); + + search() { + const params = new HttpParams({ + encoder: new CustomHttpParamEncoder(), + }) + .set('email', 'dev+alerts@example.com') + .set('q', 'a & b? c/d = e'); + + return this.http.get('/api/items', { params }); + } +} +``` + ## Setting request headers Specify request headers that should be included in the request using the `headers` option. From 5c50e0b0ef63218ee0c454eb148ad35b24e3a485 Mon Sep 17 00:00:00 2001 From: Angular Robot Date: Mon, 29 Sep 2025 13:46:15 +0000 Subject: [PATCH 24/42] build: update cross-repo angular dependencies (#64115) See associated pull request for more information. PR Close #64115 --- .github/actions/saucelabs-legacy/action.yml | 4 +- .github/workflows/adev-preview-build.yml | 8 +- .github/workflows/adev-preview-deploy.yml | 2 +- .../assistant-to-the-branch-manager.yml | 2 +- .github/workflows/benchmark-compare.yml | 2 +- .github/workflows/ci.yml | 44 ++--- .github/workflows/dev-infra.yml | 4 +- .github/workflows/google-internal-tests.yml | 2 +- .github/workflows/manual.yml | 8 +- .github/workflows/merge-ready-status.yml | 2 +- .github/workflows/perf.yml | 6 +- .github/workflows/pr.yml | 34 ++-- MODULE.bazel | 2 +- package.json | 2 +- pnpm-lock.yaml | 154 ++++++++++-------- 15 files changed, 144 insertions(+), 132 deletions(-) diff --git a/.github/actions/saucelabs-legacy/action.yml b/.github/actions/saucelabs-legacy/action.yml index 7f3ad0b7f613..83ffd96e0191 100644 --- a/.github/actions/saucelabs-legacy/action.yml +++ b/.github/actions/saucelabs-legacy/action.yml @@ -5,9 +5,9 @@ runs: using: 'composite' steps: - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Saucelabs Variables - uses: angular/dev-infra/github-actions/saucelabs@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/saucelabs@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Starting Saucelabs tunnel service shell: bash run: ./tools/saucelabs/sauce-service.sh run & diff --git a/.github/workflows/adev-preview-build.yml b/.github/workflows/adev-preview-build.yml index 4facbed6f540..8f2bbdb5e4b1 100644 --- a/.github/workflows/adev-preview-build.yml +++ b/.github/workflows/adev-preview-build.yml @@ -21,16 +21,16 @@ jobs: (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'adev: preview')) steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build adev run: pnpm bazel build //adev:build.production - - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: workflow-artifact-name: 'adev-preview' pull-number: '${{github.event.pull_request.number}}' diff --git a/.github/workflows/adev-preview-deploy.yml b/.github/workflows/adev-preview-deploy.yml index ffe6a84b109b..2dfcc17303ef 100644 --- a/.github/workflows/adev-preview-deploy.yml +++ b/.github/workflows/adev-preview-deploy.yml @@ -40,7 +40,7 @@ jobs: npx -y firebase-tools@latest target:clear --config adev/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting angular-docs npx -y firebase-tools@latest target:apply --config adev/firebase.json --project ${{env.PREVIEW_PROJECT}} hosting angular-docs ${{env.PREVIEW_SITE}} - - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/previews/upload-artifacts-to-firebase@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: github-token: '${{secrets.GITHUB_TOKEN}}' workflow-artifact-name: 'adev-preview' diff --git a/.github/workflows/assistant-to-the-branch-manager.yml b/.github/workflows/assistant-to-the-branch-manager.yml index dd17d9e54e73..ef4948019bf7 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/branch-manager@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/benchmark-compare.yml b/.github/workflows/benchmark-compare.yml index ff2aa73fe26a..93bbdc7857e1 100644 --- a/.github/workflows/benchmark-compare.yml +++ b/.github/workflows/benchmark-compare.yml @@ -38,7 +38,7 @@ jobs: - run: pnpm install --frozen-lockfile - - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: bazelrc: ./.bazelrc.user diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3981620029b9..d6b7362ba7ca 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Check code lint @@ -39,13 +39,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Cache downloaded Cypress binary @@ -72,11 +72,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -88,11 +88,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -105,11 +105,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -124,13 +124,13 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: cache-node-modules: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - run: echo "https://${{secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN}}:@github.com" > ${HOME}/.git_credentials @@ -142,11 +142,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: google_credential: ${{ secrets.RBE_TRUSTED_BUILDS_USER }} - name: Install node modules @@ -196,11 +196,11 @@ jobs: runs-on: ubuntu-latest-8core steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Build adev diff --git a/.github/workflows/dev-infra.yml b/.github/workflows/dev-infra.yml index 04c1a7d25610..627102fcebaa 100644 --- a/.github/workflows/dev-infra.yml +++ b/.github/workflows/dev-infra.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/pull-request-labeling@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/pull-request-labeling@b7672ff60456719e6d9b0cc052abc73a7adc8df2 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/post-approval-changes@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/google-internal-tests.yml b/.github/workflows/google-internal-tests.yml index b19a19d21474..8aa9bfbc7e9d 100644 --- a/.github/workflows/google-internal-tests.yml +++ b/.github/workflows/google-internal-tests.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: angular/dev-infra/github-actions/google-internal-tests@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/google-internal-tests@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: run-tests-guide-url: http://go/angular-g3sync-start github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index cb19438f390d..2926b2aeb064 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -13,17 +13,17 @@ jobs: JOBS: 2 steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: cache-node-modules: true - name: Install node modules run: pnpm install --frozen-lockfile - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Saucelabs Variables - uses: angular/dev-infra/github-actions/saucelabs@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/saucelabs@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Set up Sauce Tunnel Daemon run: pnpm bazel run //tools/saucelabs-daemon/background-service -- $JOBS & env: diff --git a/.github/workflows/merge-ready-status.yml b/.github/workflows/merge-ready-status.yml index a9c52e2008a8..09430c64ccec 100644 --- a/.github/workflows/merge-ready-status.yml +++ b/.github/workflows/merge-ready-status.yml @@ -9,6 +9,6 @@ jobs: status: runs-on: ubuntu-latest steps: - - uses: angular/dev-infra/github-actions/unified-status-check@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + - uses: angular/dev-infra/github-actions/unified-status-check@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: angular-robot-key: ${{ secrets.ANGULAR_ROBOT_PRIVATE_KEY }} diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 1c2c25c30029..31199f4d0edc 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -21,7 +21,7 @@ jobs: workflows: ${{ steps.workflows.outputs.workflows }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - id: workflows @@ -36,9 +36,9 @@ jobs: workflow: ${{ fromJSON(needs.list.outputs.workflows) }} steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile # We utilize the google-github-actions/auth action to allow us to get an active credential using workflow diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index cf8d674c0347..8d0924cf2507 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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Check code lint @@ -37,7 +37,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@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/linting/licenses@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: allow-dependencies-licenses: 'pkg:npm/google-protobuf@' @@ -45,13 +45,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 with: disable-package-manager-cache: true - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Cache downloaded Cypress binary uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: @@ -76,11 +76,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run CI tests for framework @@ -100,11 +100,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel Remote Caching - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run integration CI tests for framework @@ -115,11 +115,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - name: Run tests @@ -132,11 +132,11 @@ jobs: labels: ubuntu-latest steps: - name: Initialize environment - uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel - uses: angular/dev-infra/github-actions/bazel/setup@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/setup@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Setup Bazel RBE - uses: angular/dev-infra/github-actions/bazel/configure-remote@00cef30761644cb8c8e75ea448e958e4eeed3aa7 + uses: angular/dev-infra/github-actions/bazel/configure-remote@b7672ff60456719e6d9b0cc052abc73a7adc8df2 - name: Install node modules run: pnpm install --frozen-lockfile - run: | diff --git a/MODULE.bazel b/MODULE.bazel index 3a03c81bc38f..399422f9be2c 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -25,7 +25,7 @@ git_override( bazel_dep(name = "devinfra") git_override( module_name = "devinfra", - commit = "00cef30761644cb8c8e75ea448e958e4eeed3aa7", + commit = "b7672ff60456719e6d9b0cc052abc73a7adc8df2", remote = "https://github.com/angular/dev-infra.git", ) diff --git a/package.json b/package.json index 6566bbd0b004..bdd053f288fa 100644 --- a/package.json +++ b/package.json @@ -168,7 +168,7 @@ "@actions/core": "^1.10.0", "@actions/github": "^6.0.0", "@angular-devkit/architect-cli": "0.2003.3", - "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#e162324c6d6c9b4d712eeb9b786937165c1f310e", + "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#6f8f9b9ad21f8a8386290489377ef73a88bf5aeb", "@babel/plugin-proposal-async-generator-functions": "7.20.7", "@babel/plugin-transform-async-generator-functions": "^7.27.1", "@bazel/bazelisk": "^1.7.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d14f400dff7f..9ce90a65bd85 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -371,8 +371,8 @@ importers: specifier: 0.2003.3 version: 0.2003.3(chokidar@4.0.3) '@angular/ng-dev': - specifier: https://github.com/angular/dev-infra-private-ng-dev-builds.git#e162324c6d6c9b4d712eeb9b786937165c1f310e - version: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e(@modelcontextprotocol/sdk@1.18.1) + 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.1) '@babel/plugin-proposal-async-generator-functions': specifier: 7.20.7 version: 7.20.7(@babel/core@7.28.3) @@ -528,13 +528,13 @@ importers: version: 5.35.0 '@angular-devkit/build-angular': specifier: 20.3.3 - version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(utf-8-validate@6.0.5)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(protractor@7.0.0)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@6.0.5)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1) '@angular/animations': specifier: workspace:* version: link:../packages/animations '@angular/build': specifier: 20.3.3 - version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1) '@angular/cdk': specifier: 20.2.5 version: 20.2.5(rxjs@7.8.2) @@ -870,7 +870,7 @@ importers: version: link:../packages/benchpress '@angular/build': specifier: 20.3.3 - version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1) '@angular/common': specifier: workspace:* version: link:../packages/common @@ -1041,7 +1041,7 @@ importers: version: link:../../../animations '@angular/build': specifier: 20.3.3 - version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + version: 20.3.3(@angular/ssr@20.3.3)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1) '@angular/common': specifier: workspace:* version: link:../../../common @@ -1295,7 +1295,7 @@ importers: version: 2.8.1 vitest: specifier: ^3.1.3 - version: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) packages/zone.js/test/typings: dependencies: @@ -1514,9 +1514,9 @@ packages: '@angular/cdk': 20.2.5 rxjs: ^6.5.3 || ^7.4.0 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e': - resolution: {tarball: https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e} - version: 0.0.0-00cef30761644cb8c8e75ea448e958e4eeed3aa7 + '@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 hasBin: true '@angular/ssr@20.3.3': @@ -2743,8 +2743,8 @@ packages: resolution: {integrity: sha512-IJn+8A3QZJfe7FUtWqHVNo3xJs7KFpurCWGWCiCz3oEh+BkRymKZ1QxfAbU2yGMDzTytLGQ2IV6T2r3cuo75/w==} engines: {node: '>=18'} - '@google/genai@1.20.0': - resolution: {integrity: sha512-QdShxO9LX35jFogy3iKprQNqgKKveux4H2QjOnyIvyHRuGi6PHiz3fjNf8Y0VPY8o5V2fHqR2XqiSVoz7yZs0w==} + '@google/genai@1.21.0': + resolution: {integrity: sha512-k47DECR8BF9z7IJxQd3reKuH2eUnOH5NlJWSe+CKM6nbXx+wH3hmtWQxUQR9M8gzWW1EvFuRVgjQssEIreNZsw==} engines: {node: '>=20.0.0'} peerDependencies: '@modelcontextprotocol/sdk': ^1.11.4 @@ -8235,8 +8235,8 @@ packages: jasmine-core@4.6.1: resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} - jasmine-core@5.10.0: - resolution: {integrity: sha512-MrChbWV5LBo+EaeKwTM1eZ6oYSz1brvFExnRafraEkJkbJ9evbUxABhnIgGQimhpMxhg+BD6QmOvb/e3NXsNdg==} + jasmine-core@5.11.0: + resolution: {integrity: sha512-MPJ8L5yyNul0F2SuEsLASwESXQjJvBXnKu31JWFyRZSvuv2B79K4GDWN3pSqvLheUNh7Fyb6dXwd4rsz95O2Kg==} jasmine-core@5.9.0: resolution: {integrity: sha512-OMUvF1iI6+gSRYOhMrH4QYothVLN9C3EJ6wm4g7zLJlnaTl8zbaPOr0bTw70l7QxkoM7sVFOWo83u9B2Fe2Zng==} @@ -8248,8 +8248,8 @@ packages: resolution: {integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==} hasBin: true - jasmine@5.10.0: - resolution: {integrity: sha512-v4FojO8cXQdx15mJXovGhjJOvyIcVf7AC+H0ZahnfLk52vUbwuLxjVgbikc95yLmgwKQsFT47/FGQ3dOrWVxtQ==} + jasmine@5.11.0: + resolution: {integrity: sha512-MhIYY2pLfRA5hhIvY72ZLilwKeZEBuTyIUv9JDB+b+pEYehsJDW2obKF2dmMtWaFG6pDiFiAUNphpZ7SW7fFMA==} hasBin: true jasmine@5.9.0: @@ -11396,6 +11396,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + tsx@4.20.6: + resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==} + engines: {node: '>=18.0.0'} + hasBin: true + tuf-js@3.1.0: resolution: {integrity: sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -12558,13 +12563,13 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(protractor@7.0.0)(tsx@4.20.5)(typescript@5.9.2)(utf-8-validate@6.0.5)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular-devkit/build-angular@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(bufferutil@4.0.9)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(protractor@7.0.0)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@6.0.5)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1)': 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(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1) + '@angular/build': 20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1) '@angular/compiler-cli': link:packages/compiler-cli '@angular/core': link:packages/core '@angular/localize': link:packages/localize @@ -12799,7 +12804,7 @@ snapshots: - tsx - yaml - '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) @@ -12814,7 +12819,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.14(@types/node@24.3.0) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.5(@types/node@24.3.0)(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 esbuild: 0.25.9 @@ -12834,7 +12839,7 @@ snapshots: tinyglobby: 0.2.14 tslib: 2.8.1 typescript: 5.9.2 - vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.0)(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/ssr': 20.3.3 @@ -12842,7 +12847,7 @@ snapshots: less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 - vitest: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vitest: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - chokidar @@ -12856,7 +12861,7 @@ snapshots: - tsx - yaml - '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.3.0)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) @@ -12871,7 +12876,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.14(@types/node@24.3.0) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) beasties: 0.3.5 browserslist: 4.26.2 esbuild: 0.25.9 @@ -12891,7 +12896,7 @@ snapshots: tinyglobby: 0.2.14 tslib: 2.8.1 typescript: 5.9.2 - vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: '@angular/ssr': 20.3.3 @@ -12899,7 +12904,7 @@ snapshots: less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 - vitest: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vitest: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - chokidar @@ -12913,7 +12918,7 @@ snapshots: - tsx - yaml - '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.5)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(yaml@2.8.1)': + '@angular/build@20.3.3(@angular/ssr@20.3.3)(@types/node@24.5.2)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(postcss@8.5.6)(terser@5.44.0)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)(vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2003.3(chokidar@4.0.3) @@ -12928,7 +12933,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.14(@types/node@24.5.2) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) beasties: 0.3.5 browserslist: 4.26.2 esbuild: 0.25.9 @@ -12948,7 +12953,7 @@ snapshots: tinyglobby: 0.2.14 tslib: 2.8.1 typescript: 5.9.2 - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) watchpack: 2.4.4 optionalDependencies: '@angular/ssr': 20.3.3 @@ -12956,7 +12961,7 @@ snapshots: less: 4.4.0 lmdb: 3.4.2 postcss: 8.5.6 - vitest: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vitest: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - chokidar @@ -13047,11 +13052,11 @@ snapshots: rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/e162324c6d6c9b4d712eeb9b786937165c1f310e(@modelcontextprotocol/sdk@1.18.1)': + '@angular/ng-dev@https://codeload.github.com/angular/dev-infra-private-ng-dev-builds/tar.gz/6f8f9b9ad21f8a8386290489377ef73a88bf5aeb(@modelcontextprotocol/sdk@1.18.1)': dependencies: '@actions/core': 1.11.1 '@google-cloud/spanner': 8.0.0(supports-color@10.2.2) - '@google/genai': 1.20.0(@modelcontextprotocol/sdk@1.18.1)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5) + '@google/genai': 1.21.0(@modelcontextprotocol/sdk@1.18.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.5.2) '@inquirer/type': 3.0.8(@types/node@24.5.2) '@octokit/auth-app': 8.1.0 @@ -13088,8 +13093,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.10.0 - jasmine-core: 5.10.0 + jasmine: 5.11.0 + jasmine-core: 5.11.0 jasmine-reporters: 2.5.2 jsonc-parser: 3.3.1 minimatch: 10.0.3 @@ -13097,7 +13102,7 @@ snapshots: nock: 14.0.10 semver: 7.7.2 supports-color: 10.2.2 - tsx: 4.20.5 + tsx: 4.20.6 typed-graphqlify: 3.1.6 typescript: 5.9.2 utf-8-validate: 6.0.5 @@ -14676,7 +14681,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@google/genai@1.20.0(@modelcontextprotocol/sdk@1.18.1)(bufferutil@4.0.9)(encoding@0.1.13)(supports-color@10.2.2)(utf-8-validate@6.0.5)': + '@google/genai@1.21.0(@modelcontextprotocol/sdk@1.18.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) @@ -17014,17 +17019,17 @@ snapshots: dependencies: vite: 7.1.5(@types/node@18.19.127)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.0)(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@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.0)(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@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: - vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) '@vitest/expect@3.2.4': dependencies: @@ -17043,21 +17048,21 @@ snapshots: vite: 7.1.6(@types/node@18.19.127)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) optional: true - '@vitest/mocker@3.2.4(vite@7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) - '@vitest/mocker@3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) optional: true '@vitest/pretty-format@3.2.4': @@ -21290,7 +21295,7 @@ snapshots: jasmine-core@4.6.1: {} - jasmine-core@5.10.0: {} + jasmine-core@5.11.0: {} jasmine-core@5.9.0: {} @@ -21305,10 +21310,10 @@ snapshots: glob: 7.2.3 jasmine-core: 2.8.0 - jasmine@5.10.0: + jasmine@5.11.0: dependencies: glob: 10.4.5 - jasmine-core: 5.10.0 + jasmine-core: 5.11.0 jasmine@5.9.0: dependencies: @@ -25244,6 +25249,13 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tsx@4.20.6: + dependencies: + esbuild: 0.25.9 + get-tsconfig: 4.10.1 + optionalDependencies: + fsevents: 2.3.3 + tuf-js@3.1.0: dependencies: '@tufjs/models': 3.0.1 @@ -25680,13 +25692,13 @@ snapshots: - yaml optional: true - vite-node@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -25701,13 +25713,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -25759,7 +25771,7 @@ snapshots: tsx: 4.20.5 yaml: 2.8.1 - vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.5(@types/node@24.3.0)(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 fdir: 6.5.0(picomatch@4.0.3) @@ -25774,10 +25786,10 @@ snapshots: less: 4.4.0 sass: 1.90.0 terser: 5.43.1 - tsx: 4.20.5 + tsx: 4.20.6 yaml: 2.8.1 - vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.5(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -25792,10 +25804,10 @@ snapshots: less: 4.4.0 sass: 1.90.0 terser: 5.44.0 - tsx: 4.20.5 + tsx: 4.20.6 yaml: 2.8.1 - vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.5(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -25810,7 +25822,7 @@ snapshots: less: 4.4.0 sass: 1.90.0 terser: 5.44.0 - tsx: 4.20.5 + tsx: 4.20.6 yaml: 2.8.1 vite@7.1.6(@types/node@18.19.127)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): @@ -25832,7 +25844,7 @@ snapshots: yaml: 2.8.1 optional: true - vite@7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -25847,10 +25859,10 @@ snapshots: less: 4.4.0 sass: 1.90.0 terser: 5.44.0 - tsx: 4.20.5 + tsx: 4.20.6 yaml: 2.8.1 - vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -25865,7 +25877,7 @@ snapshots: less: 4.4.0 sass: 1.90.0 terser: 5.44.0 - tsx: 4.20.5 + tsx: 4.20.6 yaml: 2.8.1 optional: true @@ -25912,11 +25924,11 @@ snapshots: - yaml optional: true - vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.3.0)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -25934,8 +25946,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.3.0)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.3.0 @@ -25954,11 +25966,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.5.2)(jiti@1.21.7)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@6.0.5))(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -25976,8 +25988,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.5.2)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.5.2 From 3598855d739691693de4bb3e40f2d66231c57f51 Mon Sep 17 00:00:00 2001 From: Shuaib Hasan Akib Date: Tue, 30 Sep 2025 00:39:10 +0600 Subject: [PATCH 25/42] docs(docs-infra): clean up code and use inferred types where possible (#64139) PR Close #64139 --- .../components/cookie-popup/cookie-popup.component.ts | 2 +- .../navigation-list/navigation-list.component.ts | 9 ++++----- adev/shared-docs/components/select/select.component.ts | 2 +- .../components/slide-toggle/slide-toggle.component.ts | 3 +-- adev/src/app/app-scroller.ts | 2 +- adev/src/app/core/services/theme-manager.service.ts | 4 ---- adev/src/app/main.component.ts | 4 ++-- 7 files changed, 10 insertions(+), 16 deletions(-) diff --git a/adev/shared-docs/components/cookie-popup/cookie-popup.component.ts b/adev/shared-docs/components/cookie-popup/cookie-popup.component.ts index 8d087bd3928d..dd881dfd539a 100644 --- a/adev/shared-docs/components/cookie-popup/cookie-popup.component.ts +++ b/adev/shared-docs/components/cookie-popup/cookie-popup.component.ts @@ -27,7 +27,7 @@ export class CookiePopup { private readonly localStorage = inject(LOCAL_STORAGE); /** Whether the user has accepted the cookie disclaimer. */ - readonly hasAccepted = signal(false); + readonly hasAccepted = signal(false); constructor() { // Needs to be in a try/catch, because some browsers will diff --git a/adev/shared-docs/components/navigation-list/navigation-list.component.ts b/adev/shared-docs/components/navigation-list/navigation-list.component.ts index 8f2b55925fd4..59114cd3eaeb 100644 --- a/adev/shared-docs/components/navigation-list/navigation-list.component.ts +++ b/adev/shared-docs/components/navigation-list/navigation-list.component.ts @@ -14,8 +14,7 @@ import {IconComponent} from '../icon/icon.component'; import {IsActiveNavigationItem} from '../../pipes'; import {NgTemplateOutlet, TitleCasePipe} from '@angular/common'; import {MatTooltipModule} from '@angular/material/tooltip'; -import {SlideToggle} from '../slide-toggle/slide-toggle.component'; -import {FormControl, ReactiveFormsModule} from '@angular/forms'; +import {ReactiveFormsModule} from '@angular/forms'; @Component({ selector: 'docs-navigation-list', @@ -35,10 +34,10 @@ import {FormControl, ReactiveFormsModule} from '@angular/forms'; }) export class NavigationList { readonly navigationItems = input.required(); - readonly displayItemsToLevel = input(2); + readonly displayItemsToLevel = input(2); readonly collapsableLevel = input(); - readonly expandableLevel = input(2); - readonly isDropdownView = input(false); + readonly expandableLevel = input(2); + readonly isDropdownView = input(false); readonly linkClicked = output(); diff --git a/adev/shared-docs/components/select/select.component.ts b/adev/shared-docs/components/select/select.component.ts index 5973054b2709..0cf6f3121e10 100644 --- a/adev/shared-docs/components/select/select.component.ts +++ b/adev/shared-docs/components/select/select.component.ts @@ -37,7 +37,7 @@ export class Select implements ControlValueAccessor { readonly id = input.required({alias: 'selectId'}); readonly name = input.required(); readonly options = input.required(); - readonly disabled = model(false); + readonly disabled = model(false); // Implemented as part of ControlValueAccessor. private onChange: (value: SelectOptionValue) => void = (_: SelectOptionValue) => {}; diff --git a/adev/shared-docs/components/slide-toggle/slide-toggle.component.ts b/adev/shared-docs/components/slide-toggle/slide-toggle.component.ts index b1fdc486b1d4..c91ddbd31fe9 100644 --- a/adev/shared-docs/components/slide-toggle/slide-toggle.component.ts +++ b/adev/shared-docs/components/slide-toggle/slide-toggle.component.ts @@ -11,7 +11,6 @@ import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'; @Component({ selector: 'docs-slide-toggle', - imports: [], changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './slide-toggle.component.html', styleUrls: ['./slide-toggle.component.scss'], @@ -26,7 +25,7 @@ import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'; export class SlideToggle implements ControlValueAccessor { readonly buttonId = input.required(); readonly label = input.required(); - readonly disabled = model(false); + readonly disabled = model(false); // Implemented as part of ControlValueAccessor. private onChange: (value: boolean) => void = (_: boolean) => {}; diff --git a/adev/src/app/app-scroller.ts b/adev/src/app/app-scroller.ts index 3f675d4d389c..9ee57fd0414a 100644 --- a/adev/src/app/app-scroller.ts +++ b/adev/src/app/app-scroller.ts @@ -62,7 +62,7 @@ export class AppScroller { this.scroll(); }); - // This value is primarly intended to offset the scroll position on mobile when the menu is on the top. + // This value is primarily intended to offset the scroll position on mobile when the menu is on the top. // But on desktop, it doesn't hurt to have a small offset either. this.viewportScroller.setOffset([0, 64]); } diff --git a/adev/src/app/core/services/theme-manager.service.ts b/adev/src/app/core/services/theme-manager.service.ts index 97ef7e6e92f1..3eab77f38ace 100644 --- a/adev/src/app/core/services/theme-manager.service.ts +++ b/adev/src/app/core/services/theme-manager.service.ts @@ -9,7 +9,6 @@ import {DOCUMENT, isPlatformBrowser} from '@angular/common'; import {Injectable, PLATFORM_ID, inject, signal} from '@angular/core'; import {LOCAL_STORAGE} from '@angular/docs'; -import {Subject} from 'rxjs'; // Keep these constants in sync with the code in index.html @@ -29,8 +28,6 @@ export class ThemeManager { private readonly platformId = inject(PLATFORM_ID); readonly theme = signal(this.getThemeFromLocalStorageValue()); - // Zoneless - it's required to notify that theme was changed. It could be removed when signal-based components will be available. - readonly themeChanged$ = new Subject(); constructor() { if (!isPlatformBrowser(this.platformId)) { @@ -67,7 +64,6 @@ export class ThemeManager { documentClassList.add(LIGHT_MODE_CLASS_NAME); documentClassList.remove(DARK_MODE_CLASS_NAME); } - this.themeChanged$.next(); } private getThemeFromLocalStorageValue(): Theme | null { diff --git a/adev/src/app/main.component.ts b/adev/src/app/main.component.ts index 44f1bddbce9f..daab349e6937 100644 --- a/adev/src/app/main.component.ts +++ b/adev/src/app/main.component.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {Component, effect, inject, model, WritableSignal} from '@angular/core'; +import {Component, effect, inject, model} from '@angular/core'; import {IS_SEARCH_DIALOG_OPEN, Search} from '@angular/docs'; import {RouterOutlet} from '@angular/router'; @@ -16,7 +16,7 @@ import {RouterOutlet} from '@angular/router'; template: ``, }) export default class MainComponent { - private readonly displaySearchDialog: WritableSignal = inject(IS_SEARCH_DIALOG_OPEN); + private readonly displaySearchDialog = inject(IS_SEARCH_DIALOG_OPEN); private readonly searchService = inject(Search); readonly search = model(''); From ced186fafbdda4740cf23353921051ebbd02b16c Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Wed, 24 Sep 2025 21:07:01 +0200 Subject: [PATCH 26/42] docs(docs-infra): prevent to call `section.scrollIntoView` on the server side (#64038) PR Close #64038 --- .../api-reference-details-page.component.ts | 21 ++++++++++++++----- .../reference-scroll-handler.service.ts | 5 ----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/adev/src/app/features/references/api-reference-details-page/api-reference-details-page.component.ts b/adev/src/app/features/references/api-reference-details-page/api-reference-details-page.component.ts index 66c6c817a900..c2eaeacf3cbc 100644 --- a/adev/src/app/features/references/api-reference-details-page/api-reference-details-page.component.ts +++ b/adev/src/app/features/references/api-reference-details-page/api-reference-details-page.component.ts @@ -6,11 +6,19 @@ * found in the LICENSE file at https://angular.dev/license */ -import {ChangeDetectionStrategy, Component, effect, inject, input, Renderer2} from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + effect, + inject, + input, + PLATFORM_ID, + Renderer2, +} from '@angular/core'; import {toSignal} from '@angular/core/rxjs-interop'; import {DocContent, DocViewer} from '@angular/docs'; import {ActivatedRoute} from '@angular/router'; -import {DOCUMENT} from '@angular/common'; +import {DOCUMENT, isPlatformBrowser} from '@angular/common'; import {ReferenceScrollHandler} from '../services/reference-scroll-handler.service'; import {API_SECTION_CLASS_NAME} from '../constants/api-reference-prerender.constants'; @@ -29,6 +37,7 @@ export default class ApiReferenceDetailsPage { private readonly route = inject(ActivatedRoute); private readonly document = inject(DOCUMENT); private readonly renderer = inject(Renderer2); + private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID)); private highlightedElement: HTMLElement | null = null; @@ -40,9 +49,11 @@ export default class ApiReferenceDetailsPage { } onContentLoaded() { - this.referenceScrollHandler.setupListeners(API_SECTION_CLASS_NAME); - this.scrollToSectionLegacy(); - this.highlightCard(); + if (this.isBrowser) { + this.referenceScrollHandler.setupListeners(API_SECTION_CLASS_NAME); + this.scrollToSectionLegacy(); + this.highlightCard(); + } } /** Handle legacy URLs with a `tab` query param from the old tab layout */ diff --git a/adev/src/app/features/references/services/reference-scroll-handler.service.ts b/adev/src/app/features/references/services/reference-scroll-handler.service.ts index f8df1204726e..3a6ffe1c2b49 100644 --- a/adev/src/app/features/references/services/reference-scroll-handler.service.ts +++ b/adev/src/app/features/references/services/reference-scroll-handler.service.ts @@ -18,13 +18,8 @@ export class ReferenceScrollHandler { private readonly destroyRef = inject(DestroyRef); private readonly document = inject(DOCUMENT); private readonly router = inject(Router); - private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID)); setupListeners(tocClass: string): void { - if (!this.isBrowser) { - return; - } - this.setupCodeToCListeners(tocClass); } From 3db8ef004f4fcff1c5e7bf99c6eb87755d9760a3 Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Tue, 30 Sep 2025 03:59:07 +0200 Subject: [PATCH 27/42] docs(docs-infra): fix app-scroller offset. (#64144) Guide heading need different scroll offsets depending on the width of the screen. (The menu position varies). PR Close #64144 --- adev/shared-docs/styles/_media-queries.scss | 28 +++++++++++----- adev/shared-docs/styles/global-styles.scss | 1 + adev/src/app/app-scroller.ts | 37 ++++++++++++++++++--- 3 files changed, 53 insertions(+), 13 deletions(-) diff --git a/adev/shared-docs/styles/_media-queries.scss b/adev/shared-docs/styles/_media-queries.scss index a1ad91b46afc..ac5866cee72f 100644 --- a/adev/shared-docs/styles/_media-queries.scss +++ b/adev/shared-docs/styles/_media-queries.scss @@ -5,6 +5,18 @@ $screen-lg: 1200px; $screen-xl: 1430px; $screen-xxl: 1800px; +@mixin breakpoints-vars { + // The app-scroller also relies on these values to determine the scroll offset. + :root { + --screen-xs: #{$screen-xs}; + --screen-sm: #{$screen-sm}; + --screen-md: #{$screen-md}; + --screen-lg: #{$screen-lg}; + --screen-xl: #{$screen-xl}; + --screen-xxl: #{$screen-xxl}; + } +} + @mixin for-phone-only { @media (max-width: $screen-xs) { @content; @@ -12,43 +24,43 @@ $screen-xxl: 1800px; } @mixin for-tablet-portrait-up { - @media (min-width: calc($screen-xs + .01px)) { + @media (min-width: calc($screen-xs + 0.01px)) { @content; } } @mixin for-tablet { - @media (min-width: calc($screen-xs + .01px)) and (max-width: $screen-md) { + @media (min-width: calc($screen-xs + 0.01px)) and (max-width: $screen-md) { @content; } } @mixin for-tablet-up { - @media (min-width: calc($screen-sm + .01px)) { + @media (min-width: calc($screen-sm + 0.01px)) { @content; } } @mixin for-tablet-landscape-up { - @media (min-width: calc($screen-md + .01px)) { + @media (min-width: calc($screen-md + 0.01px)) { @content; } } @mixin for-desktop-up { - @media (min-width: calc($screen-lg + .01px)) { + @media (min-width: calc($screen-lg + 0.01px)) { @content; } } @mixin for-large-desktop-up { - @media (min-width: calc($screen-xl + .01px)) { + @media (min-width: calc($screen-xl + 0.01px)) { @content; } } @mixin for-extra-large-desktop-up { - @media (min-width: calc($screen-xxl + .01px)) { + @media (min-width: calc($screen-xxl + 0.01px)) { @content; } } @@ -75,4 +87,4 @@ $screen-xxl: 1800px; @media (max-width: $screen-sm) { @content; } -} \ No newline at end of file +} diff --git a/adev/shared-docs/styles/global-styles.scss b/adev/shared-docs/styles/global-styles.scss index 76c2b0940f7c..ab4ac9141a42 100644 --- a/adev/shared-docs/styles/global-styles.scss +++ b/adev/shared-docs/styles/global-styles.scss @@ -41,6 +41,7 @@ @include api-item-label.api-item-label(); @include faceted-list.faceted-list(); +@include mq.breakpoints-vars(); @include mq.for-phone-only(); @include mq.for-tablet-portrait-up(); @include mq.for-tablet-landscape-up(); diff --git a/adev/src/app/app-scroller.ts b/adev/src/app/app-scroller.ts index 9ee57fd0414a..48603e4a411c 100644 --- a/adev/src/app/app-scroller.ts +++ b/adev/src/app/app-scroller.ts @@ -5,7 +5,7 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ -import {ViewportScroller} from '@angular/common'; +import {isPlatformBrowser, ViewportScroller} from '@angular/common'; import { Injectable, inject, @@ -13,6 +13,8 @@ import { afterNextRender, EnvironmentInjector, Injector, + DestroyRef, + PLATFORM_ID, } from '@angular/core'; import {Scroll, Router} from '@angular/router'; import {filter, firstValueFrom, map, switchMap, tap} from 'rxjs'; @@ -23,6 +25,7 @@ export class AppScroller { private readonly viewportScroller = inject(ViewportScroller); private readonly appRef = inject(ApplicationRef); private readonly injector = inject(EnvironmentInjector); + private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID)); private _lastScrollEvent?: Scroll; private canScroll = false; @@ -33,6 +36,26 @@ export class AppScroller { } constructor() { + if (this.isBrowser) { + this.setupScrollRestoration(); + } + } + + private setupScrollRestoration(): void { + let windowWidth = window.innerWidth; + // Setting up a ResizeObserver to update the width on resize. (without triggering a reflow) + const windowSizeObserver = new ResizeObserver((entries) => { + windowWidth = entries[0].contentRect.width; + }); + windowSizeObserver.observe(document.documentElement); + inject(DestroyRef).onDestroy(() => windowSizeObserver.disconnect()); + + const root = document.documentElement; // or any element with the variable + const styles = getComputedStyle(root); + // slice to drop the 'px' + const xsBreakpoint = +styles.getPropertyValue('--screen-xs').slice(0, -2); + const mdBreakpoint = +styles.getPropertyValue('--screen-md').slice(0, -2); + this.viewportScroller.setHistoryScrollRestoration('manual'); this.router.events .pipe( @@ -62,12 +85,16 @@ export class AppScroller { this.scroll(); }); - // This value is primarily intended to offset the scroll position on mobile when the menu is on the top. - // But on desktop, it doesn't hurt to have a small offset either. - this.viewportScroller.setOffset([0, 64]); + if (windowWidth < xsBreakpoint) { + this.viewportScroller.setOffset([0, 64]); + } else if (windowWidth <= mdBreakpoint) { + this.viewportScroller.setOffset([0, 140]); + } else { + this.viewportScroller.setOffset([0, 24]); + } } - scroll(injector?: Injector) { + private scroll(injector?: Injector) { if (!this._lastScrollEvent || !this.canScroll) { return; } From c1a922a04e2009fb35350f84b4c7e3a94d248f25 Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Tue, 30 Sep 2025 15:34:53 +0200 Subject: [PATCH 28/42] docs: add mention of `host-context()` being spec deprecated but still supported (#64153) PR Close #64153 --- adev/src/content/guide/components/styling.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/adev/src/content/guide/components/styling.md b/adev/src/content/guide/components/styling.md index d2bdd219fec5..25d69d54a330 100644 --- a/adev/src/content/guide/components/styling.md +++ b/adev/src/content/guide/components/styling.md @@ -59,10 +59,11 @@ global styles defined outside of a component may still affect elements inside a emulated encapsulation. In emulated mode, Angular supports -the [`:host`](https://developer.mozilla.org/docs/Web/CSS/:host) -and [`:host-context()`](https://developer.mozilla.org/docs/Web/CSS/:host-context) pseudo -classes without -using [Shadow DOM](https://developer.mozilla.org/docs/Web/Web_Components/Using_shadow_DOM). +the [`:host`](https://developer.mozilla.org/docs/Web/CSS/:host) pseudo-class. +While the [`:host-context()`](https://developer.mozilla.org/docs/Web/CSS/:host-context) pseudo-class +is deprecated in modern browsers, Angular's compiler provides full support for it. Both pseudo-classes +can be used without relying on native +[Shadow DOM](https://developer.mozilla.org/docs/Web/Web_Components/Using_shadow_DOM). During compilation, the framework transforms these pseudo classes into attributes so it doesn't comply with these native pseudo classes' rules at runtime (e.g. browser compatibility, specificity). Angular's emulated encapsulation mode does not support any other pseudo classes related to Shadow DOM, such From 8e800837ee552e97cd9c40cd77f1d092403d1e14 Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Tue, 23 Sep 2025 00:16:21 +0200 Subject: [PATCH 29/42] refactor(core): Add custom formatters for Signals (#64000) This commit adds a devmode only formatter for Angular signals Custom formatters must also be enabled in the browser devtools. PR Close #64000 --- .../core/primitives/signals/index.api.md | 3 + packages/core/primitives/signals/index.ts | 13 ++ .../core/primitives/signals/src/formatter.ts | 161 ++++++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 packages/core/primitives/signals/src/formatter.ts diff --git a/goldens/public-api/core/primitives/signals/index.api.md b/goldens/public-api/core/primitives/signals/index.api.md index 82a8108f364b..9abc72eab3cf 100644 --- a/goldens/public-api/core/primitives/signals/index.api.md +++ b/goldens/public-api/core/primitives/signals/index.api.md @@ -70,6 +70,9 @@ export function finalizeConsumerAfterComputation(node: ReactiveNode): void; // @public (undocumented) export function getActiveConsumer(): ReactiveNode | null; +// @public +export function installDevToolsSignalFormatter(): void; + // @public (undocumented) export function isInNotificationPhase(): boolean; diff --git a/packages/core/primitives/signals/index.ts b/packages/core/primitives/signals/index.ts index 51c0240f29ee..039c9fd5b5aa 100644 --- a/packages/core/primitives/signals/index.ts +++ b/packages/core/primitives/signals/index.ts @@ -6,6 +6,8 @@ * found in the LICENSE file at https://angular.dev/license */ +import {installDevToolsSignalFormatter} from './src/formatter'; + export {ComputedNode, createComputed} from './src/computed'; export { ComputationFn, @@ -58,3 +60,14 @@ export {Watch, WatchCleanupFn, WatchCleanupRegisterFn, createWatch} from './src/ export {setAlternateWeakRefImpl} from './src/weak_ref'; export {untracked} from './src/untracked'; export {runEffect, BASE_EFFECT_NODE, BaseEffectNode} from './src/effect'; +export {installDevToolsSignalFormatter} from './src/formatter'; + +// Required as the signals library is in a separate package, so we need to explicitly ensure the +// global `ngDevMode` type is defined. +declare const ngDevMode: boolean | undefined; + +// We're using a top-level access to enable signal formatting whenever the signals package is loaded. +if (typeof ngDevMode !== 'undefined' && ngDevMode) { + // tslint:disable-next-line: no-toplevel-property-access + installDevToolsSignalFormatter(); +} diff --git a/packages/core/primitives/signals/src/formatter.ts b/packages/core/primitives/signals/src/formatter.ts new file mode 100644 index 000000000000..cd1425eb76ac --- /dev/null +++ b/packages/core/primitives/signals/src/formatter.ts @@ -0,0 +1,161 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +import {SIGNAL} from './graph'; + +// Only a subset of HTML tags are allowed in the custom formatter JsonML format. +// See https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html#html-template-format +type AllowedTags = 'span' | 'div' | 'ol' | 'ul' | 'li' | 'table' | 'tr' | 'td'; + +type JsonMLText = string; +type JsonMLAttrs = Record; +type JsonMLElement = + | [tagName: AllowedTags, ...children: (JsonMLNode | JsonMLChild)[]] + | [tagName: AllowedTags, attrs: JsonMLAttrs, ...children: (JsonMLNode | JsonMLChild)[]]; +type JsonMLNode = JsonMLText | JsonMLElement; +type JsonMLChild = ['object', {object: unknown; config?: unknown}]; +type JsonML = JsonMLNode; + +type FormatterConfig = unknown & {ngSkipFormatting?: boolean}; + +declare global { + // We need to use `var` here to be able to declare a global variable. + // `let` and `const` will be locally scoped to the file. + // tslint:disable-next-line:no-unused-variable + var devtoolsFormatters: any[]; +} + +/** + * A custom formatter which renders signals in an easy-to-read format. + * + * @see https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html + */ + +const formatter = { + /** + * If the function returns `null`, the formatter is not used for this reference + */ + header: (sig: any, config: FormatterConfig): JsonML | null => { + if (!isSignal(sig) || config?.ngSkipFormatting) return null; + + let value: unknown; + try { + value = sig(); + } catch { + // In case the signl throws, we don't want to break the formatting. + return ['span', 'Signal(⚠️ Error)']; + } + + const kind = 'computation' in (sig[SIGNAL] as any) ? 'Computed' : 'Signal'; + + const isPrimitive = value === null || (!Array.isArray(value) && typeof value !== 'object'); + + return [ + 'span', + {}, + ['span', {}, `${kind}(`], + (() => { + if (isSignal(value)) { + // Recursively call formatter. Could return an `object` to call the formatter through DevTools, + // but then recursive signals will render multiple expando arrows which is an awkward UX. + return formatter.header(value, config)!; + } else if (isPrimitive && value !== undefined && typeof value !== 'function') { + // Use built-in rendering for primitives which applies standard syntax highlighting / theming. + // Can't do this for `undefined` however, as the browser thinks we forgot to provide an object. + // Also don't want to do this for functions which render nested expando arrows. + return ['object', {object: value}]; + } else { + return prettifyPreview(value as Record); + } + })(), + ['span', {}, `)`], + ]; + }, + + hasBody: (sig: any, config: FormatterConfig) => { + if (!isSignal(sig)) return false; + + try { + sig(); + } catch { + return false; + } + return !config?.ngSkipFormatting; + }, + + body: (sig: any, config: any): JsonML => { + // We can use sys colors to fit the current DevTools theme. + // Those are unfortunately only available on Chromium-based browsers. + // On Firefow we fall back to the default color + const color = 'var(--sys-color-primary)'; + + return [ + 'div', + {style: `background: #FFFFFF10; padding-left: 4px; padding-top: 2px; padding-bottom: 2px;`}, + ['div', {style: `color: ${color}`}, 'Signal value: '], + ['div', {style: `padding-left: .5rem;`}, ['object', {object: sig(), config}]], + ['div', {style: `color: ${color}`}, 'Signal function: '], + [ + 'div', + {style: `padding-left: .5rem;`}, + ['object', {object: sig, config: {...config, skipFormatting: true}}], + ], + ]; + }, +}; + +function prettifyPreview( + value: Record | Array | undefined, +): string | JsonMLChild { + if (value === null) return 'null'; + if (Array.isArray(value)) return `Array(${value.length})`; + if (value instanceof Element) return `<${value.tagName.toLowerCase()}>`; + if (value instanceof URL) return `URL`; + + switch (typeof value) { + case 'undefined': { + return 'undefined'; + } + case 'function': { + if ('prototype' in value) { + // This is what Chrome renders, can't use `object` though because it creates a nested expando arrow. + return 'class'; + } else { + return '() => {…}'; + } + } + case 'object': { + if (value.constructor.name === 'Object') { + return '{…}'; + } else { + return `${value.constructor.name} {}`; + } + } + default: { + return ['object', {object: value, config: {skipFormatting: true}}]; + } + } +} + +function isSignal(value: any): boolean { + return value[SIGNAL] !== undefined; +} + +/** + * Installs the custom formatter into custom formatting on Signals in the devtools. + * + * Supported by both Chrome and Firefox. + * + * @see https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html + */ +export function installDevToolsSignalFormatter() { + globalThis.devtoolsFormatters ??= []; + if (!globalThis.devtoolsFormatters.some((f: any) => f === formatter)) { + globalThis.devtoolsFormatters.push(formatter); + } +} From 612ce99457921592dd6f221a40bcea7593b06009 Mon Sep 17 00:00:00 2001 From: hawkgs Date: Fri, 26 Sep 2025 17:41:18 +0300 Subject: [PATCH 30/42] refactor(compiler-cli): include linkedSignal in the signal debugName transformer (#64106) Add support for `linkedSignal`s in the signal `debugName` transformer. Continuation of #63346 PR Close #64106 --- goldens/public-api/core/index.api.md | 1 + .../implicit_signal_debug_name_transform.ts | 22 ++++++++++++++----- .../src/render3/reactivity/linked_signal.ts | 2 +- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/goldens/public-api/core/index.api.md b/goldens/public-api/core/index.api.md index cb409470cee1..06db65adb70c 100644 --- a/goldens/public-api/core/index.api.md +++ b/goldens/public-api/core/index.api.md @@ -1146,6 +1146,7 @@ export class KeyValueDiffers { // @public export function linkedSignal(computation: () => D, options?: { equal?: ValueEqualityFn>; + debugName?: string; }): WritableSignal; // @public diff --git a/packages/compiler-cli/src/ngtsc/transform/src/implicit_signal_debug_name_transform.ts b/packages/compiler-cli/src/ngtsc/transform/src/implicit_signal_debug_name_transform.ts index d1fff0b21932..8460ab652177 100644 --- a/packages/compiler-cli/src/ngtsc/transform/src/implicit_signal_debug_name_transform.ts +++ b/packages/compiler-cli/src/ngtsc/transform/src/implicit_signal_debug_name_transform.ts @@ -12,18 +12,26 @@ function insertDebugNameIntoCallExpression( callExpression: ts.CallExpression, debugName: string, ): ts.CallExpression { - const signalExpressionHasNoArguments = callExpression.arguments.length === 0; const signalExpressionIsRequired = isRequiredSignalFunction(callExpression.expression); let configPosition = signalExpressionIsRequired ? 0 : 1; - // If the call expression has no arguments, we pretend that the config object is at position 0. + const nodeArgs = Array.from(callExpression.arguments); + + // 1. If the call expression has no arguments, we pretend that the config object is at position 0. // We do this so that we can insert a spread element at the start of the args list in a way where // undefined can be the first argument but still get tree-shaken out in production builds. - if (signalExpressionHasNoArguments) { + // or + // 2. Since `linkedSignal` with computation uses a single object for both computation logic + // and options (unlike other signal-based primitives), we set the argument position to 0, i.e. + // reusing the computation logic object. + const signalExpressionHasNoArguments = callExpression.arguments.length === 0; + const isLinkedSignal = callExpression.expression.getText() === 'linkedSignal'; + const isComputationLinkedSignal = + isLinkedSignal && nodeArgs[0].kind === ts.SyntaxKind.ObjectLiteralExpression; + if (signalExpressionHasNoArguments || isComputationLinkedSignal) { configPosition = 0; } - const nodeArgs = Array.from(callExpression.arguments); let existingArgument = nodeArgs[configPosition]; if (existingArgument === undefined) { @@ -96,12 +104,15 @@ function insertDebugNameIntoCallExpression( let transformedSignalArgs: ts.NodeArray; - if (signalExpressionIsRequired || signalExpressionHasNoArguments) { + if (signalExpressionIsRequired || signalExpressionHasNoArguments || isComputationLinkedSignal) { // 1. If the call expression is a required signal function, there is no args other than the config object. // So we just use the spread element as the only argument. // or // 2. If the call expression has no arguments (ex. input(), model(), etc), we already added the undefined // identifier in the spread element above. So we use that spread Element as is. + // or + // 3. We are transforming a `linkedSignal` with computation (i.e. we have a single object for both + // logic and options). transformedSignalArgs = ts.factory.createNodeArray([spreadElementContainingUpdatedOptions]); } else { // 3. Signal expression is not required and has arguments. @@ -280,6 +291,7 @@ function expressionIsUsingAngularCoreImportedSymbol( const signalFunctions: ReadonlySet = new Set([ 'signal', 'computed', + 'linkedSignal', 'input', 'model', 'viewChild', diff --git a/packages/core/src/render3/reactivity/linked_signal.ts b/packages/core/src/render3/reactivity/linked_signal.ts index 5f6e3f90188e..1de15014c8b8 100644 --- a/packages/core/src/render3/reactivity/linked_signal.ts +++ b/packages/core/src/render3/reactivity/linked_signal.ts @@ -27,7 +27,7 @@ const identityFn = (v: T) => v; */ export function linkedSignal( computation: () => D, - options?: {equal?: ValueEqualityFn>}, + options?: {equal?: ValueEqualityFn>; debugName?: string}, ): WritableSignal; /** From 479a6f269a0205016a5ca657812a5a14e2d90912 Mon Sep 17 00:00:00 2001 From: Shuaib Hasan Akib Date: Mon, 29 Sep 2025 19:31:16 +0600 Subject: [PATCH 31/42] refactor(common): update pipe examples and remove redundant standalone flag (#64135) Updated pipe examples to explicitly import the pipe for clarity and correctness. Also removed `standalone: true` since it is now the default and no longer necessary. PR Close #64135 --- .../examples/common/pipes/ts/async_pipe.ts | 5 ++- .../examples/common/pipes/ts/currency_pipe.ts | 4 +- .../examples/common/pipes/ts/date_pipe.ts | 6 +-- .../examples/common/pipes/ts/i18n_pipe.ts | 5 ++- .../examples/common/pipes/ts/json_pipe.ts | 3 +- .../examples/common/pipes/ts/keyvalue_pipe.ts | 3 +- .../common/pipes/ts/lowerupper_pipe.ts | 3 +- packages/examples/common/pipes/ts/module.ts | 45 ++++++++----------- .../examples/common/pipes/ts/number_pipe.ts | 4 +- .../examples/common/pipes/ts/percent_pipe.ts | 4 +- .../examples/common/pipes/ts/slice_pipe.ts | 7 +-- .../common/pipes/ts/titlecase_pipe.ts | 3 +- packages/examples/common/test_module.ts | 1 - 13 files changed, 46 insertions(+), 47 deletions(-) diff --git a/packages/examples/common/pipes/ts/async_pipe.ts b/packages/examples/common/pipes/ts/async_pipe.ts index 33c751f03f80..4a2a9d9ae358 100644 --- a/packages/examples/common/pipes/ts/async_pipe.ts +++ b/packages/examples/common/pipes/ts/async_pipe.ts @@ -6,18 +6,19 @@ * found in the LICENSE file at https://angular.dev/license */ +import {AsyncPipe} from '@angular/common'; import {Component} from '@angular/core'; import {Observable, Observer} from 'rxjs'; // #docregion AsyncPipePromise @Component({ selector: 'async-promise-pipe', + imports: [AsyncPipe], template: `
promise|async: Wait for it... {{ greeting | async }}
`, - standalone: false, }) export class AsyncPromisePipeComponent { greeting: Promise | null = null; @@ -50,8 +51,8 @@ export class AsyncPromisePipeComponent { // #docregion AsyncPipeObservable @Component({ selector: 'async-observable-pipe', + imports: [AsyncPipe], template: '
observable|async: Time: {{ time | async }}
', - standalone: false, }) export class AsyncObservablePipeComponent { time = new Observable((observer: Observer) => { diff --git a/packages/examples/common/pipes/ts/currency_pipe.ts b/packages/examples/common/pipes/ts/currency_pipe.ts index f27218c966ff..409e5cdd0a59 100644 --- a/packages/examples/common/pipes/ts/currency_pipe.ts +++ b/packages/examples/common/pipes/ts/currency_pipe.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {registerLocaleData} from '@angular/common'; +import {registerLocaleData, CurrencyPipe} from '@angular/common'; import {Component} from '@angular/core'; // we need to import data for the french locale import localeFr from './locale-fr'; @@ -17,6 +17,7 @@ registerLocaleData(localeFr); // #docregion CurrencyPipe @Component({ selector: 'currency-pipe', + imports: [CurrencyPipe], template: `

A: {{ a | currency }}

@@ -39,7 +40,6 @@ registerLocaleData(localeFr);

B: {{ b | currency: 'CLP' }}

`, - standalone: false, }) export class CurrencyPipeComponent { a: number = 0.259; diff --git a/packages/examples/common/pipes/ts/date_pipe.ts b/packages/examples/common/pipes/ts/date_pipe.ts index 7be88d4ae3c6..ff5f6ab05e7e 100644 --- a/packages/examples/common/pipes/ts/date_pipe.ts +++ b/packages/examples/common/pipes/ts/date_pipe.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {registerLocaleData} from '@angular/common'; +import {registerLocaleData, DatePipe} from '@angular/common'; import {Component} from '@angular/core'; // we need to import data for the french locale import localeFr from './locale-fr'; @@ -16,6 +16,7 @@ registerLocaleData(localeFr); @Component({ selector: 'date-pipe', + imports: [DatePipe], template: `

Today is {{ today | date }}

@@ -41,7 +42,6 @@ registerLocaleData(localeFr); {{ fixedTimezone | date: 'yyyy-MM-dd HH:mm a z' : '+0900' }}

`, - standalone: false, }) export class DatePipeComponent { today = Date.now(); @@ -49,6 +49,7 @@ export class DatePipeComponent { } @Component({ selector: 'deprecated-date-pipe', + imports: [DatePipe], template: `

Today is {{ today | date }}

@@ -62,7 +63,6 @@ export class DatePipeComponent {

The custom date is {{ today | date: 'yyyy-MM-dd HH:mm a' }}

`, - standalone: false, }) export class DeprecatedDatePipeComponent { today = Date.now(); diff --git a/packages/examples/common/pipes/ts/i18n_pipe.ts b/packages/examples/common/pipes/ts/i18n_pipe.ts index af5719c4ebf4..e8398eda515b 100644 --- a/packages/examples/common/pipes/ts/i18n_pipe.ts +++ b/packages/examples/common/pipes/ts/i18n_pipe.ts @@ -7,12 +7,13 @@ */ import {Component} from '@angular/core'; +import {I18nPluralPipe, I18nSelectPipe} from '@angular/common'; // #docregion I18nPluralPipeComponent @Component({ selector: 'i18n-plural-pipe', + imports: [I18nPluralPipe], template: `
{{ messages.length | i18nPlural: messageMapping }}
`, - standalone: false, }) export class I18nPluralPipeComponent { messages: any[] = ['Message 1']; @@ -27,8 +28,8 @@ export class I18nPluralPipeComponent { // #docregion I18nSelectPipeComponent @Component({ selector: 'i18n-select-pipe', + imports: [I18nSelectPipe], template: `
{{ gender | i18nSelect: inviteMap }}
`, - standalone: false, }) export class I18nSelectPipeComponent { gender: string = 'male'; diff --git a/packages/examples/common/pipes/ts/json_pipe.ts b/packages/examples/common/pipes/ts/json_pipe.ts index 8723bc79be4b..1af6ed397b79 100644 --- a/packages/examples/common/pipes/ts/json_pipe.ts +++ b/packages/examples/common/pipes/ts/json_pipe.ts @@ -6,18 +6,19 @@ * found in the LICENSE file at https://angular.dev/license */ +import {JsonPipe} from '@angular/common'; import {Component} from '@angular/core'; // #docregion JsonPipe @Component({ selector: 'json-pipe', + imports: [JsonPipe], template: `

Without JSON pipe:

{{ object }}

With JSON pipe:

{{ object | json }}
`, - standalone: false, }) export class JsonPipeComponent { object: Object = {foo: 'bar', baz: 'qux', nested: {xyz: 3, numbers: [1, 2, 3, 4, 5]}}; diff --git a/packages/examples/common/pipes/ts/keyvalue_pipe.ts b/packages/examples/common/pipes/ts/keyvalue_pipe.ts index 794c3d309c97..13369bae7eb7 100644 --- a/packages/examples/common/pipes/ts/keyvalue_pipe.ts +++ b/packages/examples/common/pipes/ts/keyvalue_pipe.ts @@ -6,11 +6,13 @@ * found in the LICENSE file at https://angular.dev/license */ +import {KeyValuePipe} from '@angular/common'; import {Component} from '@angular/core'; // #docregion KeyValuePipe @Component({ selector: 'keyvalue-pipe', + imports: [KeyValuePipe], template: `

Object

@@ -26,7 +28,6 @@ import {Component} from '@angular/core';
{{ item.key }}:{{ item.value }}
}
`, - standalone: false, }) export class KeyValuePipeComponent { object: {[key: number]: string} = {2: 'foo', 1: 'bar'}; diff --git a/packages/examples/common/pipes/ts/lowerupper_pipe.ts b/packages/examples/common/pipes/ts/lowerupper_pipe.ts index ac1ff2b2d413..99ffc45452f6 100644 --- a/packages/examples/common/pipes/ts/lowerupper_pipe.ts +++ b/packages/examples/common/pipes/ts/lowerupper_pipe.ts @@ -6,11 +6,13 @@ * found in the LICENSE file at https://angular.dev/license */ +import {LowerCasePipe, UpperCasePipe} from '@angular/common'; import {Component} from '@angular/core'; // #docregion LowerUpperPipe @Component({ selector: 'lowerupper-pipe', + imports: [LowerCasePipe, UpperCasePipe], template: `

In lowercase:

@@ -18,7 +20,6 @@ import {Component} from '@angular/core';

In uppercase:

'{{ value | uppercase }}'
`, - standalone: false, }) export class LowerUpperPipeComponent { value: string = ''; diff --git a/packages/examples/common/pipes/ts/module.ts b/packages/examples/common/pipes/ts/module.ts index ada1b39f87c2..7b6985ba923e 100644 --- a/packages/examples/common/pipes/ts/module.ts +++ b/packages/examples/common/pipes/ts/module.ts @@ -6,8 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {Component, NgModule} from '@angular/core'; -import {BrowserModule} from '@angular/platform-browser'; +import {Component} from '@angular/core'; import {AsyncObservablePipeComponent, AsyncPromisePipeComponent} from './async_pipe'; import {CurrencyPipeComponent} from './currency_pipe'; @@ -23,6 +22,23 @@ import {TitleCasePipeComponent} from './titlecase_pipe'; @Component({ selector: 'example-app', + imports: [ + AsyncPromisePipeComponent, + AsyncObservablePipeComponent, + JsonPipeComponent, + DatePipeComponent, + DeprecatedDatePipeComponent, + LowerUpperPipeComponent, + TitleCasePipeComponent, + NumberPipeComponent, + PercentPipeComponent, + CurrencyPipeComponent, + SlicePipeStringComponent, + SlicePipeListComponent, + I18nPluralPipeComponent, + I18nSelectPipeComponent, + KeyValuePipeComponent, + ], template: `

Pipe Example

@@ -32,6 +48,7 @@ import {TitleCasePipeComponent} from './titlecase_pipe';

date

+

json

@@ -58,29 +75,5 @@ import {TitleCasePipeComponent} from './titlecase_pipe';

keyvalue

`, - standalone: false, }) export class AppComponent {} - -@NgModule({ - declarations: [ - AsyncPromisePipeComponent, - AsyncObservablePipeComponent, - AppComponent, - JsonPipeComponent, - DatePipeComponent, - DeprecatedDatePipeComponent, - LowerUpperPipeComponent, - TitleCasePipeComponent, - NumberPipeComponent, - PercentPipeComponent, - CurrencyPipeComponent, - SlicePipeStringComponent, - SlicePipeListComponent, - I18nPluralPipeComponent, - I18nSelectPipeComponent, - KeyValuePipeComponent, - ], - imports: [BrowserModule], -}) -export class AppModule {} diff --git a/packages/examples/common/pipes/ts/number_pipe.ts b/packages/examples/common/pipes/ts/number_pipe.ts index 539f903071d0..b4baea57429c 100644 --- a/packages/examples/common/pipes/ts/number_pipe.ts +++ b/packages/examples/common/pipes/ts/number_pipe.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {registerLocaleData} from '@angular/common'; +import {registerLocaleData, DecimalPipe} from '@angular/common'; import {Component} from '@angular/core'; // we need to import data for the french locale import localeFr from './locale-fr'; @@ -16,6 +16,7 @@ registerLocaleData(localeFr, 'fr'); // #docregion NumberPipe @Component({ selector: 'number-pipe', + imports: [DecimalPipe], template: `

No specified formatting: @@ -35,7 +36,6 @@ registerLocaleData(localeFr, 'fr');

`, - standalone: false, }) export class NumberPipeComponent { pi: number = 3.14159265359; diff --git a/packages/examples/common/pipes/ts/percent_pipe.ts b/packages/examples/common/pipes/ts/percent_pipe.ts index 87718afdf2c4..e0cc78fd4e92 100644 --- a/packages/examples/common/pipes/ts/percent_pipe.ts +++ b/packages/examples/common/pipes/ts/percent_pipe.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {registerLocaleData} from '@angular/common'; +import {registerLocaleData, PercentPipe} from '@angular/common'; import {Component} from '@angular/core'; // we need to import data for the french locale import localeFr from './locale-fr'; @@ -17,6 +17,7 @@ registerLocaleData(localeFr); // #docregion PercentPipe @Component({ selector: 'percent-pipe', + imports: [PercentPipe], template: `

A: {{ a | percent }}

@@ -27,7 +28,6 @@ registerLocaleData(localeFr);

B: {{ b | percent: '4.3-5' : 'fr' }}

`, - standalone: false, }) export class PercentPipeComponent { a: number = 0.259; diff --git a/packages/examples/common/pipes/ts/slice_pipe.ts b/packages/examples/common/pipes/ts/slice_pipe.ts index 79c81a1bdb84..cdca6805bc7e 100644 --- a/packages/examples/common/pipes/ts/slice_pipe.ts +++ b/packages/examples/common/pipes/ts/slice_pipe.ts @@ -6,11 +6,13 @@ * found in the LICENSE file at https://angular.dev/license */ +import {SlicePipe} from '@angular/common'; import {Component} from '@angular/core'; // #docregion SlicePipe_string @Component({ selector: 'slice-string-pipe', + imports: [SlicePipe], template: `

{{ str }}[0:4]: '{{ str | slice: 0 : 4 }}' - output is expected to be 'abcd'

{{ str }}[4:0]: '{{ str | slice: 4 : 0 }}' - output is expected to be ''

@@ -19,7 +21,6 @@ import {Component} from '@angular/core';

{{ str }}[-100]: '{{ str | slice: -100 }}' - output is expected to be 'abcdefghij'

{{ str }}[100]: '{{ str | slice: 100 }}' - output is expected to be ''

`, - standalone: false, }) export class SlicePipeStringComponent { str: string = 'abcdefghij'; @@ -29,12 +30,12 @@ export class SlicePipeStringComponent { // #docregion SlicePipe_list @Component({ selector: 'slice-list-pipe', + imports: [SlicePipe], template: `
    @for(i of collection | slice: 1 : 3; track $index) {
  • {{ i }}
  • - } + }
`, - standalone: false, }) export class SlicePipeListComponent { collection: string[] = ['a', 'b', 'c', 'd']; diff --git a/packages/examples/common/pipes/ts/titlecase_pipe.ts b/packages/examples/common/pipes/ts/titlecase_pipe.ts index 9fdd8719dc9d..8f867644fce4 100644 --- a/packages/examples/common/pipes/ts/titlecase_pipe.ts +++ b/packages/examples/common/pipes/ts/titlecase_pipe.ts @@ -6,11 +6,13 @@ * found in the LICENSE file at https://angular.dev/license */ +import {TitleCasePipe} from '@angular/common'; import {Component} from '@angular/core'; // #docregion TitleCasePipe @Component({ selector: 'titlecase-pipe', + imports: [TitleCasePipe], template: `

{{ 'some string' | titlecase }}

@@ -25,7 +27,6 @@ import {Component} from '@angular/core';

{{ 'foo-vs-bar' | titlecase }}

`, - standalone: false, }) export class TitleCasePipeComponent {} // #enddocregion diff --git a/packages/examples/common/test_module.ts b/packages/examples/common/test_module.ts index 2ad20032052a..6330eb9ecf9d 100644 --- a/packages/examples/common/test_module.ts +++ b/packages/examples/common/test_module.ts @@ -28,7 +28,6 @@ export class TestsAppComponent {} ngComponentOutletExample.AppModule, ngIfExample.AppModule, ngTemplateOutletExample.AppModule, - pipesExample.AppModule, // Router configuration so that the individual e2e tests can load their // app components. From 77b6305a4b5db88f9c1130acf80095b502a0eca1 Mon Sep 17 00:00:00 2001 From: aparziale Date: Tue, 30 Sep 2025 17:26:29 +0200 Subject: [PATCH 32/42] fix(migrations): skip migration for inputs with 'this' references (#64142) Prevents migration of @input() properties that contain references to 'this' in their initializer functions. This ensures that functions accessing class members via 'this' remain unchanged, preventing potential build errors. PR Close #64142 --- .../src/convert-input/convert_to_signal.ts | 71 ++++++++++++++++++- .../test/signal_input_migration_spec.ts | 24 +++++++ 2 files changed, 94 insertions(+), 1 deletion(-) diff --git a/packages/core/schematics/migrations/signal-migration/src/convert-input/convert_to_signal.ts b/packages/core/schematics/migrations/signal-migration/src/convert-input/convert_to_signal.ts index eb4e5672d9b1..498bc766d060 100644 --- a/packages/core/schematics/migrations/signal-migration/src/convert-input/convert_to_signal.ts +++ b/packages/core/schematics/migrations/signal-migration/src/convert-input/convert_to_signal.ts @@ -41,6 +41,15 @@ export function convertToSignalInput( importManager: ImportManager, result: MigrationResult, ): Replacement[] { + // Check for 'this' references in initializer before doing anything else + if ( + node.initializer && + (ts.isArrowFunction(node.initializer) || ts.isFunctionExpression(node.initializer)) && + containsThisReferences(node.initializer) + ) { + return []; // Skip migration for this input by returning empty replacements + } + let optionsLiteral: ts.ObjectLiteralExpression | null = null; // We need an options array for the input because: @@ -137,12 +146,31 @@ export function convertToSignalInput( modifiersWithoutInputDecorator.push(ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyword)); } + // Skip migration if the input is a function that references class members via 'this' + if ( + inputInitializer && + (ts.isArrowFunction(inputInitializer) || ts.isFunctionExpression(inputInitializer)) + ) { + if (containsThisReferences(inputInitializer)) { + return []; // Skip migration for this input by returning empty replacements + } + } + + let finalInitializer: ts.Expression | undefined = inputInitializer; + if (inputInitializer === undefined) { + if (preferShorthandIfPossible === null) { + finalInitializer = ts.factory.createIdentifier('undefined'); + } else { + resolvedType = preferShorthandIfPossible.originalType; + } + } + const newNode = ts.factory.createPropertyDeclaration( modifiersWithoutInputDecorator, node.name, undefined, undefined, - inputInitializer, + finalInitializer, ); const newPropertyText = result.printer.printNode( @@ -222,3 +250,44 @@ function extractTransformOfInput( leadingTodoText, }; } + +/** + * Checks if a function node contains any references to 'this'. + * This is used to skip migration for functions that reference class members. + */ +function containsThisReferences(node: ts.Node): boolean { + let hasThis = false; + + const visit = (node: ts.Node) => { + if (hasThis) return; + + if (node.kind === ts.SyntaxKind.ThisKeyword) { + hasThis = true; + return; + } + + if (ts.isPropertyAccessExpression(node)) { + const expr = node.expression; + if (ts.isIdentifier(expr) && expr.text === 'this') { + hasThis = true; + return; + } + } + + ts.forEachChild(node, visit); + }; + + if (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) { + if (node.body) { + if (node.body.kind === ts.SyntaxKind.Block) { + (node.body as ts.Block).statements.forEach(visit); + } else { + visit(node.body); + } + } + } else { + ts.forEachChild(node, visit); + } + + return hasThis; +} diff --git a/packages/core/schematics/test/signal_input_migration_spec.ts b/packages/core/schematics/test/signal_input_migration_spec.ts index 94ff4ebb3021..d88cc7bd09b4 100644 --- a/packages/core/schematics/test/signal_input_migration_spec.ts +++ b/packages/core/schematics/test/signal_input_migration_spec.ts @@ -128,6 +128,30 @@ describe('signal input migration', () => { expect(messages).toContain(` -> Migrated 1/2 inputs.`); }); + it('should not migrate input functions that reference this', async () => { + const source = ` + import {Component, Input} from '@angular/core'; + + @Component({}) + export class TestComponent { + + @Input() fnDisplay = (item: any) => item; + @Input() fnEquals = (a: any, b: any) => this.fnDisplay(a) === this.fnDisplay(b); + + } + `; + + writeFile('/index.ts', source); + await runMigration(); + const content = tree.readContent('/index.ts'); + + // Verify the simple function was migrated + expect(content).toContain('readonly fnDisplay = input((item: any) => item);'); + expect(content).toContain( + '@Input() fnEquals = (a: any, b: any) => this.fnDisplay()(a) === this.fnDisplay()(b);', + ); + }); + it('should report correct statistics with best effort mode', async () => { writeFile(`node_modules/@tsconfig/strictest/tsconfig.json`, `{}`); writeFile( From f51ab32fb3000ae34c077b049ff2f7b8e3e22d14 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 30 Sep 2025 09:56:33 +0200 Subject: [PATCH 33/42] fix(compiler): recover template literals with broken expressions (#64150) Fixes two issues that were preventing template literals from being recovered properly if one of the interpolated expressions is broken: 1. We weren't updating the expected brace counter when an interpolation starts which in turn was throwing off the recovery logic in `skip`. 2. When producing tokens for template literals, we were treating the closing brace as an operator whereas other places treat it as a character. Even after fixing the first issue, this was preventing the recovery logic from working correctly. Fixes #63940. PR Close #64150 --- .../compiler/src/expression_parser/lexer.ts | 6 +--- .../compiler/src/expression_parser/parser.ts | 2 ++ .../test/expression_parser/lexer_spec.ts | 36 +++++++++---------- .../test/expression_parser/parser_spec.ts | 12 ++++--- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/packages/compiler/src/expression_parser/lexer.ts b/packages/compiler/src/expression_parser/lexer.ts index 4f1dbe87ae7f..ad9a82301b05 100644 --- a/packages/compiler/src/expression_parser/lexer.ts +++ b/packages/compiler/src/expression_parser/lexer.ts @@ -146,10 +146,6 @@ export class Token { return this.isOperator('${'); } - isTemplateLiteralInterpolationEnd(): boolean { - return this.isOperator('}'); - } - toString(): string | null { switch (this.type) { case TokenType.Character: @@ -356,7 +352,7 @@ class _Scanner { const currentBrace = this.braceStack.pop(); if (currentBrace === 'interpolation') { - this.tokens.push(newOperatorToken(start, this.index, '}')); + this.tokens.push(newCharacterToken(start, this.index, chars.$RBRACE)); return this.scanTemplateLiteralPart(this.index); } diff --git a/packages/compiler/src/expression_parser/parser.ts b/packages/compiler/src/expression_parser/parser.ts index 05e779ad6104..6a2baa2033a3 100644 --- a/packages/compiler/src/expression_parser/parser.ts +++ b/packages/compiler/src/expression_parser/parser.ts @@ -1604,12 +1604,14 @@ class _ParseAST { } } else if (token.isTemplateLiteralInterpolationStart()) { this.advance(); + this.rbracesExpected++; const expression = this.parsePipe(); if (expression instanceof EmptyExpr) { this.error('Template literal interpolation cannot be empty'); } else { expressions.push(expression); } + this.rbracesExpected--; } else { this.advance(); } diff --git a/packages/compiler/test/expression_parser/lexer_spec.ts b/packages/compiler/test/expression_parser/lexer_spec.ts index 776116956cf5..34e1c6848733 100644 --- a/packages/compiler/test/expression_parser/lexer_spec.ts +++ b/packages/compiler/test/expression_parser/lexer_spec.ts @@ -456,7 +456,7 @@ describe('lexer', () => { expectStringToken(tokens[0], 0, 7, 'hello ', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[1], 7, 9, '${'); expectIdentifierToken(tokens[2], 9, 13, 'name'); - expectOperatorToken(tokens[3], 13, 14, '}'); + expectCharacterToken(tokens[3], 13, 14, '}'); expectStringToken(tokens[4], 14, 15, '', StringTokenKind.TemplateLiteralEnd); }); @@ -466,7 +466,7 @@ describe('lexer', () => { expectStringToken(tokens[0], 0, 1, '', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[1], 1, 3, '${'); expectIdentifierToken(tokens[2], 3, 7, 'name'); - expectOperatorToken(tokens[3], 7, 8, '}'); + expectCharacterToken(tokens[3], 7, 8, '}'); expectStringToken(tokens[4], 8, 17, ' Johnson', StringTokenKind.TemplateLiteralEnd); }); @@ -476,7 +476,7 @@ describe('lexer', () => { expectStringToken(tokens[0], 0, 4, 'foo', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[1], 4, 6, '${'); expectIdentifierToken(tokens[2], 6, 9, 'bar'); - expectOperatorToken(tokens[3], 9, 10, '}'); + expectCharacterToken(tokens[3], 9, 10, '}'); expectStringToken(tokens[4], 10, 14, 'baz', StringTokenKind.TemplateLiteralEnd); }); @@ -505,15 +505,15 @@ describe('lexer', () => { expectStringToken(tokens[0], 0, 1, '', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[1], 1, 3, '${'); expectIdentifierToken(tokens[2], 3, 4, 'a'); - expectOperatorToken(tokens[3], 4, 5, '}'); + expectCharacterToken(tokens[3], 4, 5, '}'); expectStringToken(tokens[4], 5, 8, ' - ', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[5], 8, 10, '${'); expectIdentifierToken(tokens[6], 10, 11, 'b'); - expectOperatorToken(tokens[7], 11, 12, '}'); + expectCharacterToken(tokens[7], 11, 12, '}'); expectStringToken(tokens[8], 12, 15, ' - ', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[9], 15, 17, '${'); expectIdentifierToken(tokens[10], 17, 18, 'c'); - expectOperatorToken(tokens[11], 18, 19, '}'); + expectCharacterToken(tokens[11], 18, 19, '}'); }); it('should tokenize template literal with an object literal inside the interpolation', () => { @@ -526,7 +526,7 @@ describe('lexer', () => { expectCharacterToken(tokens[4], 9, 10, ':'); expectKeywordToken(tokens[5], 11, 15, 'true'); expectCharacterToken(tokens[6], 15, 16, '}'); - expectOperatorToken(tokens[7], 16, 17, '}'); + expectCharacterToken(tokens[7], 16, 17, '}'); expectStringToken(tokens[8], 17, 22, ' baz', StringTokenKind.TemplateLiteralEnd); }); @@ -540,11 +540,11 @@ describe('lexer', () => { expectStringToken(tokens[4], 16, 17, '', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[5], 17, 19, '${'); expectIdentifierToken(tokens[6], 19, 20, 'a'); - expectOperatorToken(tokens[7], 20, 21, '}'); + expectCharacterToken(tokens[7], 20, 21, '}'); expectStringToken(tokens[8], 21, 26, ' - b', StringTokenKind.TemplateLiteralEnd); - expectOperatorToken(tokens[9], 26, 27, '}'); + expectCharacterToken(tokens[9], 26, 27, '}'); expectStringToken(tokens[10], 27, 28, '', StringTokenKind.TemplateLiteralEnd); - expectOperatorToken(tokens[11], 28, 29, '}'); + expectCharacterToken(tokens[11], 28, 29, '}'); expectStringToken(tokens[12], 29, 34, ' baz', StringTokenKind.TemplateLiteralEnd); }); @@ -554,12 +554,12 @@ describe('lexer', () => { expectStringToken(tokens[0], 0, 7, 'hello ', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[1], 7, 9, '${'); expectIdentifierToken(tokens[2], 9, 13, 'name'); - expectOperatorToken(tokens[3], 13, 14, '}'); + expectCharacterToken(tokens[3], 13, 14, '}'); expectStringToken(tokens[4], 14, 15, '', StringTokenKind.TemplateLiteralEnd); expectStringToken(tokens[5], 15, 20, 'see ', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[6], 20, 22, '${'); expectIdentifierToken(tokens[7], 22, 26, 'name'); - expectOperatorToken(tokens[8], 26, 27, '}'); + expectCharacterToken(tokens[8], 26, 27, '}'); expectStringToken(tokens[9], 27, 34, ' later', StringTokenKind.TemplateLiteralEnd); }); @@ -569,7 +569,7 @@ describe('lexer', () => { expectStringToken(tokens[0], 0, 7, 'hello ', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[1], 7, 9, '${'); expectIdentifierToken(tokens[2], 9, 13, 'name'); - expectOperatorToken(tokens[3], 13, 14, '}'); + expectCharacterToken(tokens[3], 13, 14, '}'); expectStringToken(tokens[4], 14, 15, '', StringTokenKind.TemplateLiteralEnd); expectOperatorToken(tokens[5], 16, 17, '+'); expectNumberToken(tokens[6], 18, 21, 123); @@ -583,7 +583,7 @@ describe('lexer', () => { expectIdentifierToken(tokens[2], 9, 13, 'name'); expectOperatorToken(tokens[3], 14, 15, '|'); expectIdentifierToken(tokens[4], 16, 26, 'capitalize'); - expectOperatorToken(tokens[5], 26, 27, '}'); + expectCharacterToken(tokens[5], 26, 27, '}'); expectStringToken(tokens[6], 27, 31, '!!!', StringTokenKind.TemplateLiteralEnd); }); @@ -597,7 +597,7 @@ describe('lexer', () => { expectOperatorToken(tokens[4], 15, 16, '|'); expectIdentifierToken(tokens[5], 17, 27, 'capitalize'); expectCharacterToken(tokens[6], 27, 28, ')'); - expectOperatorToken(tokens[7], 28, 29, '}'); + expectCharacterToken(tokens[7], 28, 29, '}'); expectStringToken(tokens[8], 29, 33, '!!!', StringTokenKind.TemplateLiteralEnd); }); @@ -610,7 +610,7 @@ describe('lexer', () => { expectStringToken(tokens[3], 6, 7, '', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[4], 7, 9, '${'); expectIdentifierToken(tokens[5], 9, 13, 'name'); - expectOperatorToken(tokens[6], 13, 14, '}'); + expectCharacterToken(tokens[6], 13, 14, '}'); expectStringToken(tokens[7], 14, 15, '', StringTokenKind.TemplateLiteralEnd); expectCharacterToken(tokens[8], 15, 16, '}'); }); @@ -630,7 +630,7 @@ describe('lexer', () => { expectStringToken(tokens[0], 0, 7, 'hello ', StringTokenKind.TemplateLiteralPart); expectOperatorToken(tokens[1], 7, 9, '${'); expectIdentifierToken(tokens[2], 9, 13, 'name'); - expectOperatorToken(tokens[3], 13, 14, '}'); + expectCharacterToken(tokens[3], 13, 14, '}'); expectErrorToken( tokens[4], 15, @@ -669,7 +669,7 @@ describe('lexer', () => { expectOperatorToken(tokens[2], 10, 12, '${'); expectIdentifierToken(tokens[3], 12, 15, 'tag'); expectStringToken(tokens[4], 15, 22, 'world', StringTokenKind.TemplateLiteralEnd); - expectOperatorToken(tokens[5], 22, 23, '}'); + expectCharacterToken(tokens[5], 22, 23, '}'); expectStringToken(tokens[6], 23, 24, '', StringTokenKind.TemplateLiteralEnd); }); }); diff --git a/packages/compiler/test/expression_parser/parser_spec.ts b/packages/compiler/test/expression_parser/parser_spec.ts index 47043bb3a571..b22c401df65b 100644 --- a/packages/compiler/test/expression_parser/parser_spec.ts +++ b/packages/compiler/test/expression_parser/parser_spec.ts @@ -18,7 +18,6 @@ import { TemplateBinding, VariableBinding, BindingPipeType, - Binary, } from '../../src/expression_parser/ast'; import {ParseError} from '../../src/parse_util'; import {Lexer} from '../../src/expression_parser/lexer'; @@ -481,10 +480,7 @@ describe('parser', () => { }); it('should report error if interpolation is empty', () => { - expectBindingError( - '`hello ${}`', - 'Template literal interpolation cannot be empty at the end of the expression', - ); + expectBindingError('`hello ${}`', 'Template literal interpolation cannot be empty'); }); it('should parse tagged template literals with no interpolations', () => { @@ -1449,6 +1445,12 @@ describe('parser', () => { recover('foo(((($event.target as HTMLElement))).value)', 'foo(((($event.target))).value)'); recover('foo(((bar as HTMLElement) as Something).value)', 'foo(((bar)).value)'); }); + + it('should be able to recover from a broken expression in a template literal', () => { + recover('`before ${expr.}`', '`before ${expr.}`'); + recover('`${expr.} after`', '`${expr.} after`'); + recover('`before ${expr.} after`', '`before ${expr.} after`'); + }); }); describe('offsets', () => { From 24c979da1fb6322ec289f9150efa42260de1a645 Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Tue, 30 Sep 2025 04:23:21 +0200 Subject: [PATCH 34/42] docs: add allowed-host mention (#64145) and other dev-server options PR Close #64145 --- .../reference/configs/workspace-config.md | 430 +++++++++--------- 1 file changed, 220 insertions(+), 210 deletions(-) diff --git a/adev/src/content/reference/configs/workspace-config.md b/adev/src/content/reference/configs/workspace-config.md index 1dd1eb0fa90b..4160d33a4bbb 100644 --- a/adev/src/content/reference/configs/workspace-config.md +++ b/adev/src/content/reference/configs/workspace-config.md @@ -12,7 +12,7 @@ You can also override defaults set at the project level using the command line. The following properties, at the top-level of the file, configure the workspace. | Properties | Details | -|:--- |:--- | +| :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `version` | The configuration-file version. | | `newProjectRoot` | Path where new projects are created through tools like `ng generate application` or `ng generate library`. Path can be absolute or relative to the workspace directory. Defaults to `projects` | | `cli` | A set of options that customize the [Angular CLI](tools/cli). See [Angular CLI configuration options](#angular-cli-configuration-options) below. | @@ -24,9 +24,11 @@ The initial application that you create with `ng new app-name` is listed under " When you create a library project with `ng generate library`, the library project is also added to the `projects` section. HELPFUL: The `projects` section of the configuration file does not correspond exactly to the workspace file structure. + -* The initial application created by `ng new` is at the top level of the workspace file structure. -* Other applications and libraries are under the `projects` directory by default. + +- The initial application created by `ng new` is at the top level of the workspace file structure. +- Other applications and libraries are under the `projects` directory by default. For more information, see [Workspace and project file structure](reference/configs/file-structure). @@ -34,26 +36,26 @@ For more information, see [Workspace and project file structure](reference/confi The following properties are a set of options that customize the Angular CLI. -| Property | Details | Value type | Default value | -|:--- |:--- |:--- |:--- | -| `analytics` | Share anonymous usage data with the Angular Team. A boolean value indicates whether or not to share data, while a UUID string shares data using a pseudonymous identifier. | `boolean` \| `string` | `false` | -| `cache` | Control [persistent disk cache](cli/cache) used by [Angular CLI Builders](tools/cli/cli-builder). | [Cache options](#cache-options) | `{}` | -| `schematicCollections`| List schematics collections to use in `ng generate`. | `string[]` | `[]` | -| `packageManager` | The preferred package manager tool to use. | `npm` \| `cnpm` \| `pnpm` \| `yarn`\| `bun` | `npm` | -| `warnings` | Control Angular CLI specific console warnings. | [Warnings options](#warnings-options) | `{}` | +| Property | Details | Value type | Default value | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------ | :------------ | +| `analytics` | Share anonymous usage data with the Angular Team. A boolean value indicates whether or not to share data, while a UUID string shares data using a pseudonymous identifier. | `boolean` \| `string` | `false` | +| `cache` | Control [persistent disk cache](cli/cache) used by [Angular CLI Builders](tools/cli/cli-builder). | [Cache options](#cache-options) | `{}` | +| `schematicCollections` | List schematics collections to use in `ng generate`. | `string[]` | `[]` | +| `packageManager` | The preferred package manager tool to use. | `npm` \| `cnpm` \| `pnpm` \| `yarn`\| `bun` | `npm` | +| `warnings` | Control Angular CLI specific console warnings. | [Warnings options](#warnings-options) | `{}` | ### Cache options -| Property | Details | Value type | Default value | -|:--- |:--- |:--- |:--- | -| `enabled` | Configure whether disk caching is enabled for builds. | `boolean` | `true` | -| `environment` | Configure in which environment disk cache is enabled.

* `ci` enables caching only in continuous integration (CI) environments.
* `local` enables caching only *outside* of CI environments.
* `all` enables caching everywhere. | `local` \| `ci` \| `all` | `local` | -| `path` | The directory used to stored cache results. | `string` | `.angular/cache` | +| Property | Details | Value type | Default value | +| :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------- | :--------------- | +| `enabled` | Configure whether disk caching is enabled for builds. | `boolean` | `true` | +| `environment` | Configure in which environment disk cache is enabled.

_ `ci` enables caching only in continuous integration (CI) environments.
_ `local` enables caching only _outside_ of CI environments.
\* `all` enables caching everywhere. | `local` \| `ci` \| `all` | `local` | +| `path` | The directory used to stored cache results. | `string` | `.angular/cache` | ### Warnings options | Property | Details | Value type | Default value | -|:--- |:--- |:--- |:--- | +| :---------------- | :------------------------------------------------------------------------------ | :--------- | :------------ | | `versionMismatch` | Show a warning when the global Angular CLI version is newer than the local one. | `boolean` | `true` | ## Project configuration options @@ -61,7 +63,7 @@ The following properties are a set of options that customize the Angular CLI. The following top-level configuration properties are available for each project, under `projects['project-name']`. | Property | Details | Value type | Default value | -|:--- |:--- |:--- |:--- | +| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------- | :-------------- | | `root` | The root directory for this project's files, relative to the workspace directory. Empty for the initial application, which resides at the top level of the workspace. | `string` | None (required) | | `projectType` | One of "application" or "library" An application can run independently in a browser, while a library cannot. | `application` \| `library` | None (required) | | `sourceRoot` | The root directory for this project's source files. | `string` | `''` | @@ -84,15 +86,15 @@ You can update your workspace schema file to set a different default for a sub-c { - "projects": { - "my-app": { - "schematics": { - "@schematics/angular:component": { - "standalone": false - } - } - } - } +"projects": { +"my-app": { +"schematics": { +"@schematics/angular:component": { +"standalone": false +} +} +} +} } @@ -121,7 +123,7 @@ Each target also has an `options` section that configures default options for th See the example in [Build target](#build-target) below. | Property | Details | -|:--- |:--- | +| :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `build` | Configures defaults for options of the `ng build` command. See the [Build target](#build-target) section for more information. | | `serve` | Overrides build defaults and supplies extra serve defaults for the `ng serve` command. Besides the options available for the `ng build` command, it adds options related to serving the application. | | `e2e` | Overrides build defaults for building end-to-end testing applications using the `ng e2e` command. | @@ -135,29 +137,29 @@ HELPFUL: All options in the configuration file must use `camelCase`, rather than Each target under `architect` has the following properties: -| Property | Details | -|:--- |:--- | -| `builder` | The CLI builder used to create this target in the form of `:`. | -| `options` | Build target default options. | -| `configurations`| Alternative configurations for executing the target. Each configuration sets the default options for that intended environment, overriding the associated value under `options`. See [Alternate build configurations](#alternate-build-configurations) below. | +| Property | Details | +| :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `builder` | The CLI builder used to create this target in the form of `:`. | +| `options` | Build target default options. | +| `configurations` | Alternative configurations for executing the target. Each configuration sets the default options for that intended environment, overriding the associated value under `options`. See [Alternate build configurations](#alternate-build-configurations) below. | For example, to configure a build with optimizations disabled: { - "projects": { - "my-app": { - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:application", - "options": { - "optimization": false - } - } - } - } - } +"projects": { +"my-app": { +"architect": { +"build": { +"builder": "@angular-devkit/build-angular:application", +"options": { +"optimization": false +} +} +} +} +} } @@ -167,10 +169,10 @@ For example, to configure a build with optimizations disabled: Angular CLI comes with two build configurations: `production` and `development`. By default, the `ng build` command uses the `production` configuration, which applies several build optimizations, including: -* Bundling files -* Minimizing excess whitespace -* Removing comments and dead code -* Minifying code to use short, mangled names +- Bundling files +- Minimizing excess whitespace +- Removing comments and dead code +- Minifying code to use short, mangled names You can define and name extra alternate configurations (such as `staging`, for instance) appropriate to your development process. You can select an alternate configuration by passing its name to the `--configuration` command line flag. @@ -180,23 +182,23 @@ For example, to configure a build where optimization is enabled only for product { - "projects": { - "my-app": { - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:application", - "options": { - "optimization": false - }, - "configurations": { - "production": { - "optimization": true - } - } - } - } - } - } +"projects": { +"my-app": { +"architect": { +"build": { +"builder": "@angular-devkit/build-angular:application", +"options": { +"optimization": false +}, +"configurations": { +"production": { +"optimization": true +} +} +} +} +} +} } @@ -209,18 +211,26 @@ In this example, if both `staging` and `french` configurations set the output pa ### Extra build and test options -The configurable options for a default or targeted build generally correspond to the options available for the [`ng build`](cli/build), [`ng serve`](cli/serve), and [`ng test`](cli/test) commands. +The configurable options for a default or targeted build generally correspond to the options available for the [`ng build`](cli/build), and [`ng test`](cli/test) commands. For details of those options and their possible values, see the [Angular CLI Reference](cli). | Options properties | Details | -|:--- |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `assets` | An object containing paths to static assets to serve with the application. The default paths point to the project's `public` directory. See more in the [Assets configuration](#assets-configuration) section. | +| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `assets` | An object containing paths to static assets to serve with the application. The default paths point to the project's `public` directory. See more in the [Assets configuration](#assets-configuration) section. | | `styles` | An array of CSS files to add to the global context of the project. Angular CLI supports CSS imports and all major CSS preprocessors. See more in the [Styles and scripts configuration](#styles-and-scripts-configuration) section. | | `stylePreprocessorOptions` | An object containing option-value pairs to pass to style preprocessors. See more in the [Styles and scripts configuration](#styles-and-scripts-configuration) section. | | `scripts` | An object containing JavaScript files to add to the application. The scripts are loaded exactly as if you had added them in a `