Adds support for TypeScript 4.5. Includes the following changes:
* Bumping the package versions.
* Fixing a few calls to `createExportSpecifier` and `createImportSpecifier` that require an extra parameter.
* Adding some missing methods to the TS compiler hosts.
* Fixing an issue in the TS mocks for the ngcc tests where a regex was too agressive and was trying to match a path like `/node_modules/@typescript/lib-es5`.
* Accounting for type-only import specifiers when reporting DI errors (see #43620).
Fixes#43620.
PR Close#44164
Bundle spec files similar to how it is done within the Angular
Components repo. This should simplify the setup and also speed
up the Saucelab job as only a single spec bundle would need to be
downloaded, compared to having to load hundreds of files through the
Saucelabs tunnel.
Also makes a couple of tests more robust with the emulators/and accounts
for ES2015 test runner changes. The tests should be less reluctant to
such build process changes.
Note for reviewers: Some imports have been simplified here. This work
came from Joey's original WIP for this. It's unclear to me whether this
is still needed, but it sounded like this was necessary for the ESBuild
bundling to work. I have robusted the module resolution plugin though,
so I doubt it's still needed. At the same time though: Not worth
reverting/trying as these changes are nice to have anyway!
Co-Authored-By: Joey Perrott <josephperrott@gmail.com>
Co-Authored-By: Paul Gschwendtner <paulgschwendtner@gmail.com>
PR Close#44281
This is an attempt to increase the stability of the Saucelabs legacy
job by using an emulator recommended by the Saucelabs platform
configurator, explicitly specifying the appium server version etc.
PR Close#44281
Contents of generated tsconfig for tsec_test now depend on whether
Bazel uses symlinked runfiles for nodejs_test. The current
implementation assumes that symlinked runfiles are not available
on Windows.
PR Close#43924
Re-enables the platform-server integration test that we had
to disable when we landed the APF v13 changes.
We can re-enable it by setting up the `fullySpecified` option
similar to how the CLI does it.
PR Close#44055
With this change we update `rollup` and remove the usage of no longer maintained `rollup-plugin-commonjs` and `rollup-plugin-node-resolve` plugins.
PR Close#43737
Updates the `karma-sauce-launcher` to the latest version that comes with
the heartbeat implemented. Whenever we create an instance of a browser
in Saucelabs, we need to send a Selenium command every X seconds as otherwise
Saucelabs will terminate the session due to it thinking the session is already
unused. This is especially a problem for Karma unit tests as there is no
selenium command at all, except for the initial one loading the Karma site.
The latest version of the launcher has implemented an interval that
dispatches a noop selenium command every X seconds to notify Saucelabs
that the instance is still active.
The current version of the launcher does not do that. This is likely
the source of some disconnects because after 10-13min, the SL browser
is terminated but Karma still waits some minute after realizing the
browser is actually disconnected.
We (the Angular team), contributed to that version in the past since
the heartbeat was very flaky.. and we removed it. With the new version
a lot has changed, the underlying Selenium client has changed so it's
worth trying again with the heartbeat re-implemented; it worked pretty
well so far in the COMP repo).
PR Close#43659
Given that we ship all of compiler-cli and localize in ESM
mode now, we need to use a ESM compatible version of Yargs.
The latest version seems ESM compatible but with some small
API changes. This commit updates Yargs and updates the command
line option code to use the new API.
PR Close#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
Basic integration tests are those which do not require significant
changes as others. The larger ones will have individual commits.
For v13, the NPM package output will always be using partial compilation
output. This makes the ngcc integration test fail because the actual
Angular framework packages are no longer processable. We fix this, and
keep the ngcc test coverage by relying on the v12.x framework packages
in the integration test.
The terser integration test needs to point to the new Flat ESM module
file location. We now output FESM2020 instead of FESM2015. This also
requires us to use the latest version of terser.
The `side-effects` test currently is not maintained by us and relies
on View Engine build output. In the partial compilation output the
partial declarations are not marked with `@PURE` and are not removed
therefore. We would need to update the side-effect test to use the
linker Babel plugin instead. This is currently out-of-scope though
so we disable the test for now.
PR Close#43431
In preparation for the v13 Angular Package Format, where partial
declarations are emitted only, the AOT compiler test is updated
to rely on package artifacts from v12 instead. This allows us
to switch to the new package format without breaking the tests
which require metadata files to exist in the NPM packages.
PR Close#43431
Updates the Bazel setup to the latest shared dev-infra package. Also the
rules_nodejs version is updated to v4.2.0. We have landed various
changes that prepare us for the APF v13 implementation. e.g.
* Ability to control the linker mappings for the `ng_package` rule. This
will become important for using a transition that could accidentally
cause linker mappings that would otheriwse conflict.
* Use of latest version of rollup & terser in the Bazel rules the
dev-infra package exposes. This is necessary for ES2020 support.
PR Close#43431