Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
3dc99be
build: migrate all `nodejs_binary` targets to `rules_js`
devversion Mar 31, 2025
2846224
build: migrate `nodejs_test` targets to `rules_js`
devversion Mar 31, 2025
29e335b
build: add ng_package interop for `rules_js` pnpm linking
devversion Mar 31, 2025
fca7bb0
build: setup pnpm workspace for first-party packages
devversion Mar 31, 2025
1d41e30
build: update integration tests to use first-party packages
devversion Mar 31, 2025
063bdd8
build: migrate all cross-package targets to use first-party links
devversion Mar 31, 2025
1008040
build: update karma rules and interop to work with `rules_js`
devversion Mar 31, 2025
eaddda4
build: fix some remaining relative imports
devversion Apr 1, 2025
ada5724
build: workaround until `animations` package is released with fixed p…
devversion Apr 1, 2025
073c6a3
build: remove remaining jasmine_node_test and modernize webdriver test
devversion Apr 1, 2025
1661964
build: fix integration tests never showing up as failing
devversion Apr 1, 2025
c92dd94
build: ensure TS respects `package.json` exports
devversion Apr 1, 2025
5d5da55
build: fix integration tests to work with real packages
devversion Apr 1, 2025
548e0a7
build: remove spec_bundle from `defaults.bzl`
devversion Apr 1, 2025
8e8e3d3
build: use `rules_esbuild` in universal testing
devversion Apr 1, 2025
47e0330
build: remove legacy linking code
devversion Apr 1, 2025
3fe0448
build: update patch `@angular/core` to have a peer dependency on common
devversion Apr 3, 2025
49ebde5
build: ensure theming tests execute as ESM
devversion Apr 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,23 @@
# Input hashes for repository rule npm_translate_lock(name = "npm2", pnpm_lock = "@//:pnpm-lock.yaml").
# This file should be checked into version control along with the pnpm-lock.yaml file.
.npmrc=-1406867100
package.json=-883436028
integration/package.json=-620011313
package.json=1405819661
patches/@angular__compiler-cli.patch=-11405367
patches/@angular__core.patch=213102054
pnpm-lock.yaml=912973730
pnpm-workspace.yaml=14857322
pnpm-lock.yaml=313249421
pnpm-workspace.yaml=334858811
src/cdk-experimental/package.json=237487315
src/cdk/package.json=-908433069
src/components-examples/package.json=-2087309525
src/dev-app/package.json=624475908
src/e2e-app/package.json=-1971485006
src/google-maps/package.json=-886415500
src/material-date-fns-adapter/package.json=-332076964
src/material-experimental/package.json=-1707816737
src/material-luxon-adapter/package.json=-199007660
src/material-moment-adapter/package.json=-1407689629
src/material/package.json=-1237533685
src/universal-app/package.json=346715231
src/youtube-player/package.json=68300461
yarn.lock=-542661817
13 changes: 13 additions & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,17 @@ integration/yarn-pnp-compat/.yarn/unplugged
integration/yarn-pnp-compat/.yarn/install-state.gz
integration/yarn-pnp-compat/node_modules

integration/node_modules
src/cdk-experimental/node_modules
src/cdk/node_modules
src/components-examples/node_modules
src/dev-app/node_modules
src/e2e-app/node_modules
src/google-maps/node_modules
src/material-date-fns-adapter/node_modules
src/material-experimental/node_modules
src/material-luxon-adapter/node_modules
src/material-moment-adapter/node_modules
src/material/node_modules
src/universal-app/node_modules
src/youtube-player/node_modules
1 change: 0 additions & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ jobs:
run: yarn install --frozen-lockfile
- name: Run integration tests
run: yarn integration-tests
continue-on-error: true

linker_aot_tests:
runs-on: ubuntu-latest-4core
Expand Down
32 changes: 31 additions & 1 deletion WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ yarn_install(
"//:tools/postinstall/patches/@angular+bazel+20.0.0-next.3.patch",
"//:tools/postinstall/patches/@angular+build-tooling+0.0.0-335a273d3eb2a73c51efb97930fc1e0cd72e0d32.patch",
"//:tools/postinstall/patches/tsec+0.2.2.patch",
"//src/cdk:package.json",
],
# Currently disabled due to:
# 1. Missing Windows support currently.
Expand Down Expand Up @@ -177,7 +176,20 @@ npm_translate_lock(
"//:patches/@angular__compiler-cli.patch",
"//:patches/@angular__core.patch",
"//:pnpm-workspace.yaml",
"//integration:package.json",
"//src/cdk:package.json",
"//src/cdk-experimental:package.json",
"//src/components-examples:package.json",
"//src/dev-app:package.json",
"//src/e2e-app:package.json",
"//src/google-maps:package.json",
"//src/material:package.json",
"//src/material-date-fns-adapter:package.json",
"//src/material-experimental:package.json",
"//src/material-luxon-adapter:package.json",
"//src/material-moment-adapter:package.json",
"//src/universal-app:package.json",
"//src/youtube-player:package.json",
],
npmrc = "//:.npmrc",
pnpm_lock = "//:pnpm-lock.yaml",
Expand Down Expand Up @@ -259,3 +271,21 @@ rules_angular_step3(
angular_compiler_cli = "//:node_modules/@angular/compiler-cli",
typescript = "//:node_modules/typescript",
)

http_archive(
name = "aspect_rules_esbuild",
sha256 = "550e33ddeb86a564b22b2c5d3f84748c6639b1b2b71fae66bf362c33392cbed8",
strip_prefix = "rules_esbuild-0.21.0",
url = "https://github.com/aspect-build/rules_esbuild/releases/download/v0.21.0/rules_esbuild-v0.21.0.tar.gz",
)

load("@aspect_rules_esbuild//esbuild:dependencies.bzl", "rules_esbuild_dependencies")

rules_esbuild_dependencies()

load("@aspect_rules_esbuild//esbuild:repositories.bzl", "LATEST_ESBUILD_VERSION", "esbuild_register_toolchains")

esbuild_register_toolchains(
name = "esbuild",
esbuild_version = LATEST_ESBUILD_VERSION,
)
76 changes: 76 additions & 0 deletions goldens/cdk/testing/private/index.api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
## API Report File for "@angular/cdk_testing_private"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

// @public
export function clearElement(element: HTMLInputElement | HTMLTextAreaElement): void;

// @public
export function createFakeEvent(type: string, bubbles?: boolean, cancelable?: boolean, composed?: boolean): Event;

// @public
export function createKeyboardEvent(type: string, keyCode?: number, key?: string, modifiers?: ModifierKeys, code?: string): KeyboardEvent;

// @public
export function createMouseEvent(type: string, clientX?: number, clientY?: number, offsetX?: number, offsetY?: number, button?: number, modifiers?: ModifierKeys): MouseEvent;

// @public
export function createPointerEvent(type: string, clientX?: number, clientY?: number, offsetX?: number, offsetY?: number, options?: PointerEventInit): PointerEvent;

// @public
export function createTouchEvent(type: string, pageX?: number, pageY?: number, clientX?: number, clientY?: number): UIEvent;

// @public
export function dedent(strings: TemplateStringsArray, ...values: any[]): string;

// @public
function dispatchEvent_2<T extends Event>(node: Node | Window, event: T): T;
export { dispatchEvent_2 as dispatchEvent }

// @public
export function dispatchFakeEvent(node: Node | Window, type: string, bubbles?: boolean): Event;

// @public
export function dispatchKeyboardEvent(node: Node, type: string, keyCode?: number, key?: string, modifiers?: ModifierKeys, code?: string): KeyboardEvent;

// @public
export function dispatchMouseEvent(node: Node, type: string, clientX?: number, clientY?: number, offsetX?: number, offsetY?: number, button?: number, modifiers?: ModifierKeys): MouseEvent;

// @public
export function dispatchPointerEvent(node: Node, type: string, clientX?: number, clientY?: number, offsetX?: number, offsetY?: number, options?: PointerEventInit): PointerEvent;

// @public
export function dispatchTouchEvent(node: Node, type: string, pageX?: number, pageY?: number, clientX?: number, clientY?: number): UIEvent;

// @public
export function isTextInput(element: Element): element is HTMLInputElement | HTMLTextAreaElement;

// @public
export function patchElementFocus(element: HTMLElement): void;

// @public
export function triggerBlur(element: HTMLElement): void;

// @public
export function triggerFocus(element: HTMLElement): void;

// @public
export function typeInElement(element: HTMLElement, ...keys: (string | {
keyCode?: number;
key?: string;
})[]): void;

// @public
export function typeInElement(element: HTMLElement, modifiers: ModifierKeys, ...keys: (string | {
keyCode?: number;
key?: string;
})[]): void;

// @public
export function wrappedErrorMessage(e: Error): RegExp;

// (No @packageDocumentation comment for this package)

```
7 changes: 3 additions & 4 deletions goldens/material/datepicker/index.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import { AfterViewInit } from '@angular/core';
import { ChangeDetectorRef } from '@angular/core';
import { ComponentType } from '@angular/cdk/portal';
import { ControlValueAccessor } from '@angular/forms';
import { DateAdapter } from '@angular/material/core';
import { Directionality } from '@angular/cdk/bidi';
import { DoCheck } from '@angular/core';
import { ElementRef } from '@angular/core';
Expand Down Expand Up @@ -701,7 +700,7 @@ export class MatMonthView<D> implements AfterContentInit, OnChanges, OnDestroy {
_comparisonRangeStart: number | null;
comparisonStart: D | null;
// (undocumented)
_dateAdapter: DateAdapter_2<D, any>;
_dateAdapter: DateAdapter<D, any>;
dateClass: MatCalendarCellClassFunction<D>;
dateFilter: (date: D) => boolean;
_dateSelected(event: MatCalendarUserEvent<number>): void;
Expand Down Expand Up @@ -759,7 +758,7 @@ export class MatMultiYearView<D> implements AfterContentInit, OnDestroy {
set activeDate(value: D);
readonly activeDateChange: EventEmitter<D>;
// (undocumented)
_dateAdapter: DateAdapter_2<D, any>;
_dateAdapter: DateAdapter<D, any>;
dateClass: MatCalendarCellClassFunction<D>;
dateFilter: (date: D) => boolean;
_focusActiveCell(): void;
Expand Down Expand Up @@ -848,7 +847,7 @@ export class MatYearView<D> implements AfterContentInit, OnDestroy {
// (undocumented)
readonly _changeDetectorRef: ChangeDetectorRef;
// (undocumented)
_dateAdapter: DateAdapter_2<D, any>;
_dateAdapter: DateAdapter<D, any>;
dateClass: MatCalendarCellClassFunction<D>;
dateFilter: (date: D) => boolean;
_focusActiveCell(): void;
Expand Down
16 changes: 12 additions & 4 deletions goldens/material/list/index.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@ import { ElementRef } from '@angular/core';
import { EventEmitter } from '@angular/core';
import * as i0 from '@angular/core';
import * as i1 from '@angular/cdk/bidi';
import * as i12 from '@angular/material/divider';
import * as i2 from '@angular/cdk/observers';
import { InjectionToken } from '@angular/core';
import { MatDivider } from '@angular/material/divider';
import { NgZone } from '@angular/core';
import { OnChanges } from '@angular/core';
import { OnDestroy } from '@angular/core';
Expand Down Expand Up @@ -45,7 +43,17 @@ export class MatActionList extends MatListBase {
static ɵfac: i0.ɵɵFactoryDeclaration<MatActionList, never>;
}

export { MatDivider }
// @public (undocumented)
export class MatDivider {
get inset(): boolean;
set inset(value: BooleanInput);
get vertical(): boolean;
set vertical(value: BooleanInput);
// (undocumented)
static ɵcmp: i0.ɵɵComponentDeclaration<MatDivider, "mat-divider", never, { "vertical": { "alias": "vertical"; "required": false; }; "inset": { "alias": "inset"; "required": false; }; }, {}, never, never, true, never>;
// (undocumented)
static ɵfac: i0.ɵɵFactoryDeclaration<MatDivider, never>;
}

// @public (undocumented)
export class MatList extends MatListBase {
Expand Down Expand Up @@ -151,7 +159,7 @@ export class MatListModule {
// (undocumented)
static ɵinj: i0.ɵɵInjectorDeclaration<MatListModule>;
// (undocumented)
static ɵmod: i0.ɵɵNgModuleDeclaration<MatListModule, never, [typeof i2.ObserversModule, typeof MatCommonModule, typeof MatRippleModule, typeof MatPseudoCheckboxModule, typeof MatList, typeof MatActionList, typeof MatNavList, typeof MatSelectionList, typeof MatListItem, typeof MatListOption, typeof MatListSubheaderCssMatStyler, typeof MatListItemAvatar, typeof MatListItemIcon, typeof MatListItemLine, typeof MatListItemTitle, typeof MatListItemMeta], [typeof MatList, typeof MatActionList, typeof MatNavList, typeof MatSelectionList, typeof MatListItem, typeof MatListOption, typeof MatListItemAvatar, typeof MatListItemIcon, typeof MatListSubheaderCssMatStyler, typeof i12.MatDividerModule, typeof MatListItemLine, typeof MatListItemTitle, typeof MatListItemMeta]>;
static ɵmod: i0.ɵɵNgModuleDeclaration<MatListModule, never, [typeof i2.ObserversModule, typeof MatCommonModule, typeof MatRippleModule, typeof MatPseudoCheckboxModule, typeof MatList, typeof MatActionList, typeof MatNavList, typeof MatSelectionList, typeof MatListItem, typeof MatListOption, typeof MatListSubheaderCssMatStyler, typeof MatListItemAvatar, typeof MatListItemIcon, typeof MatListItemLine, typeof MatListItemTitle, typeof MatListItemMeta], [typeof MatList, typeof MatActionList, typeof MatNavList, typeof MatSelectionList, typeof MatListItem, typeof MatListOption, typeof MatListItemAvatar, typeof MatListItemIcon, typeof MatListSubheaderCssMatStyler, typeof MatDividerModule, typeof MatListItemLine, typeof MatListItemTitle, typeof MatListItemMeta]>;
}

// @public (undocumented)
Expand Down
9 changes: 2 additions & 7 deletions integration/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
load("@npm2//:defs.bzl", "npm_link_all_packages")

package(default_visibility = ["//visibility:public"])

# JavaScript library that exposes a script for retrieving all NPM packages
# available in the runfiles of an action.
js_library(
name = "npm-packages-from-runfiles",
srcs = ["npm-packages-from-runfiles.mjs"],
)
npm_link_all_packages()
13 changes: 6 additions & 7 deletions integration/linker/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_test")
load("@aspect_rules_js//js:defs.bzl", "js_test")

# Test which ensures that specified NPM packages can be transformed from their partial
# declarations to definitions using the `@angular/compiler-cli` linker babel plugin.
nodejs_test(
js_test(
name = "linker",
data = [
"link-packages-test.mjs",
"//integration:npm-packages-from-runfiles",
"//:node_modules/@angular/compiler-cli",
"//:node_modules/@babel/core",
"//:node_modules/chalk",
"//:node_modules/glob",
"//src/cdk:npm_package",
"//src/cdk-experimental:npm_package",
"//src/google-maps:npm_package",
"//src/material:npm_package",
"//src/material-experimental:npm_package",
"//src/youtube-player:npm_package",
"@npm//@angular/compiler-cli",
"@npm//@babel/core",
"@npm//chalk",
"@npm//glob",
],
entry_point = "link-packages-test.mjs",
)
12 changes: 9 additions & 3 deletions integration/linker/link-packages-test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import {createEs2015LinkerPlugin} from '@angular/compiler-cli/linker/babel';
import {NodeJSFileSystem, ConsoleLogger, LogLevel} from '@angular/compiler-cli';
import {getNpmPackagesFromRunfiles} from '../npm-packages-from-runfiles.mjs';
import fs from 'fs';
import path from 'path';
import babel from '@babel/core';
Expand All @@ -17,7 +16,14 @@ const fileSystem = new NodeJSFileSystem();
/** Logger used by the Angular linker plugin. */
const logger = new ConsoleLogger(LogLevel.info);
/** List of NPM packages available in the Bazel runfiles. */
const npmPackages = getNpmPackagesFromRunfiles();
const npmPackages = [
{name: 'cdk', pkgPath: '../../src/cdk/npm_package'},
{name: 'cdk-experimental', pkgPath: '../../src/cdk-experimental/npm_package'},
{name: 'google-maps', pkgPath: '../../src/google-maps/npm_package'},
{name: 'material', pkgPath: '../../src/material/npm_package'},
{name: 'material-experimental', pkgPath: '../../src/material-experimental/npm_package'},
{name: 'youtube-player', pkgPath: '../../src/youtube-player/npm_package'},
];
/** Whether any package could not be linked successfully. */
let failedPackages = false;

Expand Down Expand Up @@ -47,7 +53,7 @@ if (failedPackages) {
// uses exit code `3` to indicate non-fatal test failures.
process.exitCode = 3;
} else {
console.info(chalk.green('✓ All packages have been successfully linked.'));
console.info(chalk.green(`✓ All packages have been successfully linked: ${npmPackages.length}`));
}

/**
Expand Down
38 changes: 0 additions & 38 deletions integration/npm-packages-from-runfiles.mjs

This file was deleted.

10 changes: 10 additions & 0 deletions integration/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"dependencies": {
"@angular/cdk": "workspace:*",
"@angular/cdk-experimental": "workspace:*",
"@angular/material": "workspace:*",
"@angular/material-experimental": "workspace:*",
"@angular/google-maps": "workspace:*",
"@angular/youtube-player": "workspace:*"
}
}
Loading
Loading