critical-path-css-rails 1.0.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -1
  3. data/.rubocop_todo.yml +23 -7
  4. data/BACKLOG.md +0 -4
  5. data/Gemfile +4 -0
  6. data/README.md +32 -13
  7. data/app_container_name +1 -0
  8. data/config.ru +6 -0
  9. data/critical-path-css-rails.gemspec +14 -14
  10. data/docker-compose.yml +21 -0
  11. data/docker/ruby/.env +1 -0
  12. data/docker/ruby/Dockerfile +21 -0
  13. data/docker/ruby/startup.dev +6 -0
  14. data/ext/npm/extconf.rb +0 -1
  15. data/lib/critical-path-css-rails.rb +1 -1
  16. data/lib/critical_path_css/configuration.rb +0 -1
  17. data/lib/critical_path_css/css_fetcher.rb +1 -6
  18. data/lib/critical_path_css/rails/config_loader.rb +2 -2
  19. data/lib/critical_path_css/rails/version.rb +1 -1
  20. data/lib/npm_commands.rb +2 -3
  21. data/package-lock.json +194 -622
  22. data/package.json +2 -2
  23. data/spec/features/generate_and_fetch_critical_css_spec.rb +16 -0
  24. data/spec/internal/app/controllers/root_controller.rb +3 -0
  25. data/spec/internal/app/views/layouts/application.html.erb +4 -0
  26. data/spec/internal/app/views/root/index.html.erb +1 -0
  27. data/spec/internal/config/critical_path_css.yml +11 -0
  28. data/spec/internal/config/database.yml +3 -0
  29. data/spec/internal/config/routes.rb +3 -0
  30. data/spec/internal/db/schema.rb +3 -0
  31. data/spec/internal/log/.gitignore +1 -0
  32. data/spec/internal/public/favicon.ico +0 -0
  33. data/spec/{fixtures/static → internal/public}/test.css +1 -1
  34. data/spec/spec_helper.rb +9 -3
  35. metadata +22 -9
  36. data/spec/css_fetcher_spec.rb +0 -25
  37. data/spec/fixtures/static/test.html +0 -7
  38. data/spec/support/static_file_server.rb +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f899e091bc1f1dba8d638c3f2f07c733d3be5bff
4
- data.tar.gz: 3cc6f7c50dd02b0984e169b4309215ced4dc9e90
3
+ metadata.gz: 4696a63ddd3ad54c82aec57022eb6af5c5da15c8
4
+ data.tar.gz: 527e233160b2c60192e99db4a41d9e80cfe386ba
5
5
  SHA512:
6
- metadata.gz: 9d48435251d2f016e80baf5ac9354296f692779dd0e2705803c504c8362e04c12a9e179ccc5319df5421acfdfb4be52a87a4aa07276b86f7831b6d90c9565d0b
7
- data.tar.gz: c8630c8c9eff597c5cd11bdfc6b46d857da145469e33ec68ec024b31016d0f62ee03741242593fba41ca204b8f3d74483732b18003fca53290d311da0c17788b
6
+ metadata.gz: 7c16a7613a13d80fcaccbc38b60acb3e75c1f2653be23fdfe4ea0c1484edf24d0cb052e29af1ac7e65761983f780c57982af7ddfc49a0b48269303dc4433146e
7
+ data.tar.gz: abf72716e397c47056bea256a32c34d3d2af2a12c85506954d733fc2c5e8cc723dfed3fd0e30cdaea02ef53489b710c552271c43c514c1d8150ba291b5e3e078
data/.rubocop.yml CHANGED
@@ -6,7 +6,6 @@ AllCops:
6
6
  - 'spec/*_helper.rb'
7
7
  - 'Gemfile'
8
8
  - 'Rakefile'
9
- - 'Vagrantfile'
10
9
 
11
10
  Documentation:
12
11
  Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -1,18 +1,34 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2015-10-29 13:19:55 -0500 using RuboCop version 0.34.1.
3
+ # on 2017-12-29 15:04:25 +0000 using RuboCop version 0.52.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 3
10
- # Configuration parameters: AllowURI, URISchemes.
11
- Metrics/LineLength:
12
- Max: 91
9
+ # Offense count: 1
10
+ Metrics/AbcSize:
11
+ Max: 19
13
12
 
14
13
  # Offense count: 1
15
- # Configuration parameters: Exclude.
16
- Style/FileName:
14
+ # Configuration parameters: CountComments.
15
+ Metrics/MethodLength:
16
+ Max: 31
17
+
18
+ # Offense count: 1
19
+ Naming/AccessorMethodName:
20
+ Exclude:
21
+ - 'spec/support/static_file_server.rb'
22
+
23
+ # Offense count: 1
24
+ # Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms.
25
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
26
+ Naming/FileName:
17
27
  Exclude:
18
28
  - 'lib/critical-path-css-rails.rb'
29
+
30
+ # Offense count: 4
31
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
32
+ # URISchemes: http, https
33
+ Metrics/LineLength:
34
+ Max: 96
data/BACKLOG.md CHANGED
@@ -1,12 +1,8 @@
1
1
  # Backlog
2
2
 
3
- ## Tests
4
- - Add a testing suite (preferably rspec)
5
-
6
3
  ## Features
7
4
  - Allow the user to give a single route for a Controller#Show route, instead of hard coding every unique Resource#Show URL
8
5
  * Implementation should account for any route that allows variables/parameters in the URL
9
6
  - Error reporting during CSS generation (404, 500 errors, etc.)
10
- - Allow the user to pass arguments to Penthouse.js, i.e. Viewport size, etc. For a list of the configurable options, please see [Penthouse](https://github.com/pocketjoso/penthouse)
11
7
  - Improve installation process, if possible
12
8
  - Improve implementation. Is their a better solution then using Rails.cache?
data/Gemfile CHANGED
@@ -3,8 +3,12 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  group :development, :test do
6
+ gem 'actionpack'
6
7
  gem 'byebug', platform: [:ruby], require: false
7
8
  gem 'rubocop', require: false
9
+ gem 'rspec-rails', '~> 3.6'
10
+ gem 'capybara', '~> 2.16'
11
+ gem 'pry-rails'
8
12
  end
9
13
 
10
14
  # HACK: npm install on bundle
data/README.md CHANGED
@@ -2,22 +2,32 @@
2
2
 
3
3
  Only load the CSS you need for the initial viewport in Rails!
4
4
 
5
- This gem give you the ability to load only the CSS you *need* on an initial page view. This gives you blazin' fast rending as there's no initial network call to grab your application's CSS.
5
+ This gem gives you the ability to load only the CSS you *need* on an initial page view. This gives you blazin' fast rending as there's no initial network call to grab your application's CSS.
6
6
 
7
7
  This gem assumes that you'll load the rest of the CSS asyncronously. At the moment, the suggested way is to use the [loadcss-rails](https://github.com/michael-misshore/loadcss-rails) gem.
8
8
 
9
9
  This gem uses [Penthouse](https://github.com/pocketjoso/penthouse) to generate the critical CSS.
10
10
 
11
- ## Upgrading to the Latest Release
11
+ ## Dependency Requirements for / Upgrading to the Latest Release
12
12
 
13
- Upgrade instructions from each version are included below.
13
+ ### For 1.0.0 or later
14
+ To maintain the latest version of Penthouse, this gem depends on NodeJS and NVM to be installed on the system.
15
+
16
+ ### For 2.0.0 or later
17
+ This gem may require additional packages to be installed to run Chrome headless. Per the Penthouse documentation, this may be all you need:
18
+
19
+ ```
20
+ sudo apt-get install libnss3
21
+ ```
22
+
23
+ However, more packages may need to be installed depending on your OS distribution which can be found via [this answer](https://github.com/GoogleChrome/puppeteer/issues/404#issuecomment-323555784)
14
24
 
15
25
  ## Installation
16
26
 
17
- Add `critical-path-css-rails` to your Gemfile:
27
+ After reviewing the dependency requirements, add `critical-path-css-rails` to your Gemfile:
18
28
 
19
29
  ```
20
- gem 'critical-path-css-rails', '~> 1.0.0'
30
+ gem 'critical-path-css-rails', '~> 2.3.0'
21
31
  ```
22
32
 
23
33
  Download and install by running:
@@ -110,9 +120,6 @@ Careful use of these methods allows the developer to generate critical path CSS
110
120
 
111
121
  A user can use these methods to [dynamically generate critical path CSS](https://gist.github.com/taranda/1597e97ccf24c978b59aef9249666c77) without using the `rake critical_path_css:generate` rake task and without hardcoding the application's routes into `config/critical_path_css.yml`. See [this Gist](https://gist.github.com/taranda/1597e97ccf24c978b59aef9249666c77) for an example of such an implementation.
112
122
 
113
- ## Upgrading from version 0.X.X to 1.0.0
114
- To maintain the latest version of Penthouse, this gem now depends on NodeJS and NVM to be installed on the system.
115
-
116
123
  ## Upgrading from a version earlier than 0.3.0
117
124
 
118
125
  The latest version of Critcal Path CSS Rails changes the functionality of the `generate` method. In past versions,
@@ -124,7 +131,21 @@ Developers upgrading from versions prior to 0.3.0 will need to replace `Critical
124
131
  rails generate critical_path_css:install
125
132
  ```
126
133
 
127
- Answer 'Y' when prompted to overwrite `critical_path_css.rake`. However, overwriting `critical_path_css.yml` is not necessary and not recommended.
134
+ Answer 'Y' when prompted to overwrite `critical_path_css.rake`. However, overwriting `critical_path_css.yml` is not recommended nor necessary.
135
+
136
+
137
+ ## Testing / Development
138
+
139
+ This gem is to be tested inside of docker/docker-compose. [Combustion](https://github.com/pat/combustion), alongside rspec-rails and capybara, are the primary components for testing. To run the test, you'll need to have [Docker](https://docs.docker.com/engine/installation) installed. Once installed, run the following commands in the gem's root to build, run, and shell into the docker container.
140
+
141
+ ```Bash
142
+ docker-compose build
143
+ docker-compose up -d
144
+ docker exec -it $(cat app_container_name) /bin/bash
145
+ ```
146
+
147
+ Once shell'd in, run `bundle exec rspec spec` to run the test. The test rails app lives in `spec/internal`, and it can be viewed locally at `http://localhost:9292/`
148
+
128
149
 
129
150
  ## Versions
130
151
 
@@ -138,8 +159,6 @@ major version bump = major-level updates to critical-path-css-rails, Penthouse,
138
159
 
139
160
  ## Contributing
140
161
 
141
- Feel free to open an issue ticket if you find something that could be improved. A couple notes:
142
-
143
- * If the Penthouse.js script is outdated (i.e. maybe a new version of Penthouse.js was released yesterday), feel free to open an issue and prod us to get that thing updated. However, for security reasons, we won't be accepting pull requests with updated Penthouse.js script.
162
+ Feel free to open an issue ticket if you find something that could be improved.
144
163
 
145
- Copyright Mudbug Media and Michael Misshore, released under the MIT License.
164
+ Copyright Mudbug Media and Michael Misshore, released under the MIT License.
@@ -0,0 +1 @@
1
+ criticalpathcss_ruby
data/config.ru ADDED
@@ -0,0 +1,6 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'combustion'
4
+
5
+ Combustion.initialize! :action_controller, :action_view
6
+ run Combustion::Application
@@ -1,20 +1,20 @@
1
1
  require File.expand_path('../lib/critical_path_css/rails/version', __FILE__)
2
2
 
3
- Gem::Specification.new do |s|
4
- s.name = 'critical-path-css-rails'
5
- s.version = CriticalPathCSS::Rails::VERSION
6
- s.platform = Gem::Platform::RUBY
7
- s.authors = ['Michael Misshore']
8
- s.email = 'mmisshore@gmail.com'
9
- s.summary = 'Critical Path CSS for Rails!'
10
- s.description = 'Only load the CSS you need for the initial viewport in Rails!'
11
- s.license = 'MIT'
3
+ Gem::Specification.new do |gem|
4
+ gem.name = 'critical-path-css-rails'
5
+ gem.version = CriticalPathCSS::Rails::VERSION
6
+ gem.platform = Gem::Platform::RUBY
7
+ gem.authors = ['Michael Misshore']
8
+ gem.email = 'mmisshore@gmail.com'
9
+ gem.summary = 'Critical Path CSS for Rails!'
10
+ gem.description = 'Only load the CSS you need for the initial viewport in Rails!'
11
+ gem.license = 'MIT'
12
12
 
13
- s.files = `git ls-files`.split("\n")
14
- s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
15
- s.require_path = 'lib'
13
+ gem.files = `git ls-files`.split("\n")
14
+ gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
15
+ gem.require_path = 'lib'
16
16
 
17
- s.add_development_dependency 'rspec', '~> 3.6'
17
+ gem.add_development_dependency 'combustion', '~> 0.7.0'
18
18
 
19
- s.extensions = ['ext/npm/extconf.rb']
19
+ gem.extensions = ['ext/npm/extconf.rb']
20
20
  end
@@ -0,0 +1,21 @@
1
+ version: '2'
2
+ services:
3
+ ruby:
4
+ build:
5
+ context: .
6
+ dockerfile: docker/ruby/Dockerfile
7
+ ports:
8
+ - 9292:9292
9
+ volumes:
10
+ - .:/app:rw
11
+ volumes_from:
12
+ - data
13
+ env_file: docker/ruby/.env
14
+ container_name: criticalpathcss_ruby
15
+ data:
16
+ build:
17
+ context: .
18
+ dockerfile: docker/ruby/Dockerfile
19
+ volumes:
20
+ - /gems
21
+ command: "true"
data/docker/ruby/.env ADDED
@@ -0,0 +1 @@
1
+ RAILS_ENV=development
@@ -0,0 +1,21 @@
1
+ FROM ruby:2.5.0
2
+
3
+ # Install Dependencies
4
+ RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
5
+ RUN apt-get update && apt-get install -y build-essential libpq-dev nodejs npm
6
+
7
+ # Install Penthouse JS Dependencies
8
+ RUN apt-get install -y libpangocairo-1.0-0 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxi6 libxtst6 libnss3 libcups2 libxss1 libxrandr2 libgconf2-4 libasound2 libatk1.0-0 libgtk-3-0
9
+
10
+ RUN npm cache clean -f
11
+ RUN npm install -g n
12
+ RUN n 8.9.3
13
+ RUN ln -sf /usr/local/n/versions/node/8.9.3/bin/node /usr/bin/nodejs
14
+
15
+ ENV BUNDLE_PATH /gems
16
+
17
+ WORKDIR /app
18
+
19
+ COPY docker/ruby/startup.dev /usr/local/bin/startup
20
+ RUN chmod 755 /usr/local/bin/startup
21
+ CMD "/usr/local/bin/startup"
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+
3
+ bundle check || bundle install
4
+ bundle update critical-path-css-rails
5
+
6
+ bundle exec rackup --host 0.0.0.0
data/ext/npm/extconf.rb CHANGED
@@ -1,3 +1,2 @@
1
1
  File.write 'Makefile',
2
2
  "make:\n\t\ninstall:\n\truby install.rb\nclean:\n\t\n"
3
-
@@ -3,7 +3,7 @@ require 'critical_path_css/css_fetcher'
3
3
  require 'critical_path_css/rails/config_loader'
4
4
 
5
5
  module CriticalPathCss
6
- CACHE_NAMESPACE = 'critical-path-css'
6
+ CACHE_NAMESPACE = 'critical-path-css'.freeze
7
7
 
8
8
  def self.generate(route)
9
9
  ::Rails.cache.write(
@@ -1,7 +1,6 @@
1
1
  require 'erb'
2
2
  module CriticalPathCss
3
3
  class Configuration
4
-
5
4
  def initialize(config)
6
5
  @config = config
7
6
  end
@@ -33,7 +33,7 @@ module CriticalPathCss
33
33
  # '^\.regexWorksToo'
34
34
  ],
35
35
  # ms; abort critical CSS generation after this timeout
36
- 'timeout' => 30000,
36
+ 'timeout' => 30_000,
37
37
  # set to true to throw on CSS errors (will run faster if no errors)
38
38
  'strict' => false,
39
39
  # characters; strip out inline base64 encoded resources larger than this
@@ -44,11 +44,6 @@ module CriticalPathCss
44
44
  'renderWaitTime' => 100,
45
45
  # set to false to load (external) JS (default: true)
46
46
  'blockJSRequests' => true,
47
- # see `phantomjs --help` for the list of all available options
48
- 'phantomJsOptions' => {
49
- 'ignore-ssl-errors' => true,
50
- 'ssl-protocol' => 'tlsv1'
51
- },
52
47
  'customPageHeaders' => {
53
48
  # use if getting compression errors like 'Data corrupted':
54
49
  'Accept-Encoding' => 'identity'
@@ -1,10 +1,10 @@
1
1
  module CriticalPathCss
2
2
  module Rails
3
3
  class ConfigLoader
4
- CONFIGURATION_FILENAME = 'critical_path_css.yml'
4
+ CONFIGURATION_FILENAME = 'critical_path_css.yml'.freeze
5
5
 
6
6
  def load
7
- config = YAML.load(ERB.new(File.read(configuration_file_path)).result)[::Rails.env]
7
+ config = YAML.safe_load(ERB.new(File.read(configuration_file_path)).result, [], [], true)[::Rails.env]
8
8
  config['css_path'] = "#{::Rails.root}/public" + (
9
9
  config['css_path'] ||
10
10
  ActionController::Base.helpers.stylesheet_path(
@@ -1,5 +1,5 @@
1
1
  module CriticalPathCSS
2
2
  module Rails
3
- VERSION = '1.0.1'
3
+ VERSION = '2.3.0'.freeze
4
4
  end
5
5
  end
data/lib/npm_commands.rb CHANGED
@@ -2,9 +2,8 @@
2
2
 
3
3
  # NPM wrapper with helpful error messages
4
4
  class NpmCommands
5
-
6
5
  # @return [Boolean] whether the installation succeeded
7
- def install(*args) # rubocop:disable Metrics/MethodLength
6
+ def install(*args)
8
7
  return false unless check_nodejs_installed
9
8
  STDERR.puts 'Installing npm dependencies...'
10
9
  install_status = Dir.chdir File.expand_path('..', File.dirname(__FILE__)) do
@@ -24,7 +23,7 @@ class NpmCommands
24
23
 
25
24
  private
26
25
 
27
- def check_nodejs_installed # rubocop:disable Metrics/MethodLength
26
+ def check_nodejs_installed
28
27
  return true if executable?('node')
29
28
  STDERR.puts(
30
29
  '-' * 60,
data/package-lock.json CHANGED
@@ -1,119 +1,48 @@
1
1
  {
2
2
  "name": "critical-path-css-rails",
3
- "version": "1.0.0",
3
+ "version": "2.3.0",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
7
- "amdefine": {
8
- "version": "1.0.1",
9
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
10
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
11
- },
12
- "ansi-regex": {
13
- "version": "2.1.1",
14
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
15
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
16
- },
17
- "ansi-styles": {
18
- "version": "2.2.1",
19
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
20
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
21
- },
22
- "apartment": {
23
- "version": "1.1.1",
24
- "resolved": "https://registry.npmjs.org/apartment/-/apartment-1.1.1.tgz",
25
- "integrity": "sha1-/ZQGzcyodTWULxWzYKGrWkqpfiY=",
26
- "requires": {
27
- "css": "git+https://github.com/pocketjoso/css.git#8ddea7e3cbc0a183ecf694a7a5fbc84326893893",
28
- "get-stdin": "5.0.1",
29
- "lodash": "3.10.1",
30
- "minimist": "1.2.0"
31
- }
32
- },
33
- "asn1": {
34
- "version": "0.2.3",
35
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
36
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
37
- },
38
- "assert-plus": {
39
- "version": "0.2.0",
40
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
41
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
42
- },
43
- "asynckit": {
44
- "version": "0.4.0",
45
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
46
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
47
- },
48
- "atob": {
49
- "version": "1.1.3",
50
- "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz",
51
- "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M="
52
- },
53
- "aws-sign2": {
54
- "version": "0.6.0",
55
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
56
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
57
- },
58
- "aws4": {
59
- "version": "1.6.0",
60
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
61
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
62
- },
63
- "bcrypt-pbkdf": {
64
- "version": "1.0.1",
65
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
66
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
67
- "optional": true,
7
+ "agent-base": {
8
+ "version": "4.1.2",
9
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.2.tgz",
10
+ "integrity": "sha512-VE6QoEdaugY86BohRtfGmTDabxdU5sCKOkbcPA6PXKJsRzEi/7A3RCTxJal1ft/4qSfPht5/iQLhMh/wzSkkNw==",
68
11
  "requires": {
69
- "tweetnacl": "0.14.5"
12
+ "es6-promisify": "5.0.0"
70
13
  }
71
14
  },
72
- "boom": {
73
- "version": "2.10.1",
74
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
75
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
76
- "requires": {
77
- "hoek": "2.16.3"
78
- }
79
- },
80
- "caseless": {
81
- "version": "0.11.0",
82
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
83
- "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
15
+ "async-limiter": {
16
+ "version": "1.0.0",
17
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
18
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
84
19
  },
85
- "chalk": {
86
- "version": "1.1.3",
87
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
88
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
89
- "requires": {
90
- "ansi-styles": "2.2.1",
91
- "escape-string-regexp": "1.0.5",
92
- "has-ansi": "2.0.0",
93
- "strip-ansi": "3.0.1",
94
- "supports-color": "2.0.0"
95
- }
20
+ "balanced-match": {
21
+ "version": "1.0.0",
22
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
23
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
96
24
  },
97
- "combined-stream": {
98
- "version": "1.0.5",
99
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
100
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
25
+ "brace-expansion": {
26
+ "version": "1.1.8",
27
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
28
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
101
29
  "requires": {
102
- "delayed-stream": "1.0.0"
30
+ "balanced-match": "1.0.0",
31
+ "concat-map": "0.0.1"
103
32
  }
104
33
  },
105
- "commander": {
106
- "version": "2.11.0",
107
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
108
- "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ=="
34
+ "concat-map": {
35
+ "version": "0.0.1",
36
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
37
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
109
38
  },
110
39
  "concat-stream": {
111
- "version": "1.5.0",
112
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz",
113
- "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=",
40
+ "version": "1.6.0",
41
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
42
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
114
43
  "requires": {
115
44
  "inherits": "2.0.3",
116
- "readable-stream": "2.0.6",
45
+ "readable-stream": "2.3.3",
117
46
  "typedarray": "0.0.6"
118
47
  }
119
48
  },
@@ -122,93 +51,62 @@
122
51
  "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
123
52
  "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
124
53
  },
125
- "cryptiles": {
126
- "version": "2.0.5",
127
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
128
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
129
- "requires": {
130
- "boom": "2.10.1"
131
- }
132
- },
133
- "css": {
134
- "version": "git+https://github.com/pocketjoso/css.git#8ddea7e3cbc0a183ecf694a7a5fbc84326893893",
135
- "requires": {
136
- "inherits": "2.0.3",
137
- "source-map": "0.1.43",
138
- "source-map-resolve": "0.3.1",
139
- "urix": "0.1.0"
140
- }
141
- },
142
54
  "css-mediaquery": {
143
55
  "version": "0.1.2",
144
56
  "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
145
57
  "integrity": "sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA="
146
58
  },
147
- "dashdash": {
148
- "version": "1.14.1",
149
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
150
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
59
+ "css-tree": {
60
+ "version": "1.0.0-alpha.26",
61
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.26.tgz",
62
+ "integrity": "sha1-aQvuNFj7W2twAFU5g8jDCHbaCz4=",
151
63
  "requires": {
152
- "assert-plus": "1.0.0"
153
- },
154
- "dependencies": {
155
- "assert-plus": {
156
- "version": "1.0.0",
157
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
158
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
159
- }
64
+ "mdn-data": "1.0.0",
65
+ "source-map": "0.5.7"
160
66
  }
161
67
  },
162
68
  "debug": {
163
- "version": "0.7.4",
164
- "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
165
- "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk="
166
- },
167
- "delayed-stream": {
168
- "version": "1.0.0",
169
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
170
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
171
- },
172
- "ecc-jsbn": {
173
- "version": "0.1.1",
174
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
175
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
176
- "optional": true,
69
+ "version": "3.1.0",
70
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
71
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
177
72
  "requires": {
178
- "jsbn": "0.1.1"
73
+ "ms": "2.0.0"
179
74
  }
180
75
  },
181
76
  "es6-promise": {
182
- "version": "4.0.5",
183
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz",
184
- "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI="
77
+ "version": "4.2.2",
78
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.2.tgz",
79
+ "integrity": "sha512-LSas5vsuA6Q4nEdf9wokY5/AJYXry98i0IzXsv49rYsgDGDNDPbqAYR1Pe23iFxygfbGZNR/5VrHXBCh2BhvUQ=="
185
80
  },
186
- "escape-string-regexp": {
187
- "version": "1.0.5",
188
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
189
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
190
- },
191
- "extend": {
192
- "version": "3.0.1",
193
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
194
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
81
+ "es6-promisify": {
82
+ "version": "5.0.0",
83
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
84
+ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
85
+ "requires": {
86
+ "es6-promise": "4.2.2"
87
+ }
195
88
  },
196
89
  "extract-zip": {
197
- "version": "1.5.0",
198
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz",
199
- "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=",
90
+ "version": "1.6.6",
91
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
92
+ "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
200
93
  "requires": {
201
- "concat-stream": "1.5.0",
202
- "debug": "0.7.4",
94
+ "concat-stream": "1.6.0",
95
+ "debug": "2.6.9",
203
96
  "mkdirp": "0.5.0",
204
97
  "yauzl": "2.4.1"
98
+ },
99
+ "dependencies": {
100
+ "debug": {
101
+ "version": "2.6.9",
102
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
103
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
104
+ "requires": {
105
+ "ms": "2.0.0"
106
+ }
107
+ }
205
108
  }
206
109
  },
207
- "extsprintf": {
208
- "version": "1.0.2",
209
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
210
- "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA="
211
- },
212
110
  "fd-slicer": {
213
111
  "version": "1.0.1",
214
112
  "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
@@ -217,121 +115,40 @@
217
115
  "pend": "1.2.0"
218
116
  }
219
117
  },
220
- "forever-agent": {
221
- "version": "0.6.1",
222
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
223
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
224
- },
225
- "form-data": {
226
- "version": "2.1.4",
227
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
228
- "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
229
- "requires": {
230
- "asynckit": "0.4.0",
231
- "combined-stream": "1.0.5",
232
- "mime-types": "2.1.16"
233
- }
234
- },
235
- "fs-extra": {
118
+ "fs.realpath": {
236
119
  "version": "1.0.0",
237
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
238
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
239
- "requires": {
240
- "graceful-fs": "4.1.11",
241
- "jsonfile": "2.4.0",
242
- "klaw": "1.3.1"
243
- }
244
- },
245
- "generate-function": {
246
- "version": "2.0.0",
247
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
248
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
249
- },
250
- "generate-object-property": {
251
- "version": "1.2.0",
252
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
253
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
254
- "requires": {
255
- "is-property": "1.0.2"
256
- }
257
- },
258
- "get-stdin": {
259
- "version": "5.0.1",
260
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
261
- "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g="
262
- },
263
- "getpass": {
264
- "version": "0.1.7",
265
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
266
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
267
- "requires": {
268
- "assert-plus": "1.0.0"
269
- },
270
- "dependencies": {
271
- "assert-plus": {
272
- "version": "1.0.0",
273
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
274
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
275
- }
276
- }
120
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
121
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
277
122
  },
278
- "graceful-fs": {
279
- "version": "4.1.11",
280
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
281
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
282
- },
283
- "har-validator": {
284
- "version": "2.0.6",
285
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
286
- "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
287
- "requires": {
288
- "chalk": "1.1.3",
289
- "commander": "2.11.0",
290
- "is-my-json-valid": "2.16.0",
291
- "pinkie-promise": "2.0.1"
292
- }
293
- },
294
- "has-ansi": {
295
- "version": "2.0.0",
296
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
297
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
123
+ "glob": {
124
+ "version": "7.1.2",
125
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
126
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
298
127
  "requires": {
299
- "ansi-regex": "2.1.1"
300
- }
301
- },
302
- "hasha": {
303
- "version": "2.2.0",
304
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
305
- "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
306
- "requires": {
307
- "is-stream": "1.1.0",
308
- "pinkie-promise": "2.0.1"
128
+ "fs.realpath": "1.0.0",
129
+ "inflight": "1.0.6",
130
+ "inherits": "2.0.3",
131
+ "minimatch": "3.0.4",
132
+ "once": "1.4.0",
133
+ "path-is-absolute": "1.0.1"
309
134
  }
310
135
  },
311
- "hawk": {
312
- "version": "3.1.3",
313
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
314
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
136
+ "https-proxy-agent": {
137
+ "version": "2.1.1",
138
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.1.1.tgz",
139
+ "integrity": "sha512-LK6tQUR/VOkTI6ygAfWUKKP95I+e6M1h7N3PncGu1CATHCnex+CAv9ttR0lbHu1Uk2PXm/WoAHFo6JCGwMjVMw==",
315
140
  "requires": {
316
- "boom": "2.10.1",
317
- "cryptiles": "2.0.5",
318
- "hoek": "2.16.3",
319
- "sntp": "1.0.9"
141
+ "agent-base": "4.1.2",
142
+ "debug": "3.1.0"
320
143
  }
321
144
  },
322
- "hoek": {
323
- "version": "2.16.3",
324
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
325
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
326
- },
327
- "http-signature": {
328
- "version": "1.1.1",
329
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
330
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
145
+ "inflight": {
146
+ "version": "1.0.6",
147
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
148
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
331
149
  "requires": {
332
- "assert-plus": "0.2.0",
333
- "jsprim": "1.4.0",
334
- "sshpk": "1.13.1"
150
+ "once": "1.4.0",
151
+ "wrappy": "1.0.2"
335
152
  }
336
153
  },
337
154
  "inherits": {
@@ -339,134 +156,38 @@
339
156
  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
340
157
  "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
341
158
  },
342
- "is-my-json-valid": {
343
- "version": "2.16.0",
344
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
345
- "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=",
346
- "requires": {
347
- "generate-function": "2.0.0",
348
- "generate-object-property": "1.2.0",
349
- "jsonpointer": "4.0.1",
350
- "xtend": "4.0.1"
351
- }
352
- },
353
- "is-property": {
354
- "version": "1.0.2",
355
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
356
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
357
- },
358
- "is-stream": {
359
- "version": "1.1.0",
360
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
361
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
362
- },
363
- "is-typedarray": {
364
- "version": "1.0.0",
365
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
366
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
367
- },
368
159
  "isarray": {
369
160
  "version": "1.0.0",
370
161
  "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
371
162
  "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
372
163
  },
373
- "isexe": {
374
- "version": "2.0.0",
375
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
376
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
377
- },
378
- "isstream": {
379
- "version": "0.1.2",
380
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
381
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
382
- },
383
- "jsbn": {
384
- "version": "0.1.1",
385
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
386
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
387
- "optional": true
388
- },
389
164
  "jsesc": {
390
165
  "version": "1.3.0",
391
166
  "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
392
167
  "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
393
168
  },
394
- "json-schema": {
395
- "version": "0.2.3",
396
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
397
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
398
- },
399
- "json-stringify-safe": {
400
- "version": "5.0.1",
401
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
402
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
403
- },
404
- "jsonfile": {
405
- "version": "2.4.0",
406
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
407
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
408
- "requires": {
409
- "graceful-fs": "4.1.11"
410
- }
411
- },
412
- "jsonpointer": {
413
- "version": "4.0.1",
414
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
415
- "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk="
416
- },
417
- "jsprim": {
418
- "version": "1.4.0",
419
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
420
- "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
421
- "requires": {
422
- "assert-plus": "1.0.0",
423
- "extsprintf": "1.0.2",
424
- "json-schema": "0.2.3",
425
- "verror": "1.3.6"
426
- },
427
- "dependencies": {
428
- "assert-plus": {
429
- "version": "1.0.0",
430
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
431
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
432
- }
433
- }
434
- },
435
- "kew": {
436
- "version": "0.7.0",
437
- "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
438
- "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s="
439
- },
440
- "klaw": {
441
- "version": "1.3.1",
442
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
443
- "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
444
- "requires": {
445
- "graceful-fs": "4.1.11"
446
- }
447
- },
448
- "lodash": {
449
- "version": "3.10.1",
450
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
451
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
169
+ "mdn-data": {
170
+ "version": "1.0.0",
171
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.0.0.tgz",
172
+ "integrity": "sha1-pp2dp2hHtNWDTBRl6iXAZTofv2Y="
452
173
  },
453
- "mime-db": {
454
- "version": "1.29.0",
455
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz",
456
- "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg="
174
+ "mime": {
175
+ "version": "1.6.0",
176
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
177
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
457
178
  },
458
- "mime-types": {
459
- "version": "2.1.16",
460
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
461
- "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=",
179
+ "minimatch": {
180
+ "version": "3.0.4",
181
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
182
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
462
183
  "requires": {
463
- "mime-db": "1.29.0"
184
+ "brace-expansion": "1.1.8"
464
185
  }
465
186
  },
466
187
  "minimist": {
467
- "version": "1.2.0",
468
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
469
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
188
+ "version": "0.0.8",
189
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
190
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
470
191
  },
471
192
  "mkdirp": {
472
193
  "version": "0.5.0",
@@ -474,24 +195,25 @@
474
195
  "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
475
196
  "requires": {
476
197
  "minimist": "0.0.8"
477
- },
478
- "dependencies": {
479
- "minimist": {
480
- "version": "0.0.8",
481
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
482
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
483
- }
484
198
  }
485
199
  },
486
- "oauth-sign": {
487
- "version": "0.8.2",
488
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
489
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
200
+ "ms": {
201
+ "version": "2.0.0",
202
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
203
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
490
204
  },
491
- "os-tmpdir": {
492
- "version": "1.0.2",
493
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
494
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
205
+ "once": {
206
+ "version": "1.4.0",
207
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
208
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
209
+ "requires": {
210
+ "wrappy": "1.0.2"
211
+ }
212
+ },
213
+ "path-is-absolute": {
214
+ "version": "1.0.1",
215
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
216
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
495
217
  },
496
218
  "pend": {
497
219
  "version": "1.2.0",
@@ -499,47 +221,15 @@
499
221
  "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
500
222
  },
501
223
  "penthouse": {
502
- "version": "0.11.5",
503
- "resolved": "https://registry.npmjs.org/penthouse/-/penthouse-0.11.5.tgz",
504
- "integrity": "sha1-/+y0LwrsYkhYWC8nLqLcIYGHyVI=",
224
+ "version": "1.3.0",
225
+ "resolved": "https://registry.npmjs.org/penthouse/-/penthouse-1.3.0.tgz",
226
+ "integrity": "sha512-4Ex8KM4VKdW3avbuaNQfoyFpFnOXKHoX+zeCIL6zuQ7F2y+aHXNzG4rg3FtoLCh/M5So94SKEbAzBwAC97nRMg==",
505
227
  "requires": {
506
- "apartment": "1.1.1",
507
- "css": "git+https://github.com/pocketjoso/css.git#8ddea7e3cbc0a183ecf694a7a5fbc84326893893",
508
228
  "css-mediaquery": "0.1.2",
229
+ "css-tree": "1.0.0-alpha.26",
230
+ "debug": "3.1.0",
509
231
  "jsesc": "1.3.0",
510
- "os-tmpdir": "1.0.2",
511
- "phantomjs-prebuilt": "2.1.14",
512
- "regenerator-runtime": "0.10.5",
513
- "tmp": "0.0.31"
514
- }
515
- },
516
- "phantomjs-prebuilt": {
517
- "version": "2.1.14",
518
- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz",
519
- "integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=",
520
- "requires": {
521
- "es6-promise": "4.0.5",
522
- "extract-zip": "1.5.0",
523
- "fs-extra": "1.0.0",
524
- "hasha": "2.2.0",
525
- "kew": "0.7.0",
526
- "progress": "1.1.8",
527
- "request": "2.79.0",
528
- "request-progress": "2.0.1",
529
- "which": "1.2.14"
530
- }
531
- },
532
- "pinkie": {
533
- "version": "2.0.4",
534
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
535
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
536
- },
537
- "pinkie-promise": {
538
- "version": "2.0.1",
539
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
540
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
541
- "requires": {
542
- "pinkie": "2.0.4"
232
+ "puppeteer": "0.12.0"
543
233
  }
544
234
  },
545
235
  "process-nextick-args": {
@@ -548,228 +238,110 @@
548
238
  "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
549
239
  },
550
240
  "progress": {
551
- "version": "1.1.8",
552
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
553
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="
554
- },
555
- "punycode": {
556
- "version": "1.4.1",
557
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
558
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
241
+ "version": "2.0.0",
242
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
243
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8="
559
244
  },
560
- "qs": {
561
- "version": "6.3.2",
562
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
563
- "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw="
245
+ "proxy-from-env": {
246
+ "version": "1.0.0",
247
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
248
+ "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
249
+ },
250
+ "puppeteer": {
251
+ "version": "0.12.0",
252
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-0.12.0.tgz",
253
+ "integrity": "sha512-H/bylN7FccwbN7JZoSP+xRozxgJEDNy4uC4p727cyttKUVNXYjFuEMueJYHW0pblnrfLEH341SyFJVWhJMLxKQ==",
254
+ "requires": {
255
+ "debug": "2.6.9",
256
+ "extract-zip": "1.6.6",
257
+ "https-proxy-agent": "2.1.1",
258
+ "mime": "1.6.0",
259
+ "progress": "2.0.0",
260
+ "proxy-from-env": "1.0.0",
261
+ "rimraf": "2.6.2",
262
+ "ws": "3.3.3"
263
+ },
264
+ "dependencies": {
265
+ "debug": {
266
+ "version": "2.6.9",
267
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
268
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
269
+ "requires": {
270
+ "ms": "2.0.0"
271
+ }
272
+ }
273
+ }
564
274
  },
565
275
  "readable-stream": {
566
- "version": "2.0.6",
567
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
568
- "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
276
+ "version": "2.3.3",
277
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
278
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
569
279
  "requires": {
570
280
  "core-util-is": "1.0.2",
571
281
  "inherits": "2.0.3",
572
282
  "isarray": "1.0.0",
573
283
  "process-nextick-args": "1.0.7",
574
- "string_decoder": "0.10.31",
284
+ "safe-buffer": "5.1.1",
285
+ "string_decoder": "1.0.3",
575
286
  "util-deprecate": "1.0.2"
576
287
  }
577
288
  },
578
- "regenerator-runtime": {
579
- "version": "0.10.5",
580
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
581
- "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
582
- },
583
- "request": {
584
- "version": "2.79.0",
585
- "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
586
- "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
289
+ "rimraf": {
290
+ "version": "2.6.2",
291
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
292
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
587
293
  "requires": {
588
- "aws-sign2": "0.6.0",
589
- "aws4": "1.6.0",
590
- "caseless": "0.11.0",
591
- "combined-stream": "1.0.5",
592
- "extend": "3.0.1",
593
- "forever-agent": "0.6.1",
594
- "form-data": "2.1.4",
595
- "har-validator": "2.0.6",
596
- "hawk": "3.1.3",
597
- "http-signature": "1.1.1",
598
- "is-typedarray": "1.0.0",
599
- "isstream": "0.1.2",
600
- "json-stringify-safe": "5.0.1",
601
- "mime-types": "2.1.16",
602
- "oauth-sign": "0.8.2",
603
- "qs": "6.3.2",
604
- "stringstream": "0.0.5",
605
- "tough-cookie": "2.3.2",
606
- "tunnel-agent": "0.4.3",
607
- "uuid": "3.1.0"
294
+ "glob": "7.1.2"
608
295
  }
609
296
  },
610
- "request-progress": {
611
- "version": "2.0.1",
612
- "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
613
- "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
614
- "requires": {
615
- "throttleit": "1.0.0"
616
- }
617
- },
618
- "resolve-url": {
619
- "version": "0.2.1",
620
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
621
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
622
- },
623
- "sntp": {
624
- "version": "1.0.9",
625
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
626
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
627
- "requires": {
628
- "hoek": "2.16.3"
629
- }
297
+ "safe-buffer": {
298
+ "version": "5.1.1",
299
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
300
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
630
301
  },
631
302
  "source-map": {
632
- "version": "0.1.43",
633
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
634
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
635
- "requires": {
636
- "amdefine": "1.0.1"
637
- }
638
- },
639
- "source-map-resolve": {
640
- "version": "0.3.1",
641
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz",
642
- "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=",
643
- "requires": {
644
- "atob": "1.1.3",
645
- "resolve-url": "0.2.1",
646
- "source-map-url": "0.3.0",
647
- "urix": "0.1.0"
648
- }
649
- },
650
- "source-map-url": {
651
- "version": "0.3.0",
652
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz",
653
- "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk="
654
- },
655
- "sshpk": {
656
- "version": "1.13.1",
657
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
658
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
659
- "requires": {
660
- "asn1": "0.2.3",
661
- "assert-plus": "1.0.0",
662
- "bcrypt-pbkdf": "1.0.1",
663
- "dashdash": "1.14.1",
664
- "ecc-jsbn": "0.1.1",
665
- "getpass": "0.1.7",
666
- "jsbn": "0.1.1",
667
- "tweetnacl": "0.14.5"
668
- },
669
- "dependencies": {
670
- "assert-plus": {
671
- "version": "1.0.0",
672
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
673
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
674
- }
675
- }
303
+ "version": "0.5.7",
304
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
305
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
676
306
  },
677
307
  "string_decoder": {
678
- "version": "0.10.31",
679
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
680
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
681
- },
682
- "stringstream": {
683
- "version": "0.0.5",
684
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
685
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
686
- },
687
- "strip-ansi": {
688
- "version": "3.0.1",
689
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
690
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
308
+ "version": "1.0.3",
309
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
310
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
691
311
  "requires": {
692
- "ansi-regex": "2.1.1"
312
+ "safe-buffer": "5.1.1"
693
313
  }
694
314
  },
695
- "supports-color": {
696
- "version": "2.0.0",
697
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
698
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
699
- },
700
- "throttleit": {
701
- "version": "1.0.0",
702
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
703
- "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw="
704
- },
705
- "tmp": {
706
- "version": "0.0.31",
707
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
708
- "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
709
- "requires": {
710
- "os-tmpdir": "1.0.2"
711
- }
712
- },
713
- "tough-cookie": {
714
- "version": "2.3.2",
715
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
716
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
717
- "requires": {
718
- "punycode": "1.4.1"
719
- }
720
- },
721
- "tunnel-agent": {
722
- "version": "0.4.3",
723
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
724
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
725
- },
726
- "tweetnacl": {
727
- "version": "0.14.5",
728
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
729
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
730
- "optional": true
731
- },
732
315
  "typedarray": {
733
316
  "version": "0.0.6",
734
317
  "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
735
318
  "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
736
319
  },
737
- "urix": {
738
- "version": "0.1.0",
739
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
740
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
320
+ "ultron": {
321
+ "version": "1.1.1",
322
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
323
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
741
324
  },
742
325
  "util-deprecate": {
743
326
  "version": "1.0.2",
744
327
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
745
328
  "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
746
329
  },
747
- "uuid": {
748
- "version": "3.1.0",
749
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
750
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
751
- },
752
- "verror": {
753
- "version": "1.3.6",
754
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
755
- "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
756
- "requires": {
757
- "extsprintf": "1.0.2"
758
- }
330
+ "wrappy": {
331
+ "version": "1.0.2",
332
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
333
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
759
334
  },
760
- "which": {
761
- "version": "1.2.14",
762
- "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
763
- "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
335
+ "ws": {
336
+ "version": "3.3.3",
337
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
338
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
764
339
  "requires": {
765
- "isexe": "2.0.0"
340
+ "async-limiter": "1.0.0",
341
+ "safe-buffer": "5.1.1",
342
+ "ultron": "1.1.1"
766
343
  }
767
344
  },
768
- "xtend": {
769
- "version": "4.0.1",
770
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
771
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
772
- },
773
345
  "yauzl": {
774
346
  "version": "2.4.1",
775
347
  "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",