Commit Graph

6943 Commits

Author SHA1 Message Date
Alan Agius 9e27494e3e build(docs-infra): update min range of node versions (#43810)
Eslint 8 which is used in AIO requires Node.js `14.17.x` or later.

PR Close #43810
2021-10-12 17:43:15 +00:00
David Shevitz a82c55ff2f docs: add redirect from angular.io/guide to angular.io/docs (#43341)
PR Close #43341
2021-10-12 17:41:48 +00:00
Daniel Díaz 86aa721d8f docs: fix typo in hierarchical injectors file (#43652)
PR Close #43652
2021-10-12 17:41:24 +00:00
dario-piotrowicz 919d7dc233 refactor(docs-infra): remove tslint from cli systemjs examples (#43746)
remove the deprecated tslint from the examples of type systemjs

note: eslint hasn't be applied and linting has been removed entirely
to follow angular's unopinionated view on linting

PR Close #43746
2021-10-11 17:14:30 +00:00
Renovate Bot 4daf6318bc build: update dependency jsdom to v18 (#43786)
PR Close #43786
2021-10-11 16:44:47 +00:00
Thomas Turrell-Croft 33d6b5888c docs: Formalize language describing HttpClient (#43778)
PR Close #43778
2021-10-11 16:43:14 +00:00
Tanguy Nodet 8b2971417a docs: add missing declaration of CartComponent in tutorial (#43774)
PR Close #43774
2021-10-11 16:42:34 +00:00
dario-piotrowicz acf3102369 refactor(docs-infra): remove linting from i18n example angular.json (#43747)
remove linting from the i18n angular.json example as that is no longer
present in the boilerplace angular.json (and the two should be kept in
sync)

note: the linting was removed from the boilerplate angular.json file in PR #43592

PR Close #43747
2021-10-08 20:42:00 +00:00
Doug Parker 1317e19378 docs: update CSP section to mention Angular's minimum requirements (#43553)
Closes angular/angular-cli#21711.
Refs #6361, #37631.

PR Close #43553
2021-10-08 20:40:52 +00:00
George Kalpakas 0849a09fd1 fix(docs-infra): ensure SwUpdatesService is instantiated (#43766)
In 305d05545a, we accidentally stopped
instantiating the `SwUpdatesService` service, which meant that we were
no longer subscribing to ServiceWorker update events and proactively
checking for updates. We would still gets updates, because the
ServiceWorker automatically checks on each navigation request and when a
new ServiceWorker instance is created, but we would not proactively
fetch updates and also miss `unrecoverable` errors.

This commit fixes this by exposing an `enable()` method from
`SwUpdatesService`, which has to be explicitly called for the service to
be enabled, and ensures that the method is called when `AppComponent` is
initialized.
The commit also gets rid of the `SwUpdatesModule` (whose only purpose
was to provide `SwUpdatesService`) in favor of using `providedIn`.

Fixes #43695

PR Close #43766
2021-10-08 20:39:44 +00:00
markostanimirovic 018af62141 docs: fix forms in template examples (#43772)
PR Close #43772
2021-10-08 20:39:11 +00:00
George Kalpakas 300230c255 fix(docs-infra): avoid prepending version info to error messages twice (#43767)
Previously, we used to prepend version info to error messages by
updating their `message` property and their `stack` property. However,
due to the fact that on some browsers `error.stack` is lazily computed
based on `error.message` the first time the `stack` property is
accessed, this resulted in prepending the version info twice.

This commit ensures that the version info is only prepended to
`error.stack` once to avoid unnecessary repetition in error messages.

PR Close #43767
2021-10-08 20:17:58 +00:00
George Kalpakas 18d14b50f9 fix(docs-infra): fix Sass rule resulting in invalid CSS (#43767)
The way the Sass rule was defined previously resulted in invalid CSS of
the form:
```css
table > thead > { ... }
```

This, in turn, resulted in a build-time warning:
```
Warning:  > styles.9a5a35b070498c08.css:3079:14: warning: Unexpected "{"
    3079 │ table thead > {
         ╵               ^
```

This commit fixes the affected rule (mostly to avoid the warning,
because this change doesn't seem to have any visual difference). It also
fixes other rules that were currently not affected (because they only
had nested rules and no direct styles), but were susceptible to being
affected in the future.

PR Close #43767
2021-10-08 20:17:58 +00:00
George Kalpakas 7555e9fb8a docs: use correct service name when creating error handler in http example (#43767)
PR Close #43767
2021-10-08 20:17:58 +00:00
Alan Agius 4eedf77fd0 docs: deprecate ViewEngine-based renderModuleFactory (#43757)
DEPRECATED:

The `renderModuleFactory` symbol in `@angular/platform-server` is no longer necessary as of Angular v13.

The `renderModuleFactory` calls can be replaced with `renderModule`.

PR Close #43757
2021-10-07 16:47:54 -07:00
Renovate Bot 35a1705595 build: update all non-major dependencies (#43760)
PR Close #43760
2021-10-07 20:56:11 +00:00
hchiam 8920fa093b docs(docs-infra): fix a11y of external links (#43725)
prevent screen readers from falsely announcing "open_in_new" since they may not actually open new tabs/windows but simply send the current page to a domain outside angular.io

Fixes #43512

PR Close #43725
2021-10-07 20:55:23 +00:00
Alex Rickabaugh 48aa0039ea refactor(compiler-cli): update peerDependencies to require rxjs ^7.4.0 (#43748)
RxJS 7 versions prior to 7.4.0 export ES5 code, whereas Angular
applications using RxJS 6 today use ES2015. This was fixed in RxJS 7.4.0
which exposes ES2015 entrypoints as well. This commit updates Angular's
peer dependencies to require the newer RxJS.

PR Close #43748
2021-10-06 15:57:59 -07:00
George Kalpakas 841c5aebbf build(docs-infra): ensure ngsw.json generation is correct and deterministic (#43686)
As explained in #43679, currently the generation of the `ngsw.json` SW
manifest is non-deterministic and often incorrect. Until we can update
to an `@angular/service-worker` version that includes the fix from
PR #43679, we temporarily work-around the issue by re-generating the
`ngsw.json` manifest after `ng build` using the `ngsw-config` binary
exposed by `@angular/service-worker`.

NOTE:
This works around the issue, because the [FileSystem][1] class used by
the `ngsw-config` binary happens to be synchronous (unlike the
implementation provided by the Angular CLI), thus avoiding the race
conditions described in #43679.

[1]: https://github.com/angular/angular/blob/c721135e370b34c840756bcfb22c8119b4c8c452/packages/service-worker/cli/filesystem.ts#L15

PR Close #43686
2021-10-06 10:05:55 -07:00
George Kalpakas 3d26a07ff3 build(docs-infra): update Angular Material to version 13.0.0-next.7 (#43686)
This commit updates angular.io to the latest prerelease version of
Angular CDK/Material (v13.0.0-next.7).

PR Close #43686
2021-10-06 10:05:54 -07:00
George Kalpakas b8ab5ff0fb build(docs-infra): update AIO to align with new v13.0.0-next.9 CLI apps (#43686)
This commit updates angular.io to more closely align with new apps
created with the latest Angular CLI and remove redundant files/config
now that CLI has dropped support for differential loading.

PR Close #43686
2021-10-06 10:05:54 -07:00
George Kalpakas 81d3919102 refactor(docs-infra): prefix error messages with Angular version info (#43686)
Prefix error messages with the Angular version currently used in the
angular.io app. This applies to both errors logged to the console and
reported to Google Analytics and makes debugging certain errors easier.

PR Close #43686
2021-10-06 10:05:54 -07:00
George Kalpakas 72d1dfdd46 build(docs-infra): use $schema in ngsw-config.template.json to provide intellisense (#43686)
Add an appropriate `$schema` property in `ngsw-config.template.json` to
allow IDEs to provide intellisense about the various fields of the
config.

PR Close #43686
2021-10-06 10:05:54 -07:00
George Kalpakas ef090d1347 test(docs-infra): improve debugging when docs example tests fail without exiting (#43683)
When the docs examples tests run with `--cliSpecsConcurrency` greater
than 1 (as happens on CI), the output of each process is [buffered][1]
(to avoid interleaved output from multiple, parallel processes) and is
only printed out once the process exits (either successfully or with an
error). However, in cases where a process did not exit, the buffered
output would be never printed out, thus making debugging the failure
harder. This is the case, for example, if a build error happens during
`ng e2e`. This can be seen in action in [this CI job][2], where the job
fails due to no output, but the error (which is an incompatible TS
version) is never printed out.

To make debugging such situations easier in the future, this commit
updates the `spawnExt()` helper to reject (causing the buffered output
to be printed out) if there is no output from the spawned process for
more than 5 minutes.

[1]: https://github.com/angular/angular/blob/c721135e370b34c840756bcfb22c8119b4c8c452/aio/tools/examples/run-example-e2e.mjs#L293
[2]: https://circleci.com/gh/angular/angular/1061751

PR Close #43683
2021-10-06 10:04:47 -07:00
George Kalpakas 3be5716952 refactor(docs-infra): remove redundant code from run-example-e2e.mjs (#43683)
This commit removes some code that was unused or had no effect from the
`run-example-e2e.mjs` script.

PR Close #43683
2021-10-06 10:04:47 -07:00
dario-piotrowicz 6ac35d0660 fix(docs-infra): convert button-like elements to actual buttons (#43601)
some elements in the aio application are anchors or divs but behave
like buttons, it is semantically (and a11y) more correct to convert
them to actual button elements instead

PR Close #43601
2021-10-06 09:22:04 -07:00
Pete Bacon Darwin fa6aa1be55 build(docs-infra): ensure all overloads are shown in interfaces (#43734)
In the API docs, concrete classes do not list the "implementation" overload on a method, since this is not strictly part of its API.

We recently fixed the rendering of interfaces to display all the overloads, since there is no "implementation" overload.

This commit also fixes the rendering of "pseudo-classes", which are a combination of an interface
and a constant.

Fixes #43001

PR Close #43734
2021-10-06 09:21:08 -07:00
Andrew Kushnir e3d6e97050 docs: deprecate ViewEngine-based JIT Compiler symbols (#43710)
DEPRECATION:

In ViewEngine, [JIT compilation](https://angular.io/guide/glossary#jit) required special providers (like `Compiler`, `CompilerFactory`, etc) to be injected in the app and corresponding methods to be invoked. With Ivy, JIT compilation takes place implicitly if the Component, NgModule, etc have not already been [AOT compiled](https://angular.io/guide/glossary#aot). Those special providers were made available in Ivy for backwards-compatibility with ViewEngine to make the transition to Ivy smoother. Since ViewEngine is deprecated and will soon be removed, those symbols are now deprecated as well:

- `ModuleWithComponentFactories`
- `Compiler`
- `CompilerFactory`
- `JitCompilerFactory`
- `NgModuleFactory`

Important note: this deprecation doesn't affect JIT mode in Ivy (JIT remains available with Ivy).

PR Close #43710
2021-10-05 18:51:55 -07:00
Kristiyan Kostadinov c14085e434 feat(core): drop support for TypeScript 4.2 and 4.3 (#43642)
Bumps the minimum required TypeScript version to 4.4.2 and removes the integration tests for 4.1, 4.2 and 4.3.

BREAKING CHANGE:
TypeScript versions older than 4.4.2 are no longer supported.

PR Close #43642
2021-10-05 17:26:37 -07:00
Maximilian Köller 0dc45446fe feat(service-worker): expose more version update events (#43668)
This commit introduces a new `SwUpdate#versionUpdates` observalbe, which provides more granular
information about Service Worker version updates than the already existing `SwUpdate#available`
observable.

The new events emitted by `SwUpdate#versionUpdates` basically add the possibility for application to
get notified if a new version is available on the server (not yet downloaded) and if an installation
of a new version failed.

Closes #39840

DEPRECATED: The `SwUpdate#availalbe` observable is deprecated.

The new `SwUpdate#versionUpdates` observable provides the same information and more. Therefore, it
is possible to rebuild the same behavior as `SwUpdate#availalbe` using the events emitted by
`SwUpdate#versionUpdates` and filtering for `VersionReadyEvent` events.
As a result, the `SwUpdate#availalbe` observable is now redundant.

PR Close #43668
2021-10-05 11:00:07 -07:00
Maximilian Köller 59225f5586 feat(service-worker): SwUpdate#activeUpdate and SwUpdate#checkForUpdate should have a meaningful outcome (#43668)
Previously `activateUpdate` and `checkForUpdate` returned `Promise<void>`, which did not provide any
information of the actual outcome of the operation. Developers needed to subscribe to a
corresponding observable to obtain the outcome.

With this commit `SwUpdate#activateUpdate` will return `Promise<boolean>` which resolves to `true` if
an update was activated, to `false` if no new version is available and rejects in case of any error.
`SwUpdate#checkForUpdate` also returns a `Promise<boolean>` which resolves to `true` if an update is available, to `false` if no update was found and rejects in case of any error.

Closes #39840

BREAKING CHANGE: The return type of `SwUpdate#activateUpdate` and `SwUpdate#checkForUpdate` changed to `Promise<boolean>`.

Although unlikely, it is possible that this change will cause TypeScript type-checking to fail in
some cases. If necessary, update your types to account for the new
return type.

DEPRECATED: The `SwUpdate#activated` observable is deprecated.

The `SwUpdate#activated` observable only emits values as a direct response to calling
`SwUpdate#activateUpdate()` and was only useful for determining whether the call resulted in an
update or not. Now, the return value of `SwUpdate#activateUpdate()` can be used to determine the
outcome of the operation and therefore using `SwUpdate#activated` does not offer any benefit.

PR Close #43668
2021-10-05 11:00:07 -07:00
Andrew Kushnir fe1f6421d2 feat(core): add getNgModuleById function to retrieve loaded NgModules by id (#43580)
This commit adds a new function called `getNgModuleById` to the public API surface of the framework. The `getNgModuleById` function allows to retrieve loaded NgModule class by id (specified via `@NgModule.id`). The function is a replacement for the `getModuleFactory` function.

DEPRECATION:

The `getModuleFactory` function is deprecated in favor of the `getNgModuleById` one. With Ivy it's possible to work with NgModule classes directly, without retrieving corresponding factories, so the `getNgModuleById` should be used instead.

PR Close #43580
2021-10-04 16:35:26 -07:00
JoostK cc96f322df refactor(compiler-cli): deprecate the fullTemplateTypeCheck compiler option (#43224)
When compiling your application using the AOT compiler, your templates
are type-checked according to a certain strictness level. Before Angular 9
there existed only two strictness levels of template type checking as
determined by [the `fullTemplateTypeCheck` compiler option](guide/angular-compiler-options).
In version 9 the `strictTemplates` family of compiler options has been
introduced as a more fine-grained approach to configuring how strict your
templates are being type-checked.

The `fullTemplateTypeCheck` flag is being deprecated in favor of the new
`strictTemplates` option and its related compiler options. Projects that
currently have `fullTemplateTypeCheck: true` configured can migrate to
the following set of compiler options to achieve the same level of
type-checking.

```json
{
  "angularCompilerOptions": {
    "strictTemplates": true,
    "strictInputTypes": false,
    "strictNullInputTypes": false,
    "strictAttributeTypes": false,
    "strictOutputEventTypes": false,
    "strictDomEventTypes": false,
    "strictDomLocalRefTypes": false,
    "strictSafeNavigationTypes": false,
    "strictContextGenerics": false,
  }
}
```

PR Close #43224
2021-10-04 16:32:11 -07:00
JoostK 06732606c9 docs: remove legacy compiler options in library schematics example (#43224)
The `skipTemplateCodegen`, `strictMetadataEmit` and
`enableResourceInlining` options are specific to ViewEngine and have no
effect when using the Ivy compiler. Since libraries can no longer be
compiled using ViewEngine from Angular 13, this commit removes these
options entirely.

The `annotateForClosureCompiler` is also no longer recommended to use,
as Closure Compiler is not supported outside of Bazel.

Finally, the `fullTemplateTypeCheck` flag is changed into
`strictTemplates` as the former flag is being deprecated. Enabling
`strictTemplates` does result in more strict type-checking than with
only `fullTemplateTypeCheck` enabled, but simply removing
`fullTemplateTypeCheck` right away would result in less strict
type-checking which is not desired.

PR Close #43224
2021-10-04 16:32:11 -07:00
dario-piotrowicz 2a58ff3e41 fix(docs-infra): amend color of code links inside single anchors (#43586)
when some auto code links fail to happen they can be added manually
with the md ``[`code text`](link)``, these generate anchor elements which
contain a code element, such code element does not get the correct text
color, this commit fixes such issue

PR Close #43586
2021-10-04 16:31:16 -07:00
dario-piotrowicz d2f3f2cad6 refactor(docs-infra): remove tslint from cli examples (#43592)
remove the deprecated tslint from the examples of type cli

note: eslint hasn't be applied and linting has been removed entirely
to follow angular's unopinionated view on linting

PR Close #43592
2021-10-04 16:30:48 -07:00
George Kalpakas c997fef08a build(docs-infra): update scripts using Lighthouse to ES modules (#43607)
Update the AIO scripts that use Lighthouse (i.e. `audit-web-app.js` and
`test-aio-a11y.js`) to ES modules. This allows consuming
`lighthouse/lighthouse-cli` [v8.5.0+][1], which also switched to ES
modules.

NOTE:
Switching the `test-aio-a11y.js` script to ES modules is not strictly
necessary, since it invokes `audit-web-app.mjs` via a shell command, but
it was done for consistency.

[1]: https://github.com/GoogleChrome/lighthouse/releases/tag/v8.5.0

PR Close #43607
2021-10-04 16:29:49 -07:00
Renovate Bot 353d699766 build: lock file maintenance (#43607)
PR Close #43607
2021-10-04 16:29:49 -07:00
iRealNirmal e5c3017df3 docs: move angular-compiler-options tsconfig snippets to external file (#43545)
Moving angular-compiler-options docs inline code to external file of tsconfig.json and tsconfig.app.json.

closes #43336

PR Close #43545
2021-10-04 10:55:04 -07:00
Andrew Kushnir dbfb2d20b3 docs: remove web-animations from required polyfills (since IE11 is deprecated) (#43605)
Based on the https://caniuse.com/web-animation the only unsupported feature (in supported browsers) of Web Animations is [the "composite" option](https://css-tricks.com/additive-animation-web-animations-api/#a-new-option) (unsupported in Safari). However it looks like this option is [unused in WebAnimations inside `@angular/animations`](https://github.com/angular/angular/blob/master/packages/animations/browser/src/render/web_animations/web_animations_driver.ts#L56-L61). So the Web Animations polyfill should not be required anymore, so this commit removes it from the browser support page.

Closes #43035.

PR Close #43605
2021-10-04 10:54:32 -07:00
ultrasonicsoft 16f504b2cf docs: add balram chavan to GDE resources (#43658)
PR Close #43658
2021-10-04 10:53:58 -07:00
George Kalpakas 2cc5cc9d1f build(docs-infra): upgrade cli command docs sources to afd86f0cd (#43678)
Updating [angular#master](https://github.com/angular/angular/tree/master) from
[cli-builds#master](https://github.com/angular/cli-builds/tree/master).

##
Relevant changes in
[commit range](https://github.com/angular/cli-builds/compare/5af45a096...afd86f0cd):

**Modified**
- help/serve.json

PR Close #43678
2021-10-04 10:53:19 -07:00
Andrew Scott d04b550f2e docs: Deprecate longhand binding prefixes (#43671)
DEPRECATION:

The template prefixes `bind-`, `on-`, `bindon-`, and `ref-` have been deprecated
in v13. Templates should use the more widely documented syntaxes for binding and references:

* `[input]="value"` instead of `bind-input="value"`
* `[@trigger]="value"` instead of `bind-animate-trigger="value"`
* `(click)="onClick()"` instead of `on-click="onClick()"`
* `[(ngModel)]="value"` instead of `bindon-ngModel="value"`
* `#templateRef` instead of `ref-templateRef`

PR Close #43671
2021-10-04 10:27:06 -07:00
mgechev b64f796cc7 docs: add developer survey 2021 (#43670)
PR Close #43670
2021-10-04 10:24:58 -07:00
Paul Gschwendtner 5b5adb17ec test(docs-infra): temporarily disable upgrade systemjs example e2e tests (#43431)
This commit temporarily disables the SystemJS upgrade e2e tests. All of
the upgrade e2e tests (except for `phonecat-1-typescript`) rely on UMD
bundles. These are no longer available for the v13 Angular package
output, so we disable the tests for now.

These e2e tests can be re-enabled once we migrated the exampels from
UMD bundles to e.g. the CLI, or some custom rollup build. Alternatively
it might be even possible to use FESM bundles directly (depending on
browser support for the AIO examples; this is something the docs-infra
team will have to determine though).

PR Close #43431
2021-10-01 18:28:46 +00:00
Paul Gschwendtner 77cb17166e test(docs-infra): update http test to use correct charset name due to chromium update (#43431)
We updated the dev-infra version as part of the v13 package format
in order to be able to use the latest `rollup` version (and its
plugins). The update of the shared dev-infra package resulted in an
update of Chromium to a more recent version. This version of Chromium
seems to normalize the `content-type` header differently, so that the
AIO `http` example test assertion needs to be updated to work with the
new version of chromium. This commits updates the test.

PR Close #43431
2021-10-01 18:28:46 +00:00
Paul Gschwendtner 72c12653e1 build(docs-infra): do not error if suites are ignored (#43431)
Adding suites to the `IGNORED_EXAMPLES` array currently results
in an runtime exception because later when ignored examples are
printed to stdout, a non-existent variable is referenced back
from when there were examples disabled due to the Ivy migration.

This commit fixes the logic.

PR Close #43431
2021-10-01 18:28:46 +00:00
Paul Gschwendtner 090861b020 build: update to latest version Angular CLI supporting ESM package output (#43431)
The CLI has been updated with various changes to support for ESM package
output of the framework. This commit updates to a next version of the
CLI v13 that contains these necessary changes, allowing us to test/validate
our package changes through integration tests or AIO examples.

This update also contains a fix for the adjust enum babel optimization
that broke with the latest rollup version.

PR Close #43431
2021-10-01 18:28:44 +00:00
Renovate Bot d9b76e4b3d build: update all non-major dependencies (#43411)
PR Close #43411
2021-10-01 12:27:25 -04:00
JoostK 8878183521 perf(core): remove support for the deprecated WrappedValue (#43507)
This commit removes the `WrappedValue` public API from `@angular/core`
which was deprecated in Angular 10 without replacement.

BREAKING CHANGE:

The `WrappedValue` class can no longer be imported from `@angular/core`,
which may result in compile errors or failures at runtime if outdated
libraries are used that are still using `WrappedValue`. The usage of
`WrappedValue` should be removed as no replacement is available.

PR Close #43507
2021-10-01 12:25:19 -04:00