<!--
  BEFORE UPDATING THIS FILE, READ THIS.

  This file is automatically generated during release. It is important for you to not update
  README directly.

  - If you need to change the content, update `scripts/templates/readme.ejs`
  - If you need to add/remove a package or a link, update the .monorepo.json file instead.

  Any changes to README.md directly will result in a failure on CI.
-->

# Angular DevKit
### Development tools and libraries specialized for Angular

This is the home of the DevKit and the Angular CLI code. You can find the Angular CLI specific README
[here](https://github.com/angular/angular-cli/blob/master/packages/angular/cli/README.md).

<%# Badges are created here. %>
<% for (const section of monorepo.badges) {
  for (const { label, image, title, url } of section) {
    if (image) {
      %>[![<%= label %>](<%= image %>)]<%
    } else {
      %>[<%= title %>]<%
    }
    %>(<%= url %>) <%
  } %>

<% } %>

----

This is the home for all the tools and libraries built to assist developers with their Angular applications.

### Quick Links
<% for (const link of Object.keys(monorepo.links)) {
  %>[<%= link %>](<%= monorepo.links[link] %>) | <%
} %>
<% for (const link of Object.keys(monorepo.links)) {
%>|---<%
} %>|


## The Goal of DevKit

Our goal is to provide a large set of libraries that can be used to manage, develop, deploy and
analyze your code.

This is the extension of the Angular CLI Project. Once this set of tools is done, the Angular CLI
as it is today will become one of many interfaces available to perform those tasks. Everything
will also be available to third party tools and IDEs.


<%
  const sections = [
    ...new Set(Object.keys(packages).map(pkgName => monorepo.packages[pkgName].section ))
  ].filter(x => x && x != 'Tooling');
  sections.unshift(undefined);
%>

## Tools

| Project | Package | Version | Links |
|---|---|---|---|
<%
for (const pkgName of Object.keys(packages)) {
  const pkg = packages[pkgName];
  const mrPkg = monorepo.packages[pkgName];

  if (pkg.private) {
    continue;
  }
  if (mrPkg.section != 'Tooling') {
    continue;
  }

%>**<%= mrPkg.name%>**<%
  %> | [`<%= pkgName %>`](https://npmjs.com/package/<%= pkgName %>)<%
  %> | [![latest](https://img.shields.io/npm/v/<%= encode(pkgName) %>/latest.svg)](https://npmjs.com/package/<%= pkgName %>)<%
  %> | <% for (const link of mrPkg.links || []) {
%>[![<%= link.label %>](https://img.shields.io/badge/<%= link.label %>--<%= link.color || 'green' %>.svg)](<%= link.url %>)<%
}
if (mrPkg.snapshotRepo) {
%> [![snapshot](https://img.shields.io/badge/snapshot--blue.svg)](https://github.com/<%= mrPkg.snapshotRepo %>)<%
} %>
<% } %>


## Packages
This is a monorepo which contains many packages:

<% for (const section of sections) {

%><%= section ? '#### ' + section : '' %>

| Project | Package | Version | Links |
|---|---|---|---|
<%
for (const pkgName of Object.keys(packages)) {
  const pkg = packages[pkgName];
  const mrPkg = monorepo.packages[pkgName];

  if (pkg.private) {
    continue;
  }
  if (mrPkg.section != section) {
    continue;
  }

  %>**<%= mrPkg.name%>**<%
  %> | [`<%= pkgName %>`](https://npmjs.com/package/<%= pkgName %>)<%
  %> | [![latest](https://img.shields.io/npm/v/<%= encode(pkgName) %>/latest.svg)](https://npmjs.com/package/<%= pkgName %>)<%
  %> | <% for (const link of mrPkg.links || []) {
    %>[![<%= link.label %>](https://img.shields.io/badge/<%= link.label %>--<%= link.color || 'green' %>.svg)](<%= link.url %>)<%
  } 
  if (mrPkg.snapshotRepo) { 
    %> [![snapshot](https://img.shields.io/badge/snapshot--blue.svg)](https://github.com/<%= mrPkg.snapshotRepo %>)<%
  } %>
<% } %>
<% } %>
