957 Commits

Author SHA1 Message Date
Alan Agius
c76f9a337f docs(@angular/cli): update platform support information in auto-completion
Closes #23980
2022-09-30 08:56:15 +02:00
Angular Robot
8c3577d07c build: update all non-major dependencies 2022-09-29 14:28:56 +02:00
Alan Agius
23c233c296 fix(@angular/cli): add builders and schematic names as page titles in collected analytics
With this commit the builder and schematic names are added as page title to page events.

Also, we address a bug where during a watch or error in some cases analytics where not flushed. Examples when the builder has a watch mode.
2022-09-23 10:29:59 -04:00
Charles Lyding
326e9234c4 refactor(@angular/cli): remove use of global require resolve
The global require function is not present in Node.js ESM mode. To support
the eventual transition of the `@angular/cli` package to ESM, usage of the
`require.resolve` function has been converted to use locally created `require`
functions via `createRequire` from the `module` builtin.
2022-09-20 10:19:45 -04:00
Jason Bedard
4de9045de8 test: unit test multiple node versions in separate jobs 2022-09-14 10:43:17 -07:00
Charles Lyding
b2add316e7 build: remove unneeded BUILD file licenses rule comments 2022-09-13 10:33:49 -07:00
Angular Robot
a39aa0f499 build: update dependency uuid to v9 2022-09-06 08:20:50 +02:00
Alan Agius
7e64b1537d fix(@angular/cli): favor non deprecated packages during update
Prior to this change during update deprecated packages that satisfied the version range constrain where being favored over the non-deprecated versions if the version of the deprecated version is greater. Ex: if `14.3.1` is deprecated and `14.3.0` is not the former was being installed.

With this change we now change the logic to favor non deprecated version of the package and only use the deprecated package when no satisfying version is found.

This fix is needed as in some cases a package which cannot be unpublished from NPM will gave to be to be deprecated, if the version is for a reason or another broken.
2022-09-01 10:24:33 -04:00
Charles Lyding
e402c2358c build: adjust BUILD file external comment markers
Improvements to the syncing process allow for reduced usage of the comment markers.
2022-08-31 08:37:19 -04:00
Alan Agius
774d349b73 refactor(@angular/cli): remove deprecated path handler
BREAKING CHANGE: The 'path' option in schematics schema no longer has a special meaning. Use 'workingDirectory' smart default provider should be used instead.
2022-08-30 12:24:35 -04:00
Angular Robot
56b3299f12 build: update all non-major dependencies 2022-08-30 08:54:10 -04:00
Angular Robot
ea5edbebb5 build: update all non-major dependencies 2022-08-29 08:18:24 -04:00
Doug Parker
da271addf0 refactor(@angular/cli): update analytics prompt copy
Swapping `anonymous` for `pseudonymous` to align with privacy communication guidelines.
2022-08-22 16:04:11 -07:00
Angular Robot
3651209e95 build: update all non-major dependencies 2022-08-17 10:35:20 +02:00
Alan Agius
0e2044ebb1 build: update @types/semver to ^7.3.12 2022-08-16 01:42:28 +02:00
Alan Agius
37422da4f2 docs: typo in cache command long description 2022-08-12 08:20:43 -04:00
Alan Agius
4368c85983 refactor: remove unused local variables 2022-08-12 08:19:26 -04:00
Alan Agius
6814e300c3 build: update all typescript-eslint packages to v5.33.0
(cherry picked from commit fb11677dde47c348025fd5e44e7822c097ce0bfe)
2022-08-09 10:42:54 -04:00
Jason Bedard
db5c1fc13c test: run tests on multiple node versions 2022-08-03 10:33:46 -07:00
Alan Agius
44f918612a fix(@angular/cli): catch clause variable is not an Error instance
Errors thrown in RxJs are not instanceof Error and therefore the check will always fail.

Closes #23631
2022-07-28 09:46:53 +02:00
Alan Agius
596037010a fix(@angular/cli): add missing space after period in warning text 2022-07-28 09:42:56 +02:00
Angular Robot
0a990c525a build: update all non-major dependencies 2022-07-14 15:21:03 -07:00
Alan Agius
669345998b fix(@angular/cli): remove deprecation warning of no prefixed schema options
Prefixing options with `no` in schema definitions appears to be used more widely than initially thought.

The `noOption` can also be provided in the `angular.json` which makes this property definition less ambiguous, since boolean options don't get prefixed with `no` in the JSON config. Therefore, in order to reduce the community changes we remove the deprecation warning for such options and change the interim solution to permanent one.

None-the-less, it's still recommended that options are defined without the `no` prefix.
2022-07-11 11:52:16 -07:00
Alan Agius
2731fe7f67 fix(@angular/cli): handle cases when completion is enabled and running in an older CLI workspace
Previously when having completion enabled and the current workspaces has an older version of the Angular CLI installed in the terminal the below errors is show. This is because the older versions of the CLI do not implement this command. Now we exit gracefully.

```
The specified command ("completion") is invalid. For a list of available options,
run "ng help".

Did you mean "analytics"?
```

Closes #23518
2022-07-07 20:39:36 +02:00
Alan Agius
cbccfd426a fix(@angular/cli): during an update only use package manager force option with npm 7+
In some cases previously we passed the `force` option to yarn which which lead to an installation failure.

Closes #23495
2022-07-06 16:33:02 +02:00
Alan Agius
dbe0dc1743 fix(@angular/cli): improve error message for project-specific ng commands when run outside of a project
With this change we improve the error message when a project for command cannot be determined

```
Error: Cannot determine project for command.
This is a multi-project workspace and more than one project supports this command. Run "ng build [project]" to execute the command for a specific project or change the current working directory to a project directory.

Available projects are:
- project-name-0
- project-name-1
- project-name-2
- project-name-3
- project-name-4
- project-name-5
- project-name-6
- project-name-7
- project-name-8
- project-name-9
```

Closes #23481
2022-07-01 11:43:57 -04:00
Alan Agius
a69000407c refactor: clean up old ansi-colors castings
This has been fixed in https://github.com/doowb/ansi-colors/pull/44
2022-06-28 08:49:44 -04:00
Alan Agius
4fa039b692 fix(@angular/cli): remove color from help epilogue
In some cases gray doesn't provide enough contrast.
2022-06-27 09:09:33 -04:00
Alan Agius
5a012b5fce fix(@angular/cli): correctly handle --collection option in ng new
Previously, this option was ignored due to an incorrect deconstruction.

Closes #23414
2022-06-27 09:09:13 -04:00
renovate[bot]
04160c58ce build: update all non-major dependencies 2022-06-27 08:15:08 -04:00
Tim Bowersox
8b65abe1b0 fix(@angular/cli): improve global schema validation
- Prevent additional properties being set in cli subproperties (i.e. cli.warnings.zzzz).
- Create cliGlobalOptions definition and reference in the global.cli schema.
- Use global.cli schema to validate changes made with --global flag.
- Add test coverage for validating global/local-only changes.
- Add test coverage for setting invalid properties and sub-properties.
2022-06-24 09:51:21 -04:00
Alan Agius
3884b86526 fix(@angular/cli): add esbuild browser builder to workspace schema 2022-06-21 12:21:53 -07:00
Alan Agius
ba3f671936 fix(@angular/cli): temporarily handle boolean options in schema prefixed with no
With this commit we introduce an interim solution for options prefixed with `no` in `schema.json`

Previously, such options were handled as normal boolean option, but yargs handles options prefixed with `no` as negatations of the original option. Example with yargs, an option `noWatch` is will registered as `watch`.

Closes #23397
2022-06-21 12:21:29 -07:00
Alan Agius
fd92eaa865 fix(@angular/cli): provide an actionable error when using --configuration with ng run
With this commit we issue a more actionable error message when using the unsupported
`--configuration` option with the`ng run` command.

Closes #23385
2022-06-17 16:25:54 +02:00
Charles Lyding
1e21440c10 build: mark external only bazel rules 2022-06-17 16:25:41 +02:00
Alan Agius
4f31b57df3 fix(@angular/cli): disable version check when running ng completion commands
Running autocompletion with `14.0.1` installed globally in a `14.0.0` project logs the version warning in a very annoying fashion:

```
$ ng verYour global Angular CLI version (14.0.1) is greater than your local version (14.0.0). The local Angular CLI version is used.

To disable this warning use "ng config -g cli.warnings.versionMismatch false".
sion
```

This adds an exception for `ng completion` commands to avoid this edge case.
2022-06-16 13:32:39 +02:00
Alan Agius
82ec1af4e1 fix(@angular/cli): show more actionable error when command is ran in wrong scope
Currently, we don't register all available commands. For instance, when the CLI is ran inside a workspace the `new` command is not registered. Thus, this will cause a confusing error message when `ng new` is ran inside a workspace.

Example:
```
$ ng new
Error: Unknown command. Did you mean e?
```

With this commit we change this by registering all the commands and valid the command scope during the command building phase which is only triggered once the command is invoked but prior to the execution phase.
2022-06-13 19:22:56 +02:00
Charles Lyding
e41dc3e5fe refactor(@angular/cli): assert catch clause variable type before usage
Prepares the `@angular/cli` package for the eventual change of enabling the
TypeScript `useUnknownInCatchVariables` option. This option provides additional
code safety by ensuring that the catch clause variable is the proper type before
attempting to access its properties. Similar changes will be needed in the other
packages in the repository prior to enabling `useUnknownInCatchVariables`.
2022-06-10 09:26:44 -04:00
Doug Parker
f1dbdb95e0 fix(@angular/cli): correctly print package manager name when an install is needed
This was printing "Try installing with '[object Object] install'".
2022-06-08 15:31:22 -04:00
Alan Agius
f6e8ce2af1 fix(@angular/cli): handle project being passed as a flag
Yargs allows passing using positional arguments as flags. This we should handle this when retrieving the project.

Closes #23291
2022-06-08 10:03:50 -04:00
Alan Agius
79ea0f3ae3 fix(@angular/cli): provide actionable error when project cannot be determined
When the workspace has multiple projects and we the project to use cannot be determined from the current working directory, we now issue an actionable error message.
2022-06-08 10:03:50 -04:00
Alan Agius
13234214a4 docs: remove azure builder reference
This builder is not compatible with newer versions of the Angular CLI.

See https://github.com/angular/angular-cli/issues/23255 for more context

Closes #23255
2022-06-08 09:11:55 -04:00
Charles Lyding
d78826353b fix(@angular/cli): ensure full process exit with older local CLI versions
Angular CLI versions prior to v14 may not exit correctly if not forcibly exited
via `process.exit`. When the local CLI version is less than v14, the CLI will now
use `process.exit` to ensure the process exits with these older CLI versions.

Fixes #23289
2022-06-07 16:22:38 -04:00
Charles Lyding
f6f37821c8 fix(@angular/cli): improve resilience of logging during process exit
In certain situations the existing console logger created via `@angular-devkit/core` `createConsoleLogger`
could try to write to a closed stdout pipe stream. This would result in an error during
execution. For cases such as the completion script command, this would also prevent the
command from functioning. To mitigate these cases, `createConsoleLogger` is no longer used
and instead a logger instance is directly created within the CLI that uses `Console.log`
and `Console.error` to write output. Exiting the CLI also now waits for messages to be
logged before proceeding with the exit.
2022-06-06 15:42:12 -04:00
Renovate Bot
450074ff69 build: update all non-major dependencies 2022-06-03 14:54:21 -04:00
Alan Agius
08c87c8d47 fix(@angular/cli): avoid creating unnecessary global configuration
Previously, when a global configuration was not found on disk we forcefully created it even when it was not needed.

This causes issues in CI when multiple `ng` commands would run in parallel as it caused a read/write race conditions.

See: https://angular-team.slack.com/archives/C46U16D4Z/p1654089933910829
2022-06-03 14:52:52 -04:00
Alan Agius
cefbffe6be fix(@angular/cli): add text to help output to indicate that additional commands are available when ran in different context
With this change we add a footer to indicate that more commands are available when running the CLI in a different context. Ie inside or outside of a workspace.
2022-06-03 14:52:25 -04:00
Alan Agius
1846315b2e fix(@angular/cli): correct scope cache command
Currently, this was being shown available as a global command which shouldn't be the case.
2022-06-03 14:51:50 -04:00
Charles Lyding
ea1f2cee5d refactor(@angular/cli): remove deprecated rmdirSync usage
`rmdirSync` usage can be directly replaced with `rmSync`.
For additional Node.js deprecation details, see https://nodejs.org/docs/latest-v16.x/api/deprecations.html#dep0147-fsrmdirpath--recursive-true-
2022-06-03 14:51:24 -04:00
Charles Lyding
7ddc3fe899 fix(@angular/cli): during an update only use package manager force option with npm 7+
The package manager `--force` option is only relevant to npm 7+ wherein the option controls
the strictness of the npm 7+ peer dependency resolution. Yarn 2+ does not support a `--force`
option. When the `ng update` `--force` option was used, `ng update` was incorrectly
applying the package manager `--force` option to Yarn which lead to an installation failure.
This has now been corrected and the package manager `--force` option is now only applied to npm 7+.
2022-06-03 14:51:24 -04:00