#
# 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-multiple-transclusion@1.0.0"
- id: "angular-ui-bootstrap@2.5.6"
- id: "angular@1.7.2"
- id: "argparse@1.0.10"
- id: "bootstrap@3.3.7"
- id: "codemirror@5.39.2"
- id: "esprima@4.0.1"
- id: "identicon.js@1.3.0"
- id: "js-yaml@3.12.0"
- id: "jsonschema@1.2.4"
- id: "jssha@2.3.1"
- id: "lodash@4.17.10"
- id: "rxjs@5.5.11"
- id: "sprintf-js@1.0.3"
- id: "symbol-observable@1.0.1"
