https://github.com/angular/angular
- HEAD
- refs/heads/10.0.x
- refs/heads/10.1.x
- refs/heads/10.2.x
- refs/heads/11.0.x
- refs/heads/11.1.x
- refs/heads/11.2.x
- refs/heads/12.0.x
- refs/heads/12.1.x
- refs/heads/12.2.x
- refs/heads/12.3.x
- refs/heads/13.0.x
- refs/heads/13.1.x
- refs/heads/13.2.x
- refs/heads/13.3.x
- refs/heads/13.4.x
- refs/heads/14.0.x
- refs/heads/14.1.x
- refs/heads/14.2.x
- refs/heads/14.3.x
- refs/heads/15.0.x
- refs/heads/15.1.x
- refs/heads/15.2.x
- refs/heads/16.0.x
- refs/heads/16.1.x
- refs/heads/16.2.x
- refs/heads/17.0.x
- refs/heads/17.1.x
- refs/heads/17.2.x
- refs/heads/17.3.x
- refs/heads/18.0.x
- refs/heads/18.1.x
- refs/heads/2.0.x
- refs/heads/2.1.x
- refs/heads/2.2.x
- refs/heads/2.3.x
- refs/heads/2.4.x
- refs/heads/4.0.x
- refs/heads/4.1.x
- refs/heads/4.2.x
- refs/heads/4.3.x
- refs/heads/4.4.x
- refs/heads/5.0.x
- refs/heads/5.1.x
- refs/heads/5.2.x
- refs/heads/5.2x
- refs/heads/52695-improve-clarity-of-tutorial-intro
- refs/heads/53015-add-h1-for-skip-to-main-content
- refs/heads/55510/fix-security-guide-links
- refs/heads/55725-fix-visible-snippets
- refs/heads/6.0.x
- refs/heads/6.1.x
- refs/heads/7.0.x
- refs/heads/7.1.x
- refs/heads/7.2.x
- refs/heads/8.0.x
- refs/heads/8.1.x
- refs/heads/8.2.x
- refs/heads/9.0.x
- refs/heads/9.1.x
- refs/heads/JeanMeche-patch-1
- refs/heads/add-adev-docs
- refs/heads/add-ben-to-reviewers
- refs/heads/add-docs-script-command
- refs/heads/add-missing-border-on-editor
- refs/heads/backup-7.2.x
- refs/heads/bazel
- refs/heads/browser-update-test
- refs/heads/docs-developer-preview-fix
- refs/heads/docs/update-security-guide-reference
- refs/heads/dylhunn-patch-1
- refs/heads/dylhunn-zonejs-instructions
- refs/heads/fix-extra-padding-on-tutorial-editor
- refs/heads/fix-missing-security-guide
- refs/heads/fix-playground-spacing-issue
- refs/heads/g3
- refs/heads/image-directive-13.3.x
- refs/heads/in-depth-guides-refactor
- refs/heads/jperrott-test
- refs/heads/main
- refs/heads/publish-snapshots
- refs/heads/redirects-aio
- refs/heads/remove-aio-stuff
- refs/heads/remove-embedded-editor-from-first-app
- refs/heads/robots-aio
- refs/heads/saucelabs-bazel
- refs/heads/signals
- refs/heads/sonukapoor-patch-1
- refs/heads/styling-experiments
- refs/heads/twerske-patch-1
- refs/heads/twerske-patch-2
- refs/heads/twerske-v18-changelog
- refs/heads/update-dropdown-for-v18
- refs/heads/watch-burn-rates
- refs/heads/windows-executor-no-cache
- refs/remotes/presubmit-pr-2853
- refs/renovate/branches/renovate/core-js-3.x
- refs/renovate/branches/renovate/cross-repo-angular-dependencies
- refs/renovate/branches/renovate/firebase-tools-11.x
- refs/reviewable/pr1707/r1
- refs/reviewable/pr1855/r1
- refs/reviewable/pr1977/r1
- refs/reviewable/pr1995/r1
- refs/reviewable/pr2164/r1
- refs/reviewable/pr2218/r1
- refs/reviewable/pr2255/r1
- refs/reviewable/pr2257/r1
- refs/reviewable/pr2317/r1
- refs/reviewable/pr2337/r1
- refs/reviewable/pr2347/r1
- refs/reviewable/pr2407/r1
- refs/reviewable/pr2419/r1
- refs/reviewable/pr2419/r2
- refs/reviewable/pr2419/r3
- refs/reviewable/pr2463/r1
- refs/reviewable/pr2464/r1
- refs/reviewable/pr2464/r2
- refs/reviewable/pr2568/r1
- refs/reviewable/pr2573/r1
- refs/reviewable/pr2573/r2
- refs/reviewable/pr2587/r1
- refs/reviewable/pr2588/r1
- refs/reviewable/pr2593/r1
- refs/reviewable/pr2610/r1
- refs/reviewable/pr2634/r1
- refs/reviewable/pr2641/r1
- refs/reviewable/pr2658/r1
- refs/reviewable/pr2658/r2
- refs/reviewable/pr2665/r1
- refs/reviewable/pr2666/r1
- refs/reviewable/pr2666/r2
- refs/reviewable/pr2667/r1
- refs/reviewable/pr2668/r1
- refs/reviewable/pr2676/r1
- refs/reviewable/pr2679/r1
- refs/reviewable/pr2679/r2
- refs/reviewable/pr2690/r1
- refs/reviewable/pr2695/r1
- refs/reviewable/pr2695/r2
- refs/reviewable/pr2695/r3
- refs/reviewable/pr2699/r1
- refs/reviewable/pr2699/r2
- refs/reviewable/pr2699/r3
- refs/reviewable/pr2699/r4
- refs/reviewable/pr2699/r5
- refs/reviewable/pr2699/r6
- refs/reviewable/pr2703/r1
- refs/reviewable/pr2709/r1
- refs/reviewable/pr2709/r2
- refs/reviewable/pr2711/r1
- refs/reviewable/pr2711/r2
- refs/reviewable/pr2713/r1
- refs/reviewable/pr2713/r2
- refs/reviewable/pr2713/r3
- refs/reviewable/pr2714/r1
- refs/reviewable/pr2714/r2
- refs/reviewable/pr2714/r3
- refs/reviewable/pr2715/r1
- refs/reviewable/pr2715/r2
- refs/reviewable/pr2717/r1
- refs/reviewable/pr2717/r2
- refs/reviewable/pr2719/r1
- refs/reviewable/pr2729/r1
- refs/reviewable/pr2729/r2
- refs/reviewable/pr2731/r1
- refs/reviewable/pr2731/r2
- refs/reviewable/pr2734/r1
- refs/reviewable/pr2735/r1
- refs/reviewable/pr2735/r2
- refs/reviewable/pr2736/r1
- refs/reviewable/pr2737/r1
- refs/reviewable/pr2737/r2
- refs/reviewable/pr2737/r3
- refs/reviewable/pr2737/r4
- refs/reviewable/pr2738/r1
- refs/reviewable/pr2738/r2
- refs/reviewable/pr2742/r1
- refs/reviewable/pr2743/r1
- refs/reviewable/pr2744/r1
- refs/reviewable/pr2744/r2
- refs/reviewable/pr2746/r1
- refs/reviewable/pr2746/r2
- refs/reviewable/pr2749/r1
- refs/reviewable/pr2750/r1
- refs/reviewable/pr2752/r1
- refs/reviewable/pr2757/r1
- refs/reviewable/pr2758/r1
- refs/reviewable/pr2759/r1
- refs/reviewable/pr2760/r1
- refs/reviewable/pr2762/r1
- refs/reviewable/pr2764/r1
- refs/reviewable/pr2767/r1
- refs/reviewable/pr2769/r1
- refs/reviewable/pr2772/r1
- refs/reviewable/pr2772/r2
- refs/reviewable/pr2772/r3
- refs/reviewable/pr2772/r4
- refs/reviewable/pr2773/r1
- refs/reviewable/pr2778/r1
- refs/reviewable/pr2778/r2
- refs/reviewable/pr2780/r1
- refs/reviewable/pr2781/r1
- refs/reviewable/pr2784/r1
- refs/reviewable/pr2789/r1
- refs/reviewable/pr2791/r1
- refs/reviewable/pr2792/r1
- refs/reviewable/pr2792/r2
- refs/reviewable/pr2797/r1
- refs/reviewable/pr2801/r1
- refs/reviewable/pr2802/r1
- refs/reviewable/pr2804/r1
- refs/reviewable/pr2805/r1
- refs/reviewable/pr2854/r1
- refs/reviewable/pr3118/r1
- refs/reviewable/pr3126/r1
- refs/reviewable/pr3132/r1
- refs/reviewable/pr3135/r1
- refs/reviewable/pr3135/r2
- refs/reviewable/pr3135/r3
- refs/reviewable/pr3158/r1
- refs/reviewable/pr3564/r1
- refs/reviewable/pr3592/r1
- refs/reviewable/pr4656/r1
- refs/reviewable/pr4657/r1
- refs/reviewable/pr4702/r1
- refs/reviewable/pr4745/r1
- refs/reviewable/pr864/r1
- refs/tags/10.0.0
- refs/tags/10.0.0-next.0
- refs/tags/10.0.0-next.1
- refs/tags/10.0.0-next.2
- refs/tags/10.0.0-next.3
- refs/tags/10.0.0-next.4
- refs/tags/10.0.0-next.5
- refs/tags/10.0.0-next.6
- refs/tags/10.0.0-next.7
- refs/tags/10.0.0-next.8
- refs/tags/10.0.0-next.9
- refs/tags/10.0.0-rc.0
- refs/tags/10.0.0-rc.2
- refs/tags/10.0.0-rc.3
- refs/tags/10.0.0-rc.4
- refs/tags/10.0.0-rc.5
- refs/tags/10.0.0-rc.6
- refs/tags/10.0.1
- refs/tags/10.0.10
- refs/tags/10.0.11
- refs/tags/10.0.12
- refs/tags/10.0.13
- refs/tags/10.0.14
- refs/tags/10.0.2
- refs/tags/10.0.3
- refs/tags/10.0.4
- refs/tags/10.0.5
- refs/tags/10.0.6
- refs/tags/10.0.7
- refs/tags/10.0.8
- refs/tags/10.0.9
- refs/tags/10.1.0
- refs/tags/10.1.0-next.0
- refs/tags/10.1.0-next.1
- refs/tags/10.1.0-next.2
- refs/tags/10.1.0-next.3
- refs/tags/10.1.0-next.4
- refs/tags/10.1.0-next.5
- refs/tags/10.1.0-next.6
- refs/tags/10.1.0-next.7
- refs/tags/10.1.0-next.8
- refs/tags/10.1.0-rc.0
- refs/tags/10.1.1
- refs/tags/10.1.2
- refs/tags/10.1.3
- refs/tags/10.1.4
- refs/tags/10.1.5
- refs/tags/10.1.6
- refs/tags/10.2.0
- refs/tags/10.2.1
- refs/tags/10.2.2
- refs/tags/10.2.3
- refs/tags/10.2.4
- refs/tags/10.2.5
- refs/tags/11.0.0
- refs/tags/11.0.0-next.0
- refs/tags/11.0.0-next.1
- refs/tags/11.0.0-next.2
- refs/tags/11.0.0-next.3
- refs/tags/11.0.0-next.4
- refs/tags/11.0.0-next.5
- refs/tags/11.0.0-next.6
- refs/tags/11.0.0-rc.0
- refs/tags/11.0.0-rc.1
- refs/tags/11.0.0-rc.2
- refs/tags/11.0.0-rc.3
- refs/tags/11.0.1
- refs/tags/11.0.2
- refs/tags/11.0.3
- refs/tags/11.0.4
- refs/tags/11.0.5
- refs/tags/11.0.6
- refs/tags/11.0.7
- refs/tags/11.0.8
- refs/tags/11.0.9
- refs/tags/11.1.0
- refs/tags/11.1.0-next.0
- refs/tags/11.1.0-next.1
- refs/tags/11.1.0-next.2
- refs/tags/11.1.0-next.3
- refs/tags/11.1.0-next.4
- refs/tags/11.1.0-next.5
- refs/tags/11.1.0-rc.0
- refs/tags/11.1.1
- refs/tags/11.1.2
- refs/tags/11.2.0
- refs/tags/11.2.0-next.0
- refs/tags/11.2.0-next.1
- refs/tags/11.2.0-rc.0
- refs/tags/11.2.1
- refs/tags/11.2.10
- refs/tags/11.2.11
- refs/tags/11.2.12
- refs/tags/11.2.13
- refs/tags/11.2.14
- refs/tags/11.2.2
- refs/tags/11.2.3
- refs/tags/11.2.4
- refs/tags/11.2.5
- refs/tags/11.2.6
- refs/tags/11.2.7
- refs/tags/11.2.8
- refs/tags/11.2.9
- refs/tags/12.0.0-next.0
- refs/tags/12.0.0-next.1
- refs/tags/12.0.0-next.2
- refs/tags/12.0.0-next.3
- refs/tags/12.0.0-next.4
- refs/tags/12.0.0-next.5
- refs/tags/12.0.0-next.6
- refs/tags/12.0.0-next.7
- refs/tags/12.0.0-next.8
- refs/tags/12.0.0-next.9
- refs/tags/12.0.0-rc.0
- refs/tags/12.0.0-rc.1
- refs/tags/12.0.0-rc.2
- refs/tags/12.0.0-rc.3
- refs/tags/12.0.1
- refs/tags/12.0.2
- refs/tags/12.0.3
- refs/tags/12.0.4
- refs/tags/12.0.5
- refs/tags/12.1.0
- refs/tags/12.1.0-next.2
- refs/tags/12.1.0-next.3
- refs/tags/12.1.0-next.4
- refs/tags/12.1.0-next.5
- refs/tags/12.1.0-next.6
- refs/tags/12.1.1
- refs/tags/12.1.2
- refs/tags/12.1.3
- refs/tags/12.1.4
- refs/tags/12.1.5
- refs/tags/12.2.0
- refs/tags/12.2.0-next.0
- refs/tags/12.2.0-next.1
- refs/tags/12.2.0-next.2
- refs/tags/12.2.0-next.3
- refs/tags/12.2.0-rc.0
- refs/tags/12.2.1
- refs/tags/12.2.10
- refs/tags/12.2.11
- refs/tags/12.2.12
- refs/tags/12.2.13
- refs/tags/12.2.14
- refs/tags/12.2.15
- refs/tags/12.2.16
- refs/tags/12.2.17
- refs/tags/12.2.2
- refs/tags/12.2.3
- refs/tags/12.2.4
- refs/tags/12.2.5
- refs/tags/12.2.6
- refs/tags/12.2.7
- refs/tags/12.2.8
- refs/tags/12.2.9
- refs/tags/13.0.0
- refs/tags/13.0.0-next.0
- refs/tags/13.0.0-next.1
- refs/tags/13.0.0-next.10
- refs/tags/13.0.0-next.11
- refs/tags/13.0.0-next.12
- refs/tags/13.0.0-next.13
- refs/tags/13.0.0-next.14
- refs/tags/13.0.0-next.15
- refs/tags/13.0.0-next.2
- refs/tags/13.0.0-next.3
- refs/tags/13.0.0-next.4
- refs/tags/13.0.0-next.5
- refs/tags/13.0.0-next.6
- refs/tags/13.0.0-next.7
- refs/tags/13.0.0-next.8
- refs/tags/13.0.0-next.9
- refs/tags/13.0.0-rc.0
- refs/tags/13.0.0-rc.1
- refs/tags/13.0.0-rc.2
- refs/tags/13.0.0-rc.3
- refs/tags/13.0.1
- refs/tags/13.0.2
- refs/tags/13.0.3
- refs/tags/13.1.0
- refs/tags/13.1.0-next.0
- refs/tags/13.1.0-next.1
- refs/tags/13.1.0-next.2
- refs/tags/13.1.0-next.3
- refs/tags/13.1.1
- refs/tags/13.1.2
- refs/tags/13.1.3
- refs/tags/13.2.0
- refs/tags/13.2.0-next.0
- refs/tags/13.2.0-next.1
- refs/tags/13.2.0-next.2
- refs/tags/13.2.0-rc.0
- refs/tags/13.2.0-rc.1
- refs/tags/13.2.1
- refs/tags/13.2.2
- refs/tags/13.2.3
- refs/tags/13.2.4
- refs/tags/13.2.5
- refs/tags/13.2.6
- refs/tags/13.2.7
- refs/tags/13.3.0
- refs/tags/13.3.0-next.0
- refs/tags/13.3.0-rc.0
- refs/tags/13.3.1
- refs/tags/13.3.10
- refs/tags/13.3.11
- refs/tags/13.3.12
- refs/tags/13.3.2
- refs/tags/13.3.3
- refs/tags/13.3.4
- refs/tags/13.3.5
- refs/tags/13.3.6
- refs/tags/13.3.7
- refs/tags/13.3.8
- refs/tags/13.3.9
- refs/tags/13.4.0
- refs/tags/14.0.0
- refs/tags/14.0.0-next.0
- refs/tags/14.0.0-next.1
- refs/tags/14.0.0-next.10
- refs/tags/14.0.0-next.11
- refs/tags/14.0.0-next.12
- refs/tags/14.0.0-next.13
- refs/tags/14.0.0-next.14
- refs/tags/14.0.0-next.15
- refs/tags/14.0.0-next.16
- refs/tags/14.0.0-next.2
- refs/tags/14.0.0-next.3
- refs/tags/14.0.0-next.4
- refs/tags/14.0.0-next.5
- refs/tags/14.0.0-next.6
- refs/tags/14.0.0-next.7
- refs/tags/14.0.0-next.8
- refs/tags/14.0.0-next.9
- refs/tags/14.0.0-rc.0
- refs/tags/14.0.0-rc.1
- refs/tags/14.0.0-rc.2
- refs/tags/14.0.0-rc.3
- refs/tags/14.0.1
- refs/tags/14.0.2
- refs/tags/14.0.3
- refs/tags/14.0.4
- refs/tags/14.0.5
- refs/tags/14.0.6
- refs/tags/14.0.7
- refs/tags/14.1.0
- refs/tags/14.1.0-next.0
- refs/tags/14.1.0-next.1
- refs/tags/14.1.0-next.2
- refs/tags/14.1.0-next.3
- refs/tags/14.1.0-next.4
- refs/tags/14.1.0-rc.0
- refs/tags/14.1.1
- refs/tags/14.1.2
- refs/tags/14.1.3
- refs/tags/14.2.0
- refs/tags/14.2.0-next.0
- refs/tags/14.2.0-next.1
- refs/tags/14.2.0-rc.0
- refs/tags/14.2.1
- refs/tags/14.2.10
- refs/tags/14.2.11
- refs/tags/14.2.12
- refs/tags/14.2.2
- refs/tags/14.2.3
- refs/tags/14.2.4
- refs/tags/14.2.5
- refs/tags/14.2.6
- refs/tags/14.2.7
- refs/tags/14.2.8
- refs/tags/14.2.9
- refs/tags/14.3.0
- refs/tags/15.0.0
- refs/tags/15.0.0-next.0
- refs/tags/15.0.0-next.1
- refs/tags/15.0.0-next.2
- refs/tags/15.0.0-next.3
- refs/tags/15.0.0-next.4
- refs/tags/15.0.0-next.5
- refs/tags/15.0.0-next.6
- refs/tags/15.0.0-rc.0
- refs/tags/15.0.0-rc.1
- refs/tags/15.0.0-rc.2
- refs/tags/15.0.0-rc.3
- refs/tags/15.0.0-rc.4
- refs/tags/15.0.1
- refs/tags/15.0.2
- refs/tags/15.0.3
- refs/tags/15.0.4
- refs/tags/15.1.0
- refs/tags/15.1.0-next.0
- refs/tags/15.1.0-next.1
- refs/tags/15.1.0-next.2
- refs/tags/15.1.0-next.3
- refs/tags/15.1.0-rc.0
- refs/tags/15.1.1
- refs/tags/15.1.2
- refs/tags/15.1.3
- refs/tags/15.1.4
- refs/tags/15.1.5
- refs/tags/15.2.0
- refs/tags/15.2.0-next.0
- refs/tags/15.2.0-next.1
- refs/tags/15.2.0-next.2
- refs/tags/15.2.0-next.3
- refs/tags/15.2.0-next.4
- refs/tags/15.2.0-rc.0
- refs/tags/15.2.1
- refs/tags/15.2.10
- refs/tags/15.2.2
- refs/tags/15.2.3
- refs/tags/15.2.4
- refs/tags/15.2.5
- refs/tags/15.2.6
- refs/tags/15.2.7
- refs/tags/15.2.8
- refs/tags/15.2.9
- refs/tags/16.0.0
- refs/tags/16.0.0-next.0
- refs/tags/16.0.0-next.1
- refs/tags/16.0.0-next.2
- refs/tags/16.0.0-next.3
- refs/tags/16.0.0-next.4
- refs/tags/16.0.0-next.5
- refs/tags/16.0.0-next.6
- refs/tags/16.0.0-next.7
- refs/tags/16.0.0-rc.0
- refs/tags/16.0.0-rc.1
- refs/tags/16.0.0-rc.2
- refs/tags/16.0.0-rc.3
- refs/tags/16.0.0-rc.4
- refs/tags/16.0.1
- refs/tags/16.0.2
- refs/tags/16.0.3
- refs/tags/16.0.4
- refs/tags/16.0.5
- refs/tags/16.0.6
- refs/tags/16.1.0
- refs/tags/16.1.0-next.0
- refs/tags/16.1.0-next.1
- refs/tags/16.1.0-next.2
- refs/tags/16.1.0-next.3
- refs/tags/16.1.0-rc.0
- refs/tags/16.1.1
- refs/tags/16.1.2
- refs/tags/16.1.3
- refs/tags/16.1.4
- refs/tags/16.1.5
- refs/tags/16.1.6
- refs/tags/16.1.7
- refs/tags/16.1.8
- refs/tags/16.1.9
- refs/tags/16.2.0
- refs/tags/16.2.0-next.0
- refs/tags/16.2.0-next.1
- refs/tags/16.2.0-next.2
- refs/tags/16.2.0-next.3
- refs/tags/16.2.0-next.4
- refs/tags/16.2.0-rc.0
- refs/tags/16.2.1
- refs/tags/16.2.10
- refs/tags/16.2.11
- refs/tags/16.2.12
- refs/tags/16.2.2
- refs/tags/16.2.3
- refs/tags/16.2.4
- refs/tags/16.2.5
- refs/tags/16.2.6
- refs/tags/16.2.7
- refs/tags/16.2.8
- refs/tags/16.2.9
- refs/tags/17.0.0
- refs/tags/17.0.0-next.0
- refs/tags/17.0.0-next.1
- refs/tags/17.0.0-next.2
- refs/tags/17.0.0-next.3
- refs/tags/17.0.0-next.4
- refs/tags/17.0.0-next.5
- refs/tags/17.0.0-next.6
- refs/tags/17.0.0-next.7
- refs/tags/17.0.0-next.8
- refs/tags/17.0.0-rc.0
- refs/tags/17.0.0-rc.1
- refs/tags/17.0.0-rc.2
- refs/tags/17.0.0-rc.3
- refs/tags/17.0.1
- refs/tags/17.0.2
- refs/tags/17.0.3
- refs/tags/17.0.4
- refs/tags/17.0.5
- refs/tags/17.0.6
- refs/tags/17.0.7
- refs/tags/17.0.8
- refs/tags/17.0.9
- refs/tags/17.1.0
- refs/tags/17.1.0-next.0
- refs/tags/17.1.0-next.1
- refs/tags/17.1.0-next.2
- refs/tags/17.1.0-next.3
- refs/tags/17.1.0-next.4
- refs/tags/17.1.0-next.5
- refs/tags/17.1.0-rc.0
- refs/tags/17.1.1
- refs/tags/17.1.2
- refs/tags/17.1.3
- refs/tags/17.2.0
- refs/tags/17.2.0-next.0
- refs/tags/17.2.0-next.1
- refs/tags/17.2.0-rc.0
- refs/tags/17.2.0-rc.1
- refs/tags/17.2.1
- refs/tags/17.2.2
- refs/tags/17.2.3
- refs/tags/17.2.4
- refs/tags/17.3.0
- refs/tags/17.3.0-next.0
- refs/tags/17.3.0-next.1
- refs/tags/17.3.0-rc.0
- refs/tags/17.3.1
- refs/tags/17.3.10
- refs/tags/17.3.11
- refs/tags/17.3.12
- refs/tags/17.3.2
- refs/tags/17.3.3
- refs/tags/17.3.4
- refs/tags/17.3.5
- refs/tags/17.3.6
- refs/tags/17.3.7
- refs/tags/17.3.8
- refs/tags/17.3.9
- refs/tags/18.0.0
- refs/tags/18.0.0-next.0
- refs/tags/18.0.0-next.1
- refs/tags/18.0.0-next.2
- refs/tags/18.0.0-next.3
- refs/tags/18.0.0-next.4
- refs/tags/18.0.0-next.5
- refs/tags/18.0.0-next.6
- refs/tags/18.0.0-rc.0
- refs/tags/18.0.0-rc.1
- refs/tags/18.0.0-rc.2
- refs/tags/18.0.0-rc.3
- refs/tags/18.0.1
- refs/tags/18.0.2
- refs/tags/18.0.3
- refs/tags/18.0.4
- refs/tags/18.0.5
- refs/tags/18.0.6
- refs/tags/18.0.7
- refs/tags/18.1.0
- refs/tags/18.1.0-next.0
- refs/tags/18.1.0-next.1
- refs/tags/18.1.0-next.2
- refs/tags/18.1.0-next.3
- refs/tags/18.1.0-next.4
- refs/tags/18.1.0-rc.0
- refs/tags/18.1.1
- refs/tags/18.1.2
- refs/tags/18.1.3
- refs/tags/18.2.0-next.0
- refs/tags/18.2.0-next.1
- refs/tags/18.2.0-next.2
- refs/tags/18.2.0-next.3
- refs/tags/18.2.0-next.4
- refs/tags/2.0.0
- refs/tags/2.0.0-alpha.13
- refs/tags/2.0.0-alpha.14
- refs/tags/2.0.0-alpha.15
- refs/tags/2.0.0-alpha.16
- refs/tags/2.0.0-alpha.17
- refs/tags/2.0.0-alpha.18
- refs/tags/2.0.0-alpha.19
- refs/tags/2.0.0-alpha.20
- refs/tags/2.0.0-alpha.21
- refs/tags/2.0.0-alpha.22
- refs/tags/2.0.0-alpha.23
- refs/tags/2.0.0-alpha.24
- refs/tags/2.0.0-alpha.25
- refs/tags/2.0.0-alpha.26
- refs/tags/2.0.0-alpha.27
- refs/tags/2.0.0-alpha.28
- refs/tags/2.0.0-alpha.29
- refs/tags/2.0.0-alpha.30
- refs/tags/2.0.0-alpha.31
- refs/tags/2.0.0-alpha.32
- refs/tags/2.0.0-alpha.33
- refs/tags/2.0.0-alpha.34
- refs/tags/2.0.0-alpha.35
- refs/tags/2.0.0-alpha.36
- refs/tags/2.0.0-alpha.37
- refs/tags/2.0.0-alpha.38
- refs/tags/2.0.0-alpha.39
- refs/tags/2.0.0-alpha.40
- refs/tags/2.0.0-alpha.41
- refs/tags/2.0.0-alpha.42
- refs/tags/2.0.0-alpha.44
- refs/tags/2.0.0-alpha.45
- refs/tags/2.0.0-alpha.46
- refs/tags/2.0.0-alpha.47
- refs/tags/2.0.0-alpha.48
- refs/tags/2.0.0-alpha.49
- refs/tags/2.0.0-alpha.50
- refs/tags/2.0.0-alpha.51
- refs/tags/2.0.0-alpha.52
- refs/tags/2.0.0-alpha.53
- refs/tags/2.0.0-alpha.54
- refs/tags/2.0.0-alpha.55
- refs/tags/2.0.0-beta.0
- refs/tags/2.0.0-beta.1
- refs/tags/2.0.0-beta.10
- refs/tags/2.0.0-beta.11
- refs/tags/2.0.0-beta.12
- refs/tags/2.0.0-beta.13
- refs/tags/2.0.0-beta.14
- refs/tags/2.0.0-beta.15
- refs/tags/2.0.0-beta.16
- refs/tags/2.0.0-beta.17
- refs/tags/2.0.0-beta.2
- refs/tags/2.0.0-beta.3
- refs/tags/2.0.0-beta.4
- refs/tags/2.0.0-beta.5
- refs/tags/2.0.0-beta.6
- refs/tags/2.0.0-beta.7
- refs/tags/2.0.0-beta.8
- refs/tags/2.0.0-beta.9
- refs/tags/2.0.0-build.006a96d.js
- refs/tags/2.0.0-build.00822c3.dart
- refs/tags/2.0.0-build.00822c3.js
- refs/tags/2.0.0-build.015faee.dart
- refs/tags/2.0.0-build.015faee.js
- refs/tags/2.0.0-build.016ab31.dart
- refs/tags/2.0.0-build.016ab31.js
- refs/tags/2.0.0-build.019cb41.dart
- refs/tags/2.0.0-build.019cb41.js
- refs/tags/2.0.0-build.01ba94b.dart
- refs/tags/2.0.0-build.01ba94b.js
- refs/tags/2.0.0-build.0206d72.dart
- refs/tags/2.0.0-build.0206d72.js
- refs/tags/2.0.0-build.020ce32.dart
- refs/tags/2.0.0-build.020ce32.js
- refs/tags/2.0.0-build.0290362.dart
- refs/tags/2.0.0-build.0290362.js
- refs/tags/2.0.0-build.03823d4.dart
- refs/tags/2.0.0-build.03823d4.js
- refs/tags/2.0.0-build.039ed3b.dart
- refs/tags/2.0.0-build.039ed3b.js
- refs/tags/2.0.0-build.03e3035.dart
- refs/tags/2.0.0-build.03e3035.js
- refs/tags/2.0.0-build.041c599.dart
- refs/tags/2.0.0-build.041c599.js
- refs/tags/2.0.0-build.046758c.dart
- refs/tags/2.0.0-build.046758c.js
- refs/tags/2.0.0-build.0544e07.dart
- refs/tags/2.0.0-build.0544e07.js
- refs/tags/2.0.0-build.059e09c.dart
- refs/tags/2.0.0-build.059e09c.js
- refs/tags/2.0.0-build.05fa1fd.dart
- refs/tags/2.0.0-build.05fa1fd.js
- refs/tags/2.0.0-build.05fb269.dart
- refs/tags/2.0.0-build.05fb269.js
- refs/tags/2.0.0-build.0614797.dart
- refs/tags/2.0.0-build.0614797.js
- refs/tags/2.0.0-build.065ac93.dart
- refs/tags/2.0.0-build.065ac93.js
- refs/tags/2.0.0-build.06b2aa1.dart
- refs/tags/2.0.0-build.06b2aa1.js
- refs/tags/2.0.0-build.06d076a.dart
- refs/tags/2.0.0-build.06d076a.js
- refs/tags/2.0.0-build.06e32eb.dart
- refs/tags/2.0.0-build.06e32eb.js
- refs/tags/2.0.0-build.070d818.dart
- refs/tags/2.0.0-build.070d818.js
- refs/tags/2.0.0-build.071165f.dart
- refs/tags/2.0.0-build.071165f.js
- refs/tags/2.0.0-build.074075d.dart
- refs/tags/2.0.0-build.074075d.js
- refs/tags/2.0.0-build.080469f.dart
- refs/tags/2.0.0-build.080469f.js
- refs/tags/2.0.0-build.0815a77.dart
- refs/tags/2.0.0-build.0815a77.js
- refs/tags/2.0.0-build.093b794.dart
- refs/tags/2.0.0-build.093b794.js
- refs/tags/2.0.0-build.0a3a17f.dart
- refs/tags/2.0.0-build.0a3a17f.js
- refs/tags/2.0.0-build.0a44fc6.dart
- refs/tags/2.0.0-build.0a44fc6.js
- refs/tags/2.0.0-build.0ae7775.dart
- refs/tags/2.0.0-build.0ae7775.js
- refs/tags/2.0.0-build.0b6e75a.dart
- refs/tags/2.0.0-build.0b6e75a.js
- refs/tags/2.0.0-build.0c9596a.dart
- refs/tags/2.0.0-build.0c9596a.js
- refs/tags/2.0.0-build.0cdf280.dart
- refs/tags/2.0.0-build.0cdf280.js
- refs/tags/2.0.0-build.0db0252.dart
- refs/tags/2.0.0-build.0db0252.js
- refs/tags/2.0.0-build.0df8bc4.dart
- refs/tags/2.0.0-build.0df8bc4.js
- refs/tags/2.0.0-build.0ec9ccf.dart
- refs/tags/2.0.0-build.0ec9ccf.js
- refs/tags/2.0.0-build.0ef6809.dart
- refs/tags/2.0.0-build.0ef6809.js
- refs/tags/2.0.0-build.0f85b36.dart
- refs/tags/2.0.0-build.0f85b36.js
- refs/tags/2.0.0-build.0f8e40b.dart
- refs/tags/2.0.0-build.0f8e40b.js
- refs/tags/2.0.0-build.116015b.dart
- refs/tags/2.0.0-build.116015b.js
- refs/tags/2.0.0-build.125fa38.dart
- refs/tags/2.0.0-build.125fa38.js
- refs/tags/2.0.0-build.132829e.dart
- refs/tags/2.0.0-build.132829e.js
- refs/tags/2.0.0-build.13e6354.dart
- refs/tags/2.0.0-build.13e6354.js
- refs/tags/2.0.0-build.140ce9f.dart
- refs/tags/2.0.0-build.140ce9f.js
- refs/tags/2.0.0-build.1417e12.dart
- refs/tags/2.0.0-build.1417e12.js
- refs/tags/2.0.0-build.15f5f27.dart
- refs/tags/2.0.0-build.15f5f27.js
- refs/tags/2.0.0-build.1607ef8.dart
- refs/tags/2.0.0-build.1607ef8.js
- refs/tags/2.0.0-build.16d9c60.dart
- refs/tags/2.0.0-build.16d9c60.js
- refs/tags/2.0.0-build.16e74cf.dart
- refs/tags/2.0.0-build.16e74cf.js
- refs/tags/2.0.0-rc.0
- refs/tags/2.0.0-rc.1
- refs/tags/2.0.0-rc.2
- refs/tags/2.0.0-rc.3
- refs/tags/2.0.0-rc.4
- refs/tags/2.0.0-rc.5
- refs/tags/2.0.0-rc.6
- refs/tags/2.0.0-rc.7
- refs/tags/2.0.1
- refs/tags/2.0.2
- refs/tags/2.1.0
- refs/tags/2.1.0-beta.0
- refs/tags/2.1.0-rc.0
- refs/tags/2.1.1
- refs/tags/2.1.2
- refs/tags/2.2.0
- refs/tags/2.2.0-beta.0
- refs/tags/2.2.0-beta.1
- refs/tags/2.2.0-rc.0
- refs/tags/2.2.1
- refs/tags/2.2.2
- refs/tags/2.2.3
- refs/tags/2.2.4
- refs/tags/2.3.0
- refs/tags/2.3.0-beta.0
- refs/tags/2.3.0-beta.1
- refs/tags/2.3.0-rc.0
- refs/tags/2.3.1
- refs/tags/2.4.0
- refs/tags/2.4.0-marker
- refs/tags/2.4.1
- refs/tags/2.4.10
- refs/tags/2.4.2
- refs/tags/2.4.3
- refs/tags/2.4.4
- refs/tags/2.4.5
- refs/tags/2.4.6
- refs/tags/2.4.7
- refs/tags/2.4.8
- refs/tags/2.4.9
- refs/tags/4.0.0
- refs/tags/4.0.0-beta.0
- refs/tags/4.0.0-beta.1
- refs/tags/4.0.0-beta.2
- refs/tags/4.0.0-beta.3
- refs/tags/4.0.0-beta.4
- refs/tags/4.0.0-beta.5
- refs/tags/4.0.0-beta.6
- refs/tags/4.0.0-beta.7
- refs/tags/4.0.0-beta.8
- refs/tags/4.0.0-rc.1
- refs/tags/4.0.0-rc.2
- refs/tags/4.0.0-rc.3
- refs/tags/4.0.0-rc.4
- refs/tags/4.0.0-rc.5
- refs/tags/4.0.0-rc.6
- refs/tags/4.0.1
- refs/tags/4.0.2
- refs/tags/4.0.3
- refs/tags/4.1.0
- refs/tags/4.1.0-beta.0
- refs/tags/4.1.0-beta.1
- refs/tags/4.1.0-rc.0
- refs/tags/4.1.1
- refs/tags/4.1.2
- refs/tags/4.1.3
- refs/tags/4.2.0
- refs/tags/4.2.0-beta.0
- refs/tags/4.2.0-beta.1
- refs/tags/4.2.0-rc.0
- refs/tags/4.2.0-rc.1
- refs/tags/4.2.0-rc.2
- refs/tags/4.2.1
- refs/tags/4.2.2
- refs/tags/4.2.3
- refs/tags/4.2.4
- refs/tags/4.2.5
- refs/tags/4.2.6
- refs/tags/4.3.0
- refs/tags/4.3.0-beta.0
- refs/tags/4.3.0-beta.1
- refs/tags/4.3.0-rc.0
- refs/tags/4.3.1
- refs/tags/4.3.2
- refs/tags/4.3.3
- refs/tags/4.3.4
- refs/tags/4.3.5
- refs/tags/4.3.6
- refs/tags/4.4.0
- refs/tags/4.4.0-RC.0
- refs/tags/4.4.1
- refs/tags/4.4.2
- refs/tags/4.4.3
- refs/tags/4.4.4
- refs/tags/4.4.5
- refs/tags/4.4.6
- refs/tags/4.4.7
- refs/tags/5.0.0
- refs/tags/5.0.0-beta.0
- refs/tags/5.0.0-beta.1
- refs/tags/5.0.0-beta.2
- refs/tags/5.0.0-beta.3
- refs/tags/5.0.0-beta.4
- refs/tags/5.0.0-beta.5
- refs/tags/5.0.0-beta.6
- refs/tags/5.0.0-beta.7
- refs/tags/5.0.0-rc.0
- refs/tags/5.0.0-rc.1
- refs/tags/5.0.0-rc.2
- refs/tags/5.0.0-rc.3
- refs/tags/5.0.0-rc.4
- refs/tags/5.0.0-rc.5
- refs/tags/5.0.0-rc.6
- refs/tags/5.0.0-rc.7
- refs/tags/5.0.0-rc.8
- refs/tags/5.0.0-rc.9
- refs/tags/5.0.1
- refs/tags/5.0.2
- refs/tags/5.0.3
- refs/tags/5.0.4
- refs/tags/5.0.5
- refs/tags/5.1.0
- refs/tags/5.1.0-beta.0
- refs/tags/5.1.0-beta.1
- refs/tags/5.1.0-beta.2
- refs/tags/5.1.0-rc.0
- refs/tags/5.1.0-rc.1
- refs/tags/5.1.1
- refs/tags/5.1.2
- refs/tags/5.1.3
- refs/tags/5.2.0
- refs/tags/5.2.0-beta.0
- refs/tags/5.2.0-beta.1
- refs/tags/5.2.0-rc.0
- refs/tags/5.2.1
- refs/tags/5.2.10
- refs/tags/5.2.11
- refs/tags/5.2.2
- refs/tags/5.2.3
- refs/tags/5.2.4
- refs/tags/5.2.5
- refs/tags/5.2.6
- refs/tags/5.2.7
- refs/tags/5.2.8
- refs/tags/5.2.9
- Branches list truncated to 999 entries, 232 were omitted.
- 12.0.0
- Releases list truncated to 1 entries, 8 were omitted.
Take a new snapshot of a software origin
If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.
Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.Processing "take a new snapshot" request ...
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Revision | Author | Date | Message | Commit Date |
---|---|---|---|---|
7aa92fa | Paul Gschwendtner | 09 February 2024, 10:51:23 UTC | release: cut the v17.2.0-rc.1 release | 09 February 2024, 10:54:07 UTC |
4b96f37 | Kristiyan Kostadinov | 09 February 2024, 09:41:35 UTC | fix(core): expose model signal subcribe for type checking purposes (#54357) The `@internal` in the comment above `ModelSignal.subscribe` ended up marking the method as internal even though it wasn't meant to be. PR Close #54357 | 09 February 2024, 09:58:56 UTC |
9e2c140 | Matthieu Riegler | 07 February 2024, 23:01:53 UTC | refactor(devtools): show tooltip for hydration icon on directive forest (#54326) The MatTooltip was missing after migrating to standalone PR Close #54326 | 08 February 2024, 19:18:37 UTC |
9f05732 | Joey Perrott | 07 February 2024, 16:00:01 UTC | refactor: migrate router to prettier formatting (#54318) Migrate formatting to prettier for router from clang-format PR Close #54318 | 08 February 2024, 19:17:14 UTC |
ed41bfc | Jessica Janiuk | 08 February 2024, 18:36:38 UTC | release: cut the v17.2.0-rc.0 release | 08 February 2024, 18:38:52 UTC |
c47bf63 | Jessica Janiuk | 08 February 2024, 18:18:45 UTC | docs: release notes for the v17.1.3 release | 08 February 2024, 18:20:12 UTC |
8dea3b5 | cexbrayat | 08 February 2024, 11:41:41 UTC | test: tidy up signal signal input/query/model signature tests (#54334) This updates some tests to use the public imports from `@angular/core` now that they are available, and cleans up useless imports and inaccurate names. PR Close #54334 | 08 February 2024, 16:49:15 UTC |
898a532 | Andrew Scott | 08 February 2024, 00:30:41 UTC | fix(core): Fix possible infinite loop with `markForCheck` by partially reverting #54074 (#54329) In some situations, calling `markForCheck` can result in an infinite loop in seemingly valid scenarios. When a transplanted view is inserted before its declaration, it gets refreshed in the retry loop of `detectChanges`. At this point, the `Dirty` flag has been cleared from all parents. Calling `markForCheck` marks the insertion tree up to the root `Dirty`. If the declaration is checked again as a result (i.e. because it has default change detection) and is reachable because its parent was marked `Dirty`, this can cause an infinite loop. The declaration is refreshed again, so the insertion is marked for refresh (again). We enter an infinite loop if the insertion tree always calls `markForCheck` for some reason (i.e. `{{createReplayObservable() | async}}`). While the case above does fall into an infinite loop, it also truly is a problem in the application. While it's not an infinite synchronous loop, the declaration and insertion are infinitely dirty and will be refreshed on every change detection round. Usually `markForCheck` does not have this problem because the `Dirty` flag is not cleared until the very end of change detection. However, if the view did not already have the `Dirty` flag set, it is never cleared because we never entered view refresh. One solution to this problem could be to clear the `Dirty` flag even after skipping view refresh but traversing to children. PR Close #54329 | 08 February 2024, 16:45:20 UTC |
adfc3f0 | Kristiyan Kostadinov | 08 February 2024, 15:46:20 UTC | refactor(core): temporarily mark subscribe methods as deprecated (#54342) The `subscribe` methods on `ModelSignal` and `OutputEmitter` were marked as `@internal` which will break when the TCB needs to reference them. These changes make them `@deprecated` temporarily so we can address the properly later. PR Close #54342 | 08 February 2024, 16:33:41 UTC |
38b01a3 | cexbrayat | 08 February 2024, 13:22:01 UTC | fix(compiler-cli): interpolatedSignalNotInvoked diagnostic for model signals (#54338) The new `model()` signal introduces a `ModelSignal` type that needs to be handled by the interpolatedSignalNotInvoked diagnostic to catch issues like: ``` <div>{{ myModel }}</div> ``` PR Close #54338 | 08 February 2024, 16:28:20 UTC |
03c3b3e | ascorbic | 07 February 2024, 08:52:06 UTC | feat(common): add Netlify image loader (#54311) Add an image loader for Netlify Image CDN. It is slightly different in implementation from existing loaders, because it allows absolute URLs Fixes #54303 PR Close #54311 | 08 February 2024, 16:17:57 UTC |
9c2bad9 | Kristiyan Kostadinov | 08 February 2024, 11:37:39 UTC | refactor(compiler-cli): avoid naming conflict with built-in global variable (#54333) The import of `module` can conflict with the native global variable called `module` and can break some internal tests. These switch to only importing the function we need. PR Close #54333 | 08 February 2024, 14:59:54 UTC |
44f65f2 | Kristiyan Kostadinov | 07 February 2024, 23:32:45 UTC | refactor(compiler-cli): work around internal test failure (#54327) Fixes an internal test failure due to `FatalDiagnosticError` extending the native `Error`. PR Close #54327 | 08 February 2024, 14:59:24 UTC |
ca239e8 | Pawel Kozlowski | 07 February 2024, 18:20:55 UTC | refactor(core): share refresh logic for cd and signal queries (#54322) Introducing a tiny utility method to remove some code duplication between the change change detection and signal based queries. PR Close #54322 | 07 February 2024, 22:22:06 UTC |
a3e51d9 | Ben Hong | 07 February 2024, 21:02:12 UTC | docs: enable version picker (#54161) PR Close #54161 | 07 February 2024, 22:21:05 UTC |
38c0084 | Paul Gschwendtner | 06 February 2024, 14:23:00 UTC | test: verify signal-based queries in CLI integration test (#54314) Adds usages of signal-based queries into the signal integration test to verify queries can be used in production, and testing environments as expected (i.e. the transform works as expected). PR Close #54314 | 07 February 2024, 18:56:04 UTC |
a08863e | Paul Gschwendtner | 07 February 2024, 12:40:58 UTC | refactor(compiler-cli): ensure `FatalDiagnosticError` extends `Error` (#54309) This helps with the Angular CLI currently swallowing fatal diagnostic errors in ways that are extremely difficult to debug due to workers executing Angular compiler logic. The worker logic, via piscina, is currently not forwarding such Angular errors because those don't extend `Error.` https://github.com/piscinajs/piscina/blob/a7042ea27d129f3cad75c422f5aa92f0663854ee/src/worker.ts#L175 Even with access to these errors by manually forwarding errors, via patching of the Angular CLI, there is no stack trace due to us not using `Error` as base class for fatal diagnostic errors. This commit improves this for future debugging and also better reporting of such errors to our users- if we would accidentally leak one. PR Close #54309 | 07 February 2024, 16:39:21 UTC |
8e237a0 | Paul Gschwendtner | 07 February 2024, 12:39:00 UTC | fix(compiler-cli): properly catch fatal diagnostics in type checking (#54309) An identical addition to: 760b1f3d0b857288980f2d9929147f331d657f7d. This commit expands the `try/catch`-es: - to properly NOT throw and just convert the diagnostic. - to be in place for all top-level instances. Notably, this logic cannot reside in the template type checker directly as otherwise we would risk multiple duplicate diagnostics. PR Close #54309 | 07 February 2024, 16:39:20 UTC |
e921e10 | Kristiyan Kostadinov | 07 February 2024, 07:53:39 UTC | refactor(core): correctly distinguish getter functions from writable signals (#54252) Fixes that `ɵunwrapWritableSignal` inferring getter functions as not matching the interface of `WritableSignal` instead of preserving them. PR Close #54252 | 07 February 2024, 16:36:15 UTC |
a4a76c3 | Kristiyan Kostadinov | 06 February 2024, 22:55:59 UTC | refactor(core): throw if required model is changed via update too early (#54252) Adds an assertion that will throw if `ModelSignal.update` is accessed before an initial value is set. PR Close #54252 | 07 February 2024, 16:36:14 UTC |
ac9c544 | Kristiyan Kostadinov | 06 February 2024, 22:11:34 UTC | refactor(core): assert writable signal in two-way property instruction (#54252) Asserts that the value is a `WritableSignal`, rather than a `Signal`, in the `twoWayProperty` instruction. PR Close #54252 | 07 February 2024, 16:36:14 UTC |
243b94c | Kristiyan Kostadinov | 06 February 2024, 22:00:30 UTC | refactor(compiler-cli): fix regression in two-way bindings to inputs with different getter/setter types (#54252) In a previous commit the TCB was changed to cast the assignment to an input in order to widen its type to allow `WritableSignal`. This ended up breaking existing inputs whose setter has a wider type than its getter. These changes switch to unwrapping the value on the binding side. PR Close #54252 | 07 February 2024, 16:36:13 UTC |
551c579 | Kristiyan Kostadinov | 06 February 2024, 13:08:04 UTC | refactor(core): address PR feedback (#54252) Addresses the feedback from #54252. PR Close #54252 | 07 February 2024, 16:36:12 UTC |
a17f6cb | Kristiyan Kostadinov | 06 February 2024, 12:28:27 UTC | refactor(compiler-cli): rework TCB for two-way bindings (#54252) Reworks the TCB for two-way bindings to make them simpler and to avoid regressions for two-way bindings to generic inputs. The new TCB looks as follows: ``` var _t1: Dir; var _t2 = _t1.input; (_t1 as typeof _t2 | WritableSignal<typeof _t2>) = expression; ``` PR Close #54252 | 07 February 2024, 16:36:11 UTC |
372e1ff | Kristiyan Kostadinov | 05 February 2024, 18:58:57 UTC | refactor(compiler-cli): account for model inputs in language service (#54252) Updates the code that resolves a node from the TCB to an input in order to fix the language service. PR Close #54252 | 07 February 2024, 16:36:10 UTC |
702ab28 | Kristiyan Kostadinov | 05 February 2024, 18:18:10 UTC | feat(core): add support for model inputs (#54252) Adds support for model inputs in the framework. `model()` returns a writable signal that implicitly defines a input/output pair that can be used either in two-way bindings to keep two values in sync or by binding individually to the input and output. When the value of the `model` changes, it will emit an event with the current value. Furthermore, these changes expand two-way bindings to accept `WritableSignal`. This will make it easier to transition existing code to signals in a backwards-compatible way. Example: ```ts @Directive({ selector: 'counter', standalone: true, host: { '(click)': 'increment()', } }) export class Counter { value = model(0); increment(): void { this.value.update(current => current + 1); } } @Component({ template: `<counter [(value)]="count"/> The current count is: {{count()}}`, }) class App { count = signal(0); } ``` PR Close #54252 | 07 February 2024, 16:36:09 UTC |
d006aa3 | Kristiyan Kostadinov | 05 February 2024, 10:34:17 UTC | refactor(compiler-cli): add tests for model inputs (#54252) Adds tests in the compiler to verify the compiled output and template type checking behavior of model inputs. PR Close #54252 | 07 February 2024, 16:36:08 UTC |
67b977e | Kristiyan Kostadinov | 05 February 2024, 09:41:48 UTC | refactor(compiler-cli): allow writable signals in two-way bindings (#54252) Updates the TCB generation logic to allow for `WritableSignal` to be assigned in two-way bindings. PR Close #54252 | 07 February 2024, 16:36:07 UTC |
8aac3c4 | Kristiyan Kostadinov | 04 February 2024, 21:57:13 UTC | test(core): add runtime acceptance tests for model inputs (#54252) Sets up the runtime tests for model inputs. PR Close #54252 | 07 February 2024, 16:36:06 UTC |
0ea4d70 | Kristiyan Kostadinov | 04 February 2024, 17:23:34 UTC | refactor(compiler-cli): recognize model fields (#54252) Adds the logic that recognizes fields initialized to model as an input/output pair. PR Close #54252 | 07 February 2024, 16:36:05 UTC |
3faf3e2 | Kristiyan Kostadinov | 04 February 2024, 17:08:58 UTC | refactor(core): implement two-way instructions (#54252) Adds the implementations of the `twoWayProperty` and `twoWayListener` instructions. PR Close #54252 | 07 February 2024, 16:36:04 UTC |
06fa029 | Kristiyan Kostadinov | 02 February 2024, 13:57:50 UTC | refactor(compiler-cli): add jit transform for model inputs (#54252) Adds a JIT transform that marks `model` fields as `@Input` and `@Output`. PR Close #54252 | 07 February 2024, 16:36:03 UTC |
ab0c0cb | Kristiyan Kostadinov | 02 February 2024, 12:24:50 UTC | refactor(compiler-cli): add function to identify model fields (#54252) Adds a function to the compiler to help us identify fields initialized to a `model`. PR Close #54252 | 07 February 2024, 16:36:02 UTC |
3e0a20d | Kristiyan Kostadinov | 01 February 2024, 12:41:34 UTC | refactor(core): add model implementation (#54252) Adds the implementation of the `model` primitive that represents a two-way binding signal-based binding. PR Close #54252 | 07 February 2024, 16:36:01 UTC |
c023e8d | Paul Gschwendtner | 06 February 2024, 17:08:37 UTC | refactor(core): improve IDE completion of `read` option for signal queries (#54280) This commit improves IDE completion of the `read` option for signal-based queries. Currently, TS only matches the first overload when starting out with defining a query. TS doesn't build up the combination of possible options from the second overload- so in practice users will only see IDE completions for the `descendants` option. This is not a problem for view queries as the only option is `read`, so TS will always match the overload with the `read` option. ``` class X { query = contentChild('', {^^ <-- here we should completion for `read` an `descendants` } ``` PR Close #54280 | 07 February 2024, 16:35:14 UTC |
1fb0da2 | cexbrayat | 07 February 2024, 14:48:35 UTC | build: simplify husky setup (#54315) husky v9 simplified its setup, see `How to migrate` in https://github.com/typicode/husky/releases/tag/v9.0.1 PR Close #54315 | 07 February 2024, 16:34:13 UTC |
0dfbde9 | Jessica Janiuk | 07 February 2024, 15:35:37 UTC | Revert "fix(router): Clear internal transition when navigation finalizes (#54261)" (#54317) This reverts commit 6681292823277c8b9df002b6658224287b90e954. PR Close #54317 | 07 February 2024, 15:46:38 UTC |
f39cb06 | Payam Valadkhan | 03 February 2024, 09:43:19 UTC | fix(compiler-cli): show specific error for unresolved @Directive.exportAs in local compilation mode (#54230) Currently the error is a generic error "exportAs must be a string ...". This commit makes the error more specific to local compilation and adds some action items. PR Close #54230 | 06 February 2024, 21:33:29 UTC |
f3851b5 | Payam Valadkhan | 03 February 2024, 08:45:53 UTC | fix(compiler-cli): show specific error for unresolved @HostBinding's argument in local compilation mode (#54230) Currently the error is a generic error "selector must be a string ...". This commit makes the error more specific to local compilation and adds some action items. PR Close #54230 | 06 February 2024, 21:33:29 UTC |
39ddd88 | Payam Valadkhan | 03 February 2024, 08:29:00 UTC | fix(compiler-cli): show specific error for unresolved @HostListener's event name in local compilation mode (#54230) Currently the error is a generic error "selector must be a string ...". This commit makes the error more specific to local compilation and adds some action items. PR Close #54230 | 06 February 2024, 21:33:29 UTC |
5d63324 | Payam Valadkhan | 03 February 2024, 07:44:03 UTC | fix(compiler-cli): show the correct message for the error LOCAL_COMPILATION_UNRESOLVED_CONST when an unresolved symbol used for @Component.styles (#54230) Currently the correct error message is shown only if @Component.styles is an array with some unresolved element. This change supports the new case of string type for the @Component.styles field. PR Close #54230 | 06 February 2024, 21:33:29 UTC |
6c8b094 | Payam Valadkhan | 03 February 2024, 07:21:53 UTC | fix(compiler-cli): highlight the unresolved element in the @Component.styles array for the error LOCAL_COMPILATION_UNRESOLVED_CONST (#54230) Currently the whole array is highlighted. PR Close #54230 | 06 February 2024, 21:33:29 UTC |
acc98a1 | Payam Valadkhan | 06 February 2024, 03:18:24 UTC | refactor(compiler-cli): add a helper to generate error `LOCAL_COMPILATION_UNRESOLVED_CONST` in common scenarios (#54230) A helper `validateLocalCompilationUnresolvedConst` is added to encapsulate a common pattern which leads to the error `LOCAL_COMPILATION_UNRESOLVED_CONST`. PR Close #54230 | 06 February 2024, 21:33:29 UTC |
a3de5ba | Payam Valadkhan | 03 February 2024, 06:55:37 UTC | refactor(compiler-cli): remove the trailing error message for LOCAL_COMPILATION_UNRESOLVED_CONST (#54230) The trailing error message comes from tracing the chain of DymaicValue which leads to a mostly useless error that highlights the same symbol as the original message and emits the error message "Unknown reference". This error message is removed in the favour of the original message which suffices. PR Close #54230 | 06 February 2024, 21:33:29 UTC |
df74ed9 | Payam Valadkhan | 03 February 2024, 06:36:19 UTC | refactor(compiler-cli): upgrade error codes and messages for unresolved symbol errors in local compilation mode (#54230) A single error code is created to unify the common error pattern in local compilation mode where an imported const cannot be resolved, but needs to be resolved. This mainly happens for Angular decorator fields such as @Component.template. The error messages are also upgraded to be more centered around this unifying theme. PR Close #54230 | 06 February 2024, 21:33:29 UTC |
b5368eb | Angular Robot | 06 February 2024, 20:05:50 UTC | build: update dependency marked to v12 (#54296) See associated pull request for more information. PR Close #54296 | 06 February 2024, 21:13:49 UTC |
b96c2fe | Angular Robot | 06 February 2024, 20:04:43 UTC | build: update dependency jsdom to v24 (#54291) See associated pull request for more information. PR Close #54291 | 06 February 2024, 21:10:29 UTC |
8efa7cd | Joey Perrott | 06 February 2024, 18:52:50 UTC | docs: remove v17 banner from adev (#54287) PR Close #54287 | 06 February 2024, 21:06:24 UTC |
faf3b45 | Alejandro Cuba Ruiz | 05 February 2024, 19:05:18 UTC | docs: add alejandrocuba.jpg file to images/bios/ (#53842) PR Close #53842 | 06 February 2024, 20:34:01 UTC |
f189dbe | Alejandro Cuba Ruiz | 08 January 2024, 21:46:50 UTC | docs: add alejandrocuba to GDE resources (#53842) PR Close #53842 | 06 February 2024, 20:34:01 UTC |
6681292 | Andrew Scott | 05 February 2024, 16:46:58 UTC | fix(router): Clear internal transition when navigation finalizes (#54261) This commit fixes a small memory issue in the router where a destroyed component instance would be retained. fixes #54241 PR Close #54261 | 06 February 2024, 20:32:34 UTC |
c8a973e | Angular Robot | 06 February 2024, 19:06:41 UTC | build: update dependency husky to v9 (#54289) See associated pull request for more information. PR Close #54289 | 06 February 2024, 19:34:46 UTC |
43de097 | Pawel Kozlowski | 06 February 2024, 04:30:58 UTC | test(core): enable signal queries tests with authoring (#54283) Use signal queries tests with the authoring functions and without decorators. PR Close #54283 | 06 February 2024, 19:31:58 UTC |
e95ef2c | Pawel Kozlowski | 04 February 2024, 21:00:21 UTC | feat(core): expose queries as signals (#54283) This commit exposes authoring functions for queries as signals thus making those generally available. PR Close #54283 | 06 February 2024, 19:31:58 UTC |
0d4e983 | Angular Robot | 06 February 2024, 19:06:35 UTC | build: update dependency @types/jasmine to v5 (#54288) See associated pull request for more information. PR Close #54288 | 06 February 2024, 19:30:33 UTC |
297e73c | Angular Robot | 06 February 2024, 19:06:47 UTC | build: update dependency jasmine-core to v5 (#54290) See associated pull request for more information. PR Close #54290 | 06 February 2024, 19:30:07 UTC |
4d29174 | Joey Perrott | 06 February 2024, 18:20:15 UTC | refactor: address prototype polution concern with better typing (#54286) Update typing to show that a number is being used as index rather than any random string PR Close #54286 | 06 February 2024, 18:38:47 UTC |
4287ca8 | Angular Robot | 06 February 2024, 18:06:26 UTC | build: update dependency @octokit/graphql to v7 (#53554) See associated pull request for more information. PR Close #53554 | 06 February 2024, 18:24:04 UTC |
eeafdb6 | Angular Robot | 03 February 2024, 17:04:44 UTC | build: update dependency firebase-tools to v13 (#54234) See associated pull request for more information. PR Close #54234 | 06 February 2024, 18:11:41 UTC |
e9eba6b | Angular Robot | 05 February 2024, 21:06:20 UTC | build: update dependency eslint-plugin-jsdoc to v48 (#54202) See associated pull request for more information. PR Close #54202 | 06 February 2024, 18:11:12 UTC |
c512987 | Angular Robot | 31 January 2024, 21:04:56 UTC | build: update babel dependencies (#53222) See associated pull request for more information. PR Close #53222 | 06 February 2024, 18:10:40 UTC |
e949422 | Angular Robot | 05 February 2024, 18:05:21 UTC | build: update all non-major dependencies (#53220) See associated pull request for more information. PR Close #53220 | 06 February 2024, 18:10:11 UTC |
2d3fc31 | Angular Robot | 06 February 2024, 16:04:57 UTC | docs: update Angular CLI help [main] (#54276) Updated Angular CLI help contents. PR Close #54276 | 06 February 2024, 18:09:46 UTC |
0763fba | Joey Perrott | 06 February 2024, 17:24:26 UTC | build: update to latest @angular/docs (#54282) Update to the latest version of angular docs from dev-infra PR Close #54282 | 06 February 2024, 17:54:43 UTC |
6ef60c0 | ilir.beqiri | 06 February 2024, 17:16:17 UTC | docs: replace event word with property for binding properties link (#54281) Replace the "event" word with the correct one "property" at the helpful text on event binding section PR Close #54281 | 06 February 2024, 17:45:11 UTC |
bfbb306 | Paul Gschwendtner | 06 February 2024, 14:06:49 UTC | fix(compiler-cli): do not error due to multiple components named equally (#54273) Currently, when two components are named `TestComponent`, and both would use e.g. control flow. Templates would be generated by the compiler and those would conflict at runtime because the names for the template functions are not ensured to be unique. This seems like a more general problem that could be tackled in the future in the template pipeline by always using the `ConstantPool`, but for now, we should be good already, given us ensuring the `baseName`'s are always unique. PR Close #54273 | 06 February 2024, 17:33:23 UTC |
19fae76 | arturovt | 02 February 2024, 01:12:26 UTC | fix(zone.js): patch `fs.realpath.native` as macrotask (#54208) This commit updates the implementation of the zone.js `fs` patch to restore the implementation of `realpath.native` and patches it as a macrotask, along with other functions of the `fs` package. This is the only nested function that must be patched. Closes: #45546 PR Close #54208 | 06 February 2024, 16:04:40 UTC |
f8c02b6 | Paul Gschwendtner | 05 February 2024, 14:09:51 UTC | refactor(compiler-cli): restrict `read` option values for signal-based queries (#54257) The `read` option for queries can rely on lexical variables inside the class. These constructs are fine from a technical perspective in TypeScript, but in practice, when the component/directive definition is being created, the read value is extracted into the definition, **outside** of the class. This breaks `this` references. To fix this, we are restricting the `read` option to literal values. Similar to `descendants`. Literal references are in practice constructs like: - `read: bla.X` - `read: X` where `bla` or `X` is never a `ThisKeywoord`- hence fixing the issue and also simplifying the patterns for easier single file compilation. PR Close #54257 | 06 February 2024, 16:04:10 UTC |
902481b | Paul Gschwendtner | 05 February 2024, 14:08:29 UTC | refactor(compiler-cli): add JIT transform for signal-based queries (#54257) This commit adds a JIT transform for signal-based queries, so that queries are working as expected in JIT environments like `ng test` where decorator metadata is needed as a prerequisite for the component definition creation. This is similar to the JIT transforms for signal inputs etc. PR Close #54257 | 06 February 2024, 16:04:10 UTC |
3514268 | Paul Gschwendtner | 05 February 2024, 14:07:23 UTC | refactor(compiler-cli): extract common JIT transform helper into transform API (#54257) Extracts common JIT transform helper into the transform API, so that those helpers can be re-used for output, model, queries and inputs. PR Close #54257 | 06 February 2024, 16:04:10 UTC |
1d077fc | Paul Gschwendtner | 05 February 2024, 14:06:43 UTC | refactor(compiler-cli): expose query function detection logic for JIT transform (#54257) This commit exposes the query function detection logic so that it can be used in the JIT transform later on. PR Close #54257 | 06 February 2024, 16:04:10 UTC |
4851453 | Paul Gschwendtner | 06 February 2024, 15:09:58 UTC | ci: add debug information for failing firebase deploy (#54275) Adding debug information for failing firebase deploy, hoping to yield information about the missing resource. The next multi-site seems to be failing, but is available. PR Close #54275 | 06 February 2024, 15:23:13 UTC |
99bfbab | Pawel Kozlowski | 06 February 2024, 00:27:23 UTC | refactor(core): break circular dependencies in preparation for queries as signals (#54103) Break circular dependencies by using type imports and code moves. PR Close #54103 | 06 February 2024, 15:04:36 UTC |
84d1fa7 | Pawel Kozlowski | 04 February 2024, 23:02:58 UTC | refactor(core): pull compileNgModuleFactory out of application_ref (#54103) The compileNgModuleFactory dont need to be in the application_ref file (in fact the whole logic has little to do with ApplicationRef and it is not even called from the application_ref). Performing this move to avoid circular dependencies when the new query as signals authoring functions are exported. PR Close #54103 | 06 February 2024, 15:04:36 UTC |
3a2ce9e | Pawel Kozlowski | 04 February 2024, 20:00:06 UTC | refactor(core): add error code for required query results (#54103) This commit introduces a dedicated error code for queries that require results but none are available. PR Close #54103 | 06 February 2024, 15:04:36 UTC |
20008a6 | Pawel Kozlowski | 26 January 2024, 18:15:31 UTC | refactor(core): rework runtime implementation to simplify and fix issues (#54103) This commit changes the approach to the reactive node representing query results: instead of creating a custom node type we can use a computed - the main change to get there is representing dirty change notification as a signal (a counter updated every time a query changes its dirty status). This change is dictated by simplification (we can avoid creation of a custom signal type) as well as fixes to the multiple issues not covered by the initial implementation: - assuring referential stability of results (ex.: the same array instance returned from child queries until results change); - per-view results collection to avoid a situation where accessing query results during view creation would return partial / inconsistent results; - proper refresh of query results for both live and non-connected consumers. All the above cases are covered by the additional tests in this commit. PR Close #54103 | 06 February 2024, 15:04:36 UTC |
1aa63c1 | Pawel Kozlowski | 02 February 2024, 13:58:16 UTC | refactor(core): enable content query as signal tests (#54103) This commit adds tests for content queries and fixes the arguments order in the contentQuerySignal instruction, thus fixing a bug discovered while adding tests. PR Close #54103 | 06 February 2024, 15:04:36 UTC |
26b11b5 | Pawel Kozlowski | 26 January 2024, 18:02:30 UTC | test(core): convert query-as-signals test to the compiled ones (#54103) This commits converts the hand-written tests into their usual, compiled form. We can perform this change now since the compiler bits of the queries-as-signal story landed. PR Close #54103 | 06 February 2024, 15:04:36 UTC |
e46c081 | Jessica Janiuk | 05 February 2024, 18:13:23 UTC | Revert "fix(compiler-cli): consider the case of duplicate Angular decorators in local compilation diagnostics (#54139)" (#54264) This reverts commit 4b1d948b36285ec6d80dbe93e0b92133f9d4be94. PR Close #54264 | 05 February 2024, 18:18:47 UTC |
bd43aa3 | Jessica Janiuk | 05 February 2024, 18:13:10 UTC | Revert "fix(compiler-cli): allow custom/duplicate decorators for @Injectable classes in local compilation mode (#54139)" (#54264) This reverts commit a592904c691844d2c1aed00bd914edabef49f9b1. PR Close #54264 | 05 February 2024, 18:18:47 UTC |
a2af706 | Jessica Janiuk | 05 February 2024, 18:08:23 UTC | Revert "fix(compiler-cli): forbid custom/duplicate decorator when option `forbidOrphanComponents` is set (#54139)" (#54264) This reverts commit 96bcf4fb1208d1f073784a2cde4a03553e905807. PR Close #54264 | 05 February 2024, 18:18:47 UTC |
d339941 | Jason Warner | 03 February 2024, 21:02:07 UTC | docs: add Jason Warner to GDE resources (#54237) PR Close #54237 | 05 February 2024, 16:40:57 UTC |
1090570 | Andrew Kushnir | 04 February 2024, 01:31:39 UTC | refactor(core): avoid reusing argument name as a local const (#54239) This refactoring renames a local variable to make sure we do not reuse an argument name, which can lead to confusion and bugs. PR Close #54239 | 05 February 2024, 15:15:17 UTC |
90fb623 | Andrew Kushnir | 04 February 2024, 01:29:25 UTC | refactor(core): create pending task while defer block loading is in progress (#54239) This commit updates the logic of defer blocks to create an internal pending task to indicate that an application is not yet stable. This change would be helpful for zoneless applications. PR Close #54239 | 05 February 2024, 15:15:17 UTC |
f5e5543 | Matthieu Riegler | 04 February 2024, 11:42:16 UTC | docs: remove an outdated comment. (#54243) Note: We still expect `ngOnChanges` to not be supported in future signal components. PR Close #54243 | 05 February 2024, 15:09:40 UTC |
8ac4f7d | Paul Gschwendtner | 05 February 2024, 13:28:32 UTC | refactor: support multiple acceptance spec files with JIT transforms (#54253) Updates the acceptance authoring test compiler targets to support multiple spec files. This will be useful for output, model, inputs and queries. PR Close #54253 | 05 February 2024, 15:09:00 UTC |
6cb47a7 | Paul Gschwendtner | 02 February 2024, 14:23:05 UTC | test: verify `output()` in signals integration test (#54217) Adds `output()` to the signal inputs integration test to verify full integration with the Angular CLI. In the future we may consider renaming the test to something less specific to signal inputs, but for now this serves the purpose and `output()` is a closely related part to signal-based inputs. it doesn't warrant creating another new integration test, as those are quite expensive to maintain and run. PR Close #54217 | 05 February 2024, 15:08:35 UTC |
efcec0a | Paul Gschwendtner | 02 February 2024, 14:20:32 UTC | refactor(core): improve type safety for `listener` instruction (#54217) The `listener` instruction currently always assumes RxJS subscribables, and verifies this via `isSubscribable`. The type narrowing is not ignored and the type remains `any` given the `ngDevMode` check. This commit improves type safety, and actually switches to a dedicated interface for "output subscribable" values. This is needed because `Subscribable` from `RxJS` is typed to expect an observer in object literal form- which is not correct and doesn't apply to `EventEmitter` and matches the form of `.subscribe` we are using in the `listener` instruction. PR Close #54217 | 05 February 2024, 15:08:35 UTC |
02fdd8d | Paul Gschwendtner | 02 February 2024, 14:19:19 UTC | test: add tests to verify language-service supports `output()` function (#54217) Adds unit tests to verify that the language service supports the `output()` function with completions, and definition jumping. PR Close #54217 | 05 February 2024, 15:08:35 UTC |
ee635f9 | Paul Gschwendtner | 02 February 2024, 14:18:51 UTC | test: add language-service test for type definition of signal inputs (#54217) Adds an extra unit test for the language-service to verify that type definitions for signal-based inputs can be resolved. PR Close #54217 | 05 February 2024, 15:08:35 UTC |
b285b14 | Paul Gschwendtner | 02 February 2024, 14:18:04 UTC | refactor(compiler-cli): introduce JIT transform for new `output()` initializer API (#54217) Similar to `input()`, initializer-based `output()`'s need to be transformed in JIT to be annotated with an `@Output()` decorator. This is necessary so that Angular can statically collect all defined outputs without instantiating the class (which would not be possible upon directive definition computation). This commit introduces a transform next to the input transform that automatically runs with the Angular CLI and `ng test`. PR Close #54217 | 05 February 2024, 15:08:35 UTC |
55040fb | Paul Gschwendtner | 02 February 2024, 14:17:46 UTC | test: add type check diagnostic tests for `output()` API (#54217) Adds type check diagnostic tests for the `output()` API. This is necessary because we are maintaining a separate emitter for `output()` as with the current design (still discussed - but this is a starting foundation). Note: `OutputEmitter` currently does not publicly expose `.subscribe`, while the testing infrastructure exposes it for now. That is because we are still discussing this before making changes in the TCB to account for the case where `.subscribe` might be `@internal` ultimately. PR Close #54217 | 05 February 2024, 15:08:35 UTC |
0e9e401 | Paul Gschwendtner | 02 February 2024, 14:00:11 UTC | test: generalize type check scenario testing helpers (#54217) Generalizes the type check table scenario testing infrastructure so that it can also be used for testing outputs in a table-scheme without a lot of TS code repetition. PR Close #54217 | 05 February 2024, 15:08:34 UTC |
aa4157c | Paul Gschwendtner | 02 February 2024, 14:31:40 UTC | test: add ngtsc compiler test for `output()` (#54217) Adds an ngtsc diagnostic and compilation output test for `output()`. The test will verify certain recognition restrictions and ensures that diagnostics are raised, in addition to proper full compilation output being generated (aside from the compliance tests verifying output more closely). PR Close #54217 | 05 February 2024, 15:08:34 UTC |
65de61b | Paul Gschwendtner | 02 February 2024, 14:30:53 UTC | test: add compliance output tests for `output()` (#54217) Adds compliance output tests for `output()` to verify that we are emitting proper full compilation output, as well as proper partial compilation output that can be linked to match the full output. PR Close #54217 | 05 February 2024, 15:08:34 UTC |
c05e104 | Paul Gschwendtner | 02 February 2024, 14:28:24 UTC | refactor(core): introduce `output()` signature and runtime code (#54217) This commit introduces the `output()` function and corresponding runtime code. In practice, `output()` will defer to `EventEmitter` as outlined in the RFC, but we are considering limiting the type to a minimal version that is not coupled with RxJS, less complex, and also has better type safety around emitting of values. E.g. currently `EventEmitter.emit` can always be called without any value, even though the output may be typed to always pass around values of type `T`. This could cause subtle and confusing bugs. PR Close #54217 | 05 February 2024, 15:08:34 UTC |
f7da77b | Paul Gschwendtner | 02 February 2024, 14:26:52 UTC | refactor(compiler-cli): detect `output()` function (#54217) As we are introducing the new `output()` function as an inituive alternative to `@Output()` that matches with signal-based inputs, this commit prepares the compiler to detect such initializer-based outputs. PR Close #54217 | 05 February 2024, 15:08:34 UTC |
96bcf4f | Payam Valadkhan | 29 January 2024, 02:17:01 UTC | fix(compiler-cli): forbid custom/duplicate decorator when option `forbidOrphanComponents` is set (#54139) The deps tracker which is responsible to track orphan components does not work for classes mutated by custom decorator. Some work needed to make this happen (tracked in b/320536434). As a result, with option `forbidOrphanComponents` being true the deps tracker will falsely report any component as orphan if it or its NgModule have custom/duplicate decorators. So it is unsafe to use this option in the presence of custom/duplicate decorator and we disable it until it is made compatible. Note that applying custom/duplicate decorators to `@Injectable` classes is ok since these classes never make it into the deps tracker. So we excempt them. PR Close #54139 | 05 February 2024, 15:07:40 UTC |
a592904 | Payam Valadkhan | 30 January 2024, 16:01:18 UTC | fix(compiler-cli): allow custom/duplicate decorators for @Injectable classes in local compilation mode (#54139) Custom/duplicate decorators break the deps tracker in local mode. But deps tracker only deals with non-injectable classes. So applying custom/duplicate decorators to `@Injectable` only classes does not disturb deps tracker and local compilation in general. There are also ~ 100 such cases in g3 which cannot be cleaned up. PR Close #54139 | 05 February 2024, 15:07:40 UTC |
4b1d948 | Payam Valadkhan | 29 January 2024, 04:47:39 UTC | fix(compiler-cli): consider the case of duplicate Angular decorators in local compilation diagnostics (#54139) For cases like this: ``` @Component({...}) @Component({...}) export class SomeComp { } ``` The `DecoratorHandler.detect` apparantly matches only one of the `@Component` decorator, leaving the other undetected which will be transformed by TS decorator helper and that breaks local compilation runtimes. But the error message only mentioned "custom" decorator, while in this case it is a "duplicate Angular" decorator. The respective error message is updated thus. PR Close #54139 | 05 February 2024, 15:07:40 UTC |