Branch: master
-
fix(ivy): properly check LView array size in binding asserts (#29476)
This fix corrects a bug where we were passing a binding _value_ in place of an expected binding index. This reulted in the binding value being compared to an array length and buggy type coercion. Fixing this bug speeds up test scenario by ~10-15%. PR Close #29476
-
docs: add app shell guide (#28591)
PR Close #28591
-
-
refactor(ivy): correctly type class declarations in `ngtsc`/`ngcc` (#…
…29209) Previously, several `ngtsc` and `ngcc` APIs dealing with class declaration nodes used inconsistent types. For example, some methods of the `DecoratorHandler` interface expected a `ts.Declaration` argument, but actual `DecoratorHandler` implementations specified a stricter `ts.ClassDeclaration` type. As a result, the stricter methods would operate under the incorrect assumption that their arguments were of type `ts.ClassDeclaration`, while the actual arguments might be of different types (e.g. `ngcc` would call them with `ts.FunctionDeclaration` or `ts.VariableDeclaration` arguments, when compiling ES5 code). Additionally, since we need those class declarations to be referenced in other parts of the program, `ngtsc`/`ngcc` had to either repeatedly check for `ts.isIdentifier(node.name)` or assume there was a `name` identifier and use `node.name!`. While this assumption happens to be true in the current implementation, working around type-checking is error-prone (e.g. the assumption might stop being true in the future). This commit fixes this by introducing a new type to be used for such class declarations (`ts.Declaration & {name: ts.Identifier}`) and using it consistently throughput the code. PR Close #29209
-
PR Close #29305
-
ci: disable sauce-connect ssl bumping (#29447)
By default we disable SSL bumping for all requests. This is because SSL bumping is not needed for our test setup and in order to perform the SSL bumping, Saucelabs intercepts all HTTP requests in the tunnel VM and modifies them. This can cause flakiness as it makes all requests dependent on the SSL bumping middleware. See: https://wiki.saucelabs.com/display/DOCS/Troubleshooting+Sauce+Connect#TroubleshootingSauceConnect-DisablingSSLBumping PR Close #29447
-
build(docs-infra): upgrade cli command docs sources to 18d979cdc (#29437
) 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](angular/cli-builds@cafa558...18d979c): **Added** - help/analytics.json **Modified** - help/add.json - help/build.json - help/generate.json - help/new.json - help/serve.json PR Close #29437
-
build(compiler-cli): enable full TypeScript strictness (#29436)
This commit enables strict: true in TypeScript builds of //packages/compiler-cli. PR Close #29436
-
feat(service-worker): support multiple apps on different subpaths of …
…a domain (#27080) Previously, it was not possible to have multiple apps (using `@angular/service-worker`) on different subpaths of the same domain, because each SW would overwrite the caches of the others (even though their scope was different). This commit fixes it by ensuring that the cache names created by the SW are different for each scope. Fixes #21388 PR Close #27080
-
fix(ivy): emit generic type arguments in Pipe metadata (#29403)
Previously, only directives and services with generic type parameters would emit `any` as generic type when emitting Ivy metadata into .d.ts files. Pipes can also have generic type parameters but did not emit `any` for all type parameters, resulting in the omission of those parameters which causes compilation errors. This commit adds support for pipes with generic type arguments and emits `any` as generic type in the Ivy metadata. Fixes #29400 PR Close #29403
-
test: remove symlink workaround (#29426)
This is no longer required. And is causing some errors to some of our engineers PR Close #29426
-
feat(ivy): ngcc - support creating a new copy of the entry-point form…
…at (#29092) This commit adds a `NewEntryPointFileWriter` that will be used in webpack integration. Instead of overwriting files in-place, this `FileWriter` will make a copy of the TS program files and write the transformed files there. It also updates the package.json with new properties that can be used to access the new entry-point format. FW-1121 PR Close #29092

