include_defs('//lib/js.defs')

# WHEN REVIEWING NEW NPM_BINARY RULES:
#
# You must check licenses in the transitive closure of dependencies to ensure
# they can be used by Gerrit. (npm binaries are not distributed with Gerrit
# releases, so we are less restrictive in our selection of licenses, but we
# still need to do a sanity check.)
#
# To do this:
#   npm install -g license-checker
#   mkdir /tmp/npmtmp
#   cd /tmp/npmtmp
#   npm install <package>@<version>
#   license-checker
# (Piping to grep -o 'licenses:.*' and/or sort -u may make the output saner.)

npm_binary(
  name = 'bower',
  version = '1.6.5',
  sha1 = '59d457122a161e42cc1625bbab8179c214b7ac11',
)

npm_binary(
  name = 'crisper',
  version = '2.0.1',
  sha1 = 'b3b8bacc1f6d119af26664b8620e6a978aa7f7d3',
  repository = GERRIT,
)

npm_binary(
  name = 'vulcanize',
  version = '1.14.0',
  sha1 = '91eac280d031b5bbcafb5f86bb6ed30515fa2564',
  repository = GERRIT,
)

# ## Adding Bower component dependencies
#
# 1. Add a dummy bower_component rule to this file, specifying the semantic
#    version you want to use. The actual version will be filled in by Bower,
#    after evaluating the full dependency tree.
#
#      bower_component(
#        name = 'somepackage',
#        package = 'someauthor/somepackage',
#        version = 'TODO',
#        semver = '~1.0.0',
#        license = 'DO_NOT_DISTRIBUTE'
#      )
#
# 2. Add your bower_component as a dep to a bower_components rule.
#
#      bower_components(
#        name = 'polygerrit_components',
#        deps = [
#          '//lib/js:foo',
#          '//lib/js:somepackage',  # NEW
#        ],
#      )
#
# 3. Run bower2buck.py.
#
#      buck run //tools/js:bower2buck -- -o /tmp/newbuck
#
# 4. Use your favorite diff tool to merge the output in newbuck with this file.
#    bower2buck reevaluates semantic versions and may upgrade some packages, so
#    you may need to make changes beyond the new component that was added.
#
#      meld /tmp/newbuck lib/js/BUCK
#
#
# ## Updating Bower component dependencies
#
# Use the same procedure as for adding dependencies, except just change the
# version number of the existing bower_component rather than adding a new rule.

bower_component(
  name = 'font-roboto',
  package = 'polymerelements/font-roboto',
  version = '1.0.1',
  license = 'polymer',
  sha1 = '735676217f67221903d6be10cc2fb1b336bed13f',
)

bower_component(
  name = 'iron-a11y-keys-behavior',
  package = 'polymerelements/iron-a11y-keys-behavior',
  version = '1.1.0',
  deps = [':polymer'],
  license = 'polymer',
  sha1 = '0b7962ed8409336652da4b4e83d052dbe53d4e1a',
)

bower_component(
  name = 'iron-ajax',
  package = 'polymerelements/iron-ajax',
  version = '1.1.0',
  deps = [
    ':polymer',
    ':promise-polyfill',
  ],
  license = 'polymer',
  sha1 = 'f94a3a3d847842c49def41e27da42c7c94f8d7c7',
)

bower_component(
  name = 'iron-autogrow-textarea',
  package = 'polymerelements/iron-autogrow-textarea',
  version = '1.0.10',
  deps = [
    ':iron-behaviors',
    ':iron-flex-layout',
    ':iron-form-element-behavior',
    ':iron-validatable-behavior',
    ':polymer',
  ],
  license = 'polymer',
  sha1 = 'd368240e60a4b02ffc731ad8f45f3c8bbf47e9bd',
)

bower_component(
  name = 'iron-behaviors',
  package = 'polymerelements/iron-behaviors',
  version = '1.0.11',
  deps = [
    ':iron-a11y-keys-behavior',
    ':polymer',
  ],
  license = 'polymer',
  sha1 = 'e0fcfcd8696381fc78ff62261ba333e5e133f39d',
)

bower_component(
  name = 'iron-dropdown',
  package = 'polymerelements/iron-dropdown',
  version = '1.0.6',
  deps = [
    ':iron-a11y-keys-behavior',
    ':iron-behaviors',
    ':iron-overlay-behavior',
    ':iron-resizable-behavior',
    ':neon-animation',
    ':polymer',
  ],
  license = 'polymer',
  sha1 = 'b54ff404ce5535919979bb4488e4b6ae9146fc5a',
)

bower_component(
  name = 'iron-fit-behavior',
  package = 'polymerelements/iron-fit-behavior',
  version = '1.0.5',
  deps = [':polymer'],
  license = 'polymer',
  sha1 = 'c0273d22531451a1e64f447971ad16b357a7f7e0',
)

bower_component(
  name = 'iron-flex-layout',
  package = 'polymerelements/iron-flex-layout',
  version = '1.2.2',
  deps = [':polymer'],
  license = 'polymer',
  sha1 = '3ca2fbbf3b56d95677663f78304262dee68753c3',
)

bower_component(
  name = 'iron-form-element-behavior',
  package = 'polymerelements/iron-form-element-behavior',
  version = '1.0.6',
  deps = [':polymer'],
  license = 'polymer',
  sha1 = '8d9e6530edc1b99bec1a5c34853911fba3701220',
)

bower_component(
  name = 'iron-input',
  package = 'polymerelements/iron-input',
  version = '1.0.6',
  deps = [
    ':iron-validatable-behavior',
    ':polymer',
  ],
  license = 'polymer',
  sha1 = '2d3eedf0a26046c0e828b1ce3d5b102ee1d0ab19',
)

bower_component(
  name = 'iron-meta',
  package = 'polymerelements/iron-meta',
  version = '1.1.1',
  deps = [':polymer'],
  license = 'polymer',
  sha1 = 'e06281b6ddb3355ceca44975a167381b1fd72ce5',
)

bower_component(
  name = 'iron-overlay-behavior',
  package = 'polymerelements/iron-overlay-behavior',
  version = '1.1.1',
  deps = [
    ':iron-fit-behavior',
    ':iron-resizable-behavior',
    ':polymer',
  ],
  license = 'polymer',
  sha1 = '98d80ea1cbee2631553d4fbc98da6cbb25748a4f',
)

bower_component(
  name = 'iron-resizable-behavior',
  package = 'polymerelements/iron-resizable-behavior',
  version = '1.0.2',
  deps = [':polymer'],
  license = 'polymer',
  sha1 = '954e82c70b5412d20e7b4d65195a844bb6dc9a07',
)

bower_component(
  name = 'iron-selector',
  package = 'polymerelements/iron-selector',
  version = '1.0.8',
  deps = [':polymer'],
  license = 'polymer',
  sha1 = '7559560733882656bf479b620669a1d60c3bda21',
)

bower_component(
  name = 'iron-test-helpers',
  package = 'polymerelements/iron-test-helpers',
  version = '1.0.6',
  deps = [':polymer'],
  license = 'DO_NOT_DISTRIBUTE',
  sha1 = 'c0f7c7f010ca3c63fb08ae0d9462e400380cde2c',
)

bower_component(
  name = 'iron-validatable-behavior',
  package = 'polymerelements/iron-validatable-behavior',
  version = '1.0.5',
  deps = [
    ':iron-meta',
    ':polymer',
  ],
  license = 'polymer',
  sha1 = '5a68250d6d9abcd576f116dc4fc7312426323883',
)

bower_component(
  name = 'neon-animation',
  package = 'polymerelements/neon-animation',
  version = '1.0.8',
  deps = [
    ':iron-meta',
    ':iron-resizable-behavior',
    ':iron-selector',
    ':paper-styles',
    ':polymer',
    ':web-animations-js',
  ],
  license = 'polymer',
  sha1 = 'c5f3700e9259554db14f9dfddb290a42c099d88a',
)

bower_component(
  name = 'page',
  package = 'visionmedia/page.js',
  version = '1.6.4',
  license = 'page.js',
  sha1 = 'cc442386d4e392be26c85873f463db76fafbaeaf',
)

bower_component(
  name = 'paper-styles',
  package = 'polymerelements/paper-styles',
  version = '1.0.13',
  deps = [
    ':font-roboto',
    ':iron-flex-layout',
    ':polymer',
  ],
  license = 'polymer',
  sha1 = 'e0bfdadfe10e070f39c16aa784de16734eed25a6',
)

bower_component(
  name = 'polymer',
  package = 'polymer/polymer',
  version = '1.2.2',
  deps = [':webcomponentsjs'],
  license = 'polymer',
  sha1 = '7f4033438425584d8912a80614d1a4f754438e15',
)

bower_component(
  name = 'promise-polyfill',
  package = 'polymerlabs/promise-polyfill',
  version = '1.0.0',
  deps = [':polymer'],
  license = 'promise-polyfill',
  sha1 = 'a3b598c06cbd7f441402e666ff748326030905d6',
)

bower_component(
  name = 'test-fixture',
  package = 'polymerelements/test-fixture',
  version = '1.0.3',
  semver = '^1.0.0',
  license = 'DO_NOT_DISTRIBUTE',
  sha1 = '21192d554ff6ad7eea894ca751c73b6bc46867dc',
)

bower_component(
  name = 'web-animations-js',
  package = 'web-animations/web-animations-js',
  version = '2.1.2',
  license = 'Apache2.0',
  sha1 = '3e2f4648b770183f577cb5171785cfedcb3a960b',
)

bower_component(
  name = 'webcomponentsjs',
  package = 'webcomponentsjs',
  version = '0.7.17',
  license = 'polymer',
  sha1 = '36e29cfe21caa71322a0b5026d7d423c33c0426f',
)
