#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
- id: "angular-animate@1.7.2"
- id: "angular-cookies@1.7.2"
- id: "angular-multiple-transclusion@1.0.0"
- id: "angular-resource@1.7.2"
- id: "angular-sanitize@1.7.2"
- id: "angular-ui-bootstrap@2.5.6"
- id: "angular-ui-router@0.3.2"
- id: "angular-xeditable@0.4.0"
- id: "angular@1.7.2"
- id: "argparse@1.0.10"
- id: "bootstrap@3.3.7"
- id: "clipboard@1.5.16"
- id: "codemirror@5.39.2"
- id: "commander@2.16.0"
- id: "d3-array@1.2.0"
- id: "d3-axis@1.0.8"
- id: "d3-brush@1.0.4"
- id: "d3-chord@1.0.4"
- id: "d3-collection@1.0.4"
- id: "d3-color@1.0.3"
- id: "d3-dispatch@1.0.3"
- id: "d3-drag@1.1.1"
- id: "d3-dsv@1.0.5"
- id: "d3-ease@1.0.3"
- id: "d3-force@1.0.6"
- id: "d3-format@1.2.0"
- id: "d3-geo@1.6.4"
- id: "d3-hierarchy@1.1.5"
- id: "d3-interpolate@1.1.5"
- id: "d3-path@1.0.5"
- id: "d3-polygon@1.0.3"
- id: "d3-quadtree@1.0.3"
- id: "d3-queue@3.0.7"
- id: "d3-random@1.1.0"
- id: "d3-request@1.0.5"
- id: "d3-scale@1.0.6"
- id: "d3-selection@1.1.0"
- id: "d3-shape@1.2.0"
- id: "d3-time-format@2.0.5"
- id: "d3-time@1.0.7"
- id: "d3-timer@1.0.6"
- id: "d3-transition@1.1.0"
- id: "d3-voronoi@1.1.2"
- id: "d3-zoom@1.5.0"
- id: "d3@4.10.0"
- id: "delegate@3.2.0"
- id: "encoding@0.1.12"
- id: "es6-promise@4.2.4"
- id: "esprima@4.0.1"
- id: "font-awesome@4.7.0"
- id: "good-listener@1.2.2"
- id: "iconv-lite@0.4.23"
- id: "identicon.js@1.3.0"
- id: "is-stream@1.1.0"
- id: "isomorphic-fetch@2.2.1"
- id: "jquery@1.12.4"
- id: "js-yaml@3.12.0"
- id: "jsonschema@1.2.4"
- id: "jssha@2.3.1"
- id: "lodash@4.17.10"
- id: "moment@2.22.2"
- id: "ngclipboard@1.1.2"
- id: "node-fetch@1.7.3"
- id: "normalizr@2.3.1"
- id: "rw@1.3.3"
- id: "rxjs@5.5.11"
- id: "safer-buffer@2.1.2"
- id: "select@1.1.2"
- id: "sprintf-js@1.0.3"
- id: "symbol-observable@1.0.1"
- id: "tiny-emitter@1.2.0"
- id: "whatwg-fetch@2.0.4"
- id: "xmlhttprequest@1.8.0"
