diff --git a/packages/fxa-content-server/.bowerrc b/packages/fxa-content-server/.bowerrc deleted file mode 100644 index dbccef200e..0000000000 --- a/packages/fxa-content-server/.bowerrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "directory": "app/bower_components", - "analytics": false -} diff --git a/packages/fxa-content-server/.eslintignore b/packages/fxa-content-server/.eslintignore index 745e3f3ed1..e6688bb06e 100644 --- a/packages/fxa-content-server/.eslintignore +++ b/packages/fxa-content-server/.eslintignore @@ -1,4 +1,3 @@ .tmp/** -app/bower_components/** app/scripts/vendor/** dist/** diff --git a/packages/fxa-content-server/.gitignore b/packages/fxa-content-server/.gitignore index c91a7cfab8..c2caf3d4ad 100644 --- a/packages/fxa-content-server/.gitignore +++ b/packages/fxa-content-server/.gitignore @@ -18,9 +18,6 @@ npm-debug.log* node_modules browser_modules -### Bower ### -app/bower_components - ### Babel compiled scripts ### .es5 .es5cache @@ -30,7 +27,6 @@ app/bower_components !.gitignore !.git* !.eslintrc -!.bowerrc !.editorconfig !.npmignore !.travis.yml diff --git a/packages/fxa-content-server/.travis.yml b/packages/fxa-content-server/.travis.yml index ea01137d5e..b25ada45df 100644 --- a/packages/fxa-content-server/.travis.yml +++ b/packages/fxa-content-server/.travis.yml @@ -31,7 +31,6 @@ group: deprecated-2017Q3 cache: directories: - node_modules - - app/bower_components - deps/node_modules/fxa-auth-server/node_modules - deps/node_modules/fxa-profile-server/node_modules - deps/node_modules/fxa-oauth-server/node_modules diff --git a/packages/fxa-content-server/CONTRIBUTING.md b/packages/fxa-content-server/CONTRIBUTING.md index 69c162b5d6..581fd1573e 100644 --- a/packages/fxa-content-server/CONTRIBUTING.md +++ b/packages/fxa-content-server/CONTRIBUTING.md @@ -110,10 +110,10 @@ reference GitHub issues that this commit **Closes**. ## Dependencies and Tools -### Bower +### npm -We use [Bower](http://bower.io/) to manage front-end packages. These components are [automatically -installed](https://github.com/mozilla/fxa-content-server/blob/master/package.json#L7) when you install this project and are placed into the `app` directory. +We use [npm](http://npmjs.com/) to manage all dependencies. These components are [automatically +installed](https://github.com/mozilla/fxa-content-server/blob/master/package.json#L7) when you install this project. ### L10N diff --git a/packages/fxa-content-server/Dockerfile-build b/packages/fxa-content-server/Dockerfile-build index 4d4d7cf4c7..12b5b9107a 100644 --- a/packages/fxa-content-server/Dockerfile-build +++ b/packages/fxa-content-server/Dockerfile-build @@ -11,8 +11,6 @@ ENTRYPOINT ["/usr/local/bin/dumb-init", "--"] RUN apk add --no-cache git -COPY .bowerrc .bowerrc -COPY bower.json bower.json COPY npm-shrinkwrap.json npm-shrinkwrap.json COPY package.json package.json COPY scripts/download_l10n.sh scripts/download_l10n.sh diff --git a/packages/fxa-content-server/app/styles/_modules.scss b/packages/fxa-content-server/app/styles/_modules.scss index 87d228d5eb..0be1be6ab1 100644 --- a/packages/fxa-content-server/app/styles/_modules.scss +++ b/packages/fxa-content-server/app/styles/_modules.scss @@ -1,5 +1,5 @@ -@import '../bower_components/jquery-modal/jquery.modal'; -@import '../bower_components/fxa-checkbox/checkbox'; +@import '../../node_modules/jquery-modal/jquery.modal'; +@import '../../node_modules/fxa-checkbox/checkbox'; @import 'modules/iframe'; @import 'modules/branding'; @import 'modules/tooltip'; diff --git a/packages/fxa-content-server/app/styles/main.scss b/packages/fxa-content-server/app/styles/main.scss index 06648b73f9..486c26be45 100644 --- a/packages/fxa-content-server/app/styles/main.scss +++ b/packages/fxa-content-server/app/styles/main.scss @@ -1,3 +1,4 @@ +@import '../../node_modules/normalize.css/normalize'; @import 'variables'; @import 'mixins'; @import 'breakpoints'; diff --git a/packages/fxa-content-server/app/tests/lib/blanket_lcov.js b/packages/fxa-content-server/app/tests/lib/blanket_lcov.js index d2453665ad..51b43e0fb7 100644 --- a/packages/fxa-content-server/app/tests/lib/blanket_lcov.js +++ b/packages/fxa-content-server/app/tests/lib/blanket_lcov.js @@ -3,7 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /** - * Based on bower_components/blanket/src/reporters/lcov_reporter.js + * Based on node_modules/blanket/src/reporters/lcov_reporter.js */ //lcov_reporter diff --git a/packages/fxa-content-server/app/tests/test_start.js b/packages/fxa-content-server/app/tests/test_start.js index ddc247d506..127f03b02b 100644 --- a/packages/fxa-content-server/app/tests/test_start.js +++ b/packages/fxa-content-server/app/tests/test_start.js @@ -261,9 +261,6 @@ const runTests = function () { }; var filterFilesFromStack = [ - 'bower_components/blanket/dist/qunit/blanket.js', - 'bower_components/p/p.js', - 'bower_components/requirejs/require.js', 'tests/test_start.js' ]; diff --git a/packages/fxa-content-server/bower.json b/packages/fxa-content-server/bower.json deleted file mode 100644 index ab517f114b..0000000000 --- a/packages/fxa-content-server/bower.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "fxa-content-server", - "version": "0.0.0", - "dependencies": { - "Duration.js": "duration.js#3.6.0", - "backbone": "1.1.1", - "blanket": "1.1.5", - "blueimp-canvas-to-blob": "2.1.0", - "chai": "1.8.1", - "cocktail": "0.5.9", - "easteregg": "https://github.com/mozilla/fxa-easter-egg.git#ab20cd517cf8ae9feee115e48745189d28e13bc3", - "es6-promise": "https://github.com/stefanpenner/es6-promise.git#4.1.1", - "fxa-checkbox": "mozilla/fxa-checkbox#7f856afffd394a144f718e28e6fb79092d6ccddd", - "fxa-crypto-relier": "https://github.com/mozilla/fxa-crypto-relier.git#v2.1.0", - "html5shiv": "3.7.2", - "jquery": "3.1.0", - "jquery-modal": "https://github.com/shane-tomlinson/jquery-modal.git#0576775d1b4590314b114386019f4c7421c77503", - "jquery-simulate": "1.0.1", - "jquery-ui": "1.11.0", - "jquery-ui-touch-punch": "https://github.com/zaach/jquery-ui-touch-punch.git#89e5a9159494de37df1e09cccf9036dda5429830", - "js-md5": "md5#0.6.0", - "mailcheck": "https://github.com/mailcheck/mailcheck.git#d995fcc1d02c124a893c2cb0fce2e0ce5f36bce4", - "mocha-blanketjs-adapter": "1.0.0", - "node-uuid": "1.4.3", - "normalize-css": "2.1.3", - "raven-js": "https://github.com/vladikoff/raven-js.git#customEndpoint-3.13.0", - "sinon": "http://sinonjs.org/releases/sinon-3.2.1.js", - "tos-pp": "https://github.com/mozilla/legal-docs.git", - "ua-parser-js": "https://github.com/vladikoff/ua-parser-js.git#643d1698aef5bed095e1264ae258902bf346175c", - "vat": "0.0.9", - "webrtc-adapter": "0.2.5" - } -} diff --git a/packages/fxa-content-server/circle.yml b/packages/fxa-content-server/circle.yml index b4556c06dd..074dc73e26 100644 --- a/packages/fxa-content-server/circle.yml +++ b/packages/fxa-content-server/circle.yml @@ -15,7 +15,7 @@ dependencies: - npm i --production - CONFIG_FILES=server/config/local.json,server/config/production.json,tests/ci/config_circleci.json node_modules/.bin/grunt build - nohup bash -c "CONFIG_FILES=server/config/local.json,server/config/production.json,tests/ci/config_circleci.json node_modules/.bin/grunt serverproc:dist &" - - npm install intern bower xmlhttprequest firefox-profile request sync-exec convict yargs requirejs leadfoot + - npm install intern xmlhttprequest firefox-profile request sync-exec convict yargs requirejs leadfoot post: - curl 127.0.0.1:3030 - /home/ubuntu/fxa-content-server/firefox/firefox --version diff --git a/packages/fxa-content-server/docs/architecture.md b/packages/fxa-content-server/docs/architecture.md index ef8b03a07b..7827b1f142 100644 --- a/packages/fxa-content-server/docs/architecture.md +++ b/packages/fxa-content-server/docs/architecture.md @@ -86,7 +86,7 @@ The profile-client communicates with the Firefox Accounts [Profile Server](https The content server web client is made up of many layers. An item is only allowed to interact with a layer below it, but not with ancestors or siblings. -[app-start.js](https://github.com/mozilla/fxa-content-server/blob/master/app/scripts/lib/app-start.js) is where the fun begins. It creates several models and a router. The router is passed a reference to several models. The router creates views. Only views are allowed to interact with templates. Models and Views use functionality provided by lib modules. vendor and bower_components are external components and should be fully self contained. The full application lifecycle is described in the section `Application lifecycle`. +[app-start.js](https://github.com/mozilla/fxa-content-server/blob/master/app/scripts/lib/app-start.js) is where the fun begins. It creates several models and a router. The router is passed a reference to several models. The router creates views. Only views are allowed to interact with templates. Models and Views use functionality provided by lib modules. vendor are external components and should be fully self contained. The full application lifecycle is described in the section `Application lifecycle`. ``` app-start | @@ -94,7 +94,7 @@ The content server web client is made up of many layers. An item is only allowed views models | templates lib | -vendor bower_components | + vendor | ``` ### Application lifecycle diff --git a/packages/fxa-content-server/grunttasks/concat.js b/packages/fxa-content-server/grunttasks/concat.js index b3a470f9ca..ffcf65ab04 100644 --- a/packages/fxa-content-server/grunttasks/concat.js +++ b/packages/fxa-content-server/grunttasks/concat.js @@ -8,7 +8,7 @@ module.exports = function (grunt) { dest: '<%= yeoman.dist %>/app.bundle.js', src: [ '<%= yeoman.dist %>/app.bundle.js', - 'app/bower_components/easteregg/src/easteregg.js' + 'node_modules/easterEgg/src/easteregg.js' ] } }); diff --git a/packages/fxa-content-server/grunttasks/concurrent.js b/packages/fxa-content-server/grunttasks/concurrent.js index 5ce69f861f..5cb593e3b6 100644 --- a/packages/fxa-content-server/grunttasks/concurrent.js +++ b/packages/fxa-content-server/grunttasks/concurrent.js @@ -6,12 +6,10 @@ module.exports = function (grunt) { grunt.config('concurrent', { dist: [ 'copy:styles', - 'copy:normalize', 'connect_fonts_copy' ], server: [ 'copy:styles', - 'copy:normalize', 'connect_fonts_copy' ], test: ['copy:styles'] diff --git a/packages/fxa-content-server/grunttasks/copy.js b/packages/fxa-content-server/grunttasks/copy.js index 89ce03a288..983d91561f 100644 --- a/packages/fxa-content-server/grunttasks/copy.js +++ b/packages/fxa-content-server/grunttasks/copy.js @@ -33,11 +33,6 @@ module.exports = function (grunt) { src: 'en/{500,502,503}.html' }] }, - // copy normalize.css to .tmp during build, this library is required by grunt-usemin to be in .tmp - normalize: { - dest: '<%= yeoman.tmp %>/bower_components/normalize-css/normalize.css', - src: 'app/bower_components/normalize-css/normalize.css' - }, strings: { files: [ { diff --git a/packages/fxa-content-server/grunttasks/copyright.js b/packages/fxa-content-server/grunttasks/copyright.js index 6856ce51b9..fbfa43d96d 100644 --- a/packages/fxa-content-server/grunttasks/copyright.js +++ b/packages/fxa-content-server/grunttasks/copyright.js @@ -10,7 +10,6 @@ module.exports = function (grunt) { }, src: [ '{,<%= yeoman.app %>/**/,grunttasks/**/,scripts/**/,server/**/,tests/**/}*.js', - '!<%= yeoman.app %>/bower_components/**', '!<%= yeoman.app %>/scripts/vendor/**' ] } diff --git a/packages/fxa-content-server/grunttasks/jsonlint.js b/packages/fxa-content-server/grunttasks/jsonlint.js index c355f982ae..ea416f4fd5 100644 --- a/packages/fxa-content-server/grunttasks/jsonlint.js +++ b/packages/fxa-content-server/grunttasks/jsonlint.js @@ -7,7 +7,6 @@ module.exports = function (grunt) { app: { src: [ '{,<%= yeoman.app %>/**/}*.json', - '!<%= yeoman.app %>/bower_components/**', '!<%= yeoman.app %>/i18n/**', '!<%= yeoman.app %>/scripts/vendor/**', '!<%= yeoman.app %>/tests/**' @@ -15,7 +14,6 @@ module.exports = function (grunt) { }, config: { src: [ - '.bowerrc', '.eslintrc' ] }, diff --git a/packages/fxa-content-server/grunttasks/rev.js b/packages/fxa-content-server/grunttasks/rev.js index 0235110a56..952768604a 100644 --- a/packages/fxa-content-server/grunttasks/rev.js +++ b/packages/fxa-content-server/grunttasks/rev.js @@ -9,7 +9,6 @@ module.exports = function (grunt) { no_children: { //eslint-disable-line camelcase files: { src: [ - '<%= yeoman.dist %>/bower_components/**/*.js', '<%= yeoman.dist %>/scripts/vendor/**/*.js', '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', '!<%= yeoman.dist %>/images/apple_app_store_button/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', diff --git a/packages/fxa-content-server/grunttasks/todo.js b/packages/fxa-content-server/grunttasks/todo.js index 10be06bcbd..f00726d718 100644 --- a/packages/fxa-content-server/grunttasks/todo.js +++ b/packages/fxa-content-server/grunttasks/todo.js @@ -8,7 +8,6 @@ module.exports = function (grunt) { files: { src: [ '<%= yeoman.app %>/**/*.{js,css,scss,html}', - '!<%= yeoman.app %>/bower_components/**', '!<%= yeoman.app %>/scripts/vendor/**', 'grunttasks/*.js', 'scripts/*.js', diff --git a/packages/fxa-content-server/grunttasks/watch.js b/packages/fxa-content-server/grunttasks/watch.js index d0d0769ce2..93f5d8bb6e 100644 --- a/packages/fxa-content-server/grunttasks/watch.js +++ b/packages/fxa-content-server/grunttasks/watch.js @@ -8,7 +8,6 @@ module.exports = function (grunt) { livereload: { files: [ '<%= yeoman.app %>/**/*.js', - '!<%= yeoman.app %>/bower_components/**', '!<%= yeoman.app %>/scripts/vendor/**' ], options: { diff --git a/packages/fxa-content-server/grunttasks/yeoman.js b/packages/fxa-content-server/grunttasks/yeoman.js index 8d2e549680..afb80e5d58 100644 --- a/packages/fxa-content-server/grunttasks/yeoman.js +++ b/packages/fxa-content-server/grunttasks/yeoman.js @@ -5,7 +5,7 @@ module.exports = function (grunt) { var TEMP_DIR = '.tmp'; var TEMPLATE_ROOT = 'server/templates'; - var TOS_PP_REPO_ROOT = 'app/bower_components/tos-pp'; + var TOS_PP_REPO_ROOT = 'node_modules/legal-docs'; grunt.config('yeoman', { /*eslint-disable camelcase */ diff --git a/packages/fxa-content-server/locale/README.md b/packages/fxa-content-server/locale/README.md index 77c7eed725..2052b555b6 100644 --- a/packages/fxa-content-server/locale/README.md +++ b/packages/fxa-content-server/locale/README.md @@ -10,7 +10,7 @@ Here are a few things to know: * Do `git add` the file you are working on as often as possible. Otherwise you might just run `grunt` and it’ll overwrite all your work. * The files that the default behavior uses to generate the content is from `fxa-content-server-l10n`, that is handled by npm install via git. -* To work locally —and not get your work overwritten by bower— use those two commands: +* To work locally use those two commands: grunt po2json grunt serverproc:test @@ -70,7 +70,7 @@ Commit the merged .po files to master and enjoy. ## Updating translations -Translators will update the `.po` files in the l10n repo, which are downloaded as a bower dependency. To convert the new translations into JSON for the app to use, run: +Translators will update the `.po` files in the l10n repo, which are downloaded via the `scripts/download_l10n.sh` script. To convert the new translations into JSON for the app to use, run: grunt l10n-create-json diff --git a/packages/fxa-content-server/npm-shrinkwrap.json b/packages/fxa-content-server/npm-shrinkwrap.json index 0b5bef7001..5ec6b73665 100644 --- a/packages/fxa-content-server/npm-shrinkwrap.json +++ b/packages/fxa-content-server/npm-shrinkwrap.json @@ -24,7 +24,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "escape-string-regexp@1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { @@ -280,7 +280,7 @@ }, "path-is-absolute": { "version": "1.0.1", - "from": "path-is-absolute@>=1.0.0 <2.0.0", + "from": "path-is-absolute@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" }, "private": { @@ -838,7 +838,7 @@ }, "babel-traverse": { "version": "6.26.0", - "from": "babel-traverse@>=6.26.0 <7.0.0", + "from": "babel-traverse@>=6.24.1 <7.0.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "dependencies": { "babel-code-frame": { @@ -1012,7 +1012,7 @@ }, "babel-traverse": { "version": "6.26.0", - "from": "babel-traverse@>=6.26.0 <7.0.0", + "from": "babel-traverse@>=6.24.1 <7.0.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "dependencies": { "babel-code-frame": { @@ -2498,7 +2498,7 @@ "dependencies": { "babel-traverse": { "version": "6.26.0", - "from": "babel-traverse@>=6.26.0 <7.0.0", + "from": "babel-traverse@>=6.24.1 <7.0.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "dependencies": { "babel-code-frame": { @@ -2968,11 +2968,33 @@ } } }, + "backbone": { + "version": "1.1.1", + "from": "backbone@1.1.1", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.1.1.tgz" + }, + "backbone.cocktail": { + "version": "0.5.9", + "from": "git://github.com/onsi/cocktail.git#87971c88e2e4f904a0984b5f236ee5dbb21ddb4a", + "resolved": "git://github.com/onsi/cocktail.git#87971c88e2e4f904a0984b5f236ee5dbb21ddb4a", + "dependencies": { + "underscore": { + "version": "1.5.2", + "from": "underscore@>=1.5.1 <1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz" + } + } + }, "bluebird": { "version": "3.5.0", "from": "bluebird@3.5.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz" }, + "blueimp-canvas-to-blob": { + "version": "2.1.0", + "from": "blueimp-canvas-to-blob@2.1.0", + "resolved": "https://registry.npmjs.org/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-2.1.0.tgz" + }, "body-parser": { "version": "1.18.2", "from": "body-parser@1.18.2", @@ -3092,11 +3114,6 @@ } } }, - "bower": { - "version": "1.8.2", - "from": "bower@1.8.2", - "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz" - }, "celebrate": { "version": "7.0.3", "from": "celebrate@7.0.3", @@ -3104,7 +3121,7 @@ "dependencies": { "escape-html": { "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", + "from": "escape-html@1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" }, "fastseries": { @@ -3130,9 +3147,9 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-12.0.0.tgz", "dependencies": { "hoek": { - "version": "4.2.0", + "version": "4.2.1", "from": "hoek@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz" + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz" }, "isemail": { "version": "3.1.1", @@ -3260,11 +3277,26 @@ }, "vary": { "version": "1.1.2", - "from": "vary@>=1.1.2 <1.2.0", + "from": "vary@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" } } }, + "duration-js": { + "version": "3.6.0", + "from": "duration-js@3.6.0", + "resolved": "https://registry.npmjs.org/duration-js/-/duration-js-3.6.0.tgz" + }, + "easterEgg": { + "version": "1.0.0", + "from": "git://github.com/mozilla/fxa-easter-egg.git#ab20cd517cf8ae9feee115e48745189d28e13bc3", + "resolved": "git://github.com/mozilla/fxa-easter-egg.git#ab20cd517cf8ae9feee115e48745189d28e13bc3" + }, + "es6-promise": { + "version": "4.1.1", + "from": "es6-promise@4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz" + }, "express": { "version": "4.16.2", "from": "express@4.16.2", @@ -3517,7 +3549,7 @@ }, "vary": { "version": "1.1.2", - "from": "vary@>=1.1.2 <1.2.0", + "from": "vary@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" } } @@ -3527,6 +3559,100 @@ "from": "extend@3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz" }, + "fxa-checkbox": { + "version": "1.1.0", + "from": "git://github.com/mozilla/fxa-checkbox.git#7f856afffd394a144f718e28e6fb79092d6ccddd", + "resolved": "git://github.com/mozilla/fxa-checkbox.git#7f856afffd394a144f718e28e6fb79092d6ccddd" + }, + "fxa-crypto-relier": { + "version": "2.1.0", + "from": "fxa-crypto-relier@2.1.0", + "resolved": "https://registry.npmjs.org/fxa-crypto-relier/-/fxa-crypto-relier-2.1.0.tgz", + "dependencies": { + "base64url": { + "version": "2.0.0", + "from": "base64url@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz" + }, + "node-hkdf": { + "version": "0.0.2", + "from": "node-hkdf@0.0.2", + "resolved": "https://registry.npmjs.org/node-hkdf/-/node-hkdf-0.0.2.tgz" + }, + "node-jose": { + "version": "0.9.4", + "from": "node-jose@0.9.4", + "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-0.9.4.tgz", + "dependencies": { + "lodash.assign": { + "version": "4.2.0", + "from": "lodash.assign@>=4.0.8 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz" + }, + "lodash.clone": { + "version": "4.5.0", + "from": "lodash.clone@>=4.3.2 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz" + }, + "lodash.fill": { + "version": "3.4.0", + "from": "lodash.fill@>=3.2.2 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.fill/-/lodash.fill-3.4.0.tgz" + }, + "lodash.flatten": { + "version": "4.4.0", + "from": "lodash.flatten@>=4.2.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" + }, + "lodash.intersection": { + "version": "4.4.0", + "from": "lodash.intersection@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.intersection/-/lodash.intersection-4.4.0.tgz" + }, + "lodash.merge": { + "version": "4.6.1", + "from": "lodash.merge@>=4.3.5 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz" + }, + "lodash.omit": { + "version": "4.5.0", + "from": "lodash.omit@>=4.2.1 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz" + }, + "lodash.partialright": { + "version": "4.2.1", + "from": "lodash.partialright@>=4.1.3 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz" + }, + "lodash.pick": { + "version": "4.4.0", + "from": "lodash.pick@>=4.2.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz" + }, + "lodash.uniq": { + "version": "4.5.0", + "from": "lodash.uniq@>=4.2.1 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + }, + "long": { + "version": "3.2.0", + "from": "long@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz" + }, + "node-forge": { + "version": "0.7.1", + "from": "node-forge@>=0.7.1 <0.8.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz" + }, + "uuid": { + "version": "3.2.1", + "from": "uuid@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz" + } + } + } + } + }, "fxa-geodb": { "version": "1.0.0", "from": "fxa-geodb@1.0.0", @@ -3597,7 +3723,7 @@ "dependencies": { "chalk": { "version": "1.1.3", - "from": "chalk@>=1.1.0 <2.0.0", + "from": "chalk@>=1.1.3 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { @@ -4024,11 +4150,6 @@ } } }, - "node-uuid": { - "version": "1.4.8", - "from": "node-uuid@>=1.4.7 <1.5.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz" - }, "oauth-sign": { "version": "0.8.2", "from": "oauth-sign@>=0.8.1 <0.9.0", @@ -4041,7 +4162,7 @@ }, "stringstream": { "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", + "from": "stringstream@>=0.0.5 <0.1.0", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "tough-cookie": { @@ -4069,11 +4190,6 @@ "version": "1.0.1", "from": "fxa-js-client@1.0.1", "dependencies": { - "es6-promise": { - "version": "4.1.1", - "from": "es6-promise@4.1.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz" - }, "sjcl": { "version": "1.0.1", "from": "git://github.com/bitwiseshiftleft/sjcl.git#a03ea8e", @@ -4576,7 +4692,7 @@ }, "inherits": { "version": "2.0.3", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "inherits@>=2.0.3 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" }, "once": { @@ -4750,9 +4866,9 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", "dependencies": { "argparse": { - "version": "1.0.9", + "version": "1.0.10", "from": "argparse@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "dependencies": { "sprintf-js": { "version": "1.0.3", @@ -4770,7 +4886,7 @@ }, "minimatch": { "version": "3.0.4", - "from": "minimatch@>=3.0.0 <4.0.0", + "from": "minimatch@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "dependencies": { "brace-expansion": { @@ -4850,7 +4966,7 @@ "dependencies": { "ansi-styles": { "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", + "from": "ansi-styles@>=2.0.1 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" }, "escape-string-regexp": { @@ -4865,7 +4981,7 @@ "dependencies": { "ansi-regex": { "version": "1.1.1", - "from": "ansi-regex@>=1.0.0 <2.0.0", + "from": "ansi-regex@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" }, "get-stdin": { @@ -4947,12 +5063,12 @@ "dependencies": { "arrify": { "version": "1.0.1", - "from": "arrify@>=1.0.1 <2.0.0", + "from": "arrify@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" }, "async": { "version": "1.5.2", - "from": "async@>=1.2.1 <2.0.0", + "from": "async@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "indent-string": { @@ -5039,7 +5155,7 @@ }, "minimist": { "version": "1.2.0", - "from": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "from": "minimist@>=1.1.3 <2.0.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" }, "normalize-package-data": { @@ -5481,16 +5597,16 @@ "from": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" }, - "response-stream": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/response-stream/-/response-stream-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/response-stream/-/response-stream-0.0.0.tgz" - }, "os-tmpdir": { "version": "1.0.2", "from": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" }, + "response-stream": { + "version": "0.0.0", + "from": "https://registry.npmjs.org/response-stream/-/response-stream-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/response-stream/-/response-stream-0.0.0.tgz" + }, "through": { "version": "0.1.4", "from": "https://registry.npmjs.org/through/-/through-0.1.4.tgz", @@ -5507,7 +5623,7 @@ "dependencies": { "async": { "version": "1.5.2", - "from": "async@>=1.2.1 <2.0.0", + "from": "async@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "rimraf": { @@ -5654,7 +5770,7 @@ "dependencies": { "chalk": { "version": "1.1.3", - "from": "chalk@>=1.1.1 <2.0.0", + "from": "chalk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { @@ -5664,7 +5780,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "escape-string-regexp@>=1.0.5 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { @@ -5712,7 +5828,7 @@ "dependencies": { "chalk": { "version": "1.1.3", - "from": "chalk@>=1.1.1 <2.0.0", + "from": "chalk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { @@ -5722,7 +5838,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "escape-string-regexp@>=1.0.5 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { @@ -5825,7 +5941,7 @@ "dependencies": { "chalk": { "version": "1.1.3", - "from": "chalk@>=1.1.1 <2.0.0", + "from": "chalk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { @@ -5835,7 +5951,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "escape-string-regexp@>=1.0.5 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { @@ -7856,9 +7972,9 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "dependencies": { "hoek": { - "version": "4.2.0", + "version": "4.2.1", "from": "hoek@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz" + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz" }, "boom": { "version": "4.3.1", @@ -8867,9 +8983,9 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-10.4.1.tgz", "dependencies": { "hoek": { - "version": "4.2.0", + "version": "4.2.1", "from": "hoek@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz" + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz" }, "isemail": { "version": "2.2.1", @@ -8888,6 +9004,35 @@ } } }, + "jquery": { + "version": "3.1.0", + "from": "jquery@3.1.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.1.0.tgz" + }, + "jquery-modal": { + "version": "0.7.1", + "from": "git://github.com/shane-tomlinson/jquery-modal.git#0576775d1b4590314b114386019f4c7421c77503", + "resolved": "git://github.com/shane-tomlinson/jquery-modal.git#0576775d1b4590314b114386019f4c7421c77503" + }, + "jquery-simulate": { + "version": "1.0.2", + "from": "jquery-simulate@1.0.2", + "resolved": "https://registry.npmjs.org/jquery-simulate/-/jquery-simulate-1.0.2.tgz" + }, + "jquery-ui": { + "version": "1.12.1", + "from": "jquery-ui@1.12.1", + "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz" + }, + "jquery-ui-touch-punch-amd": { + "version": "1.0.0", + "from": "jquery-ui-touch-punch-amd@1.0.0" + }, + "js-md5": { + "version": "0.6.0", + "from": "js-md5@0.6.0", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.6.0.tgz" + }, "jsxgettext-recursive": { "version": "1.0.1", "from": "git://github.com/vladikoff/jsxgettext-recursive.git#msgctxt-support", @@ -9266,6 +9411,11 @@ } } }, + "legal-docs": { + "version": "1.0.0", + "from": "git://github.com/mozilla/legal-docs.git#master", + "resolved": "git://github.com/mozilla/legal-docs.git#6dd5592083e9fc8992d5bb1e30157ea653644b2a" + }, "load-grunt-tasks": { "version": "3.5.2", "from": "load-grunt-tasks@3.5.2", @@ -9273,7 +9423,7 @@ "dependencies": { "arrify": { "version": "1.0.1", - "from": "arrify@>=1.0.1 <2.0.0", + "from": "arrify@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" }, "multimatch": { @@ -9300,7 +9450,7 @@ }, "minimatch": { "version": "3.0.4", - "from": "minimatch@>=3.0.0 <4.0.0", + "from": "minimatch@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "dependencies": { "brace-expansion": { @@ -9374,6 +9524,11 @@ "from": "lodash@4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" }, + "mailcheck": { + "version": "1.1.0", + "from": "git://github.com/mailcheck/mailcheck.git#d995fcc1d02c124a893c2cb0fce2e0ce5f36bce4", + "resolved": "git://github.com/mailcheck/mailcheck.git#d995fcc1d02c124a893c2cb0fce2e0ce5f36bce4" + }, "mkdirp": { "version": "0.5.1", "from": "mkdirp@0.5.1", @@ -9420,7 +9575,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "escape-string-regexp@1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "glob": { @@ -9447,7 +9602,7 @@ }, "inherits": { "version": "2.0.3", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "inherits@>=2.0.3 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" }, "minimatch": { @@ -9476,7 +9631,7 @@ }, "once": { "version": "1.4.0", - "from": "once@>=1.3.0 <2.0.0", + "from": "once@>=1.4.0 <2.0.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "dependencies": { "wrappy": { @@ -9587,7 +9742,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "escape-string-regexp@1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { @@ -9741,7 +9896,7 @@ "uap-core": { "version": "0.5.0", "from": "git://github.com/ua-parser/uap-core.git", - "resolved": "git://github.com/ua-parser/uap-core.git#742fe3bd96e477759fcf365b85637a39570904ba" + "resolved": "git://github.com/ua-parser/uap-core.git#0db732e459ad022dbd935d293ae049eef441ba47" }, "uap-ref-impl": { "version": "0.2.0", @@ -9755,6 +9910,20 @@ } } }, + "node-uuid": { + "version": "1.4.8", + "from": "node-uuid@1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz" + }, + "node-vat": { + "version": "0.0.9", + "from": "node-vat@0.0.9" + }, + "normalize.css": { + "version": "3.0.1", + "from": "normalize.css@3.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-3.0.1.tgz" + }, "on-headers": { "version": "1.0.1", "from": "on-headers@1.0.1", @@ -9797,6 +9966,18 @@ } } }, + "raven-js": { + "version": "3.13.0", + "from": "git://github.com/vladikoff/raven-js.git#customEndpoint-3.13.0", + "resolved": "git://github.com/vladikoff/raven-js.git#5c297fcda1479b27ce0af5c2f953e0c64e21eada", + "dependencies": { + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@>=5.0.1 <6.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + } + } + }, "serve-static": { "version": "1.13.1", "from": "serve-static@1.13.1", @@ -9809,7 +9990,7 @@ }, "escape-html": { "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", + "from": "escape-html@1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" }, "parseurl": { @@ -9859,7 +10040,7 @@ }, "inherits": { "version": "2.0.3", - "from": "inherits@>=2.0.3 <3.0.0", + "from": "inherits@2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" }, "setprototypeof": { @@ -9917,7 +10098,7 @@ "dependencies": { "chalk": { "version": "1.1.3", - "from": "chalk@>=1.1.1 <2.0.0", + "from": "chalk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { @@ -9927,7 +10108,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "escape-string-regexp@>=1.0.5 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { @@ -9980,7 +10161,7 @@ "dependencies": { "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "escape-string-regexp@>=1.0.5 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "object-assign": { @@ -10029,6 +10210,11 @@ } } }, + "ua-parser-js": { + "version": "0.7.10", + "from": "git://github.com/vladikoff/ua-parser-js.git#fxa-version", + "resolved": "git://github.com/vladikoff/ua-parser-js.git#643d1698aef5bed095e1264ae258902bf346175c" + }, "uglifyjs-webpack-plugin": { "version": "1.1.8", "from": "uglifyjs-webpack-plugin@1.1.8", @@ -10068,7 +10254,7 @@ }, "inherits": { "version": "2.0.3", - "from": "inherits@>=2.0.3 <2.1.0", + "from": "inherits@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" }, "minimatch": { @@ -10378,12 +10564,12 @@ }, "inherits": { "version": "2.0.3", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "inherits@>=2.0.3 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" }, "readable-stream": { "version": "2.3.4", - "from": "readable-stream@>=2.2.2 <3.0.0", + "from": "readable-stream@>=2.1.5 <3.0.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", "dependencies": { "core-util-is": { @@ -10817,9 +11003,9 @@ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", "dependencies": { "errno": { - "version": "0.1.6", + "version": "0.1.7", "from": "errno@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "dependencies": { "prr": { "version": "1.0.1", @@ -10864,7 +11050,7 @@ }, "aws4": { "version": "1.6.0", - "from": "aws4@>=1.6.0 <2.0.0", + "from": "aws4@>=1.2.1 <2.0.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz" }, "caseless": { @@ -10946,9 +11132,9 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "dependencies": { "hoek": { - "version": "4.2.0", + "version": "4.2.1", "from": "hoek@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz" + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz" }, "boom": { "version": "4.3.1", @@ -11086,7 +11272,7 @@ }, "oauth-sign": { "version": "0.8.2", - "from": "oauth-sign@>=0.8.2 <0.9.0", + "from": "oauth-sign@>=0.8.1 <0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" }, "performance-now": { @@ -11111,7 +11297,7 @@ }, "tough-cookie": { "version": "2.3.3", - "from": "tough-cookie@>=2.3.3 <2.4.0", + "from": "tough-cookie@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "dependencies": { "punycode": { @@ -11342,9 +11528,9 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "dependencies": { "errno": { - "version": "0.1.6", + "version": "0.1.7", "from": "errno@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "dependencies": { "prr": { "version": "1.0.1", @@ -11913,7 +12099,7 @@ }, "safe-buffer": { "version": "5.1.1", - "from": "safe-buffer@>=5.0.1 <6.0.0", + "from": "safe-buffer@>=5.1.1 <6.0.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" } } @@ -12190,7 +12376,7 @@ "dependencies": { "align-text": { "version": "0.1.4", - "from": "align-text@>=0.1.3 <0.2.0", + "from": "align-text@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "dependencies": { "kind-of": { @@ -12231,7 +12417,7 @@ "dependencies": { "align-text": { "version": "0.1.4", - "from": "align-text@>=0.1.3 <0.2.0", + "from": "align-text@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "dependencies": { "kind-of": { @@ -12663,26 +12849,26 @@ "from": "node-pre-gyp@^0.6.39", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz" }, - "ajv": { - "version": "4.11.8", - "from": "ajv@4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz" - }, "abbrev": { "version": "1.1.0", "from": "abbrev@1.1.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz" }, - "aproba": { - "version": "1.1.1", - "from": "aproba@1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz" + "ajv": { + "version": "4.11.8", + "from": "ajv@4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz" }, "ansi-regex": { "version": "2.1.1", "from": "ansi-regex@2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" }, + "aproba": { + "version": "1.1.1", + "from": "aproba@1.1.1", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz" + }, "are-we-there-yet": { "version": "1.1.4", "from": "are-we-there-yet@1.1.4", @@ -12738,16 +12924,16 @@ "from": "brace-expansion@1.1.7", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" }, - "caseless": { - "version": "0.12.0", - "from": "caseless@0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - }, "buffer-shims": { "version": "1.0.0", "from": "buffer-shims@1.0.0", "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" }, + "caseless": { + "version": "0.12.0", + "from": "caseless@0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + }, "co": { "version": "4.6.0", "from": "co@4.6.0", @@ -12793,16 +12979,16 @@ "from": "deep-extend@0.4.2", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz" }, - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, "delegates": { "version": "1.0.0", "from": "delegates@1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" }, + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + }, "detect-libc": { "version": "1.0.2", "from": "detect-libc@^1.0.2", @@ -12858,16 +13044,16 @@ "from": "glob@7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" }, - "har-schema": { - "version": "1.0.5", - "from": "har-schema@1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz" - }, "graceful-fs": { "version": "4.1.11", "from": "graceful-fs@4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" }, + "har-schema": { + "version": "1.0.5", + "from": "har-schema@1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz" + }, "har-validator": { "version": "4.2.1", "from": "har-validator@4.2.1", @@ -12893,16 +13079,16 @@ "from": "http-signature@1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" }, - "inherits": { - "version": "2.0.3", - "from": "inherits@2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, "inflight": { "version": "1.0.6", "from": "inflight@1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" }, + "inherits": { + "version": "2.0.3", + "from": "inherits@2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + }, "ini": { "version": "1.3.4", "from": "ini@1.3.4", @@ -12918,16 +13104,16 @@ "from": "is-typedarray@1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" }, - "isstream": { - "version": "0.1.2", - "from": "isstream@0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, "isarray": { "version": "1.0.0", "from": "isarray@1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, + "isstream": { + "version": "0.1.2", + "from": "isstream@0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, "jodid25519": { "version": "1.0.2", "from": "jodid25519@1.0.2", @@ -12993,16 +13179,16 @@ "from": "nopt@4.0.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz" }, - "npmlog": { - "version": "4.1.0", - "from": "npmlog@4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz" - }, "number-is-nan": { "version": "1.0.1", "from": "number-is-nan@1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" }, + "npmlog": { + "version": "4.1.0", + "from": "npmlog@4.1.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz" + }, "oauth-sign": { "version": "0.8.2", "from": "oauth-sign@0.8.2", @@ -13058,16 +13244,16 @@ "from": "qs@6.4.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz" }, - "readable-stream": { - "version": "2.2.9", - "from": "readable-stream@2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz" - }, "request": { "version": "2.81.0", "from": "request@2.81.0", "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz" }, + "readable-stream": { + "version": "2.2.9", + "from": "readable-stream@2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz" + }, "rimraf": { "version": "2.6.1", "from": "rimraf@2.6.1", @@ -13083,16 +13269,16 @@ "from": "semver@5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" }, - "set-blocking": { - "version": "2.0.0", - "from": "set-blocking@2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - }, "signal-exit": { "version": "3.0.2", "from": "signal-exit@3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" }, + "set-blocking": { + "version": "2.0.0", + "from": "set-blocking@2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + }, "sntp": { "version": "1.0.9", "from": "sntp@1.0.9", @@ -13128,16 +13314,16 @@ "from": "tar@2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" }, - "tar-pack": { - "version": "3.4.0", - "from": "tar-pack@3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz" - }, "tough-cookie": { "version": "2.3.2", "from": "tough-cookie@2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz" }, + "tar-pack": { + "version": "3.4.0", + "from": "tar-pack@3.4.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz" + }, "tunnel-agent": { "version": "0.6.0", "from": "tunnel-agent@0.6.0", @@ -13153,11 +13339,6 @@ "from": "uid-number@0.0.6", "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - }, "util-deprecate": { "version": "1.0.2", "from": "util-deprecate@1.0.2", @@ -13168,6 +13349,11 @@ "from": "uuid@3.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" }, + "verror": { + "version": "1.3.6", + "from": "verror@1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + }, "wide-align": { "version": "1.1.2", "from": "wide-align@1.1.2", @@ -13673,182 +13859,10 @@ } } }, - "webpack-dev-middleware": { - "version": "2.0.4", - "from": "webpack-dev-middleware@2.0.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-2.0.4.tgz", - "dependencies": { - "loud-rejection": { - "version": "1.6.0", - "from": "loud-rejection@>=1.6.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "dependencies": { - "currently-unhandled": { - "version": "0.4.1", - "from": "currently-unhandled@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "dependencies": { - "array-find-index": { - "version": "1.0.2", - "from": "array-find-index@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" - } - } - }, - "signal-exit": { - "version": "3.0.2", - "from": "signal-exit@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" - } - } - }, - "memory-fs": { - "version": "0.4.1", - "from": "memory-fs@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "dependencies": { - "errno": { - "version": "0.1.6", - "from": "errno@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", - "dependencies": { - "prr": { - "version": "1.0.1", - "from": "prr@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" - } - } - }, - "readable-stream": { - "version": "2.3.4", - "from": "readable-stream@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "inherits": { - "version": "2.0.3", - "from": "inherits@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "process-nextick-args": { - "version": "2.0.0", - "from": "process-nextick-args@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz" - }, - "safe-buffer": { - "version": "5.1.1", - "from": "safe-buffer@>=5.1.1 <5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" - }, - "string_decoder": { - "version": "1.0.3", - "from": "string_decoder@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - } - } - } - }, - "mime": { - "version": "2.2.0", - "from": "mime@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz" - }, - "path-is-absolute": { - "version": "1.0.1", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - }, - "range-parser": { - "version": "1.2.0", - "from": "range-parser@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" - }, - "url-join": { - "version": "2.0.5", - "from": "url-join@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz" - }, - "webpack-log": { - "version": "1.1.2", - "from": "webpack-log@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.1.2.tgz", - "dependencies": { - "chalk": { - "version": "2.3.1", - "from": "chalk@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "from": "ansi-styles@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "dependencies": { - "color-convert": { - "version": "1.9.1", - "from": "color-convert@>=1.9.0 <2.0.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "dependencies": { - "color-name": { - "version": "1.1.3", - "from": "color-name@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - } - } - } - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - }, - "supports-color": { - "version": "5.2.0", - "from": "supports-color@>=5.2.0 <6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "dependencies": { - "has-flag": { - "version": "3.0.0", - "from": "has-flag@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - } - } - } - } - }, - "log-symbols": { - "version": "2.2.0", - "from": "log-symbols@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" - }, - "loglevelnext": { - "version": "1.0.3", - "from": "loglevelnext@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.3.tgz" - }, - "uuid": { - "version": "3.2.1", - "from": "uuid@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz" - } - } - } - } + "webrtc-adapter-test": { + "version": "0.2.5", + "from": "webrtc-adapter-test@0.2.5", + "resolved": "https://registry.npmjs.org/webrtc-adapter-test/-/webrtc-adapter-test-0.2.5.tgz" } } } diff --git a/packages/fxa-content-server/package.json b/packages/fxa-content-server/package.json index f67d5df4df..568b7fa829 100644 --- a/packages/fxa-content-server/package.json +++ b/packages/fxa-content-server/package.json @@ -3,8 +3,8 @@ "version": "1.105.2", "description": "Firefox Accounts Content Server", "scripts": { - "build-production": "grunt build", - "postinstall": "bower update --allow-root --config.interactive=false -s && scripts/download_l10n.sh", + "build-production": "NODE_ENV=production grunt build", + "postinstall": "scripts/download_l10n.sh", "prepush": "npm run lint", "shrink": "npmshrink:prod", "lint": "eslint app server tests --cache", @@ -34,9 +34,11 @@ "babel-middleware": "git://github.com/shane-tomlinson/babel-middleware.git#4c70de91", "babel-plugin-syntax-dynamic-import": "6.18.0", "babel-preset-es2015": "6.24.1", + "backbone": "1.1.1", + "backbone.cocktail": "git://github.com/onsi/cocktail.git#87971c88e2e4f904a0984b5f236ee5dbb21ddb4a", "bluebird": "3.5.0", + "blueimp-canvas-to-blob": "2.1.0", "body-parser": "1.18.2", - "bower": "1.8.2", "celebrate": "7.0.3", "connect-cachify": "0.0.17", "connect-fonts-firasans": "0.0.6", @@ -44,8 +46,13 @@ "convict": "1.5.0", "cookie-parser": "1.4.3", "cors": "2.8.4", + "duration-js": "3.6.0", + "easterEgg": "git://github.com/mozilla/fxa-easter-egg.git#ab20cd517cf8ae9feee115e48745189d28e13bc3", + "es6-promise": "4.1.1", "express": "4.16.2", "extend": "3.0.1", + "fxa-checkbox": "git://github.com/mozilla/fxa-checkbox.git#7f856afffd394a144f718e28e6fb79092d6ccddd", + "fxa-crypto-relier": "2.1.0", "fxa-geodb": "1.0.0", "fxa-js-client": "1.0.1", "fxa-mustache-loader": "0.0.2", @@ -76,9 +83,17 @@ "helmet": "3.8.2", "i18n-abide": "0.0.25", "joi": "10.4.1", + "jquery": "3.1.0", + "jquery-modal": "git://github.com/shane-tomlinson/jquery-modal.git#0576775d1b4590314b114386019f4c7421c77503", + "jquery-simulate": "1.0.2", + "jquery-ui": "1.12.1", + "jquery-ui-touch-punch-amd": "1.0.0", + "js-md5": "0.6.0", "jsxgettext-recursive": "git://github.com/vladikoff/jsxgettext-recursive#msgctxt-support", + "legal-docs": "git://github.com/mozilla/legal-docs.git#master", "load-grunt-tasks": "3.5.2", "lodash": "4.17.4", + "mailcheck": "git://github.com/mailcheck/mailcheck.git#d995fcc1d02c124a893c2cb0fce2e0ce5f36bce4", "mkdirp": "0.5.1", "mocha": "4.0.1", "morgan": "1.9.0", @@ -86,22 +101,28 @@ "mustache": "2.3.0", "node-statsd": "0.1.1", "node-uap": "git://github.com/vladikoff/node-uap.git#9cdd16247", + "node-uuid": "1.4.8", + "node-vat": "0.0.9", + "normalize.css": "3.0.1", "on-headers": "1.0.1", "photon-colors": "1.0.3", "raven": "0.12.3", + "raven-js": "git://github.com/vladikoff/raven-js.git#customEndpoint-3.13.0", "serve-static": "1.13.1", "speed-trap": "git://github.com/rum-diary/speed-trap#0.0.7", "time-grunt": "1.4.0", + "ua-parser-js": "git://github.com/vladikoff/ua-parser-js.git#fxa-version", "uglifyjs-webpack-plugin": "1.1.8", "underscore": "1.8.3", "universal-analytics": "0.4.15", "webpack": "3.10.0", - "webpack-dev-middleware": "2.0.4" + "webrtc-adapter-test": "0.2.5" }, "devDependencies": { "babel-cli": "6.26.0", "babel-eslint": "8.2.1", "babel-plugin-dynamic-import-webpack": "1.0.2", + "chai": "1.8.1", "coveralls": "2.11.9", "css": "2.2.1", "eslint": "4.16.0", @@ -127,8 +148,9 @@ "npmshrink": "1.0.1", "proxyquire": "1.7.4", "requirejs": "2.3.5", - "sinon": "1.17.3", + "sinon": "3.2.1", "sync-exec": "0.6.2", + "webpack-dev-middleware": "2.0.4", "xmlhttprequest": "git://github.com/zaach/node-XMLHttpRequest.git#onerror", "yargs": "10.0.3" }, diff --git a/packages/fxa-content-server/server/lib/configuration.js b/packages/fxa-content-server/server/lib/configuration.js index 7dc75044c5..6744852b4f 100644 --- a/packages/fxa-content-server/server/lib/configuration.js +++ b/packages/fxa-content-server/server/lib/configuration.js @@ -559,7 +559,6 @@ const conf = module.exports = convict({ excludeFiles: [ '/scripts/../tests/', '/scripts/vendor/', - '/scripts/../bower_components/', 'require_config' ], globalThreshold: 90, diff --git a/packages/fxa-content-server/server/lib/version.js b/packages/fxa-content-server/server/lib/version.js index 47bd6cdeb1..9656439b5b 100644 --- a/packages/fxa-content-server/server/lib/version.js +++ b/packages/fxa-content-server/server/lib/version.js @@ -9,7 +9,7 @@ * tosPpVersion at startup. * * If l10nVersion and tosPpVersion cannot be loaded statically from the - * content in ../../app/bower_components, then just show UNKNOWN. + * content in ../../node_modules, then just show UNKNOWN. * * If commitHash cannot be found from ./config/version.json (i.e., this is not * production or stage), then an attempt will be made to determine commitHash @@ -83,9 +83,9 @@ function getL10nVersion () { function getTosPpVersion () { try { - const bowerPath = '../../app/bower_components/tos-pp/.bower.json'; - const bowerInfo = require(bowerPath); - return bowerInfo && bowerInfo._release; + const pkgPath = '../../node_modules/legal-docs/package.json'; + const pkgInfo = require(pkgPath); + return pkgInfo && pkgInfo.gitHead; } catch (e) { /* ignore */ } diff --git a/packages/fxa-content-server/server/templates/pages/src/404.html b/packages/fxa-content-server/server/templates/pages/src/404.html index 03dfcc37fe..fabb89a44c 100644 --- a/packages/fxa-content-server/server/templates/pages/src/404.html +++ b/packages/fxa-content-server/server/templates/pages/src/404.html @@ -11,7 +11,6 @@ - {{#if fontSupportDisabled}} diff --git a/packages/fxa-content-server/server/templates/pages/src/500.html b/packages/fxa-content-server/server/templates/pages/src/500.html index 6ff69ac93c..4b9333345f 100644 --- a/packages/fxa-content-server/server/templates/pages/src/500.html +++ b/packages/fxa-content-server/server/templates/pages/src/500.html @@ -11,7 +11,6 @@ - {{#if fontSupportDisabled}} diff --git a/packages/fxa-content-server/server/templates/pages/src/502.html b/packages/fxa-content-server/server/templates/pages/src/502.html index 2a5c38ce15..db31d54f42 100644 --- a/packages/fxa-content-server/server/templates/pages/src/502.html +++ b/packages/fxa-content-server/server/templates/pages/src/502.html @@ -11,7 +11,6 @@ - {{#if fontSupportDisabled}} diff --git a/packages/fxa-content-server/server/templates/pages/src/503.html b/packages/fxa-content-server/server/templates/pages/src/503.html index 23047a4b15..d7d0f1bf47 100644 --- a/packages/fxa-content-server/server/templates/pages/src/503.html +++ b/packages/fxa-content-server/server/templates/pages/src/503.html @@ -11,7 +11,6 @@ - {{#if fontSupportDisabled}} diff --git a/packages/fxa-content-server/server/templates/pages/src/index.html b/packages/fxa-content-server/server/templates/pages/src/index.html index e8c75ebbd9..2ced1152f2 100644 --- a/packages/fxa-content-server/server/templates/pages/src/index.html +++ b/packages/fxa-content-server/server/templates/pages/src/index.html @@ -15,7 +15,6 @@ - {{#if fontSupportDisabled}} @@ -26,13 +25,6 @@ - - - - - - diff --git a/packages/fxa-content-server/server/templates/pages/src/privacy.html b/packages/fxa-content-server/server/templates/pages/src/privacy.html index e7095f47db..de69d4b87a 100644 --- a/packages/fxa-content-server/server/templates/pages/src/privacy.html +++ b/packages/fxa-content-server/server/templates/pages/src/privacy.html @@ -11,7 +11,6 @@ - {{#if fontSupportDisabled}} diff --git a/packages/fxa-content-server/server/templates/pages/src/terms.html b/packages/fxa-content-server/server/templates/pages/src/terms.html index 1e5344cda3..0dba06d4dd 100644 --- a/packages/fxa-content-server/server/templates/pages/src/terms.html +++ b/packages/fxa-content-server/server/templates/pages/src/terms.html @@ -11,7 +11,6 @@ - {{#if fontSupportDisabled}} diff --git a/packages/fxa-content-server/tests/server/amplitude.js b/packages/fxa-content-server/tests/server/amplitude.js index 0cb019c9e1..9f9f085372 100644 --- a/packages/fxa-content-server/tests/server/amplitude.js +++ b/packages/fxa-content-server/tests/server/amplitude.js @@ -22,7 +22,7 @@ const APP_VERSION = /^[0-9]+\.([0-9]+)\./.exec(pkg.version)[1]; registerSuite('amplitude', { beforeEach: function() { - sinon.stub(process.stderr, 'write', () => {}); + sinon.stub(process.stderr, 'write').callsFake(() => {}); }, afterEach: function() { diff --git a/packages/fxa-content-server/tests/server/flow-event.js b/packages/fxa-content-server/tests/server/flow-event.js index d3da5092fa..d12755189e 100644 --- a/packages/fxa-content-server/tests/server/flow-event.js +++ b/packages/fxa-content-server/tests/server/flow-event.js @@ -21,7 +21,7 @@ registerSuite('flow-event', { /*eslint-enable camelcase*/ }; sandbox = sinon.sandbox.create(); - sandbox.stub(process.stderr, 'write', () => {}); + sandbox.stub(process.stderr, 'write').callsFake(() => {}); mocks = { amplitude: sinon.spy(), config: { diff --git a/packages/fxa-content-server/tests/server/flow-metrics.js b/packages/fxa-content-server/tests/server/flow-metrics.js index 27ec3b423d..14f9f4615c 100644 --- a/packages/fxa-content-server/tests/server/flow-metrics.js +++ b/packages/fxa-content-server/tests/server/flow-metrics.js @@ -16,10 +16,10 @@ var mockDateNow, mockRandomBytes, mockFlowIdKey, mockUserAgent; suite.beforeEach = function () { mockFlowIdKey = 'test hmac key'; mockUserAgent = 'test user agent'; - sinon.stub(Date, 'now', function () { + sinon.stub(Date, 'now').callsFake(function () { return mockDateNow; }); - sinon.stub(crypto, 'randomBytes', function (size) { + sinon.stub(crypto, 'randomBytes').callsFake(function (size) { if (mockRandomBytes) { return new Buffer(mockRandomBytes); } else { diff --git a/packages/fxa-content-server/tests/server/html-middleware.js b/packages/fxa-content-server/tests/server/html-middleware.js index 37a017b3d9..b85b8f00b6 100644 --- a/packages/fxa-content-server/tests/server/html-middleware.js +++ b/packages/fxa-content-server/tests/server/html-middleware.js @@ -40,7 +40,7 @@ registerSuite('html-middleware', { }, tests: { 'it calls middleware if an html response type': function () { - sinon.stub(res, 'getHeader', () => 'text/html; charset=UTF-8'); + sinon.stub(res, 'getHeader').callsFake(() => 'text/html; charset=UTF-8'); wrappedMiddleware(req, res, next); assert.isTrue(originalMiddleware.calledOnce); @@ -49,7 +49,7 @@ registerSuite('html-middleware', { }, 'it does not call middleware if a non-html response type': function () { - sinon.stub(res, 'getHeader', () => 'application/json; charset=UTF-8'); + sinon.stub(res, 'getHeader').callsFake(() => 'application/json; charset=UTF-8'); wrappedMiddleware(req, res, next); assert.isFalse(originalMiddleware.called); diff --git a/packages/fxa-content-server/tests/server/routes/post-metrics.js b/packages/fxa-content-server/tests/server/routes/post-metrics.js index e6d1eb12e4..028ed93b92 100644 --- a/packages/fxa-content-server/tests/server/routes/post-metrics.js +++ b/packages/fxa-content-server/tests/server/routes/post-metrics.js @@ -94,7 +94,7 @@ registerSuite('routes/post-metrics', { 'route.preProcess': { 'route.preProcess with text/plain Content-Type': { before: function () { - sinon.stub(Date, 'now', function () { + sinon.stub(Date, 'now').callsFake(function () { return 1000; }); setupMetricsHandlerTests({ @@ -136,7 +136,7 @@ registerSuite('routes/post-metrics', { 'route.process': { before: function () { - sinon.stub(Date, 'now', function () { + sinon.stub(Date, 'now').callsFake(function () { return 1000; }); setupMetricsHandlerTests({ @@ -235,7 +235,7 @@ registerSuite('routes/post-metrics', { 'route.process with isSampledUser=false': { before: function () { - sinon.stub(Date, 'now', function () { + sinon.stub(Date, 'now').callsFake(function () { return 1000; }); setupMetricsHandlerTests({ diff --git a/packages/fxa-content-server/tests/teamcity/install-npm-deps.sh b/packages/fxa-content-server/tests/teamcity/install-npm-deps.sh index 2bb1929218..a552a6e7b8 100755 --- a/packages/fxa-content-server/tests/teamcity/install-npm-deps.sh +++ b/packages/fxa-content-server/tests/teamcity/install-npm-deps.sh @@ -8,7 +8,6 @@ export NPM_CONFIG_LOGLEVEL=warn node ./tests/teamcity/install-npm-deps.js \ bluebird \ - bower \ convict \ css \ extend \ diff --git a/packages/fxa-content-server/tests/teamcity/run.sh b/packages/fxa-content-server/tests/teamcity/run.sh index 1c07f8a68c..3980092323 100755 --- a/packages/fxa-content-server/tests/teamcity/run.sh +++ b/packages/fxa-content-server/tests/teamcity/run.sh @@ -72,7 +72,6 @@ export npm_config_tmp=~/fxatemp set -o xtrace # echo the following commands node ./tests/teamcity/install-npm-deps.js \ - bower \ convict \ firefox-profile \ fxa-js-client \ @@ -85,8 +84,6 @@ node ./tests/teamcity/install-npm-deps.js \ xmlhttprequest \ yargs -node_modules/.bin/bower install --config.interactive=false - $FXA_FIREFOX_BINARY --version 2>/dev/null # squelch annoying 'GLib-CRITICAL **' message # Tell the test where the X Server is located diff --git a/packages/fxa-content-server/webpack.config.js b/packages/fxa-content-server/webpack.config.js index 275bf18047..b7b295b819 100644 --- a/packages/fxa-content-server/webpack.config.js +++ b/packages/fxa-content-server/webpack.config.js @@ -54,35 +54,31 @@ const webpackConfig = { 'node_modules' ], alias: { - backbone: path.resolve(__dirname, 'app/bower_components/backbone/backbone'), - canvasToBlob: path.resolve(__dirname, 'app/bower_components/blueimp-canvas-to-blob/js/canvas-to-blob'), - chai: path.resolve(__dirname, 'app/bower_components/chai/chai'), - 'cocktail-lib': path.resolve(__dirname, 'app/bower_components/cocktail/Cocktail'), + canvasToBlob: path.resolve(__dirname, 'node_modules/blueimp-canvas-to-blob/js/canvas-to-blob'), + 'cocktail-lib': path.resolve(__dirname, 'node_modules/backbone.cocktail/Cocktail'), cocktail: path.resolve(__dirname, 'app/scripts/lib/cocktail'), - draggable: path.resolve(__dirname, 'app/bower_components/jquery-ui/ui/draggable'), - duration: path.resolve(__dirname, 'app/bower_components/Duration.js/duration'), - 'es6-promise': path.resolve(__dirname, 'app/bower_components/es6-promise/dist/es6-promise'), - fxaCheckbox: path.resolve(__dirname, 'app/bower_components/fxa-checkbox/checkbox'), + draggable: path.resolve(__dirname, 'node_modules/jquery-ui/ui/widgets/draggable'), + duration: path.resolve(__dirname, 'node_modules/duration-js/duration'), + 'es6-promise': path.resolve(__dirname, 'node_modules/es6-promise/dist/es6-promise'), + fxaCheckbox: path.resolve(__dirname, 'node_modules/fxa-checkbox/checkbox'), fxaClient: 'fxa-js-client/client/FxAccountClient', - fxaCryptoDeriver: path.resolve(__dirname, 'app/bower_components/fxa-crypto-relier/dist/fxa-crypto-relier/fxa-crypto-deriver'), - jquery: path.resolve(__dirname, 'app/bower_components/jquery/dist/jquery'), - 'jquery-simulate': path.resolve(__dirname, 'app/bower_components/jquery-simulate/jquery.simulate'), + fxaCryptoDeriver: path.resolve(__dirname, 'node_modules/fxa-crypto-relier/dist/fxa-crypto-relier/fxa-crypto-deriver'), // jwcrypto is used by the main app and only contains DSA // jwcrypto.rs is used by the unit tests to unbundle and verify // assertions, which require RSA. jwcrypto: path.resolve(__dirname, 'app/scripts/vendor/jwcrypto/jwcrypto.ds'), 'jwcrypto.rs': path.resolve(__dirname, 'app/scripts/vendor/jwcrypto/jwcrypto.rs'), - mailcheck: path.resolve(__dirname, 'app/bower_components/mailcheck/src/mailcheck'), - md5: path.resolve(__dirname, 'app/bower_components/js-md5/src/md5'), + mailcheck: path.resolve(__dirname, 'node_modules/mailcheck/src/mailcheck'), + md5: path.resolve(__dirname, 'node_modules/js-md5/src/md5'), mocha: 'mocha/mocha', - modal: path.resolve(__dirname, 'app/bower_components/jquery-modal/jquery.modal'), - raven: path.resolve(__dirname, 'app/bower_components/raven-js/dist/raven'), - sinon: path.resolve(__dirname, 'app/bower_components/sinon/index'), - 'touch-punch': path.resolve(__dirname, 'app/bower_components/jquery-ui-touch-punch/jquery.ui.touch-punch'), - 'ua-parser-js': path.resolve(__dirname, 'app/bower_components/ua-parser-js/src/ua-parser'), - uuid: path.resolve(__dirname, 'app/bower_components/node-uuid/uuid'), - vat: path.resolve(__dirname, 'app/bower_components/vat/vat'), - webrtc: path.resolve(__dirname, 'app/bower_components/webrtc-adapter/adapter') + modal: path.resolve(__dirname, 'node_modules/jquery-modal/jquery.modal'), + raven: path.resolve(__dirname, 'node_modules/raven-js/dist/raven'), + sinon: path.resolve(__dirname, 'node_modules/sinon/pkg/sinon-3.2.1'), + 'touch-punch': path.resolve(__dirname, 'node_modules/jquery-ui-touch-punch-amd/jquery.ui.touch-punch'), + 'ua-parser-js': path.resolve(__dirname, 'node_modules/ua-parser-js/src/ua-parser'), + uuid: path.resolve(__dirname, 'node_modules/node-uuid/uuid'), + vat: path.resolve(__dirname, 'node_modules/node-vat/vat'), + webrtc: path.resolve(__dirname, 'node_modules/webrtc-adapter-test/adapter') } },