diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index 40b878db..00000000
--- a/.dockerignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules/
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 6d1ae363..b3d79dce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,9 +2,8 @@ node_modules
package-lock.json
.tmp
tmp
-.vagrant
-results/*
coverage
-front/build
package-lock.json
-har.json
\ No newline at end of file
+yarn.lock
+har.json
+.idea/
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index a9a1f818..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-language: node_js
-sudo: false
-node_js:
- - "12.18"
- - "14.7"
-env:
- - CXX=g++-4.8
-addons:
- apt:
- sources:
- - ubuntu-toolchain-r-test
- packages:
- - g++-4.8
-before_install:
- - "npm install -g npm"
- - "npm install -g grunt-cli"
-install:
- - "npm install"
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index fdc19555..00000000
--- a/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM node:10
-WORKDIR /app
-ENV VERSION=master
-EXPOSE 8383
-RUN git clone --branch ${VERSION} https://github.com/LumberjackOtters/YellowLabTools ylt && cd ylt && yarn install && yarn build
-ENV NODE_ENV=production
-CMD ["node", "/app/ylt/bin/server.js"]
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index 392c36fb..00000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,252 +0,0 @@
-module.exports = function(grunt) {
-
- // Load all grunt modules
- require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
-
- // Tell our Express server that Grunt launched it
- process.env.GRUNTED = true;
-
- // Project configuration.
- grunt.initConfig({
- pkg: grunt.file.readJSON('package.json'),
- settings: grunt.file.readJSON('./server_config/settings.json'),
-
- less: {
- all: {
- files: [
- {
- expand: true,
- cwd: 'front/src/less/',
- src: ['**/*.less'],
- dest: 'front/src/css/',
- ext: '.css'
- }
- ]
- }
- },
- jshint: {
- all: [
- '*.js',
- 'app/lib/*.js',
- 'bin/*.js',
- 'lib/**/*.js',
- 'app/nodeControllers/*.js',
- 'app/public/scripts/*.js',
- 'phantomas_custom/**/*.js',
- 'test/api/*.js',
- 'test/core/*.js',
- 'test/fixtures/*.js',
- 'front/src/js/**/*.js'
- ],
- options: {
- esversion: 6
- }
- },
- clean: {
- tmp: {
- src: ['.tmp']
- },
- dev: {
- src: ['front/src/css']
- },
- build: {
- src: ['front/build']
- }
- },
- copy: {
- build: {
- files: [
- {src: ['./front/src/main.html'], dest: './front/build/main.html'},
- {src: ['./front/src/img/favicon.png'], dest: './front/build/img/favicon.png'},
- {src: ['./front/src/img/logo-large.png'], dest: './front/build/img/logo-large.png'},
- ]
- },
- favicons: {
- files: [
- {src: ['./front/src/img/favicon.png'], dest: './front/build/img/favicon.png'},
- {src: ['./front/src/img/favicon-fail.png'], dest: './front/build/img/favicon-fail.png'},
- {src: ['./front/src/img/favicon-success.png'], dest: './front/build/img/favicon-success.png'},
- ]
- }
- },
- mochaTest: {
- test: {
- options: {
- reporter: 'spec',
- },
- src: ['test/core/*.js', 'test/api/*.js']
- },
- 'test-current-work': {
- options: {
- reporter: 'spec',
- },
- src: ['test/core/mediaQueriesCheckerTest.js']
- }
- },
- env: {
- dev: {
- NODE_ENV: 'development'
- },
- built: {
- NODE_ENV: 'production'
- }
- },
- express: {
- dev: {
- options: {
- port: 8383,
- server: './bin/server.js',
- serverreload: true,
- showStack: true
- }
- },
- built: {
- options: {
- port: 8383,
- server: './bin/server.js',
- serverreload: true,
- showStack: true
- }
- },
- test: {
- options: {
- port: 8387,
- server: './bin/server.js',
- showStack: true
- }
- },
- 'test-current-work': {
- options: {
- port: 8387,
- server: './bin/server.js',
- showStack: true
- }
- },
- testSuite: {
- options: {
- port: 8388,
- bases: 'test/www'
- }
- }
- },
- useminPrepare: {
- html: './front/src/main.html',
- options: {
- dest: './front/build',
- root: ['./', './front/src']
- }
- },
- usemin: {
- html: './front/build/main.html',
- css: './front/build/css/*.css',
- options: {
- assetsDirs: ['front/build']
- }
- },
- htmlmin: {
- options: {
- removeComments: true,
- collapseWhitespace: true,
- conservativeCollapse: true
- },
- main: {
- files: [{
- expand: true,
- cwd: './front/build/',
- src: 'main.html',
- flatten: true,
- dest: './front/build'
- }]
- },
- views: {
- files: [{
- expand: true,
- cwd: './front/src/views',
- src: '*.html',
- flatten: true,
- dest: '.tmp/views/'
- }]
- }
- },
- inline_angular_templates: {
- build: {
- options: {
- base: '.tmp',
- method: 'append',
- unescape: {
- '<': '<',
- '>': '>'
- }
- },
- files: {
- './front/build/main.html': ['.tmp/views/*.html']
- }
- }
- },
- filerev: {
- options: {
- algorithm: 'md5',
- length: 8
- },
- assets: {
- src: './front/build/*/*.*'
- }
- }
- });
-
- // Custom task that sets a variable for tests
- grunt.registerTask('test-settings', function() {
- process.env.IS_TEST = true;
- });
-
- grunt.registerTask('build', [
- 'jshint',
- 'clean:build',
- 'copy:build',
- 'less',
- 'useminPrepare',
- 'concat',
- 'uglify',
- 'cssmin',
- 'htmlmin:views',
- 'inline_angular_templates',
- 'filerev',
- 'usemin',
- 'htmlmin:main',
- 'clean:tmp',
- 'copy:favicons'
- ]);
-
- grunt.registerTask('hint', [
- 'jshint'
- ]);
-
- grunt.registerTask('dev', [
- 'env:dev',
- 'express:dev'
- ]);
-
- grunt.registerTask('built', [
- 'env:built',
- 'express:built'
- ]);
-
- grunt.registerTask('test', [
- 'test-settings',
- 'build',
- 'express:testSuite',
- 'express:test',
- 'mochaTest:test',
- 'clean:tmp'
- ]);
-
- grunt.registerTask('test-current-work', [
- 'test-settings',
- 'jshint',
- 'express:testSuite',
- 'express:test-current-work',
- 'mochaTest:test-current-work',
- 'clean:tmp'
- ]);
-
-};
\ No newline at end of file
diff --git a/README.md b/README.md
index 0190ddaf..626906d9 100644
--- a/README.md
+++ b/README.md
@@ -19,19 +19,20 @@ Analyzes a webpage and detects **performance** or **front-end code quality** iss
- The CLI (Command Line Interface) - Doc here
+ The Docker image - ousamabenyounes/docker-yellowlabtools
+
+ Your own private instance of Yellow Lab Tools, on your computer.
-
+
- The Grunt task : gmetais/grunt-yellowlabtools
- For developers or Continuous Integration
+ The CLI (Command Line Interface) - Doc here
-
+
@@ -65,18 +66,17 @@ By the way, it's free because I am a geek, not businessmen. In return, you can a

-## Test your localhost
-
-You can use [ngrok](https://ngrok.com/), a tool that creates a secure tunnel between your localhost and the online tool (or the public API). You can also use the CLI or the Grunt tasks as they run on your machine.
+## Install your own private instance
+If your project is not accessible from outside or if you want to test your localhost, you might want to run your own instance of Yellow Lab Tools.
-## Install your own private instance
+The classical way is to clone the YLT server's GitHub repository and run it on Linux or MacOS. The documentation is [here](https://github.com/YellowLabTools/YellowLabTools/wiki/Install-your-private-server).
-If your project is not accessible from outside, or if you want to fork and improve the tool, you can build your own instance. The documentation is [here](https://github.com/YellowLabTools/YellowLabTools/wiki/Install-your-private-server).
+The new recommended solution is to run Yellow Lab Tools inside a Docker virtual machine. My friend Ousama Ben Younes maintains [this ready-to-use Docker image based on Alpine](https://github.com/ousamabenyounes/docker-yellowlabtools)).
## Author
-Gaël Métais. I'm a webperf freelance. Follow me on Twitter [@gaelmetais](https://twitter.com/gaelmetais), I tweet about Web Performances, Front-end and new versions of YellowLabTools!
+Gaël Métais. I'm a webperf freelance. Follow me on Twitter [@gaelmetais](https://twitter.com/gaelmetais), I tweet about Web Performances, Front-end and new versions of Yellow Lab Tools!
diff --git a/Vagrantfile b/Vagrantfile
deleted file mode 100644
index 404079f0..00000000
--- a/Vagrantfile
+++ /dev/null
@@ -1,24 +0,0 @@
-Vagrant.configure("2") do |config|
-
- config.vm.box = "ubuntu/trusty64"
-
- config.vm.network :private_network, ip: "10.10.10.10"
- config.ssh.forward_agent = true
-
- # http://foo-o-rama.com/vagrant--stdin-is-not-a-tty--fix.html
- config.vm.provision "fix-no-tty", type: "shell" do |s|
- s.privileged = false
- s.inline = "sudo sed -i '/tty/!s/mesg n/tty -s \\&\\& mesg n/' /root/.profile"
- end
-
- config.vm.provider :virtualbox do |vb|
- vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
- vb.customize ["modifyvm", :id, "--memory", 1024]
- vb.customize ["modifyvm", :id, "--cpus", 2]
- end
-
- config.vm.synced_folder "./", "/space/YellowLabTools"
-
- config.vm.provision :shell, :path => "server_config/server_install.sh"
-
-end
diff --git a/bin/cli.js b/bin/cli.js
old mode 100644
new mode 100755
index c03c9220..69f30b40
--- a/bin/cli.js
+++ b/bin/cli.js
@@ -15,7 +15,6 @@ var cli = meow({
'Options:',
' --device Simulates a device. Choose between phone (default), tablet, desktop and desktop-hd.',
' --screenshot Will take a screenshot and use this value as the output path. It needs to end with ".png".',
- //' --wait-for-selector Once the page is loaded, Phantomas will wait until the given CSS selector matches some elements.',
' --proxy Sets an HTTP proxy to pass through. Syntax is "host:port".',
' --cookie Adds a cookie on the main domain.',
' --auth-user Basic HTTP authentication username.',
@@ -24,6 +23,8 @@ var cli = meow({
' --allow-domain Only allow requests to given (comma-separated) domains.',
' --no-externals Block all domains except the main one.',
' --reporter The output format: "json" or "xml". Default is "json".',
+ ' --local-storage Ability to set a local storage, key-value pairs (e.g. "bar=foo;domain=url")',
+ ' --session-storage Ability to set a session storage, key-value pairs (e.g. "bar=foo;domain=url")',
''
].join('\n'),
pkg: require('../package.json')
@@ -75,6 +76,10 @@ options.blockDomain = cli.flags.blockDomain || null;
options.allowDomain = cli.flags.allowDomain || null;
options.noExternals = cli.flags.noExternals || null;
+// Storage injection
+options.localStorage = cli.flags.localStorage;
+options.sessionStorage = cli.flags.sessionStorage;
+
// Output format
if (cli.flags.reporter && cli.flags.reporter !== 'json' && cli.flags.reporter !== 'xml') {
console.error('Incorrect parameters: reporter has to be "json" or "xml"');
@@ -98,7 +103,6 @@ if (cli.flags.reporter && cli.flags.reporter !== 'json' && cli.flags.reporter !=
// Remove some heavy parts of the results object
delete data.toolsResults;
- delete data.javascriptExecutionTree;
var xmlOutput = serializer.render(data);
diff --git a/bin/server.js b/bin/server.js
deleted file mode 100644
index 700f5276..00000000
--- a/bin/server.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var express = require('express');
-var app = express();
-var server = require('http').createServer(app);
-var bodyParser = require('body-parser');
-var compress = require('compression');
-var cors = require('cors');
-
-var authMiddleware = require('../lib/server/middlewares/authMiddleware');
-var apiLimitsMiddleware = require('../lib/server/middlewares/apiLimitsMiddleware');
-var wwwRedirectMiddleware = require('../lib/server/middlewares/wwwRedirectMiddleware');
-
-
-// Middlewares
-app.use(compress());
-app.use(bodyParser.json());
-app.use(cors());
-app.use(wwwRedirectMiddleware);
-app.use(authMiddleware);
-app.use(apiLimitsMiddleware);
-app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
-
-
-// EJS HTML engine
-app.engine('.html', require('ejs').__express);
-app.set('view engine', 'ejs');
-
-
-// Initialize the controllers
-var apiController = require('../lib/server/controllers/apiController')(app);
-var frontController = require('../lib/server/controllers/frontController')(app);
-
-
-// Let's start the server!
-if (!process.env.GRUNTED) {
- var settings = require('../server_config/settings.json');
-
- app.locals.baseUrl = settings.baseUrl;
-
- server.listen(settings.serverPort, function() {
- console.log('Listening on port %d', server.address().port);
-
- // For the tests
- if (server.startTests) {
- server.startTests();
- }
- });
-}
-
-module.exports = app;
diff --git a/doc/img/docker-logo.png b/doc/img/docker-logo.png
new file mode 100644
index 00000000..4390dd41
Binary files /dev/null and b/doc/img/docker-logo.png differ
diff --git a/doc/img/grunt-logo.png b/doc/img/grunt-logo.png
deleted file mode 100644
index c0c32176..00000000
Binary files a/doc/img/grunt-logo.png and /dev/null differ
diff --git a/front/src/css/about.css b/front/src/css/about.css
deleted file mode 100644
index 2e8b784b..00000000
--- a/front/src/css/about.css
+++ /dev/null
@@ -1,18 +0,0 @@
-.about {
- margin: 3em auto;
- width: 80%;
-}
-@media (min-width: 640px) {
- .about {
- width: 50%;
- }
-}
-.about p {
- margin: 2em;
-}
-.about a {
- color: #fff;
-}
-.sponsor {
- color: #ffa319;
-}
diff --git a/front/src/css/dashboard.css b/front/src/css/dashboard.css
deleted file mode 100644
index 3e76ccb9..00000000
--- a/front/src/css/dashboard.css
+++ /dev/null
@@ -1,212 +0,0 @@
-.testedUrl {
- color: inherit;
-}
-.summary {
- text-align: center;
-}
-.summary .globalScore {
- margin: 3em auto;
-}
-.summary .globalScore .globalGrade {
- margin: 0.5 auto;
- width: 2.5em;
- height: 2.5em;
- line-height: 2.5em;
- border-radius: 0.5em;
- font-size: 3em;
- vertical-align: middle;
-}
-.summary .globalScore .on100 {
- font-size: 1.2em;
- margin: 0.5em 0 1em;
-}
-.summary .globalScore .screenshotWrapper:hover {
- opacity: 0.75;
-}
-.summary .globalScore .screenshotWrapper:hover:after {
- position: absolute;
- width: 1.25em;
- height: 1.25em;
- top: 0.7em;
- left: 1.55em;
- font-size: 3em;
- color: #FFF;
- background: #000;
- border-radius: 0.2em;
- text-align: center;
- content: "+";
- opacity: 0.85;
-}
-.summary .globalScore .screenshotWrapper.phone:hover:after {
- top: 1.7em;
- left: 0.64em;
-}
-.summary .globalScore .screenshotWrapper.tablet:hover:after {
- top: 1.5em;
- left: 0.9em;
-}
-@media (min-width: 820px) {
- .summary .globalScore {
- width: 65%;
- display: table;
- }
- .summary .globalScore > div {
- display: table-cell;
- width: 50%;
- vertical-align: middle;
- }
-}
-.summary .notations {
- width: 100%;
- display: table;
- margin: 0 0 1.5em;
- border-spacing: 0 1em;
-}
-@media (min-width: 820px) {
- .summary .notations {
- width: 80%;
- margin: 0 10% 1.5em;
- border-spacing: 1em;
- }
-}
-.summary .notations > div {
- display: table-row;
-}
-.summary .notations > div > div {
- vertical-align: middle;
-}
-@media (min-width: 820px) {
- .summary .notations > div > div {
- display: table-cell;
- height: 2.5em;
- }
-}
-.summary .notations .category {
- font-size: 1.2em;
- width: 50%;
- float: left;
- text-align: left;
- margin: 0.5em 0.25em;
-}
-@media (min-width: 820px) {
- .summary .notations .category {
- width: 20%;
- text-align: center;
- float: none;
- }
-}
-.summary .notations .criteria {
- font-weight: normal;
-}
-@media (min-width: 820px) {
- .summary .notations .criteria {
- width: 75%;
- }
-}
-.summary .notations .A.categoryScore,
-.summary .notations .B.categoryScore,
-.summary .notations .C.categoryScore,
-.summary .notations .D.categoryScore,
-.summary .notations .E.categoryScore,
-.summary .notations .F.categoryScore,
-.summary .notations .NA.categoryScore {
- width: 2.5em;
- max-width: 2.5em;
- min-width: 2.5em;
- margin: 0.2em;
- font-size: 1.5em;
- text-align: center;
- border-radius: 0.5em;
- float: right;
-}
-@media (min-width: 820px) {
- .summary .notations .A.categoryScore,
- .summary .notations .B.categoryScore,
- .summary .notations .C.categoryScore,
- .summary .notations .D.categoryScore,
- .summary .notations .E.categoryScore,
- .summary .notations .F.categoryScore,
- .summary .notations .NA.categoryScore {
- float: none;
- font-size: 2em;
- }
-}
-.summary .notations .grade .A,
-.summary .notations .grade .B,
-.summary .notations .grade .C,
-.summary .notations .grade .D,
-.summary .notations .grade .E,
-.summary .notations .grade .F,
-.summary .notations .grade .NA {
- width: 1em;
- height: 1em;
- font-size: 1em;
- color: transparent;
- margin: 0 auto;
- border-radius: 0.5em;
-}
-.summary .notations .criteria .table {
- width: 100%;
-}
-.summary .notations .criteria .table > a {
- text-decoration: none;
- color: inherit;
-}
-.summary .notations .criteria .table > a:hover > div {
- background: #d8ebe0;
- cursor: pointer;
-}
-.summary .notations .criteria .table > a:hover > div.info {
- background: #FFF;
-}
-.summary .notations .criteria .table > a:hover > div.info svg {
- fill: #d8ebe0;
-}
-.summary .notations .criteria .grade {
- width: 10%;
- padding-left: 0.5em;
- padding-right: 0.5em;
- vertical-align: middle;
-}
-.summary .notations .criteria .label {
- width: 70%;
-}
-.summary .notations .criteria .result {
- width: 18%;
- white-space: nowrap;
- text-align: center;
- vertical-align: middle;
-}
-.summary .notations .warning .label,
-.summary .notations .warning .result {
- color: #FF1919;
-}
-.summary .notations .icon-warning svg {
- fill: #FF1919;
- margin: -2px 0;
-}
-.summary .notations .criteria .info {
- display: none;
-}
-@media (min-width: 820px) {
- .summary .notations .criteria .info {
- display: table-cell;
- width: 2%;
- text-align: center;
- vertical-align: middle;
- background: #FFF;
- padding-left: 0.1em;
- padding-right: 0.1em;
- }
-}
-.summary .notations .criteria .info svg {
- fill: transparent;
-}
-.summary .sponsor {
- font-size: 0.9em;
- margin-bottom: 4em;
- color: #ffa319;
-}
-.summary .sponsor a {
- color: inherit;
-}
diff --git a/front/src/css/index.css b/front/src/css/index.css
deleted file mode 100644
index fabcadf5..00000000
--- a/front/src/css/index.css
+++ /dev/null
@@ -1,196 +0,0 @@
-.promess {
- padding: 0em 2em;
- margin-bottom: 0.5em;
- font-weight: normal;
- font-size: 1.2em;
-}
-.price {
- padding: 0em 2em 3em;
- margin-top: 0em;
- font-size: 0.9em;
-}
-.url {
- width: 50%;
-}
-.launchBtn {
- background: #ffa319;
- color: #fff;
-}
-.launchBtn:focus {
- background: #e74c3c;
-}
-.launchBtn.disabled {
- background: #f1bd70;
-}
-.launchBtn.disabled:focus {
- color: #ddd;
-}
-.settings {
- width: 50%;
- margin: 0 auto;
-}
-.settings input,
-.settings select {
- font-size: 1em;
-}
-.settings input[type=text],
-.settings input[type=password],
-.settings textarea {
- width: 100%;
- min-width: 4em;
-}
-.device {
- margin-top: 3em;
-}
-.device .item {
- display: inline-block;
- margin: 1em 0.75em;
- width: 5.5em;
- height: 5.5em;
- color: #FFF;
- border: 1px solid #FFF;
- padding: 1px;
- border-radius: 0.5em;
- cursor: pointer;
- text-decoration: none;
- font-size: 0.8em;
-}
-.device .item > svg {
- display: block;
- margin: 0.6em auto 0.3em;
- fill: #fff;
-}
-.device .item.active {
- color: #ffa319;
- border: 2px solid #ffa319;
- padding: 0;
-}
-.device .item.active > svg {
- fill: #ffa319;
-}
-.device .item:hover {
- color: #ffa319;
-}
-.device .item:hover > svg {
- fill: #ffa319;
-}
-.settingsTooltip {
- position: relative;
-}
-.settingsTooltip svg {
- vertical-align: text-top;
-}
-.settingsTooltip div {
- display: none;
- position: absolute;
- padding: 0.5em;
- width: 25em;
- background: #FFF;
- color: #000;
- font-size: 0.8em;
- border-radius: 1em;
- border: 2px solid #ffa319;
- white-space: normal;
- word-break: break-all;
- word-break: break-word;
- z-index: 2;
-}
-.settingsTooltip:hover div {
- display: block;
-}
-.showAdvanced {
- display: inline-block;
- margin-top: 2em;
- color: #FFF;
- text-decoration: none;
- font-size: 0.9em;
-}
-.showAdvanced:hover {
- color: #ffa319;
-}
-.currentSettings {
- font-size: 0.9em;
-}
-.currentSettings span {
- color: #ffa319;
-}
-.currentSettings span:after {
- color: #FFF;
- content: ",";
-}
-.currentSettings span:last-child:after {
- content: "";
-}
-.advanced {
- margin: 1em 0 0;
- display: table;
- width: 100%;
- text-align: left;
- border-spacing: 0.75em;
-}
-.advanced > div {
- display: table-row;
-}
-.advanced > div > div {
- display: table-cell;
- width: 75%;
-}
-.advanced > div > div.label {
- width: 25%;
- white-space: nowrap;
- vertical-align: middle;
-}
-.advanced .subTable {
- display: table;
- border-spacing: 0;
- width: 100%;
-}
-.advanced .subTable > div {
- display: table-row;
-}
-.advanced .subTable > div > div {
- display: table-cell;
- padding: 0 0 0.75em;
-}
-.features {
- display: table;
- width: 50%;
- margin: 6em auto 0;
- font-size: 0.9em;
- color: #8abfaf;
-}
-@media (min-width: 640px) {
- .features > div {
- width: 33.3%;
- display: table-cell;
- padding: 0 1.5em;
- }
-}
-.features h3 {
- font-size: 1.5em;
- font-weight: normal;
- color: #fff;
-}
-input[type=submit],
-input.url {
- padding: 0 0.5em;
- margin: 0.5em;
- font-size: 1.2em;
- height: 2em;
- border: 0 solid;
- border-radius: 0.5em;
- outline: none;
-}
-input[type=submit]:hover {
- color: #ddd;
-}
-input[type=submit].clicked {
- color: #ddd;
- position: relative;
- left: 0.1em;
- top: 0.2em;
- box-shadow: none;
-}
-.homeSponsor {
- margin-top: 3em;
-}
diff --git a/front/src/css/main.css b/front/src/css/main.css
deleted file mode 100644
index f8d78f4f..00000000
--- a/front/src/css/main.css
+++ /dev/null
@@ -1,280 +0,0 @@
-html {
- margin: 35px 5px;
-}
-@media (min-width: 640px) {
- html {
- margin: 100px 50px;
- }
-}
-body {
- margin: 0 auto;
- max-width: 1280px;
- background: #212240;
- color: #fff;
- font-size: 16px;
- text-align: center;
-}
-body,
-input[type=submit],
-input[type=text],
-input[type=url],
-input[type=number],
-button {
- font-family: 'Century Gothic', helvetica, arial, sans-serif;
-}
-input[type=submit] {
- cursor: pointer;
-}
-h1 {
- font-weight: 200;
-}
-.resultsMenu {
- margin-top: 2em;
-}
-.resultsMenu .menuItem {
- font-size: 0.8em;
- display: inline-block;
- width: 7em;
- height: 7em;
- color: #fff;
- cursor: pointer;
- text-decoration: none;
-}
-@media (min-width: 640px) {
- .resultsMenu .menuItem {
- font-size: 1em;
- margin: 1em;
- width: 8em;
- border: 2px solid #fff;
- border-radius: 0.5em;
- }
-}
-.resultsMenu .menuItem svg {
- fill: #fff;
-}
-.resultsMenu .menuItem.back,
-.resultsMenu .menuItem.restart {
- color: #fff;
- border-color: #fff;
-}
-.resultsMenu .menuItem div {
- padding-top: 0.5em;
- font-size: 3em;
-}
-.resultsMenu svg {
- display: block;
- margin: 1.2em auto 0.2em;
-}
-.resultsMenu .active,
-.resultsMenu .menuItem.active:hover {
- color: #ffa319;
- border-color: #ffa319;
-}
-.resultsMenu .active svg,
-.resultsMenu .menuItem.active:hover svg {
- fill: #ffa319;
-}
-.resultsMenu .menuItem:hover {
- color: #ffa319;
-}
-.resultsMenu .menuItem:hover svg {
- fill: #ffa319;
-}
-.resultsMenu span {
- position: relative;
- top: 0.5em;
-}
-/* Grade colors */
-.A {
- /* green */
- background: #0C4;
-}
-.B {
- /* green */
- background: #CD0;
-}
-.C {
- /* yellow */
- background: #FD2;
-}
-.D {
- /* orange */
- background: #FA2;
-}
-.E {
- /* red */
- background: #F60;
-}
-.F {
- /* red */
- background: #F22;
-}
-.NA {
- /* Non applicable */
- background: #CCC;
-}
-.board {
- margin-top: 2em;
- padding: 1em;
- background: #fff;
- color: #000;
- border-radius: 0.5em;
- text-align: left;
-}
-.backToDashboard {
- text-align: center;
-}
-.backToDashboard a {
- font-size: 0.9em;
- display: block;
- margin-top: 4em;
- color: black;
-}
-a.linkButton {
- font-size: 1em;
- padding: 0.3em 0.5em;
- margin: 0.5em;
- line-height: 2em;
- border: 0 solid;
- border-radius: 0.5em;
- box-shadow: 0.1em 0.2em 0 0 #5e2846;
- background: #e74c3c;
- color: #fff;
- text-decoration: none;
-}
-.screenshotWrapper {
- display: inline-block;
- position: relative;
- background: #000;
-}
-.screenshotWrapper > div {
- position: relative;
- overflow: hidden;
-}
-.screenshotWrapper .screenshotImage {
- width: 100%;
-}
-.screenshotWrapper .screenshotError {
- color: #fff;
-}
-.screenshotWrapper.desktop,
-.screenshotWrapper.desktop-hd {
- border: 0.2em solid #AAA;
- padding: 0.5em;
- border-top-left-radius: 0.4em;
- border-top-right-radius: 0.4em;
-}
-.screenshotWrapper.desktop:before,
-.screenshotWrapper.desktop-hd:before {
- position: absolute;
- width: 15em;
- height: 0.6em;
- bottom: -0.75em;
- left: -1em;
- background: #CCC;
- border-bottom-left-radius: 0.2em;
- border-bottom-right-radius: 0.2em;
- content: " ";
-}
-.screenshotWrapper.desktop:after,
-.screenshotWrapper.desktop-hd:after {
- position: absolute;
- width: 0.4em;
- height: 0.2em;
- bottom: -0.55em;
- left: 12.5em;
- background: lime;
- content: " ";
-}
-.screenshotWrapper.desktop > div,
-.screenshotWrapper.desktop-hd > div {
- width: 12em;
- height: 7.5em;
-}
-.screenshotWrapper.phone {
- border: 0.07em solid #CCC;
- padding: 1em 0.3em 1.5em;
- border-radius: 0.6em;
-}
-.screenshotWrapper.phone:before {
- position: absolute;
- width: 0.8em;
- height: 0.8em;
- bottom: 0.3em;
- left: 3.3em;
- border: 0.07em solid #CCC;
- border-radius: 0.5em;
- content: " ";
-}
-.screenshotWrapper.phone:after {
- position: absolute;
- width: 1em;
- height: 0.1em;
- bottom: 13.9em;
- left: 3.2em;
- background: #555;
- border-radius: 0.05em;
- content: " ";
-}
-.screenshotWrapper.phone > div {
- width: 6.75em;
- height: 12em;
-}
-.screenshotWrapper.tablet {
- border: 0.07em solid #CCC;
- padding: 0.8em 0.5em 0.9em;
- border-radius: 0.6em;
-}
-.screenshotWrapper.tablet:before {
- position: absolute;
- width: 0.5em;
- height: 0.5em;
- bottom: 0.15em;
- left: 4.35em;
- border: 0.07em solid #CCC;
- border-radius: 0.4em;
- content: " ";
-}
-.screenshotWrapper.tablet > div {
- width: 8em;
- height: 12.8em;
-}
-.table {
- display: table;
- width: 100%;
- border-spacing: 0.25em;
-}
-.table > div,
-.table > a {
- display: table-row;
-}
-.table > .headers > div {
- font-weight: bold;
- padding: 0.5em 1em;
-}
-.table > div > div,
-.table > a > div {
- padding: 0.1em 1em;
- background: #f2f2f2;
- display: table-cell;
- text-align: left;
-}
-.footer {
- padding: 3em;
- color: #fff;
-}
-.footer a {
- color: inherit;
-}
-.footer .version {
- font-size: 0.7em;
-}
-.footer .github {
- margin: 1em 0 0 0.5em;
-}
-.footer .sponsor {
- font-size: 0.9em;
-}
-.homeSponsor {
- color: #ffa319;
-}
diff --git a/front/src/css/queue.css b/front/src/css/queue.css
deleted file mode 100644
index e6b9fa2f..00000000
--- a/front/src/css/queue.css
+++ /dev/null
@@ -1,21 +0,0 @@
-.status {
- margin-top: 2em;
- font-size: 2.5em;
-}
-.statusSubMessage {
- font-size: 0.8em;
- margin-bottom: 6em;
-}
-.progressBarEmpty {
- width: 90%;
- max-width: 300px;
- margin: 1em auto;
- padding: 0.05em;
- border: 1px solid #ffa319;
-}
-.progressBarFilled {
- width: 5%;
- height: 0.5em;
- background: #ffa319;
- transition: width 3s ease-out;
-}
diff --git a/front/src/css/rule.css b/front/src/css/rule.css
deleted file mode 100644
index 24e789ec..00000000
--- a/front/src/css/rule.css
+++ /dev/null
@@ -1,277 +0,0 @@
-.rule.board {
- text-align: center;
-}
-.rule .ruleTable {
- border-spacing: 1em;
- width: 90%;
- margin: 2em auto;
- background: #f2f2f2;
- border: 1px dashed #666;
- border-radius: 0.5em;
-}
-@media (min-width: 820px) {
- .rule .ruleTable {
- display: table;
- }
- .rule .ruleTable > div {
- display: table-cell;
- vertical-align: middle;
- }
- .rule .ruleTable .left {
- width: 33%;
- }
- .rule .ruleTable .right {
- width: 67%;
- }
-}
-.rule .score {
- font-size: 2.5em;
- line-height: 2em;
- height: 2em;
- width: 2em;
- border-radius: 0.5em;
- margin: 0 auto 0.25em;
-}
-.rule h3 {
- margin-bottom: 0em;
-}
-.rule .okThreshold {
- font-style: italic;
- font-size: 0.9em;
-}
-.rule .message {
- width: 80%;
- margin: 1.5em auto;
-}
-.rule .message p {
- margin: 0.5em;
-}
-.rule .message ul {
- list-style-type: none;
- padding-left: 0;
-}
-.rule .message li:before {
- content: '\25e6';
- margin-right: 0.3em;
- font-size: 1.2em;
- position: relative;
- top: 0.1em;
-}
-.rule .warning {
- width: 90%;
- margin: -1em auto 2em;
- background: #FEE;
- border: 1px dashed #e74c3c;
- color: #e74c3c;
- border-radius: 0.5em;
-}
-.rule .offendersTable {
- display: table;
- border-spacing: 0 0.25em;
- margin: 0 auto;
- min-width: 10%;
- font-size: 0.875em;
-}
-@media (min-width: 820px) {
- .rule .offendersTable {
- max-width: 90%;
- font-size: 1em;
- }
-}
-.rule .offendersTable > div {
- display: table-row;
-}
-.rule .offendersTable > div > div {
- display: table-cell;
- background: #f2f2f2;
- padding: 0 0.25em;
- word-wrap: break-word;
- word-break: break-all;
-}
-.rule .offendersTable > div > div:hover {
- background: #d8ebe0;
-}
-.rule .notFound {
- font-size: 1em;
-}
-.rule .notFound h2 {
- font-size: 3em;
- margin-bottom: 1em;
-}
-.rule .startTime {
- display: none;
-}
-.offendersTable .offenderButton,
-.value .offenderButton {
- display: inline-block;
- position: relative;
- background: #efe;
- padding: 0 0.5em;
- margin: 0.2em 0;
- border-radius: 0.4em;
- z-index: 1;
- cursor: pointer;
-}
-.offendersTable .offenderButton.opens,
-.value .offenderButton.opens {
- padding-right: 0.75em;
-}
-.offendersTable .offenderButton.opens:after,
-.value .offenderButton.opens:after {
- position: relative;
- left: 0.5em;
- content: '\25BC';
- font-size: 0.8em;
-}
-.offendersTable .offenderButton > div,
-.value .offenderButton > div {
- display: none;
- position: absolute;
- right: 0;
- min-width: 100%;
- background: inherit;
- border-bottom-left-radius: 0.4em;
- border-bottom-right-radius: 0.4em;
- border-top: 1px solid #999;
- z-index: 2;
-}
-.offendersTable .offenderButton .domTree,
-.value .offenderButton .domTree {
- text-align: left;
- white-space: nowrap;
-}
-.offendersTable .offenderButton .domTree > div,
-.value .offenderButton .domTree > div {
- margin: 0.5em;
-}
-.offendersTable .offenderButton .domTree > div div,
-.value .offenderButton .domTree > div div {
- margin-left: 1em;
-}
-.offendersTable .offenderButton .backtrace,
-.value .offenderButton .backtrace,
-.offendersTable .offenderButton .cssFileAndLine,
-.value .offenderButton .cssFileAndLine {
- white-space: nowrap;
- padding: 0.5em;
-}
-.offendersTable .offenderButton.opens:hover,
-.value .offenderButton.opens:hover {
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0;
- background: #ffe0cc;
- z-index: 2;
-}
-.offendersTable .offenderButton.opens:hover > div,
-.value .offenderButton.opens:hover > div {
- display: block;
- background: #ffe0cc;
-}
-.offendersTable .smallerOffenders,
-.value .smallerOffenders {
- font-size: 0.9em;
-}
-.offendersHtml {
- display: inline-block;
-}
-.domTree div {
- text-align: left;
- margin-left: 1em;
-}
-.domTree div span:only-child {
- font-weight: bold;
-}
-.domTree div span:only-child span {
- font-style: italic;
- font-weight: normal;
-}
-.checker {
- /* Checkerboard background */
- background-color: #ddd;
- background-image: linear-gradient(45deg, #AAA 25%, transparent 25%, transparent 75%, #AAA 75%, #AAA), linear-gradient(45deg, #AAA 25%, transparent 25%, transparent 75%, #AAA 75%, #AAA);
- background-size: 1em 1em;
- background-position: 0 0, 0.5em 0.5em;
-}
-.colorPalette {
- width: 30em;
- border: 2px solid #000;
- text-align: left;
-}
-.colorPalette > div {
- display: inline-block;
- height: 2em;
- position: relative;
-}
-.colorPalette > div div {
- display: none;
- position: absolute;
- left: 100%;
- top: 100%;
- background: #FFF;
- padding: 0.5em;
- border: 2px solid #f1c40f;
- border-radius: 0.5em;
- white-space: nowrap;
- z-index: 3;
- font-weight: bold;
-}
-.colorPalette > div:hover div {
- display: block;
-}
-.colorPalette > div:hover:after {
- content: " ";
- position: absolute;
- left: -0.2em;
- top: -0.2em;
- width: 100%;
- height: 100%;
- z-index: 2;
- border: 0.2em solid #f1c40f;
-}
-.similarColors {
- margin: 1em;
- width: 20em;
- height: 6em;
-}
-.similarColors > div {
- display: inline-block;
- width: 10em;
- height: 3.5em;
- padding-top: 2.5em;
-}
-.totalWeightPie {
- max-width: 20em;
- margin: 2em auto 4em;
-}
-.totalWeightPie canvas {
- max-width: inherit;
-}
-.offenderProblem {
- font-weight: bold;
- color: #e74c3c;
-}
-.imageOffenders {
- display: table;
- border-spacing: 3em;
- width: 90%;
-}
-.imageOffenders > div {
- display: table-row;
-}
-.imageOffenders > div > div {
- display: table-cell;
- vertical-align: middle;
-}
-.imageOffenders img {
- max-height: 10em;
- max-width: 40em;
- border: 1px solid #000;
- margin-top: 0.5em;
-}
-.smallPreview {
- display: block;
- max-height: 6em;
- max-width: 16em;
- border: 1px solid #000;
- margin: 1em auto 0.2em;
-}
diff --git a/front/src/css/screenshot.css b/front/src/css/screenshot.css
deleted file mode 100644
index 0df36d40..00000000
--- a/front/src/css/screenshot.css
+++ /dev/null
@@ -1,17 +0,0 @@
-.screenshot.board {
- text-align: center;
-}
-.screenshot .screenshotWrapper {
- font-size: 1.2em;
- margin-bottom: 0.5em;
-}
-@media (min-width: 420px) {
- .screenshot .screenshotWrapper {
- font-size: 1.6em;
- }
-}
-@media (min-width: 640px) {
- .screenshot .screenshotWrapper {
- font-size: 2.08333333em;
- }
-}
diff --git a/front/src/img/favicon-fail.png b/front/src/img/favicon-fail.png
deleted file mode 100644
index 8192c944..00000000
Binary files a/front/src/img/favicon-fail.png and /dev/null differ
diff --git a/front/src/img/favicon-success.png b/front/src/img/favicon-success.png
deleted file mode 100644
index 09f498fb..00000000
Binary files a/front/src/img/favicon-success.png and /dev/null differ
diff --git a/front/src/img/favicon.png b/front/src/img/favicon.png
deleted file mode 100644
index 23ff5bc5..00000000
Binary files a/front/src/img/favicon.png and /dev/null differ
diff --git a/front/src/img/logo-large.png b/front/src/img/logo-large.png
deleted file mode 100644
index 88d19719..00000000
Binary files a/front/src/img/logo-large.png and /dev/null differ
diff --git a/front/src/js/app.js b/front/src/js/app.js
deleted file mode 100644
index 4b04f1e4..00000000
--- a/front/src/js/app.js
+++ /dev/null
@@ -1,85 +0,0 @@
-var yltApp = angular.module('YellowLabTools', [
- 'ngRoute',
- 'ngSanitize',
- 'ngAnimate',
- 'indexCtrl',
- 'dashboardCtrl',
- 'queueCtrl',
- 'ruleCtrl',
- 'screenshotCtrl',
- 'runsFactory',
- 'resultsFactory',
- 'apiService',
- 'menuService',
- 'settingsService',
- 'gradeDirective',
- 'offendersDirectives',
- 'LocalStorageModule'
-]);
-
-yltApp.run(['$rootScope', '$location', function($rootScope, $location) {
- $rootScope.isTouchDevice = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);
- $rootScope.loadedRunId = null;
-
- var oldHash;
-
- // We don't want the hash to be kept between two pages
- $rootScope.$on('$locationChangeStart', function(param1, param2, param3, param4){
- var newHash = $location.hash();
- if (newHash === oldHash) {
- $location.hash(null);
- }
- oldHash = newHash;
- });
-
- // Google Analytics
- $rootScope.$on('$routeChangeSuccess', function(){
- if (typeof ga !== "undefined") {
- ga('send', 'pageview', {'page': $location.path()});
- }
- });
-
- // GitHub star button (asynchronously loaded iframe)
- window.addEventListener('load', function() {
- window.document.getElementById('ghbtn').src = 'https://ghbtns.com/github-btn.html?user=YellowLabTools&repo=YellowLabTools&type=star&count=true&size=large';
- });
-}]);
-
-yltApp.config(['$routeProvider', '$locationProvider',
- function($routeProvider, $locationProvider) {
- $routeProvider.
- when('/', {
- templateUrl: 'views/index.html',
- controller: 'IndexCtrl'
- }).
- when('/queue/:runId', {
- templateUrl: 'views/queue.html',
- controller: 'QueueCtrl'
- }).
- when('/about', {
- templateUrl: 'views/about.html'
- }).
- when('/result/:runId', {
- templateUrl: 'views/dashboard.html',
- controller: 'DashboardCtrl'
- }).
- when('/result/:runId/screenshot', {
- templateUrl: 'views/screenshot.html',
- controller: 'ScreenshotCtrl'
- }).
- when('/result/:runId/rule/:policy', {
- templateUrl: 'views/rule.html',
- controller: 'RuleCtrl'
- }).
- otherwise({
- redirectTo: '/'
- });
-
- $locationProvider.html5Mode(true);
- }
-]);
-
-// Disable debugging https://docs.angularjs.org/guide/production
-yltApp.config(['$compileProvider', function ($compileProvider) {
- $compileProvider.debugInfoEnabled(false);
-}]);
\ No newline at end of file
diff --git a/front/src/js/controllers/dashboardCtrl.js b/front/src/js/controllers/dashboardCtrl.js
deleted file mode 100644
index cff25b35..00000000
--- a/front/src/js/controllers/dashboardCtrl.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var dashboardCtrl = angular.module('dashboardCtrl', ['resultsFactory', 'menuService']);
-
-dashboardCtrl.controller('DashboardCtrl', ['$scope', '$rootScope', '$routeParams', '$location', 'Results', 'API', 'Menu', function($scope, $rootScope, $routeParams, $location, Results, API, Menu) {
- $scope.runId = $routeParams.runId;
- $scope.Menu = Menu.setCurrentPage('dashboard', $scope.runId);
-
- function loadResults() {
- // Load result if needed
- if (!$rootScope.loadedResult || $rootScope.loadedResult.runId !== $routeParams.runId) {
- Results.get({runId: $routeParams.runId, exclude: 'toolsResults'}, function(result) {
- $rootScope.loadedResult = result;
- $scope.result = result;
- init();
- }, function(err) {
- $scope.error = true;
- });
- } else {
- $scope.result = $rootScope.loadedResult;
- init();
- }
- }
-
- function init() {
- // By default, Angular sorts object's attributes alphabetically. Countering this problem by retrieving the keys order here.
- $scope.categoriesOrder = Object.keys($scope.result.scoreProfiles.generic.categories);
-
- $scope.globalScore = Math.max($scope.result.scoreProfiles.generic.globalScore, 0);
-
- $scope.tweetText = 'I\'ve discovered this cool open-source tool that audits the front-end quality of a web page: ';
- }
-
- $scope.testAgain = function() {
- API.relaunchTest($scope.result);
- };
-
- loadResults();
-}]);
\ No newline at end of file
diff --git a/front/src/js/controllers/indexCtrl.js b/front/src/js/controllers/indexCtrl.js
deleted file mode 100644
index 2537a93b..00000000
--- a/front/src/js/controllers/indexCtrl.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var indexCtrl = angular.module('indexCtrl', []);
-
-indexCtrl.controller('IndexCtrl', ['$scope', '$routeParams', '$location', 'Settings', 'API', function($scope, $routeParams, $location, Settings, API) {
-
- $scope.settings = Settings.getMergedSettings();
-
- $scope.launchTest = function() {
- if ($scope.url) {
- $location.search('url', null);
- $location.search('run', null);
- Settings.saveSettings($scope.settings);
- API.launchTest($scope.url, $scope.settings);
- }
- };
-
- // Auto fill URL field and auto launch test when the good params are set in the URL
- if ($routeParams.url) {
- $scope.url = $routeParams.url;
- if ($routeParams.run === 'true' || $routeParams.run === 1 || $routeParams.run === '1') {
- $scope.launchTest();
- }
- }
-}]);
\ No newline at end of file
diff --git a/front/src/js/controllers/queueCtrl.js b/front/src/js/controllers/queueCtrl.js
deleted file mode 100644
index 938e6d74..00000000
--- a/front/src/js/controllers/queueCtrl.js
+++ /dev/null
@@ -1,100 +0,0 @@
-var queueCtrl = angular.module('queueCtrl', ['runsFactory']);
-
-queueCtrl.controller('QueueCtrl', ['$scope', '$routeParams', '$location', 'Runs', 'API', function($scope, $routeParams, $location, Runs, API) {
- $scope.runId = $routeParams.runId;
-
- var numberOfTries = 0;
-
- var favicon = document.querySelector('link[rel=icon]');
- var faviconUrl = 'img/favicon.png';
- var faviconSuccessUrl = 'img/favicon-success.png';
- var faviconFailUrl = 'img/favicon-fail.png';
- var faviconInterval = null;
- var faviconCounter = 0;
- var faviconCanvas = null;
- var faviconCanvasContext = null;
- var faviconImage = null;
-
- function getRunStatus () {
- Runs.get({runId: $scope.runId}, function(data) {
- $scope.url = data.params.url;
- $scope.status = data.status;
- $scope.progress = data.progress;
- $scope.notFound = false;
- $scope.connectionLost = false;
-
- if (data.status.statusCode === 'awaiting') {
- numberOfTries ++;
- rotateFavicon();
-
- // Retrying every 2 seconds (and increasing the delay a bit more each time)
- setTimeout(getRunStatus, 2000 + (numberOfTries * 100));
-
- } else if (data.status.statusCode === 'running') {
- numberOfTries ++;
- rotateFavicon();
-
- // Retrying every second or so
- setTimeout(getRunStatus, 1000 + (numberOfTries * 10));
-
- } else if (data.status.statusCode === 'complete') {
- stopFavicon(true);
-
- $location.path('/result/' + $scope.runId).replace();
- } else {
- stopFavicon(false);
-
- // The rest is handled by the view
- }
- }, function(response) {
- if (response.status === 404) {
- stopFavicon(false);
- $scope.notFound = true;
- $scope.connectionLost = false;
- } else if (response.status === 0) {
- // Connection lost, retry in 10 seconds
- setTimeout(getRunStatus, 10000);
- $scope.connectionLost = true;
- $scope.notFound = false;
- }
- });
- }
-
- function rotateFavicon() {
- if (!faviconInterval) {
- faviconImage = new Image();
- faviconImage.onload = function() {
- faviconCanvas = document.getElementById('faviconRotator');
- faviconCanvasContext = faviconCanvas.getContext('2d');
- faviconCanvasContext.fillStyle = '#212240';
-
- if (!!faviconCanvasContext) {
- faviconInterval = window.setInterval(faviconTick, 300);
- }
- };
- faviconImage.src = faviconUrl;
- }
- }
-
- function faviconTick() {
- faviconCounter ++;
- faviconCanvasContext.save();
- faviconCanvasContext.fillRect(0, 0, 32, 32);
- faviconCanvasContext.translate(16, 16);
- faviconCanvasContext.rotate(22.5 * faviconCounter * Math.PI / 180);
- faviconCanvasContext.translate(-16, -16);
- faviconCanvasContext.drawImage(faviconImage, 0, 0, 32, 32);
- faviconCanvasContext.restore();
- favicon.href = faviconCanvas.toDataURL('image/png');
- }
-
- function stopFavicon(isSuccess) {
- window.clearInterval(faviconInterval);
- faviconInterval = null;
- favicon.href = isSuccess ? faviconSuccessUrl : faviconFailUrl;
- }
-
- getRunStatus();
-}]);
-
-
\ No newline at end of file
diff --git a/front/src/js/controllers/ruleCtrl.js b/front/src/js/controllers/ruleCtrl.js
deleted file mode 100644
index b2502c2b..00000000
--- a/front/src/js/controllers/ruleCtrl.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var ruleCtrl = angular.module('ruleCtrl', ['chart.js']);
-
-ruleCtrl.config(['ChartJsProvider', function (ChartJsProvider) {
- // Configure all charts
- ChartJsProvider.setOptions({
- animation: false,
- colours: ['#FF5252', '#FF8A80'],
- responsive: true
- });
-}]);
-
-ruleCtrl.controller('RuleCtrl', ['$scope', '$rootScope', '$routeParams', '$location', '$sce', 'Menu', 'Results', 'API', function($scope, $rootScope, $routeParams, $location, $sce, Menu, Results, API) {
- $scope.runId = $routeParams.runId;
- $scope.policyName = $routeParams.policy;
- $scope.Menu = Menu.setCurrentPage(null, $scope.runId);
- $scope.rule = null;
-
- function loadResults() {
- // Load result if needed
- if (!$rootScope.loadedResult || $rootScope.loadedResult.runId !== $routeParams.runId) {
- Results.get({runId: $routeParams.runId, exclude: 'toolsResults'}, function(result) {
- $rootScope.loadedResult = result;
- $scope.result = result;
- init();
- });
- } else {
- $scope.result = $rootScope.loadedResult;
- init();
- }
- }
-
- function init() {
- $scope.rule = $scope.result.rules[$scope.policyName];
-
- // Init "Total Weight" chart
- if ($scope.policyName === 'totalWeight') {
- $scope.weightLabels = [];
- $scope.weightColours = ['#7ECCCC', '#A7E846', '#FF944D', '#FFE74A', '#C2A3FF', '#5A9AED', '#FF6452', '#C1C1C1'];
- $scope.weightData = [];
-
- var types = ['html', 'css', 'js', 'json', 'image', 'video', 'webfont', 'other'];
- types.forEach(function(type) {
- $scope.weightLabels.push(type);
- $scope.weightData.push(Math.round($scope.rule.offendersObj.list.byType[type].totalWeight / 1024));
- });
-
- $scope.weightOptions = {
- tooltips: {
- callbacks: {
- label: function(tooltipItem, data) {
- var label = data.labels[tooltipItem.index];
- var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
- return label + ': ' + value + ' KB';
- }
- }
- },
- legend: {
- display: true,
- position: 'bottom',
- labels: {
- boxWidth: 12,
- fontSize: 14
- }
- }
- };
- }
- }
-
- $scope.backToDashboard = function() {
- $location.path('/result/' + $scope.runId);
- };
-
- $scope.testAgain = function() {
- API.relaunchTest($scope.result);
- };
-
- loadResults();
-}]);
\ No newline at end of file
diff --git a/front/src/js/controllers/screenshotCtrl.js b/front/src/js/controllers/screenshotCtrl.js
deleted file mode 100644
index 6bd5fbf8..00000000
--- a/front/src/js/controllers/screenshotCtrl.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var screenshotCtrl = angular.module('screenshotCtrl', ['resultsFactory', 'menuService']);
-
-screenshotCtrl.controller('ScreenshotCtrl', ['$scope', '$rootScope', '$routeParams', '$location', 'Results', 'API', 'Menu', function($scope, $rootScope, $routeParams, $location, Results, API, Menu) {
- $scope.runId = $routeParams.runId;
- $scope.Menu = Menu.setCurrentPage(null, $scope.runId);
-
- function loadResults() {
- // Load result if needed
- if (!$rootScope.loadedResult || $rootScope.loadedResult.runId !== $routeParams.runId) {
- Results.get({runId: $routeParams.runId, exclude: 'toolsResults'}, function(result) {
- $rootScope.loadedResult = result;
- $scope.result = result;
- }, function(err) {
- $scope.error = true;
- });
- } else {
- $scope.result = $rootScope.loadedResult;
- }
- }
-
- $scope.backToDashboard = function() {
- $location.path('/result/' + $scope.runId);
- };
-
- $scope.testAgain = function() {
- API.relaunchTest($scope.result);
- };
-
- loadResults();
-}]);
\ No newline at end of file
diff --git a/front/src/js/directives/gradeDirective.js b/front/src/js/directives/gradeDirective.js
deleted file mode 100644
index 99cad49f..00000000
--- a/front/src/js/directives/gradeDirective.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var gradeDirective = angular.module('gradeDirective', []);
-
-gradeDirective.directive('grade', function() {
-
- return {
- restrict: 'E',
- scope: {
- score: '=score'
- },
- template: '{{getGrade(score)}}
',
- replace: true,
- controller : ['$scope', function($scope) {
- $scope.getGrade = function(score) {
- if (score > 80) {
- return 'A';
- }
- if (score > 60) {
- return 'B';
- }
- if (score > 40) {
- return 'C';
- }
- if (score > 20) {
- return 'D';
- }
- if (score > 0) {
- return 'E';
- }
- return 'F';
- };
- }]
- };
-});
\ No newline at end of file
diff --git a/front/src/js/directives/offendersDirectives.js b/front/src/js/directives/offendersDirectives.js
deleted file mode 100644
index 956a9cb3..00000000
--- a/front/src/js/directives/offendersDirectives.js
+++ /dev/null
@@ -1,307 +0,0 @@
-(function() {
- "use strict";
- var offendersDirectives = angular.module('offendersDirectives', []);
-
- function getdomTreeHTML(tree) {
- return '' + getdomTreeInnerHTML(tree) + '
';
- }
-
- function getdomTreeInnerHTML(tree) {
- return recursiveHtmlBuilder(tree);
- }
-
- function recursiveHtmlBuilder(tree) {
- var html = '';
- var keys = Object.keys(tree);
-
- keys.forEach(function(key) {
- if (isNaN(tree[key])) {
- html += '' + key + ' ' + recursiveHtmlBuilder(tree[key]) + '
';
- } else if (tree[key] > 1) {
- html += '' + key + ' (x' + tree[key] + ')
';
- } else {
- html += '' + key + '
';
- }
- });
-
- return html;
- }
-
- offendersDirectives.directive('domTree', function() {
- return {
- restrict: 'E',
- scope: {
- tree: '='
- },
- template: '
',
- replace: true,
- link: function(scope, element) {
- element.append(getdomTreeInnerHTML(scope.tree));
- }
- };
- });
-
- function getDomElementButtonHTML(obj, onASingleLine) {
- if (obj.tree && !onASingleLine) {
- return '' + getDomElementButtonInnerHTML(obj, onASingleLine) + '
';
- } else {
- return '' + getDomElementButtonInnerHTML(obj, onASingleLine) + '
';
- }
- }
-
- function getDomElementButtonInnerHTML(obj, onASingleLine) {
- if (obj.type === 'html' ||
- obj.type === 'body' ||
- obj.type === 'head' ||
- obj.type === 'window' ||
- obj.type === 'document' ||
- obj.type === 'fragment') {
- return obj.type;
- }
-
- if (obj.type === 'notAnElement') {
- return 'Incorrect element';
- }
-
- var html = '';
- if (obj.type === 'domElement') {
- html = 'DOM element ' + obj.element + ' ';
- } else if (obj.type === 'fragmentElement') {
- html = 'Fragment element ' + obj.element + ' ';
- } else if (obj.type === 'createdElement') {
- html = 'Created element ' + obj.element + ' ';
- }
-
- if (obj.tree && !onASingleLine) {
- html += getdomTreeHTML(obj.tree);
- }
-
- return html;
- }
-
- offendersDirectives.directive('domElementButton', function() {
- return {
- restrict: 'E',
- scope: {
- obj: '='
- },
- template: '
',
- replace: true,
- link: function(scope, element) {
- element.append(getDomElementButtonInnerHTML(scope.obj));
- }
- };
- });
-
- offendersDirectives.filter('lastDOMNode', function() {
- return function(str) {
- var splited = str.split(' > ');
- return splited[splited.length - 1];
- };
- });
-
- function getBacktraceHTML(backtrace) {
- var html = '';
- var parsedBacktrace = parseBacktrace(backtrace);
-
- if (!parsedBacktrace || parsedBacktrace.length === 0) {
- html += 'can\'t find any backtrace :/
';
- } else {
- for (var i = 0 ; i < parsedBacktrace.length ; i++) {
- html += '';
- html += '
' + (parsedBacktrace[i].fnName || '(anonymous function)') + '
';
- html += '
' + getUrlLink(parsedBacktrace[i].filePath, 40) + '
';
- if (parsedBacktrace[i].column) {
- html += '
' + parsedBacktrace[i].line + ':' + parsedBacktrace[i].column + '
';
- } else {
- html += '
line ' + parsedBacktrace[i].line + '
';
- }
- html += '
';
- }
- }
-
- return html;
- }
-
- function parseBacktrace(str) {
- if (!str) {
- return null;
- }
-
- var out = [];
- var splited = str.split(' / ');
-
- try {
-
- splited.forEach(function(trace) {
- var fnName = null, fileAndLine;
-
- var withFnResult = /^([^\s\(]+) \((.+:\d+)\)$/.exec(trace);
-
- if (withFnResult === null) {
- // Try the PhantomJS 2 format
- withFnResult = /^([^\s\(]+) \((.+:\d+:\d+)\)$/.exec(trace);
- }
-
- if (withFnResult === null) {
- // Yet another PhantomJS 2 format?
- withFnResult = /^([^\s\(]+|global code)@(.+:\d+:\d+)$/.exec(trace);
- }
-
- if (withFnResult === null) {
- // Try the PhantomJS 2 ERROR format
- withFnResult = /^([^\s\(]+) (http.+:\d+)$/.exec(trace);
- }
-
- if (withFnResult === null) {
- fileAndLine = trace;
- } else {
- fnName = withFnResult[1];
- fileAndLine = withFnResult[2];
- }
-
- // And now the second part
- var fileAndLineSplit = /^(.*):(\d+):(\d+)$/.exec(fileAndLine);
-
- if (fileAndLineSplit === null) {
- fileAndLineSplit = /^(.*):(\d+)$/.exec(fileAndLine);
- }
-
- var filePath = fileAndLineSplit[1];
- var line = fileAndLineSplit[2];
- var column = fileAndLineSplit[3];
-
- // Filter phantomas code
- if (filePath.indexOf('phantomjs://') === -1) {
- out.push({
- fnName: fnName,
- filePath: filePath,
- line: line,
- column: column
- });
- }
- });
-
- } catch(e) {
- return null;
- }
-
- return out;
- }
-
- function shortenUrl(url, maxLength) {
- if (!maxLength) {
- maxLength = 110;
- }
-
- // Why dividing by 2.1? Because it adds a 5% margin.
- var leftLength = Math.floor((maxLength - 5) / 2.1);
- var rightLength = Math.ceil((maxLength - 5) / 2.1);
-
- return (url.length > maxLength) ? url.substr(0, leftLength) + ' ... ' + url.substr(-rightLength) : url;
- }
-
- offendersDirectives.filter('shortenUrl', function() {
- return shortenUrl;
- });
-
- function getUrlLink(url, maxLength) {
- return ' ' + shortenUrl(url, maxLength) + ' ';
- }
-
- offendersDirectives.directive('urlLink', function() {
- return {
- restrict: 'E',
- scope: {
- url: '=',
- maxLength: '='
- },
- template: '{{url | shortenUrl:maxLength}} ',
- replace: true
- };
- });
-
- offendersDirectives.filter('encodeURIComponent', function() {
- return window.encodeURIComponent;
- });
-
- offendersDirectives.directive('fileAndLine', function() {
- return {
- restrict: 'E',
- scope: {
- file: '=',
- line: '=',
- column: '='
- },
- template: '<inline CSS> @ {{line}}:{{column}} ',
- replace: true
- };
- });
-
- offendersDirectives.directive('fileAndLineButton', function() {
- return {
- restrict: 'E',
- scope: {
- file: '=',
- line: '=',
- column: '='
- },
- template: '',
- replace: true
- };
- });
-
- offendersDirectives.filter('bytes', function() {
- return function(bytes) {
- if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) {
- return '-';
- }
-
- var kilo = bytes / 1024;
-
- if (kilo < 1) {
- return bytes + ' bytes';
- }
-
- if (kilo < 100) {
- return kilo.toFixed(1) + ' KB';
- }
-
- if (kilo < 1024) {
- return kilo.toFixed(0) + ' KB';
- }
-
- var mega = kilo / 1024;
-
- if (mega < 10) {
- return mega.toFixed(2) + ' MB';
- }
-
- return mega.toFixed(1) + ' MB';
- };
- });
-
- offendersDirectives.filter('addSpaces', function() {
- return function(str) {
- return str.split('').join(' ');
- };
- });
-
- // Proxify an HTTP image to HTTPS if hosted on HTTPS
- // Uses a great free open-source external service: https://images.weserv.nl
- offendersDirectives.filter('https', function() {
- return function(url) {
- if (url && url.indexOf('http://') === 0 && window.location.protocol === 'https:') {
- return 'https://images.weserv.nl/?url=' + encodeURIComponent(url.substr(7));
- }
- return url;
- };
- });
-
- offendersDirectives.filter('roundNbr', function() {
- return function(nbr) {
- return Math.round(nbr);
- };
- });
-
-})();
diff --git a/front/src/js/models/resultsFactory.js b/front/src/js/models/resultsFactory.js
deleted file mode 100644
index dfe5a3cd..00000000
--- a/front/src/js/models/resultsFactory.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var resultsFactory = angular.module('resultsFactory', ['ngResource']);
-
-resultsFactory.factory('Results', ['$resource', function($resource) {
- return $resource('api/results/:runId', {
-
- });
-}]);
\ No newline at end of file
diff --git a/front/src/js/models/runsFactory.js b/front/src/js/models/runsFactory.js
deleted file mode 100644
index da54bb08..00000000
--- a/front/src/js/models/runsFactory.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var runsFactory = angular.module('runsFactory', ['ngResource']);
-
-runsFactory.factory('Runs', ['$resource', function($resource) {
- return $resource('api/runs/:runId', {
-
- });
-}]);
\ No newline at end of file
diff --git a/front/src/js/services/apiService.js b/front/src/js/services/apiService.js
deleted file mode 100644
index 01c64094..00000000
--- a/front/src/js/services/apiService.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var apiService = angular.module('apiService', []);
-
-apiService.factory('API', ['$location', 'Runs', 'Results', function($location, Runs, Results) {
-
- return {
-
- launchTest: function(url, settings) {
- var runObject = {
- url: url,
- waitForResponse: false,
- screenshot: true,
- device: settings.device,
- waitForSelector: settings.waitForSelector,
- proxy: settings.proxy,
- cookie: settings.cookie,
- authUser: settings.authUser,
- authPass: settings.authPass,
- blockDomain: settings.blockDomain,
- allowedDomains: settings.allowedDomains,
- noExternals: settings.noExternals
- };
-
-
- if (settings.domainsBlockOrAllow === 'block') {
- runObject.blockDomain = this.parseDomains(settings.domains);
- } else if (settings.domainsBlockOrAllow === 'allow') {
- var allowedDomains = this.parseDomains(settings.domains);
- if (allowedDomains.length > 0) {
- runObject.allowDomain = allowedDomains;
- } else {
- runObject.noExternals = true;
- }
- }
-
- Runs.save(runObject, function(data) {
- $location.path('/queue/' + data.runId);
- }, function(response) {
- if (response.status === 429) {
- alert('Too many requests, you reached the max number of requests allowed in 24h');
- } else if (response.status === 403) {
- alert('This particular query was blocked due to spamming. If you think it\'s an error, please open an issue on GitHub.');
- } else {
- alert('An error occured...');
- }
- });
- },
-
- relaunchTest: function(result) {
- this.launchTest(result.params.url, result.params.options);
- },
-
- parseDomains: function(textareaContent) {
- var lines = textareaContent.split('\n');
-
- function removeEmptyLines (line) {
- return line.trim() !== '';
- }
-
- // Remove empty lines
- return lines.filter(removeEmptyLines).join(',');
- }
- };
-
-}]);
\ No newline at end of file
diff --git a/front/src/js/services/menuService.js b/front/src/js/services/menuService.js
deleted file mode 100644
index 9ef3c370..00000000
--- a/front/src/js/services/menuService.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var menuService = angular.module('menuService', []);
-
-menuService.factory('Menu', ['$location', function($location) {
-
- var currentPage, currentRunId;
-
- return {
- getCurrentPage: function() {
- return currentPage;
- },
- setCurrentPage: function(page, runId) {
- currentPage = page;
- currentRunId = runId;
-
- return this;
- },
- changePage: function(page) {
- switch (page) {
- case 'index':
- $location.path('/');
- break;
- case 'dashboard':
- $location.path('/result/' + currentRunId);
- break;
- default:
- console.err('Undefined Menu.changePage() destination');
- }
- }
- };
-
-}]);
\ No newline at end of file
diff --git a/front/src/js/services/settingsService.js b/front/src/js/services/settingsService.js
deleted file mode 100644
index 741280c6..00000000
--- a/front/src/js/services/settingsService.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var settingsService = angular.module('settingsService', []);
-
-settingsService.factory('Settings', ['localStorageService', function(localStorageService) {
-
- return {
-
- getMergedSettings: function() {
- var defaultSettings = {
- device: 'phone',
- showAdvanced: false
- };
-
- var savedValues = localStorageService.get('settings');
-
- return angular.extend(defaultSettings, savedValues);
- },
-
- saveSettings: function(settings) {
- localStorageService.set('settings', settings);
- }
-
- };
-
-}]);
\ No newline at end of file
diff --git a/front/src/less/about.less b/front/src/less/about.less
deleted file mode 100644
index 0f101e93..00000000
--- a/front/src/less/about.less
+++ /dev/null
@@ -1,20 +0,0 @@
-.about {
- margin: 3em auto;
- width: 80%;
-
- @media (min-width: 640px) {
- width: 50%;
- }
-}
-
-.about p {
- margin: 2em;
-}
-
-.about a {
- color: #fff;
-}
-
-.sponsor {
- color: #ffa319;
-}
\ No newline at end of file
diff --git a/front/src/less/dashboard.less b/front/src/less/dashboard.less
deleted file mode 100644
index d344964b..00000000
--- a/front/src/less/dashboard.less
+++ /dev/null
@@ -1,199 +0,0 @@
-.testedUrl {
- color: inherit;
-}
-
-.summary {
- text-align: center;
-}
-
-.summary .globalScore {
- margin: 3em auto;
-
- .globalGrade {
- margin: 0.5 auto;
- width: 2.5em;
- height: 2.5em;
- line-height: 2.5em;
- border-radius: 0.5em;
- font-size: 3em;
- vertical-align: middle;
- }
- .on100 {
- font-size: 1.2em;
- margin: 0.5em 0 1em;
- }
-
- .screenshotWrapper:hover {
- opacity: 0.75;
-
- &:after {
- position: absolute;
- width: 1.25em;
- height: 1.25em;
- top: 0.7em;
- left: 1.55em;
- font-size: 3em;
- color: #FFF;
- background: #000;
- border-radius: 0.2em;
- text-align: center;
- content: "+";
- opacity: 0.85;
- }
- }
-
- .screenshotWrapper.phone:hover:after {
- top: 1.7em;
- left: 0.64em;
- }
-
- .screenshotWrapper.tablet:hover:after {
- top: 1.5em;
- left: 0.9em;
- }
-
- @media (min-width: 820px) {
- width: 65%;
- display: table;
-
- > div {
- display: table-cell;
- width: 50%;
- vertical-align: middle;
- }
- }
-}
-
-.summary .notations {
- width: 100%;
- display: table;
- margin: 0 0 1.5em;
- border-spacing: 0 1em;
-
- @media (min-width: 820px) {
- width: 80%;
- margin: 0 10% 1.5em;
- border-spacing: 1em;
- }
-}
-.summary .notations > div {
- display: table-row;
-}
-.summary .notations > div > div {
- vertical-align: middle;
-
- @media (min-width: 820px) {
- display: table-cell;
- height: 2.5em;
- }
-}
-.summary .notations .category {
- font-size: 1.2em;
- width: 50%;
- float: left;
- text-align: left;
- margin: 0.5em 0.25em;
-
- @media (min-width: 820px) {
- width: 20%;
- text-align: center;
- float: none;
- }
-}
-.summary .notations .criteria {
- font-weight: normal;
-
- @media (min-width: 820px) {
- width: 75%;
- }
-}
-.A, .B, .C, .D, .E, .F, .NA {
- .summary .notations &.categoryScore {
- width: 2.5em;
- max-width: 2.5em;
- min-width: 2.5em;
- margin: 0.2em;
- font-size: 1.5em;
- text-align: center;
- border-radius: 0.5em;
- float: right;
-
- @media (min-width: 820px) {
- float: none;
- font-size: 2em;
- }
- }
- .summary .notations .grade & {
- width: 1em;
- height: 1em;
- font-size: 1em;
- color: transparent;
- margin: 0 auto;
- border-radius: 0.5em;
- }
-}
-
-.summary .notations .criteria .table {
- width: 100%;
- > a {
- text-decoration: none;
- color: inherit;
- }
- > a:hover > div {
- background: #d8ebe0;
- cursor: pointer;
- &.info {
- background: #FFF;
- svg {
- fill: #d8ebe0;
- }
- }
- }
-}
-.summary .notations .criteria .grade {
- width: 10%;
- padding-left: 0.5em;
- padding-right: 0.5em;
- vertical-align: middle;
-}
-.summary .notations .criteria .label {
- width: 70%;
-}
-.summary .notations .criteria .result {
- width: 18%;
- white-space: nowrap;
- text-align: center;
- vertical-align: middle;
-}
-.summary .notations .warning .label, .summary .notations .warning .result {
- color: #FF1919;
-}
-.summary .notations .icon-warning svg {
- fill: #FF1919;
- margin: -2px 0;
-}
-.summary .notations .criteria .info {
- display: none;
-
- @media (min-width: 820px) {
- display: table-cell;
- width: 2%;
- text-align: center;
- vertical-align: middle;
- background: #FFF;
- padding-left: 0.1em;
- padding-right: 0.1em;
- }
-}
-.summary .notations .criteria .info svg {
- fill: transparent;
-}
-
-.summary .sponsor {
- font-size: 0.9em;
- margin-bottom: 4em;
- color: #ffa319;
- a {
- color: inherit;
- }
-}
\ No newline at end of file
diff --git a/front/src/less/index.less b/front/src/less/index.less
deleted file mode 100644
index 1edb887e..00000000
--- a/front/src/less/index.less
+++ /dev/null
@@ -1,223 +0,0 @@
-.promess {
- padding: 0em 2em;
- margin-bottom: 0.5em;
- font-weight: normal;
- font-size: 1.2em;
-}
-
-.price {
- padding: 0em 2em 3em;
- margin-top: 0em;
- font-size: 0.9em;
-}
-
-.url {
- width: 50%;
-}
-
-.launchBtn {
- background: #ffa319;
- color: #fff;
- &:focus {
- background: #e74c3c;
- }
- &.disabled {
- background: #f1bd70;
- &:focus {
- color: #ddd;
- }
- }
-
-}
-
-.settings {
- width: 50%;
- margin: 0 auto;
-
- input, select {
- font-size: 1em;
- }
-
- input[type=text], input[type=password], textarea {
- width: 100%;
- min-width: 4em;
- }
-}
-
-.device {
- margin-top: 3em;
- .item {
- display: inline-block;
- margin: 1em 0.75em;
- width: 5.5em;
- height: 5.5em;
- color: #FFF;
- border: 1px solid #FFF;
- padding: 1px;
- border-radius: 0.5em;
- cursor: pointer;
- text-decoration: none;
- font-size: 0.8em;
-
- > svg {
- display: block;
- margin: 0.6em auto 0.3em;
- fill: #fff;
- }
-
- &.active {
- color: #ffa319;
- border: 2px solid #ffa319;
- padding: 0;
-
- > svg {
- fill: #ffa319;
- }
- }
-
- &:hover {
- color: #ffa319;
-
- > svg {
- fill: #ffa319;
- }
- }
- }
-}
-
-.settingsTooltip {
- position: relative;
- svg {
- vertical-align: text-top;
- }
-
- div {
- display: none;
- position: absolute;
- padding: 0.5em;
- width: 25em;
- background: #FFF;
- color: #000;
- font-size: 0.8em;
- border-radius: 1em;
- border: 2px solid #ffa319;
- white-space: normal;
- word-break: break-all;
- word-break: break-word;
- z-index: 2;
- }
-
- &:hover div {
- display: block;
- }
-}
-
-.showAdvanced {
- display: inline-block;
- margin-top: 2em;
- color: #FFF;
- text-decoration: none;
- font-size: 0.9em;
-
- &:hover {
- color: #ffa319;
- }
-}
-
-.currentSettings {
- font-size: 0.9em;
-
- span {
- color: #ffa319;
- &:after {
- color: #FFF;
- content: ",";
- }
-
- &:last-child:after {
- content: "";
- }
- }
-}
-
-.advanced {
- margin: 1em 0 0;
- display: table;
- width: 100%;
- text-align: left;
- border-spacing: 0.75em;
-
- > div {
- display: table-row;
-
- > div {
- display: table-cell;
- width: 75%;
-
- &.label {
- width: 25%;
- white-space: nowrap;
- vertical-align: middle;
- }
- }
- }
-
- .subTable {
- display: table;
- border-spacing: 0;
- width: 100%;
- > div {
- display: table-row;
- > div {
- display: table-cell;
- padding: 0 0 0.75em;
- }
- }
- }
-}
-
-.features {
- display: table;
- width: 50%;
- margin: 6em auto 0;
- font-size: 0.9em;
- color: #8abfaf;
-
- > div {
- @media (min-width: 640px) {
- width: 33.3%;
- display: table-cell;
- padding: 0 1.5em;
- }
- }
-
- h3 {
- font-size: 1.5em;
- font-weight: normal;
- color: #fff;
- }
-}
-
-input[type=submit], input.url {
- padding: 0 0.5em;
- margin: 0.5em;
- font-size: 1.2em;
- height: 2em;
- border: 0 solid;
- border-radius: 0.5em;
- outline: none;
-}
-input[type=submit]:hover {
- color: #ddd;
-}
-input[type=submit].clicked {
- color: #ddd;
- position: relative;
- left: 0.1em;
- top: 0.2em;
- box-shadow: none;
-}
-
-.homeSponsor {
- margin-top: 3em;
-}
\ No newline at end of file
diff --git a/front/src/less/main.less b/front/src/less/main.less
deleted file mode 100644
index 2b4c0ffc..00000000
--- a/front/src/less/main.less
+++ /dev/null
@@ -1,298 +0,0 @@
-html {
- margin: 35px 5px;
- @media (min-width: 640px) {
- margin: 100px 50px;
- }
-}
-
-body {
- margin: 0 auto;
- max-width: 1280px;
- background: #212240;
- color: #fff;
- font-size: 16px;
- text-align: center;
-}
-
-body, input[type=submit], input[type=text], input[type=url], input[type=number], button {
- font-family: 'Century Gothic', helvetica, arial, sans-serif;
-}
-
-input[type=submit] {
- cursor: pointer;
-}
-
-h1 {
- font-weight: 200;
-}
-
-.resultsMenu {
- margin-top: 2em;
-}
-.resultsMenu .menuItem {
- font-size: 0.8em;
- display: inline-block;
- width: 7em;
- height: 7em;
- color: #fff;
- cursor: pointer;
- text-decoration: none;
-
- @media (min-width: 640px) {
- font-size: 1em;
- margin: 1em;
- width: 8em;
- border: 2px solid #fff;
- border-radius: 0.5em;
- }
-
- svg {
- fill: #fff;
- }
-
- &.back, &.restart {
- color: #fff;
- border-color: #fff;
- }
-}
-.resultsMenu .menuItem div {
- padding-top: 0.5em;
- font-size: 3em;
-}
-.resultsMenu svg {
- display: block;
- margin: 1.2em auto 0.2em;
-}
-.resultsMenu .active, .resultsMenu .menuItem.active:hover {
- color: #ffa319;
- border-color: #ffa319;
-
- svg {
- fill: #ffa319;
- }
-}
-.resultsMenu .menuItem:hover {
- color: #ffa319;
-
- svg {
- fill: #ffa319;
- }
-}
-.resultsMenu span {
- position: relative;
- top: 0.5em;
-}
-
-/* Grade colors */
-.A {
- /* green */
- background: #0C4;
-}
-.B {
- /* green */
- background: #CD0;
-}
-.C {
- /* yellow */
- background: #FD2;
-}
-.D {
- /* orange */
- background: #FA2;
-}
-.E {
- /* red */
- background: #F60;
-}
-.F {
- /* red */
- background: #F22;
-}
-.NA {
- /* Non applicable */
- background: #CCC;
-}
-
-.board {
- margin-top: 2em;
- padding: 1em;
- background: #fff;
- color: #000;
- border-radius: 0.5em;
- text-align: left;
-}
-
-.backToDashboard {
- text-align: center;
-
- a {
- font-size: 0.9em;
- display: block;
- margin-top: 4em;
- color: black;
- }
-}
-
-a.linkButton {
- font-size: 1em;
- padding: 0.3em 0.5em;
- margin: 0.5em;
- line-height: 2em;
- border: 0 solid;
- border-radius: 0.5em;
- box-shadow: 0.1em 0.2em 0 0 #5e2846;
- background: #e74c3c;
- color: #fff;
- text-decoration: none;
-}
-
-
-.screenshotWrapper {
- display: inline-block;
- position: relative;
- background: #000;
-
- > div {
- position: relative;
- overflow: hidden;
- }
-
- .screenshotImage {
- width: 100%;
- }
-
- .screenshotError {
- color: #fff;
- }
-}
-
-.screenshotWrapper.desktop, .screenshotWrapper.desktop-hd {
- border: 0.2em solid #AAA;
- padding: 0.5em;
- border-top-left-radius: 0.4em;
- border-top-right-radius: 0.4em;
-
- &:before {
- position: absolute;
- width: 15em;
- height: 0.6em;
- bottom: -0.75em;
- left: -1em;
- background: #CCC;
- border-bottom-left-radius: 0.2em;
- border-bottom-right-radius: 0.2em;
- content: " ";
- }
-
- &:after {
- position: absolute;
- width: 0.4em;
- height: 0.2em;
- bottom: -0.55em;
- left: 12.5em;
- background: lime;
- content: " ";
- }
-
- > div {
- width: 12em;
- height: 7.5em;
- }
-}
-
-.screenshotWrapper.phone {
- border: 0.07em solid #CCC;
- padding: 1em 0.3em 1.5em;
- border-radius: 0.6em;
-
- &:before {
- position: absolute;
- width: 0.8em;
- height: 0.8em;
- bottom: 0.3em;
- left: 3.3em;
- border: 0.07em solid #CCC;
- border-radius: 0.5em;
- content: " ";
- }
-
- &:after {
- position: absolute;
- width: 1em;
- height: 0.1em;
- bottom: 13.9em;
- left: 3.2em;
- background: #555;
- border-radius: 0.05em;
- content: " ";
- }
-
- > div {
- width: 6.75em;
- height: 12em;
- }
-}
-
-.screenshotWrapper.tablet {
- border: 0.07em solid #CCC;
- padding: 0.8em 0.5em 0.9em;
- border-radius: 0.6em;
-
- &:before {
- position: absolute;
- width: 0.5em;
- height: 0.5em;
- bottom: 0.15em;
- left: 4.35em;
- border: 0.07em solid #CCC;
- border-radius: 0.4em;
- content: " ";
- }
-
- > div {
- width: 8em;
- height: 12.8em;
- }
-}
-
-.table {
- display: table;
- width: 100%;
- border-spacing: 0.25em;
-}
-.table > div,
-.table > a {
- display: table-row;
-}
-.table > .headers > div {
- font-weight: bold;
- padding: 0.5em 1em;
-}
-.table > div > div,
-.table > a > div {
- padding: 0.1em 1em;
- background: #f2f2f2;
- display: table-cell;
- text-align: left;
-}
-
-.footer {
- padding: 3em;
- color: #fff;
- a {
- color: inherit;
- }
- .version {
- font-size: 0.7em;
- }
- .github {
- margin: 1em 0 0 0.5em;
- }
- .sponsor {
- font-size: 0.9em;
- }
-}
-
-.homeSponsor {
- color: #ffa319;
-}
\ No newline at end of file
diff --git a/front/src/less/queue.less b/front/src/less/queue.less
deleted file mode 100644
index 266fbee8..00000000
--- a/front/src/less/queue.less
+++ /dev/null
@@ -1,24 +0,0 @@
-.status {
- margin-top: 2em;
- font-size: 2.5em;
-}
-
-.statusSubMessage {
- font-size: 0.8em;
- margin-bottom: 6em;
-}
-
-.progressBarEmpty {
- width: 90%;
- max-width: 300px;
- margin: 1em auto;
- padding: 0.05em;
- border: 1px solid #ffa319;
-}
-
-.progressBarFilled {
- width: 5%;
- height: 0.5em;
- background: #ffa319;
- transition: width 3s ease-out;
-}
\ No newline at end of file
diff --git a/front/src/less/rule.less b/front/src/less/rule.less
deleted file mode 100644
index 43cae381..00000000
--- a/front/src/less/rule.less
+++ /dev/null
@@ -1,307 +0,0 @@
-.rule.board {
- text-align: center;
-}
-
-.rule .ruleTable {
- border-spacing: 1em;
- width: 90%;
- margin: 2em auto;
- background: #f2f2f2;
- border: 1px dashed #666;
- border-radius: 0.5em;
-
- @media (min-width: 820px) {
- display: table;
-
- > div {
- display: table-cell;
- vertical-align: middle;
- }
-
- .left {
- width: 33%;
- }
- .right {
- width: 67%;
- }
- }
-}
-
-.rule .score {
- font-size: 2.5em;
- line-height: 2em;
- height: 2em;
- width: 2em;
- border-radius: 0.5em;
- margin: 0 auto 0.25em;
-}
-
-.rule h3 {
- margin-bottom: 0em;
-}
-
-.rule .okThreshold {
- font-style: italic;
- font-size: 0.9em;
-}
-
-.rule .message {
- width: 80%;
- margin: 1.5em auto;
- p {
- margin: 0.5em;
- }
-}
-
-.rule .message ul {
- list-style-type: none;
- padding-left: 0;
-}
-.rule .message li:before {
- content:'\25e6';
- margin-right: 0.3em;
- font-size: 1.2em;
- position: relative;
- top: 0.1em;
-}
-
-.rule .warning {
- width: 90%;
- margin: -1em auto 2em;
- background: #FEE;
- border: 1px dashed #e74c3c;
- color: #e74c3c;
- border-radius: 0.5em;
-}
-
-.rule .offendersTable {
- display: table;
- border-spacing: 0 0.25em;
- margin: 0 auto;
- min-width: 10%;
- font-size: 0.875em;
-
- @media (min-width: 820px) {
- max-width: 90%;
- font-size: 1em;
- }
-
- > div {
- display: table-row;
- > div {
- display: table-cell;
- background: #f2f2f2;
- padding: 0 0.25em;
- word-wrap: break-word;
- word-break: break-all;
- &:hover {
- background: #d8ebe0;
- }
- }
- }
-}
-
-.rule .notFound {
- font-size: 1em;
- h2 {
- font-size: 3em;
- margin-bottom: 1em;
- }
-}
-
-.rule .startTime {
- display: none;
-}
-
-.offendersTable, .value {
- .offenderButton {
- display: inline-block;
- position: relative;
- background: #efe;
- padding: 0 0.5em;
- margin: 0.2em 0;
- border-radius: 0.4em;
- z-index: 1;
- cursor: pointer;
-
- &.opens {
- padding-right: 0.75em;
-
- &:after {
- position: relative;
- left: 0.5em;
- content: '\25BC';
- font-size: 0.8em;
- }
- }
-
- > div {
- display: none;
- position: absolute;
- right: 0;
- min-width: 100%;
- background: inherit;
- border-bottom-left-radius: 0.4em;
- border-bottom-right-radius: 0.4em;
- border-top: 1px solid #999;
- z-index: 2;
- }
-
- .domTree {
- text-align: left;
- white-space: nowrap;
-
- > div {
- margin: 0.5em;
-
- div {
- margin-left: 1em;
- }
- }
- }
-
- .backtrace, .cssFileAndLine {
- white-space: nowrap;
- padding: 0.5em;
- }
-
- &.opens:hover {
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0;
- background: #ffe0cc;
- z-index: 2;
-
- > div {
- display: block;
- background: #ffe0cc;
- }
- }
- }
-
- .smallerOffenders {
- font-size: 0.9em;
- }
-}
-
-.offendersHtml {
- display: inline-block;
-}
-
-.domTree div {
- text-align: left;
- margin-left: 1em;
-
- span:only-child {
- font-weight: bold;
- span {
- font-style: italic;
- font-weight: normal;
- }
- }
-}
-
-.checker {
- /* Checkerboard background */
- background-color: #ddd;
- background-image: linear-gradient(45deg, #AAA 25%, transparent 25%, transparent 75%, #AAA 75%, #AAA), linear-gradient(45deg, #AAA 25%, transparent 25%, transparent 75%, #AAA 75%, #AAA);
- background-size:1em 1em;
- background-position:0 0, 0.5em 0.5em;
-}
-
-.colorPalette {
- width: 30em;
- border: 2px solid #000;
- text-align: left;
-
- > div {
- display: inline-block;
- height: 2em;
- position: relative;
-
- div {
- display: none;
- position: absolute;
- left: 100%;
- top: 100%;
- background: #FFF;
- padding: 0.5em;
- border: 2px solid #f1c40f;
- border-radius: 0.5em;
- white-space: nowrap;
- z-index: 3;
- font-weight: bold;
- }
-
- &:hover div {
- display: block;
- }
-
- &:hover:after {
- content: " ";
- position: absolute;
- left: -0.2em;
- top: -0.2em;
- width: 100%;
- height: 100%;
- z-index: 2;
- border: 0.2em solid #f1c40f;
- }
- }
-}
-
-.similarColors {
- margin: 1em;
- width: 20em;
- height: 6em;
-
- > div {
- display: inline-block;
- width: 10em;
- height: 3.5em;
- padding-top: 2.5em;
- }
-}
-
-.totalWeightPie {
- max-width: 20em;
- margin: 2em auto 4em;
-
- canvas {
- max-width: inherit;
- }
-}
-
-.offenderProblem {
- font-weight: bold;
- color: #e74c3c;
-}
-
-.imageOffenders {
- display: table;
- border-spacing: 3em;
- width: 90%;
-
- > div {
- display: table-row;
-
- > div {
- display: table-cell;
- vertical-align: middle;
- }
- }
-
- img {
- max-height: 10em;
- max-width: 40em;
- border: 1px solid #000;
- margin-top: 0.5em;
- }
-}
-
-.smallPreview {
- display: block;
- max-height: 6em;
- max-width: 16em;
- border: 1px solid #000;
- margin: 1em auto 0.2em;
-}
\ No newline at end of file
diff --git a/front/src/less/screenshot.less b/front/src/less/screenshot.less
deleted file mode 100644
index 5bc58e34..00000000
--- a/front/src/less/screenshot.less
+++ /dev/null
@@ -1,16 +0,0 @@
-.screenshot.board {
- text-align: center;
-}
-
-.screenshot .screenshotWrapper {
- font-size: 1.2em;
- margin-bottom: 0.5em;
-
- @media (min-width: 420px) {
- font-size: 1.6em;
- }
-
- @media (min-width: 640px) {
- font-size: 2.08333333333333em;
- }
-}
\ No newline at end of file
diff --git a/front/src/main.html b/front/src/main.html
deleted file mode 100644
index 2648d8e3..00000000
--- a/front/src/main.html
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
- Yellow Lab Tools - Page Speed audit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/front/src/views/about.html b/front/src/views/about.html
deleted file mode 100644
index 91dcfe50..00000000
--- a/front/src/views/about.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
Yellow Lab Tools is an open source project by Gaël Métais . It allows you to test a webpage (via an URL) and detects performance and front-end code quality issues.
-
-
It is based on Phantomas , a tool that instruments Chrome Headless to collect dozens of metrics. These metrics are then categorized and transformed into scores. It also provides in-depth details so that developers can fix the detected issues.
-
-
By the way, it's entirely free . In return, you can add a ★ on GitHub or buy me a coffee . It will boost my motivation to add more awesome features!
-
- <%if (sponsoring.about) { %>
-
- <% } %>
-
-
Back to index
-
\ No newline at end of file
diff --git a/front/src/views/dashboard.html b/front/src/views/dashboard.html
deleted file mode 100644
index cf582438..00000000
--- a/front/src/views/dashboard.html
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
-
-
-
-
Global score
-
-
-
{{globalScore}}/100
-
-
-
-
-
-
Score details
-
-
-
-
{{category.label}}
-
-
-
-
- <%if (sponsoring.wordpress) { %>
-
- <% } %>
-
- <%if (sponsoring.dashboard) { %>
-
- <% } %>
-
-
-
-
-
-
Run failed / Run not found
-
-
\ No newline at end of file
diff --git a/front/src/views/index.html b/front/src/views/index.html
deleted file mode 100644
index ffb5b40b..00000000
--- a/front/src/views/index.html
+++ /dev/null
@@ -1,117 +0,0 @@
-Online test to help speeding up heavy web pages
-Free and open source!
-
-
-
-
-
-
-
Page speed audit
-
Checks if performance good practices are respected
-
-
-
-
Front-end analyzis
-
Detects problems on HTML, CSS, JS, images, fonts and more
-
-
-
-
In-depth details
-
Provides precise information to fix the detected performance issues
-
-
-
-<%if (sponsoring.home) { %>
-
-<% } %>
\ No newline at end of file
diff --git a/front/src/views/queue.html b/front/src/views/queue.html
deleted file mode 100644
index 835f6e44..00000000
--- a/front/src/views/queue.html
+++ /dev/null
@@ -1,46 +0,0 @@
-Tested url: {{url}}
-
-
-
-
-
-
-
-
-
(auto-refresh activated)
-
-
-
Test is running...
-
-
(Phantomas launched)
-
(DOM Ready fired)
-
(page loaded, waiting for late requests)
-
(now simulating compression, optimization and minification)
-
(calculating score and retrieving screenshot)
-
-
-
Test complete
-
Opening results...
-
-
-
-
Error 404 (test not found)
-
The server probably just rebooted. We are very sorry about that, please try to launch the test again.
-
-
New test
-
-
-
Connection lost with server
-
Check your wifi cable, or maybe YellowLab.tools is rebooting.
-
-
\ No newline at end of file
diff --git a/front/src/views/resultSubHeader.html b/front/src/views/resultSubHeader.html
deleted file mode 100644
index b5b66a9f..00000000
--- a/front/src/views/resultSubHeader.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/front/src/views/rule.html b/front/src/views/rule.html
deleted file mode 100644
index 2c8a2a00..00000000
--- a/front/src/views/rule.html
+++ /dev/null
@@ -1,514 +0,0 @@
-
-
-
-
-
-
-
{{rule.policy.label}}
-
-
{{rule.score}}/100
-
-
-
- Value:
- {{rule.value | bytes}}
- {{rule.value}} {{rule.policy.unit}}
-
-
- Have
- {{rule.policy.isOkThreshold | bytes}}
- {{rule.policy.isOkThreshold}} {{rule.policy.unit}}
- or less
- or more
- to get the 100/100 score on this issue.
-
-
- Your new global score would increase by {{rule.globalScoreIfFixed - result.scoreProfiles.generic.globalScore}} points ({{rule.globalScoreIfFixed}}/100).
-
-
- Your new global score would increase by {{rule.globalScoreIfFixed}} points ({{rule.globalScoreIfFixed}}/100).
-
-
- Your new global score would increase, but still not enough to reach 0/100. That's embarassing...
-
-
- Your new global score would slightly increase, but not enough to gain a single point.
-
-
-
-
-
-
Warning
-
This rule reached the abnormality threshold, which means there is a real problem you should care about.
-
-
-
-
-
-
-
- {{offender.parseError}}
-
-
-
-
- {{offender.url}}
- an iframe without URL
-
-
-
- {{offender.id}} : {{offender.count}} occurrences
-
-
-
- {{offender.query}} (in ) using {{offender.fn}}: {{offender.count}} queries
-
-
-
-
Scroll event bound on window
-
Scroll event bound on document
-
window.onscroll function declared
-
no backtrace
-
-
-
-
-
{{offender.error}}
-
no backtrace
-
-
-
-
- function {{offender.functionName}} used {{offender.count}} times
-
-
-
- {{offender.writeFn}}
-
- called from
- {{offender.from.functionName}}()
-
- line {{offender.from.line}}
-
-
- called from (no backtrace available)
-
-
-
-
- inline CSS
-
- :
-
-
-
-
{{offender.color1}}
{{offender.color2}}
-
-
-
-
-
- {{offender.css}}
-
-
-
-
-
{{offender.property}} {{offender.message}}
-
- show
- hide
-
-
-
-
- {{cssRule.rule}} {{'{' + offender.property}}: {{cssRule.value + '}' }}
-
-
-
-
-
-
-
-
(offset: {{offender.offset | roundNbr}}px)
-
-
-
-
-
-
-
-
-
-
{{offender.width}}x{{offender.height}}
-
-
-
-
-
-
-
-
-
- cached for {{offender.ttlWithUnit}} {{offender.unit}}
-
-
-
- {{offender.domain}}
- ( )
-
-
-
- {{offender}}
-
-
-
- {{offender.version}}
-
-
-
- {{offender.url}}
-
-
-
-
- ({{offender.size | bytes}})
-
-
-
- {{offender.domain}} sends over {{offender.httpVersion}}
-
-
-
- {{offender.domain}} uses {{offender.tlsVersion}} and seems to be on the critical path
-
-
-
-
-
-
-
-
- in
-
- inline CSS
-
-
-
-
-
-
- {{offender.css}}
- @ {{offender.line}}:{{offender.column}}
-
-
-
- {{offender.query}} for
- @ {{offender.line}}:{{offender.column}}
-
-
-
- {{offender.rule}} (x{{offender.occurrences}} )
-
-
-
- Property {{offender.property}} duplicated in {{offender.rule}} { }
- @ {{offender.line}}:{{offender.column}}
-
-
-
- {{offender.css}} { }
- @ {{offender.line}}:{{offender.column}}
-
-
-
- {{offender.rule}} {{ '{' + offender.property}}: {{offender.value}} !important }
- @ {{offender.line}}:{{offender.column}}
-
-
-
- {{offender.browser}} fix:
-
- @ {{offender.line}}:{{offender.column}}
-
-
-
-
-
-
-
-
-
-
-
-
-
This is the colors palette, sized by total occurrences:
-
-
{{offender.color}} ({{offender.occurrences}} times)
-
-
-
-
-
-
-
Weight by MIME type
-
-
-
-
-
{{rule.offendersObj.list.byType[type].totalWeight | bytes}} of {{type}}
-
-
-
-
{{request.weight | bytes}}
-
-
-
-
-
-
-
-
- from
- getElementById()
- getElementsByTagName()
- getElementsByClassName()
- querySelector() or querySelectorAll()
- appendChild() or insertBefore()
- added nodes
- removed nodes
- attribute changes
- addEventListener()
-
-
-
-
#{{access.id}}
-
{{access.tag}} on {{access.node | lastDOMNode}}
-
.{{access.class}} on {{access.node | lastDOMNode}}
-
{{access.selector}} on {{access.node | lastDOMNode}}
-
{{access.append | lastDOMNode}} added to {{access.node | lastDOMNode}}
-
{{access.node}} added to {{access.target}}
-
{{access.node}} removed from {{access.target}}
-
{{access.attribute}} changed on {{access.node}}
-
{{access.eventType}} on {{access.path | lastDOMNode}}
-
-
-
-
-
-
-
{{rule.value | bytes}} could be saved on
-
-
-
-
-
Current weight: {{image.originalWeigth | bytes}}
-
Current weight: {{image.originalWeigth | bytes}} ({{image.originalCompressedWeight | bytes}} compressed)
-
-
With a lossless optimization: {{image.afterOptimizationAndCompression | bytes}} compressed (-{{image.gain | bytes}} compressed)
-
With a lossless optimization: {{image.lossless | bytes}} (-{{image.gain | bytes}} )
-
-
With a lossy optimization: {{image.afterOptimizationAndCompression | bytes}} compressed (-{{image.gain | bytes}} compressed )
-
With a lossy optimization: {{image.lossy | bytes}} (-{{image.gain | bytes}} )
-
-
-
-
-
-
-
{{rule.value | bytes}} could be saved on
-
-
-
-
-
-
-
{{file.originalSize | bytes}}
-
-
already gzipped
-
{{file.gzipped | bytes}}
-
-
{{file.brotlified | bytes}}
-
-
-{{file.gain | bytes}}
-
-
-
-
-
-
{{rule.value | bytes}} could be saved on
-
-
-
-
-
-
-
{{file.originalWeigth | bytes}} (compressed)
-
{{file.originalWeigth | bytes}} ({{file.originalCompressedWeight | bytes}} compressed)
-
{{file.afterOptimizationAndCompression | bytes}} (compressed)
-
{{file.optimized | bytes}} ({{file.afterOptimizationAndCompression | bytes}} compressed)
-
-{{file.gain | bytes}}
-
-
-
-
-
-
Requests by MIME type
-
-
-
Reduce the number of stylesheets by concatenating them.
-
Reduce the number of scripts by concatenating them.
-
Reduce the number of images by lazyloading them or by spriting them.
-
Fonts are generally loaded on the critical path of the head. Load as few as possible.
-
They can be Flash, XML, music or any undetected format.
-
-
-
-
-
-
-
A file of {{offender.weight | bytes}} is loaded {{offender.urls.length}} times:
-
-
-
-
-
-
-
Breakpoints list
-
-
-
Breakpoint {{offender.breakpoint}} involves
-
-
-
-
- No breakpoint
-
-
-
-
-
-
-
-
-
Weight
-
{{font.weight | bytes}}
-
{{font.weight | bytes}}
-
-
-
Number of glyphs
-
{{font.numGlyphs}}
-
{{font.numGlyphs}} (better < 500)
-
-
-
Average glyph complexity
-
{{font.averageGlyphComplexity}}
-
{{font.averageGlyphComplexity}} (better < 35)
-
-
-
-
-
-
-
-
({{font.weight | bytes}})
-
-
-
- This font seems to be an icon font
- but only {{font.numGlyphsInCommonWithPageContent}} of its {{font.glyphs}} glyphs possibly used!
- and {{font.numGlyphsInCommonWithPageContent}} of its {{font.glyphs}} glyphs possibly used.
-
-
-
-
-
-
{{range.name}}
-
{{range.numGlyphsInCommonWithPageContent}} of its {{range.charset.length}} glyphs possibly used
-
{{range.numGlyphsInCommonWithPageContent}} of its {{range.charset.length}} glyphs are used
-
-
-
-
Ligatures or hidden chars
-
{{font.ligaturesOrHiddenChars}} glyphs
-
-
-
-
-
-
-
-
{{rule.value | bytes}} could be saved on
-
-
-
-
-
-
-
{{file.originalSize | bytes}}
-
{{file.woff2Size | bytes}}
-
-{{file.gain | bytes}}
-
-
-
-
-
-
404
- Rule "{{policyName}}"" not found
-
-
-
-
\ No newline at end of file
diff --git a/front/src/views/screenshot.html b/front/src/views/screenshot.html
deleted file mode 100644
index 7c9ba57c..00000000
--- a/front/src/views/screenshot.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
Screenshot
-
-
-
-
-
Screenshot not available
-
-
-
-
-
\ No newline at end of file
diff --git a/lib/index.js b/lib/index.js
index 9064046e..cca59fe0 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -1,11 +1,13 @@
-var Q = require('q');
+var debug = require('debug')('ylt:index');
+var Q = require('q');
-var Runner = require('./runner');
+var Runner = require('./runner');
+var ScreenshotHandler = require('./screenshotHandler');
+var packageJson = require('../package.json');
-var yellowLabTools = function(url, options) {
- 'use strict';
+var yellowLabTools = function(url, options) {
var deferred = Q.defer();
if (!url) {
@@ -25,18 +27,54 @@ var yellowLabTools = function(url, options) {
var runner = new Runner(params)
- .progress(deferred.notify)
+ .progress(deferred.notify)
+
+ .then(function(data) {
+
+ // If a screenshot saveFunction was provided in the options
+ if (options && typeof options.saveScreenshotFn === 'function') {
+ const screenshotTmpPath = data.params.options.screenshot;
+ debug('Now optimizing screenshot...');
+
+ // TODO: temporarily set all screenshot sizes to 600px, until we find a solution
+ ScreenshotHandler.findAndOptimizeScreenshot(screenshotTmpPath, 600)
+
+ .then(function(screenshotBuffer) {
+ debug('Screenshot optimized, now saving...');
+
+ return options.saveScreenshotFn('screenshot.jpg', screenshotBuffer);
+ })
+
+ .then(function(response) {
+ debug('Screenshot saved');
+ debug(response);
+
+ // Remove uneeded temp screenshot path
+ delete data.params.options.screenshot;
+ })
+
+ .catch(function(err) {
+ // It's ok if we can't save the screenshot
+ debug('Screenshot could not be saved');
+ debug(err);
+ })
+
+ .finally(function() {
+ deferred.resolve(data);
+ });
- .then(function(data) {
+ } else {
deferred.resolve(data);
- })
+ }
+ })
- .fail(function(err) {
- deferred.reject(err);
- });
+ .catch(function(err) {
+ deferred.reject(err);
+ });
}
return deferred.promise;
};
-module.exports = yellowLabTools;
\ No newline at end of file
+module.exports = yellowLabTools;
+module.exports.version = packageJson.version;
\ No newline at end of file
diff --git a/lib/metadata/policies.js b/lib/metadata/policies.js
index 8a10eca3..ead2c2e7 100644
--- a/lib/metadata/policies.js
+++ b/lib/metadata/policies.js
@@ -54,7 +54,7 @@ var policies = {
"isBadThreshold": 2000,
"isAbnormalThreshold": 4000,
"hasOffenders": false,
- "unit": 'ms'
+ "unit": "ms"
},
"DOMaccesses": {
"tool": "domAccessAgregator",
@@ -538,7 +538,7 @@ var policies = {
"message": "It can be useful, but only as a last resort. It is a bad practice because it overrides the normal cascading logic. The more you use !important, the more you need it again to over-override. This conducts to a poor maintainability.
",
"isOkThreshold": 0,
"isBadThreshold": 200,
- "isAbnormalThreshold": 500,
+ "isAbnormalThreshold": 1000,
"hasOffenders": true,
"offendersTransformFn": function(offenders) {
var parsedOffenders = offenders.map(function(offender) {
@@ -734,22 +734,96 @@ var policies = {
"isBadThreshold": 3145728,
"isAbnormalThreshold": 5242880,
"hasOffenders": true,
- "unit": 'bytes'
+ "unit": "bytes"
},
- "imageOptimization": {
- "tool": "redownload",
+ "imagesNotOptimized": {
+ "tool": "phantomas",
"label": "Image optimization",
- "message": "This metric measures the number of bytes that could be saved by optimizing images.
Image optimization is generally one of the easiest way to reduce a page weight, and as a result, the page load time. Don't use Photoshop or other image editing tools, they're not very good for optimization. Use specialized tools such as Kraken.io or the excellent ImageOptim on Mac. For SVG images, you can use SVGOMG .
The tools in use in YellowLabTools are not set to their maximum optimization power (JPEG quality 85), so you might be able to compress even more!
",
- "isOkThreshold": 20480,
+ "message": "This metric measures the number of bytes that could be saved by optimizing images.
Image optimization is generally one of the easiest way to reduce a page weight, and as a result, the page load time. Don't use Photoshop or other image editing tools, they're not very good for optimization. Use specialized tools such as Kraken.io or the excellent ImageOptim on Mac. For SVG images, you can use SVGOMG .
The tools in use in YellowLabTools are not set to their maximum optimization power, so you might be able to compress even more!
",
+ "isOkThreshold": 2048,
"isBadThreshold": 204800,
"isAbnormalThreshold": 307200,
"hasOffenders": true,
- "unit": 'bytes'
+ "unit": "bytes",
+ "valueTransformFn": function(offenders) {
+ let totalGain = 0;
+ offenders.forEach((offender) => {
+ offender.gain = offender.fileSize - offender.newFileSize;
+ totalGain += offender.gain;
+ });
+ return totalGain;
+ },
+ "offendersTransformFn": function(offenders) {
+ return offenders;
+ }
+ },
+ "imagesOldFormat": {
+ "tool": "phantomas",
+ "label": "Old image formats",
+ "message": "This metric goes further than \"Image optimization\". Measures the number of bytes that could be saved by converting images to newer and more efficient formats. The best image format is generally AVIF and the second best is WebP.
Be careful, you need to provide fallback images for old browsers and search engine bots.
",
+ "isOkThreshold": 2048,
+ "isBadThreshold": 512000,
+ "isAbnormalThreshold": 819200,
+ "hasOffenders": true,
+ "unit": "bytes",
+ "valueTransformFn": function(offenders) {
+ let totalGain = 0;
+ offenders.forEach((offender) => {
+ offender.gain = offender.fileSize - offender.newFileSize;
+ totalGain += offender.gain;
+ });
+ return totalGain;
+ },
+ "offendersTransformFn": function(offenders) {
+ return offenders;
+ }
},
- "imagesTooLarge": {
- "tool": "redownload",
+ "imagesScaledDown": {
+ "tool": "phantomas",
"label": "Oversized images",
- "message": "This is the number of images with a width >1200px on mobile, >1800px on tablet, >2400 on desktop, >3200px on HD desktop. Try reducing their size.
Please ignore if the file is used as a sprite.
",
+ "message": "This rule compares the number of pixels in a loaded images to the number of physical pixels it is displayed on. Then it estimates the number of KB that could be saved by serving it with the correct dimensions.
Of course, it is hard to serve perfect images for all screens. For this reason, this rule is quite permissive.
",
+ "isOkThreshold": 2048,
+ "isBadThreshold": 307200,
+ "isAbnormalThreshold": 512000,
+ "hasOffenders": true,
+ "unit": "bytes",
+ "valueTransformFn": function(offenders) {
+ let totalGain = 0;
+ offenders.forEach((offender) => {
+ offender.gain = offender.fileSize - offender.newFileSize;
+ totalGain += offender.gain;
+ });
+ return totalGain;
+ },
+ "offendersTransformFn": function(offenders) {
+ return offenders;
+ }
+ },
+ "imagesExcessiveDensity": {
+ "tool": "phantomas",
+ "label": "Excessive image density",
+ "message": "This metric measures the number of bytes that could be saved by going further than just resizing images.
Devices with very high pixel density screen (such as 3x or 4x) are programmed to load high density images. This is the normal behavior, however the human eye barely sees the difference over 2x. This metric alerts you if an image density is > 2.2x.
There is currently no browser functionnality to prevent the issue (for this reason its impact on global score is low). But you can build your own clever solution!
",
+ "isOkThreshold": 102400,
+ "isBadThreshold": 307200,
+ "isAbnormalThreshold": 512000,
+ "hasOffenders": true,
+ "unit": "bytes",
+ "valueTransformFn": function(offenders) {
+ let totalGain = 0;
+ offenders.forEach((offender) => {
+ offender.gain = offender.fileSize - offender.newFileSize;
+ totalGain += offender.gain;
+ });
+ return totalGain;
+ },
+ "offendersTransformFn": function(offenders) {
+ return offenders;
+ }
+ },
+ "imagesWithIncorrectSizesParam": {
+ "tool": "phantomas",
+ "label": "Incorrect sizes parameter",
+ "message": "When using an adaptative image with a srcset attribute and w values, it is important to correctly set the sizes attribute. Otherwise, the browser might pick the wrong image in the srcset .
The Responsive Image Linter extension for Chrome can help you further.
",
"isOkThreshold": 0,
"isBadThreshold": 5,
"isAbnormalThreshold": 10,
@@ -763,7 +837,7 @@ var policies = {
"isBadThreshold": 204800,
"isAbnormalThreshold": 409600,
"hasOffenders": true,
- "unit": 'bytes'
+ "unit": "bytes"
},
"fileMinification": {
"tool": "redownload",
@@ -773,12 +847,12 @@ var policies = {
"isBadThreshold": 61440,
"isAbnormalThreshold": 122880,
"hasOffenders": true,
- "unit": 'bytes'
+ "unit": "bytes"
},
"totalRequests": {
"tool": "redownload",
"label": "Requests number",
- "message": "Each request slows down the page loading, especially on the protocol HTTP/1, but also a little on HTTP/2.
There are several technics to reduce their number:
Concatenate JS files Concatenate CSS files Embed or inline small JS or CSS files in the HTML Create sprites Base64 encode small images in HTML or stylesheets Use lazyloading for images ",
+ "message": "Each request slows down the page loading, especially on the protocol HTTP/1, but also a little on HTTP/2 or 3.
There are several technics to reduce their number:
Concatenate JS files Concatenate CSS files Embed or inline small JS or CSS files in the HTML Create sprites Base64 encode small images in HTML or stylesheets Use lazyloading for images ",
"isOkThreshold": 80,
"isBadThreshold": 240,
"isAbnormalThreshold": 320,
@@ -869,7 +943,7 @@ var policies = {
"isOkThreshold": 0,
"isBadThreshold": 102400,
"isAbnormalThreshold": 204800,
- "unit": 'bytes',
+ "unit": "bytes",
"hasOffenders": true,
"offendersTransformFn": function(offenders) {
return offenders;
@@ -895,7 +969,7 @@ var policies = {
"isBadThreshold": 51200,
"isAbnormalThreshold": 122880,
"hasOffenders": true,
- "unit": 'bytes'
+ "unit": "bytes"
},
"oldHttpProtocol": {
"label": "HTTP protocols",
diff --git a/lib/metadata/scoreProfileGeneric.json b/lib/metadata/scoreProfileGeneric.json
index 8bff9e42..5019a707 100644
--- a/lib/metadata/scoreProfileGeneric.json
+++ b/lib/metadata/scoreProfileGeneric.json
@@ -1,23 +1,38 @@
{
+ "globalScore": {
+ "pageWeight": 2,
+ "images": 2,
+ "domComplexity": 1,
+ "javascriptComplexity": 2,
+ "badJavascript": 2,
+ "jQuery": 0.5,
+ "cssComplexity": 0.5,
+ "badCSS": 1,
+ "fonts": 1,
+ "serverConfig": 1
+ },
"categories": {
"pageWeight": {
- "label": "Page weight",
+ "label": "Network",
"policies": {
"totalWeight": 5,
- "imageOptimization": 2,
- "imagesTooLarge": 1,
- "compression": 2,
- "fileMinification": 2
- }
- },
- "requests": {
- "label": "Requests",
- "policies": {
"totalRequests": 2,
"domains": 3,
- "notFound": 2,
+ "compression": 2,
+ "fileMinification": 2,
"identicalFiles": 2,
"emptyRequests": 3,
+ "notFound": 2
+ }
+ },
+ "images": {
+ "label": "Images",
+ "policies": {
+ "imagesNotOptimized": 2,
+ "imagesOldFormat": 1,
+ "imagesScaledDown": 2,
+ "imagesExcessiveDensity": 0.25,
+ "imagesWithIncorrectSizesParam": 1,
"lazyLoadableImagesBelowTheFold": 2,
"hiddenImages": 1
}
@@ -101,17 +116,5 @@
"cachingTooShort": 1
}
}
- },
- "globalScore": {
- "pageWeight": 3,
- "requests": 2,
- "domComplexity": 2,
- "javascriptComplexity": 2,
- "badJavascript": 2,
- "jQuery": 0.5,
- "cssComplexity": 0.5,
- "badCSS": 1,
- "fonts": 1,
- "serverConfig": 1
}
}
\ No newline at end of file
diff --git a/lib/rulesChecker.js b/lib/rulesChecker.js
index eaffd6e8..f5f78240 100644
--- a/lib/rulesChecker.js
+++ b/lib/rulesChecker.js
@@ -57,9 +57,16 @@ var RulesChecker = function() {
data.toolsResults[policy.tool].offenders[metricName]) {
offenders = data.toolsResults[policy.tool].offenders[metricName];
}
+
+ // It is possible to declare a transformation function for the main metric value.
+ // The function should
+ if (policy.valueTransformFn) {
+ rule.value = policy.valueTransformFn(offenders);
+ }
+
var offendersObj = {};
-
+
// It is possible to declare a transformation function for the offenders.
// The function should take an array of strings as single parameter and return a string.
if (policy.offendersTransformFn) {
diff --git a/lib/runner.js b/lib/runner.js
index bbf31389..f1915b6a 100644
--- a/lib/runner.js
+++ b/lib/runner.js
@@ -79,7 +79,7 @@ var Runner = function(params) {
});
// Fix: don't display Unicode ranges if the module is not present in Phantomas
- if (!data.toolsResults.phantomas.metrics.charactersCount) {
+ if (!data.toolsResults.phantomas.metrics.differentCharacters) {
delete data.toolsResults.redownload.metrics.unusedUnicodeRanges;
delete data.toolsResults.redownload.offenders.unusedUnicodeRanges;
}
diff --git a/lib/screenshotHandler.js b/lib/screenshotHandler.js
index 36322365..c175fd11 100644
--- a/lib/screenshotHandler.js
+++ b/lib/screenshotHandler.js
@@ -1,96 +1,19 @@
var debug = require('debug')('ylt:screenshotHandler');
-var Jimp = require('jimp');
+var sharp = require('sharp');
var Q = require('q');
var fs = require('fs');
var path = require('path');
+// Disable sharp cache to reduce the "disk is full" error on Amazon Lambda
+sharp.cache(false);
var screenshotHandler = function() {
- var tmpFolderPath = 'tmp';
- var tmpFolderFullPath = path.join(__dirname, '..', tmpFolderPath);
- var tmpFileName = 'temp-screenshot.png';
- var tmpFileFullPath = path.join(tmpFolderFullPath, tmpFileName);
-
-
- this.findAndOptimizeScreenshot = function(width) {
- var that = this;
-
- debug('Starting screenshot transformation');
-
- return this.openImage(tmpFileFullPath)
-
- .then(function(image) {
- that.deleteTmpFile(tmpFileFullPath);
- return that.resizeImage(image, width);
- })
-
- .then(this.toBuffer);
- };
-
-
- this.openImage = function(imagePath) {
- var deferred = Q.defer();
-
- Jimp.read(imagePath, function(err, image){
- if (err) {
- debug('Could not open imagePath %s', imagePath);
- debug(err);
-
- deferred.reject(err);
- } else {
- debug('Image correctly open');
- deferred.resolve(image);
- }
- });
-
- return deferred.promise;
- };
-
-
- this.resizeImage = function(image, newWidth) {
- var deferred = Q.defer();
-
- var currentWidth = image.bitmap.width;
-
- if (currentWidth > 0) {
- var ratio = newWidth / currentWidth;
-
- image.scale(ratio, function(err, image){
- if (err) {
- debug('Could not resize image');
- debug(err);
-
- deferred.reject(err);
- } else {
- debug('Image correctly resized');
- deferred.resolve(image);
- }
- });
- } else {
- deferred.reject('Could not resize an empty image');
- }
-
- return deferred.promise;
- };
-
-
- this.toBuffer = function(image) {
- var deferred = Q.defer();
-
- image.quality(85).getBuffer(Jimp.MIME_JPEG, function(err, buffer){
- if (err) {
- debug('Could not save image to buffer');
- debug(err);
-
- deferred.reject(err);
- } else {
- debug('Image correctly transformed to buffer');
- deferred.resolve(buffer);
- }
- });
-
- return deferred.promise;
+ this.findAndOptimizeScreenshot = async function(tmpScreenshotPath, width) {
+ return sharp(tmpScreenshotPath)
+ .resize({width: 600})
+ .jpeg({quality: 85})
+ .toBuffer();
};
@@ -109,33 +32,6 @@ var screenshotHandler = function() {
return deferred.promise;
};
-
- // Create a /tmp folder on the project's root directory
- this.createTmpScreenshotFolder = function() {
- var deferred = Q.defer();
-
- // Create the folder if it doesn't exist
- fs.exists(tmpFolderFullPath, function(exists) {
- if (exists) {
- deferred.resolve();
- } else {
- debug('Creating the tmp image folder', tmpFolderFullPath);
- fs.mkdir(tmpFolderFullPath, function(err) {
- if (err) {
- deferred.reject(err);
- } else {
- deferred.resolve();
- }
- });
- }
- });
-
- return deferred.promise;
- };
-
- this.getTmpFileRelativePath = function() {
- return tmpFolderPath + '/' + tmpFileName;
- };
};
module.exports = new screenshotHandler();
diff --git a/lib/server/controllers/apiController.js b/lib/server/controllers/apiController.js
deleted file mode 100644
index a464cc64..00000000
--- a/lib/server/controllers/apiController.js
+++ /dev/null
@@ -1,349 +0,0 @@
-var debug = require('debug')('ylt:server');
-var Q = require('q');
-
-var ylt = require('../../index');
-var ScreenshotHandler = require('../../screenshotHandler');
-var RunsQueue = require('../datastores/runsQueue');
-var RunsDatastore = require('../datastores/runsDatastore');
-var ResultsDatastore = require('../datastores/resultsDatastore');
-
-var serverSettings = (process.env.IS_TEST) ? require('../../../test/fixtures/settings.json') : require('../../../server_config/settings.json');
-
-var ApiController = function(app) {
- 'use strict';
-
- var queue = new RunsQueue();
- var runsDatastore = new RunsDatastore();
- var resultsDatastore = new ResultsDatastore();
-
- // Create a new run
- app.post('/api/runs', function(req, res) {
-
- // Add http to the test URL
- if (req.body.url && req.body.url.toLowerCase().indexOf('http://') !== 0 && req.body.url.toLowerCase().indexOf('https://') !== 0) {
- req.body.url = 'http://' + req.body.url;
- }
-
- // Block requests to unwanted websites (=spam)
- if (req.body.url && isBlocked(req.body.url)) {
- console.error('Test blocked for URL: %s', req.body.url);
- res.status(403).send('Forbidden');
- return;
- }
-
- // Grab the test parameters and generate a random run ID
- var run = {
- runId: (Date.now()*1000 + Math.round(Math.random()*1000)).toString(36),
- params: {
- url: req.body.url,
- waitForResponse: req.body.waitForResponse === true || req.body.waitForResponse === 'true' || req.body.waitForResponse === 1,
- partialResult: req.body.partialResult || null,
- screenshot: req.body.screenshot || false,
- device: req.body.device || 'desktop',
- proxy: req.body.proxy || null,
- waitForSelector: req.body.waitForSelector || null,
- cookie: req.body.cookie || null,
- authUser: req.body.authUser || null,
- authPass: req.body.authPass || null,
- blockDomain: req.body.blockDomain || null,
- allowDomain: req.body.allowDomain || null,
- noExternals: req.body.noExternals || false
- }
- };
-
- // Create the tmp folder if it doesn't exist
- ScreenshotHandler.createTmpScreenshotFolder(run.runId);
-
- // Add test to the testQueue
- debug('Adding test %s to the queue', run.runId);
- var queuePromise = queue.push(run.runId);
-
- // Save the run to the datastore
- runsDatastore.add(run, queuePromise.startingPosition);
-
-
- // Listening for position updates
- queuePromise.progress(function(position) {
- runsDatastore.updatePosition(run.runId, position);
- });
-
- // Let's start the run
- queuePromise.then(function() {
-
- runsDatastore.updatePosition(run.runId, 0);
-
- console.log('Launching test ' + run.runId + ' on ' + run.params.url);
-
- var runOptions = {
- screenshot: run.params.screenshot ? ScreenshotHandler.getTmpFileRelativePath() : false,
- device: run.params.device,
- proxy: run.params.proxy,
- waitForSelector: run.params.waitForSelector,
- cookie: run.params.cookie,
- authUser: run.params.authUser,
- authPass: run.params.authPass,
- blockDomain: run.params.blockDomain,
- allowDomain: run.params.allowDomain,
- noExternals: run.params.noExternals
- };
-
- return ylt(run.params.url, runOptions)
-
- // Update the progress bar on each progress
- .progress(function(progress) {
- runsDatastore.updateRunProgress(run.runId, progress);
- });
-
- })
-
- // Phantomas completed
- .then(function(data) {
-
- debug('Success');
- data.runId = run.runId;
-
-
- // Some conditional steps exist if there is a screenshot
- var screenshotPromise = Q.resolve();
-
- if (run.params.screenshot) {
-
- var screenshotSize = serverSettings.screenshotWidth ? serverSettings.screenshotWidth[run.params.device] : 400;
-
- // Replace the empty promise created earlier with Q.resolve()
- screenshotPromise = ScreenshotHandler.findAndOptimizeScreenshot(screenshotSize)
-
- // Read screenshot
- .then(function(screenshotBuffer) {
- if (screenshotBuffer) {
- debug('Image optimized');
- data.screenshotBuffer = screenshotBuffer;
- data.screenshotUrl = '/api/results/' + data.runId + '/screenshot.jpg';
- }
- })
-
- // Don't worry if there's an error
- .fail(function(err) {
- debug('An error occured while creating the screenshot\'s thumbnail. Ignoring and continuing...');
- debug(err);
- });
-
- }
-
- // Let's continue
- return screenshotPromise
-
- // Save results
- .then(function() {
- // Remove uneeded temp screenshot path
- delete data.params.options.screenshot;
-
- // Here we can remove tools results if not needed
- delete data.toolsResults.phantomas.offenders.requests;
-
- return resultsDatastore.saveResult(data);
- })
-
- // Mark as the run as complete and send the response if the request is still waiting
- .then(function() {
-
- debug('Result saved in datastore');
-
- runsDatastore.markAsComplete(run.runId);
-
- if (run.params.waitForResponse) {
-
- // If the user only wants a portion of the result (partialResult option)
- switch(run.params.partialResult) {
- case 'generalScores':
- res.redirect(302, '/api/results/' + run.runId + '/generalScores');
- break;
- case 'rules':
- res.redirect(302, '/api/results/' + run.runId + '/rules');
- break;
- case 'javascriptExecutionTree':
- res.redirect(302, '/api/results/' + run.runId + '/javascriptExecutionTree');
- break;
- case 'phantomas':
- res.redirect(302, '/api/results/' + run.runId + '/toolsResults/phantomas');
- break;
- default:
- res.redirect(302, '/api/results/' + run.runId);
- }
- }
-
- })
- .fail(function(err) {
- console.error('Test failed for URL: %s', run.params.url);
- console.error(err.toString());
-
- runsDatastore.markAsFailed(run.runId, err.toString());
-
- res.status(500).send('An error occured');
- });
-
- })
-
- .fail(function(err) {
-
- console.error('Test failed for URL: %s', run.params.url);
- console.error(err.toString());
-
- runsDatastore.markAsFailed(run.runId, err.toString());
-
- res.status(400).send('Bad request');
-
- })
-
- .finally(function() {
- queue.remove(run.runId);
- });
-
-
- // The user doesn't want to wait for the response, sending the run ID only
- if (!run.params.waitForResponse) {
- debug('Sending response without waiting.');
- res.setHeader('Content-Type', 'application/json');
- res.send(JSON.stringify({runId: run.runId}));
- }
-
- });
-
-
- // Retrive one run by id
- app.get('/api/runs/:id', function(req, res) {
- var runId = req.params.id;
-
- var run = runsDatastore.get(runId);
-
- if (run) {
- res.setHeader('Content-Type', 'application/json');
- res.send(JSON.stringify(run, null, 2));
- } else {
- res.status(404).send('Not found');
- }
- });
-
- // Counts all pending runs
- app.get('/api/runs', function(req, res) {
- res.setHeader('Content-Type', 'application/json');
- res.send(JSON.stringify({pendingRuns: queue.length()}, null, 2));
- });
-
- // Delete one run by id
- /*app.delete('/api/runs/:id', function(req, res) {
- deleteRun()
- });*/
-
- // Delete all
- /*app.delete('/api/runs', function(req, res) {
- purgeRuns()
- });
-
- // List all
- app.get('/api/runs', function(req, res) {
- listRuns()
- });
-
- // Exists
- app.head('/api/runs/:id', function(req, res) {
- existsX();
- // Returns 200 if the result exists or 404 if not
- });
- */
-
- // Retrive one result by id
- app.get('/api/results/:id', function(req, res) {
- getPartialResults(req.params.id, res, function(data) {
-
- // Some fields can be excluded from the response, this way:
- // /api/results/:id?exclude=field1,field2
- if (req.query.exclude && typeof req.query.exclude === 'string') {
- var excludedFields = req.query.exclude.split(',');
- excludedFields.forEach(function(fieldName) {
- if (data[fieldName]) {
- delete data[fieldName];
- }
- });
- }
-
- return data;
- });
- });
-
- // Retrieve one result and return only the generalScores part of the response
- app.get('/api/results/:id/generalScores', function(req, res) {
- getPartialResults(req.params.id, res, function(data) {
- return data.scoreProfiles.generic;
- });
- });
-
- app.get('/api/results/:id/generalScores/:scoreProfile', function(req, res) {
- getPartialResults(req.params.id, res, function(data) {
- return data.scoreProfiles[req.params.scoreProfile];
- });
- });
-
- app.get('/api/results/:id/rules', function(req, res) {
- getPartialResults(req.params.id, res, function(data) {
- return data.rules;
- });
- });
-
- app.get('/api/results/:id/javascriptExecutionTree', function(req, res) {
- getPartialResults(req.params.id, res, function(data) {
- return data.javascriptExecutionTree;
- });
- });
-
- app.get('/api/results/:id/toolsResults/phantomas', function(req, res) {
- getPartialResults(req.params.id, res, function(data) {
- return data.toolsResults.phantomas;
- });
- });
-
- function getPartialResults(runId, res, partialGetterFn) {
- resultsDatastore.getResult(runId)
- .then(function(data) {
- var results = partialGetterFn(data);
-
- if (typeof results === 'undefined') {
- res.status(404).send('Not found');
- return;
- }
-
- res.setHeader('Content-Type', 'application/json');
- res.send(JSON.stringify(results, null, 2));
-
- }).fail(function() {
- res.status(404).send('Not found');
- });
- }
-
- // Retrive one result by id
- app.get('/api/results/:id/screenshot.jpg', function(req, res) {
- var runId = req.params.id;
-
- resultsDatastore.getScreenshot(runId)
- .then(function(screenshotBuffer) {
-
- res.setHeader('Content-Type', 'image/jpeg');
- res.send(screenshotBuffer);
-
- }).fail(function() {
- res.status(404).send('Not found');
- });
- });
-
- function isBlocked(url) {
- if (!serverSettings.blockedUrls) {
- return false;
- }
-
- return serverSettings.blockedUrls.some(function(blockedUrl) {
- return (url.indexOf(blockedUrl) === 0);
- });
- }
-};
-
-module.exports = ApiController;
diff --git a/lib/server/controllers/frontController.js b/lib/server/controllers/frontController.js
deleted file mode 100644
index 89dc9069..00000000
--- a/lib/server/controllers/frontController.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var path = require('path');
-var express = require('express');
-
-var serverSettings = (process.env.IS_TEST) ? require('../../../test/fixtures/settings.json') : require('../../../server_config/settings.json');
-var packageJson = require('../../../package.json');
-
-var FrontController = function(app) {
- 'use strict';
-
- var cacheDuration = 365 * 24 * 60 * 60 * 1000; // One year
- var assetsPath = (app.get('env') === 'development') ? '../../../front/src' : '../../../front/build';
-
- // Routes templating
- var routes = ['/', '/about', '/result/:runId', '/result/:runId/screenshot', '/result/:runId/rule/:policy', '/queue/:runId'];
-
- routes.forEach(function(route) {
- app.get(route, function(req, res) {
- res.setHeader('Cache-Control', 'public, max-age=20');
- res.render(path.join(__dirname, assetsPath, 'main.html'), {
- version: 'v' + packageJson.version,
- baseUrl: app.locals.baseUrl || '/',
- googleAnalyticsId: serverSettings.googleAnalyticsId,
- sponsoring: serverSettings.sponsoring || {}
- });
- });
- });
-
- // Views templating
- app.get('/views/:viewName', function(req, res) {
- res.setHeader('Cache-Control', 'public, max-age=' + cacheDuration);
- res.render(path.join(__dirname, assetsPath, 'views/' + req.params.viewName), {
- baseUrl: app.locals.baseUrl || '/',
- sponsoring: serverSettings.sponsoring || {}
- });
- });
-
- // Static assets
- app.use('/css', express.static(path.join(__dirname, assetsPath, 'css'), { maxAge: cacheDuration }));
- app.use('/fonts', express.static(path.join(__dirname, assetsPath, 'fonts'), { maxAge: cacheDuration }));
- app.use('/img', express.static(path.join(__dirname, assetsPath, 'img'), { maxAge: cacheDuration }));
- app.use('/js', express.static(path.join(__dirname, assetsPath, 'js'), { maxAge: cacheDuration }));
- app.use('/node_modules', express.static(path.join(__dirname, '../../../node_modules'), { maxAge: cacheDuration }));
-};
-
-module.exports = FrontController;
\ No newline at end of file
diff --git a/lib/server/datastores/resultsDatastore.js b/lib/server/datastores/resultsDatastore.js
deleted file mode 100644
index 99df91ed..00000000
--- a/lib/server/datastores/resultsDatastore.js
+++ /dev/null
@@ -1,136 +0,0 @@
-var fs = require('fs');
-var rimraf = require('rimraf');
-var path = require('path');
-var Q = require('q');
-var debug = require('debug')('ylt:resultsDatastore');
-
-
-function ResultsDatastore() {
- 'use strict';
-
- var resultFileName = 'results.json';
- var resultScreenshotName = 'screenshot.jpg';
- var resultsFolderName = 'results';
- var resultsDir = path.join(__dirname, '..', '..', '..', resultsFolderName);
-
-
- this.saveResult = function(testResults) {
-
- var screenshotFilePath = path.join(resultsDir, testResults.runId, resultScreenshotName);
- var screenshotAPIPath = '/';
-
- return createResultFolder(testResults.runId)
-
- .then(function() {
- return saveScreenshotIfExists(testResults, screenshotFilePath);
- })
-
- .then(function() {
-
- debug('Saving results to disk...');
-
- var resultFilePath = path.join(resultsDir, testResults.runId, resultFileName);
- debug('Destination file is %s', resultFilePath);
-
- return Q.nfcall(fs.writeFile, resultFilePath, JSON.stringify(testResults, null, 2));
- });
- };
-
-
- this.getResult = function(runId) {
-
- var resultFilePath = path.join(resultsDir, runId, resultFileName);
-
- debug('Reading results (runID = %s) from disk...', runId);
-
- return Q.nfcall(fs.readFile, resultFilePath, {encoding: 'utf8'}).then(function(data) {
- return JSON.parse(data);
- });
- };
-
-
- this.deleteResult = function(runId) {
- var folder = path.join(resultsDir, runId);
-
- debug('Deleting results (runID = %s) from disk...', runId);
-
- return Q.nfcall(rimraf, folder);
- };
-
-
- // The folder /results/folderName/
- function createResultFolder(runId) {
- var folder = path.join(resultsDir, runId);
-
- debug('Creating the folder %s', runId);
-
- return createGlobalFolder().then(function() {
- return Q.nfcall(fs.mkdir, folder);
- });
- }
-
- // The folder /results/
- function createGlobalFolder() {
- var deferred = Q.defer();
-
- // Create the results folder if it doesn't exist
- fs.exists(resultsDir, function(exists) {
- if (exists) {
- deferred.resolve();
- } else {
- debug('Creating the global results folder', resultsDir);
- fs.mkdir(resultsDir, function(err) {
- if (err) {
- deferred.reject(err);
- } else {
- deferred.resolve();
- }
- });
- }
- });
-
- return deferred.promise;
- }
-
- this.getResultFolder = function(runId) {
- return path.join(resultsDir, runId);
- };
-
- // If there is a screenshot, save it as screenshot.jpg in the same folder as the results
- function saveScreenshotIfExists(testResults, path) {
- var deferred = Q.defer();
-
- if (testResults.screenshotBuffer) {
-
- fs.writeFile(path, testResults.screenshotBuffer, function(err) {
- if (err) {
- debug('Could not save final screenshot');
- debug(err);
- // But it is OK, we don't need to fail the run
- deferred.resolve();
- } else {
- debug('Final screenshot saved: ' + path);
- deferred.resolve();
- }
- });
- delete testResults.screenshotBuffer;
-
- } else {
- debug('Screenshot not found');
- deferred.resolve();
- }
-
- return deferred.promise;
- }
-
- this.getScreenshot = function(runId) {
-
- var screenshotFilePath = path.join(resultsDir, runId, resultScreenshotName);
-
- debug('Getting screenshot (runID = %s) from disk...', runId);
-
- return Q.nfcall(fs.readFile, screenshotFilePath);
- };
-}
-
-module.exports = ResultsDatastore;
\ No newline at end of file
diff --git a/lib/server/datastores/runsDatastore.js b/lib/server/datastores/runsDatastore.js
deleted file mode 100644
index fd82fcc7..00000000
--- a/lib/server/datastores/runsDatastore.js
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-function RunsDatastore() {
- 'use strict';
-
- // NOT PERSISTING RUNS
- // For the moment, maybe one day
- var runs = {};
-
- var STATUS_AWAITING = 'awaiting';
- var STATUS_RUNNING = 'running';
- var STATUS_COMPLETE = 'complete';
- var STATUS_FAILED = 'failed';
-
-
- this.add = function(run, position) {
- runs[run.runId] = run;
- this.updatePosition(run.runId, position);
- };
-
-
- this.get = function(runId) {
- return runs[runId];
- };
-
-
- this.updatePosition = function(runId, position) {
- var run = runs[runId];
-
- if (position > 0) {
- run.status = {
- statusCode: STATUS_AWAITING,
- position: position
- };
- } else {
- run.status = {
- statusCode: STATUS_RUNNING
- };
- }
-
- runs[runId] = run;
- };
-
-
- // When the test is launched, set the progress bar
- this.updateRunProgress = function(runId, progress) {
- var run = runs[runId];
-
- run.progress = progress;
-
- runs[runId] = run;
- };
-
-
- this.markAsComplete = function(runId) {
- var run = runs[runId];
-
- run.status = {
- statusCode: STATUS_COMPLETE
- };
-
- runs[runId] = run;
- };
-
-
- this.markAsFailed = function(runId, err) {
- var run = runs[runId];
-
- var errorMessage;
- switch(err) {
- case '1':
- errorMessage = "Error 1: unknown error";
- break;
- case '252':
- errorMessage = "Error 252: page timeout in Phantomas";
- break;
- case '253':
- errorMessage = "Error 253: Phantomas config error";
- break;
- case '254':
- errorMessage = "Error 254: page loading failed in PhantomJS";
- break;
- case '255':
- errorMessage = "Error 255: Phantomas error";
- break;
- case '1001':
- errorMessage = "Error 1001: JavaScript profiling failed";
- break;
- case '1002':
- errorMessage = "Error 1002: missing Phantomas metrics";
- break;
- case '1003':
- errorMessage = "Error 1003: Phantomas not returning";
- break;
- default:
- errorMessage = err;
- }
-
- run.status = {
- statusCode: STATUS_FAILED,
- error: errorMessage
- };
-
- runs[runId] = run;
- };
-
-
- this.delete = function(runId) {
- delete runs[runId];
- };
-
-
- this.list = function() {
- var runsArray = [];
- Object.keys(runs).forEach(function(key) {
- runsArray.push(runs[key]);
- });
- return runsArray;
- };
-}
-
-module.exports = RunsDatastore;
\ No newline at end of file
diff --git a/lib/server/datastores/runsQueue.js b/lib/server/datastores/runsQueue.js
deleted file mode 100644
index e99f1fbd..00000000
--- a/lib/server/datastores/runsQueue.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var Q = require('q');
-var debug = require('debug')('ylt:runsQueue');
-
-
-function RunsQueue() {
- 'use strict';
-
- var queue = [];
-
-
- this.push = function(runId) {
- var deferred = Q.defer();
- var startingPosition = queue.length;
-
- debug('Adding run %s to the queue, position is %d', runId, startingPosition);
-
- if (startingPosition === 0) {
-
- // The queue is empty, let's run immediatly
- queue.push({
- runId: runId
- });
-
- deferred.resolve();
-
- } else {
-
- queue.push({
- runId: runId,
- positionChangedCallback: function(position) {
- deferred.notify(position);
- },
- itIsTimeCallback: function() {
- deferred.resolve();
- }
- });
- }
-
- var promise = deferred.promise;
- promise.startingPosition = startingPosition;
- return promise;
- };
-
-
- this.getPosition = function(runId) {
- // Position 0 means it's a work in progress (a run is removed AFTER it is finished, not before)
- var position = -1;
-
- queue.some(function(run, index) {
- if (run.runId === runId) {
- position = index;
- return true;
- }
- return false;
- });
-
- return position;
- };
-
-
- this.remove = function(runId) {
- var position = this.getPosition(runId);
- if (position >= 0) {
- queue.splice(position, 1);
- }
-
- // Update other runs' positions
- queue.forEach(function(run, index) {
- if (index === 0 && run.itIsTimeCallback) {
- run.itIsTimeCallback();
- } else if (index > 0 && run.positionChangedCallback) {
- run.positionChangedCallback(index);
- }
- });
-
- };
-
- this.length = function() {
- return queue.length;
- };
-}
-
-module.exports = RunsQueue;
\ No newline at end of file
diff --git a/lib/server/middlewares/apiLimitsMiddleware.js b/lib/server/middlewares/apiLimitsMiddleware.js
deleted file mode 100644
index 0ebe205c..00000000
--- a/lib/server/middlewares/apiLimitsMiddleware.js
+++ /dev/null
@@ -1,87 +0,0 @@
-var config = (process.env.IS_TEST) ? require('../../../test/fixtures/settings.json') : require('../../../server_config/settings.json');
-
-var debug = require('debug')('apiLimitsMiddleware');
-
-
-var apiLimitsMiddleware = function(req, res, next) {
- 'use strict';
-
- var ipAddress = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
-
- debug('Entering API Limits Middleware with IP address %s', ipAddress);
-
- if (req.path.indexOf('/api/') === 0 && !res.locals.hasApiKey) {
-
-
- if (req.path === '/api/runs') {
-
- if (!runsTable.accepts(ipAddress)) {
- // Sorry :/
- debug('Too many tests launched from IP address %s', ipAddress);
- res.status(429).send('Too many requests');
- return;
- }
-
- }
-
- if (!callsTable.accepts(ipAddress)) {
- // Sorry :/
- debug('Too many API requests from IP address %s', ipAddress);
- res.status(429).send('Too many requests');
- return;
- }
-
- debug('Not blocked by the API limits');
- // It's ok for the moment
- }
-
- next();
-};
-
-
-var RecordTable = function(maxPerDay) {
- var table = {};
-
- // Check if the user overpassed the limit and save its visit
- this.accepts = function(ipAddress) {
- if (table[ipAddress]) {
-
- this.cleanEntry(ipAddress);
-
- debug('%d visits in the last 24 hours', table[ipAddress].length);
-
- if (table[ipAddress].length >= maxPerDay) {
- return false;
- } else {
- table[ipAddress].push(Date.now());
- }
-
- } else {
- table[ipAddress] = [];
- table[ipAddress].push(Date.now());
- }
-
- return true;
- };
-
- // Clean the table for this guy
- this.cleanEntry = function(ipAddress) {
- table[ipAddress] = table[ipAddress].filter(function(date) {
- return date > Date.now() - 1000*60*60*24;
- });
- };
-
- // Clean the entire table once in a while
- this.removeOld = function() {
- for (var ipAddress in table) {
- this.cleanEntry(ipAddress);
- }
- };
-
-};
-
-// Init the records tables
-var runsTable = new RecordTable(config.maxAnonymousRunsPerDay);
-var callsTable = new RecordTable(config.maxAnonymousCallsPerDay);
-
-module.exports = apiLimitsMiddleware;
\ No newline at end of file
diff --git a/lib/server/middlewares/authMiddleware.js b/lib/server/middlewares/authMiddleware.js
deleted file mode 100644
index d7094e28..00000000
--- a/lib/server/middlewares/authMiddleware.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var config = (process.env.IS_TEST) ? require('../../../test/fixtures/settings.json') : require('../../../server_config/settings.json');
-
-var debug = require('debug')('authMiddleware');
-
-
-var authMiddleware = function(req, res, next) {
- 'use strict';
-
- if (req.path.indexOf('/api/') === 0) {
-
-
- if (req.headers && req.headers['x-api-key']) {
-
- // Test if it's an authorized key
- if (isApiKeyValid(req.headers['x-api-key'])) {
-
- // Come in!
- debug('Authorized key: %s', req.headers['x-api-key']);
- res.locals.hasApiKey = true;
-
- } else {
-
- // Sorry :/
- debug('Unauthorized key %s', req.headers['x-api-key']);
- res.status(401).send('Unauthorized');
- return;
- }
- } else {
- debug('No authorization key');
- // It's ok for the moment but you might be blocked by the apiLimitsMiddleware, dude
- }
- }
-
- next();
-};
-
-
-function isApiKeyValid(apiKey) {
- return (config.authorizedKeys[apiKey]) ? true : false;
-}
-
-module.exports = authMiddleware;
\ No newline at end of file
diff --git a/lib/server/middlewares/wwwRedirectMiddleware.js b/lib/server/middlewares/wwwRedirectMiddleware.js
deleted file mode 100644
index 4560222f..00000000
--- a/lib/server/middlewares/wwwRedirectMiddleware.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var wwwRedirectMiddleware = function(req, res, next) {
- 'use strict';
-
- // Redirect www.yellowlab.tools to yellowlab.tools without "www" (for SEO purpose)
- if(/^www\.yellowlab\.tools/.test(req.headers.host)) {
- res.redirect(301, req.protocol + '://' + req.headers.host.replace(/^www\./, '') + req.url);
- } else {
- next();
- }
-};
-
-module.exports = wwwRedirectMiddleware;
\ No newline at end of file
diff --git a/lib/tools/phantomas/phantomasWrapper.js b/lib/tools/phantomas/phantomasWrapper.js
index e74e85a5..ac2ac311 100644
--- a/lib/tools/phantomas/phantomasWrapper.js
+++ b/lib/tools/phantomas/phantomasWrapper.js
@@ -1,6 +1,4 @@
-var async = require('async');
var Q = require('q');
-var ps = require('ps-node');
var path = require('path');
var debug = require('debug')('ylt:phantomaswrapper');
var phantomas = require('phantomas');
@@ -44,10 +42,14 @@ var PhantomasWrapper = function() {
'block-domain': task.options.blockDomain,
'allow-domain': task.options.allowDomain,
'no-externals': task.options.noExternals,
+ 'local-storage': task.options.localStorage,
+ 'session-storage': task.options.sessionStorage,
// Mandatory
'analyze-css': true,
- 'ignoreSslErrors': true
+ 'analyze-images': true,
+ 'ignoreSslErrors': true, // until Phantomas 2.1
+ 'ignore-ssl-errors': true // for Phantomas >= 2.2
};
@@ -79,6 +81,12 @@ var PhantomasWrapper = function() {
offenders: results.getAllOffenders()
};
+ // Special rules here
+ if (task.options.device !== 'phone') {
+ delete json.metrics.imagesExcessiveDensity;
+ delete json.offenders.imagesExcessiveDensity;
+ }
+
deferred.resolve(json);
}).
catch(res => {
diff --git a/lib/tools/redownload/contentTypeChecker.js b/lib/tools/redownload/contentTypeChecker.js
index ea06d880..a37c7d56 100644
--- a/lib/tools/redownload/contentTypeChecker.js
+++ b/lib/tools/redownload/contentTypeChecker.js
@@ -1,20 +1,12 @@
-var debug = require('debug')('ylt:contentTypeChecker');
-var Q = require('q');
-var isJpg = require('is-jpg');
-var isPng = require('is-png');
-var isSvg = require('is-svg');
-var isGif = require('is-gif');
-var isWebp = require('is-webp');
-var isWoff = require('is-woff');
-var isWoff2 = require('is-woff2');
-var isOtf = require('is-otf');
-var isTtf = require('is-ttf');
-var isEot = require('is-eot');
-var isJson = require('is-json');
+var debug = require('debug')('ylt:contentTypeChecker');
+var Q = require('q');
+var FileType = require('file-type');
+var isSvg = require('is-svg');
+var isJson = require('is-json');
var ContentTypeChecker = function() {
- function checkContentType(entry) {
+ async function checkContentType(entry) {
var deferred = Q.defer();
// Setting isSomething values:
@@ -55,12 +47,12 @@ var ContentTypeChecker = function() {
var foundType;
try {
- foundType = findContentType(entry.weightCheck.bodyBuffer);
+ foundType = await findContentType(entry.weightCheck.bodyBuffer);
// If it's an image or a font, then rewrite.
if (foundType !== null && (foundType.type === 'image' || foundType.type === 'webfont' || foundType.type === 'json')) {
if (foundType.type !== entry.type) {
- debug('Content type %s is wrong for %s. It should be %s.', entry.type, entry.ulr, foundType.type);
+ debug('Content type %s is wrong for %s. It should be %s.', entry.type, entry.url, foundType.type);
}
rewriteContentType(entry, foundType);
}
@@ -76,54 +68,23 @@ var ContentTypeChecker = function() {
return deferred.promise;
}
- function findContentType(bodyBuffer) {
+ async function findContentType(bodyBuffer) {
var bodyStr = bodyBuffer.toString();
- if (isJpg(bodyBuffer)) {
- return contentTypes.jpeg;
- }
-
- if (isPng(bodyBuffer)) {
- return contentTypes.png;
- }
-
// https://github.com/sindresorhus/is-svg/issues/7
if (/ 0) {
- differentCharacters = data.toolsResults.phantomas.offenders.charactersCount[0];
+ if (data.toolsResults.phantomas.offenders.differentCharacters && data.toolsResults.phantomas.offenders.differentCharacters.length > 0) {
+ differentCharacters = data.toolsResults.phantomas.offenders.differentCharacters[0];
}
// Transform every request into a download function with a callback when done
@@ -77,9 +76,9 @@ var Redownload = function() {
.then(contentTypeChecker.checkContentType)
- .then(imageOptimizer.optimizeImage)
+ //.then(imageOptimizer.optimizeImage)
- .then(imageDimensions.getDimensions)
+ //.then(imageDimensions.getDimensions)
.then(fileMinifier.minifyFile)
@@ -152,12 +151,12 @@ var Redownload = function() {
});
// Image compression
- offenders.imageOptimization = listImagesNotOptimized(results);
- metrics.imageOptimization = offenders.imageOptimization.totalGain;
+ //offenders.imageOptimization = listImagesNotOptimized(results);
+ //metrics.imageOptimization = offenders.imageOptimization.totalGain;
// Image width
- offenders.imagesTooLarge = listImagesTooLarge(results, data.params.options.device);
- metrics.imagesTooLarge = offenders.imagesTooLarge.length;
+ //offenders.imagesTooLarge = listImagesTooLarge(results, data.params.options.device);
+ //metrics.imagesTooLarge = offenders.imagesTooLarge.length;
// File minification
offenders.fileMinification = listFilesNotMinified(results);
@@ -195,6 +194,8 @@ var Redownload = function() {
offenders: offenders
};
+ cleanResults(results);
+
deferred.resolve(data);
}
});
@@ -340,7 +341,7 @@ var Redownload = function() {
}
- function listImagesNotOptimized(requests) {
+ /*function listImagesNotOptimized(requests) {
var results = {
totalGain: 0,
images: []
@@ -395,9 +396,9 @@ var Redownload = function() {
}
});
return results;
- }
+ }*/
- function listImagesTooLarge(requests, device) {
+ /*function listImagesTooLarge(requests, device) {
var results = [];
requests.forEach(function(req) {
@@ -422,7 +423,7 @@ var Redownload = function() {
});
return results;
- }
+ }*/
function listFilesNotMinified(requests) {
@@ -818,9 +819,9 @@ var Redownload = function() {
debug('Downloading %s', entry.url);
- // Always add compression and webp headers before sending, in case the server listens to them
+ // Always add compression and webp/avif headers before sending, in case the server listens to them
var reqHeaders = [];
- reqHeaders['Accept'] = '*/*,image/webp';
+ reqHeaders['Accept'] = '*/*,image/webp,image/avif';
reqHeaders['Accept-Encoding'] = 'gzip, deflate, br';
reqHeaders['Connection'] = 'keep-alive';
reqHeaders['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36';
@@ -1010,6 +1011,13 @@ var Redownload = function() {
}
}
+ // Clean all the pollution this module added to the results
+ function cleanResults(requests) {
+ requests.forEach(function(req) {
+ delete req.weightCheck;
+ });
+ }
+
return {
recheckAllFiles: recheckAllFiles,
listRequestWeight: listRequestWeight,
diff --git a/package.json b/package.json
index d0e6ea19..eacce923 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "yellowlabtools",
- "version": "2.0.0",
- "description": "Online tool to audit a webpage for performance and front-end quality issues",
+ "version": "3.0.1",
+ "description": "A tool that audits a webpage for performance and front-end quality issues",
"license": "GPL-2.0",
"author": {
"name": "Gaël Métais",
@@ -16,89 +16,46 @@
"yellowlabtools": "./bin/cli.js"
},
"engines": {
- "node": ">= 12.0"
+ "node": ">= 18.0"
},
"main": "./lib/index.js",
"dependencies": {
- "angular": "1.7.7",
- "angular-animate": "1.7.7",
- "angular-chart.js": "1.1.1",
- "angular-local-storage": "0.7.1",
- "angular-resource": "1.7.7",
- "angular-route": "1.7.7",
- "angular-sanitize": "1.7.7",
"async": "2.6.1",
- "body-parser": "1.18.3",
- "chart.js": "2.7.3",
"clean-css": "4.2.1",
- "color-diff": "1.1.0",
- "compression": "1.7.3",
- "cors": "2.8.5",
+ "color-diff": "1.4.0",
"css-mq-parser": "0.0.3",
- "debug": "4.1.1",
+ "debug": "4.3.4",
"easyxml": "2.0.1",
- "ejs": "2.6.1",
- "express": "4.16.4",
- "fontkit": "1.7.8",
+ "file-type": "16.5.3",
+ "fontkit": "2.0.2",
"html-minifier": "4.0.0",
- "image-size": "0.7.1",
+ "image-size": "1.0.2",
"imagemin": "7.0.1",
"imagemin-jpegoptim": "7.0.0",
"imagemin-jpegtran": "7.0.0",
"imagemin-optipng": "8.0.0",
- "imagemin-svgo": "8.0.0",
- "is-eot": "1.0.0",
- "is-gif": "3.0.0",
- "is-jpg": "2.0.0",
+ "imagemin-svgo": "9.0.0",
"is-json": "2.0.1",
- "is-otf": "0.1.2",
- "is-png": "1.1.0",
"is-svg": "3.0.0",
- "is-ttf": "0.2.2",
- "is-webp": "1.0.1",
- "is-woff": "1.0.3",
- "is-woff2": "1.0.0",
- "jimp": "0.6.0",
- "md5": "2.2.1",
+ "md5": "2.3.0",
"meow": "5.0.0",
"parse-color": "1.0.0",
- "phantomas": "github:macbre/phantomas#devel",
- "ps-node": "0.1.6",
+ "phantomas": "2.10.0",
"q": "1.5.1",
- "request": "2.88.0",
- "rimraf": "2.6.3",
- "temporary": "0.0.8",
- "ttf2woff2": "4.0.1",
- "uglify-js": "3.4.9",
+ "request": "2.88.2",
+ "sharp": "0.32.6",
+ "ttf2woff2": "5.0.0",
+ "uglify-js": "3.17.4",
"woff-tools": "0.1.0"
},
"devDependencies": {
- "chai": "~4.2.0",
- "grunt": "~1.0.3",
- "grunt-contrib-clean": "~2.0.0",
- "grunt-contrib-concat": "~1.0.1",
- "grunt-contrib-copy": "~1.0.0",
- "grunt-contrib-cssmin": "~3.0.0",
- "grunt-contrib-htmlmin": "~3.0.0",
- "grunt-contrib-jshint": "~2.0.0",
- "grunt-contrib-less": "~2.0.0",
- "grunt-contrib-uglify": "~4.0.0",
- "grunt-contrib-watch": "~1.1.0",
- "grunt-env": "~0.4.4",
- "grunt-express": "~1.4.1",
- "grunt-filerev": "~2.3.1",
- "grunt-inline-angular-templates": "~0.1.5",
- "grunt-mocha-test": "~0.13.3",
- "grunt-parallel": "~0.5.1",
- "grunt-usemin": "~3.1.1",
- "matchdep": "~2.0.0",
- "mocha": "~5.2.0",
- "sinon": "~7.2.3",
- "sinon-chai": "~3.3.0"
+ "chai": "~4.3.7",
+ "mocha": "~10.2.0",
+ "sinon": "~15.2.0",
+ "sinon-chai": "3.7.0"
},
"scripts": {
- "test": "grunt test",
- "build": "grunt build"
+ "test": "mocha './test/core/**.js'"
},
"keywords": [
"performance",
@@ -106,6 +63,7 @@
"webperf",
"pagespeed",
"budget",
- "phantomas"
+ "phantomas",
+ "puppeteer"
]
}
diff --git a/server_config/error50x.html b/server_config/error50x.html
deleted file mode 100644
index 4d9f95be..00000000
--- a/server_config/error50x.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- Yellow Lab Tools
-
-
-
-
-
-
-
-
-
-
-
-
Sorry, Yellow Lab Tools looks broken :/
-
The admin has been alerted.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/server_config/maintenance.js b/server_config/maintenance.js
deleted file mode 100644
index 406a6e0f..00000000
--- a/server_config/maintenance.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var express = require('express');
-var app = express();
-var server = require('http').createServer(app);
-
-var settings = require('./settings.json');
-
-app.all('*', function(req, res) {
- res.status(500).send('YellowLabTools is in maintenance. It should come back soon with a new version!');
-});
-
-server.listen(settings.serverPort, function() {
- console.log('Maintenance mode started on port %d', server.address().port);
-});
\ No newline at end of file
diff --git a/server_config/server_install.sh b/server_config/server_install.sh
deleted file mode 100644
index ce4bc559..00000000
--- a/server_config/server_install.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-
-# APT-GET
-sudo apt-get update
-sudo apt-get install lsb-release libfontconfig1 libfreetype6 libjpeg-dev libnss3 libatk1.0-0 libatk-bridge2.0-0 gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release libgbm1 xdg-utils wget -y --force-yes > /dev/null 2>&1
-sudo apt-get install curl git software-properties-common build-essential make g++ -y --force-yes > /dev/null 2>&1
-
-# Installation of NodeJS
-curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
-sudo apt-get install -y nodejs > /dev/null 2>&1
-source ~/.profile
-
-# Installation of some packages globally
-npm install forever grunt-cli -g
-source ~/.profile
-
-# Installation of YellowLabTools
-sudo chown -R $USER /space
-cd /space/YellowLabTools
-npm install || exit 1
-
-# Front-end compilation
-grunt build
-
-# Start the server
-rm server_config/settings.json
-cp server_config/settings-prod.json server_config/settings.json
-NODE_ENV=production forever start -c "node --stack-size=262000" bin/server.js
\ No newline at end of file
diff --git a/server_config/server_update.sh b/server_config/server_update.sh
deleted file mode 100755
index 641af182..00000000
--- a/server_config/server_update.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env bash
-
-cd /space/YellowLabTools
-
-# Stop the server and start the maintenance mode
-forever stopall
-forever start server_config/maintenance.js
-
-# Keep the settings.json file
-git stash
-git pull
-git stash pop
-
-# In case something was added in package.json
-rm -rf node_modules
-npm install || exit 1
-
-# Front-end compilation
-rm -rf front/build
-grunt build
-
-# Stop the maintenance mode and restart the server
-forever stopall
-NODE_ENV=production forever start -c "node --stack-size=262000" bin/server.js
\ No newline at end of file
diff --git a/server_config/settings-prod.json b/server_config/settings-prod.json
deleted file mode 100644
index 1390bbb3..00000000
--- a/server_config/settings-prod.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "serverPort": 80,
- "googleAnalyticsId": "",
- "screenshotWidth": {
- "phone": 360,
- "tablet": 420,
- "desktop": 600,
- "desktop-hd": 600
- },
- "baseUrl": "/",
- "authorizedKeys": {
-
- },
- "maxAnonymousRunsPerDay": 1000,
- "maxAnonymousCallsPerDay": 100000,
- "blockedUrls": [],
-
- "sponsoring" : {
- "home": "(this is a private instance)",
- "dashboard": null,
- "about": "(this is a private instance)"
- }
-}
\ No newline at end of file
diff --git a/server_config/settings.json b/server_config/settings.json
deleted file mode 100644
index becee779..00000000
--- a/server_config/settings.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "serverPort": 8383,
- "googleAnalyticsId": "",
- "screenshotWidth": {
- "phone": 360,
- "tablet": 420,
- "desktop": 600,
- "desktop-hd": 600
- },
- "baseUrl": "/",
- "authorizedKeys": {
-
- },
- "maxAnonymousRunsPerDay": 99999999,
- "maxAnonymousCallsPerDay": 99999999,
- "blockedUrls": [],
-
- "sponsoring" : {
- "home": "(this is a private instance)",
- "dashboard": null,
- "about": "(this is a private instance)"
- }
-}
\ No newline at end of file
diff --git a/test/api/apiTest.js b/test/api/apiTest.js
deleted file mode 100644
index 88daaf8d..00000000
--- a/test/api/apiTest.js
+++ /dev/null
@@ -1,681 +0,0 @@
-var should = require('chai').should();
-var request = require('request');
-var Q = require('q');
-
-var config = {
- "authorizedKeys": {
- "1234567890": "contact@gaelmetais.com"
- }
-};
-
-var serverUrl = 'http://localhost:8387';
-var wwwUrl = 'http://localhost:8388';
-
-describe('api', function() {
-
-
- var syncRunResultUrl;
- var asyncRunId;
- var screenshotUrl;
-
-
- it('should refuse a query with an invalid key', function(done) {
- this.timeout(5000);
-
- request({
- method: 'POST',
- url: serverUrl + '/api/runs',
- body: {
- url: wwwUrl + '/simple-page.html',
- waitForResponse: false
- },
- json: true,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Api-Key': 'invalid'
- }
- }, function(error, response, body) {
- if (!error && response.statusCode === 401) {
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
- it('should fail without an URL when asynchronous', function(done) {
- this.timeout(15000);
-
- request({
- method: 'POST',
- url: serverUrl + '/api/runs',
- body: {
- url: '',
- waitForResponse: true
- },
- json: true,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Api-Key': Object.keys(config.authorizedKeys)[0]
- }
- }, function(error, response, body) {
- if (!error && response.statusCode === 400) {
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
- it('should fail without an URL when synchronous', function(done) {
- this.timeout(15000);
-
- request({
- method: 'POST',
- url: serverUrl + '/api/runs',
- body: {
- url: '',
- waitForResponse: true
- },
- json: true,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Api-Key': Object.keys(config.authorizedKeys)[0]
- }
- }, function(error, response, body) {
- if (!error && response.statusCode === 400) {
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
- it('should launch a synchronous run', function(done) {
- this.timeout(15000);
-
- request({
- method: 'POST',
- url: serverUrl + '/api/runs',
- body: {
- url: wwwUrl + '/simple-page.html',
- waitForResponse: true,
- screenshot: true,
- device: 'tablet',
- //waitForSelector: '*',
- cookie: 'foo=bar;domain=google.com',
- authUser: 'joe',
- authPass: 'secret'
- },
- json: true,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Api-Key': Object.keys(config.authorizedKeys)[0]
- }
- }, function(error, response, body) {
- if (!error && response.statusCode === 302) {
-
- response.headers.should.have.a.property('location').that.is.a('string');
- syncRunResultUrl = response.headers.location;
-
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
- it('should return the rules only', function(done) {
- this.timeout(15000);
-
- request({
- method: 'POST',
- url: serverUrl + '/api/runs',
- body: {
- url: wwwUrl + '/simple-page.html',
- waitForResponse: true,
- partialResult: 'rules'
- },
- json: true,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Api-Key': Object.keys(config.authorizedKeys)[0]
- }
- }, function(error, response, body) {
- if (!error && response.statusCode === 302) {
-
- response.headers.should.have.a.property('location').that.is.a('string');
- response.headers.location.should.contain('/rules');
-
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should retrieve the results for the synchronous run', function(done) {
- this.timeout(15000);
-
- request({
- method: 'GET',
- url: serverUrl + syncRunResultUrl,
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.should.have.a.property('runId').that.is.a('string');
- body.should.have.a.property('params').that.is.an('object');
- body.should.have.a.property('scoreProfiles').that.is.an('object');
- body.should.have.a.property('rules').that.is.an('object');
- body.should.have.a.property('toolsResults').that.is.an('object');
-
- // Check if settings are correctly sent and retrieved
- body.params.options.should.have.a.property('device').that.equals('tablet');
- //body.params.options.should.have.a.property('waitForSelector').that.equals('*');
- body.params.options.should.have.a.property('cookie').that.equals('foo=bar;domain=google.com');
- body.params.options.should.have.a.property('authUser').that.equals('joe');
- body.params.options.should.have.a.property('authPass').that.equals('secret');
-
- // Check if the screenshot temporary file was correctly removed
- body.params.options.should.not.have.a.property('screenshot');
- // Check if the screenshot buffer was correctly removed
- body.should.not.have.a.property('screenshotBuffer');
- // Check if the screenshot url is here
- body.should.have.a.property('screenshotUrl');
- body.screenshotUrl.should.equal('api/results/' + body.runId + '/screenshot.jpg');
-
- screenshotUrl = body.screenshotUrl;
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should launch a run without waiting for the response', function(done) {
- this.timeout(5000);
-
- request({
- method: 'POST',
- url: serverUrl + '/api/runs',
- body: {
- url: wwwUrl + '/simple-page.html',
- waitForResponse: false,
- jsTimeline: true
- },
- json: true,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Api-Key': Object.keys(config.authorizedKeys)[0]
- }
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- asyncRunId = body.runId;
- asyncRunId.should.be.a('string');
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should respond run status: running', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/runs/' + asyncRunId,
- json: true,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Api-Key': Object.keys(config.authorizedKeys)[0]
- }
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.runId.should.equal(asyncRunId);
- body.status.should.deep.equal({
- statusCode: 'running'
- });
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
- it('should accept up to 10 anonymous runs to the API', function(done) {
- this.timeout(5000);
-
- function launchRun() {
- var deferred = Q.defer();
-
- request({
- method: 'POST',
- url: serverUrl + '/api/runs',
- body: {
- url: wwwUrl + '/simple-page.html',
- waitForResponse: false
- },
- json: true
- }, function(error, response, body) {
-
- lastRunId = body.runId;
-
- if (error) {
- deferred.reject(error);
- } else {
- deferred.resolve(response, body);
- }
- });
-
- return deferred.promise;
- }
-
- launchRun()
- .then(launchRun)
- .then(launchRun)
- .then(launchRun)
- .then(launchRun)
-
- .then(function(response, body) {
-
- // Here should still be ok
- response.statusCode.should.equal(200);
-
- launchRun()
- .then(launchRun)
- .then(launchRun)
- .then(launchRun)
- .then(launchRun)
- .then(launchRun)
-
- .then(function(response, body) {
-
- // It should fail now
- response.statusCode.should.equal(429);
- done();
-
- })
- .fail(function(error) {
- done(error);
- });
-
- }).fail(function(error) {
- done(error);
- });
-
- });
-
-
- it('should respond 404 to unknown runId', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/runs/unknown',
- json: true
- }, function(error, response, body) {
- if (!error && response.statusCode === 404) {
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should respond 404 to unknown result', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/unknown',
- json: true
- }, function(error, response, body) {
- if (!error && response.statusCode === 404) {
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should respond status complete to the first run', function(done) {
- this.timeout(12000);
-
- function checkStatus() {
- request({
- method: 'GET',
- url: serverUrl + '/api/runs/' + asyncRunId,
- json: true
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.runId.should.equal(asyncRunId);
-
- if (body.status.statusCode === 'running') {
- setTimeout(checkStatus, 250);
- } else if (body.status.statusCode === 'complete') {
- done();
- } else {
- done(body.status.statusCode);
- }
-
- } else {
- done(error || response.statusCode);
- }
- });
- }
-
- checkStatus();
- });
-
-
- it('should find the result of the async run', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId,
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.should.have.a.property('runId').that.equals(asyncRunId);
- body.should.have.a.property('params').that.is.an('object');
- body.params.url.should.equal(wwwUrl + '/simple-page.html');
-
- body.should.have.a.property('scoreProfiles').that.is.an('object');
- body.scoreProfiles.should.have.a.property('generic').that.is.an('object');
- body.scoreProfiles.generic.should.have.a.property('globalScore').that.is.a('number');
- body.scoreProfiles.generic.should.have.a.property('categories').that.is.an('object');
-
- body.should.have.a.property('rules').that.is.an('object');
-
- body.should.have.a.property('toolsResults').that.is.an('object');
- body.toolsResults.should.have.a.property('phantomas').that.is.an('object');
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should return the generic score object', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '/generalScores',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
- body.should.have.a.property('globalScore').that.is.a('number');
- body.should.have.a.property('categories').that.is.an('object');
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should return the generic score object also', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '/generalScores/generic',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
- body.should.have.a.property('globalScore').that.is.a('number');
- body.should.have.a.property('categories').that.is.an('object');
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should not find an unknown score object', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '/generalScores/unknown',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 404) {
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should return the rules', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '/rules',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- var firstRule = body[Object.keys(body)[0]];
- firstRule.should.have.a.property('policy').that.is.an('object');
- firstRule.should.have.a.property('value').that.is.a('number');
- firstRule.should.have.a.property('bad').that.is.a('boolean');
- firstRule.should.have.a.property('abnormal').that.is.a('boolean');
- firstRule.should.have.a.property('score').that.is.a('number');
- firstRule.should.have.a.property('abnormalityScore').that.is.a('number');
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should return the phantomas results', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '/toolsResults/phantomas',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.should.have.a.property('metrics').that.is.an('object');
- body.should.have.a.property('offenders').that.is.an('object');
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should return the entire object and exclude toolsResults', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '?exclude=toolsResults',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.should.have.a.property('runId').that.equals(asyncRunId);
- body.should.have.a.property('params').that.is.an('object');
- body.should.have.a.property('scoreProfiles').that.is.an('object');
- body.should.have.a.property('rules').that.is.an('object');
-
- body.should.not.have.a.property('toolsResults').that.is.an('object');
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should return the entire object and exclude params and toolsResults', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '?exclude=toolsResults,params',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.should.have.a.property('runId').that.equals(asyncRunId);
- body.should.have.a.property('scoreProfiles').that.is.an('object');
- body.should.have.a.property('rules').that.is.an('object');
-
- body.should.not.have.a.property('params').that.is.an('object');
- body.should.not.have.a.property('toolsResults').that.is.an('object');
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
- it('should return the entire object and don\'t exclude anything', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '?exclude=',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.should.have.a.property('runId').that.equals(asyncRunId);
- body.should.have.a.property('scoreProfiles').that.is.an('object');
- body.should.have.a.property('rules').that.is.an('object');
- body.should.have.a.property('params').that.is.an('object');
- body.should.have.a.property('toolsResults').that.is.an('object');
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
- it('should return the entire object and don\'t exclude anything', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/' + asyncRunId + '?exclude=null',
- json: true,
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
-
- body.should.have.a.property('runId').that.equals(asyncRunId);
- body.should.have.a.property('scoreProfiles').that.is.an('object');
- body.should.have.a.property('rules').that.is.an('object');
- body.should.have.a.property('params').that.is.an('object');
- body.should.have.a.property('toolsResults').that.is.an('object');
-
- done();
-
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should retrieve the screenshot', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/' + screenshotUrl
- }, function(error, response, body) {
- if (!error && response.statusCode === 200) {
- response.headers['content-type'].should.equal('image/jpeg');
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-
- it('should fail on a unexistant screenshot', function(done) {
- this.timeout(5000);
-
- request({
- method: 'GET',
- url: serverUrl + '/api/results/000000/screenshot.jpg'
- }, function(error, response, body) {
- if (!error && response.statusCode === 404) {
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
- it('should refuse a query on a blocked Url', function(done) {
- this.timeout(5000);
-
- request({
- method: 'POST',
- url: serverUrl + '/api/runs',
- body: {
- url: 'http://www.test.com/something.html',
- waitForResponse: false
- },
- json: true,
- headers: {
- 'Content-Type': 'application/json',
- 'X-Api-Key': Object.keys(config.authorizedKeys)[0]
- }
- }, function(error, response, body) {
- if (!error && response.statusCode === 403) {
- done();
- } else {
- done(error || response.statusCode);
- }
- });
- });
-
-});
diff --git a/test/api/resultsDatastoreTest.js b/test/api/resultsDatastoreTest.js
deleted file mode 100644
index da181e7f..00000000
--- a/test/api/resultsDatastoreTest.js
+++ /dev/null
@@ -1,121 +0,0 @@
-var should = require('chai').should();
-var resultsDatastore = require('../../lib/server/datastores/resultsDatastore');
-
-var fs = require('fs');
-var path = require('path');
-
-describe('resultsDatastore', function() {
-
- var datastore = new resultsDatastore();
-
- var testId1 = '123456789';
- var testData1 = {
- runId: testId1,
- other: {
- foo: 'foo',
- bar: 1
- }
- };
-
-
- it('should store a result', function(done) {
- datastore.should.have.a.property('saveResult').that.is.a('function');
-
- datastore.saveResult(testData1).then(function() {
- done();
- }).fail(function(err) {
- done(err);
- });
- });
-
- it('should store another result', function(done) {
- var testData2 = {
- runId: '987654321',
- other: {
- foo: 'foo',
- bar: 2
- }
- };
-
- datastore.saveResult(testData2).then(function() {
- done();
- }).fail(function(err) {
- done(err);
- });
- });
-
- it('should retrieve a result', function(done) {
- datastore.getResult(testId1)
- .then(function(results) {
-
- // Compare results with testData
- results.should.deep.equal(testData1);
-
- done();
- }).fail(function(err) {
- done(err);
- });
- });
-
- it('should delete a result', function(done) {
- datastore.deleteResult(testId1)
- .then(function() {
- done();
- }).fail(function(err) {
- done(err);
- });
- });
-
- it('should not find the result anymore', function(done) {
- datastore.getResult(testId1)
- .then(function(results) {
- done('Error, the result is still in the datastore');
- }).fail(function(err) {
- done();
- });
- });
-
-
- var testId3 = '555555';
- var testData3 = {
- runId: testId3,
- other: {
- foo: 'foo',
- bar: 2
- },
- screenshotBuffer: fs.readFileSync(path.join(__dirname, '../fixtures/logo-large.png'))
- };
-
- it('should store a test with a screenshot', function(done) {
-
- datastore.saveResult(testData3).then(function() {
- done();
- }).fail(function(err) {
- done(err);
- });
- });
-
- it('should have a normal result', function(done) {
- datastore.getResult(testId3)
- .then(function(results) {
-
- results.should.not.have.a.property('screenshot');
-
- done();
- })
- .fail(function(err) {
- done(err);
- });
- });
-
- it('should retrieve the saved image', function() {
- datastore.getScreenshot(testId3)
- .then(function(imageBuffer) {
- imageBuffer.should.be.an.instanceof(Buffer);
- done();
- })
- .fail(function(err) {
- done(err);
- });
- });
-});
diff --git a/test/api/runsDatastoreTest.js b/test/api/runsDatastoreTest.js
deleted file mode 100644
index ccc1e952..00000000
--- a/test/api/runsDatastoreTest.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var should = require('chai').should();
-var runsDatastore = require('../../lib/server/datastores/runsDatastore');
-
-describe('runsDatastore', function() {
-
- var datastore = new runsDatastore();
-
- var firstRunId = 333;
- var secondRunId = 999;
-
- it('should accept new runs', function() {
- datastore.should.have.a.property('add').that.is.a('function');
-
- datastore.add({
- runId: firstRunId,
- otherData: 123456789
- }, 0);
-
- datastore.add({
- runId: secondRunId,
- otherData: 'whatever'
- }, 1);
- });
-
- it('should have stored the runs with a status "runnung"', function() {
- datastore.should.have.a.property('get').that.is.a('function');
-
- var firstRun = datastore.get(firstRunId);
- firstRun.should.have.a.property('runId').that.equals(firstRunId);
- firstRun.should.have.a.property('status').that.deep.equals({
- statusCode: 'running'
- });
-
- var secondRun = datastore.get(secondRunId);
- secondRun.should.have.a.property('runId').that.equals(secondRunId);
- secondRun.should.have.a.property('status').that.deep.equals({
- statusCode: 'awaiting',
- position: 1
- });
-
- });
-
- it('should have exactly 2 runs in the store', function() {
- var runs = datastore.list();
- runs.should.be.a('array');
- runs.should.have.length(2);
- runs[0].should.have.a.property('runId').that.equals(firstRunId);
- });
-
- it('shoud update statuses correctly', function() {
-
- datastore.markAsComplete(firstRunId);
- var firstRun = datastore.get(firstRunId);
- firstRun.should.have.a.property('status').that.deep.equals({
- statusCode: 'complete'
- });
-
- datastore.updatePosition(secondRunId, 0);
- var secondRun = datastore.get(secondRunId);
- secondRun.should.have.a.property('status').that.deep.equals({
- statusCode: 'running'
- });
-
- datastore.markAsFailed(secondRunId, 'Error message');
- secondRun = datastore.get(secondRunId);
- secondRun.should.have.a.property('status').that.deep.equals({
- statusCode: 'failed',
- error: 'Error message'
- });
-
- });
-
- it('should delete a run', function() {
- datastore.delete(firstRunId);
-
- var runs = datastore.list();
- runs.should.be.a('array');
- runs.should.have.length(1);
-
- runs[0].should.have.a.property('runId').that.equals(secondRunId);
- });
-});
diff --git a/test/api/runsQueueTest.js b/test/api/runsQueueTest.js
deleted file mode 100644
index df306cd5..00000000
--- a/test/api/runsQueueTest.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var should = require('chai').should();
-var runsQueue = require('../../lib/server/datastores/runsQueue');
-
-describe('runsQueue', function() {
-
- var queue = new runsQueue();
- var aaaRun = null;
- var bbbRun = null;
- var cccRun = null;
-
- it('should accept a new runId', function(done) {
- queue.should.have.a.property('push').that.is.a('function');
-
- aaaRun = queue.push('aaa');
- bbbRun = queue.push('bbb');
-
- aaaRun.then(function() {
- done();
- });
- });
-
- it('should return the right positions', function() {
- var aaaPosition = queue.getPosition('aaa');
- aaaPosition.should.equal(0);
- aaaRun.startingPosition.should.equal(0);
-
- var bbbPosition = queue.getPosition('bbb');
- bbbPosition.should.equal(1);
- bbbRun.startingPosition.should.equal(1);
-
- var cccPosition = queue.getPosition('ccc');
- cccPosition.should.equal(-1);
- });
-
- it('should refresh runs\' positions', function(done) {
- cccRun = queue.push('ccc');
-
- cccRun.progress(function(position) {
- position.should.equal(1);
-
- var positionDoubleCheck = queue.getPosition('ccc');
- positionDoubleCheck.should.equal(1);
-
- done();
- });
-
- queue.remove('aaa');
- });
-
- it('should fulfill the promise when first in the line', function(done) {
- cccRun.then(function() {
- done();
- });
-
- queue.remove('bbb');
- });
-
- it('should not keep removed runs', function() {
- var aaaPosition = queue.getPosition('aaa');
- aaaPosition.should.equal(-1);
-
- var bbbPosition = queue.getPosition('bbb');
- bbbPosition.should.equal(-1);
-
- var cccPosition = queue.getPosition('ccc');
- cccPosition.should.equal(0);
- });
-});
\ No newline at end of file
diff --git a/test/api/screenshotHandlerTest.js b/test/api/screenshotHandlerTest.js
deleted file mode 100644
index 82a77bd9..00000000
--- a/test/api/screenshotHandlerTest.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var should = require('chai').should();
-var ScreenshotHandler = require('../../lib/screenshotHandler');
-
-var fs = require('fs');
-var path = require('path');
-var rimraf = require('rimraf');
-
-describe('screenshotHandler', function() {
-
- var imagePath = path.join(__dirname, '../fixtures/logo-large.png');
- var screenshot, jimpImage;
-
-
- it('should open an image and return an jimp object', function(done) {
- ScreenshotHandler.openImage(imagePath)
- .then(function(image) {
- jimpImage = image;
-
- jimpImage.should.be.an('object');
- jimpImage.bitmap.width.should.equal(620);
- jimpImage.bitmap.height.should.equal(104);
-
- done();
- })
- .fail(function(err) {
- done(err);
- });
- });
-
-
- it('should resize an jimp image', function(done) {
- ScreenshotHandler.resizeImage(jimpImage, 310)
- .then(function(image) {
- jimpImage = image;
-
- jimpImage.bitmap.width.should.equal(310);
- jimpImage.bitmap.height.should.equal(52);
-
- done();
- })
- .fail(function(err) {
- done(err);
- });
- });
-
-
- it('should transform a jimp image into a buffer', function(done) {
- ScreenshotHandler.toBuffer(jimpImage)
- .then(function(buffer) {
- buffer.should.be.an.instanceof(Buffer);
- done();
- })
- .fail(function(err) {
- done(err);
- });
- });
-
-
- it('should create the tmp folder if it doesn\'t exist', function(done) {
- // Delete tmp folder if it exists
- rimraf.sync("/some/directory");
-
- // The function we want to test
- ScreenshotHandler.createTmpScreenshotFolder()
- .then(function(buffer) {
- fs.existsSync(path.join(__dirname, '../../tmp')).should.equal(true);
- done();
- })
- .fail(function(err) {
- done(err);
- });
- });
-
- it('should return the tmp folder path', function() {
- ScreenshotHandler.getTmpFileRelativePath().should.equal('tmp/temp-screenshot.png');
- });
-
-});
diff --git a/test/core/colorDiffTest.js b/test/core/colorDiffTest.js
index e8b7678f..0614b256 100644
--- a/test/core/colorDiffTest.js
+++ b/test/core/colorDiffTest.js
@@ -49,7 +49,7 @@ describe('colorDiff', function() {
{url:'file.css', value: {message: '#5bc0de (2 times)'}},
{url:'file.css', value: {message: 'rgba(0,0,0,0.075) (100 times)'}},
{url:'file.css', value: {message: 'rgb(91,192,222) (1000 times)'}},
- {url:'file.css', value: {message: 'rgba(0,0,2,1) (1 times)'}},
+ {url:'file.css', value: {message: 'rgba(0,0,1,1) (1 times)'}},
{url:'file.css', value: {message: 'rgba(99,99,99,1) (1 times)'}},
{url:'file.css', value: {message: 'rgba(100,100,100,1) (1 times)'}}
];
@@ -73,7 +73,7 @@ describe('colorDiff', function() {
newData.toolsResults.colorDiff.offenders.should.have.a.property('similarColors').that.deep.equals([
{
color1: '#000',
- color2: 'rgba(0,0,2,1)',
+ color2: 'rgba(0,0,1,1)',
isDark: true
},
{
diff --git a/test/core/customPoliciesTest.js b/test/core/customPoliciesTest.js
index 6d25ca93..be96ef82 100644
--- a/test/core/customPoliciesTest.js
+++ b/test/core/customPoliciesTest.js
@@ -76,114 +76,6 @@ describe('customPolicies', function() {
});
- it('should transform DOMqueriesAvoidable offenders', function() {
- results = rulesChecker.check({
- "toolsResults": {
- "phantomas": {
- "metrics": {
- "DOMqueriesAvoidable": 2
- },
- "offenders": {
- "DOMqueriesDuplicated": [
- "id \"#j2t-top-cart\" with getElementById (in context #document): 4 queries",
- "class \".listingResult\" with getElementsByClassName (in context body > div#Global > div#Listing): 4 queries"
- ]
- }
- }
- }
- }, policies);
-
- results.should.have.a.property('DOMqueriesAvoidable');
- results.DOMqueriesAvoidable.should.have.a.property('offendersObj').that.deep.equals({
- "count": 2,
- "list": [
- {
- "query": "#j2t-top-cart",
- "context": {
- "type": "document"
- },
- "fn": "getElementById ",
- "count": 4
- },
- {
- "query": ".listingResult",
- "context": {
- "type": "domElement",
- "element": "div#Listing",
- "tree": {
- "body": {
- "div#Global": {
- "div#Listing": 1
- }
- }
- }
- },
- "fn": "getElementsByClassName ",
- "count": 4
- }
- ]
- });
- });
-
-
- it('should transform jsErrors offenders', function() {
- results = rulesChecker.check({
- "toolsResults": {
- "phantomas": {
- "metrics": {
- "jsErrors": 2
- },
- "offenders": {
- "jsErrors": [
- "TypeError: 'undefined' is not a function (evaluating 'this.successfullyCollected.bind(this)') - http://asset.easydmp.net/js/collect.js:1160 / callCollecte http://asset.easydmp.net/js/collect.js:1203 / callbackUpdateParams http://asset.easydmp.net/js/collect.js:1135 / http://asset.easydmp.net/js/collect.js:1191",
- "TypeError: 'undefined' is not an object (evaluating 'd.readyState') - http://me.hunkal.com/p/:3"
- ]
- }
- }
- }
- }, policies);
-
- results.should.have.a.property('jsErrors');
- results.jsErrors.should.have.a.property('offendersObj').that.deep.equals({
- "count": 2,
- "list": [
- {
- "error": "TypeError: 'undefined' is not a function (evaluating 'this.successfullyCollected.bind(this)')",
- "backtrace": [
- {
- "file": "http://asset.easydmp.net/js/collect.js",
- "line": 1160
- },
- {
- "file": "http://asset.easydmp.net/js/collect.js",
- "line": 1203,
- "functionName": "callCollecte"
- },
- {
- "file": "http://asset.easydmp.net/js/collect.js",
- "line": 1135,
- "functionName": "callbackUpdateParams"
- },
- {
- "file": "http://asset.easydmp.net/js/collect.js",
- "line": 1191
- }
- ]
- },
- {
- "error": "TypeError: 'undefined' is not an object (evaluating 'd.readyState')",
- "backtrace": [
- {
- "file": "http://me.hunkal.com/p/",
- "line": 3
- }
- ]
- }
- ]
- });
- });
-
-
it('should grade correctly jQuery versions', function() {
var versions = {
@@ -208,7 +100,8 @@ describe('customPolicies', function() {
"phantomas": {
"metrics": {
"jQueryVersion": version
- }
+ },
+ "offenders": {}
}
}
}, policies);
@@ -222,11 +115,12 @@ describe('customPolicies', function() {
"phantomas": {
"metrics": {
"jQueryVersion": "wooot"
- }
+ },
+ "offenders": {}
}
}
}, policies);
- results.should.deep.equals({});
+ results.should.not.have.a.property('jQueryVersion');
// If jQueryVersionsLoaded is 0
@@ -236,7 +130,8 @@ describe('customPolicies', function() {
"metrics": {
"jQueryVersion": "1.6.0",
"jQueryVersionsLoaded": 0
- }
+ },
+ "offenders": {}
}
}
}, policies);
@@ -252,14 +147,15 @@ describe('customPolicies', function() {
"metrics": {
"jQueryVersion": "1.6.0",
"jQueryVersionsLoaded": 2
- }
+ },
+ "offenders": {}
}
}
}, policies);
results.should.not.have.a.property('jQueryVersion');
results.should.have.a.property('jQueryVersionsLoaded');
results.jQueryVersionsLoaded.should.have.a.property('score').that.equals(0);
- results.jQueryVersionsLoaded.should.have.a.property('abnormal').that.equals(true);
+ results.jQueryVersionsLoaded.should.have.a.property('abnormal').that.equals(false);
});
diff --git a/test/core/indexTest.js b/test/core/indexTest.js
index 68f51963..240614e8 100644
--- a/test/core/indexTest.js
+++ b/test/core/indexTest.js
@@ -12,13 +12,13 @@ chai.use(sinonChai);
describe('index.js', function() {
it('should return a promise', function() {
- var promise = ylt();
+ /*var promise = ylt();
promise.should.have.property('then').that.is.a('function');
- promise.should.have.property('fail').that.is.a('function');
+ promise.should.have.property('fail').that.is.a('function');*/
});
- it('should fail an undefined url', function(done) {
+ it('should fail with an undefined url', function(done) {
ylt().fail(function(err) {
err.should.be.a('string').that.equals('URL missing');
done();
@@ -50,7 +50,7 @@ describe('index.js', function() {
data.toolsResults.phantomas.should.be.an('object');
data.toolsResults.phantomas.should.have.a.property('url').that.equals(url);
data.toolsResults.phantomas.should.have.a.property('metrics').that.is.an('object');
- data.toolsResults.phantomas.metrics.should.have.a.property('requests').that.equals(1);
+ data.toolsResults.phantomas.metrics.should.have.a.property('requests').that.equals(2);
data.toolsResults.phantomas.should.have.a.property('offenders').that.is.an('object');
data.toolsResults.phantomas.offenders.should.have.a.property('DOMelementMaxDepth');
data.toolsResults.phantomas.offenders.DOMelementMaxDepth.should.have.length(2);
@@ -66,13 +66,14 @@ describe('index.js', function() {
"tool": "phantomas",
"label": "DOM max depth",
"message": "A deep DOM makes the CSS matching with DOM elements difficult.
It also slows down JavaScript modifications to the DOM because changing the dimensions of an element makes the browser re-calculate the dimensions of it's parents. Same thing for JavaScript events, that bubble up to the document root.
",
- "isOkThreshold": 12,
- "isBadThreshold": 22,
- "isAbnormalThreshold": 30,
+ "isOkThreshold": 15,
+ "isBadThreshold": 25,
+ "isAbnormalThreshold": 32,
"hasOffenders": true
},
"value": 1,
"bad": false,
+ "globalScoreIfFixed": 98,
"abnormal": false,
"score": 100,
"abnormalityScore": 0,
@@ -90,10 +91,10 @@ describe('index.js', function() {
/*jshint expr: true*/
console.log.should.not.have.been.called;
- console.log.restore();
+ //console.log.restore();
done();
}).fail(function(err) {
- console.log.restore();
+ //console.log.restore();
done(err);
});
});
@@ -105,6 +106,7 @@ describe('index.js', function() {
ylt(url)
.then(function(data) {
+ console.log(data.toolsResults.phantomas.offenders.jsErrors);
data.toolsResults.phantomas.metrics.should.have.a.property('jsErrors').that.equals(0);
done();
}).fail(function(err) {
@@ -119,6 +121,10 @@ describe('index.js', function() {
var url = 'http://localhost:8388/simple-page.html';
var screenshotPath = path.join(__dirname, '../../.tmp/indexTestScreenshot.png');
+ if (!fs.existsSync(path.join(__dirname, '../../.tmp'))){
+ fs.mkdirSync(path.join(__dirname, '../../.tmp'));
+ }
+
ylt(url, {screenshot: screenshotPath})
.then(function(data) {
@@ -130,6 +136,8 @@ describe('index.js', function() {
done();
}).fail(function(err) {
done(err);
+ }).finally(function() {
+
});
});
diff --git a/test/core/isHttp2Test.js b/test/core/isHttp2Test.js
deleted file mode 100644
index 1ace12ef..00000000
--- a/test/core/isHttp2Test.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var should = require('chai').should();
-var isHttp2 = require('../../lib/tools/isHttp2');
-
-describe('isHttp2', function() {
-
- it('should parse the protocol correctly', function() {
- isHttp2.getProtocol({
- toolsResults: {
- phantomas: {
- url: 'http://www.yahoo.com'
- }
- }
- }).should.equal('http:');
-
-
- isHttp2.getProtocol({
- toolsResults: {
- phantomas: {
- url: 'https://www.yahoo.com'
- }
- }
- }).should.equal('https:');
- });
-
- it('should parse the domain correctly', function() {
- isHttp2.getDomain({
- toolsResults: {
- phantomas: {
- url: 'http://www.yahoo.com'
- }
- }
- }).should.equal('www.yahoo.com');
-
-
- isHttp2.getDomain({
- toolsResults: {
- phantomas: {
- url: 'https://www.yahoo.com'
- }
- }
- }).should.equal('www.yahoo.com');
- });
-
- it('should have a function checkHttp2', function() {
- isHttp2.should.have.a.property('checkHttp2').that.is.a('function');
- });
-
-});
diff --git a/test/core/redownloadTest.js b/test/core/redownloadTest.js
index c1964b41..b5d858e5 100644
--- a/test/core/redownloadTest.js
+++ b/test/core/redownloadTest.js
@@ -82,16 +82,9 @@ describe('redownload', function() {
data.toolsResults.redownload.offenders.totalWeight.byType.image.requests.length.should.equal(2);
data.toolsResults.redownload.offenders.totalWeight.byType.other.requests.length.should.equal(1);
- data.toolsResults.redownload.offenders.should.have.a.property('imageOptimization');
- data.toolsResults.redownload.offenders.imageOptimization.totalGain.should.be.above(0);
- data.toolsResults.redownload.offenders.imageOptimization.images.length.should.equal(2);
-
- data.toolsResults.redownload.offenders.should.have.a.property('imagesTooLarge');
- data.toolsResults.redownload.offenders.imagesTooLarge.length.should.equal(0);
-
- data.toolsResults.redownload.offenders.should.have.a.property('gzipCompression');
- data.toolsResults.redownload.offenders.gzipCompression.totalGain.should.be.above(0);
- data.toolsResults.redownload.offenders.gzipCompression.files.length.should.equal(5);
+ data.toolsResults.redownload.offenders.should.have.a.property('compression');
+ data.toolsResults.redownload.offenders.compression.totalGain.should.be.above(0);
+ data.toolsResults.redownload.offenders.compression.files.length.should.equal(5);
data.toolsResults.redownload.offenders.should.have.a.property('fileMinification');
data.toolsResults.redownload.offenders.fileMinification.totalGain.should.be.above(0);
@@ -224,7 +217,8 @@ describe('redownload', function() {
},
status: 302,
isHTML: true,
- contentLength: 999
+ contentLength: 999,
+ notFound: true
};
redownload.redownloadEntry(entry)
diff --git a/test/gatling/README.md b/test/gatling/README.md
deleted file mode 100644
index a15c7cad..00000000
--- a/test/gatling/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Stress tests with Gatling
-
-[Gatling](http://gatling.io/) is an open source stress test tool
-
-Objective: 500 simultaneous users on the website
-
-The YLTWebInterfaceSimulation.scala file is a scenario simulating a user coming on the web page and launching a run.
-
diff --git a/test/gatling/YLTWebInterfaceSimulation.scala b/test/gatling/YLTWebInterfaceSimulation.scala
deleted file mode 100644
index 4f2393b3..00000000
--- a/test/gatling/YLTWebInterfaceSimulation.scala
+++ /dev/null
@@ -1,42 +0,0 @@
-package computerdatabase // 1
-
-import io.gatling.core.Predef._ // 2
-import io.gatling.http.Predef._
-import scala.concurrent.duration._
-
-class YLTWebInterfaceSimulation extends Simulation {
-
- val httpConf = http
- .baseURL("http://localhost:8383")
- .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
- .doNotTrackHeader("1")
- .acceptLanguageHeader("en-US,en;q=0.5")
- .acceptEncodingHeader("gzip, deflate")
- .userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0")
-
- val scn = scenario("YLTWebInterfaceSimulation")
- .exec(http("home page")
- .get("/")
- )
- .exec(http("static asset")
- .get("/front/fonts/icons.woff")
- )
- .pause(100 milliseconds)
- .exec(http("launch run")
- .post("/api/runs")
- .body(StringBody("""{ "url": "http://www.google.com", "waitForResponse":false }""")).asJSON
- )
- .repeat(10, "loop") {
- exec(http("get status")
- .get("/api/runs/dzlqsahu8d")
- )
- .pause(2000 milliseconds)
- }
- .exec(http("get result")
- .get("/api/results/dzlqsahu8d")
- )
-
- setUp(
- scn.inject(rampUsers(1000) over(60 seconds))
- ).protocols(httpConf)
-}
\ No newline at end of file
diff --git a/test/www/try-catch.html b/test/www/try-catch.html
index cbac9679..e7f315db 100644
--- a/test/www/try-catch.html
+++ b/test/www/try-catch.html
@@ -9,6 +9,7 @@
document.getElementById(undefined);
document.getElementsByClassName(undefined);
document.getElementsByTagName(undefined);
+ document.querySelector(undefined);
} catch(err) {
console.log('Error found: ' + err);
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index 3150b2a0..00000000
--- a/yarn.lock
+++ /dev/null
@@ -1,8050 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393"
- integrity sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg==
- dependencies:
- type-detect "4.0.8"
-
-"@sinonjs/formatio@^3.2.1":
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c"
- integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==
- dependencies:
- "@sinonjs/commons" "^1"
- "@sinonjs/samsam" "^3.1.0"
-
-"@sinonjs/samsam@^3.1.0":
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a"
- integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==
- dependencies:
- "@sinonjs/commons" "^1.3.0"
- array-from "^2.1.1"
- lodash "^4.17.15"
-
-"@sinonjs/text-encoding@^0.7.1":
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
- integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
-
-"@types/q@^1.5.1":
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
- integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
-
-CSSselect@0.x:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/CSSselect/-/CSSselect-0.7.0.tgz#e4054c67b467465f3c9500c0da0aa7878c4babd2"
- integrity sha1-5AVMZ7RnRl88lQDA2gqnh4xLq9I=
- dependencies:
- CSSwhat "0.4"
- boolbase "~1.0.0"
- domutils "1.4"
- nth-check "~1.0.0"
-
-CSSwhat@0.4:
- version "0.4.7"
- resolved "https://registry.yarnpkg.com/CSSwhat/-/CSSwhat-0.4.7.tgz#867da0ff39f778613242c44cfea83f0aa4ebdf9b"
- integrity sha1-hn2g/zn3eGEyQsRM/qg/CqTr35s=
-
-abbrev@1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
- integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-
-accepts@~1.2.12, accepts@~1.2.13:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.2.13.tgz#e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea"
- integrity sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=
- dependencies:
- mime-types "~2.1.6"
- negotiator "0.5.3"
-
-accepts@~1.3.0, accepts@~1.3.4:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
- integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
- dependencies:
- mime-types "~2.1.24"
- negotiator "0.6.2"
-
-acorn@^5.0.0:
- version "5.7.3"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
- integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
-
-agent-base@4:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
- integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==
- dependencies:
- es6-promisify "^5.0.0"
-
-ajv@^4.9.1:
- version "4.11.8"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
- integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=
- dependencies:
- co "^4.6.0"
- json-stable-stringify "^1.0.1"
-
-ajv@^5.1.0:
- version "5.5.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
- integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
- dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.3.0"
-
-ajv@^6.5.5:
- version "6.10.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
- integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
- dependencies:
- fast-deep-equal "^2.0.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
-
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
- integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
-
-analyze-css@^0.12.5:
- version "0.12.7"
- resolved "https://registry.yarnpkg.com/analyze-css/-/analyze-css-0.12.7.tgz#2c1e387c5c4789313e331711d8c842cd2b673f72"
- integrity sha512-UAuqBMSxqoXyWXvEsrjLBD1U1sylyl8S2EBTWgRq7Od3odN6Wu51RvEci731ln5szOZ6yJijWtE2H6eQQk54Dg==
- dependencies:
- cli "^1.0.1"
- css "^2.2.4"
- css-shorthand-properties "^1.1.1"
- debug "^4.1.1"
- fast-stats "0.0.5"
- glob "^7.1.3"
- http-proxy-agent "^2.1.0"
- node-fetch "^2.3.0"
- onecolor "^3.1.0"
- optimist "0.6.x"
- slick "~1.12.1"
- specificity "^0.4.1"
-
-angular-animate@1.6.8:
- version "1.6.8"
- resolved "https://registry.yarnpkg.com/angular-animate/-/angular-animate-1.6.8.tgz#f38554c9c68770c9588b39c49920bc24e0d6f98a"
- integrity sha512-zKaq9vtJ+QPV6q159mJkb6uKa3SiTe0PXj+W9WO3cDhLly8LuQHYRteAAD3/SqlS7GMq2SFlJvs7VQduPJpUQw==
-
-angular-chart.js@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/angular-chart.js/-/angular-chart.js-1.1.1.tgz#49f0e18d081762b6d4c9791e487aff2fbb30f5ae"
- integrity sha1-SfDhjQgXYrbUyXkeSHr/L7sw9a4=
- dependencies:
- angular "1.x"
- chart.js "2.3.x"
-
-angular-local-storage@0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/angular-local-storage/-/angular-local-storage-0.7.1.tgz#fbd2730763c29fa9af5725e0186c780621e8cdd2"
- integrity sha1-+9JzB2PCn6mvVyXgGGx4BiHozdI=
-
-angular-resource@1.6.8:
- version "1.6.8"
- resolved "https://registry.yarnpkg.com/angular-resource/-/angular-resource-1.6.8.tgz#cc2172f8ec4a3a8340c43c600a5fed543e4168af"
- integrity sha512-Vx97FiunDEWlrKFwaSH3O8/S7krWarWme1Tj88a58EJSD2RSGgHPvbD4YXvzZHk9yqitUr/t1f+6UzYLge5o/g==
-
-angular-route@1.6.8:
- version "1.6.8"
- resolved "https://registry.yarnpkg.com/angular-route/-/angular-route-1.6.8.tgz#82ace773e7b232bf77768370760244a8caab5d36"
- integrity sha512-6PlZVc9SRkzYdinL8urilbA/6RmbKdaGrgAKWo2XXgblOHLxguWcYcqYXPUdlMVbMYZuubI+OzTXMa2zol18AQ==
-
-angular-sanitize@1.6.8:
- version "1.6.8"
- resolved "https://registry.yarnpkg.com/angular-sanitize/-/angular-sanitize-1.6.8.tgz#68175a1a5853a6439fffcb251a88a538a44a8e70"
- integrity sha512-XUYxWgPwwT+DGIMzmMBMSwJbYt5g6yMiu5Pq2GIW9EuO+PBNhL4xAf8qU7b2HfH/PwM4VY5NpIa25EoKDdgXAA==
-
-angular@1.6.8:
- version "1.6.8"
- resolved "https://registry.yarnpkg.com/angular/-/angular-1.6.8.tgz#5be378a58be91a5489e78b59c4518cd9fd273ffb"
- integrity sha512-9WErZIOw1Cu1V5Yxdvxz/6YpND8ntdP71fdPpufPFJvZodZXqCjQBYrHqEoMZreO5i84O3D/Jw/vepoFt68Azw==
-
-angular@1.x:
- version "1.7.9"
- resolved "https://registry.yarnpkg.com/angular/-/angular-1.7.9.tgz#e52616e8701c17724c3c238cfe4f9446fd570bc4"
- integrity sha512-5se7ZpcOtu0MBFlzGv5dsM1quQDoDeUTwZrWjGtTNA7O88cD8TEk5IEKCTDa3uECV9XnvKREVUr7du1ACiWGFQ==
-
-ansi-gray@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
- integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-regex@^2.0.0, ansi-regex@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
- integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
- integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
- integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
-
-ansi-styles@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
-ansi-wrap@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
- integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
-
-ansicolors@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"
- integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=
-
-ansistyles@^0.1.3, ansistyles@~0.1.0:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539"
- integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=
-
-applause@1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/applause/-/applause-1.2.2.tgz#a8468579e81f67397bb5634c29953bedcd0f56c0"
- integrity sha1-qEaFeegfZzl7tWNMKZU77c0PVsA=
- dependencies:
- cson-parser "^1.1.0"
- js-yaml "^3.3.0"
- lodash "^3.10.0"
-
-aproba@^1.0.3:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
- integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-
-archive-type@^3.0.0, archive-type@^3.0.1:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6"
- integrity sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=
- dependencies:
- file-type "^3.1.0"
-
-are-we-there-yet@~1.1.2:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
- integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
- dependencies:
- delegates "^1.0.0"
- readable-stream "^2.0.6"
-
-argh@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/argh/-/argh-0.1.4.tgz#3eb4d612973fc6b6dc6ef338f56f759f2ac5c3a6"
- integrity sha1-PrTWEpc/xrbcbvM49W91nyrFw6Y=
-
-argparse@^1.0.3, argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-"argparse@~ 0.1.11", "argparse@~ 0.1.15", argparse@~0.1.15:
- version "0.1.16"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c"
- integrity sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=
- dependencies:
- underscore "~1.7.0"
- underscore.string "~2.4.0"
-
-arr-diff@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
- integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
- dependencies:
- arr-flatten "^1.0.1"
-
-arr-diff@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
- integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-
-arr-flatten@^1.0.1, arr-flatten@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
- integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
-
-arr-union@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
- integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
-
-array-differ@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
- integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=
-
-array-find-index@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
- integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
-
-array-flatten@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
- integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
-
-array-from@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
- integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=
-
-array-union@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
- integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
- dependencies:
- array-uniq "^1.0.1"
-
-array-uniq@^1.0.0, array-uniq@^1.0.1, array-uniq@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
- integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-
-array-unique@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
- integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
-
-array-unique@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
- integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-
-asap@~2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
- integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
-
-ascii-table@0.0.9:
- version "0.0.9"
- resolved "https://registry.yarnpkg.com/ascii-table/-/ascii-table-0.0.9.tgz#06a6604d6a55d4bf41a9a47d9872d7a78da31e73"
- integrity sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM=
-
-asn1@~0.2.3:
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
- integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
- dependencies:
- safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
- integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
-
-assert-plus@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
- integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ=
-
-assertion-error@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
- integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
-
-assign-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
- integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
-
-ast-transform@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/ast-transform/-/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062"
- integrity sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=
- dependencies:
- escodegen "~1.2.0"
- esprima "~1.0.4"
- through "~2.3.4"
-
-ast-types@^0.7.0:
- version "0.7.8"
- resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9"
- integrity sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=
-
-async-each-series@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-1.1.0.tgz#f42fd8155d38f21a5b8ea07c28e063ed1700b138"
- integrity sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=
-
-async@2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
- integrity sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==
- dependencies:
- lodash "^4.14.0"
-
-async@^1.5.0, async@^1.5.2, async@~1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
- integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
-
-async@^2.0.0, async@^2.1.5, async@^2.4.0:
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
- integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
- dependencies:
- lodash "^4.17.14"
-
-async@~0.1.22:
- version "0.1.22"
- resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061"
- integrity sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=
-
-async@~0.2.9:
- version "0.2.10"
- resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
- integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E=
-
-async@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9"
- integrity sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=
-
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
- integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
-
-atob@^2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
- integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-
-aws-sign2@~0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
- integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8=
-
-aws-sign2@~0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
- integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
-
-aws4@^1.2.1, aws4@^1.6.0, aws4@^1.8.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c"
- integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==
-
-b3b@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/b3b/-/b3b-0.0.1.tgz#ff69f8a58d891ac732b20175e47546799754ef9b"
- integrity sha1-/2n4pY2JGscysgF15HVGeZdU75s=
-
-babel-runtime@^6.11.6:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
- integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.11.0"
-
-balanced-match@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
- integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-
-base64-js@^1.1.2, base64-js@^1.3.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
- integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
-
-base64-url@1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/base64-url/-/base64-url-1.2.1.tgz#199fd661702a0e7b7dcae6e0698bb089c52f6d78"
- integrity sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=
-
-base@^0.11.1:
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
- integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
- dependencies:
- cache-base "^1.0.1"
- class-utils "^0.3.5"
- component-emitter "^1.2.1"
- define-property "^1.0.0"
- isobject "^3.0.1"
- mixin-deep "^1.2.0"
- pascalcase "^0.1.1"
-
-basic-auth-connect@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz#fdb0b43962ca7b40456a7c2bb48fe173da2d2122"
- integrity sha1-/bC0OWLKe0BFanwrtI/hc9otISI=
-
-basic-auth@~1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.0.4.tgz#030935b01de7c9b94a824b29f3fccb750d3a5290"
- integrity sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=
-
-batch@0.5.3:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464"
- integrity sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=
-
-bcrypt-pbkdf@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
- integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
- dependencies:
- tweetnacl "^0.14.3"
-
-beeper@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
- integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=
-
-bignumber.js@^2.1.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"
- integrity sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg=
-
-bin-build@^2.0.0, bin-build@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-2.2.0.tgz#11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc"
- integrity sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=
- dependencies:
- archive-type "^3.0.1"
- decompress "^3.0.0"
- download "^4.1.2"
- exec-series "^1.0.0"
- rimraf "^2.2.6"
- tempfile "^1.0.0"
- url-regex "^3.0.0"
-
-bin-check@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-2.0.0.tgz#86f8e6f4253893df60dc316957f5af02acb05930"
- integrity sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=
- dependencies:
- executable "^1.0.0"
-
-bin-version-check@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-2.1.0.tgz#e4e5df290b9069f7d111324031efc13fdd11a5b0"
- integrity sha1-5OXfKQuQaffRETJAMe/BP90RpbA=
- dependencies:
- bin-version "^1.0.0"
- minimist "^1.1.0"
- semver "^4.0.3"
- semver-truncate "^1.0.0"
-
-bin-version@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-1.0.4.tgz#9eb498ee6fd76f7ab9a7c160436f89579435d78e"
- integrity sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=
- dependencies:
- find-versions "^1.0.0"
-
-bin-wrapper@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-3.0.2.tgz#67d3306262e4b1a5f2f88ee23464f6a655677aeb"
- integrity sha1-Z9MwYmLksaXy+I7iNGT2plVneus=
- dependencies:
- bin-check "^2.0.0"
- bin-version-check "^2.1.0"
- download "^4.0.0"
- each-async "^1.1.1"
- lazy-req "^1.0.0"
- os-filter-obj "^1.0.0"
-
-bindings@^1.2.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
- integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
- dependencies:
- file-uri-to-path "1.0.0"
-
-bl@^1.0.0:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
- integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==
- dependencies:
- readable-stream "^2.3.5"
- safe-buffer "^5.1.1"
-
-block-stream@*:
- version "0.0.9"
- resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
- integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
- dependencies:
- inherits "~2.0.0"
-
-bmp-js@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a"
- integrity sha1-ZBE+nHzxICs3btYHvzBibr5XsYo=
-
-body-parser@1.18.2:
- version "1.18.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
- integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=
- dependencies:
- bytes "3.0.0"
- content-type "~1.0.4"
- debug "2.6.9"
- depd "~1.1.1"
- http-errors "~1.6.2"
- iconv-lite "0.4.19"
- on-finished "~2.3.0"
- qs "6.5.1"
- raw-body "2.3.2"
- type-is "~1.6.15"
-
-body-parser@~1.13.3:
- version "1.13.3"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.13.3.tgz#c08cf330c3358e151016a05746f13f029c97fa97"
- integrity sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=
- dependencies:
- bytes "2.1.0"
- content-type "~1.0.1"
- debug "~2.2.0"
- depd "~1.0.1"
- http-errors "~1.3.1"
- iconv-lite "0.4.11"
- on-finished "~2.3.0"
- qs "4.0.0"
- raw-body "~2.1.2"
- type-is "~1.6.6"
-
-body-parser@~1.14.0:
- version "1.14.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.14.2.tgz#1015cb1fe2c443858259581db53332f8d0cf50f9"
- integrity sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=
- dependencies:
- bytes "2.2.0"
- content-type "~1.0.1"
- debug "~2.2.0"
- depd "~1.1.0"
- http-errors "~1.3.1"
- iconv-lite "0.4.13"
- on-finished "~2.3.0"
- qs "5.2.0"
- raw-body "~2.1.5"
- type-is "~1.6.10"
-
-boolbase@^1.0.0, boolbase@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
- integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
-
-boom@2.x.x:
- version "2.10.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
- integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=
- dependencies:
- hoek "2.x.x"
-
-boom@4.x.x:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
- integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE=
- dependencies:
- hoek "4.x.x"
-
-boom@5.x.x:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
- integrity sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==
- dependencies:
- hoek "4.x.x"
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-braces@^1.8.2:
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
- integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
- dependencies:
- expand-range "^1.8.1"
- preserve "^0.2.0"
- repeat-element "^1.1.2"
-
-braces@^2.3.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
- integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
- dependencies:
- arr-flatten "^1.1.0"
- array-unique "^0.3.2"
- extend-shallow "^2.0.1"
- fill-range "^4.0.0"
- isobject "^3.0.1"
- repeat-element "^1.1.2"
- snapdragon "^0.8.1"
- snapdragon-node "^2.0.1"
- split-string "^3.0.2"
- to-regex "^3.0.1"
-
-brfs@^1.4.0:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/brfs/-/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3"
- integrity sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==
- dependencies:
- quote-stream "^1.0.1"
- resolve "^1.1.5"
- static-module "^2.2.0"
- through2 "^2.0.0"
-
-brotli@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.2.tgz#525a9cad4fcba96475d7d388f6aecb13eed52f46"
- integrity sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=
- dependencies:
- base64-js "^1.1.2"
-
-browser-resolve@^1.8.1:
- version "1.11.3"
- resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
- integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==
- dependencies:
- resolve "1.1.7"
-
-browser-stdout@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
- integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8=
-
-browserify-optional@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/browserify-optional/-/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869"
- integrity sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=
- dependencies:
- ast-transform "0.0.0"
- ast-types "^0.7.0"
- browser-resolve "^1.8.1"
-
-browserify-zlib@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
- integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=
- dependencies:
- pako "~0.2.0"
-
-buffer-alloc-unsafe@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
- integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
-
-buffer-alloc@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
- integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
- dependencies:
- buffer-alloc-unsafe "^1.1.0"
- buffer-fill "^1.0.0"
-
-buffer-crc32@~0.2.3:
- version "0.2.13"
- resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
- integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
-
-buffer-equal@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
- integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
-
-buffer-fill@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
- integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
-
-buffer-from@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0"
- integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==
-
-buffer-from@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
- integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
-
-buffer-to-vinyl@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262"
- integrity sha1-APFfruOreh3aLN5tkSG//dB7ImI=
- dependencies:
- file-type "^3.1.0"
- readable-stream "^2.0.2"
- uuid "^2.0.1"
- vinyl "^1.0.0"
-
-bufferstreams@^1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/bufferstreams/-/bufferstreams-1.1.3.tgz#a8515ac024fa90e8fa7d58c11b13dea1f28abe72"
- integrity sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==
- dependencies:
- readable-stream "^2.0.2"
-
-bytes@2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.1.0.tgz#ac93c410e2ffc9cc7cf4b464b38289067f5e47b4"
- integrity sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=
-
-bytes@2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.2.0.tgz#fd35464a403f6f9117c2de3609ecff9cae000588"
- integrity sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=
-
-bytes@2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339"
- integrity sha1-fZcZb51br39pNeJZhVSe3SpsIzk=
-
-bytes@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
- integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
-
-cache-base@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
- integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
- dependencies:
- collection-visit "^1.0.0"
- component-emitter "^1.2.1"
- get-value "^2.0.6"
- has-value "^1.0.0"
- isobject "^3.0.1"
- set-value "^2.0.0"
- to-object-path "^0.3.0"
- union-value "^1.0.0"
- unset-value "^1.0.0"
-
-camel-case@3.0.x:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
- integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
- dependencies:
- no-case "^2.2.0"
- upper-case "^1.1.1"
-
-camelcase-keys@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
- integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
- dependencies:
- camelcase "^2.0.0"
- map-obj "^1.0.0"
-
-camelcase@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
- integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
-
-camelcase@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
- integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
-
-capture-stack-trace@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
- integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==
-
-caseless@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
- integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c=
-
-caseless@~0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
- integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-
-caw@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/caw/-/caw-1.2.0.tgz#ffb226fe7efc547288dc62ee3e97073c212d1034"
- integrity sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=
- dependencies:
- get-proxy "^1.0.1"
- is-obj "^1.0.0"
- object-assign "^3.0.0"
- tunnel-agent "^0.4.0"
-
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
-chai@~4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
- integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=
- dependencies:
- assertion-error "^1.0.1"
- check-error "^1.0.1"
- deep-eql "^3.0.0"
- get-func-name "^2.0.0"
- pathval "^1.0.0"
- type-detect "^4.0.0"
-
-chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@~1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-chalk@^2.4.1, chalk@~2.4.1:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
-charenc@~0.0.1:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
- integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
-
-chart.js@2.3.x:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.3.0.tgz#40460e48e2c417c05fc3325cd84f7b000dc7d7d6"
- integrity sha1-QEYOSOLEF8BfwzJc2E97AA3H19Y=
- dependencies:
- chartjs-color "^2.0.0"
- moment "^2.10.6"
-
-chart.js@2.7.1:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.7.1.tgz#ae90b4aa4ff1f02decd6b1a2a8dabfd73c9f9886"
- integrity sha512-pX1oQAY86MiuyZ2hY593Acbl4MLHKrBBhhmZ1YqSadzQbbsBE2rnd6WISoHjIsdf0WDeC0hbePYCz2ZxkV8L+g==
- dependencies:
- chartjs-color "~2.2.0"
- moment "~2.18.0"
-
-chartjs-color-string@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz#8d3752d8581d86687c35bfe2cb80ac5213ceb8c1"
- integrity sha512-amWNvCOXlOUYxZVDSa0YOab5K/lmEhbFNKI55PWc4mlv28BDzA7zaoQTGxSBgJMHIW+hGX8YUrvw/FH4LyhwSQ==
- dependencies:
- color-name "^1.0.0"
-
-chartjs-color-string@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71"
- integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==
- dependencies:
- color-name "^1.0.0"
-
-chartjs-color@^2.0.0:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0"
- integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==
- dependencies:
- chartjs-color-string "^0.6.0"
- color-convert "^1.9.3"
-
-chartjs-color@~2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.2.0.tgz#84a2fb755787ed85c39dd6dd8c7b1d88429baeae"
- integrity sha1-hKL7dVeH7YXDndbdjHsdiEKbrq4=
- dependencies:
- chartjs-color-string "^0.5.0"
- color-convert "^0.5.3"
-
-check-error@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
- integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
-
-cheerio-select@*:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-0.0.3.tgz#3f2420114f3ccb0b1b075c245ccfaae5d617a388"
- integrity sha1-PyQgEU88ywsbB1wkXM+q5dYXo4g=
- dependencies:
- CSSselect "0.x"
-
-cheerio@~0.12.4:
- version "0.12.4"
- resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.12.4.tgz#c199626e9e1eb0d4233a91a4793e7f8aaa69a18b"
- integrity sha1-wZlibp4esNQjOpGkeT5/iqppoYs=
- dependencies:
- cheerio-select "*"
- entities "0.x"
- htmlparser2 "3.1.4"
- underscore "~1.4"
-
-clap@^1.0.9:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
- integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==
- dependencies:
- chalk "^1.1.3"
-
-class-utils@^0.3.5:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
- integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
- dependencies:
- arr-union "^3.1.0"
- define-property "^0.2.5"
- isobject "^3.0.0"
- static-extend "^0.1.1"
-
-clean-css@4.1.9:
- version "4.1.9"
- resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301"
- integrity sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=
- dependencies:
- source-map "0.5.x"
-
-clean-css@4.2.x:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17"
- integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==
- dependencies:
- source-map "~0.6.0"
-
-clean-css@~4.1.1:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a"
- integrity sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=
- dependencies:
- source-map "0.5.x"
-
-cli-color@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f"
- integrity sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==
- dependencies:
- ansi-regex "^2.1.1"
- d "1"
- es5-ext "^0.10.46"
- es6-iterator "^2.0.3"
- memoizee "^0.4.14"
- timers-ext "^0.1.5"
-
-cli@^1.0.1, cli@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14"
- integrity sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=
- dependencies:
- exit "0.1.2"
- glob "^7.1.1"
-
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
-clone-stats@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
- integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=
-
-clone@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"
- integrity sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=
-
-clone@^1.0.0, clone@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
- integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
-
-co@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78"
- integrity sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
- integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-
-coa@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
- integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
- dependencies:
- "@types/q" "^1.5.1"
- chalk "^2.4.1"
- q "^1.1.2"
-
-coa@~1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
- integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=
- dependencies:
- q "^1.1.2"
-
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
- integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
-coffee-script@^1.10.0:
- version "1.12.7"
- resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53"
- integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==
-
-coffee-script@~1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.3.3.tgz#150d6b4cb522894369efed6a2101c20bc7f4a4f4"
- integrity sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=
-
-coffeescript@~1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.10.0.tgz#e7aa8301917ef621b35d8a39f348dcdd1db7e33e"
- integrity sha1-56qDAZF+9iGzXYo580jc3R234z4=
-
-collection-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
- integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
- dependencies:
- map-visit "^1.0.0"
- object-visit "^1.0.0"
-
-color-convert@^0.5.3, color-convert@~0.5.0:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd"
- integrity sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=
-
-color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
-
-color-diff@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/color-diff/-/color-diff-1.1.0.tgz#983ae7f936679e94e365dfe44a16aa153bdae88e"
- integrity sha1-mDrn+TZnnpTjZd/kShaqFTva6I4=
-
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-
-color-name@^1.0.0:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-color-string@^1.5.2:
- version "1.5.3"
- resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
- integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
- dependencies:
- color-name "^1.0.0"
- simple-swizzle "^0.2.2"
-
-color-support@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
- integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
-
-color@3.0.x:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
- integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==
- dependencies:
- color-convert "^1.9.1"
- color-string "^1.5.2"
-
-colornames@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96"
- integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y=
-
-colors@1.0.x:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
- integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
-
-colors@~0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc"
- integrity sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=
-
-colors@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
- integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
-
-colorspace@1.1.x:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5"
- integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==
- dependencies:
- color "3.0.x"
- text-hex "1.0.x"
-
-combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.5, combined-stream@~1.0.6:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
- integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
- dependencies:
- delayed-stream "~1.0.0"
-
-commander@2.11.0:
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
- integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==
-
-commander@2.17.x:
- version "2.17.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
- integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
-
-commander@^2.9.0:
- version "2.20.3"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
- integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-
-commander@~2.15.0:
- version "2.15.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
- integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
-
-commander@~2.19.0:
- version "2.19.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
- integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
-
-commander@~2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
- integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=
- dependencies:
- graceful-readlink ">= 1.0.0"
-
-component-emitter@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
- integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
-compressible@~2.0.11, compressible@~2.0.5:
- version "2.0.17"
- resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1"
- integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==
- dependencies:
- mime-db ">= 1.40.0 < 2"
-
-compression@1.7.1:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db"
- integrity sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=
- dependencies:
- accepts "~1.3.4"
- bytes "3.0.0"
- compressible "~2.0.11"
- debug "2.6.9"
- on-headers "~1.0.1"
- safe-buffer "5.1.1"
- vary "~1.1.2"
-
-compression@~1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/compression/-/compression-1.5.2.tgz#b03b8d86e6f8ad29683cba8df91ddc6ffc77b395"
- integrity sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=
- dependencies:
- accepts "~1.2.12"
- bytes "2.1.0"
- compressible "~2.0.5"
- debug "~2.2.0"
- on-headers "~1.0.0"
- vary "~1.0.1"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
-concat-stream@1.6.2, concat-stream@^1.4.1, concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@~1.6.0:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
- integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
- dependencies:
- buffer-from "^1.0.0"
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
-connect-livereload@^0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/connect-livereload/-/connect-livereload-0.4.1.tgz#0f8a1a816bc9baffae4637ccea917462fe35917a"
- integrity sha1-D4oagWvJuv+uRjfM6pF0Yv41kXo=
-
-connect-timeout@~1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/connect-timeout/-/connect-timeout-1.6.2.tgz#de9a5ec61e33a12b6edaab7b5f062e98c599b88e"
- integrity sha1-3ppexh4zoStu2qt7XwYumMWZuI4=
- dependencies:
- debug "~2.2.0"
- http-errors "~1.3.1"
- ms "0.7.1"
- on-headers "~1.0.0"
-
-connect@^2.15.0:
- version "2.30.2"
- resolved "https://registry.yarnpkg.com/connect/-/connect-2.30.2.tgz#8da9bcbe8a054d3d318d74dfec903b5c39a1b609"
- integrity sha1-jam8vooFTT0xjXTf7JA7XDmhtgk=
- dependencies:
- basic-auth-connect "1.0.0"
- body-parser "~1.13.3"
- bytes "2.1.0"
- compression "~1.5.2"
- connect-timeout "~1.6.2"
- content-type "~1.0.1"
- cookie "0.1.3"
- cookie-parser "~1.3.5"
- cookie-signature "1.0.6"
- csurf "~1.8.3"
- debug "~2.2.0"
- depd "~1.0.1"
- errorhandler "~1.4.2"
- express-session "~1.11.3"
- finalhandler "0.4.0"
- fresh "0.3.0"
- http-errors "~1.3.1"
- method-override "~2.3.5"
- morgan "~1.6.1"
- multiparty "3.3.2"
- on-headers "~1.0.0"
- parseurl "~1.3.0"
- pause "0.1.0"
- qs "4.0.0"
- response-time "~2.3.1"
- serve-favicon "~2.3.0"
- serve-index "~1.7.2"
- serve-static "~1.10.0"
- type-is "~1.6.6"
- utils-merge "1.0.0"
- vhost "~3.0.1"
-
-connected-domain@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/connected-domain/-/connected-domain-1.0.0.tgz#bfe77238c74be453a79f0cb6058deeb4f2358e93"
- integrity sha1-v+dyOMdL5FOnnwy2BY3utPI1jpM=
-
-console-browserify@1.1.x:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
- integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
- dependencies:
- date-now "^0.1.4"
-
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
- integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
-
-console-stream@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44"
- integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=
-
-content-disposition@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
- integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=
-
-content-type@~1.0.1, content-type@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
- integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-
-convert-source-map@^1.0.0, convert-source-map@^1.1.1, convert-source-map@^1.5.1:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
- integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
- dependencies:
- safe-buffer "~5.1.1"
-
-cookie-parser@~1.3.5:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.3.5.tgz#9d755570fb5d17890771227a02314d9be7cf8356"
- integrity sha1-nXVVcPtdF4kHcSJ6AjFNm+fPg1Y=
- dependencies:
- cookie "0.1.3"
- cookie-signature "1.0.6"
-
-cookie-signature@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
- integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
-
-cookie@0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.3.tgz#e734a5c1417fce472d5aef82c381cabb64d1a435"
- integrity sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=
-
-cookie@0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
- integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
-
-copy-descriptor@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
- integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-
-core-js@^2.4.0:
- version "2.6.10"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f"
- integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==
-
-core-util-is@1.0.2, core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
- integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-
-cors@2.8.4:
- version "2.8.4"
- resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686"
- integrity sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=
- dependencies:
- object-assign "^4"
- vary "^1"
-
-coveralls@^2.11.4:
- version "2.13.3"
- resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.13.3.tgz#9ad7c2ae527417f361e8b626483f48ee92dd2bc7"
- integrity sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==
- dependencies:
- js-yaml "3.6.1"
- lcov-parse "0.0.10"
- log-driver "1.2.5"
- minimist "1.2.0"
- request "2.79.0"
-
-crc@3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/crc/-/crc-3.3.0.tgz#fa622e1bc388bf257309082d6b65200ce67090ba"
- integrity sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=
-
-create-error-class@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
- integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=
- dependencies:
- capture-stack-trace "^1.0.0"
-
-cross-spawn@^5.0.1:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
- integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
- dependencies:
- lru-cache "^4.0.1"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
-crypt@~0.0.1:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
- integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
-
-cryptiles@2.x.x:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
- integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=
- dependencies:
- boom "2.x.x"
-
-cryptiles@3.x.x:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.4.tgz#769a68c95612b56faadfcebf57ac86479cbe8322"
- integrity sha512-8I1sgZHfVwcSOY6mSGpVU3lw/GSIZvusg8dD2+OGehCJpOhQRLNcH0qb9upQnOH4XhgxxFJSg6E2kx95deb1Tw==
- dependencies:
- boom "5.x.x"
-
-cson-parser@^1.1.0:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/cson-parser/-/cson-parser-1.3.5.tgz#7ec675e039145533bf2a6a856073f1599d9c2d24"
- integrity sha1-fsZ14DkUVTO/KmqFYHPxWZ2cLSQ=
- dependencies:
- coffee-script "^1.10.0"
-
-csrf@~3.0.0:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/csrf/-/csrf-3.0.6.tgz#b61120ddceeafc91e76ed5313bb5c0b2667b710a"
- integrity sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=
- dependencies:
- rndm "1.2.0"
- tsscmp "1.0.5"
- uid-safe "2.1.4"
-
-css-mq-parser@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/css-mq-parser/-/css-mq-parser-0.0.3.tgz#1319c83d15ae9d475879e870c84bfe8682b52bcf"
- integrity sha1-ExnIPRWunUdYeehwyEv+hoK1K88=
-
-css-select-base-adapter@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
- integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
-
-css-select@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
- integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
- dependencies:
- boolbase "^1.0.0"
- css-what "^3.2.1"
- domutils "^1.7.0"
- nth-check "^1.0.2"
-
-css-shorthand-properties@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz#1c808e63553c283f289f2dd56fcee8f3337bd935"
- integrity sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A==
-
-css-tree@1.0.0-alpha.37:
- version "1.0.0-alpha.37"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
- integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
- dependencies:
- mdn-data "2.0.4"
- source-map "^0.6.1"
-
-css-what@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1"
- integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==
-
-css@^2.2.4:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929"
- integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==
- dependencies:
- inherits "^2.0.3"
- source-map "^0.6.1"
- source-map-resolve "^0.5.2"
- urix "^0.1.0"
-
-csso@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d"
- integrity sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==
- dependencies:
- css-tree "1.0.0-alpha.37"
-
-csso@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/csso/-/csso-2.0.0.tgz#178b43a44621221c27756086f531e02f42900ee8"
- integrity sha1-F4tDpEYhIhwndWCG9THgL0KQDug=
- dependencies:
- clap "^1.0.9"
- source-map "^0.5.3"
-
-csurf@~1.8.3:
- version "1.8.3"
- resolved "https://registry.yarnpkg.com/csurf/-/csurf-1.8.3.tgz#23f2a13bf1d8fce1d0c996588394442cba86a56a"
- integrity sha1-I/KhO/HY/OHQyZZYg5RELLqGpWo=
- dependencies:
- cookie "0.1.3"
- cookie-signature "1.0.6"
- csrf "~3.0.0"
- http-errors "~1.3.1"
-
-csv-string@^2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/csv-string/-/csv-string-2.3.3.tgz#e0801e3c6f92f0983629505774af66dd3090e9e5"
- integrity sha1-4IAePG+S8Jg2KVBXdK9m3TCQ6eU=
-
-cubic2quad@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/cubic2quad/-/cubic2quad-1.1.1.tgz#69b19c61a3f5b41ecf2f1d5fae8fb03415aa8b15"
- integrity sha1-abGcYaP1tB7PLx1fro+wNBWqixU=
-
-currently-unhandled@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
- integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
- dependencies:
- array-find-index "^1.0.1"
-
-cycle@1.0.x:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2"
- integrity sha1-IegLK+hYD5i0aPN5QwZisEbDStI=
-
-d@1, d@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
- integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
- dependencies:
- es5-ext "^0.10.50"
- type "^1.0.1"
-
-dashdash@^1.12.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
- integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
- dependencies:
- assert-plus "^1.0.0"
-
-date-now@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
- integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
-
-dateformat@1.0.2-1.2.3:
- version "1.0.2-1.2.3"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.2-1.2.3.tgz#b0220c02de98617433b72851cf47de3df2cdbee9"
- integrity sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=
-
-dateformat@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
- integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=
-
-dateformat@~1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
- integrity sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=
- dependencies:
- get-stdin "^4.0.1"
- meow "^3.3.0"
-
-debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-debug@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
- integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
- dependencies:
- ms "2.0.0"
-
-debug@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
- integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
- dependencies:
- ms "^2.1.1"
-
-debug@~0.7.0:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
- integrity sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=
-
-debug@~2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
- integrity sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=
- dependencies:
- ms "0.7.1"
-
-decamelize@^1.0.0, decamelize@^1.1.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
-decode-uri-component@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
- integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
-
-decompress-tar@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466"
- integrity sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=
- dependencies:
- is-tar "^1.0.0"
- object-assign "^2.0.0"
- strip-dirs "^1.0.0"
- tar-stream "^1.1.1"
- through2 "^0.6.1"
- vinyl "^0.4.3"
-
-decompress-tarbz2@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d"
- integrity sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=
- dependencies:
- is-bzip2 "^1.0.0"
- object-assign "^2.0.0"
- seek-bzip "^1.0.3"
- strip-dirs "^1.0.0"
- tar-stream "^1.1.1"
- through2 "^0.6.1"
- vinyl "^0.4.3"
-
-decompress-targz@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0"
- integrity sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=
- dependencies:
- is-gzip "^1.0.0"
- object-assign "^2.0.0"
- strip-dirs "^1.0.0"
- tar-stream "^1.1.1"
- through2 "^0.6.1"
- vinyl "^0.4.3"
-
-decompress-unzip@^3.0.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb"
- integrity sha1-YUdbQVIGa74/7hL51inRX+ZHjus=
- dependencies:
- is-zip "^1.0.0"
- read-all-stream "^3.0.0"
- stat-mode "^0.2.0"
- strip-dirs "^1.0.0"
- through2 "^2.0.0"
- vinyl "^1.0.0"
- yauzl "^2.2.1"
-
-decompress@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed"
- integrity sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=
- dependencies:
- buffer-to-vinyl "^1.0.0"
- concat-stream "^1.4.6"
- decompress-tar "^3.0.0"
- decompress-tarbz2 "^3.0.0"
- decompress-targz "^3.0.0"
- decompress-unzip "^3.0.0"
- stream-combiner2 "^1.1.1"
- vinyl-assign "^1.0.1"
- vinyl-fs "^2.2.0"
-
-deep-eql@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
- integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
- dependencies:
- type-detect "^4.0.0"
-
-deep-equal@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
- integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
- dependencies:
- is-arguments "^1.0.4"
- is-date-object "^1.0.1"
- is-regex "^1.0.4"
- object-is "^1.0.1"
- object-keys "^1.1.1"
- regexp.prototype.flags "^1.2.0"
-
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
- integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
-deep-is@~0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
- integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
-
-define-properties@^1.1.2, define-properties@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
- integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
- dependencies:
- object-keys "^1.0.12"
-
-define-property@^0.2.5:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
- integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
- dependencies:
- is-descriptor "^0.1.0"
-
-define-property@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
- integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
- dependencies:
- is-descriptor "^1.0.0"
-
-define-property@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
- integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
- dependencies:
- is-descriptor "^1.0.2"
- isobject "^3.0.1"
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
- integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
-
-delegates@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
- integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
-
-depd@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
- integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=
-
-depd@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.0.1.tgz#80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa"
- integrity sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=
-
-depd@~1.1.0, depd@~1.1.1, depd@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
- integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
-
-destroy@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
- integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
-
-detect-file@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
- integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
-
-detect-libc@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
- integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
-dfa@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/dfa/-/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657"
- integrity sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==
-
-diagnostics@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a"
- integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==
- dependencies:
- colorspace "1.1.x"
- enabled "1.0.x"
- kuler "1.0.x"
-
-diff@3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
- integrity sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==
-
-diff@^3.1.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
- integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
-
-dom-serializer@0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
- integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
- dependencies:
- domelementtype "^2.0.1"
- entities "^2.0.0"
-
-dom-walk@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
- integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=
-
-domelementtype@1, domelementtype@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
- integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
-
-domelementtype@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
- integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
-
-domhandler@2.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.0.3.tgz#889f8df626403af0788e29d66d5d5c6f7ebf0fd6"
- integrity sha1-iJ+N9iZAOvB4jinWbV1cb36/D9Y=
- dependencies:
- domelementtype "1"
-
-domhandler@2.3:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738"
- integrity sha1-LeWaCCLVAn+r/28DLCsloqir5zg=
- dependencies:
- domelementtype "1"
-
-domhandler@^2.3.0:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
- integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
- dependencies:
- domelementtype "1"
-
-domutils@1.1:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485"
- integrity sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=
- dependencies:
- domelementtype "1"
-
-domutils@1.4:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.4.3.tgz#0865513796c6b306031850e175516baf80b72a6f"
- integrity sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=
- dependencies:
- domelementtype "1"
-
-domutils@1.5:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
- integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
- dependencies:
- dom-serializer "0"
- domelementtype "1"
-
-domutils@^1.5.1, domutils@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
- integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
- dependencies:
- dom-serializer "0"
- domelementtype "1"
-
-download@^4.0.0, download@^4.1.2:
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac"
- integrity sha1-qlX9rTktldS2jowr4D4MKqIbqaw=
- dependencies:
- caw "^1.0.1"
- concat-stream "^1.4.7"
- each-async "^1.0.0"
- filenamify "^1.0.1"
- got "^5.0.0"
- gulp-decompress "^1.2.0"
- gulp-rename "^1.2.0"
- is-url "^1.2.0"
- object-assign "^4.0.1"
- read-all-stream "^3.0.0"
- readable-stream "^2.0.2"
- stream-combiner2 "^1.1.1"
- vinyl "^1.0.0"
- vinyl-fs "^2.2.0"
- ware "^1.2.0"
-
-duplexer2@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
- integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=
- dependencies:
- readable-stream "~1.1.9"
-
-duplexer2@^0.1.4, duplexer2@~0.1.0, duplexer2@~0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
- integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
- dependencies:
- readable-stream "^2.0.2"
-
-duplexer@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
- integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
-
-duplexify@^3.2.0:
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
- integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
- dependencies:
- end-of-stream "^1.0.0"
- inherits "^2.0.1"
- readable-stream "^2.0.0"
- stream-shift "^1.0.0"
-
-each-async@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/each-async/-/each-async-0.1.3.tgz#b436025b08da2f86608025519e3096763dedfca3"
- integrity sha1-tDYCWwjaL4ZggCVRnjCWdj3t/KM=
-
-each-async@^1.0.0, each-async@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473"
- integrity sha1-3uUim98KtrogEqOV4bhpq/iBNHM=
- dependencies:
- onetime "^1.0.0"
- set-immediate-shim "^1.0.0"
-
-easyxml@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/easyxml/-/easyxml-2.0.1.tgz#eea092842c911300a8c781913cbe5bd38a50711c"
- integrity sha1-7qCShCyREwCox4GRPL5b04pQcRw=
- dependencies:
- elementtree "^0.1.6"
- inflect "^0.3.0"
-
-ecc-jsbn@~0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
- integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
- dependencies:
- jsbn "~0.1.0"
- safer-buffer "^2.1.0"
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
- integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-
-ejs@2.5.7:
- version "2.5.7"
- resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
- integrity sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=
-
-elementtree@^0.1.6:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/elementtree/-/elementtree-0.1.7.tgz#9ac91be6e52fb6e6244c4e54a4ac3ed8ae8e29c0"
- integrity sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=
- dependencies:
- sax "1.1.4"
-
-emits@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/emits/-/emits-3.0.0.tgz#32752bba95e1707b219562384ab9bb8b1fd62f70"
- integrity sha1-MnUrupXhcHshlWI4Srm7ix/WL3A=
-
-enabled@1.0.x:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93"
- integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=
- dependencies:
- env-variable "0.0.x"
-
-encodeurl@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
- integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
-
-end-of-stream@^1.0.0:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
- integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
- dependencies:
- once "^1.4.0"
-
-entities@0.x:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-0.5.0.tgz#f611cb5ae221050e0012c66979503fd7ae19cc49"
- integrity sha1-9hHLWuIhBQ4AEsZpeVA/164ZzEk=
-
-entities@1.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26"
- integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=
-
-entities@^1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
- integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
-
-entities@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
- integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
-
-env-variable@0.0.x:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz#913dd830bef11e96a039c038d4130604eba37f88"
- integrity sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA==
-
-errno@^0.1.1:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
- integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
- dependencies:
- prr "~1.0.1"
-
-error-ex@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-errorhandler@~1.4.2:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.4.3.tgz#b7b70ed8f359e9db88092f2d20c0f831420ad83f"
- integrity sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=
- dependencies:
- accepts "~1.3.0"
- escape-html "~1.0.3"
-
-es-abstract@^1.12.0, es-abstract@^1.5.1:
- version "1.16.2"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34"
- integrity sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==
- dependencies:
- es-to-primitive "^1.2.1"
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.1"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
- object-inspect "^1.7.0"
- object-keys "^1.1.1"
- string.prototype.trimleft "^2.1.0"
- string.prototype.trimright "^2.1.0"
-
-es-to-primitive@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
- integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
- dependencies:
- is-callable "^1.1.4"
- is-date-object "^1.0.1"
- is-symbol "^1.0.2"
-
-es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
- version "0.10.53"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
- integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
- dependencies:
- es6-iterator "~2.0.3"
- es6-symbol "~3.1.3"
- next-tick "~1.0.0"
-
-es6-iterator@^2.0.3, es6-iterator@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
- integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
- dependencies:
- d "1"
- es5-ext "^0.10.35"
- es6-symbol "^3.1.1"
-
-es6-promise@^3.0.2:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
- integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=
-
-es6-promise@^4.0.3:
- version "4.2.8"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
- integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
-
-es6-promisify@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
- integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
- dependencies:
- es6-promise "^4.0.3"
-
-es6-symbol@^3.1.1, es6-symbol@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
- integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
- dependencies:
- d "^1.0.1"
- ext "^1.1.2"
-
-es6-weak-map@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
- integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
- dependencies:
- d "1"
- es5-ext "^0.10.46"
- es6-iterator "^2.0.3"
- es6-symbol "^3.1.1"
-
-escape-html@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.2.tgz#d77d32fa98e38c2f41ae85e9278e0e0e6ba1022c"
- integrity sha1-130y+pjjjC9BroXpJ44ODmuhAiw=
-
-escape-html@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
- integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
-
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-
-escodegen@^1.11.1:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541"
- integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==
- dependencies:
- esprima "^3.1.3"
- estraverse "^4.2.0"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.6.1"
-
-escodegen@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1"
- integrity sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=
- dependencies:
- esprima "~1.0.4"
- estraverse "~1.5.0"
- esutils "~1.0.0"
- optionalDependencies:
- source-map "~0.1.30"
-
-escodegen@~1.9.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2"
- integrity sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==
- dependencies:
- esprima "^3.1.3"
- estraverse "^4.2.0"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.6.1"
-
-esprima@^2.6.0:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
- integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=
-
-esprima@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
- integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
-
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-"esprima@~ 1.0.2", esprima@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad"
- integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=
-
-estraverse@^4.2.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
- integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
-estraverse@~1.5.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71"
- integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-esutils@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570"
- integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=
-
-etag@~1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8"
- integrity sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=
-
-etag@~1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
- integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
-
-event-emitter@^0.3.5:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
- integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-eventemitter2@~0.4.13:
- version "0.4.14"
- resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab"
- integrity sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=
-
-exec-buffer@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b"
- integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==
- dependencies:
- execa "^0.7.0"
- p-finally "^1.0.0"
- pify "^3.0.0"
- rimraf "^2.5.4"
- tempfile "^2.0.0"
-
-exec-series@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/exec-series/-/exec-series-1.0.3.tgz#6d257a9beac482a872c7783bc8615839fc77143a"
- integrity sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=
- dependencies:
- async-each-series "^1.1.0"
- object-assign "^4.1.0"
-
-execa@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
- integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
-execa@^0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
- integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
-executable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/executable/-/executable-1.1.0.tgz#877980e9112f3391066da37265de7ad8434ab4d9"
- integrity sha1-h3mA6REvM5EGbaNyZd562ENKtNk=
- dependencies:
- meow "^3.1.0"
-
-exif-parser@^0.1.9:
- version "0.1.12"
- resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922"
- integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=
-
-exit@0.1.2, exit@0.1.x, exit@~0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
- integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
-
-expand-brackets@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
- integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
- dependencies:
- is-posix-bracket "^0.1.0"
-
-expand-brackets@^2.1.4:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
- integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
- dependencies:
- debug "^2.3.3"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- posix-character-classes "^0.1.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-expand-range@^1.8.1:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
- integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
- dependencies:
- fill-range "^2.1.0"
-
-expand-tilde@^2.0.0, expand-tilde@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
- integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=
- dependencies:
- homedir-polyfill "^1.0.1"
-
-express-session@~1.11.3:
- version "1.11.3"
- resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.11.3.tgz#5cc98f3f5ff84ed835f91cbf0aabd0c7107400af"
- integrity sha1-XMmPP1/4Ttg1+Ry/CqvQxxB0AK8=
- dependencies:
- cookie "0.1.3"
- cookie-signature "1.0.6"
- crc "3.3.0"
- debug "~2.2.0"
- depd "~1.0.1"
- on-headers "~1.0.0"
- parseurl "~1.3.0"
- uid-safe "~2.0.0"
- utils-merge "1.0.0"
-
-express@4.16.2:
- version "4.16.2"
- resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
- integrity sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=
- dependencies:
- accepts "~1.3.4"
- array-flatten "1.1.1"
- body-parser "1.18.2"
- content-disposition "0.5.2"
- content-type "~1.0.4"
- cookie "0.3.1"
- cookie-signature "1.0.6"
- debug "2.6.9"
- depd "~1.1.1"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- etag "~1.8.1"
- finalhandler "1.1.0"
- fresh "0.5.2"
- merge-descriptors "1.0.1"
- methods "~1.1.2"
- on-finished "~2.3.0"
- parseurl "~1.3.2"
- path-to-regexp "0.1.7"
- proxy-addr "~2.0.2"
- qs "6.5.1"
- range-parser "~1.2.0"
- safe-buffer "5.1.1"
- send "0.16.1"
- serve-static "1.13.1"
- setprototypeof "1.1.0"
- statuses "~1.3.1"
- type-is "~1.6.15"
- utils-merge "1.0.1"
- vary "~1.1.2"
-
-ext@^1.1.2:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244"
- integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==
- dependencies:
- type "^2.0.0"
-
-extend-shallow@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
- integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
- dependencies:
- is-extendable "^0.1.0"
-
-extend-shallow@^3.0.0, extend-shallow@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
- integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
- dependencies:
- assign-symbols "^1.0.0"
- is-extendable "^1.0.1"
-
-extend@^3.0.0, extend@~3.0.0, extend@~3.0.1, extend@~3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
- integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-extglob@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
- integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
- dependencies:
- is-extglob "^1.0.0"
-
-extglob@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
- integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
- dependencies:
- array-unique "^0.3.2"
- define-property "^1.0.0"
- expand-brackets "^2.1.4"
- extend-shallow "^2.0.1"
- fragment-cache "^0.2.1"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-extract-zip@^1.6.5:
- version "1.6.7"
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
- integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=
- dependencies:
- concat-stream "1.6.2"
- debug "2.6.9"
- mkdirp "0.5.1"
- yauzl "2.4.1"
-
-extsprintf@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
- integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
-
-extsprintf@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
- integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-
-eyes@0.1.x:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
- integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=
-
-falafel@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c"
- integrity sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=
- dependencies:
- acorn "^5.0.0"
- foreach "^2.0.5"
- isarray "0.0.1"
- object-keys "^1.0.6"
-
-fancy-log@^1.1.0:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7"
- integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==
- dependencies:
- ansi-gray "^0.1.1"
- color-support "^1.1.3"
- parse-node-version "^1.0.0"
- time-stamp "^1.0.0"
-
-fast-deep-equal@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
- integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
-
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
- integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
-
-fast-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
- integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
-
-fast-levenshtein@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
- integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
-
-fast-stats@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/fast-stats/-/fast-stats-0.0.5.tgz#7e656e4f366f4d85df3e99be3978bfbff3519192"
- integrity sha512-HtS5uSqMiwfxFFyukKP/F0f3o8/8oqHtbInsaq2s0+V2J2MEHGyukWajWqzKS57sWLTOgJ7bKMRhA4fG5cTQ3Q==
-
-faye-websocket@~0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
- integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=
- dependencies:
- websocket-driver ">=0.5.1"
-
-faye-websocket@~0.4.3:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.4.4.tgz#c14c5b3bf14d7417ffbfd990c0a7495cd9f337bc"
- integrity sha1-wUxbO/FNdBf/v9mQwKdJXNnzN7w=
-
-fd-slicer@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
- integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=
- dependencies:
- pend "~1.2.0"
-
-fd-slicer@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
- integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
- dependencies:
- pend "~1.2.0"
-
-figures@^1.0.1, figures@^1.3.5:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
- dependencies:
- escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
-
-file-sync-cmp@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz#a5e7a8ffbfa493b43b923bbd4ca89a53b63b612b"
- integrity sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=
-
-file-type@^3.1.0:
- version "3.9.0"
- resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
- integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek=
-
-file-type@^4.1.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5"
- integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU=
-
-file-uri-to-path@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
- integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
-
-filename-regex@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
- integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
-
-filename-reserved-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4"
- integrity sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=
-
-filenamify@^1.0.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5"
- integrity sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=
- dependencies:
- filename-reserved-regex "^1.0.0"
- strip-outer "^1.0.0"
- trim-repeated "^1.0.0"
-
-fill-range@^2.1.0:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
- integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
- dependencies:
- is-number "^2.1.0"
- isobject "^2.0.0"
- randomatic "^3.0.0"
- repeat-element "^1.1.2"
- repeat-string "^1.5.2"
-
-fill-range@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
- integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
- dependencies:
- extend-shallow "^2.0.1"
- is-number "^3.0.0"
- repeat-string "^1.6.1"
- to-regex-range "^2.1.0"
-
-finalhandler@0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.0.tgz#965a52d9e8d05d2b857548541fb89b53a2497d9b"
- integrity sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=
- dependencies:
- debug "~2.2.0"
- escape-html "1.0.2"
- on-finished "~2.3.0"
- unpipe "~1.0.0"
-
-finalhandler@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
- integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=
- dependencies:
- debug "2.6.9"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- parseurl "~1.3.2"
- statuses "~1.3.1"
- unpipe "~1.0.0"
-
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
-find-versions@^1.0.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-1.2.1.tgz#cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62"
- integrity sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=
- dependencies:
- array-uniq "^1.0.0"
- get-stdin "^4.0.1"
- meow "^3.5.0"
- semver-regex "^1.0.0"
-
-find-versions@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-2.0.0.tgz#2ad90d490f6828c1aa40292cf709ac3318210c3c"
- integrity sha1-KtkNSQ9oKMGqQCks9wmsMxghDDw=
- dependencies:
- array-uniq "^1.0.0"
- semver-regex "^1.0.0"
-
-findup-sync@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
- integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=
- dependencies:
- detect-file "^1.0.0"
- is-glob "^3.1.0"
- micromatch "^3.0.4"
- resolve-dir "^1.0.1"
-
-findup-sync@~0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.1.3.tgz#7f3e7a97b82392c653bf06589bd85190e93c3683"
- integrity sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=
- dependencies:
- glob "~3.2.9"
- lodash "~2.4.1"
-
-findup-sync@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16"
- integrity sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=
- dependencies:
- glob "~5.0.0"
-
-first-chunk-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e"
- integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=
-
-fontkit@1.7.7:
- version "1.7.7"
- resolved "https://registry.yarnpkg.com/fontkit/-/fontkit-1.7.7.tgz#ebaf2d8f3fedf302ae3c64b4beeaddc247fcdbb1"
- integrity sha1-668tjz/t8wKuPGS0vurdwkf827E=
- dependencies:
- babel-runtime "^6.11.6"
- brfs "^1.4.0"
- brotli "^1.2.0"
- browserify-optional "^1.0.0"
- clone "^1.0.1"
- deep-equal "^1.0.0"
- dfa "^1.0.0"
- restructure "^0.5.3"
- tiny-inflate "^1.0.2"
- unicode-properties "^1.0.0"
- unicode-trie "^0.3.0"
-
-for-in@^1.0.1, for-in@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
- integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-
-for-own@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
- integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
- dependencies:
- for-in "^1.0.1"
-
-foreach@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
- integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
-
-forever-agent@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
- integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-
-form-data@~2.1.1:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
- integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
-form-data@~2.3.1, form-data@~2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
- integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.6"
- mime-types "^2.1.12"
-
-formatio@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb"
- integrity sha1-87IWfZBoxGmKjVH092CjmlTYGOs=
- dependencies:
- samsam "1.x"
-
-forwarded@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
- integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
-
-fragment-cache@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
- integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
- dependencies:
- map-cache "^0.2.2"
-
-fresh@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f"
- integrity sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=
-
-fresh@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
- integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
-
-fs-constants@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
- integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
-
-fs-extra@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
- integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
- klaw "^1.0.0"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-
-fstream-ignore@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
- integrity sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=
- dependencies:
- fstream "^1.0.0"
- inherits "2"
- minimatch "^3.0.0"
-
-fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
- integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==
- dependencies:
- graceful-fs "^4.1.2"
- inherits "~2.0.0"
- mkdirp ">=0.5 0"
- rimraf "2"
-
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
-gauge@~2.7.3:
- version "2.7.4"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
- integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
- dependencies:
- aproba "^1.0.3"
- console-control-strings "^1.0.0"
- has-unicode "^2.0.0"
- object-assign "^4.1.0"
- signal-exit "^3.0.0"
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wide-align "^1.1.0"
-
-gaze@^1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a"
- integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==
- dependencies:
- globule "^1.0.0"
-
-gaze@~0.5.1:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f"
- integrity sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=
- dependencies:
- globule "~0.1.0"
-
-generate-function@^2.0.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
- integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==
- dependencies:
- is-property "^1.0.2"
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=
- dependencies:
- is-property "^1.0.0"
-
-get-func-name@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
- integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
-
-get-proxy@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-1.1.0.tgz#894854491bc591b0f147d7ae570f5c678b7256eb"
- integrity sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=
- dependencies:
- rc "^1.1.2"
-
-get-stdin@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
- integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
-
-get-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
- integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
-
-get-value@^2.0.3, get-value@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
- integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
-
-getobject@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c"
- integrity sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=
-
-getpass@^0.1.1:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
- integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
- dependencies:
- assert-plus "^1.0.0"
-
-glob-base@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
- integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
- dependencies:
- glob-parent "^2.0.0"
- is-glob "^2.0.0"
-
-glob-parent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
- integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
- dependencies:
- is-glob "^2.0.0"
-
-glob-parent@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
- integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
- dependencies:
- is-glob "^3.1.0"
- path-dirname "^1.0.0"
-
-glob-stream@^5.3.2:
- version "5.3.5"
- resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22"
- integrity sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=
- dependencies:
- extend "^3.0.0"
- glob "^5.0.3"
- glob-parent "^3.0.0"
- micromatch "^2.3.7"
- ordered-read-streams "^0.3.0"
- through2 "^0.6.0"
- to-absolute-glob "^0.1.1"
- unique-stream "^2.0.2"
-
-glob@7.1.2:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
- integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^5.0.3, glob@~5.0.0:
- version "5.0.15"
- resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
- integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=
- dependencies:
- inflight "^1.0.4"
- inherits "2"
- minimatch "2 || 3"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.3, glob@~7.1.1:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
- integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@~3.1.21:
- version "3.1.21"
- resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd"
- integrity sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=
- dependencies:
- graceful-fs "~1.2.0"
- inherits "1"
- minimatch "~0.2.11"
-
-glob@~3.2.9:
- version "3.2.11"
- resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d"
- integrity sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=
- dependencies:
- inherits "2"
- minimatch "0.3"
-
-glob@~7.0.0:
- version "7.0.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
- integrity sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-global-modules@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
- integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==
- dependencies:
- global-prefix "^1.0.1"
- is-windows "^1.0.1"
- resolve-dir "^1.0.0"
-
-global-prefix@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
- integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=
- dependencies:
- expand-tilde "^2.0.2"
- homedir-polyfill "^1.0.1"
- ini "^1.3.4"
- is-windows "^1.0.1"
- which "^1.2.14"
-
-global@~4.3.0:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
- integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=
- dependencies:
- min-document "^2.19.0"
- process "~0.5.1"
-
-globby@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
- integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
- dependencies:
- array-union "^1.0.1"
- glob "^7.0.3"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-globule@^1.0.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d"
- integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==
- dependencies:
- glob "~7.1.1"
- lodash "~4.17.10"
- minimatch "~3.0.2"
-
-globule@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5"
- integrity sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=
- dependencies:
- glob "~3.1.21"
- lodash "~1.0.1"
- minimatch "~0.2.11"
-
-glogg@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f"
- integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==
- dependencies:
- sparkles "^1.0.0"
-
-got@^5.0.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35"
- integrity sha1-X4FjWmHkplifGAVp6k44FoClHzU=
- dependencies:
- create-error-class "^3.0.1"
- duplexer2 "^0.1.4"
- is-redirect "^1.0.0"
- is-retry-allowed "^1.0.0"
- is-stream "^1.0.0"
- lowercase-keys "^1.0.0"
- node-status-codes "^1.0.0"
- object-assign "^4.0.1"
- parse-json "^2.1.0"
- pinkie-promise "^2.0.0"
- read-all-stream "^3.0.0"
- readable-stream "^2.0.5"
- timed-out "^3.0.0"
- unzip-response "^1.0.2"
- url-parse-lax "^1.0.0"
-
-graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
- integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
-
-graceful-fs@~1.2.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
- integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=
-
-"graceful-readlink@>= 1.0.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
- integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
-
-growl@1.10.3:
- version "1.10.3"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f"
- integrity sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==
-
-grunt-cli@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.2.0.tgz#562b119ebb069ddb464ace2845501be97b35b6a8"
- integrity sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=
- dependencies:
- findup-sync "~0.3.0"
- grunt-known-options "~1.1.0"
- nopt "~3.0.6"
- resolve "~1.1.0"
-
-grunt-contrib-clean@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz#564abf2d0378a983a15b9e3f30ee75b738c40638"
- integrity sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=
- dependencies:
- async "^1.5.2"
- rimraf "^2.5.1"
-
-grunt-contrib-concat@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz#61509863084e871d7e86de48c015259ed97745bd"
- integrity sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=
- dependencies:
- chalk "^1.0.0"
- source-map "^0.5.3"
-
-grunt-contrib-copy@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz#7060c6581e904b8ab0d00f076e0a8f6e3e7c3573"
- integrity sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=
- dependencies:
- chalk "^1.1.1"
- file-sync-cmp "^0.1.0"
-
-grunt-contrib-cssmin@~2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.2.1.tgz#64cbebe60134bc1270ca4154514ec4007cc16f7f"
- integrity sha512-IXNomhQ5ekVZbDbj/ik5YccoD9khU6LT2fDXqO1+/Txjq8cp0tQKjVS8i8EAbHOrSDkL7/UD6A7b+xj98gqh9w==
- dependencies:
- chalk "^1.0.0"
- clean-css "~4.1.1"
- maxmin "^2.1.0"
-
-grunt-contrib-htmlmin@~2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/grunt-contrib-htmlmin/-/grunt-contrib-htmlmin-2.4.0.tgz#69f49819199e2ac89152bbf8afa5ed321ca48f99"
- integrity sha1-afSYGRmeKsiRUrv4r6XtMhykj5k=
- dependencies:
- chalk "^1.0.0"
- html-minifier "~3.5.0"
- pretty-bytes "^4.0.2"
-
-grunt-contrib-jshint@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz#369d909b2593c40e8be79940b21340850c7939ac"
- integrity sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=
- dependencies:
- chalk "^1.1.1"
- hooker "^0.2.3"
- jshint "~2.9.4"
-
-grunt-contrib-less@~1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/grunt-contrib-less/-/grunt-contrib-less-1.4.1.tgz#3bbdec0b75d12ceaa55d62943625c0b0861cdf6f"
- integrity sha1-O73sC3XRLOqlXWKUNiXAsIYc328=
- dependencies:
- async "^2.0.0"
- chalk "^1.0.0"
- less "~2.7.1"
- lodash "^4.8.2"
-
-grunt-contrib-uglify@~3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-3.3.0.tgz#dcc29bee1dd4768698930e46fb8bff8e8d37fb08"
- integrity sha512-W9O7lJE3PlD8VCc5fyaf98QV7f5wEDiU4PBIh0+/6UBbk2LhgzEFS0/p+taH5UD3+PlEn7QPN0o06Z0To6SqXw==
- dependencies:
- chalk "^1.0.0"
- maxmin "^1.1.0"
- uglify-js "~3.3.0"
- uri-path "^1.0.0"
-
-grunt-contrib-watch@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/grunt-contrib-watch/-/grunt-contrib-watch-0.6.1.tgz#64fdcba25a635f5b4da1b6ce6f90da0aeb6e3f15"
- integrity sha1-ZP3LolpjX1tNobbOb5DaCutuPxU=
- dependencies:
- async "~0.2.9"
- gaze "~0.5.1"
- lodash "~2.4.1"
- tiny-lr-fork "0.0.5"
-
-grunt-contrib-watch@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/grunt-contrib-watch/-/grunt-contrib-watch-1.0.1.tgz#ca65934b6e04dbd26da684d598f79ee22f47fdac"
- integrity sha512-8Zka/svGl6+ZwF7d6z/CfXwsb4cDODnajmZsY4nUAs9Ob0kJEcsLiDf5qm2HdDoEcm3NHjWCrFiWx+PZ2y4D7A==
- dependencies:
- async "^1.5.0"
- gaze "^1.1.0"
- lodash "^4.0.0"
- tiny-lr "^0.2.1"
-
-grunt-env@~0.4.4:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/grunt-env/-/grunt-env-0.4.4.tgz#3b38843a8d737177ddc9f893879fb69ce1a0bc2f"
- integrity sha1-OziEOo1zcXfdyfiTh5+2nOGgvC8=
- dependencies:
- ini "~1.3.0"
- lodash "~2.4.1"
-
-grunt-express@~1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/grunt-express/-/grunt-express-1.4.1.tgz#8ffe081ad3a47de0cea0d1e4f1565ce453edc61e"
- integrity sha1-j/4IGtOkfeDOoNHk8VZc5FPtxh4=
- dependencies:
- connect "^2.15.0"
- connect-livereload "^0.4.0"
- grunt-contrib-watch "^0.6.1"
- grunt-parallel "^0.3.1"
- open "0.0.5"
- sugar "^1.4.1"
- temp "^0.7.0"
- touch "0.0.3"
-
-grunt-filerev@~2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/grunt-filerev/-/grunt-filerev-2.3.1.tgz#2990210f0b5a9edc5e7198987fd1c029c6d5f4df"
- integrity sha1-KZAhDwtantxecZiYf9HAKcbV9N8=
- dependencies:
- chalk "^1.0.0"
- convert-source-map "^1.0.0"
- each-async "^0.1.3"
-
-grunt-inline-angular-templates@~0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/grunt-inline-angular-templates/-/grunt-inline-angular-templates-0.1.5.tgz#c1735b222251f586bd519188218aaecf08302bb4"
- integrity sha1-wXNbIiJR9Ya9UZGIIYquzwgwK7Q=
- dependencies:
- cheerio "~0.12.4"
-
-grunt-known-options@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-1.1.1.tgz#6cc088107bd0219dc5d3e57d91923f469059804d"
- integrity sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==
-
-grunt-legacy-log-utils@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz#c0706b9dd9064e116f36f23fe4e6b048672c0f7e"
- integrity sha1-wHBrndkGThFvNvI/5OawSGcsD34=
- dependencies:
- colors "~0.6.2"
- lodash "~2.4.1"
- underscore.string "~2.3.3"
-
-grunt-legacy-log-utils@~2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz#d2f442c7c0150065d9004b08fd7410d37519194e"
- integrity sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==
- dependencies:
- chalk "~2.4.1"
- lodash "~4.17.10"
-
-grunt-legacy-log@~0.1.0:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz#ec29426e803021af59029f87d2f9cd7335a05531"
- integrity sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=
- dependencies:
- colors "~0.6.2"
- grunt-legacy-log-utils "~0.1.1"
- hooker "~0.2.3"
- lodash "~2.4.1"
- underscore.string "~2.3.3"
-
-grunt-legacy-log@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz#c8cd2c6c81a4465b9bbf2d874d963fef7a59ffb9"
- integrity sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==
- dependencies:
- colors "~1.1.2"
- grunt-legacy-log-utils "~2.0.0"
- hooker "~0.2.3"
- lodash "~4.17.5"
-
-grunt-legacy-util@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz#93324884dbf7e37a9ff7c026dff451d94a9e554b"
- integrity sha1-kzJIhNv343qf98Am3/RR2UqeVUs=
- dependencies:
- async "~0.1.22"
- exit "~0.1.1"
- getobject "~0.1.0"
- hooker "~0.2.3"
- lodash "~0.9.2"
- underscore.string "~2.2.1"
- which "~1.0.5"
-
-grunt-legacy-util@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz#e10624e7c86034e5b870c8a8616743f0a0845e42"
- integrity sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==
- dependencies:
- async "~1.5.2"
- exit "~0.1.1"
- getobject "~0.1.0"
- hooker "~0.2.3"
- lodash "~4.17.10"
- underscore.string "~3.3.4"
- which "~1.3.0"
-
-grunt-mocha-test@~0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/grunt-mocha-test/-/grunt-mocha-test-0.13.3.tgz#9028472b615bda6ddeaa7b30a5a164e9805de005"
- integrity sha512-zQGEsi3d+ViPPi7/4jcj78afKKAKiAA5n61pknQYi25Ugik+aNOuRmiOkmb8mN2CeG8YxT+YdT1H1Q7B/eNkoQ==
- dependencies:
- hooker "^0.2.3"
- mkdirp "^0.5.0"
-
-grunt-parallel@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/grunt-parallel/-/grunt-parallel-0.3.1.tgz#9d11a2872b44a7bba0ec816f03388a15fa564663"
- integrity sha1-nRGihytEp7ug7IFvAziKFfpWRmM=
- dependencies:
- grunt "~0.4.1"
- lpad "~0.1.0"
- q "~0.8.12"
-
-grunt-parallel@~0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/grunt-parallel/-/grunt-parallel-0.5.1.tgz#5f7a3376f6185424128c4b2a2cf2e2d07c37f5d9"
- integrity sha1-X3ozdvYYVCQSjEsqLPLi0Hw39dk=
- dependencies:
- lpad "~0.1.0"
- q "~0.8.12"
-
-grunt-replace@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/grunt-replace/-/grunt-replace-1.0.1.tgz#90a79532fb89041fe427c87d425238b0f886651a"
- integrity sha1-kKeVMvuJBB/kJ8h9QlI4sPiGZRo=
- dependencies:
- applause "1.2.2"
- chalk "^1.1.0"
- file-sync-cmp "^0.1.0"
- lodash "^4.11.0"
-
-grunt-usemin@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/grunt-usemin/-/grunt-usemin-3.1.1.tgz#5ab679510d672cea566cc717abe8b8a009f641c2"
- integrity sha1-WrZ5UQ1nLOpWbMcXq+i4oAn2QcI=
- dependencies:
- chalk "^1.1.1"
- debug "^2.1.3"
- lodash "^3.6.0"
- path-exists "^1.0.0"
-
-grunt-webfont@~1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/grunt-webfont/-/grunt-webfont-1.6.0.tgz#a0d790f39056d94f340f50b3dc24c9ab4bcabcae"
- integrity sha1-oNeQ85BW2U80D1Cz3CTJq0vKvK4=
- dependencies:
- async "~1.5.2"
- chalk "~1.1.1"
- glob "~7.0.0"
- lodash "~4.3.0"
- memorystream "~0.3.1"
- mkdirp "~0.5.1"
- svg2ttf "~2.1.1"
- svgicons2svgfont "~1.1.0"
- svgo "~0.6.1"
- temp "~0.8.3"
- ttf2eot "~1.3.0"
- ttf2woff "~1.3.0"
- ttf2woff2 "~2.0.3"
- underscore.string "~3.2.3"
- winston "~2.1.1"
-
-grunt@~0.4.1:
- version "0.4.5"
- resolved "https://registry.yarnpkg.com/grunt/-/grunt-0.4.5.tgz#56937cd5194324adff6d207631832a9d6ba4e7f0"
- integrity sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=
- dependencies:
- async "~0.1.22"
- coffee-script "~1.3.3"
- colors "~0.6.2"
- dateformat "1.0.2-1.2.3"
- eventemitter2 "~0.4.13"
- exit "~0.1.1"
- findup-sync "~0.1.2"
- getobject "~0.1.0"
- glob "~3.1.21"
- grunt-legacy-log "~0.1.0"
- grunt-legacy-util "~0.2.0"
- hooker "~0.2.3"
- iconv-lite "~0.2.11"
- js-yaml "~2.0.5"
- lodash "~0.9.2"
- minimatch "~0.2.12"
- nopt "~1.0.10"
- rimraf "~2.2.8"
- underscore.string "~2.2.1"
- which "~1.0.5"
-
-grunt@~1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.0.4.tgz#c799883945a53a3d07622e0737c8f70bfe19eb38"
- integrity sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==
- dependencies:
- coffeescript "~1.10.0"
- dateformat "~1.0.12"
- eventemitter2 "~0.4.13"
- exit "~0.1.1"
- findup-sync "~0.3.0"
- glob "~7.0.0"
- grunt-cli "~1.2.0"
- grunt-known-options "~1.1.0"
- grunt-legacy-log "~2.0.0"
- grunt-legacy-util "~1.1.1"
- iconv-lite "~0.4.13"
- js-yaml "~3.13.0"
- minimatch "~3.0.2"
- mkdirp "~0.5.1"
- nopt "~3.0.6"
- path-is-absolute "~1.0.0"
- rimraf "~2.6.2"
-
-gulp-decompress@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7"
- integrity sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=
- dependencies:
- archive-type "^3.0.0"
- decompress "^3.0.0"
- gulp-util "^3.0.1"
- readable-stream "^2.0.2"
-
-gulp-rename@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.4.0.tgz#de1c718e7c4095ae861f7296ef4f3248648240bd"
- integrity sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==
-
-gulp-sourcemaps@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c"
- integrity sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=
- dependencies:
- convert-source-map "^1.1.1"
- graceful-fs "^4.1.2"
- strip-bom "^2.0.0"
- through2 "^2.0.0"
- vinyl "^1.0.0"
-
-gulp-util@^3.0.1:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
- integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08=
- dependencies:
- array-differ "^1.0.0"
- array-uniq "^1.0.2"
- beeper "^1.0.0"
- chalk "^1.0.0"
- dateformat "^2.0.0"
- fancy-log "^1.1.0"
- gulplog "^1.0.0"
- has-gulplog "^0.1.0"
- lodash._reescape "^3.0.0"
- lodash._reevaluate "^3.0.0"
- lodash._reinterpolate "^3.0.0"
- lodash.template "^3.0.0"
- minimist "^1.1.0"
- multipipe "^0.1.2"
- object-assign "^3.0.0"
- replace-ext "0.0.1"
- through2 "^2.0.0"
- vinyl "^0.5.0"
-
-gulplog@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
- integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U=
- dependencies:
- glogg "^1.0.0"
-
-gzip-size@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-1.0.0.tgz#66cf8b101047227b95bace6ea1da0c177ed5c22f"
- integrity sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=
- dependencies:
- browserify-zlib "^0.1.4"
- concat-stream "^1.4.1"
-
-gzip-size@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520"
- integrity sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=
- dependencies:
- duplexer "^0.1.1"
-
-har-schema@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
- integrity sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=
-
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
- integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-
-har-validator@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
- integrity sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=
- dependencies:
- chalk "^1.1.1"
- commander "^2.9.0"
- is-my-json-valid "^2.12.4"
- pinkie-promise "^2.0.0"
-
-har-validator@~4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
- integrity sha1-M0gdDxu/9gDdID11gSpqX7oALio=
- dependencies:
- ajv "^4.9.1"
- har-schema "^1.0.5"
-
-har-validator@~5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
- integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=
- dependencies:
- ajv "^5.1.0"
- har-schema "^2.0.0"
-
-har-validator@~5.1.0:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
- integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
- dependencies:
- ajv "^6.5.5"
- har-schema "^2.0.0"
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
- dependencies:
- ansi-regex "^2.0.0"
-
-has-flag@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
- integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=
-
-has-flag@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
- integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
-
-has-gulplog@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
- integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=
- dependencies:
- sparkles "^1.0.0"
-
-has-symbols@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
- integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
-
-has-unicode@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
- integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
-
-has-value@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
- integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
- dependencies:
- get-value "^2.0.3"
- has-values "^0.1.4"
- isobject "^2.0.0"
-
-has-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
- integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
- dependencies:
- get-value "^2.0.6"
- has-values "^1.0.0"
- isobject "^3.0.0"
-
-has-values@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
- integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
-
-has-values@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
- integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
- dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
-
-has@^1.0.1, has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- dependencies:
- function-bind "^1.1.1"
-
-hasha@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
- integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=
- dependencies:
- is-stream "^1.0.1"
- pinkie-promise "^2.0.0"
-
-hawk@3.1.3, hawk@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
- integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=
- dependencies:
- boom "2.x.x"
- cryptiles "2.x.x"
- hoek "2.x.x"
- sntp "1.x.x"
-
-hawk@~6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
- integrity sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==
- dependencies:
- boom "4.x.x"
- cryptiles "3.x.x"
- hoek "4.x.x"
- sntp "2.x.x"
-
-he@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
- integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
-
-he@1.2.x:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
- integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-
-hoek@2.x.x:
- version "2.16.3"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
- integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=
-
-hoek@4.x.x:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
- integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==
-
-homedir-polyfill@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
- integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
- dependencies:
- parse-passwd "^1.0.0"
-
-hooker@^0.2.3, hooker@~0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959"
- integrity sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=
-
-hosted-git-info@^2.1.4:
- version "2.8.5"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c"
- integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==
-
-html-comment-regex@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
- integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-
-html-minifier@~3.5.0:
- version "3.5.21"
- resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c"
- integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==
- dependencies:
- camel-case "3.0.x"
- clean-css "4.2.x"
- commander "2.17.x"
- he "1.2.x"
- param-case "2.1.x"
- relateurl "0.2.x"
- uglify-js "3.4.x"
-
-htmlparser2@3.1.4:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.1.4.tgz#72cbe7d5d56c01acf61fcf7b933331f4e45b36f0"
- integrity sha1-csvn1dVsAaz2H897kzMx9ORbNvA=
- dependencies:
- domelementtype "1"
- domhandler "2.0"
- domutils "1.1"
- readable-stream "1.0"
-
-htmlparser2@3.8.x:
- version "3.8.3"
- resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
- integrity sha1-mWwosZFRaovoZQGn15dX5ccMEGg=
- dependencies:
- domelementtype "1"
- domhandler "2.3"
- domutils "1.5"
- entities "1.0"
- readable-stream "1.1"
-
-htmlparser2@^3.9.2:
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
- integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
- dependencies:
- domelementtype "^1.3.1"
- domhandler "^2.3.0"
- domutils "^1.5.1"
- entities "^1.1.1"
- inherits "^2.0.1"
- readable-stream "^3.1.1"
-
-http-errors@1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
- integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=
- dependencies:
- depd "1.1.1"
- inherits "2.0.3"
- setprototypeof "1.0.3"
- statuses ">= 1.3.1 < 2"
-
-http-errors@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942"
- integrity sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=
- dependencies:
- inherits "~2.0.1"
- statuses "1"
-
-http-errors@~1.6.2:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
- integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
- dependencies:
- depd "~1.1.2"
- inherits "2.0.3"
- setprototypeof "1.1.0"
- statuses ">= 1.4.0 < 2"
-
-"http-parser-js@>=0.4.0 <0.4.11":
- version "0.4.10"
- resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
- integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=
-
-http-proxy-agent@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
- integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
- dependencies:
- agent-base "4"
- debug "3.1.0"
-
-http-signature@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
- integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=
- dependencies:
- assert-plus "^0.2.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
- integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
- dependencies:
- assert-plus "^1.0.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-iconv-lite@0.4.11:
- version "0.4.11"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.11.tgz#2ecb42fd294744922209a2e7c404dac8793d8ade"
- integrity sha1-LstC/SlHRJIiCaLnxATayHk9it4=
-
-iconv-lite@0.4.13:
- version "0.4.13"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
- integrity sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=
-
-iconv-lite@0.4.19:
- version "0.4.19"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
- integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==
-
-iconv-lite@~0.2.11:
- version "0.2.11"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8"
- integrity sha1-HOYKOleGSiktEyH/RgnKS7llrcg=
-
-iconv-lite@~0.4.13:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
-image-size@0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.7.1.tgz#961f7dfb1fc6bc7b8cb25e3986e1dc206b195eab"
- integrity sha512-Q9hk+wP7+CjudriUaGhP9BizAXBe1O7STPbGU/FesYSjqcupHTX70iAZ2vZoQ4mKWB9qlcEIv6h5sKUrRehlNQ==
-
-image-size@~0.5.0:
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
- integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
-
-imagemin-jpegoptim@5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/imagemin-jpegoptim/-/imagemin-jpegoptim-5.2.0.tgz#a8ff7e40222d0da04915eb1f0c865786589b49f7"
- integrity sha1-qP9+QCItDaBJFesfDIZXhlibSfc=
- dependencies:
- execa "^0.8.0"
- is-jpg "^1.0.0"
- jpegoptim-bin "^4.0.0"
-
-imagemin-jpegtran@5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/imagemin-jpegtran/-/imagemin-jpegtran-5.0.2.tgz#e6882263b8f7916fddb800640cf75d2e970d2ad6"
- integrity sha1-5ogiY7j3kW/duABkDPddLpcNKtY=
- dependencies:
- exec-buffer "^3.0.0"
- is-jpg "^1.0.0"
- jpegtran-bin "^3.0.0"
-
-imagemin-optipng@5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz#d22da412c09f5ff00a4339960b98a88b1dbe8695"
- integrity sha1-0i2kEsCfX/AKQzmWC5ioix2+hpU=
- dependencies:
- exec-buffer "^3.0.0"
- is-png "^1.0.0"
- optipng-bin "^3.0.0"
-
-imagemin-svgo@6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/imagemin-svgo/-/imagemin-svgo-6.0.0.tgz#2dd8c82946be42a8e2cbcae3c5bf007bc2b8b9e8"
- integrity sha512-xwjBZQKpbkklHtJYnCOwRJjTRJA/nR0hQzKMh+CUZRvm/L0QwKKPJQ9tkPWQHrg+cydPu2i1vLgHuy2E0hKEkg==
- dependencies:
- buffer-from "^0.1.1"
- is-svg "^2.0.0"
- svgo "^1.0.0"
-
-imagemin@5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/imagemin/-/imagemin-5.3.1.tgz#f19c2eee1e71ba6c6558c515f9fc96680189a6d4"
- integrity sha1-8Zwu7h5xumxlWMUV+fyWaAGJptQ=
- dependencies:
- file-type "^4.1.0"
- globby "^6.1.0"
- make-dir "^1.0.0"
- p-pipe "^1.1.0"
- pify "^2.3.0"
- replace-ext "^1.0.0"
-
-indent-string@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
- integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
- dependencies:
- repeating "^2.0.0"
-
-inflect@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/inflect/-/inflect-0.3.0.tgz#81d0eaaa36b50a60230b7510048b39c4142fe52a"
- integrity sha1-gdDqqja1CmAjC3UQBIs5xBQv5So=
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
- integrity sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=
-
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inherits@2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
- integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-
-ini@^1.3.4, ini@~1.3.0:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
- integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
-
-ip-regex@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd"
- integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=
-
-ipaddr.js@1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
- integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==
-
-is-absolute@^0.1.5:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f"
- integrity sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=
- dependencies:
- is-relative "^0.1.0"
-
-is-accessor-descriptor@^0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
- integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
- dependencies:
- kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
- integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-arguments@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
- integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-
-is-arrayish@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
- integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-
-is-buffer@^1.1.5, is-buffer@~1.1.1:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
- integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-bzip2@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc"
- integrity sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=
-
-is-callable@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
- integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
-
-is-data-descriptor@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
- integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
- dependencies:
- kind-of "^3.0.2"
-
-is-data-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
- integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
- integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
-
-is-descriptor@^0.1.0:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
- integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
- dependencies:
- is-accessor-descriptor "^0.1.6"
- is-data-descriptor "^0.1.4"
- kind-of "^5.0.0"
-
-is-descriptor@^1.0.0, is-descriptor@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
- integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
- dependencies:
- is-accessor-descriptor "^1.0.0"
- is-data-descriptor "^1.0.0"
- kind-of "^6.0.2"
-
-is-dotfile@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
- integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
-
-is-eot@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-eot/-/is-eot-1.0.0.tgz#e849c40f0e18a6853c0d6b6bac24ef1f2c739e6b"
- integrity sha1-6EnEDw4YpoU8DWtrrCTvHyxznms=
-
-is-equal-shallow@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
- integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
- dependencies:
- is-primitive "^2.0.0"
-
-is-extendable@^0.1.0, is-extendable@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
- integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
-
-is-extendable@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
- integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
- dependencies:
- is-plain-object "^2.0.4"
-
-is-extglob@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
- integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
-
-is-extglob@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-
-is-finite@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
- integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-
-is-function@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
- integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=
-
-is-gif@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-gif/-/is-gif-1.0.0.tgz#a6d2ae98893007bffa97a1d8c01d63205832097e"
- integrity sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=
-
-is-glob@^2.0.0, is-glob@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
- integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
- dependencies:
- is-extglob "^1.0.0"
-
-is-glob@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
- integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
- dependencies:
- is-extglob "^2.1.0"
-
-is-gzip@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83"
- integrity sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=
-
-is-http2@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/is-http2/-/is-http2-1.2.0.tgz#9c810bb80b3d7183cdfeff1ad503fe0d4adca117"
- integrity sha512-RNECWRTeTZcEzeYfyEVqheFbtnn6cayu/rAzIs/cEk4WmAUeNm180D7Pj7DRcXCod1FbBfOnPCl4tvO7rW+ePA==
- dependencies:
- coveralls "^2.11.4"
- find-versions "^2.0.0"
- pinkie-promise "^2.0.0"
- semver "^5.1.0"
-
-is-jpg@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-1.0.0.tgz#2959c17e73430db38264da75b90dd54f2d86da1c"
- integrity sha1-KVnBfnNDDbOCZNp1uQ3VTy2G2hw=
-
-is-jpg@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-1.0.1.tgz#296d57fdd99ce010434a7283e346ab9a1035e975"
- integrity sha1-KW1X/dmc4BBDSnKD40armhA16XU=
-
-is-my-ip-valid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
- integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==
-
-is-my-json-valid@^2.12.4:
- version "2.20.0"
- resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz#1345a6fca3e8daefc10d0fa77067f54cedafd59a"
- integrity sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==
- dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- is-my-ip-valid "^1.0.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
-
-is-natural-number@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7"
- integrity sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=
-
-is-number@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
- integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
- dependencies:
- kind-of "^3.0.2"
-
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
- dependencies:
- kind-of "^3.0.2"
-
-is-number@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
- integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
-
-is-obj@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
- integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
-
-is-otf@0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/is-otf/-/is-otf-0.1.2.tgz#5a6e2ab3a0b13b92a2912c1a95c73b5a574b44cc"
- integrity sha1-Wm4qs6CxO5KikSwalcc7WldLRMw=
- dependencies:
- b3b "0.0.1"
-
-is-plain-object@^2.0.3, is-plain-object@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
- integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
- dependencies:
- isobject "^3.0.1"
-
-is-png@1.1.0, is-png@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce"
- integrity sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=
-
-is-posix-bracket@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
- integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
-
-is-primitive@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
- integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
-
-is-promise@^2.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
- integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
-
-is-property@^1.0.0, is-property@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
- integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=
-
-is-redirect@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
- integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
-
-is-regex@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
- integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
- dependencies:
- has "^1.0.1"
-
-is-relative@^0.1.0:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82"
- integrity sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=
-
-is-retry-allowed@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
- integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
-
-is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
- integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
-
-is-svg@2.1.0, is-svg@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9"
- integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=
- dependencies:
- html-comment-regex "^1.1.0"
-
-is-symbol@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
- integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
- dependencies:
- has-symbols "^1.0.1"
-
-is-tar@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d"
- integrity sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=
-
-is-ttf@0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/is-ttf/-/is-ttf-0.2.2.tgz#7155824a33867ee4fa89c79e615e3d4716eb1b3a"
- integrity sha1-cVWCSjOGfuT6iceeYV49RxbrGzo=
- dependencies:
- b3b "0.0.1"
-
-is-typedarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
- integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
-
-is-url@^1.2.0:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
- integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
-
-is-utf8@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
- integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
-
-is-valid-glob@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe"
- integrity sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=
-
-is-windows@^1.0.1, is-windows@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
- integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-
-is-woff2@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-woff2/-/is-woff2-1.0.0.tgz#5eb9cad96d9c3d1d384f26792f95324e1582edd8"
- integrity sha1-XrnK2W2cPR04TyZ5L5UyThWC7dg=
-
-is-woff@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-woff/-/is-woff-1.0.3.tgz#4951de604a9218f458c2c18c64c835802e02fa6b"
- integrity sha1-SVHeYEqSGPRYwsGMZMg1gC4C+ms=
-
-is-zip@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325"
- integrity sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=
-
-isarray@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
- integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
-
-isarray@1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-isobject@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
- integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
- dependencies:
- isarray "1.0.0"
-
-isobject@^3.0.0, isobject@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
- integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
-
-isstream@0.1.x, isstream@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
- integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-
-jimp@0.2.28:
- version "0.2.28"
- resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2"
- integrity sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=
- dependencies:
- bignumber.js "^2.1.0"
- bmp-js "0.0.3"
- es6-promise "^3.0.2"
- exif-parser "^0.1.9"
- file-type "^3.1.0"
- jpeg-js "^0.2.0"
- load-bmfont "^1.2.3"
- mime "^1.3.4"
- mkdirp "0.5.1"
- pixelmatch "^4.0.0"
- pngjs "^3.0.0"
- read-chunk "^1.0.1"
- request "^2.65.0"
- stream-to-buffer "^0.1.0"
- tinycolor2 "^1.1.2"
- url-regex "^3.0.0"
-
-jpeg-js@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482"
- integrity sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII=
-
-jpegoptim-bin@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jpegoptim-bin/-/jpegoptim-bin-4.0.0.tgz#64839a91d8efd935c37441afc8f73ef407248bb6"
- integrity sha1-ZIOakdjv2TXDdEGvyPc+9Acki7Y=
- dependencies:
- bin-build "^2.2.0"
- bin-wrapper "^3.0.0"
- logalot "^2.0.0"
-
-jpegtran-bin@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz#f60ecf4ae999c0bdad2e9fbcdf2b6f0981e7a29b"
- integrity sha1-9g7PSumZwL2tLp+83ytvCYHnops=
- dependencies:
- bin-build "^2.0.0"
- bin-wrapper "^3.0.0"
- logalot "^2.0.0"
-
-js-yaml@3.6.1, js-yaml@~3.6.0:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30"
- integrity sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=
- dependencies:
- argparse "^1.0.7"
- esprima "^2.6.0"
-
-js-yaml@^3.13.1, js-yaml@^3.3.0, js-yaml@^3.8.4, js-yaml@~3.13.0:
- version "3.13.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
- integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-js-yaml@~2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-2.0.5.tgz#a25ae6509999e97df278c6719da11bd0687743a8"
- integrity sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=
- dependencies:
- argparse "~ 0.1.11"
- esprima "~ 1.0.2"
-
-jsbn@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
- integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-
-jshint@~2.9.4:
- version "2.9.7"
- resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.7.tgz#038a3fa5c328fa3ab03ddfd85df88d3d87bedcbd"
- integrity sha512-Q8XN38hGsVQhdlM+4gd1Xl7OB1VieSuCJf+fEJjpo59JH99bVJhXRXAh26qQ15wfdd1VPMuDWNeSWoNl53T4YA==
- dependencies:
- cli "~1.0.0"
- console-browserify "1.1.x"
- exit "0.1.x"
- htmlparser2 "3.8.x"
- lodash "~4.17.10"
- minimatch "~3.0.2"
- shelljs "0.3.x"
- strip-json-comments "1.0.x"
-
-json-schema-traverse@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
- integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
-
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json-schema@0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
- integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
-
-json-stable-stringify-without-jsonify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
- integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
-
-json-stable-stringify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
- integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
- dependencies:
- jsonify "~0.0.0"
-
-json-stringify-safe@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
- integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-
-jsonfile@^2.1.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
- integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-jsonify@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
- integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
-
-jsonpointer@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
- integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk=
-
-jsprim@^1.2.2:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
- integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
- dependencies:
- assert-plus "1.0.0"
- extsprintf "1.3.0"
- json-schema "0.2.3"
- verror "1.10.0"
-
-just-extend@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc"
- integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==
-
-kew@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
- integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=
-
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
- integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
-kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
- integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
-
-klaw@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
- integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk=
- optionalDependencies:
- graceful-fs "^4.1.9"
-
-kuler@1.0.x:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6"
- integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==
- dependencies:
- colornames "^1.1.1"
-
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
- integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
-
-lazy-req@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac"
- integrity sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=
-
-lazystream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
- integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=
- dependencies:
- readable-stream "^2.0.5"
-
-lcov-parse@0.0.10:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3"
- integrity sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=
-
-less@~2.7.1:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/less/-/less-2.7.3.tgz#cc1260f51c900a9ec0d91fb6998139e02507b63b"
- integrity sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==
- optionalDependencies:
- errno "^0.1.1"
- graceful-fs "^4.1.2"
- image-size "~0.5.0"
- mime "^1.2.11"
- mkdirp "^0.5.0"
- promise "^7.1.1"
- request "2.81.0"
- source-map "^0.5.3"
-
-levn@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
- integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
- dependencies:
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
-
-livereload-js@^2.2.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c"
- integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==
-
-load-bmfont@^1.2.3:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b"
- integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==
- dependencies:
- buffer-equal "0.0.1"
- mime "^1.3.4"
- parse-bmfont-ascii "^1.0.3"
- parse-bmfont-binary "^1.0.5"
- parse-bmfont-xml "^1.1.4"
- phin "^2.9.1"
- xhr "^2.0.1"
- xtend "^4.0.0"
-
-load-json-file@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
- integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- strip-bom "^2.0.0"
-
-lodash._basecopy@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
- integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=
-
-lodash._basetostring@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
- integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=
-
-lodash._basevalues@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
- integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=
-
-lodash._getnative@^3.0.0:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
- integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
-
-lodash._isiterateecall@^3.0.0:
- version "3.0.9"
- resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
- integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=
-
-lodash._reescape@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"
- integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=
-
-lodash._reevaluate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
- integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=
-
-lodash._reinterpolate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
- integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
-
-lodash._root@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
- integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=
-
-lodash.escape@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
- integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=
- dependencies:
- lodash._root "^3.0.0"
-
-lodash.get@^4.4.2:
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
- integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
-
-lodash.isarguments@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
- integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
-
-lodash.isarray@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
- integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
-
-lodash.isequal@^4.0.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
- integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
-
-lodash.keys@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
- integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
- dependencies:
- lodash._getnative "^3.0.0"
- lodash.isarguments "^3.0.0"
- lodash.isarray "^3.0.0"
-
-lodash.restparam@^3.0.0:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
- integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
-
-lodash.template@^3.0.0:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f"
- integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=
- dependencies:
- lodash._basecopy "^3.0.0"
- lodash._basetostring "^3.0.0"
- lodash._basevalues "^3.0.0"
- lodash._isiterateecall "^3.0.0"
- lodash._reinterpolate "^3.0.0"
- lodash.escape "^3.0.0"
- lodash.keys "^3.0.0"
- lodash.restparam "^3.0.0"
- lodash.templatesettings "^3.0.0"
-
-lodash.templatesettings@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5"
- integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=
- dependencies:
- lodash._reinterpolate "^3.0.0"
- lodash.escape "^3.0.0"
-
-lodash@^3.10.0, lodash@^3.6.0:
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
- integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
-
-lodash@^4.0.0, lodash@^4.11.0, lodash@^4.14.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.8.2, lodash@~4.17.10, lodash@~4.17.5:
- version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
- integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-
-lodash@~0.9.2:
- version "0.9.2"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-0.9.2.tgz#8f3499c5245d346d682e5b0d3b40767e09f1a92c"
- integrity sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=
-
-lodash@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551"
- integrity sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=
-
-lodash@~2.4.1:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e"
- integrity sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=
-
-lodash@~4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.3.0.tgz#efd9c4a6ec53f3b05412429915c3e4824e4d25a4"
- integrity sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=
-
-log-driver@1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
- integrity sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=
-
-logalot@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552"
- integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI=
- dependencies:
- figures "^1.3.5"
- squeak "^1.0.0"
-
-lolex@^2.2.0:
- version "2.7.5"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733"
- integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==
-
-lolex@^4.1.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7"
- integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==
-
-longest@^1.0.0, longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
- integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
-
-loud-rejection@^1.0.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
- integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
- dependencies:
- currently-unhandled "^0.4.1"
- signal-exit "^3.0.0"
-
-lower-case@^1.1.1:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
- integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
-
-lowercase-keys@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
- integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
-
-lpad-align@^1.0.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e"
- integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=
- dependencies:
- get-stdin "^4.0.1"
- indent-string "^2.1.0"
- longest "^1.0.0"
- meow "^3.3.0"
-
-lpad@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/lpad/-/lpad-0.1.0.tgz#e4c60c29139321c5970de493b496ae0d774cd2a7"
- integrity sha1-5MYMKROTIcWXDeSTtJauDXdM0qc=
-
-lru-cache@2:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
- integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=
-
-lru-cache@^4.0.1:
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
- integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
- dependencies:
- pseudomap "^1.0.2"
- yallist "^2.1.2"
-
-lru-queue@0.1:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3"
- integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=
- dependencies:
- es5-ext "~0.10.2"
-
-magic-string@^0.22.4:
- version "0.22.5"
- resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e"
- integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==
- dependencies:
- vlq "^0.2.2"
-
-make-dir@^1.0.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
- integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
- dependencies:
- pify "^3.0.0"
-
-map-cache@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
- integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
-
-map-obj@^1.0.0, map-obj@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
- integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
-
-map-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
- integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
- dependencies:
- object-visit "^1.0.0"
-
-matchdep@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e"
- integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4=
- dependencies:
- findup-sync "^2.0.0"
- micromatch "^3.0.4"
- resolve "^1.4.0"
- stack-trace "0.0.10"
-
-math-random@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
- integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
-
-maxmin@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-1.1.0.tgz#71365e84a99dd8f8b3f7d5fde2f00d1e7f73be61"
- integrity sha1-cTZehKmd2Piz99X94vANHn9zvmE=
- dependencies:
- chalk "^1.0.0"
- figures "^1.0.1"
- gzip-size "^1.0.0"
- pretty-bytes "^1.0.0"
-
-maxmin@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-2.1.0.tgz#4d3b220903d95eee7eb7ac7fa864e72dc09a3166"
- integrity sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=
- dependencies:
- chalk "^1.0.0"
- figures "^1.0.1"
- gzip-size "^3.0.0"
- pretty-bytes "^3.0.0"
-
-md5@2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
- integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
- dependencies:
- charenc "~0.0.1"
- crypt "~0.0.1"
- is-buffer "~1.1.1"
-
-mdn-data@2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
- integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
-
-media-typer@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
- integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
-
-memoizee@^0.4.14:
- version "0.4.14"
- resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57"
- integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==
- dependencies:
- d "1"
- es5-ext "^0.10.45"
- es6-weak-map "^2.0.2"
- event-emitter "^0.3.5"
- is-promise "^2.1"
- lru-queue "0.1"
- next-tick "1"
- timers-ext "^0.1.5"
-
-memorystream@~0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
- integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=
-
-meow@3.7.0, meow@^3.1.0, meow@^3.3.0, meow@^3.5.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
- integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
- dependencies:
- camelcase-keys "^2.0.0"
- decamelize "^1.1.2"
- loud-rejection "^1.0.0"
- map-obj "^1.0.1"
- minimist "^1.1.3"
- normalize-package-data "^2.3.4"
- object-assign "^4.0.1"
- read-pkg-up "^1.0.1"
- redent "^1.0.0"
- trim-newlines "^1.0.0"
-
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
- integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
-
-merge-source-map@1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f"
- integrity sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=
- dependencies:
- source-map "^0.5.6"
-
-merge-stream@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
- integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=
- dependencies:
- readable-stream "^2.0.1"
-
-method-override@~2.3.5:
- version "2.3.10"
- resolved "https://registry.yarnpkg.com/method-override/-/method-override-2.3.10.tgz#e3daf8d5dee10dd2dce7d4ae88d62bbee77476b4"
- integrity sha1-49r41d7hDdLc59SuiNYrvud0drQ=
- dependencies:
- debug "2.6.9"
- methods "~1.1.2"
- parseurl "~1.3.2"
- vary "~1.1.2"
-
-methods@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
- integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-
-microbuffer@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/microbuffer/-/microbuffer-1.0.0.tgz#8b3832ed40c87d51f47bb234913a698a756d19d2"
- integrity sha1-izgy7UDIfVH0e7I0kTppinVtGdI=
-
-micromatch@^2.3.7:
- version "2.3.11"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
- integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
- dependencies:
- arr-diff "^2.0.0"
- array-unique "^0.2.1"
- braces "^1.8.2"
- expand-brackets "^0.1.4"
- extglob "^0.3.1"
- filename-regex "^2.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.1"
- kind-of "^3.0.2"
- normalize-path "^2.0.1"
- object.omit "^2.0.0"
- parse-glob "^3.0.4"
- regex-cache "^0.4.2"
-
-micromatch@^3.0.4:
- version "3.1.10"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
- integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- braces "^2.3.1"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- extglob "^2.0.4"
- fragment-cache "^0.2.1"
- kind-of "^6.0.2"
- nanomatch "^1.2.9"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.2"
-
-mime-db@1.42.0, "mime-db@>= 1.40.0 < 2":
- version "1.42.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac"
- integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==
-
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9:
- version "2.1.25"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437"
- integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==
- dependencies:
- mime-db "1.42.0"
-
-mime@1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
- integrity sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=
-
-mime@1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
- integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
-
-mime@^1.2.11, mime@^1.3.4:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-min-document@^2.19.0:
- version "2.19.0"
- resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
- integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
- dependencies:
- dom-walk "^0.1.0"
-
-minimatch@0.3:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd"
- integrity sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=
- dependencies:
- lru-cache "2"
- sigmund "~1.0.0"
-
-"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimatch@~0.2.11, minimatch@~0.2.12:
- version "0.2.14"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
- integrity sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=
- dependencies:
- lru-cache "2"
- sigmund "~1.0.0"
-
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
- integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-
-minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
- integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
-
-minimist@~0.0.1:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
- integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
-
-minimize@2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/minimize/-/minimize-2.1.0.tgz#fa277647fc5f9a21524bfde62814ca7ce1ffd7a2"
- integrity sha1-+id2R/xfmiFSS/3mKBTKfOH/16I=
- dependencies:
- argh "^0.1.4"
- async "^2.1.5"
- cli-color "^1.2.0"
- diagnostics "^1.1.0"
- emits "^3.0.0"
- htmlparser2 "^3.9.2"
- uuid "^3.0.0"
-
-mixin-deep@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
- integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
- dependencies:
- for-in "^1.0.2"
- is-extendable "^1.0.1"
-
-mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
- dependencies:
- minimist "0.0.8"
-
-mocha@~4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794"
- integrity sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==
- dependencies:
- browser-stdout "1.3.0"
- commander "2.11.0"
- debug "3.1.0"
- diff "3.3.1"
- escape-string-regexp "1.0.5"
- glob "7.1.2"
- growl "1.10.3"
- he "1.1.1"
- mkdirp "0.5.1"
- supports-color "4.4.0"
-
-moment@^2.10.6:
- version "2.24.0"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
- integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
-
-moment@~2.18.0:
- version "2.18.1"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
- integrity sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=
-
-morgan@~1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.6.1.tgz#5fd818398c6819cba28a7cd6664f292fe1c0bbf2"
- integrity sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=
- dependencies:
- basic-auth "~1.0.3"
- debug "~2.2.0"
- depd "~1.0.1"
- on-finished "~2.3.0"
- on-headers "~1.0.0"
-
-ms@0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
- integrity sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=
-
-ms@0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
- integrity sha1-riXPJRKziFodldfwN4aNhDESR2U=
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-
-ms@^2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-multiparty@3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-3.3.2.tgz#35de6804dc19643e5249f3d3e3bdc6c8ce301d3f"
- integrity sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=
- dependencies:
- readable-stream "~1.1.9"
- stream-counter "~0.2.0"
-
-multipipe@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
- integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=
- dependencies:
- duplexer2 "0.0.2"
-
-nan@^2.0.9, nan@^2.1.0:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
-
-nanomatch@^1.2.9:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
- integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- fragment-cache "^0.2.1"
- is-windows "^1.0.2"
- kind-of "^6.0.2"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-negotiator@0.5.3:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz#269d5c476810ec92edbe7b6c2f28316384f9a7e8"
- integrity sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=
-
-negotiator@0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
- integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-
-next-tick@1, next-tick@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
- integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
-
-nise@^1.2.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.2.tgz#b6d29af10e48b321b307e10e065199338eeb2652"
- integrity sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA==
- dependencies:
- "@sinonjs/formatio" "^3.2.1"
- "@sinonjs/text-encoding" "^0.7.1"
- just-extend "^4.0.2"
- lolex "^4.1.0"
- path-to-regexp "^1.7.0"
-
-no-case@^2.2.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
- integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
- dependencies:
- lower-case "^1.1.1"
-
-node-fetch@^2.3.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
- integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
-
-node-gyp@^3.0.3:
- version "3.8.0"
- resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
- integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==
- dependencies:
- fstream "^1.0.0"
- glob "^7.0.3"
- graceful-fs "^4.1.2"
- mkdirp "^0.5.0"
- nopt "2 || 3"
- npmlog "0 || 1 || 2 || 3 || 4"
- osenv "0"
- request "^2.87.0"
- rimraf "2"
- semver "~5.3.0"
- tar "^2.0.0"
- which "1"
-
-node-pre-gyp@^0.6.2:
- version "0.6.39"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
- integrity sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==
- dependencies:
- detect-libc "^1.0.2"
- hawk "3.1.3"
- mkdirp "^0.5.1"
- nopt "^4.0.1"
- npmlog "^4.0.2"
- rc "^1.1.7"
- request "2.81.0"
- rimraf "^2.6.1"
- semver "^5.3.0"
- tar "^2.2.1"
- tar-pack "^3.4.0"
-
-node-statsd@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/node-statsd/-/node-statsd-0.1.1.tgz#27a59348763d0af7a037ac2a031fef3f051013d3"
- integrity sha1-J6WTSHY9CvegN6wqAx/vPwUQE9M=
-
-node-status-codes@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"
- integrity sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=
-
-"nopt@2 || 3", nopt@~3.0.6:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
- integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
- dependencies:
- abbrev "1"
-
-nopt@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
- integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
- dependencies:
- abbrev "1"
- osenv "^0.1.4"
-
-nopt@~1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
- integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
- dependencies:
- abbrev "1"
-
-nopt@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.0.0.tgz#ca7416f20a5e3f9c3b86180f96295fa3d0b52e0d"
- integrity sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=
- dependencies:
- abbrev "1"
-
-noptify@~0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/noptify/-/noptify-0.0.3.tgz#58f654a73d9753df0c51d9686dc92104a67f4bbb"
- integrity sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=
- dependencies:
- nopt "~2.0.0"
-
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
- integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
- dependencies:
- hosted-git-info "^2.1.4"
- resolve "^1.10.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
-
-normalize-path@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
- integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
- dependencies:
- remove-trailing-separator "^1.0.1"
-
-npm-run-path@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
- integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
- dependencies:
- path-key "^2.0.0"
-
-"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
- integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
- dependencies:
- are-we-there-yet "~1.1.2"
- console-control-strings "~1.1.0"
- gauge "~2.7.3"
- set-blocking "~2.0.0"
-
-nth-check@^1.0.2, nth-check@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
- integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
- dependencies:
- boolbase "~1.0.0"
-
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
-oauth-sign@~0.8.1, oauth-sign@~0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
- integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=
-
-oauth-sign@~0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
- integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-
-object-assign@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
- integrity sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=
-
-object-assign@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
- integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=
-
-object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-
-object-copy@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
- integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
- dependencies:
- copy-descriptor "^0.1.0"
- define-property "^0.2.5"
- kind-of "^3.0.3"
-
-object-inspect@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
- integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
-
-object-inspect@~1.4.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4"
- integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==
-
-object-is@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
- integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=
-
-object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object-visit@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
- integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
- dependencies:
- isobject "^3.0.0"
-
-object.getownpropertydescriptors@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
- integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
- dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.1"
-
-object.omit@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
- integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
- dependencies:
- for-own "^0.1.4"
- is-extendable "^0.1.1"
-
-object.pick@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
- integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
- dependencies:
- isobject "^3.0.1"
-
-object.values@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
- integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.12.0"
- function-bind "^1.1.1"
- has "^1.0.3"
-
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
- integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
- dependencies:
- ee-first "1.1.1"
-
-on-headers@~1.0.0, on-headers@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
- integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
-
-once@^1.3.0, once@^1.3.3, once@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
- dependencies:
- wrappy "1"
-
-onecolor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.1.0.tgz#b72522270a49569ac20d244b3cd40fe157fda4d2"
- integrity sha512-YZSypViXzu3ul5LMu/m6XjJ9ol8qAy9S2VjHl5E6UlhUH1KGKWabyEJifn0Jjpw23bYDzC2ucKMPGiH5kfwSGQ==
-
-onetime@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
- integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=
-
-open@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
- integrity sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=
-
-optimist-config-file@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/optimist-config-file/-/optimist-config-file-1.0.1.tgz#b5405488aced70a8e7849fd5f89c78682724be93"
- integrity sha1-tUBUiKztcKjnhJ/V+Jx4aCckvpM=
- dependencies:
- ansistyles "^0.1.3"
- debug "^2.6.8"
- js-yaml "^3.8.4"
- optimist "^0.6.1"
-
-optimist@0.6.x, optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
-optionator@^0.8.1:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
- integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
- dependencies:
- deep-is "~0.1.3"
- fast-levenshtein "~2.0.6"
- levn "~0.3.0"
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
- word-wrap "~1.2.3"
-
-optipng-bin@^3.0.0:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-3.1.4.tgz#95d34f2c488704f6fd70606bfea0c659f1d95d84"
- integrity sha1-ldNPLEiHBPb9cGBr/qDGWfHZXYQ=
- dependencies:
- bin-build "^2.0.0"
- bin-wrapper "^3.0.0"
- logalot "^2.0.0"
-
-ordered-read-streams@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b"
- integrity sha1-cTfmmzKYuzQiR6G77jiByA4v14s=
- dependencies:
- is-stream "^1.0.1"
- readable-stream "^2.0.1"
-
-os-filter-obj@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-1.0.3.tgz#5915330d90eced557d2d938a31c6dd214d9c63ad"
- integrity sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=
-
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
- integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-
-os-tmpdir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
- integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-
-osenv@0, osenv@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
- integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.0"
-
-p-finally@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
- integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-
-p-pipe@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9"
- integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k=
-
-"package@>= 1.0.0 < 1.2.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/package/-/package-1.0.1.tgz#d25a1f99e2506dcb27d6704b83dca8a312e4edcc"
- integrity sha1-0lofmeJQbcsn1nBLg9yooxLk7cw=
-
-pako@^0.2.5, "pako@~ 0.2.2", pako@~0.2.0:
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
- integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=
-
-param-case@2.1.x:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
- integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
- dependencies:
- no-case "^2.2.0"
-
-parse-bmfont-ascii@^1.0.3:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
- integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=
-
-parse-bmfont-binary@^1.0.5:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006"
- integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=
-
-parse-bmfont-xml@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389"
- integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==
- dependencies:
- xml-parse-from-string "^1.0.0"
- xml2js "^0.4.5"
-
-parse-color@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619"
- integrity sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=
- dependencies:
- color-convert "~0.5.0"
-
-parse-glob@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
- integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
- dependencies:
- glob-base "^0.3.0"
- is-dotfile "^1.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.0"
-
-parse-headers@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515"
- integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==
-
-parse-json@^2.1.0, parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
- dependencies:
- error-ex "^1.2.0"
-
-parse-node-version@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
- integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
-
-parse-passwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
- integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
-
-parseurl@~1.3.0, parseurl@~1.3.1, parseurl@~1.3.2:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
- integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
-pascalcase@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
- integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
-
-path-dirname@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
- integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
-
-path-exists@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-1.0.0.tgz#d5a8998eb71ef37a74c34eb0d9eba6e878eea081"
- integrity sha1-1aiZjrce83p0w06w2eum6HjuoIE=
-
-path-exists@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
- dependencies:
- pinkie-promise "^2.0.0"
-
-path-is-absolute@^1.0.0, path-is-absolute@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-
-path-key@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
- integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-
-path-parse@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
- integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
-
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
- integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
-
-path-to-regexp@^1.7.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
- integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
- dependencies:
- isarray "0.0.1"
-
-path-type@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
- integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
- dependencies:
- graceful-fs "^4.1.2"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-pathval@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
- integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA=
-
-pause@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/pause/-/pause-0.1.0.tgz#ebc8a4a8619ff0b8a81ac1513c3434ff469fdb74"
- integrity sha1-68ikqGGf8LioGsFRPDQ0/0af23Q=
-
-pend@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
- integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
-
-performance-now@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
- integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=
-
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
- integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-
-phantomas@1.19.0:
- version "1.19.0"
- resolved "https://registry.yarnpkg.com/phantomas/-/phantomas-1.19.0.tgz#6e50d44ecbff470131070a23fd08ef08cc8b5cf3"
- integrity sha1-blDUTsv/RwExBwoj/QjvCMyLXPM=
- dependencies:
- analyze-css "^0.12.5"
- ansicolors "~0.3.2"
- ansistyles "~0.1.0"
- ascii-table "0.0.9"
- async "^2.4.0"
- csv-string "^2.3.2"
- debug "^2.6.8"
- js-yaml "^3.8.4"
- node-statsd "0.1.1"
- optimist "^0.6.1"
- optimist-config-file "^1.0.1"
- progress "~2.0.0"
- q "^1.5.0"
- tap-producer-macbre "0.0.3"
- travis-fold ">=0.1.2"
- uuid "^3.0.1"
- optionalDependencies:
- phantomjs-prebuilt "^2.1.14"
- slimerjs "^0.10.3"
-
-phantomjs-prebuilt@^2.1.14:
- version "2.1.16"
- resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef"
- integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=
- dependencies:
- es6-promise "^4.0.3"
- extract-zip "^1.6.5"
- fs-extra "^1.0.0"
- hasha "^2.2.0"
- kew "^0.7.0"
- progress "^1.1.8"
- request "^2.81.0"
- request-progress "^2.0.1"
- which "^1.2.10"
-
-phin@^2.9.1:
- version "2.9.3"
- resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c"
- integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==
-
-pify@^2.0.0, pify@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
- integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
-
-pify@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
- integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
- integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-
-pixelmatch@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854"
- integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=
- dependencies:
- pngjs "^3.0.0"
-
-pkginfo@0.3.x:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21"
- integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=
-
-pngjs@^3.0.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
- integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
-
-posix-character-classes@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
- integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-
-prelude-ls@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
- integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-
-prepend-http@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
- integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
-
-preserve@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
- integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
-
-pretty-bytes@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84"
- integrity sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=
- dependencies:
- get-stdin "^4.0.1"
- meow "^3.1.0"
-
-pretty-bytes@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf"
- integrity sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=
- dependencies:
- number-is-nan "^1.0.0"
-
-pretty-bytes@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
- integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=
-
-process-nextick-args@~2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-
-process@~0.5.1:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
- integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=
-
-progress@^1.1.8:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
- integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=
-
-progress@~2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
- integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
-
-promise@^7.1.1:
- version "7.3.1"
- resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
- integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
- dependencies:
- asap "~2.0.3"
-
-proxy-addr@~2.0.2:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
- integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==
- dependencies:
- forwarded "~0.1.2"
- ipaddr.js "1.9.0"
-
-prr@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
- integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
-
-ps-node@0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/ps-node/-/ps-node-0.1.6.tgz#9af67a99d7b1d0132e51a503099d38a8d2ace2c3"
- integrity sha1-mvZ6mdex0BMuUaUDCZ04qNKs4sM=
- dependencies:
- table-parser "^0.1.3"
-
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
- integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-
-psl@^1.1.24:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.5.0.tgz#47fd1292def7fdb1e138cd78afa8814cebcf7b13"
- integrity sha512-4vqUjKi2huMu1OJiLhi3jN6jeeKvMZdI1tYgi/njW5zV52jNLgSAZSdN16m9bJFe61/cT8ulmw4qFitV9QRsEA==
-
-punycode@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
- integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
-
-punycode@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
- integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-
-q@1.5.1, q@^1.1.2, q@^1.5.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
- integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-
-q@~0.8.12:
- version "0.8.12"
- resolved "https://registry.yarnpkg.com/q/-/q-0.8.12.tgz#9162a91e11819c4bcda7da15cf5fefaad0778823"
- integrity sha1-kWKpHhGBnEvNp9oVz1/vqtB3iCM=
-
-qs@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607"
- integrity sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=
-
-qs@5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.0.tgz#a9f31142af468cb72b25b30136ba2456834916be"
- integrity sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=
-
-qs@6.5.1:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
- integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
-
-qs@~0.5.2:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/qs/-/qs-0.5.6.tgz#31b1ad058567651c526921506b9a8793911a0384"
- integrity sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=
-
-qs@~5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-5.1.0.tgz#4d932e5c7ea411cca76a312d39a606200fd50cd9"
- integrity sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=
-
-qs@~6.3.0:
- version "6.3.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
- integrity sha1-51vV9uJoEioqDgvaYwslUMFmUCw=
-
-qs@~6.4.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
- integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=
-
-qs@~6.5.1, qs@~6.5.2:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
- integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
-
-quote-stream@^1.0.1, quote-stream@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2"
- integrity sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=
- dependencies:
- buffer-equal "0.0.1"
- minimist "^1.1.3"
- through2 "^2.0.0"
-
-random-bytes@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
- integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=
-
-randomatic@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
- integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
- dependencies:
- is-number "^4.0.0"
- kind-of "^6.0.0"
- math-random "^1.0.1"
-
-range-parser@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175"
- integrity sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=
-
-range-parser@~1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
- integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-raw-body@2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
- integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=
- dependencies:
- bytes "3.0.0"
- http-errors "1.6.2"
- iconv-lite "0.4.19"
- unpipe "1.0.0"
-
-raw-body@~2.1.2, raw-body@~2.1.5:
- version "2.1.7"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774"
- integrity sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=
- dependencies:
- bytes "2.4.0"
- iconv-lite "0.4.13"
- unpipe "1.0.0"
-
-rc@^1.1.2, rc@^1.1.7:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
-read-all-stream@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa"
- integrity sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=
- dependencies:
- pinkie-promise "^2.0.0"
- readable-stream "^2.0.0"
-
-read-chunk@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194"
- integrity sha1-X2jKswfmY/GZk1J9m1icrORmEZQ=
-
-read-pkg-up@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
- integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
- dependencies:
- find-up "^1.0.0"
- read-pkg "^1.0.0"
-
-read-pkg@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
- integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
- dependencies:
- load-json-file "^1.0.0"
- normalize-package-data "^2.3.2"
- path-type "^1.0.0"
-
-readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.26-3:
- version "1.0.34"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
- integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-readable-stream@1.1:
- version "1.1.13"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e"
- integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-readable-stream@^1.0.33, readable-stream@~1.1.8, readable-stream@~1.1.9:
- version "1.1.14"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
- integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk=
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.3, readable-stream@~2.3.6:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
- integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~2.0.0"
- safe-buffer "~5.1.1"
- string_decoder "~1.1.1"
- util-deprecate "~1.0.1"
-
-readable-stream@^3.1.1:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc"
- integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==
- dependencies:
- inherits "^2.0.3"
- string_decoder "^1.1.1"
- util-deprecate "^1.0.1"
-
-redent@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
- integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
- dependencies:
- indent-string "^2.1.0"
- strip-indent "^1.0.1"
-
-regenerator-runtime@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
- integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
-
-regex-cache@^0.4.2:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
- integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
- dependencies:
- is-equal-shallow "^0.1.3"
-
-regex-not@^1.0.0, regex-not@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
- integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
- dependencies:
- extend-shallow "^3.0.2"
- safe-regex "^1.1.0"
-
-regexp.prototype.flags@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
- integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==
- dependencies:
- define-properties "^1.1.2"
-
-relateurl@0.2.x:
- version "0.2.7"
- resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
- integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
-
-remove-trailing-separator@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
- integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
-
-repeat-element@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
- integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
-
-repeat-string@^1.5.2, repeat-string@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
- integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-
-repeating@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
- integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
- dependencies:
- is-finite "^1.0.0"
-
-replace-ext@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
- integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=
-
-replace-ext@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
- integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
-
-request-progress@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08"
- integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=
- dependencies:
- throttleit "^1.0.0"
-
-request@2.79.0:
- version "2.79.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
- integrity sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~2.0.6"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- oauth-sign "~0.8.1"
- qs "~6.3.0"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "~0.4.1"
- uuid "^3.0.0"
-
-request@2.81.0:
- version "2.81.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
- integrity sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~4.2.1"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- oauth-sign "~0.8.1"
- performance-now "^0.2.0"
- qs "~6.4.0"
- safe-buffer "^5.0.1"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "^0.6.0"
- uuid "^3.0.0"
-
-request@2.83.0:
- version "2.83.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
- integrity sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.6.0"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.1"
- forever-agent "~0.6.1"
- form-data "~2.3.1"
- har-validator "~5.0.3"
- hawk "~6.0.2"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.17"
- oauth-sign "~0.8.2"
- performance-now "^2.1.0"
- qs "~6.5.1"
- safe-buffer "^5.1.1"
- stringstream "~0.0.5"
- tough-cookie "~2.3.3"
- tunnel-agent "^0.6.0"
- uuid "^3.1.0"
-
-request@^2.65.0, request@^2.81.0, request@^2.87.0:
- version "2.88.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
- integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.8.0"
- caseless "~0.12.0"
- combined-stream "~1.0.6"
- extend "~3.0.2"
- forever-agent "~0.6.1"
- form-data "~2.3.2"
- har-validator "~5.1.0"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.19"
- oauth-sign "~0.9.0"
- performance-now "^2.1.0"
- qs "~6.5.2"
- safe-buffer "^5.1.2"
- tough-cookie "~2.4.3"
- tunnel-agent "^0.6.0"
- uuid "^3.3.2"
-
-resolve-dir@^1.0.0, resolve-dir@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
- integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=
- dependencies:
- expand-tilde "^2.0.0"
- global-modules "^1.0.0"
-
-resolve-url@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
- integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-
-resolve@1.1.7, resolve@~1.1.0:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
- integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-
-resolve@^1.1.5, resolve@^1.10.0, resolve@^1.4.0:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
- integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
- dependencies:
- path-parse "^1.0.6"
-
-response-time@~2.3.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/response-time/-/response-time-2.3.2.tgz#ffa71bab952d62f7c1d49b7434355fbc68dffc5a"
- integrity sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=
- dependencies:
- depd "~1.1.0"
- on-headers "~1.0.1"
-
-restructure@^0.5.3:
- version "0.5.4"
- resolved "https://registry.yarnpkg.com/restructure/-/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8"
- integrity sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg=
- dependencies:
- browserify-optional "^1.0.0"
-
-ret@~0.1.10:
- version "0.1.15"
- resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
- integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-
-right-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
- integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8=
- dependencies:
- align-text "^0.1.1"
-
-rimraf@2, rimraf@^2.2.6, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
- integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
- dependencies:
- glob "^7.1.3"
-
-rimraf@2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
- integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
- dependencies:
- glob "^7.0.5"
-
-rimraf@~2.2.6, rimraf@~2.2.8:
- version "2.2.8"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
- integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=
-
-rimraf@~2.6.2:
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
- integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
- dependencies:
- glob "^7.1.3"
-
-rndm@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/rndm/-/rndm-1.2.0.tgz#f33fe9cfb52bbfd520aa18323bc65db110a1b76c"
- integrity sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=
-
-safe-buffer@5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
- integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
-
-safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
- integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
-
-safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-safe-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
- integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
- dependencies:
- ret "~0.1.10"
-
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-samsam@1.x:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50"
- integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==
-
-sax@0.6.x:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9"
- integrity sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=
-
-sax@1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.4.tgz#74b6d33c9ae1e001510f179a91168588f1aedaa9"
- integrity sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=
-
-sax@>=0.6.0, sax@~1.2.1, sax@~1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
- integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
-seek-bzip@^1.0.3:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
- integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=
- dependencies:
- commander "~2.8.1"
-
-semver-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9"
- integrity sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=
-
-semver-truncate@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8"
- integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=
- dependencies:
- semver "^5.3.0"
-
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-semver@^4.0.3:
- version "4.3.6"
- resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
- integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=
-
-semver@~5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
- integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
-
-send@0.13.2:
- version "0.13.2"
- resolved "https://registry.yarnpkg.com/send/-/send-0.13.2.tgz#765e7607c8055452bba6f0b052595350986036de"
- integrity sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=
- dependencies:
- debug "~2.2.0"
- depd "~1.1.0"
- destroy "~1.0.4"
- escape-html "~1.0.3"
- etag "~1.7.0"
- fresh "0.3.0"
- http-errors "~1.3.1"
- mime "1.3.4"
- ms "0.7.1"
- on-finished "~2.3.0"
- range-parser "~1.0.3"
- statuses "~1.2.1"
-
-send@0.16.1:
- version "0.16.1"
- resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3"
- integrity sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==
- dependencies:
- debug "2.6.9"
- depd "~1.1.1"
- destroy "~1.0.4"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "~1.6.2"
- mime "1.4.1"
- ms "2.0.0"
- on-finished "~2.3.0"
- range-parser "~1.2.0"
- statuses "~1.3.1"
-
-serve-favicon@~2.3.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.3.2.tgz#dd419e268de012ab72b319d337f2105013f9381f"
- integrity sha1-3UGeJo3gEqtysxnTN/IQUBP5OB8=
- dependencies:
- etag "~1.7.0"
- fresh "0.3.0"
- ms "0.7.2"
- parseurl "~1.3.1"
-
-serve-index@~1.7.2:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.7.3.tgz#7a057fc6ee28dc63f64566e5fa57b111a86aecd2"
- integrity sha1-egV/xu4o3GP2RWbl+lexEahq7NI=
- dependencies:
- accepts "~1.2.13"
- batch "0.5.3"
- debug "~2.2.0"
- escape-html "~1.0.3"
- http-errors "~1.3.1"
- mime-types "~2.1.9"
- parseurl "~1.3.1"
-
-serve-static@1.13.1:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719"
- integrity sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==
- dependencies:
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- parseurl "~1.3.2"
- send "0.16.1"
-
-serve-static@~1.10.0:
- version "1.10.3"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.10.3.tgz#ce5a6ecd3101fed5ec09827dac22a9c29bfb0535"
- integrity sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=
- dependencies:
- escape-html "~1.0.3"
- parseurl "~1.3.1"
- send "0.13.2"
-
-set-blocking@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
- integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-set-immediate-shim@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
- integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=
-
-set-value@^2.0.0, set-value@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
- integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
- dependencies:
- extend-shallow "^2.0.1"
- is-extendable "^0.1.1"
- is-plain-object "^2.0.3"
- split-string "^3.0.1"
-
-setprototypeof@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
- integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=
-
-setprototypeof@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
- integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
-
-shallow-copy@~0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170"
- integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=
-
-shebang-command@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
- integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
- dependencies:
- shebang-regex "^1.0.0"
-
-shebang-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
- integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
-
-shelljs@0.3.x:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1"
- integrity sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=
-
-sigmund@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
- integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
-
-signal-exit@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
- integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
-
-simple-swizzle@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
- integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
- dependencies:
- is-arrayish "^0.3.1"
-
-sinon-chai@~2.14.0:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d"
- integrity sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ==
-
-sinon@~4.1.6:
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.1.6.tgz#9cb346bddb180d68a804429ffe14978d7fafd629"
- integrity sha1-nLNGvdsYDWioBEKf/hSXjX+v1ik=
- dependencies:
- diff "^3.1.0"
- formatio "1.2.0"
- lodash.get "^4.4.2"
- lolex "^2.2.0"
- nise "^1.2.0"
- supports-color "^5.1.0"
- type-detect "^4.0.5"
-
-slick@~1.12.1:
- version "1.12.2"
- resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7"
- integrity sha1-vQSN23TefRymkV+qSldXCzVQwtc=
-
-slimerjs@^0.10.3:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/slimerjs/-/slimerjs-0.10.3.tgz#bfd95eb0634e81a23b23833a422f68be32cffec8"
- integrity sha1-v9lesGNOgaI7I4M6Qi9ovjLP/sg=
-
-snapdragon-node@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
- integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
- dependencies:
- define-property "^1.0.0"
- isobject "^3.0.0"
- snapdragon-util "^3.0.1"
-
-snapdragon-util@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
- integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
- dependencies:
- kind-of "^3.2.0"
-
-snapdragon@^0.8.1:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
- integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
- dependencies:
- base "^0.11.1"
- debug "^2.2.0"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- map-cache "^0.2.2"
- source-map "^0.5.6"
- source-map-resolve "^0.5.0"
- use "^3.1.0"
-
-sntp@1.x.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
- integrity sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=
- dependencies:
- hoek "2.x.x"
-
-sntp@2.x.x:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
- integrity sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==
- dependencies:
- hoek "4.x.x"
-
-source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
- integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
- dependencies:
- atob "^2.1.1"
- decode-uri-component "^0.2.0"
- resolve-url "^0.2.1"
- source-map-url "^0.4.0"
- urix "^0.1.0"
-
-source-map-url@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
- integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
-
-source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
- integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-
-source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-source-map@~0.1.30:
- version "0.1.43"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
- integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=
- dependencies:
- amdefine ">=0.0.4"
-
-sparkles@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c"
- integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==
-
-spdx-correct@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
- integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
- dependencies:
- spdx-expression-parse "^3.0.0"
- spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
- integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
-
-spdx-expression-parse@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
- integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
- dependencies:
- spdx-exceptions "^2.1.0"
- spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
- integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
-
-specificity@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019"
- integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==
-
-split-string@^3.0.1, split-string@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
- integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
- dependencies:
- extend-shallow "^3.0.0"
-
-sprintf-js@^1.0.3:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
- integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
-squeak@^1.0.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3"
- integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=
- dependencies:
- chalk "^1.0.0"
- console-stream "^0.1.1"
- lpad-align "^1.0.1"
-
-sshpk@^1.7.0:
- version "1.16.1"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
- integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
- dependencies:
- asn1 "~0.2.3"
- assert-plus "^1.0.0"
- bcrypt-pbkdf "^1.0.0"
- dashdash "^1.12.0"
- ecc-jsbn "~0.1.1"
- getpass "^0.1.1"
- jsbn "~0.1.0"
- safer-buffer "^2.0.2"
- tweetnacl "~0.14.0"
-
-stable@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
- integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
-
-stack-trace@0.0.10, stack-trace@0.0.x:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
- integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
-
-stat-mode@^0.2.0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502"
- integrity sha1-5sgLYjEj19gM8TLOU480YokHJQI=
-
-static-eval@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.3.tgz#cb62fc79946bd4d5f623a45ad428233adace4d72"
- integrity sha512-zsxDGucfAh8T339sSKgpFbvg15Fms2IVaJGC+jqp0bVsxhcpM+iMeAI8weNo8dmf4OblgifTBUoyk1vGVtYw2w==
- dependencies:
- escodegen "^1.11.1"
-
-static-extend@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
- integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
- dependencies:
- define-property "^0.2.5"
- object-copy "^0.1.0"
-
-static-module@^2.2.0:
- version "2.2.5"
- resolved "https://registry.yarnpkg.com/static-module/-/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf"
- integrity sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==
- dependencies:
- concat-stream "~1.6.0"
- convert-source-map "^1.5.1"
- duplexer2 "~0.1.4"
- escodegen "~1.9.0"
- falafel "^2.1.0"
- has "^1.0.1"
- magic-string "^0.22.4"
- merge-source-map "1.0.4"
- object-inspect "~1.4.0"
- quote-stream "~1.0.2"
- readable-stream "~2.3.3"
- shallow-copy "~0.0.1"
- static-eval "^2.0.0"
- through2 "~2.0.3"
-
-statuses@1, "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
- integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-
-statuses@~1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.2.1.tgz#dded45cc18256d51ed40aec142489d5c61026d28"
- integrity sha1-3e1FzBglbVHtQK7BQkidXGECbSg=
-
-statuses@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
- integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=
-
-stream-combiner2@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
- integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4=
- dependencies:
- duplexer2 "~0.1.0"
- readable-stream "^2.0.2"
-
-stream-counter@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-0.2.0.tgz#ded266556319c8b0e222812b9cf3b26fa7d947de"
- integrity sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=
- dependencies:
- readable-stream "~1.1.8"
-
-stream-shift@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
- integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
-
-stream-to-buffer@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9"
- integrity sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=
- dependencies:
- stream-to "~0.2.0"
-
-stream-to@~0.2.0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d"
- integrity sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=
-
-string-width@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-"string-width@^1.0.2 || 2":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
-string.prototype.trimleft@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634"
- integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==
- dependencies:
- define-properties "^1.1.3"
- function-bind "^1.1.1"
-
-string.prototype.trimright@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58"
- integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==
- dependencies:
- define-properties "^1.1.3"
- function-bind "^1.1.1"
-
-string_decoder@^1.1.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
- integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
- dependencies:
- safe-buffer "~5.2.0"
-
-string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
- integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
-
-string_decoder@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
- dependencies:
- safe-buffer "~5.1.0"
-
-stringstream@~0.0.4, stringstream@~0.0.5:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72"
- integrity sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==
-
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
- dependencies:
- ansi-regex "^3.0.0"
-
-strip-bom-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee"
- integrity sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=
- dependencies:
- first-chunk-stream "^1.0.0"
- strip-bom "^2.0.0"
-
-strip-bom@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
- integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
- dependencies:
- is-utf8 "^0.2.0"
-
-strip-dirs@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0"
- integrity sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=
- dependencies:
- chalk "^1.0.0"
- get-stdin "^4.0.1"
- is-absolute "^0.1.5"
- is-natural-number "^2.0.0"
- minimist "^1.1.0"
- sum-up "^1.0.1"
-
-strip-eof@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
- integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-
-strip-indent@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
- integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
- dependencies:
- get-stdin "^4.0.1"
-
-strip-json-comments@1.0.x:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
- integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=
-
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-
-strip-outer@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631"
- integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==
- dependencies:
- escape-string-regexp "^1.0.2"
-
-sugar@^1.4.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/sugar/-/sugar-1.5.0.tgz#d9d3fba10f7a887e06e6adfb078a27acb1fc0556"
- integrity sha1-2dP7oQ96iH4G5q37B4onrLH8BVY=
-
-sum-up@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e"
- integrity sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=
- dependencies:
- chalk "^1.0.0"
-
-supports-color@4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
- integrity sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==
- dependencies:
- has-flag "^2.0.0"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
- integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-
-supports-color@^5.1.0, supports-color@^5.3.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
- integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
- dependencies:
- has-flag "^3.0.0"
-
-svg-pathdata@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/svg-pathdata/-/svg-pathdata-1.0.0.tgz#90f6a1c963cd4be13a9e300f79a1a3dde3c80334"
- integrity sha1-kPahyWPNS+E6njAPeaGj3ePIAzQ=
- dependencies:
- readable-stream "~1.0.26-3"
-
-svg2ttf@~2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/svg2ttf/-/svg2ttf-2.1.1.tgz#103d3a236f6596c47a2490ec22b67c051ee4692e"
- integrity sha1-ED06I29llsR6JJDsIrZ8BR7kaS4=
- dependencies:
- argparse "^1.0.3"
- cubic2quad "^1.0.0"
- lodash "^3.6.0"
- microbuffer "^1.0.0"
- svgpath "^2.1.2"
- xmldom "~0.1.16"
-
-svgicons2svgfont@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/svgicons2svgfont/-/svgicons2svgfont-1.1.0.tgz#0c7119c9e5916c9d7473c853b9b8e4404fa08d0b"
- integrity sha1-DHEZyeWRbJ10c8hTubjkQE+gjQs=
- dependencies:
- readable-stream "^1.0.33"
- sax "0.6.x"
- svg-pathdata "1.0.0"
-
-svgo@^1.0.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
- integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
- dependencies:
- chalk "^2.4.1"
- coa "^2.0.2"
- css-select "^2.0.0"
- css-select-base-adapter "^0.1.1"
- css-tree "1.0.0-alpha.37"
- csso "^4.0.2"
- js-yaml "^3.13.1"
- mkdirp "~0.5.1"
- object.values "^1.1.0"
- sax "~1.2.4"
- stable "^0.1.8"
- unquote "~1.1.1"
- util.promisify "~1.0.0"
-
-svgo@~0.6.1:
- version "0.6.6"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.6.6.tgz#b340889036f20f9b447543077d0f5573ed044c08"
- integrity sha1-s0CIkDbyD5tEdUMHfQ9Vc+0ETAg=
- dependencies:
- coa "~1.0.1"
- colors "~1.1.2"
- csso "~2.0.0"
- js-yaml "~3.6.0"
- mkdirp "~0.5.1"
- sax "~1.2.1"
- whet.extend "~0.9.9"
-
-svgpath@^2.1.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/svgpath/-/svgpath-2.2.2.tgz#1c70d44e27f7b6bd42a74ed3c960be93e411def3"
- integrity sha512-7cXFbkZvPkZpKLC+3QIfyUd3/Un/CvJONjTD3Gz5qLuEa73StPOt8kZjTi9apxO6zwCaza0bPNnmzTyrQ4qQlw==
-
-table-parser@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/table-parser/-/table-parser-0.1.3.tgz#0441cfce16a59481684c27d1b5a67ff15a43c7b0"
- integrity sha1-BEHPzhallIFoTCfRtaZ/8VpDx7A=
- dependencies:
- connected-domain "^1.0.0"
-
-tap-producer-macbre@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/tap-producer-macbre/-/tap-producer-macbre-0.0.3.tgz#33a14bc35c4abc4b5bb46c3c78c10813ceb55d7e"
- integrity sha1-M6FLw1xKvEtbtGw8eMEIE861XX4=
- dependencies:
- inherits "^2.0.1"
- yamlish "^0.0.7"
-
-tar-pack@^3.4.0:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
- integrity sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==
- dependencies:
- debug "^2.2.0"
- fstream "^1.0.10"
- fstream-ignore "^1.0.5"
- once "^1.3.3"
- readable-stream "^2.1.4"
- rimraf "^2.5.1"
- tar "^2.2.1"
- uid-number "^0.0.6"
-
-tar-stream@^1.1.1:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
- integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==
- dependencies:
- bl "^1.0.0"
- buffer-alloc "^1.2.0"
- end-of-stream "^1.0.0"
- fs-constants "^1.0.0"
- readable-stream "^2.3.0"
- to-buffer "^1.1.1"
- xtend "^4.0.0"
-
-tar@^2.0.0, tar@^2.2.1:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40"
- integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==
- dependencies:
- block-stream "*"
- fstream "^1.0.12"
- inherits "2"
-
-temp-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
- integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=
-
-temp@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/temp/-/temp-0.7.0.tgz#d34bdc8e7f955da2a6a473fea07ad601d68ba78f"
- integrity sha1-00vcjn+VXaKmpHP+oHrWAdaLp48=
- dependencies:
- rimraf "~2.2.6"
-
-temp@~0.8.3:
- version "0.8.4"
- resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2"
- integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==
- dependencies:
- rimraf "~2.6.2"
-
-tempfile@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2"
- integrity sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=
- dependencies:
- os-tmpdir "^1.0.0"
- uuid "^2.0.1"
-
-tempfile@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265"
- integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU=
- dependencies:
- temp-dir "^1.0.0"
- uuid "^3.0.1"
-
-temporary@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/temporary/-/temporary-0.0.8.tgz#a18a981d28ba8ca36027fb3c30538c3ecb740ac0"
- integrity sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=
- dependencies:
- package ">= 1.0.0 < 1.2.0"
-
-text-hex@1.0.x:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
- integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
-
-thread-sleep@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/thread-sleep/-/thread-sleep-1.0.4.tgz#7485590a616f1fb96cfa7eabb063aff012b477d3"
- integrity sha1-dIVZCmFvH7ls+n6rsGOv8BK0d9M=
- dependencies:
- nan "^2.0.9"
- node-pre-gyp "^0.6.2"
-
-throttleit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
- integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
-
-through2-filter@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec"
- integrity sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=
- dependencies:
- through2 "~2.0.0"
- xtend "~4.0.0"
-
-through2-filter@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254"
- integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==
- dependencies:
- through2 "~2.0.0"
- xtend "~4.0.0"
-
-through2@^0.6.0, through2@^0.6.1:
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
- integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=
- dependencies:
- readable-stream ">=1.0.33-1 <1.1.0-0"
- xtend ">=4.0.0 <4.1.0-0"
-
-through2@^2.0.0, through2@~2.0.0, through2@~2.0.3:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
- integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
- dependencies:
- readable-stream "~2.3.6"
- xtend "~4.0.1"
-
-through@~2.3.4:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
-time-stamp@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
- integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
-
-timed-out@^3.0.0:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217"
- integrity sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=
-
-timers-ext@^0.1.5:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6"
- integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==
- dependencies:
- es5-ext "~0.10.46"
- next-tick "1"
-
-tiny-inflate@^1.0.0, tiny-inflate@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4"
- integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==
-
-tiny-lr-fork@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/tiny-lr-fork/-/tiny-lr-fork-0.0.5.tgz#1e99e1e2a8469b736ab97d97eefa98c71f76ed0a"
- integrity sha1-Hpnh4qhGm3NquX2X7vqYxx927Qo=
- dependencies:
- debug "~0.7.0"
- faye-websocket "~0.4.3"
- noptify "~0.0.3"
- qs "~0.5.2"
-
-tiny-lr@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-0.2.1.tgz#b3fdba802e5d56a33c2f6f10794b32e477ac729d"
- integrity sha1-s/26gC5dVqM8L28QeUsy5Hescp0=
- dependencies:
- body-parser "~1.14.0"
- debug "~2.2.0"
- faye-websocket "~0.10.0"
- livereload-js "^2.2.0"
- parseurl "~1.3.0"
- qs "~5.1.0"
-
-tinycolor2@^1.1.2:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"
- integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=
-
-to-absolute-glob@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f"
- integrity sha1-HN+kcqnvUMI57maZm2YsoOs5k38=
- dependencies:
- extend-shallow "^2.0.1"
-
-to-buffer@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
- integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
-
-to-object-path@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
- integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
- dependencies:
- kind-of "^3.0.2"
-
-to-regex-range@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
- integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
- dependencies:
- is-number "^3.0.0"
- repeat-string "^1.6.1"
-
-to-regex@^3.0.1, to-regex@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
- integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
- dependencies:
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- regex-not "^1.0.2"
- safe-regex "^1.1.0"
-
-touch@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.3.tgz#51aef3d449571d4f287a5d87c9c8b49181a0db1d"
- integrity sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=
- dependencies:
- nopt "~1.0.10"
-
-tough-cookie@~2.3.0, tough-cookie@~2.3.3:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
- integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==
- dependencies:
- punycode "^1.4.1"
-
-tough-cookie@~2.4.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
- integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
- dependencies:
- psl "^1.1.24"
- punycode "^1.4.1"
-
-travis-fold@>=0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/travis-fold/-/travis-fold-0.1.2.tgz#fec005f9dcaa259a3f9459ce5a6906aba4c545da"
- integrity sha1-/sAF+dyqJZo/lFnOWmkGq6TFRdo=
-
-trim-newlines@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
- integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
-
-trim-repeated@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
- integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE=
- dependencies:
- escape-string-regexp "^1.0.2"
-
-try-thread-sleep@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/try-thread-sleep/-/try-thread-sleep-1.0.2.tgz#c1e09326be83ae9b1613d41f5303f0ea778ae855"
- integrity sha1-weCTJr6DrpsWE9QfUwPw6neK6FU=
- optionalDependencies:
- thread-sleep "^1.0.4"
-
-tsscmp@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97"
- integrity sha1-fcSjOvcVgatDN9qR2FylQn69mpc=
-
-ttf2eot@~1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/ttf2eot/-/ttf2eot-1.3.0.tgz#94671eacfa5ad7799cd6f9f5b6030f513b032ac2"
- integrity sha1-lGcerPpa13mc1vn1tgMPUTsDKsI=
- dependencies:
- argparse "~0.1.15"
-
-ttf2woff2@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/ttf2woff2/-/ttf2woff2-2.0.3.tgz#5e020afe6e643287f3ad7687abed20fe654eb329"
- integrity sha1-XgIK/m5kMofzrXaHq+0g/mVOsyk=
- dependencies:
- bindings "^1.2.1"
- bufferstreams "^1.1.0"
- nan "^2.1.0"
- node-gyp "^3.0.3"
-
-ttf2woff@~1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/ttf2woff/-/ttf2woff-1.3.0.tgz#76a27a6f30ea037a9ed64c9ff43ec7ed461e6d2a"
- integrity sha1-dqJ6bzDqA3qe1kyf9D7H7UYebSo=
- dependencies:
- argparse "~ 0.1.15"
- pako "~ 0.2.2"
-
-tunnel-agent@^0.4.0, tunnel-agent@~0.4.1:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
- integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=
-
-tunnel-agent@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
- integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
- dependencies:
- safe-buffer "^5.0.1"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
- version "0.14.5"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
- integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
-
-type-check@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
- integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
- dependencies:
- prelude-ls "~1.1.2"
-
-type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-
-type-is@~1.6.10, type-is@~1.6.15, type-is@~1.6.6:
- version "1.6.18"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
- integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
- dependencies:
- media-typer "0.3.0"
- mime-types "~2.1.24"
-
-type@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
- integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
-
-type@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3"
- integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==
-
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
- integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-
-uglify-js@2.8.29:
- version "2.8.29"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
- integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0=
- dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
-
-uglify-js@3.4.x:
- version "3.4.10"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"
- integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==
- dependencies:
- commander "~2.19.0"
- source-map "~0.6.1"
-
-uglify-js@~3.3.0:
- version "3.3.28"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.28.tgz#0efb9a13850e11303361c1051f64d2ec68d9be06"
- integrity sha512-68Rc/aA6cswiaQ5SrE979UJcXX+ADA1z33/ZsPd+fbAiVdjZ16OXdbtGO+rJUUBgK6qdf3SOPhQf3K/ybF5Miw==
- dependencies:
- commander "~2.15.0"
- source-map "~0.6.1"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
- integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
-
-uid-number@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
- integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=
-
-uid-safe@2.1.4:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.4.tgz#3ad6f38368c6d4c8c75ec17623fb79aa1d071d81"
- integrity sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=
- dependencies:
- random-bytes "~1.0.0"
-
-uid-safe@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.0.0.tgz#a7f3c6ca64a1f6a5d04ec0ef3e4c3d5367317137"
- integrity sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=
- dependencies:
- base64-url "1.2.1"
-
-underscore.string@~2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.2.1.tgz#d7c0fa2af5d5a1a67f4253daee98132e733f0f19"
- integrity sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=
-
-underscore.string@~2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d"
- integrity sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=
-
-underscore.string@~2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
- integrity sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=
-
-underscore.string@~3.2.3:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.2.3.tgz#806992633665d5e5fcb4db1fb3a862eb68e9e6da"
- integrity sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=
-
-underscore.string@~3.3.4:
- version "3.3.5"
- resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.5.tgz#fc2ad255b8bd309e239cbc5816fd23a9b7ea4023"
- integrity sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==
- dependencies:
- sprintf-js "^1.0.3"
- util-deprecate "^1.0.2"
-
-underscore@~1.4:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
- integrity sha1-YaajIBBiKvoHljvzJSA88SI51gQ=
-
-underscore@~1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
- integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=
-
-unicode-properties@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/unicode-properties/-/unicode-properties-1.3.1.tgz#cc642b6314bde2c691d65dd94cece09ed84f1282"
- integrity sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA==
- dependencies:
- base64-js "^1.3.0"
- unicode-trie "^2.0.0"
-
-unicode-trie@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085"
- integrity sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=
- dependencies:
- pako "^0.2.5"
- tiny-inflate "^1.0.0"
-
-unicode-trie@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8"
- integrity sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==
- dependencies:
- pako "^0.2.5"
- tiny-inflate "^1.0.0"
-
-union-value@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
- integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
- dependencies:
- arr-union "^3.1.0"
- get-value "^2.0.6"
- is-extendable "^0.1.1"
- set-value "^2.0.1"
-
-unique-stream@^2.0.2:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac"
- integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==
- dependencies:
- json-stable-stringify-without-jsonify "^1.0.1"
- through2-filter "^3.0.0"
-
-unpipe@1.0.0, unpipe@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
- integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-
-unquote@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
- integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
-
-unset-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
- integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
- dependencies:
- has-value "^0.3.1"
- isobject "^3.0.0"
-
-unzip-response@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe"
- integrity sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=
-
-upper-case@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
- integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
-
-uri-js@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
- integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
- dependencies:
- punycode "^2.1.0"
-
-uri-path@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32"
- integrity sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=
-
-urix@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
- integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-
-url-parse-lax@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
- integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=
- dependencies:
- prepend-http "^1.0.1"
-
-url-regex@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724"
- integrity sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=
- dependencies:
- ip-regex "^1.0.1"
-
-use@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
- integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-
-util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
- integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-
-util.promisify@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
- integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
- dependencies:
- define-properties "^1.1.2"
- object.getownpropertydescriptors "^2.0.3"
-
-utils-merge@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
- integrity sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=
-
-utils-merge@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
- integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-
-uuid@^2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
- integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=
-
-uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
- integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
-
-vali-date@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6"
- integrity sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=
-
-validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
- integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
- dependencies:
- spdx-correct "^3.0.0"
- spdx-expression-parse "^3.0.0"
-
-vary@^1, vary@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
- integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
-
-vary@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10"
- integrity sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=
-
-verror@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
- integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
- dependencies:
- assert-plus "^1.0.0"
- core-util-is "1.0.2"
- extsprintf "^1.2.0"
-
-vhost@~3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/vhost/-/vhost-3.0.2.tgz#2fb1decd4c466aa88b0f9341af33dc1aff2478d5"
- integrity sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=
-
-vinyl-assign@^1.0.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45"
- integrity sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=
- dependencies:
- object-assign "^4.0.1"
- readable-stream "^2.0.0"
-
-vinyl-fs@^2.2.0:
- version "2.4.4"
- resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239"
- integrity sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=
- dependencies:
- duplexify "^3.2.0"
- glob-stream "^5.3.2"
- graceful-fs "^4.0.0"
- gulp-sourcemaps "1.6.0"
- is-valid-glob "^0.3.0"
- lazystream "^1.0.0"
- lodash.isequal "^4.0.0"
- merge-stream "^1.0.0"
- mkdirp "^0.5.0"
- object-assign "^4.0.0"
- readable-stream "^2.0.4"
- strip-bom "^2.0.0"
- strip-bom-stream "^1.0.0"
- through2 "^2.0.0"
- through2-filter "^2.0.0"
- vali-date "^1.0.0"
- vinyl "^1.0.0"
-
-vinyl@^0.4.3:
- version "0.4.6"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847"
- integrity sha1-LzVsh6VQolVGHza76ypbqL94SEc=
- dependencies:
- clone "^0.2.0"
- clone-stats "^0.0.1"
-
-vinyl@^0.5.0:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde"
- integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=
- dependencies:
- clone "^1.0.0"
- clone-stats "^0.0.1"
- replace-ext "0.0.1"
-
-vinyl@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884"
- integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=
- dependencies:
- clone "^1.0.0"
- clone-stats "^0.0.1"
- replace-ext "0.0.1"
-
-vlq@^0.2.2:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26"
- integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==
-
-ware@^1.2.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4"
- integrity sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=
- dependencies:
- wrap-fn "^0.1.0"
-
-websocket-driver@>=0.5.1:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
- integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==
- dependencies:
- http-parser-js ">=0.4.0 <0.4.11"
- safe-buffer ">=5.1.0"
- websocket-extensions ">=0.1.1"
-
-websocket-extensions@>=0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
- integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
-
-whet.extend@~0.9.9:
- version "0.9.9"
- resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
- integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=
-
-which@1, which@^1.2.10, which@^1.2.14, which@^1.2.9, which@~1.3.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
- integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
- dependencies:
- isexe "^2.0.0"
-
-which@~1.0.5:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/which/-/which-1.0.9.tgz#460c1da0f810103d0321a9b633af9e575e64486f"
- integrity sha1-RgwdoPgQED0DIam2M6+eV15kSG8=
-
-wide-align@^1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
- integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
- dependencies:
- string-width "^1.0.2 || 2"
-
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
- integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
-
-winston@~2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/winston/-/winston-2.1.1.tgz#3c9349d196207fd1bdff9d4bc43ef72510e3a12e"
- integrity sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=
- dependencies:
- async "~1.0.0"
- colors "1.0.x"
- cycle "1.0.x"
- eyes "0.1.x"
- isstream "0.1.x"
- pkginfo "0.3.x"
- stack-trace "0.0.x"
-
-word-wrap@~1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
- integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
- integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
- integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
-
-wrap-fn@^0.1.0:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845"
- integrity sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=
- dependencies:
- co "3.1.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-xhr@^2.0.1:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd"
- integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==
- dependencies:
- global "~4.3.0"
- is-function "^1.0.1"
- parse-headers "^2.0.0"
- xtend "^4.0.0"
-
-xml-parse-from-string@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
- integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
-
-xml2js@^0.4.5:
- version "0.4.22"
- resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.22.tgz#4fa2d846ec803237de86f30aa9b5f70b6600de02"
- integrity sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==
- dependencies:
- sax ">=0.6.0"
- util.promisify "~1.0.0"
- xmlbuilder "~11.0.0"
-
-xmlbuilder@~11.0.0:
- version "11.0.1"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
- integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
-
-xmldom@~0.1.16:
- version "0.1.27"
- resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
- integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk=
-
-"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
- integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-
-yamlish@^0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/yamlish/-/yamlish-0.0.7.tgz#b4af9a1dcc63618873c3d6e451ec3213c39a57fb"
- integrity sha1-tK+aHcxjYYhzw9bkUewyE8OaV/s=
-
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
- integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=
- dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"
-
-yauzl@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
- integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=
- dependencies:
- fd-slicer "~1.0.1"
-
-yauzl@^2.2.1:
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
- integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
- dependencies:
- buffer-crc32 "~0.2.3"
- fd-slicer "~1.1.0"