diff --git a/CHANGELOG.md b/CHANGELOG.md
index e4ef72217c71..0571b4af76d5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,37 @@
+
+
+# 13.0.2 (2021-11-10)
+
+### @angular/cli
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------ |
+| [34047b1ad](https://github.com/angular/angular-cli/commit/34047b1adccd7eb852c1900c872e9ca71c8d4cd9) | fix | avoid redirecting @angular/core in Angular migrations |
+| [ff4538e98](https://github.com/angular/angular-cli/commit/ff4538e981cfff49b6e8433ffcb5ac2d2ea5d07e) | fix | favor ng-update `packageGroupName` in ng update output |
+
+### @schematics/angular
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | -------------------------------------------------------- |
+| [1bc00b6fe](https://github.com/angular/angular-cli/commit/1bc00b6feb9033fd611dec965c82f03e4135a9f4) | fix | migrate ng-packagr configurations in package.json |
+| [9ea74a13d](https://github.com/angular/angular-cli/commit/9ea74a13d07208373490c7cdb3ff7c452c698322) | fix | show warning when migrating ng-packagr JS configurations |
+
+### @angular-devkit/build-angular
+
+| Commit | Type | Description |
+| --------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------- |
+| [35164bf92](https://github.com/angular/angular-cli/commit/35164bf92b986a67215580622aaddc4148a7c822) | fix | don't restore `input` of type `file` during HMR |
+| [facb5d8ff](https://github.com/angular/angular-cli/commit/facb5d8ffd4f6a81d3132515b8bae64278cf8316) | fix | don't show `[NG HMR] Unknown input type` when restoring file type input |
+| [ef8815d04](https://github.com/angular/angular-cli/commit/ef8815d0434836f2d8119e91a7bc09742ff77d37) | fix | improve sourcemap fidelity during code-coverage |
+| [966a1334a](https://github.com/angular/angular-cli/commit/966a1334a6502f5d4a18710ae22e739e62770101) | fix | suppress "@charset" must be the first rule in the file warning |
+| [1cdc24da0](https://github.com/angular/angular-cli/commit/1cdc24da0105fad75221e3c145de12dafc601059) | fix | update Angular peer dependencies to 13.0 stable |
+
+## Special Thanks
+
+Alan Agius, Charles Lyding, Joey Perrott and Paul Gschwendtner
+
+
+
# 13.0.1 (2021-11-03)
diff --git a/package.json b/package.json
index aa7fbc4464ea..e396eb1c6926 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@angular/devkit-repo",
- "version": "13.0.1",
+ "version": "13.0.2",
"private": true,
"description": "Software Development Kit for Angular",
"bin": {
@@ -64,21 +64,21 @@
},
"devDependencies": {
"@ampproject/remapping": "1.0.1",
- "@angular/animations": "13.0.0-rc.3",
- "@angular/cdk": "13.0.0-rc.2",
- "@angular/common": "13.0.0-rc.3",
- "@angular/compiler": "13.0.0-rc.3",
- "@angular/compiler-cli": "13.0.0-rc.3",
- "@angular/core": "13.0.0-rc.3",
- "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#047a95f394e81d4a120a21a5802000d0c2e62030",
- "@angular/forms": "13.0.0-rc.3",
- "@angular/localize": "13.0.0-rc.3",
- "@angular/material": "13.0.0-rc.2",
- "@angular/platform-browser": "13.0.0-rc.3",
- "@angular/platform-browser-dynamic": "13.0.0-rc.3",
- "@angular/platform-server": "13.0.0-rc.3",
- "@angular/router": "13.0.0-rc.3",
- "@angular/service-worker": "13.0.0-rc.3",
+ "@angular/animations": "13.0.0",
+ "@angular/cdk": "13.0.0",
+ "@angular/common": "13.0.0",
+ "@angular/compiler": "13.0.0",
+ "@angular/compiler-cli": "13.0.0",
+ "@angular/core": "13.0.0",
+ "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#2cfe4b98a157927b319a3a00b467ff6233dc3337",
+ "@angular/forms": "13.0.0",
+ "@angular/localize": "13.0.0",
+ "@angular/material": "13.0.0",
+ "@angular/platform-browser": "13.0.0",
+ "@angular/platform-browser-dynamic": "13.0.0",
+ "@angular/platform-server": "13.0.0",
+ "@angular/router": "13.0.0",
+ "@angular/service-worker": "13.0.0",
"@babel/core": "7.15.8",
"@babel/generator": "7.15.8",
"@babel/helper-annotate-as-pure": "7.15.4",
@@ -179,7 +179,7 @@
"mini-css-extract-plugin": "2.4.3",
"minimatch": "3.0.4",
"minimist": "^1.2.0",
- "ng-packagr": "13.0.0-rc.3",
+ "ng-packagr": "13.0.0",
"node-fetch": "^2.2.0",
"npm-package-arg": "8.1.5",
"open": "8.4.0",
diff --git a/packages/angular/cli/models/schematic-engine-host.ts b/packages/angular/cli/models/schematic-engine-host.ts
index 0c5bc7fe129b..57d678321d76 100644
--- a/packages/angular/cli/models/schematic-engine-host.ts
+++ b/packages/angular/cli/models/schematic-engine-host.ts
@@ -129,10 +129,21 @@ function wrap(
// Provide compatibility modules for older versions of @angular/cdk
return legacyModules[id];
} else if (id.startsWith('@angular-devkit/') || id.startsWith('@schematics/')) {
- // Resolve from inside the `@angular/cli` project
- const packagePath = require.resolve(id);
+ // Files should not redirect `@angular/core` and instead use the direct
+ // dependency if available. This allows old major version migrations to continue to function
+ // even though the latest major version may have breaking changes in `@angular/core`.
+ if (id.startsWith('@angular-devkit/core')) {
+ try {
+ return schematicRequire(id);
+ } catch (e) {
+ if (e.code !== 'MODULE_NOT_FOUND') {
+ throw e;
+ }
+ }
+ }
- return hostRequire(packagePath);
+ // Resolve from inside the `@angular/cli` project
+ return hostRequire(id);
} else if (id.startsWith('.') || id.startsWith('@angular/cdk')) {
// Wrap relative files inside the schematic collection
// Also wrap `@angular/cdk`, it contains helper utilities that import core schematic packages
diff --git a/packages/angular/cli/src/commands/update/schematic/index.ts b/packages/angular/cli/src/commands/update/schematic/index.ts
index 4e951adee87a..a0b92febe48b 100644
--- a/packages/angular/cli/src/commands/update/schematic/index.ts
+++ b/packages/angular/cli/src/commands/update/schematic/index.ts
@@ -460,17 +460,15 @@ function _usageMessage(
target,
};
})
- .filter(({ info, version, target }) => {
- return target && semver.compare(info.installed.version, version) < 0;
- })
- .filter(({ target }) => {
- return target['ng-update'];
- })
+ .filter(
+ ({ info, version, target }) =>
+ target?.['ng-update'] && semver.compare(info.installed.version, version) < 0,
+ )
.map(({ name, info, version, tag, target }) => {
// Look for packageGroup.
- const packageGroup = target['ng-update']?.['packageGroup'];
+ const packageGroup = target['ng-update']['packageGroup'];
if (packageGroup) {
- const packageGroupName = packageGroup?.[0];
+ const packageGroupName = target['ng-update']['packageGroupName'] || packageGroup[0];
if (packageGroupName) {
if (packageGroups.has(name)) {
return null;
diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json
index 9cece7c9a914..391ffe9f1ded 100644
--- a/packages/angular_devkit/build_angular/package.json
+++ b/packages/angular_devkit/build_angular/package.json
@@ -75,11 +75,11 @@
"esbuild": "0.13.12"
},
"peerDependencies": {
- "@angular/compiler-cli": "^13.0.0 || ^13.0.0-next",
- "@angular/localize": "^13.0.0 || ^13.0.0-next",
- "@angular/service-worker": "^13.0.0 || ^13.0.0-next",
+ "@angular/compiler-cli": "^13.0.0",
+ "@angular/localize": "^13.0.0",
+ "@angular/service-worker": "^13.0.0",
"karma": "^6.3.0",
- "ng-packagr": "^13.0.0 || ^13.0.0-next",
+ "ng-packagr": "^13.0.0",
"protractor": "^7.0.0",
"tailwindcss": "^2.0.0",
"typescript": "~4.4.3"
diff --git a/packages/angular_devkit/build_angular/src/babel/presets/application.ts b/packages/angular_devkit/build_angular/src/babel/presets/application.ts
index 8b5467cd6622..8b849f07d6c4 100644
--- a/packages/angular_devkit/build_angular/src/babel/presets/application.ts
+++ b/packages/angular_devkit/build_angular/src/babel/presets/application.ts
@@ -49,6 +49,7 @@ export interface ApplicationPresetOptions {
forceAsyncTransformation?: boolean;
instrumentCode?: {
includedBasePath: string;
+ inputSourceMap: unknown;
};
optimize?: {
looseEnums: boolean;
@@ -249,7 +250,10 @@ export default function (api: unknown, options: ApplicationPresetOptions) {
if (options.instrumentCode) {
plugins.push([
require('babel-plugin-istanbul').default,
- { inputSourceMap: false, cwd: options.instrumentCode.includedBasePath },
+ {
+ inputSourceMap: options.instrumentCode.inputSourceMap ?? false,
+ cwd: options.instrumentCode.includedBasePath,
+ },
]);
}
diff --git a/packages/angular_devkit/build_angular/src/babel/webpack-loader.ts b/packages/angular_devkit/build_angular/src/babel/webpack-loader.ts
index e3a6d49df695..eae472b33ccd 100644
--- a/packages/angular_devkit/build_angular/src/babel/webpack-loader.ts
+++ b/packages/angular_devkit/build_angular/src/babel/webpack-loader.ts
@@ -73,7 +73,7 @@ export default custom(() => {
});
return {
- async customOptions(options, { source }) {
+ async customOptions(options, { source, map }) {
const { i18n, scriptTarget, aot, optimize, instrumentCode, ...rawOptions } =
options as AngularBabelLoaderOptions;
@@ -176,6 +176,7 @@ export default custom(() => {
// `babel-plugin-istanbul` has it's own includes but we do the below so that we avoid running the the loader.
customOptions.instrumentCode = {
includedBasePath: instrumentCode.includedBasePath,
+ inputSourceMap: map,
};
shouldProcess = true;
diff --git a/packages/angular_devkit/build_angular/src/builders/dev-server/hmr_spec.ts b/packages/angular_devkit/build_angular/src/builders/dev-server/hmr_spec.ts
index 195fad21569b..4b97bb82b2c7 100644
--- a/packages/angular_devkit/build_angular/src/builders/dev-server/hmr_spec.ts
+++ b/packages/angular_devkit/build_angular/src/builders/dev-server/hmr_spec.ts
@@ -58,7 +58,9 @@ describe('Dev Server Builder HMR', () => {
{{title}}
+
+