Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

re/tab #20

Open
wants to merge 10,000 commits into
base: master
Choose a base branch
from
Open

re/tab #20

wants to merge 10,000 commits into from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Mar 25, 2022

  1. ci: temporarily disable components-repo-unit-tests job for Bazel Node…

    …JS v5 update (#45431)
    
    The Angular components repository can only start using Bazel Rules NodeJS v5
    when `@angular/bazel` is published with support for it. To work around this
    cycle we temporarily disable the unit tests job until we migrated the COMP
    repo as well.
    
    PR Close #45431
    devversion authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    b1fadbd View commit details
    Browse the repository at this point in the history
  2. ci: make windows circleci job more robust and use git bash (#45431)

    It is totally fine, and expected to use Git Bash for running Bazel
    on Windows. In fact this is the most common setup for Bazel on Windows
    and it's unrealistic to run without it.
    
    This allows us to remove the old/legacy Powershell setup from CI
    which is also quite flaky sometimes and does not reproduce how
    Bazel is used on windows-users dev machines.
    
    PR Close #45431
    devversion authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    a48683b View commit details
    Browse the repository at this point in the history
  3. test: refactor compiler-cli compliance test to work on windows (#45431)

    Recent changes in `rules_nodejs` caused the test case copy file actions
    to be transitioned into the `exec` configuration, resulting in much larger
    file paths. These paths break on Windows with the shell argument limit, and
    with the path limit, causing errors like:
    
    ```
    ERROR: C:/users/circleci/ng/packages/compiler-cli/test/compliance/test_cases/BUILD.bazel:9:12: Copying file packages/compiler-cli/test/compliance/test_cases/r3_compiler_compliance/components_and_directives/value_composition/structural_directives_if_directive_def.js failed: (Exit 1): cmd.exe failed: error executing command
      cd /d C:/users/circleci/_bazel_circleci/u4uoan2j/execroot/angular
      SET PATH=C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Windows;C:\Windows\System32;C:\Windows\System32\WindowsPowerShell\v1.0
        SET RUNFILES_MANIFEST_ONLY=1
      cmd.exe /C bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\packages\compiler-cli\test\compliance\test_cases\test_cases--1973427149-cmd.bat
    The system cannot find the path specified
    ```
    
    https://app.circleci.com/pipelines/github/angular/angular/44038/workflows/4b530cb2-f232-4e1d-b35a-e6e085151d08/jobs/1140017
    
    PR Close #45431
    devversion authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    9e3e970 View commit details
    Browse the repository at this point in the history
  4. ci: dedupe top-level yarn install in circleci config (#45431)

    Dedupes the Yarn run steps, avoiding the need to manually keep
    this step in sync (e.g. with the timeout -- which is currently missing
    for the windows job)
    
    PR Close #45431
    devversion authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    a7c81da View commit details
    Browse the repository at this point in the history
  5. ci: improve stability of windows bazel CI job (#45431)

    Improves stability of the Windows Bazel CI job by
    installing Bazelisk globally.
    
    Also makes the environment helpers more convenient by
    evaluating the variable assignments directly, simplifying
    some Bash logic.
    
    PR Close #45431
    devversion authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    fed7630 View commit details
    Browse the repository at this point in the history
  6. build: shorten partial compilation test case target names for windows (

    …#45431)
    
    Shortens the partial compilation test case target names as the paths/
    manifest paths in Bazel became too large, exceeding some Windows path
    length limits.
    
    Relevant context/resources:
    * https://angular-team.slack.com/archives/C02PARQNMC1/p1648137933069659 (internal)
    * https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd
    * https://github.com/bazelbuild/rules_nodejs/pull/3215/files#r782271592
    
    PR Close #45431
    devversion authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    78eace6 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    7ab7181 View commit details
    Browse the repository at this point in the history
  8. ci: make payload size tracking script work with CircleCI and Bazel li…

    …mitation (#45444)
    
    For quite some time now, since we started to use Bazel for integration tests, we
    relied on some size tracking logic that did not actually fully work under Bazel.
    
    It was thought that all the necessary CI push/PR information is available to the
    Bazel test, but that was not the case. This was now fixed with the recent Rules NodeJS
    v5 update where I made sure the `env.sh` variables are actually available before we
    write them to the temporary file for the Bazel-access.
    
    This now will unveil an issue because payload size goldens would start being based
    on their branch name. e.g. the golden key in `13.3.x` should not be `master` but
    `13.3.x`. This makes more sense than `master` as key, but makes things more
    cumbersome and ideally we would not store the branch name at all (this is a larger
    change though -- not worth now since we might refactor this anyway). For now we will
    update the size tracking logic to always use `master` as golden key (like it worked
    in the past year(s))
    
    With the environment fix we now (again) start uploading payload size results to Firebase.
    This did not work by accident either. The uploading logic is reliant on the CircleCI
    commit range which is not working/reliable in upstream branches. This commit
    removes this reliance on `COMMIT_RANGE` since it's not strictly necessary and
    currently breaking renovate PRs. We can re-enable this when we have a solution with
    CircleCI, or a workaround/resolution logic provided in e.g. `ng-dev ci determine-commit-range`.
    
    PR Close #45444
    devversion authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    1177b4e View commit details
    Browse the repository at this point in the history
  9. fix(zone.js): swallow the error when the element callback is not patc…

    …hable (#45400)
    
    The `patchCallbacks` is used for patching the `document.registerElement` and
    `customElements.define`. We explicitly wrap the patching code into try-catch since
    callbacks may be already patched by other web components frameworks (e.g. LWC), and they
    make those properties non-writable. This means that patching callback will throw an error
    `cannot assign to read-only property`. See this code as an example:
    https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186
    We don't want to stop the application rendering if we couldn't patch some
    callback, e.g. `attributeChangedCallback`.
    
    PR Close #42546
    
    PR Close #45400
    arturovt authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    4ea70e3 View commit details
    Browse the repository at this point in the history
  10. build: disable payload size uploading within bazel (#45446)

    Uploading payload size is unreliable from within Bazel. This is
    because tests might not run for every commit, tests might have
    been cached from a pull request RBE-build (causing payload uploading
    to be skipped most of the time as every change comes from a PR)
    
    We should disable the uploading as this is a fundamental problem
    (good thing to note now) that we can solve with better payload
    size tracking that we want to establish as part of dev-infra.
    
    PR Close #45446
    devversion authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    3143494 View commit details
    Browse the repository at this point in the history
  11. docs: deprecated relativeLinkResolution in the Router (#45308)

    The `relativeLinkResolution` option was added as an option to opt-in to
    corrected behavior when generating links relative to a route that has an
    empty path parent. This was needed to avoid a breaking change. Since
    then, we have switched the default to be the corrected behavior.
    It's time to close the turn the lights off on this option so we no
    longer have to maintain and document buggy behavior.
    
    PR Close #45308
    atscott authored and dylhunn committed Mar 25, 2022
    Configuration menu
    Copy the full SHA
    96c7cc9 View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2022

  1. fix(core): avoid Closure Compiler error in restoreView (#45445)

    Closure Compiler in advanced optimization mode may end up inlining the `ɵɵrestoreView` into the event listener which can lead to a runtime null pointer exception after the changes in #43075.
    
    These changes add an annotation to prevent function inlining of the specific instruction.
    
    PR Close #45445
    crisbeto authored and dylhunn committed Mar 26, 2022
    Configuration menu
    Copy the full SHA
    d36fa11 View commit details
    Browse the repository at this point in the history
  2. fix(zone.js): should ignore multiple resolve call (#45283)

    Close #44913
    
    The following case is not handled correctly by `zone.js`.
    ```
    const delayedPromise = new Promise((resolve) => {
      setTimeout(resolve, 1, 'timeout');
    });
    
    new Promise((resolve) => {
      resolve(delayedPromise);
      resolve('second call');
    }).then(console.log);
    ```
    
    It should output `timeout`, since the promise is resolved by the
    1st resolve, the `second call` should be ignored.
    
    So this is a bug that the original implementation not ensure the
    `resolve` is only called once.
    
    PR Close #45283
    JiaLiPassion authored and dylhunn committed Mar 26, 2022
    Configuration menu
    Copy the full SHA
    aebf165 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2022

  1. build: replace bazel devserver with shared dev-infra implementation (#…

    …45452)
    
    As part of the devtools migration, we copied the custom http server/
    dev-server from the `angular/components` repo. This server implementation
    has now moved to the shared dev-infra code, and we can clean up the
    copy in this repository now.
    
    PR Close #45452
    devversion authored and dylhunn committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    c996b47 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3d2a60e View commit details
    Browse the repository at this point in the history
  3. fix(forms): not picking up disabled state if group is swapped out and…

    … disabled (#43499)
    
    Fixes a long-standing issue where swapping out the `FormGroup` and calling `disable` immediately afterwards doesn't actually disable the `ControlValueAccessor`.
    
    Fixes #22556.
    
    PR Close #43499
    crisbeto authored and dylhunn committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    b36dec6 View commit details
    Browse the repository at this point in the history
  4. fix(http): Throw error when headers are supplied in JSONP request (#4…

    …5210)
    
    JSONP does not support headers being set on requests. This
    enables JSONP to throw an error when headers are supplied
    in the request to prevent attempts to set them.
    
    BREAKING CHANGE: JSONP will throw an error when headers are set on a reques
    
    JSONP does not support headers being set on requests. Before when
    a request was sent to a JSONP backend that had headers set the headers
    were ignored. The JSONP backend will now throw an error if it
    receives a request that has any headers set. Any uses of JSONP
    on requests with headers set will need to remove the headers
    to avoid the error.
    
    Closes #9141
    
    PR Close #45210
    maddielynklein authored and dylhunn committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    d43c0e9 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    bf98c64 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2022

  1. fix(compiler): scope css keyframes in emulated view encapsulation (#4…

    …2608)
    
    Ensure that keyframes rules, defined within components with emulated
    view encapsulation, are scoped to avoid collisions with keyframes in
    other components.
    
    This is achieved by renaming these keyframes to add a prefix that makes
    them unique across the application.
    
    In order to enable the handling of keyframes names defined as strings
    the previous strategy of replacing quoted css content with `%QUOTED%`
    (introduced in commit 7f689a2) has been removed and in its place now
    only specific characters inside quotes are being replaced with
    placeholder text (those are `;`, `:` and `,`, more can be added in
    the future if the need arises).
    
    Closes #33885
    
    BREAKING CHANGE:
    
    Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:
    
       @Keyframes foo { ... }
    
    will become:
    
       @Keyframes host-my-cmp_foo { ... }
    
    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.
    
    The recommended solutions in this case are to either:
    - change the component's view encapsulation to the `None` or `ShadowDom`
    - define keyframes rules in global stylesheets (e.g styles.css)
    - define keyframes rules programmatically in code.
    
    PR Close #42608
    dario-piotrowicz authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    f03e313 View commit details
    Browse the repository at this point in the history
  2. Revert "fix(compiler): scope css keyframes in emulated view encapsula…

    …tion (#42608)" (#45466)
    
    This reverts commit f03e313.
    
    PR Close #45466
    dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    801d11d View commit details
    Browse the repository at this point in the history
  3. docs: adjust contributing, developing and overview markdown files (#4…

    …5464)
    
    Adjust the contributing, developing and overview markdown files based on the new repository location angular/angular
    
    PR Close #45464
    rxmic authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    6e4cb48 View commit details
    Browse the repository at this point in the history
  4. fix(docs-infra): remove navigation role to aio-top-menu ul (#45209)

    currently the navigation ul used in aio-top-menu has a role of
    navigation, but listitems should be owned by list parents
    (see more: https://www.w3.org/TR/wai-aria-1.1/#listitem)
    so wrap the ul in a nav and remove the role="navigation" from the
    ul element to fix such issue
    
    resolves #44562
    resolves #16938 (the second point)
    
    PR Close #45209
    dario-piotrowicz authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    7ef0717 View commit details
    Browse the repository at this point in the history
  5. fix(docs-infra): wrap the main aio mat-toolbar in a header (#45209)

    wrap the main aio mat-toolbar in a header element to provide better
    accessibility
    
    resolves #16938 (the first point)
    
    PR Close #45209
    dario-piotrowicz authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    be5dce2 View commit details
    Browse the repository at this point in the history
  6. fix(docs-infra): remove redundant main roles (#45209)

    remove redundant main role as pages should always have a
    single element with a main role (also remove the role assigne
    to the main tag as that is implied)
    
    PR Close #45209
    dario-piotrowicz authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    734bd8d View commit details
    Browse the repository at this point in the history
  7. fix(docs-infra): assign different aria labels to main aio navs (#45209)

    assign different aria labels to the primary nav and the one used for
    guides and docs, so that impaired users can more easily distinguish the
    two
    
    PR Close #45209
    dario-piotrowicz authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    0fc4571 View commit details
    Browse the repository at this point in the history
  8. fix(docs-infra): update a11y min-scores (#45209)

    update (decrease) the value of some of the accessibility MIN_SCORES_PER_PAGE
    after recent changes
    
    PR Close #45209
    dario-piotrowicz authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    16e635c View commit details
    Browse the repository at this point in the history
  9. build: update angular (#45461)

    PR Close #45461
    renovate-bot authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    468c776 View commit details
    Browse the repository at this point in the history
  10. test: update api goldens to reflect api-golden bazel rule change (#45461

    )
    
    The API golden Bazel rule has changed in the shared dev-infra code. Instead
    of putting golden API reports into the golden folder as per their original
    location in the NPM package, golden reports are now stored based on the
    package exports. This makes it more obvious how entry-points are consumable
    
    As part of this change, since the API golden rule now consutls the NPM package
    `exports` field, the `localize/tools` entry-point golden file is now generated.
    
    Previously it wasn't generated due to it not having a secondary entry-point
    `package.json` file. Such package json files should not be needed anymore
    and will be gone in future APF versions.
    
    PR Close #45461
    devversion authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    209a73e View commit details
    Browse the repository at this point in the history
  11. test: update aio payload size golden to reflect Angular update (#45461)

    Updates the AIO payload size goldens to reflect the Angular update
    affecting both the `aio` and `aio_local` build (due to CLI devkit
    changes affecting both goldens, and the Angular update also affecting
    the non-local `aio` build / job).
    
    Overall, the Material themes got a little larger, but this is
    not caused by the framwork, so not relevant here.
    
    PR Close #45461
    devversion authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    6e1fce5 View commit details
    Browse the repository at this point in the history
  12. refactor(compiler-cli): remove NgModule tracking from scope data (#44973

    )
    
    Before the `SemanticSymbol` system which now powers incremental compilation,
    the compiler previously needed to track which NgModules contributed to the
    scope of a component in order to recompile correctly if something changed.
    This commit removes that legacy field (which had no consumers) as well as the
    logic to populate it.
    
    PR Close #44973
    alxhub authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    f027bfb View commit details
    Browse the repository at this point in the history
  13. fix(compiler-cli): better error messages for NgModule structural issu…

    …es (#44973)
    
    This commit improves the error messages generated by the compiler when NgModule
    scope analysis finds structural issues within a compilation. In particular,
    errors are now shown on a node within the metadata of the NgModule which
    produced the error, as opposed to the node of the erroneous declaration/import/
    export. For example, if an NgModule declares `declarations: [FooCmp]` and
    `FooCmp` is not annotated as a directive, component, or pipe, the error is now
    shown on the reference to `FooCmp` in the `declarations` array expression.
    Previously, the error would have been shown on `FooCmp` itself, with a mention
    in the error text of the NgModule name.
    
    Additional error context in some cases has been moved to related information
    attached to the diagnostic, which further improves the legibility of such
    errors. Error text has also been adjusted to be more succinct, since more info
    about the error is now delivered through context.
    
    PR Close #44973
    alxhub authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    3d13343 View commit details
    Browse the repository at this point in the history
  14. refactor(compiler-cli): move error for declaring standalone things (#…

    …44973)
    
    This commit moves the error for declaring a standalone directive/component/
    pipe to the `LocalModuleScopeRegistry`. Previously the error was produced
    by the `NgModuleHandler` directly.
    
    Producing the error in the scope registry allows the scope to be marked as
    poisoned when the error occurs, preventing spurious downstream errors from
    surfacing.
    
    PR Close #44973
    alxhub authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    60ef6e5 View commit details
    Browse the repository at this point in the history
  15. test(compiler-cli): split standalone tests into component & module te…

    …sts (#44973)
    
    This just helps organize the standalone tests a little bit.
    
    PR Close #44973
    alxhub authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    459766b View commit details
    Browse the repository at this point in the history
  16. feat(compiler-cli): standalone types imported into NgModule scopes (#…

    …44973)
    
    This commit implements the next step of Angular's "standalone" functionality,
    by allowing directives/components/pipes declared as `standalone` to be imported
    into NgModules. Errors are raised when such a type is not standalone but is
    included in an NgModule's imports.
    
    PR Close #44973
    alxhub authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    6f653e0 View commit details
    Browse the repository at this point in the history
  17. feat(compiler-cli): propagate standalone flag to runtime (#44973)

    This commit carries the `standalone` flag forward from a directive/pipe
    into its generated directive/pipe definition, allowing the runtime to
    recognize standalone entities.
    
    PR Close #44973
    alxhub authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    2142ffd View commit details
    Browse the repository at this point in the history
  18. build: update all non-major dependencies (#45374)

    PR Close #45374
    renovate-bot authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    e55e98d View commit details
    Browse the repository at this point in the history
  19. refactor(compiler-cli): rename ShimLocation to TcbLocation (#45454)

    Inline type check blocks (TCBs) are emitted into the original source file, but
    node positions would still be represented as a `ShimLocation` with a `shimPath`
    corresponding with the type-checking shim file. This results in inconsistencies,
    as the `positionInShimFile` field of `ShimLocation` would not correspond with
    the `shimPath` of that `ShimLocation`.
    
    This commit is a precursor to letting `ShimLocation` also represent the correct
    location for inline type check blocks, by renaming the interface to
    `TcbLocation`. A followup commit addresses the actual inconsistency.
    
    PR Close #45454
    JoostK authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    b2758d7 View commit details
    Browse the repository at this point in the history
  20. refactor(compiler-cli): track whether a TcbPosition corresponds wit…

    …h a shim file (#45454)
    
    Extends `TcbPosition` with a field that indicates whether the `tcbPath` is a
    type-checking shim file, or an original source file with an inline type check
    block.
    
    This field is used in an upcoming commit that fixes an inconsistency with how
    inline type check blocks are incorrectly interpreted as a type-checking shim
    file instead.
    
    PR Close #45454
    JoostK authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    ff32301 View commit details
    Browse the repository at this point in the history
  21. fix(compiler-cli): handle inline type-check blocks in nullish coalesc…

    …ing extended check (#45454)
    
    This commit fixes an inconsistency where a type check location for an inline
    type check block would be interpreted to occur in a type-checking shim instead.
    This resulted in a missing template mapping, causing a crash due to an unsafe
    non-null assertion operator.
    
    In the prior commit the `TcbLocation` has been extended with an `isShimFile`
    field that is now being used to look for the template mapping in the correct
    location. Additionally, the non-null assertion operator is refactored such
    that a missing template mapping will now ignore the warning instead of crashing
    the compiler.
    
    Fixes #45413
    
    PR Close #45454
    JoostK authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    06050ac View commit details
    Browse the repository at this point in the history
  22. docs: add notification to support ukraine (#45376)

    PR Close #45376
    zverbeta authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    099fedc View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    8e09445 View commit details
    Browse the repository at this point in the history
  24. fix(docs-infra): implement focus trap for aio search results (#44989)

    currently if a user tries to navigate via keyboard, once the are
    presented with search results, the search results panel remains
    present and can potentially hide most of the content on the page,
    in such case keyboard navigation will be severly hindered and
    the only option for the user would be to go back to the seach input
    text and clear its value, fix such inconvenience by looping the
    focus in the header area close to the search results and the
    results panel itself
    
    note: an alternative implementation using the cdkTrapFocus has been
    attempted in PR #45194, such alternative implementation presented a
    number of (minor) drawbacks (including the increase main bundle size
    due to the inclusion of the A11yModule), so it was agreed to proceed
    with the manual implementation present in these changes instead.
    
    PR Close #44989
    dario-piotrowicz authored and dylhunn committed Mar 29, 2022
    Configuration menu
    Copy the full SHA
    7d94923 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2022

  1. docs: add Rangle's Angular Training book (#45076)

    PR Close #45076
    wgcorrea authored and dylhunn committed Mar 30, 2022
    Configuration menu
    Copy the full SHA
    eb9dd8d View commit details
    Browse the repository at this point in the history
  2. Update aio/content/marketing/resources.json (#45076)

    Co-authored-by: Alan Agius <[email protected]>
    PR Close #45076
    wgcorrea authored and dylhunn committed Mar 30, 2022
    Configuration menu
    Copy the full SHA
    82956dc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e1e440d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    115aafb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2b12959 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2022

  1. Configuration menu
    Copy the full SHA
    99154cf View commit details
    Browse the repository at this point in the history
  2. docs: fix typo in CHANGELOG.md (#45494)

    Fix typo
    
    PR Close #45494
    chabb authored and AndrewKushnir committed Mar 31, 2022
    Configuration menu
    Copy the full SHA
    71e9068 View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2022

  1. docs: add details about ssr efforts (#45500)

    PR Close #45500
    mgechev authored and AndrewKushnir committed Apr 1, 2022
    Configuration menu
    Copy the full SHA
    085d94e View commit details
    Browse the repository at this point in the history
  2. docs: change roadmap updated date (#45500)

    PR Close #45500
    mgechev authored and AndrewKushnir committed Apr 1, 2022
    Configuration menu
    Copy the full SHA
    8b1a2f1 View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2022

  1. docs: add animations to readme file (#45488)

    Updated readme file for adding animations topic in advance topics of Angular
    
    PR Close #45488
    Piyush132000 authored and AndrewKushnir committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    c0c18b7 View commit details
    Browse the repository at this point in the history
  2. fix(docs-infra): update Angular packages to latest minor version (#45502

    )
    
    This is needed because Angular CLI 13.3 contains fixes that are needed for Stackblitz Node 16 to compile Sass. We also added `copyfiles` in `aio/tools/examples/shared/package.json` as `yarn sync-deps` was failing due to the missing dependency.
    
    PR Close #45502
    alan-agius4 authored and AndrewKushnir committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    b2d0652 View commit details
    Browse the repository at this point in the history
  3. build(docs-infra): upgrade cli command docs sources to 0e8f3c34b (#45511

    )
    
    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@c0a0bfb...0e8f3c3):
    
    **Modified**
    - help/update.json
    
    PR Close #45511
    gkalpak authored and AndrewKushnir committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    adf4b6d View commit details
    Browse the repository at this point in the history
  4. refactor(core): validate element is known in JIT mode (#45492)

    Renames, simplifies and documents the function in charge of validating if an element is known in JIT mode.
    
    PR Close #45492
    cexbrayat authored and AndrewKushnir committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    5aeaedf View commit details
    Browse the repository at this point in the history
  5. feat(migrations): Add migration to add explicit Route/Routes type (

    …#45084)
    
    Places that use `pathMatch` need an explicit `Route` or `Routes` type on
    the variable so TypeScript does not infer the type as just 'string'.
    
    PR Close #45084
    atscott authored and AndrewKushnir committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    d56a537 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    035ba83 View commit details
    Browse the repository at this point in the history

Commits on Apr 5, 2022

  1. fix(animations): handle structured AnimateTimings (#31107)

    This commit makes sure structured AnimateTimings are not procesed any further when building the AST.
    
    Fixes: #22752
    
    PR Close #31107
    chrisguttandin authored and AndrewKushnir committed Apr 5, 2022
    Configuration menu
    Copy the full SHA
    29d3891 View commit details
    Browse the repository at this point in the history
  2. test(animations): add test for buildAnimationAst() function (#31107)

    This commit adds a test for the buildAnimationAst() function.
    
    PR Close #31107
    chrisguttandin authored and AndrewKushnir committed Apr 5, 2022
    Configuration menu
    Copy the full SHA
    a3f344f View commit details
    Browse the repository at this point in the history
  3. fix(router): merge interited resolved data and static data (#45276)

    in layers
    
    Right now route static data are collected from its parents based on the logic
    described in `inheritedParamsDataResolve()`, merged into a single object
    and then merged again with merged data from resolvers. This means that a
    child's data can be overriden by a resolver in its parent (#34361).
    However, what is the expected behavior is not described in the documentation.
    This PR changes this behavior and merges static data and resolved data
    in "layers" (route by route) so child's static data and resolved data
    cannot be overriden by their parents.
    
    Fixes #34361
    
    PR Close #45276
    martinsik authored and AndrewKushnir committed Apr 5, 2022
    Configuration menu
    Copy the full SHA
    1c11a57 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2022

  1. Configuration menu
    Copy the full SHA
    d4270d2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f1a2816 View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2022

  1. fix(docs-infra): add shell to the list of code-example languages re…

    …cognized as cli commands (#45551)
    
    Previously, only `language="sh"` and `language="bash"` would be
    recognized (and formatted) as cli commands in `<code-example>`.
    
    This commit adds `shell` to the list of languages recognized as cli
    commands.
    
    (NOTE: This will fix the [CI failures][1] in #45325.)
    
    [1]: https://circleci.com/gh/angular/angular/1145559
    
    PR Close #45551
    gkalpak authored and thePunderWoman committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    24649b9 View commit details
    Browse the repository at this point in the history
  2. test(docs-infra): ufix e2e test for {@example} dgeni tags (#45551)

    Previously, the `guide/compoent-style` page was used in e2e tests to
    verify the behavior of `{@example}` dgeni tags. However, this guide has
    been updated and no longer contains an `{@example}` tag.
    
    This commit switches to using a different page (`api/common/NgIf`) that
    does currently contain an `{@example}` tag.
    
    (NOTE: This will also fix the [CI failures][1] in #45501.)
    
    [1]: https://circleci.com/gh/angular/angular/1145424
    
    PR Close #45551
    gkalpak authored and thePunderWoman committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    b57f8be View commit details
    Browse the repository at this point in the history
  3. docs(forms): add value to formControl for better demonstration of req…

    …uiredTrue validator (#45533)
    
    in the validators documentation, the value for the formControl for both required and requiredTrue validators is an empty string. This is OK for required since it gives us an error. But I think if we set the value of formControl responsible for requiredTrue to something other than an empty string (e.g.: 'some value'), it would demonstrate the difference between required and requiredTrue better.
    
    PR Close #45533
    Hossein13M authored and thePunderWoman committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    b1d0683 View commit details
    Browse the repository at this point in the history
  4. docs(forms): remove the incorrect set value from previous commit (#45533

    )
    
    in the validators documentation, the value for the formControl for both required and requiredTrue validators is an empty string. This is OK for required since it gives us an error. But I think if we set the value of formControl responsible for requiredTrue to something other than an empty string (e.g.: 'some value'), it would demonstrate the difference between required and requiredTrue better.
    
    PR Close #45533
    Hossein13M authored and thePunderWoman committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    5adfe8e View commit details
    Browse the repository at this point in the history
  5. fix(router): Remove any from LoadChildrenCallback type (#45524)

    The `LoadChildrenCallback` type previously included `any` in the
    possible return value union for `Promise`. This is too loose and should
    be restricted to values that are actually supported.
    
    BREAKING CHANGE: When returning a `Promise` from the
    `LoadChildrenCallback`, the possible type is now restricted to
    `Type<any>|NgModuleFactory<any>` rather than `any`.
    
    PR Close #45524
    atscott authored and thePunderWoman committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    f8f3ab3 View commit details
    Browse the repository at this point in the history
  6. docs: remove out-of-order <h3> elements from footer (#45510)

    The footer uses `h3` elements out of order, which causes a "Heading
    elements are not in a sequentially-descending order" a11y error.
    Replace the `h3` elements with `div` to improve a11y.
    
    Fixes #44338
    
    PR Close #45510
    gkalpak authored and thePunderWoman committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    2a81e44 View commit details
    Browse the repository at this point in the history
  7. refactor(core): validate property (#45528)

    Simplifies and documents the `validateProperty` function (in a similar fashion that #45492 simplified `validateElementIsKnown`).
    
    PR Close #45528
    cexbrayat authored and thePunderWoman committed Apr 7, 2022
    Configuration menu
    Copy the full SHA
    60b5a3d View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2022

  1. build: update to jasmine 4.0 (#45558)

    Updates us to version 4.0 of Jasmine and fixes some errors that were the result of us depending upon deprecated APIs. We need to do this both to stay up to date and because it was going to break eventually, because one of the Bazel packages was logging a deprecation warning that version 4.0 was required.
    
    There were also some cases where the state of `ngDevMode` had started leaking out between tests.
    
    PR Close #45558
    crisbeto authored and thePunderWoman committed Apr 8, 2022
    Configuration menu
    Copy the full SHA
    a248df0 View commit details
    Browse the repository at this point in the history
  2. Revert "build: update to jasmine 4.0 (#45558)" (#45566)

    This reverts commit a248df0.
    
    PR Close #45566
    thePunderWoman committed Apr 8, 2022
    Configuration menu
    Copy the full SHA
    7a37fe9 View commit details
    Browse the repository at this point in the history
  3. docs: improve markdown (#45325)

    The purpose of the changes is to clean all markdown to match a single pedantic style.
    
    *   To ensure all changes in style are properly separated.
    *   To ensure all styled content aligns to nearest 4-character-tab.
    *   To ensure all code blocks use the Angular `<code-example>` or `<code-tab>` elements.
    *   To ensure all markdown exists outside of html tags.
    *   To ensure all images use the Angular style for `<img>` elements.
    *   To ensure that all smart punctuation is replaced or removed.
    
        ```text
        ’, ’, “, ”, –, —, …
        ```
    
    *   To ensure all content does not conflict with the following reserved characters.
    
        ```text
        @, $, *, &, #, |, <, >,
        ```
    
    *   To ensure all content displays using html entities.
    
    The following changes were made to files in the following directory.
    
    ```text
    aio/content
    ```
    
    The target files were markdown files.
    The list of excluded files:
    
    ```text
    .browserslistrc, .css, .conf, .editorconfig, .gitignore, .html, .js, .json, .sh, .svg, .ts, .txt, .xlf,
    ```
    
    PR Close #45325
    josmar-crwdstffng authored and thePunderWoman committed Apr 8, 2022
    Configuration menu
    Copy the full SHA
    42289f2 View commit details
    Browse the repository at this point in the history
  4. docs: apply suggestions from code review (#45325)

    Apply editorial suggestions for peer review.
    
    Co-authored-by: Tiffany Davis <[email protected]>
    
    PR Close #45325
    josmar-crwdstffng authored and thePunderWoman committed Apr 8, 2022
    Configuration menu
    Copy the full SHA
    bf1294b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e0ac614 View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2022

  1. Configuration menu
    Copy the full SHA
    b96d6ea View commit details
    Browse the repository at this point in the history
  2. build: fix typo in package.json file comment (#45569)

    Change comment in scripts section of package.json
    
    PR Close #45569
    mmaterowski authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    4c1ce82 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a6bf2c5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    20fbb4c View commit details
    Browse the repository at this point in the history
  5. build: update pullapprove to assign caretakers to renovate PRs (#44866)

    Automatically assign renovate generated PRs to the current caretakers.
    
    PR Close #44866
    josephperrott authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    0fed2ba View commit details
    Browse the repository at this point in the history
  6. build: refactor global approvals to be done via overrides, adding dev…

    …-infra global approvers (#44866)
    
    Add dev-infra global approver support and change global approval management to be done via
    overrides.  By using overrides to determine global approval status, we can safely ignore
    the concept of global approval in all of the other group management.
    
    PR Close #44866
    josephperrott authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    8d85f24 View commit details
    Browse the repository at this point in the history
  7. build: update to jasmine 4.0 (#45558)

    Updates us to version 4.0 of Jasmine and fixes some errors that were the result of us depending upon deprecated APIs. We need to do this both to stay up to date and because it was going to break eventually, because one of the Bazel packages was logging a deprecation warning that version 4.0 was required.
    
    There were also some cases where the state of `ngDevMode` had started leaking out between tests.
    
    PR Close #45558
    crisbeto authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    41223a8 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    b13a453 View commit details
    Browse the repository at this point in the history
  9. feat(animations): make validateStyleProperty check dev-mode only (#45570

    )
    
    make the validateStyleProperty check dev-mode only so that it is
    consistent with the validateAnimatableStyleProperty check introduced in
    PR #45212
    
    besides consistency this change also reduces the payload size and
    increases performance (since less logic is executed)
    
    original conversation: #45212 (comment)
    
    PR Close #45570
    dario-piotrowicz authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    a6fa37b View commit details
    Browse the repository at this point in the history
  10. refactor(animations): use full ngDevMode check in animatable prop val…

    …idation (#45570)
    
    in the `validateAnimatableStyleProperty` function use the more complete
    check for the ngDevMode as it seems to be the preferred version
    (see: #45212 (comment))
    
    PR Close #45570
    dario-piotrowicz authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    9572bb2 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    f1630bb View commit details
    Browse the repository at this point in the history
  12. refactor(router): Add warning for relativeLinkResolution: 'legacy' (#…

    …45523)
    
    This change adds code to compute the corrected value for a link,
    regardless of the `relativeLinkResolution` value. Then, if the
    `relativeLinkResolution` is set to `legacy` and differs from the correct
    value, a warning is printed to the console in dev mode.
    
    This change is meant to assist in notifying developers that they have
    code which relies on the deprecated, broken behavior so they can fix and
    update the code before the `relativeLinkResolution` option is fully
    removed.
    
    PR Close #45523
    atscott authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    d180db1 View commit details
    Browse the repository at this point in the history
  13. build: update all non-major dependencies (#45470)

    Updates all non-major dependencies, including Bazel
    
    PR Close #45470
    renovate-bot authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    48b8a1f View commit details
    Browse the repository at this point in the history
  14. feat(bazel): allow for generated package.json files in ng_package (

    …#45470)
    
    Currently the `ng_package` rule does not support generated
    `package.json` files. Generated `package.json` files are sometimes
    useful when e.g. dependencies are automatically inserted (e.g.
    many dependencies in the components repo for the MDC deps)
    
    Currently the `package.json` files would be copied as part of
    the `data` attribute, but they would not be processed. i.e. missing
    out on the `exports` field and more.
    
    We can simplify the rule attributes and make this more ergonomic.
    
    PR Close #45470
    devversion authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    636909f View commit details
    Browse the repository at this point in the history
  15. feat(bazel): report error when dependency does not provide JS sources…

    … in `ng_package` (#45470)
    
    Non-JavaScript source-providing targets in the `ng_package` rule can throw-off
    the entry-point detection and therefore should be flagged. Currently e.g.
    a genrule-generated static file might unnecessarily cause additional
    actions to be generated (non-breaking but just unnecessary)
    
    PR Close #45470
    devversion authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    28e835b View commit details
    Browse the repository at this point in the history
  16. fix(bazel): remove unnecessary file extractions from ng_package (#4…

    …5470)
    
    Looks like there is some old legacy code for extracting files
    from NPM packages. This is already captured by the unscoped
    ESM2020 output extraction.
    
    PR Close #45470
    devversion authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    4b2e98d View commit details
    Browse the repository at this point in the history
  17. refactor(bazel): fix dts bundling by accounting for api-extractor cha…

    …nge (#45470)
    
    Fixes the dts bundling by accounting for recent API extractor changes
    which made API-extractor support path mappings. This causes
    cross-package and cross-entry-point imports to no longer be considered
    external, resulting in the imports to be dropped.
    
    PR Close #45470
    devversion authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    1219c5a View commit details
    Browse the repository at this point in the history
  18. build: update bazel integration test to RNJ v5.4.0 and Sass 1.50.0 (#…

    …45470)
    
    Updates Bazel integration to RNJ v5.4.0. This is needed since it relies
    on Angular Bazel which now relies on an internal pkg_npm helper breaking
    change.
    
    PR Close #45470
    devversion authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    0facba5 View commit details
    Browse the repository at this point in the history
  19. refactor(animations): include pushUnrecognizedPropertiesWarning in ng…

    …DevMode check (#45591)
    
    the check for unsupported CSS properties has been made dev-mode-only in
    PR #45570, so the check for the unsupportedCSSPRopertiesFound can be
    moved inside a ngDevMode check so that more code can be treeshaken away
    
    PR Close #45591
    dario-piotrowicz authored and thePunderWoman committed Apr 11, 2022
    Configuration menu
    Copy the full SHA
    3fceba4 View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2022

  1. Revert "refactor(router): Add warning for `relativeLinkResolution: 'l…

    …egacy'` (#45523)" (#45594)
    
    This reverts commit d180db1.
    
    PR Close #45594
    thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    d11d1c0 View commit details
    Browse the repository at this point in the history
  2. feat(forms): Implement strict types for the Angular Forms package. (#…

    …43834)
    
    This PR strongly types the forms package by adding generics to AbstractControl classes as well as FormBuilder. This makes forms type-safe and null-safe, for both controls and values.
    
    The design uses a "control-types" approach. In other words, the type parameter on FormGroup is an object containing controls, and the type parameter on FormArray is an array of controls.
    
    Special thanks to Alex Rickabaugh and Andrew Kushnir for co-design & implementation, to Sonu Kapoor and Netanel Basal for illustrative prior art, and to Cédric Exbrayat for extensive testing and validation.
    
    BREAKING CHANGE: Forms classes accept a generic.
    
    Forms model classes now accept a generic type parameter. Untyped versions of these classes are available to opt-out of the new, stricter behavior.
    
    PR Close #43834
    dylhunn authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    89d2991 View commit details
    Browse the repository at this point in the history
  3. docs: fix schematicCollections option (#45602)

    PR Close #45602
    leosvelperez authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    222d866 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    eb2f449 View commit details
    Browse the repository at this point in the history
  5. feat(devtools): adding firefox support for devtools (#44952)

    Adding Firefox support for Angular DevTools.
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    e231d3c View commit details
    Browse the repository at this point in the history
  6. docs(devtools): adding firefox development documentation (#44952)

    Adding DevTools documentation for Firefox.
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    60f2cfd View commit details
    Browse the repository at this point in the history
  7. feat(devtools): updating firefox manifest json file (#44952)

    Updating `manifest.json` file for firefox.
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    2b73d95 View commit details
    Browse the repository at this point in the history
  8. docs(devtools): updating firefox development documentation (#44952)

    Updating Firefox DevTools documentation to be more descriptive and removing images.
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    47ceffc View commit details
    Browse the repository at this point in the history
  9. feat(devtools): dynamic build support for devtools (#44952)

    * Updating build to support both browsers firefox & chrome.
    * Added new `config_setting` to support build.
    * Added new genrule `copy_manifest` to `prodapp` pkg_web.
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    d54d1fd View commit details
    Browse the repository at this point in the history
  10. feat(devtools): renaming shell-chrome (#44952)

    Renaming `shell-chrome` to `shell-browser` contains the build that supports both browsers.
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    ceb19c0 View commit details
    Browse the repository at this point in the history
  11. docs(devtools): updating firefox documentation (#44952)

    Updating dist path to load Firefox DevTools
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    9f1bcc7 View commit details
    Browse the repository at this point in the history
  12. feat(devtools): adding firefox support (#44952)

    * Updating manifest.json to new build structure
    * Adding doctype to pages to remove warnings
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    bc0b6fe View commit details
    Browse the repository at this point in the history
  13. feat(devtools): added string flag for browser support (#44952)

    * Added `flag_browser` to toggle between different browser builds chrome and firefox
    * Updated build command to support new flag configuration
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    e589bc6 View commit details
    Browse the repository at this point in the history
  14. docs(devtools): updating firefox documentation (#44952)

    updating typo
    
    PR Close #44952
    sumitarora authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    b5f39c5 View commit details
    Browse the repository at this point in the history
  15. fix(platform-browser): remove obsolete shim for Map comparison in Jas…

    …mine (#45521)
    
    Angular now uses Jasmine 2.8 as a minimum version (required by
    protractor; most of it is using ^3.5.0 which currently resolves to
    3.99.0), which makes this shim obsolete - all versions of Jasmine used
    have Map comparison built in.
    
    This shim causes problems for custom equality checkers - when using a
    Map containing types needing a custom equality check, this  fails
    because the call to `jasmine.matchersUtil.equals` from the shim does not
    use any of the custom equality matchers.
    
    PR Close #45521
    Samuel Littley authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    c7bf75d View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    6532328 View commit details
    Browse the repository at this point in the history
  17. docs: add powershell execution policies note (#45576)

    Fixes #44598
    
    PR Close #45576
    rxmic authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    79de026 View commit details
    Browse the repository at this point in the history
  18. docs: fix final code review section codetabs path (#45604)

    Fix paths for codetabs in final review section messed up by this commit 42289f2
    They were all pointing to `heroes-search.component`
    PR Close #45604
    4javier authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    0528b47 View commit details
    Browse the repository at this point in the history
  19. docs: fix path typo (#45604)

    PR Close #45604
    4javier authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    ee3cfc8 View commit details
    Browse the repository at this point in the history
  20. docs: pipes custom data transform (#45505)

    PR Close #45505
    trekladyone authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    0d6325b View commit details
    Browse the repository at this point in the history
  21. docs: new Pipes custom data doc (#45505)

    PR Close #45505
    trekladyone authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    83920af View commit details
    Browse the repository at this point in the history
  22. build: update dependency glob to v8 (#45598)

    PR Close #45598
    renovate-bot authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    820077d View commit details
    Browse the repository at this point in the history
  23. refactor(core): remove duplicated code in change_detection_util (#45599)

    Removes duplicated code in change_detection_util and reorganizes imports to use utils module.
    
    PR Close #45599
    mmaterowski authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    663d477 View commit details
    Browse the repository at this point in the history
  24. build: only allow renovate to run on Monday nights (#45605)

    By running renovate once a week, we can consolidate all the updates into a single weekly PR, before each Wednesday release. That will significantly reduce the burden on caretakers, and make patch ports less onerous.
    
    PR Close #45605
    dylhunn authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    8d7351d View commit details
    Browse the repository at this point in the history
  25. docs: make tutorial instructions consistent (#45372)

    When starting this tutorial, it's not clear to the user whether they should add routing right away, Etc. The other tutorials within the routing section do a better job of this.
    
    Also.. the suggested name of this sample app clashes with that of a previous tutorial, forcing the user to either delete the previous tutorial files, choose a different name for this tutorial's app, or place this app in a different parent directory.
     Conflicts:
    	aio/content/guide/router-tutorial-toh.md
    
    PR Close #45372
    Jason Hendee authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    3c1695e View commit details
    Browse the repository at this point in the history
  26. refactor(core): make platform core providers tree-shakable (#45506)

    This commit refactors the set of hardcoded platform core providers into tree-shakable providers.
    In addition to making them tree-shakable, this would also avoid the need to rely on the platform creation logic in an upcoming bootstrap logic for Standalone Components.
    
    PR Close #45506
    AndrewKushnir authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    f38c344 View commit details
    Browse the repository at this point in the history
  27. refactor(core): make ComponentFactoryResolver lazily instantiated in …

    …ApplicationRef (#45507)
    
    This commit removes the `ComponentFactoryResolver` as a constructor argument of the `ApplicationRef` class. This makes it lazily instantiated + simplifies further refactoring in a context of Standalone Components.
    
    PR Close #45507
    AndrewKushnir authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    89ed8d8 View commit details
    Browse the repository at this point in the history
  28. refactor(core): remove deprecated aotSummaries fields in TestBed co…

    …nfig (#45487)
    
    BREAKING CHANGE:
    
    Since Ivy, TestBed doesn't use AOT summaries. The `aotSummaries` fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. The `aotSummaries` fields were completely unused, so you can just drop them from the TestBed APIs usage.
    
    PR Close #45487
    AndrewKushnir authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    9add714 View commit details
    Browse the repository at this point in the history
  29. docs: update template reference variables (#45455)

    - Specify `NgForm` gets applied by default on `<form>` elements before the long example using it
    - Move the strange (and questioned in a commented line) snippet about undefined ref vars in a standalone paragraph and clarify its meanings (adding the part about directive just because there was something similar already there)
    - Extend and modify `*ngFor` example, since in the original that was misleading to think reference variable couldn't be used inside a loop
    - Remove two lines stating that with `*ngIf` and `*ngFor` the framework cannot know if a template is ever instantiated (can't see how this relate with the page)
    - Add an explanation of assignment of default `$implicit` value to undefined input variables
    - Modify template example for template input variable to be a complete ngForOf loop instead of the original poor intelligible truncated one
    - Replace last generic statements about variable namespaces with a more pragmatic and explanatory one concerning the resolution in case of homonymy
    
    PR Close #45455
    4javier authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    b9e7983 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    062fa76 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    9e86a31 View commit details
    Browse the repository at this point in the history
  32. docs: fix grammar (#45455)

    PR Close #45455
    4javier authored and thePunderWoman committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    a6ab3f7 View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2022

  1. Configuration menu
    Copy the full SHA
    7bf1cf4 View commit details
    Browse the repository at this point in the history
  2. fix(compiler): avoid errors with extremely long instruction chains (#…

    …45574)
    
    Our logic for generating code from an AST uses recursion which limits the number of expressions we can nest before we reach the call stack limit. These changes add a limit in order to avoid errors in some cases where the chains become extremely long.
    
    Fixes #45564.
    
    PR Close #45574
    crisbeto authored and thePunderWoman committed Apr 13, 2022
    Configuration menu
    Copy the full SHA
    598b759 View commit details
    Browse the repository at this point in the history
  3. refactor(router): Add warning for relativeLinkResolution: 'legacy' (#…

    …45523)
    
    This change adds code to compute the corrected value for a link,
    regardless of the `relativeLinkResolution` value. Then, if the
    `relativeLinkResolution` is set to `legacy` and differs from the correct
    value, a warning is printed to the console in dev mode.
    
    This change is meant to assist in notifying developers that they have
    code which relies on the deprecated, broken behavior so they can fix and
    update the code before the `relativeLinkResolution` option is fully
    removed.
    
    PR Close #45523
    atscott authored and thePunderWoman committed Apr 13, 2022
    Configuration menu
    Copy the full SHA
    47e7a28 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0f8e181 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fbbed3d View commit details
    Browse the repository at this point in the history
  6. refactor(core): avoid referencing PlatformRef in bootstrap code (#4…

    …5519)
    
    This commit updates an existing bootstrap logic to avoid referencing the `PlatformRef` instance to keep track of the platform status. Instead, we use platform injector, so that the `PlatformRef`can be tree-shaken away in the bootstrap logic for Standalone Components.
    
    The motivation for this change is that retaining the `PlatformRef` class also retains NgModule-based bootstrap code, which would not be needed in case of Standalone Components.
    
    PR Close #45519
    AndrewKushnir authored and dylhunn committed Apr 13, 2022
    Configuration menu
    Copy the full SHA
    e250db4 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2022

  1. refactor(router): combine functions for getting loaded config (#45613)

    There are two functions which do the same thing and are meant to search
    for the closest loaded config in the `ActivatedRouteSnapshot` parent
    tree. These can be combined to reduce code duplication.
    
    One difference in the current implementation is the early exit for the
    implementation in `activate_routes` when `route.component` is defined.
    This early exit takes advantage of the fact that the component must then
    also have a `RouterOutlet`, which injects `ComponentFactoryResolver`,
    which would end up being the same one as what would be found if we
    continued to look up the parent tree. This is only a tiny optimization
    that will actually break when we add `providers` as a feature to the
    `Route` config. In this scenario, we _must_ find the correct injector
    in the parent routes and cannot rely on a parent `RouterOutlet` since
    there may be some route with a providers list in between.
    
    PR Close #45613
    atscott authored and dylhunn committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    000363e View commit details
    Browse the repository at this point in the history
  2. fix(bazel): do not error if files part of srcs are outside of packa…

    …ge (#45622)
    
    We recently refactored how the ng package rule deals with static files.
    As part of this refactoring, transitive files outside of the current
    Bazel package were flagged as errors, while previously this was just
    ignored. We need to revert back this behavior (even though code remains
    much simpler and predicable now) since sass library targets for example
    reference all transtive files in the default info and break packages then
    
    PR Close #45622
    devversion authored and dylhunn committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    f8a1ea0 View commit details
    Browse the repository at this point in the history
  3. feat(forms): Add a FormRecord type. (#45607)

    As part of the typed forms RFC, we proposed the creation of a new FormRecord type, to support dynamic groups with homogenous values. This PR introduces FormRecord, as a subclass of FormGroup.
    
    PR Close #45607
    dylhunn committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    e0a2248 View commit details
    Browse the repository at this point in the history
  4. docs(core): fix typo in View Encapsulation code example (#45629)

    Fix closing tag name to match opening one (`</hero-detail>` -->
    `<hero-details>`).
    
    PR Close #45629
    gkalpak authored and dylhunn committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    94fba9b View commit details
    Browse the repository at this point in the history
  5. build(docs-infra): upgrade cli command docs sources to 5bd17a256 (#45630

    )
    
    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@0e8f3c3...5bd17a2):
    
    **Added**
    - help/completion.json
    
    PR Close #45630
    gkalpak authored and dylhunn committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    2f08b80 View commit details
    Browse the repository at this point in the history
  6. docs: move old changelog entries to a separate file (#45638)

    This commit moves all release notes for everything before v11.0.0 to a separate file, so that the changelog can be rendered correctly via GitHub UI.
    
    Closes #45635.
    
    PR Close #45638
    AndrewKushnir authored and dylhunn committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    6444a02 View commit details
    Browse the repository at this point in the history
  7. build: update all non-major dependencies (#45632)

    PR Close #45632
    renovate-bot authored and dylhunn committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    7d2a619 View commit details
    Browse the repository at this point in the history
  8. docs: fix typo (#45637)

    Replace wrong mention of 'heroService.delete()' with 'heroService.deleteHero()' because 'heroService.delete()' doesn't exist and 'heroService.deleteHero()' should be mentioned instead
    
    Resolves #45636
    
    PR Close #45637
    Ilya Marchik authored and dylhunn committed Apr 14, 2022
    Configuration menu
    Copy the full SHA
    b5b0a50 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2022

  1. Configuration menu
    Copy the full SHA
    770ea92 View commit details
    Browse the repository at this point in the history
  2. perf(router): cancel the navigation instantly if at least one resolve…

    …r doesn't emit any value (#45621)
    
    Recently the navigation was on hold even at least one resolver didn't emit any value and completed, but another ones still are in progress to resolve any value. The changes cancel the navigation instantly if at least one resolver doesn't emit any value and completed.
    
    PR Close #45621
    dimakuba authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    f13295f View commit details
    Browse the repository at this point in the history
  3. fix(router): validate lazy loaded configs (#45526)

    Lazy loaded configs are not validated at runtime like the initial set of
    routes are. This change also validates lazy loaded configs right after
    they're loaded.
    
    BREAKING CHANGE: Lazy loaded configs are now also validated once loaded like the
    initial set of routes are. Lazy loaded modules which have invalid Route
    configs will now error. Note that this is only done in dev mode so
    there is no production impact of this change.
    
    Fixes #25431
    
    PR Close #45526
    atscott authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    96fd29c View commit details
    Browse the repository at this point in the history
  4. test(core): add a test for multiple named interpolations with the sam…

    …e name (#45651)
    
    The test from this commit verifies that i18n logic can handle multiple named interpolations with the same name.
    
    PR Close #45651
    AndrewKushnir authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    2e97312 View commit details
    Browse the repository at this point in the history
  5. fix(core): improve multiple components match error (#45645)

    This commit improves the error message that is thrown at runtime when multiple components match the same element. Now the error message contains names of classes that represent those components.
    
    PR Close #45645
    AndrewKushnir authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    c6e0e3f View commit details
    Browse the repository at this point in the history
  6. fix(language-service): two-way binding completion should not remove t…

    …he trailing quote (#45582)
    
    We allow the path to contain both the `t.BoundAttribute` and `t.BoundEvent` for two-way
    bindings but do not want the path to contain both the `t.BoundAttribute` with its
    children when the position is in the value span because we would then logically create a path
    that also contains the `PropertyWrite` from the `t.BoundEvent`. This early return condition
    ensures we target just `t.BoundAttribute` for this case and exclude `t.BoundEvent` children.
    
    Fixes angular/vscode-ng-language-service#1626
    
    PR Close #45582
    ivanwonder authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    f57e46c View commit details
    Browse the repository at this point in the history
  7. feat(docs-infra): add close button to search-results aio panel (#45579)

    add a close button to the search-results aio panel so that the user can
    conveniently close it via keyboard
    
    this complements the focus trap implemented in PR #44989
    (more here: #44989 (comment))
    
    PR Close #45579
    dario-piotrowicz authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    d2436bf View commit details
    Browse the repository at this point in the history
  8. fix(docs-infra): amend notification close button aria-label (#45579)

    move the aria-label used inside the close-button to the button itself
    (since otherwise the button's aria-label overrides the childs)
    
    PR Close #45579
    dario-piotrowicz authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    9e69579 View commit details
    Browse the repository at this point in the history
  9. fix(docs-infra): fix aio search-results issue with toolbar and notifi…

    …cation (#45579)
    
    use border-top-width instead of padding-top as the strategy for moving
    the search-results panel down, this fixes the issue of the panel going
    behind the toolbar (which causes either overlapping text in the home
    page or the results scrollbar to be hidden behind the toolbar in other
    pages)
    
    PR Close #45579
    dario-piotrowicz authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    0b64072 View commit details
    Browse the repository at this point in the history
  10. build: lock file maintenance (#45457)

    PR Close #45457
    renovate-bot authored and dylhunn committed Apr 15, 2022
    Configuration menu
    Copy the full SHA
    6835710 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2022

  1. fix(devtools): clean up menu layout (#45665)

    The menus weren't using the `mat-menu` component correctly which had led to some inconsistent spacing and the need for style overrides. These changes correctly wrap the menu content in `mat-menu-item` which has the added benefit of having keyboard support. I had to keep some of the overrides in order to preserve the dense layout of the menus.
    
    I've also cleaned up the component by:
    * Removing some unnecessary styles.
    * Switching single-class usages of `ngClass` to `class.` bindings.
    * Not using `br` tags for spacing.
    
    PR Close #45665
    crisbeto authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    b29b95b View commit details
    Browse the repository at this point in the history
  2. fix(core): better error message when directive extends a component (#…

    …45658)
    
    We throw an error when a directive is trying to extend a component, but we don't actually say which class is responsible which can be difficult to track down. These changes add the two class names to the error message.
    
    PR Close #45658
    crisbeto authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    57f8ab2 View commit details
    Browse the repository at this point in the history
  3. ci: add more reviewers to the docs-packaging-and-releasing group (#…

    …45652)
    
    Currently that group has just 2 reviewers, but we often update the files that belong to that group during the deprecation period. Adding more people would allow to balance the reviews better.
    
    PR Close #45652
    AndrewKushnir authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    8c83f12 View commit details
    Browse the repository at this point in the history
  4. refactor(compiler): add original_code to goog.getMsg() options (#…

    …45606)
    
    This links back each placeholder in a message to the original Angular template span which defines its expression. This is useful for understanding where each placeholder comes from in the context of the full message.
    
    PR Close #45606
    dgp1130 authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    1fe255c View commit details
    Browse the repository at this point in the history
  5. test(core): fix a crosstalk issue with locale ids (#45626)

    Previously there was a test ordering issue with the application_module_spec
    tests where the value of `getLocaleId()` depended on the order in which
    tests ran. Specifically, `setLocaleId()` lower-cases the current locale ID,
    so the measured value in a test depended on whether a previous test had
    called `setLocaleId()` (the difference between 'en-US' and 'en-us').
    
    PR Close #45626
    alxhub authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    a5a7fbc View commit details
    Browse the repository at this point in the history
  6. feat(core): implement importProvidersFrom function (#45626)

    This commit implements the `importProvidersFrom` function that allows
    extracting a list of `Provider`s from a list of NgModule types. The
    R3Injector which implements DI at the "module" level for Angular is
    refactored to use this functionality under the hood.
    
    This commit also implements `INJECTOR_INITIALIZER`, a DI multi-provider
    token which is used to run initialization logic when an injector is created.
    
    PR Close #45626
    AndrewKushnir authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    b568a5e View commit details
    Browse the repository at this point in the history
  7. feat(core): implement EnvironmentInjector with adapter to NgModuleRef (

    …#45626)
    
    This commit exposes a new `EnvironmentInjector` abstraction, which
    generalizes the "module injector" concept to injectors that are not based on
    NgModules.
    
    An EnvironmentInjector is a conceptual analogue of an `NgModuleRef` - it
    represents an injector on the former "module" DI hierarchy in Angular (now
    renamed to the "environment injector hierarchy"). Environment injectors are
    created via the `createEnvironmentInjector` function from a list of
    `Provider`s.
    
    For backwards compatibility with current code using `NgModuleRef`,
    `EnvironmentInjector`s are wrapped by an adapter `NgModuleRef`
    implementation, so injecting `NgModuleRef` always returns the latest
    `EnvironmentInjector`, even if that injector was not based on an NgModule.
    Conversely, NgModule-based `NgModuleRef`s created via `createNgModuleRef`
    are _also_ `EnvironmentInjector`s.
    
    PR Close #45626
    alxhub authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    d5a6cd1 View commit details
    Browse the repository at this point in the history
  8. refactor(core): internally support providedIn: environment (#45626)

    This commit adds a new internal scope to `R3Injector` for
    `EnvironmentInjector`s specifically. This will allow us to scope services to
    the environment side of the injector hierarchy specifically, as opposed to
    the `'any'` scope which also includes view-side injectors created via
    `Injector.create`. For now, this functionality is not exposed publicly, but
    is available to use within `@angular/core` only.
    
    PR Close #45626
    alxhub authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    3578e94 View commit details
    Browse the repository at this point in the history
  9. refactor(router): Refactor loaded config to track injectors rather th…

    …an `NgModuleRef` (#45593)
    
    The `Injector` is really the piece of information that the `Router` is
    interested in keeping track of. Storing the `NgModuleRef` is somewhat
    confusing based on how it's used later on. `RouterOutlet` uses it for the
    `componentFactoryResolver`, but this is not needed anymore (and deprecated). In
    fact, we can get back to the `NgModuleRef` anyways using the injector.
    For now, that's what this change does. A different refactor will remove
    the use of the `componentFactoryResolver` altogether.
    
    Additionally, in the standalone world, we plan to implement a feature to
    allow defining `providers` directly on the `Route`. This means there
    won't be an associated `NgModuleRef` so this refactor prepares for that
    feature.
    
    PR Close #45593
    atscott authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    d9f550c View commit details
    Browse the repository at this point in the history
  10. refactor(router): unbundle the lazy loaded routes from the lazy loade…

    …d module injector (#45593)
    
    In the standalone world, these concepts will no longer be one and the
    same. You can load routes without them being inside an `NgModule` with
    `RouterModule.forChild`. In addition, routes will be able to define
    their own providers, which will be included in an injector that is not
    necessarily lazy loaded.
    
    PR Close #45593
    atscott authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    eb7661c View commit details
    Browse the repository at this point in the history
  11. refactor(router): Use EnvironmentInjector for lazy loading APIs (#4…

    …5671)
    
    The `EnvironmentInjector` should be used instead of `Injector` for the
    lazy loading. A future refactor will further update `RouterOutlet` to
    use this injector to create the component rather the deprecated
    `ComponentFactoryResolver`.
    
    PR Close #45671
    atscott authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    aa966fd View commit details
    Browse the repository at this point in the history
  12. feat(core): add ApplicationRef.destroy method (#45624)

    This commit implements the `destroy` method on the `ApplicationRef` class. This feature is a preparation for the new logic to bootstrap (and teardown) standalone components (without going through the `NgModuleRef` destroy), which would return an instance of the `ApplicationRef` (the current bootstrap APIs return an instance of the `NgModuleRef`).
    
    PR Close #45624
    AndrewKushnir authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    174ce7d View commit details
    Browse the repository at this point in the history
  13. docs: fix mdn links (#45666)

    PR Close #45666
    kaznovac authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    3477364 View commit details
    Browse the repository at this point in the history
  14. docs: use language agnostic mdn urls (#45666)

    PR Close #45666
    kaznovac authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    ec5cb0b View commit details
    Browse the repository at this point in the history
  15. refactor(router): Move config loader tracking to the RouterConfigLoad…

    …er (#45656)
    
    This wasn't exactly possible before because the `RouterConfigLoader` was
    not an Injectable so there wasn't a straightforward way to share
    information between `ApplyRedirects` and the preloader. They each had
    their own implementation so they needed to store the values on the
    `Route` so they both had access to them. I imagine this was the case
    because trying to inject `Router` (to get access to the events) into the
    preloader would have caused a circular dependency.
    
    This refactor co-locates the loading details with the loader itself
    rather than leaking implementation into the public route config and
    mutating the object in an awkward way. This also promotes
    `RouterConfigLoader` to a proper `Injectable` so data can be shared
    throughout the system.
    
    PR Close #45656
    atscott authored and dylhunn committed Apr 18, 2022
    Configuration menu
    Copy the full SHA
    ea8256f View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2022

  1. test: reset counters before running a styling test (#45670)

    This commit updates one of the styling tests to reset perf counters, making it order-independent and non-flaky (previously the test got random failures depending on whether there are other tests invoked before).
    
    PR Close #45670
    AndrewKushnir authored and dylhunn committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    63202b9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f5299a3 View commit details
    Browse the repository at this point in the history
  3. build: don't assign jelbourn to most review categories (#45668)

    Configure pullapprove to not automatically assign jelbourn to most review categories.
    
    PR Close #45668
    jelbourn authored and dylhunn committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    c6feb0a View commit details
    Browse the repository at this point in the history
  4. docs(common): fix links to locales in i18n guides (#45661)

    In PR #42230, the locale file generation process was modified so that
    generated locale files are no longer checked into the repository. Update
    a few links in the docs that pointed to the previously checked in files
    to point to other places where the files exist.
    
    PR Close #45661
    gkalpak authored and dylhunn committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    ceffded View commit details
    Browse the repository at this point in the history
  5. Fix typo (#45680)

    PR Close #45680
    skamble89 authored and dylhunn committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    5d15595 View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2022

  1. test(common): Fix flaky Location test (#45683)

    This test has proven to be flaky. This commit greatly simplifies the
    test and moves it to a more appropriate location (pun intended).
    
    PR Close #45683
    atscott authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    6c4d9eb View commit details
    Browse the repository at this point in the history
  2. build: preparation for primary branch rename in the Angular repos (#4…

    …5681)
    
    Preparation for the framework repo as outlined our planning
    document.
    
    PR Close #45681
    devversion authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    0231a36 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    89f9d28 View commit details
    Browse the repository at this point in the history
  4. docs: Update aio/content/guide/setup-local.md (#45644)

    Co-authored-by: George Kalpakas <[email protected]>
    PR Close #45644
    mangalrajg authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    4ad7c2e View commit details
    Browse the repository at this point in the history
  5. fix(router): Remove unused string type for ActivatedRoute.component (#…

    …45625)
    
    BREAKING CHANGE:
    The type of `component` on `ActivatedRoute` and `ActivatedRouteSnapshot`
    includes `string`. In reality, this is not the case. The component
    cannot be anything other than a component class.
    
    PR Close #45625
    atscott authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    989e840 View commit details
    Browse the repository at this point in the history
  6. fix(compiler-cli): fix issue with incremental tracking of APIs for pi…

    …pes (#45672)
    
    `PipeSymbol` contains logic to detect changes in the public API surface of
    pipes, which includes the pipe name. However, the pipe handler inadvertently
    uses the pipe class name instead of the actual pipe name to initialize the
    `PipeSymbol`, which breaks incremental compilation when pipe names change.
    
    There is a test which attempts to verify that this logic is working, but the
    test actually passes for a different reason. The test swaps the names of 2
    pipes that are both used in a component, and asserts that the component is
    re-emitted, theoretically because the public APIs of the pipes is changed.
    However, the emit order of the references to the pipes depends on the order
    in which they match in the template, which changes when the names are
    swapped. This ordering dependency is picked up by the semantic dependency
    tracking system, and is what actually causes the component to be re-emitted
    and therefore the pipe test to pass in spite of the bug with name tracking.
    
    This commit fixes the `PipeSymbol` initialization to use the correct pipe
    name. The test is still flawed in that it's sensitive to the ordering of
    pipe emits, but this ordering is due to change soon as a result of the
    standalone components work, so this issue will be resolved in a future
    commit.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    046dad1 View commit details
    Browse the repository at this point in the history
  7. refactor(core): change component emit to 'dependencies' (#45672)

    Previously, the compiler would represent template dependencies of a
    component in its component definition through separate fields (`directives`,
    `pipes`).
    
    This commit refactors the compiler/runtime interface to use a single field
    (`dependencies`). The runtime component definition object still has separate
    `directiveDefs` and `pipeDefs`, which are calculated from the `dependencies`
    when the definition is evaluated.
    
    This change is also reflected in partially compiled declarations. To ensure
    compatibility with partially compiled code already on NPM, the linker
    will still honor the old form of declaration (with separate fields).
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    1527e8f View commit details
    Browse the repository at this point in the history
  8. refactor(compiler-cli): unify tracked template scope dependencies (#4…

    …5672)
    
    Previously, the compiler tracked directives and pipes in template scopes
    separately. This commit refactors the scope system to unify them into a
    single data structure, disambiguated by a `kind` field.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    9b35787 View commit details
    Browse the repository at this point in the history
  9. refactor(compiler-cli): emit NgModule dependencies of standalone comp…

    …onents (#45672)
    
    This commit expands on the unified dependency tracking in the previous
    commit and adds tracking of NgModule dependencies. These are not used for
    standard components, but are emitted for standalone components to allow the
    runtime to roll up providers from those NgModules into standalone injectors.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    f9f8ef9 View commit details
    Browse the repository at this point in the history
  10. refactor(compiler-cli): emit StandaloneFeature for standalone compone…

    …nts (#45672)
    
    This commit adds an emit for standalone components of the
    `StandaloneFeature`, which will support creation of standalone injectors and
    any other mechanisms necessary for standalone component functionality at
    runtime.
    
    Using a feature allows for standalone functionality to be tree-shaken in
    applications that aren't using them.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    d8086a1 View commit details
    Browse the repository at this point in the history
  11. refactor(compiler-cli): move standalone scope computation out of hand…

    …ler (#45672)
    
    Standalone component scopes were first implemented in the
    `ComponentDecoratorHandler` itself, due to an assumption that "standalone"
    allowed for a localized analysis of the component's dependencies. However,
    this is not strictly true. Other compiler machinery also needs to understand
    component scopes, including standalone component scopes. A good example is
    the template type-checking engine, which uses a `ComponentScopeReader` to
    build full metadata objects (that is, metadata that considers the entire
    inheritance chain) for type-checking purposes. Therefore, the
    `ComponentScopeReader` should be able to give the scope for a standalone
    component.
    
    To achieve this, a new `StandaloneComponentScopeReader` is implemented, and
    the return type of `ComponentScopeReader.getScopeForComponent` is expanded
    to express standalone scopes. This cleanly integrates the "standalone"
    concept into the existing machinery.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    1244a14 View commit details
    Browse the repository at this point in the history
  12. refactor(compiler-cli): emit isStandalone flag in partial declarations (

    #45672)
    
    This commit propagates the `isStandalone` flag for a component, directive,
    or pipe during partial compilation of a standalone declaration. This flag
    allows the linker to properly process a standalone declaration that it
    encounters.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    99b3af4 View commit details
    Browse the repository at this point in the history
  13. test: set skipLibCheck on ngcc integration test (#45672)

    The ngcc integration test is in an awkward state: it's attempting to test
    that the current ngcc can process @angular/core at v12. We need to make a
    forwards-incompatible change to the typings of @angular/core, which means
    that the compiled typings from the current ngcc won't be compatible with
    core as of v12.
    
    To get around this and allow the integration test to have some value, we're
    disabling library checking for the time being.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    80d2cda View commit details
    Browse the repository at this point in the history
  14. refactor(compiler-cli): propagate standalone flag in .d.ts metadata (#…

    …45672)
    
    This commit adds a type field to .d.ts metadata for directives, components,
    and pipes which carries a boolean literal indicating whether the given type
    is standalone or not. For backwards compatibility, this flag defaults to
    `false`.
    
    Tests are added to validate that standalone types coming from .d.ts files
    can be correctly imported into new standalone components.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    d3c0fa3 View commit details
    Browse the repository at this point in the history
  15. test(compiler-cli): tests for standalone components/directives/pipes (#…

    …45672)
    
    This commit bundles tests for standalone components that are possible after
    previous implementation commits. Most new tests are compliance tests, but
    a test is also included to validate that the template type-checking system
    can work with standalone components as well.
    
    PR Close #45672
    alxhub committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    b8d3389 View commit details
    Browse the repository at this point in the history
  16. fix(http): encode + signs in query params as %2B (#11058) (#45111)

    Servers always decode + as a space, which is undesirable when one
    actually wants to query for a plus.
    
    BREAKING CHANGE:
    
    Queries including + will now actually query for + instead of space.
    Most workarounds involving custom codecs will be unaffected.
    Possible server-side workarounds will need to be undone.
    
    Fixes #11058
    
    PR Close #45111
    Clashsoft authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    76a9a24 View commit details
    Browse the repository at this point in the history
  17. test(http): Add + to encoding test (#45111)

    Changes the existing test for query parameter encoding to include the +
    symbol and its expected encoding to %2B.
    
    PR Close #45111
    Clashsoft authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    47e5b05 View commit details
    Browse the repository at this point in the history
  18. fix(docs-infra): avoid internal symbols from being referenced during …

    …auto-linking (#45689)
    
    This commit adds extra logic to avoid internal and privately exported symbols from being referenced during auto-linking. Currently such symbols can be used for linking, thus resulting in a non-existing link and causing the linking process to fail.
    
    PR Close #45689
    AndrewKushnir authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    788f587 View commit details
    Browse the repository at this point in the history
  19. fix(forms): Fix a typing bug in FormBuilder. (#45684)

    Previously, the following code would fail to compile:
    
    ```
    let form: FormGroup<{email: FormControl<string | null>}>;
    form = fb.group({
        email: ['', Validators.required]
    });
    ```
    
    This is because the compiler was unable to properly infer the inner type of `ControlConfig` arrays in some cases. The same issue applies to `FormArray` as well under certain circumstances.
    
    This change cleans up the `FormBuilder` type signatures to always use the explicit Element type, and to catch `ControlConfig` types that might fall through.
    
    PR Close #45684
    dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    ff3f5a8 View commit details
    Browse the repository at this point in the history
  20. ci: update payload size golden file (#45699)

    This commit updates the payload size for the Forms-related test app.
    The CI started to fail after merging ff3f5a8. The payload size increase is most likely accumulated.
    
    PR Close #45699
    AndrewKushnir authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    ba45428 View commit details
    Browse the repository at this point in the history
  21. feat(router): Add ability to specify providers on a Route (#45673)

    Currently, the only way to specify new providers for a `Route` and the
    children is to create a new `NgModule` with those providers and use the
    `loadChildren` feature. This is pretty confusing and a wholly indirect
    way of accomplishing this task. With this commit, developers will be
    able to specify a list of providers directly on the `Route` itself.
    These providers will apply the that route and its children.
    
    This feature was inspired by the upcoming standalone components feature.
    This ties in there because, as mentioned before, the prior art for lazy
    loading configs was to load an `NgModule`. This loaded module contained
    new route configs _and_ could specify new providers. Separating those
    two concepts, there should be a way to load _just_ some new routes, but
    there should also be a way to specify new providers as well (something
    you could do in the `NgModule` world and now will be able to do in the
    world without any `NgModule` through this feature).
    
    PR Close #45673
    atscott authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    4e0957a View commit details
    Browse the repository at this point in the history
  22. feat(router): Add EnvironmentInjector to RouterOutlet.activateWith (

    #45597)
    
    The current API for `activateWith` uses the deprecated
    `ComponentFactoryResolver`. The replacement for this is to use
    `EnvironmentInjector`. That is, instead of
    
    ```
    const factory = componentFactoryResolver.resolveComponentFactory(component);
    location.createComponent(factory, location.length, injector);
    ```
    
    the replacement would be
    
    ```
    location.createComponent(
        component, {index: location.length, injector, environmentInjector});
    ```
    
    PR Close #45597
    atscott authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    f4fd1a8 View commit details
    Browse the repository at this point in the history
  23. refactor(router): deprecate no longer needed resolver fields (#45597)

    DEPRECATED:
    
    The `resolver` argument of the `RouterOutletContract.activateWith` function and the `resolver` field of the `OutletContext` class are deprecated. Passing component factory resolvers are no longer needed. The `ComponentFactoryResolver`-related symbols were deprecated in `@angular/core` package since v13.
    
    PR Close #45597
    atscott authored and dylhunn committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    1d2f5c1 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    f14763e View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    d8226de View commit details
    Browse the repository at this point in the history
  26. feat(router): add ariaCurrentWhenActive input to RouterLinkActive dir…

    …ective (#45167)
    
    add the ariaCurrentWhenActive input to the RouterLinkActive directive so that
    users can easily set the aria-current property to their active router
    links
    
    resolves #35051
    
    PR Close #45167
    dario-piotrowicz authored and atscott committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    dea8c86 View commit details
    Browse the repository at this point in the history
  27. refactor(compiler-cli): reorganize importProvidersFrom to avoid cycles (

    #45687)
    
    This commit extracts the `importProvidersFrom` function and associated
    machinery into a separate file, as opposed to being colocated with
    `R3Injector`. Separating these functions will mitigate potential future
    circular dependencies as `importProvidersFrom` starts being used in
    different parts of the codebase.
    
    PR Close #45687
    alxhub authored and atscott committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    bb6e11c View commit details
    Browse the repository at this point in the history
  28. feat(core): implement standalone directives, components, and pipes (#…

    …45687)
    
    This commit exposes the `standalone` flag on `@Directive`, `@Component`, and
    `@Pipe`, effectively making standalone components a part of Angular's public
    API. As part of this operation, it also implements JIT compilation for
    standalone types.
    
    Standalone types are Angular-decorated types which act as their own
    "declarations", where they would otherwise be declared in an NgModule.
    Marking an Angular type as standalone means that it can be used directly in
    other standalone components and in NgModules, without needing an associated
    NgModule to depend on it. In the case of a standalone component, template
    dependencies which would otherwise be specified by an NgModule are instead
    specified directly on the component itself, via the `imports` field. Other
    standalone types can be imported, as well as NgModules.
    
    PR Close #45687
    alxhub authored and atscott committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    5a10fc4 View commit details
    Browse the repository at this point in the history
  29. refactor(core): support standalone components in importProvidersFrom (#…

    …45687)
    
    This commit refactors `importProvidersFrom` to support pulling providers
    from the dependencies of a standalone component, in addition to NgModules.
    Tests will be added in a future commit when standalone components can be
    created without calling private APIs.
    
    PR Close #45687
    alxhub authored and atscott committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    9f79513 View commit details
    Browse the repository at this point in the history
  30. refactor(core): implement standalone injectors (#45687)

    This commit implements the `StandaloneFeature` which provides for the
    creation of standalone injectors, for those components which need them. The
    feature-based implementation ensures the machinery for standalone injectors
    is properly tree-shakable.
    
    PR Close #45687
    pkozlowski-opensource authored and atscott committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    3616d7e View commit details
    Browse the repository at this point in the history
  31. test(core): add more tests for the standalone injector (#45687)

    This commit reorganizes the tests around the EnvironmentInjector and its use
    for standalone injectors, and adds a number of new test cases.
    
    PR Close #45687
    pkozlowski-opensource authored and atscott committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    e162fa3 View commit details
    Browse the repository at this point in the history
  32. docs(core): add API documentation to standalone-related classes (#45687)

    This commit adds some internal documentation.
    
    PR Close #45687
    pkozlowski-opensource authored and atscott committed Apr 20, 2022
    Configuration menu
    Copy the full SHA
    9e4c4bc View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2022

  1. fix(docs-infra): include tslib into SystemJS config in `upgrade-mod…

    …ule` example app (#45706)
    
    This commit updates the SystemJS for one of the example apps (the `upgrade-module` one) to include a resolution rule for the `tslib`. This is needed in case `tslib` is referenced from the framework code (for example in case of downleveling of some operators). This makes it consistent with other example app configs.
    
    PR Close #45706
    AndrewKushnir authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    9292953 View commit details
    Browse the repository at this point in the history
  2. fix(docs-infra): fix placement of "Edit source" button on errors and …

    …diagnostics pages (#45634)
    
    This commit aligns the layout of errors and extended diagnostics pages
    more closely with other docs pages to ensure that the "Edit source"
    button is displayed correctly even when the heading is too long to fit
    on a single line. For error pages, in particular, this ensures that the
    button is not obscured by the error video.
    
    **Before:**
    ![error-pages before][1]
    
    **After:**
    ![error-pages after][2]
    
    [1]: https://user-images.githubusercontent.com/8604205/163408291-7aebd029-891c-4045-8fa2-a8e2b2b06dab.png
    [2]: https://user-images.githubusercontent.com/8604205/163408296-40e6df8e-aadc-4a82-978a-ab4d902b6f6e.png
    
    PR Close #45634
    gkalpak authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    3dee3d1 View commit details
    Browse the repository at this point in the history
  3. feat(bazel): speed up dev-turnaround by bundling types only when pack…

    …aging (#45405)
    
    Speeds up the dev-turnaround by only bundling types when packaging. Currently
    bundling occurs for all the `ng_module` targets in devmode.
    
    This has various positive benefits:
    
    * Avoidance of this rather slower operation in development
    * Makes APF-built packages also handle types for `ts_library` targets consistently.
    * Allows us to ensure APF entry-points have `d.ts` _always_ bundled (working with ESM
    module resolution in TypeScript -- currently experimental)
    * Allows us to remove the secondary `package.json` files from APF (maybe APF v14? - seems
    low-impact). This would clean-up the APF even more and fix resolution issues (like in Vite)
    
    PR Close #45405
    devversion authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    68597bb View commit details
    Browse the repository at this point in the history
  4. test: add test for new types_bundle rule from Angular bazel package (

    …#45405)
    
    Adds a little golden test for the new `types_bundle` rule that ensures
    the rule works at a general level. This rule will be useful for non-APF
    ESM packages like the Angular compiler-cli (for which we also want to
    bundle types to make them compatible with TypeScripts ESM type
    resolution)
    
    PR Close #45405
    devversion authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    dd0fc0f View commit details
    Browse the repository at this point in the history
  5. refactor: fix duplication in platform-server NPM package (#45405)

    The platform-server init entry-point imported code from another
    entry-point using a relative import. This resulted in the code to be
    bundled into the `init` entry-point as well. This has no breaking
    impact but resulted in a little code duplication that we should
    clean up.
    
    PR Close #45405
    devversion authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    7a8a929 View commit details
    Browse the repository at this point in the history
  6. refactor(localize): init APF entry-point should not duplicate code (#…

    …45405)
    
    This commit addresses two issues:
    
    * The init entry-point currenly access code from another entry-point
      using relative imports, resulting in code to be duplicated.
    * The init types are now bundled as part of the ng_package APF rule.
      There is an API extractor bundling issue with global module
      augmentations.
    
    API extractor does not properly handle module augmentation. We need to disable
    dts bundling for this entry-point to ensure `$localize` remains globally accessible
    for users. This is an option in the `ng_package` rule.
    
    Note that this worked before because `localize/init` was a `ts_library` that did not
    have its types bundled.
    
    As part of this change, the `MessageId` and `TargetMessage` exports are
    also made public. The localize exported functions rely on these types but
    they were not exported.
    
    Related to types, an exception is added for three private exports from the primary
    entry-point so that they will show up in the API golden. These private
    exports are re-exposed publicly in the init entry-point but no golden
    would capture them due to the private symbol prefix. One might wonder
    why the symbols are not guarded in the init golden. The reason is that
    goldens never inline signatures from cross-entry-points/packages to avoid
    duplication.
    
    Lastly, the i18n integration test golden had to be updated because the
    polyfills bundle increased slightly. After thorough and time-consuming
    investigation, this mostly happens due to different mangle identifies
    being used (the input code changed --> so the mangling determinism)
    
    Size before this change:
    
    ```
    SUCCESS: Commit undefined uncompressed runtime did NOT cross size threshold of 500 bytes or >1% (expected: 929, actual: 926).
    SUCCESS: Commit undefined uncompressed main did NOT cross size threshold of 500 bytes or >1% (expected: 124544, actual: 124660).
    SUCCESS: Commit undefined uncompressed polyfills did NOT cross size threshold of 500 bytes or >1% (expected: 34530, actual: 34641).
    ```
    
    After:
    
    ```
    SUCCESS: Commit undefined uncompressed runtime did NOT cross size threshold of 500 bytes or >1% (expected: 929, actual: 926).
    SUCCESS: Commit undefined uncompressed main did NOT cross size threshold of 500 bytes or >1% (expected: 124544, actual: 124650).
    FAIL: Commit undefined uncompressed polyfills exceeded expected size by 500 bytes or >1% (expected: 34530, actual: 35252).
    ```
    
    Inspecting/comparing without mangling shows that the new changes would
    actually result in a bundle reduction (potentially visible with
    gzip/brotli):
    
    ```
    ➜  Desktop stat -f%z  master-nomangle.js
    101357
    ➜  Desktop stat -f%z  with-changes-nomangle.js
    101226
    ```
    
    PR Close #45405
    devversion authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    4c56c45 View commit details
    Browse the repository at this point in the history
  7. fix(localize): ensure transitively loaded compiler code is tree-shaka…

    …ble (#45405)
    
    The localize primary entry-point (used at runtime in application code)
    indirectly loads from the compiler package for computing message ids.
    The compiler package has a couple of constants which cannot be DCE-ded/
    tree-shaken due to side-effect reliance that is detected by Terser.
    
    We fix these constants to be three-shakable. Note that another issue
    technically would be that the compiler package has a side-effect call
    for `publishFacade` (for JIT), but that invocation is marked as pure by
    the Angular CLI babel optimization pipeline. So this results is no
    unused code currently but is risky and should be addressed in the future.
    
    PR Close #45405
    devversion authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    a50e2da View commit details
    Browse the repository at this point in the history
  8. build: update systemjs aio boilerplate to work with APF v13+ `exports…

    …` field (#45405)
    
    The SystemJS examples were using an outdated version of rollup that did
    not support export fields. Now with the recent changes where we removed
    secondary package.json files, the rather old/somewhat outdated SystemJS
    examples failed bundling since exports were not considered.
    
    PR Close #45405
    devversion authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    067e4c2 View commit details
    Browse the repository at this point in the history
  9. test: update size golden for hello-world-ivy-compat integration test (#…

    …45405)
    
    The main bundle fell below the 500b threshold. Likely because the
    global constant was fixed and is now tree-shakeable.
    
    The actual diff in the commit is a little confusing since it makes it
    seem that polyfills increased as part of this commit. This is not the
    case but just a side-effect of us accumulating various changes which
    are not reflected on a per-commit basis in the size golden.
    
    The actual sizes in master were:
    
    ```
    SUCCESS: Commit undefined uncompressed runtime did NOT cross size threshold of 500 bytes or >1% (expected: 1105, actual: 1102).
    
    SUCCESS: Commit undefined uncompressed polyfills did NOT cross size threshold of 500 bytes or >1% (expected: 33846, actual: 33957).
    
    SUCCESS: Commit undefined uncompressed main did NOT cross size threshold of 500 bytes or >1% (expected: 132392, actual: 131893).
    ```
    
    Now with this change:
    
    ```
    SUCCESS: Commit undefined uncompressed runtime did NOT cross size threshold of 500 bytes or >1% (expected: 1105, actual: 1102).
    
    SUCCESS: Commit undefined uncompressed polyfills did NOT cross size threshold of 500 bytes or >1% (expected: 33846, actual: 33957).
    
    FAIL: Commit undefined uncompressed main fell below expected size by 500 bytes or >1% (expected: 132392, actual: 131883).
    ```
    
    PR Close #45405
    devversion authored and atscott committed Apr 21, 2022
    Configuration menu
    Copy the full SHA
    612d6e0 View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2022

  1. feat(core): add the bootstrapApplication function (#45674)

    This commit implements the `bootstrapApplication` function that allows bootstrapping an application and pass a standalone component as a root component.
    
    PR Close #45674
    AndrewKushnir authored and atscott committed Apr 22, 2022
    Configuration menu
    Copy the full SHA
    5771b18 View commit details
    Browse the repository at this point in the history
  2. test(core): add integration test apps for the bootstrapApplication

    …API (#45674)
    
    This commit adds 2 integration apps to verify the `bootstrapApplication` API behavior as well as keep track of the bundle size and retained symbols (tree-shaking).
    
    PR Close #45674
    AndrewKushnir authored and atscott committed Apr 22, 2022
    Configuration menu
    Copy the full SHA
    3e46a42 View commit details
    Browse the repository at this point in the history
  3. feat(router): Allow loadChildren to return a Route array (#45700)

    This commit expands the `LoadChildrenCallback` to accept returning `Routes`
    in addition to the existing `NgModule` type. In addition, it adds a
    check to ensure these loaded routes all use standalone components.
    The components must be standalone because if they were not,
    we would not have the required `NgModule` which the component is declared in.
    
    Existing API:
    ```
    {path: 'lazy/route', loadChildren: import('./lazy').then(m => m.LazyModule)}
    
    @NgModule({
      imports: [
        ExtraCmpModule,
        RouterModule.forChild([
          {path: 'extra/route', component: ExtraCmp},
        ]),
      ],
    })
    export class LazyModule {}
    ```
    
    The new API for lazy loading route configs with standalone components
    (no NgModule) is to expand `loadChildren` to allow returning simply a `Routes` array.
    
    ```
    // parent.ts
    {
      path: 'parent',
      loadChildren: () => import('./children').then(m => m.ROUTES),
    }
    
    // children.ts
    export const ROUTES: Route[] = [
      {path: 'child', component: ChildCmp},
    ];
    ```
    
    Note that this includes minimal documentation updates. We need to
    include a holistic update to the documentation for standalone components
    in the future that includes this feature.
    
    PR Close #45700
    atscott committed Apr 22, 2022
    Configuration menu
    Copy the full SHA
    4962a4a View commit details
    Browse the repository at this point in the history
  4. fix(bazel): add this_is_bazel marker (#45728)

    Add marker for noting that this check confirms we are running in a bazel environment.
    
    PR Close #45728
    josephperrott authored and atscott committed Apr 22, 2022
    Configuration menu
    Copy the full SHA
    970a3b5 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2022

  1. feat(router): Support lazy loading standalone components with `loadCo…

    …mponent` (#45705)
    
    Similarly to the symmetry being strengthened between children and loadChildren,
    a new loadComponent property will be introduced as the asynchronous version of component.
    This will allow for direct single-component lazy loading:
    
    ```
    {path: 'lazy/a', loadComponent:
      () => import('./lazy/a.component').then(m => m.ACmp)},
    {path: 'lazy/b', loadComponent:
      () => import('./lazy/b.component').then(m => m.BCmp)},
    ```
    
    This option requires that the component being loaded is standalone and
    is implemented as a runtime check.
    
    Other notes:
    * Components are not loaded until all guards and resolvers complete.
    * Loading the component is included in the function passed to the router
      preloading strategy
    * `RouteConfigLoadStart` and `RouteConfigLoadEnd` events emit at the
      start and end of the component loading
    * `CanLoad` guards _do not_ apply to `loadComponent`. `canActivate`
      should be used instead, just like you would do if it were simply
      `component` instead.
    
    PR Close #45705
    atscott committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    50004c1 View commit details
    Browse the repository at this point in the history
  2. feat(common): add getState method to LocationStrategy interface (#45648)

    Adds getState to LocationStrategy interface as it suppose to be the place to control all window.location interactions.
    
    BREAKING CHANGE:
    Adds new required class member that any implementors of the LocationStrategy will need to satisfy.
    Location does not depend on PlatformLocation anymore.
    
    PR Close #45648
    mmaterowski authored and atscott committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    31d7c3b View commit details
    Browse the repository at this point in the history
  3. test(core): dynamic component creation and standalone injectors hiera…

    …rchy (#45726)
    
    This commits adds more tests around dynamic component creation and
    environement injectors hierarchy.
    
    PR Close #45726
    pkozlowski-opensource authored and atscott committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    7992132 View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2022

  1. refactor(compiler-cli): rework ForeignFunctionResolvers (#45701)

    This commit reworks the partial evaluation system's concept of a
    ForeignFunctionResolver. Previously, resolvers were expected to return a
    `ts.Expression` which the partial evaluator would continue evaluating,
    eventually returning a value.
    
    This works well for "transparent" foreign functions like `forwardRef`,
    but for things like `ModuleWithProviders` it breaks down, because the
    desired resolution value (the NgModule `Reference`) is _not_ the "correct"
    evaluation of the function call.
    
    To support better FFR implementations, this commit refactors the FFR system
    so that resolvers operate on the `ts.CallExpression` instead, and are
    given a callback to resolve further expressions if needed. If they cannot
    resolve a given call expression, they have an `unresolvable` value that they
    can return to indicate that.
    
    PR Close #45701
    alxhub authored and atscott committed Apr 26, 2022
    Configuration menu
    Copy the full SHA
    c614f31 View commit details
    Browse the repository at this point in the history
  2. refactor(compiler-cli): introduce ResolvedModuleWithProviders (#45701)

    This commit updates the `ForeignFunctionResolver` used by the NgModule
    handler to resolve `ModuleWithProvider` types. Previously, this resolver
    returned the NgModule `Reference` directly, but there are two problems with
    this:
    
    * It's not completely accurate, as the expression returned by the MWP call
      will not return the NgModule at runtime.
    * We need the ability to distinguish the MWP call itself from an ordinary
      NgModule reference in future optimizations.
    
    PR Close #45701
    alxhub authored and atscott committed Apr 26, 2022
    Configuration menu
    Copy the full SHA
    18db4ef View commit details
    Browse the repository at this point in the history
  3. refactor(compiler-cli): NgModule handler resolves imports individua…

    …lly (#45701)
    
    Previously, the NgModule handler would resolve the `imports` field as one
    unit, producing an array of `Reference`s. With this refactoring, if
    `imports` is a literal array, each individual element will be resolved
    independently. This will allow filtering in the future at the element level,
    since there will be a separate `ts.Expression` for each individual element.
    
    PR Close #45701
    alxhub authored and atscott committed Apr 26, 2022
    Configuration menu
    Copy the full SHA
    b0379c8 View commit details
    Browse the repository at this point in the history
  4. refactor(compiler-cli): optimize InjectorDef imports generation (#45701)

    Before standalone, everything that could appear in an NgModule's `imports`
    was relevant to DI, and needed to be emitted in the `imports` of the
    generated `InjectorDef` definition. With the introduction of standalone
    types, NgModule `imports` can now contain components, directives, and pipes
    which are standalone. Only standalone components need to be included in
    the `imports` of the generated injector definition - directives and pipes
    have no effect on DI. Having them present doesn't cause any errors in the
    runtime (they're filtered out by the injector itself) but it does prevent
    tree-shaking.
    
    With this commit, the generation of `InjectorDef` now filters the `imports`
    to exclude directives and pipes as much as possible. It's not _always_
    possible because an expression in `imports` may pull in both a directive and
    a `ModuleWithProviders` reference, and we have no way of referencing just
    the MWP part of that expression. Therefore this is an optimization, not a
    rule of `InjectorDef` compilation.
    
    PR Close #45701
    alxhub authored and atscott committed Apr 26, 2022
    Configuration menu
    Copy the full SHA
    4e0784c View commit details
    Browse the repository at this point in the history
  5. refactor(core): delay standalone component scoping in JIT (#45720)

    This commit moves standalone component scoping into the closures for
    `directiveDefs` and `pipeDefs` in JIT mode. This is necessary to support
    recursive standalone components, which necessarily use a `forwardRef` within
    their import cycle. Previously, the JIT compiler for standalone components
    attempted immediate `forwardRef` resolution, resulting in infinite recursion.
    
    PR Close #45720
    alxhub authored and atscott committed Apr 26, 2022
    Configuration menu
    Copy the full SHA
    284329e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9d755fa View commit details
    Browse the repository at this point in the history
  7. build: update tsec and drop corresponding postinstall patch (#45767)

    Updates tsec and drops the corresponding postinstall patch that
    we added when we updated to Bazel v5. See:
    
    google/tsec#25
    
    PR Close #45767
    devversion authored and atscott committed Apr 26, 2022
    Configuration menu
    Copy the full SHA
    f1cc4a6 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2022

  1. refactor(router): Remove unnecessary setTimeout in UrlTree redirects (#…

    …45735)
    
    Using `setTimeout` in the Router navigation pipeline creates fragile and
    unpredictable behavior. Additionally, it creates a new macrotask, which
    would trigger an unnecessary change detection in the application.
    
    This `setTimeout` was added in
    15e3978.
    Both tests added in that commit still pass. Additionally, the comment
    for _why_ the `setTimeout` was added doesn't really explain how the
    described bug would occur. There has been a lot of work in the Router
    since then to stabalize edge case scenarios so it's possible it existed
    before but doesn't anymore.
    
    Removing this `setTimeout` revealed tests that
    relied on the navigation not completing. For example, the test suite did
    not have a route which matched the redirect, but the test passed because
    it ended before the redirect was flushed, so the `Router` never threw an
    error. Similar situations exist for the other use of `setTimeout` in the Route
    (the one in the location change listener).
    There were no other failures in TGP other than incorrectly written
    tests.
    
    BREAKING CHANGE:
    When a guard returns a `UrlTree`, the router would previously schedule
    the redirect navigation within a `setTimeout`. This timeout is now removed,
    which can result in test failures due to incorrectly written tests.
    Tests which perform navigations should ensure that all timeouts are
    flushed before making assertions. Tests should ensure they are capable
    of handling all redirects from the original navigation.
    
    PR Close #45735
    atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    7b367d9 View commit details
    Browse the repository at this point in the history
  2. refactor(core): create a standalone injector during applicationBootst…

    …rap (#45766)
    
    This commit changes the injectors hiearchy created during applicationBootstrap.
    From now on a standalone injector (holding all the ambient providers of a
    standalone component) is create as a child of the application injector.
    This change alligns injectors hierarchy for bootstrapped and dynamically
    created standalone components.
    
    PR Close #45766
    pkozlowski-opensource authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    2b5c2d6 View commit details
    Browse the repository at this point in the history
  3. docs(upgrade): move import back into docregion in rollup-config.js (#…

    …45778)
    
    This was accidentally broken in #45405.
    
    PR Close #45778
    gkalpak authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    71f64f2 View commit details
    Browse the repository at this point in the history
  4. fix(docs-infra): fix alert child margin issue (#45761)

    replace the generic `*` selector used in the alert styling with
    `p` (which is what gets generated from the markdown) as the styling adds
    margins which are not always wanted
    
    PR Close #45761
    dario-piotrowicz authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    f282ca4 View commit details
    Browse the repository at this point in the history
  5. test(core): add more tests for the standalone components (#45709)

    Add more tests verifying the following conditions:
    - discovery of DI providers from exported NgModules
    - forwardRef in standalone component imports
    
    PR Close #45709
    pkozlowski-opensource authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    39c1681 View commit details
    Browse the repository at this point in the history
  6. refactor(core): move ModuleWithProviders type (#45722)

    This commit moves the ModuleWithProviders type from `metadata` to `di`, avoiding
    the need for `di` to reference `metadata` (in this particular case).
    
    PR Close #45722
    alxhub authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    3896f57 View commit details
    Browse the repository at this point in the history
  7. refactor(core): support ModuleWithProviders directly in `importProv…

    …idersFrom` (#45722)
    
    There were two problems with the `importProvidersFrom` function related to
    `ModuleWithProviders` values:
    
    * The public type did not accept `ModuleWithProviders` values directly.
    * The implementation of `walkProviderTree` delegates collection of MWP providers
      to its caller, in order for the ordering of such providers to be correct.
      However, `importProvidersFrom` was not performing that collection, causing MWP
      providers passed in at the top level to be dropped.
    
    PR Close #45722
    alxhub authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    882f595 View commit details
    Browse the repository at this point in the history
  8. docs: make sure aio home has a non-ignored h1 (#45740)

    currently the aio home page presents a single h1 which is ignored by
    assistive technologies since it has its display set none, so replace it
    with a new h1 containing the main text of the page instead
    
    PR Close #45740
    dario-piotrowicz authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    d1a9fd5 View commit details
    Browse the repository at this point in the history
  9. docs: use proper sections in aio home (#45740)

    convert the `div` groups in the aio home page
    to proper `section`s with a valid heading/title
    
    PR Close #45740
    dario-piotrowicz authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    a895da6 View commit details
    Browse the repository at this point in the history
  10. docs: empty alt of aio home decorative images (#45740)

    in the aio home page the sections' decorative images provide an alt
    texts, which shouldn't actually be present
    (see: https://www.w3.org/WAI/tutorials/images/decorative/), empty such
    alt text for a better user experience
    
    PR Close #45740
    dario-piotrowicz authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    7d8998c View commit details
    Browse the repository at this point in the history
  11. fix(devtools): inline loading svg (#45762)

    * inlined loading animation svg instead of using absolute url
    * removing unused assets folder from the build
    
    PR Close #45762
    sumitarora authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    2eb39c0 View commit details
    Browse the repository at this point in the history
  12. refactor(compiler-cli): support schemas in standalone components (#45752

    )
    
    This commit adds support for `@Component.schemas` in both JIT and AOT.
    
    PR Close #45752
    alxhub authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    3d45484 View commit details
    Browse the repository at this point in the history
  13. fix(compiler): scope css keyframes in emulated view encapsulation (#4…

    …2608)
    
    Ensure that keyframes rules, defined within components with emulated
    view encapsulation, are scoped to avoid collisions with keyframes in
    other components.
    
    This is achieved by renaming these keyframes to add a prefix that makes
    them unique across the application.
    
    In order to enable the handling of keyframes names defined as strings
    the previous strategy of replacing quoted css content with `%QUOTED%`
    (introduced in commit 7f689a2) has been removed and in its place now
    only specific characters inside quotes are being replaced with
    placeholder text (those are `;`, `:` and `,`, more can be added in
    the future if the need arises).
    
    Closes #33885
    
    BREAKING CHANGE:
    
    Keyframes names are now prefixed with the component's "scope name".
    For example, the following keyframes rule in a component definition,
    whose "scope name" is host-my-cmp:
    
       @Keyframes foo { ... }
    
    will become:
    
       @Keyframes host-my-cmp_foo { ... }
    
    Any TypeScript/JavaScript code which relied on the names of keyframes rules
    will no longer match.
    
    The recommended solutions in this case are to either:
    - change the component's view encapsulation to the `None` or `ShadowDom`
    - define keyframes rules in global stylesheets (e.g styles.css)
    - define keyframes rules programmatically in code.
    
    PR Close #42608
    dario-piotrowicz authored and atscott committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    4d6a1d6 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    c589e4d View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    b9a07d6 View commit details
    Browse the repository at this point in the history
  16. fix(core): Ensure the StandaloneService is retained after closure m…

    …inification (#45783)
    
    In order to survive closure minification correctly, static properties need to
    be annotated with @nocollapse.
    
    For more history, see #28050
    
    PR Close #45783
    atscott authored and dylhunn committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    f3eb7d9 View commit details
    Browse the repository at this point in the history
  17. Revert "fix(compiler): scope css keyframes in emulated view encapsula…

    …tion (#42608)" (#45786)
    
    This reverts commit 4d6a1d6.
    
    PR Close #45786
    dylhunn committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    58e8f4b View commit details
    Browse the repository at this point in the history
  18. fix(core): verify standalone component imports in JiT (#45777)

    This commits adds verifications assuring that items imported into
    standalone components are one of:
    - standalone component / directive / pipe;
    - NgModule;
    - forwardRef resolving to one of the above.
    It explicitly disallows modules with providers.
    
    PR Close #45777
    pkozlowski-opensource authored and dylhunn committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    aafac72 View commit details
    Browse the repository at this point in the history
  19. refactor(core): verify that standalone entities are not declared in N…

    …gModule (#45777)
    
    This commits adds JiT checks to verify that a standalone component, directive,
    pipe are not declared in any NgModule.
    
    PR Close #45777
    pkozlowski-opensource authored and dylhunn committed Apr 27, 2022
    Configuration menu
    Copy the full SHA
    2f5fd41 View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2022

  1. build(docs-infra): upgrade cli command docs sources to f258be5be (#45795

    )
    
    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@5bd17a2...f258be5):
    
    **Modified**
    - help/generate.json
    
    PR Close #45795
    gkalpak authored and dylhunn committed Apr 28, 2022
    Configuration menu
    Copy the full SHA
    14c4979 View commit details
    Browse the repository at this point in the history
  2. test(core): verify nested array in standalone component imports (#45794)

    This test verifies that nested arrays are supported in the standalone's
    component import field.
    
    PR Close #45794
    pkozlowski-opensource authored and dylhunn committed Apr 28, 2022
    Configuration menu
    Copy the full SHA
    2941793 View commit details
    Browse the repository at this point in the history
  3. fix(core): support nested arrays of providers in EnvironmentInjector (

    #45789)
    
    This commit updates the `EnvironmentInjector` logic to support arrays of providers as an argument(for example, when an injector is created via `createEnvironmentInjector` function).
    
    PR Close #45789
    AndrewKushnir authored and dylhunn committed Apr 28, 2022
    Configuration menu
    Copy the full SHA
    4e413d9 View commit details
    Browse the repository at this point in the history
  4. test(core): verify importProvidersFrom work correctly with `ModuleW…

    …ithProviders` (#45787)
    
    This commit adds a test to make sure the NgModule providers are collected correctly by the `importProvidersFrom` function when the `ModuleWithProviders` type is used and some providers are overridden.
    
    PR Close #45787
    AndrewKushnir authored and dylhunn committed Apr 28, 2022
    Configuration menu
    Copy the full SHA
    a097be9 View commit details
    Browse the repository at this point in the history
  5. build: lock file maintenance (#45751)

    PR Close #45751
    renovate-bot authored and dylhunn committed Apr 28, 2022
    Configuration menu
    Copy the full SHA
    0840ece View commit details
    Browse the repository at this point in the history
  6. refactor(core): do not allow standalone flag overrides via TestBed …

    …APIs (#45788)
    
    This commit adds a check into the TestBed APIs to throw an error if the `standalone` flag is overridden.
    
    PR Close #45788
    AndrewKushnir authored and dylhunn committed Apr 28, 2022
    Configuration menu
    Copy the full SHA
    8dda463 View commit details
    Browse the repository at this point in the history
  7. build: update dev-infra to latest snapshot (#45800)

    Updates dev-infra to the latest snapshot, supporting for the
    new migrate to main helper command.
    
    PR Close #45800
    devversion authored and josephperrott committed Apr 28, 2022
    Configuration menu
    Copy the full SHA
    b596a50 View commit details
    Browse the repository at this point in the history