diff --git a/.gitignore b/.gitignore index ffd08d93..92d88c4f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ dist/ npm-debug.log* yarn-error.log docs/_site +docs/build docs/.sass-cache/ dist-es5-module/ yarn.lock diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 00000000..2bf1c1cc --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.3.1 diff --git a/docs/Gemfile b/docs/Gemfile index 591c9b7a..8809e7e3 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -1,18 +1,39 @@ -# Ruby Gems for building and testing Bootstrap -# Run `grunt update-gemfile-lock` to update to the latest compatible versions - +# If you do not have OpenSSL installed, change +# the following line to use 'http://' source 'https://rubygems.org' -group :development, :test do - gem 'jekyll' - gem 'jekyll-haml' - gem 'rouge' - gem 'sass' - gem 'guard' - gem 'nokogiri' - gem 'jekyll-contentblocks' - gem 'guard-jekyll-plus' - gem 'guard-livereload' - gem 'guard-bundler', require: false - gem 'eventmachine', '1.2.3' -end +# For faster file watcher updates on Windows: +gem 'wdm', '~> 0.1.0', platforms: [:mswin, :mingw] + +# Windows does not come with time zone data +gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby] + +gem 'rake' + +# Middleman Gems +gem 'middleman', '>= 4.0.0' +gem 'middleman-livereload' +gem 'middleman-syntax' +gem 'middleman-autoprefixer' +gem 'middleman-s3_sync', github: 'fredjean/middleman-s3_sync', ref: '8c4e57a' +gem 'middleman-minify-html' +gem 'sprockets', '4.0.0.beta4' +gem 'middleman-sprockets' +gem 'sprockets-es6' +gem 'redcarpet', '>= 3.3.4' +gem 'nokogiri' +gem 'sassc' +gem 'kramdown', '>= 1.12.0' +gem 'pry-byebug' +gem 'rb-readline' +gem 'mime-types' +gem 'highlight', :require => 'simplabs/highlight' # TODO: Replace with rouge +gem 'htmlentities' +gem 'better_errors' +gem 'binding_of_caller' +gem 'octokit' +gem 'google-api-client', '0.8.6' +gem 'algoliasearch' +gem 'middleman-vcs-time' +gem 'hashie', '3.4.6' +gem 'haml', '4.0.7' diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 5241c6e9..b1fcb1ba 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,116 +1,293 @@ +GIT + remote: git://github.com/fredjean/middleman-s3_sync.git + revision: 8c4e57a67048a3bafa4529c8f46184d33996e52b + ref: 8c4e57a + specs: + middleman-s3_sync (4.0.3) + ansi (~> 1.5.0) + fog-aws (>= 0.1.1) + map + middleman-cli + middleman-core (>= 4.0.0) + mime-types (~> 3.1) + parallel + ruby-progressbar + unf + GEM remote: https://rubygems.org/ specs: + activesupport (5.0.6) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (~> 0.7) + minitest (~> 5.1) + tzinfo (~> 1.1) addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) + algoliasearch (1.16.0) + httpclient (~> 2.8.3) + json (>= 1.5.1) + ansi (1.5.0) + autoparse (0.3.3) + addressable (>= 2.3.1) + extlib (>= 0.9.15) + multi_json (>= 1.0.0) + autoprefixer-rails (7.1.5) + execjs + babel-source (5.8.35) + babel-transpiler (0.7.0) + babel-source (>= 4.0, < 6) + execjs (~> 2.0) + backports (3.9.1) + better_errors (2.3.0) + coderay (>= 1.0.0) + erubi (>= 1.0.0) + rack (>= 0.9.0) + binding_of_caller (0.7.2) + debug_inspector (>= 0.0.1) + builder (3.2.3) + byebug (9.1.0) coderay (1.1.2) - colorator (1.1.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.12.2) + compass-import-once (1.0.5) + sass (>= 3.2, < 3.5) + concurrent-ruby (1.0.5) + contracts (0.13.0) + debug_inspector (0.0.3) + dotenv (2.2.1) em-websocket (0.5.1) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) - eventmachine (1.2.3) + erubi (1.6.1) + erubis (2.7.0) + eventmachine (1.2.5) + excon (0.59.0) + execjs (2.7.0) + extlib (0.9.16) + faraday (0.13.1) + multipart-post (>= 1.2, < 3) + fast_blank (1.0.0) + fastimage (2.1.0) ffi (1.9.18) + fog-aws (1.4.1) + fog-core (~> 1.38) + fog-json (~> 1.0) + fog-xml (~> 0.1) + ipaddress (~> 0.8) + fog-core (1.45.0) + builder + excon (~> 0.58) + formatador (~> 0.2) + fog-json (1.0.2) + fog-core (~> 1.0) + multi_json (~> 1.10) + fog-xml (0.1.3) + fog-core + nokogiri (>= 1.5.11, < 2.0.0) formatador (0.2.5) - forwardable-extended (2.6.0) - guard (2.14.1) - formatador (>= 0.2.4) - listen (>= 2.7, < 4.0) - lumberjack (~> 1.0) - nenv (~> 0.1) - notiffany (~> 0.0) - pry (>= 0.9.12) - shellany (~> 0.0) - thor (>= 0.18.1) - guard-bundler (2.1.0) - bundler (~> 1.0) - guard (~> 2.2) - guard-compat (~> 1.1) - guard-compat (1.2.1) - guard-jekyll-plus (2.0.2) - guard (~> 2.10, >= 2.10.3) - guard-compat (~> 1.1) - jekyll (>= 1.0.0) - guard-livereload (2.5.2) - em-websocket (~> 0.5) - guard (~> 2.8) - guard-compat (~> 1.0) - multi_json (~> 1.8) - haml (5.0.4) - temple (>= 0.8.0) + google-api-client (0.8.6) + activesupport (>= 3.2) + addressable (~> 2.3) + autoparse (~> 0.3) + extlib (~> 0.9) + faraday (~> 0.9) + googleauth (~> 0.3) + launchy (~> 2.4) + multi_json (~> 1.10) + retriable (~> 1.4) + signet (~> 0.6) + googleauth (0.5.3) + faraday (~> 0.12) + jwt (~> 1.4) + logging (~> 2.0) + memoist (~> 0.12) + multi_json (~> 1.11) + os (~> 0.9) + signet (~> 0.7) + haml (4.0.7) tilt + hamster (3.0.0) + concurrent-ruby (~> 1.0) + hashie (3.4.6) + highlight (2.0.0) + htmlcompressor (0.2.0) + htmlentities (4.3.4) http_parser.rb (0.6.0) - jekyll (3.6.0) - addressable (~> 2.4) - colorator (~> 1.0) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.14) - liquid (~> 4.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (>= 1.7, < 3) - safe_yaml (~> 1.0) - jekyll-contentblocks (1.2.0) - jekyll - jekyll-haml (0.1.5) - haml (>= 3.0.0) - jekyll (>= 3.3.0) - jekyll-sass-converter (1.5.0) - sass (~> 3.4) - jekyll-watch (1.5.0) - listen (~> 3.0, < 3.1) + httpclient (2.8.3) + i18n (0.7.0) + ipaddress (0.8.3) + json (2.1.0) + jwt (1.5.6) kramdown (1.15.0) - liquid (4.0.0) + launchy (2.4.3) + addressable (~> 2.3) listen (3.0.8) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - lumberjack (1.0.12) - mercenary (0.3.6) + little-plugger (1.1.4) + logging (2.2.2) + little-plugger (~> 1.1) + multi_json (~> 1.10) + map (6.6.0) + memoist (0.16.0) method_source (0.9.0) + middleman (4.2.1) + coffee-script (~> 2.2) + compass-import-once (= 1.0.5) + haml (>= 4.0.5) + kramdown (~> 1.2) + middleman-cli (= 4.2.1) + middleman-core (= 4.2.1) + sass (>= 3.4.0, < 4.0) + middleman-autoprefixer (2.8.0) + autoprefixer-rails (>= 7.0.1, < 8.0.0) + middleman-core (>= 3.3.3) + middleman-cli (4.2.1) + thor (>= 0.17.0, < 2.0) + middleman-core (4.2.1) + activesupport (>= 4.2, < 5.1) + addressable (~> 2.3) + backports (~> 3.6) + bundler (~> 1.1) + contracts (~> 0.13.0) + dotenv + erubis + execjs (~> 2.0) + fast_blank + fastimage (~> 2.0) + hamster (~> 3.0) + hashie (~> 3.4) + i18n (~> 0.7.0) + listen (~> 3.0.0) + memoist (~> 0.14) + padrino-helpers (~> 0.13.0) + parallel + rack (>= 1.4.5, < 3) + sass (>= 3.4) + servolux + tilt (~> 2.0) + uglifier (~> 3.0) + middleman-livereload (3.4.6) + em-websocket (~> 0.5.1) + middleman-core (>= 3.3) + rack-livereload (~> 0.3.15) + middleman-minify-html (3.4.1) + htmlcompressor (~> 0.2.0) + middleman-core (>= 3.2) + middleman-sprockets (4.1.1) + middleman-core (~> 4.0) + sprockets (>= 3.0) + middleman-syntax (3.0.0) + middleman-core (>= 3.2) + rouge (~> 2.0) + middleman-vcs-time (0.0.5) + middleman-core (~> 4.0) + mime-types (3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2016.0521) mini_portile2 (2.3.0) + minitest (5.10.3) multi_json (1.12.2) - nenv (0.3.0) + multipart-post (2.0.0) nokogiri (1.8.1) mini_portile2 (~> 2.3.0) - notiffany (0.1.1) - nenv (~> 0.1) - shellany (~> 0.0) - pathutil (0.16.0) - forwardable-extended (~> 2.6) + octokit (4.7.0) + sawyer (~> 0.8.0, >= 0.5.3) + os (0.9.6) + padrino-helpers (0.13.3.4) + i18n (~> 0.6, >= 0.6.7) + padrino-support (= 0.13.3.4) + tilt (>= 1.4.1, < 3) + padrino-support (0.13.3.4) + activesupport (>= 3.1) + parallel (1.12.0) pry (0.11.1) coderay (~> 1.1.0) method_source (~> 0.9.0) + pry-byebug (3.5.0) + byebug (~> 9.1) + pry (~> 0.10) public_suffix (3.0.0) + rack (2.0.3) + rack-livereload (0.3.16) + rack + rake (12.1.0) rb-fsevent (0.10.2) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) + rb-readline (0.5.5) + redcarpet (3.4.0) + retriable (1.4.1) rouge (2.2.1) - safe_yaml (1.0.4) - sass (3.5.2) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - shellany (0.0.1) - temple (0.8.0) + ruby-progressbar (1.9.0) + sass (3.4.25) + sassc (1.11.4) + bundler + ffi (~> 1.9.6) + sass (>= 3.3.0) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + servolux (0.13.0) + signet (0.7.3) + addressable (~> 2.3) + faraday (~> 0.9) + jwt (~> 1.5) + multi_json (~> 1.10) + sprockets (4.0.0.beta4) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-es6 (0.9.2) + babel-source (>= 5.8.11) + babel-transpiler + sprockets (>= 3.0.0) thor (0.20.0) + thread_safe (0.3.6) tilt (2.0.8) + tzinfo (1.2.3) + thread_safe (~> 0.1) + uglifier (3.2.0) + execjs (>= 0.3.0, < 3) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.4) PLATFORMS ruby DEPENDENCIES - eventmachine (= 1.2.3) - guard - guard-bundler - guard-jekyll-plus - guard-livereload - jekyll - jekyll-contentblocks - jekyll-haml + algoliasearch + better_errors + binding_of_caller + google-api-client (= 0.8.6) + haml (= 4.0.7) + hashie (= 3.4.6) + highlight + htmlentities + kramdown (>= 1.12.0) + middleman (>= 4.0.0) + middleman-autoprefixer + middleman-livereload + middleman-minify-html + middleman-s3_sync! + middleman-sprockets + middleman-syntax + middleman-vcs-time + mime-types nokogiri - rouge - sass + octokit + pry-byebug + rake + rb-readline + redcarpet (>= 3.3.4) + sassc + sprockets (= 4.0.0.beta4) + sprockets-es6 + tzinfo-data + wdm (~> 0.1.0) BUNDLED WITH - 1.16.0.pre.3 + 1.15.1 diff --git a/docs/Guardfile b/docs/Guardfile deleted file mode 100644 index d3839ebc..00000000 --- a/docs/Guardfile +++ /dev/null @@ -1,20 +0,0 @@ -guard 'jekyll-plus', :serve => true do - watch /.*/ - ignore /^_site/ -end - -guard 'livereload', port: '35731' do - watch /^.*/ -end - -guard :bundler do - require 'guard/bundler' - require 'guard/bundler/verify' - helper = Guard::Bundler::Verify.new - - files = ['Gemfile'] - files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) } - - # Assume files are symlinked from somewhere - files.each { |file| watch(helper.real_path(file)) } -end diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..d53b3d20 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,12 @@ +all: install + bundle exec middleman server + +install: + bundle install + +build: + npm install + rm -rf build + bundle exec middleman build + +.PHONY: build diff --git a/docs/Rakefile b/docs/Rakefile new file mode 100644 index 00000000..8f0f0141 --- /dev/null +++ b/docs/Rakefile @@ -0,0 +1,50 @@ +require 'dotenv' +require 'yaml' +require_relative './lib/google_analytics_downloader.rb' + +Dotenv.load('.env') + +task :build do + sh "STAGE=#{ENV['STAGE'] || 'beta'} bundle exec middleman build" +end + +task :s3_sync do + sh "STAGE=#{ENV['STAGE'] || 'beta'} bundle exec middleman s3_sync" +end + +task :purge_cache do + stage = ENV['STAGE'] || 'beta' + # if stage == 'production' + sh <<-SHELL + curl -X DELETE "https://api.cloudflare.com/client/v4/zones/#{ENV['CLOUDFLARE_ZONE']}/purge_cache" \ + -H "X-Auth-Email: #{ENV['CLOUDFLARE_AUTH_EMAIL']}" \ + -H "X-Auth-Key: #{ENV['CLOUDFLARE_AUTH_KEY']}" \ + -H "Content-Type: application/json" \ + --data '{"tags":["algoliaweb-doc--#{stage}"]}' + SHELL + # else + # puts "Not in production, not purging cache" + # end +end + +task :deploy do + Rake::Task[:build].invoke + Rake::Task[:s3_sync].invoke + Rake::Task[:purge_cache].invoke +end + +task :production do + ENV['STAGE'] = 'production' +end + +task :beta do + ENV['STAGE'] = 'beta' +end + +task :download_google_analytics_data do + file = File.expand_path(File.join(__FILE__, '..', 'app_data', 'google_analytics.yml')) + File.open(file, 'w') do |f| + f << GoogleAnalyticsDownloader.fetch.to_yaml + end +end + diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index a6f98a4d..00000000 --- a/docs/_config.yml +++ /dev/null @@ -1,41 +0,0 @@ -# Site settings -baseurl: "/docsearch" # the subpath of your site, e.g. /blog/ -host: 0.0.0.0 - -# OpenGraph / Twitter -title: DocSearch -description: "Algolia DocSearch is the easiest way to add a nice search experience to your documentation. Just send us your URL, and we'll send you the implementation code." -tagline: DocSearch -card_image: https://community.algolia.com/docsearch/img/docsearch-social.png -twitter_username: algolia -github_username: algolia - -# Navigation -navigation: - - - text: Documentation - url: /documentation/ - - - text: About - url: /about/ - -# Build settings -kramdown: - input: GFM - hard_wrap: false - - auto_ids: true - footnote_nr: 1 - entity_output: as_char - smart_quotes: lsquo,rsquo,ldquo,rdquo - syntax_highlighter: coderay - - coderay_wrap: div - coderay_line_numbers: nil - coderay_css: style - -# Assets -sass: - sass_dir: css - -exclude: [node_modules] diff --git a/docs/_data/showcase.yml b/docs/_data/showcase.yml deleted file mode 100644 index 4764aff5..00000000 --- a/docs/_data/showcase.yml +++ /dev/null @@ -1,94 +0,0 @@ -- name: Stripe - url: "https://stripe.com/docs" - gif: "./img/showcase/example-stripe.gif" - logo: "./img/showcase/logo-stripe.png" - -- name: Bootstrap - url: "https://getbootstrap.com/docs/4.0" - gif: "./img/showcase/example-bootstrap.gif" - logo: "./img/showcase/logo-bootstrap.png" - -- name: Vue - url: "http://vuejs.org/guide/" - gif: "./img/showcase/example-vuejs.gif" - logo: "./img/showcase/logo-vuejs.png" - -- name: React - url: "https://reactjs.org" - gif: "./img/showcase/example-react.gif" - logo: "./img/showcase/logo-react.png" - -- name: React Native - url: "https://facebook.github.io/react-native/" - gif: "./img/showcase/example-reactnative.gif" - logo: "./img/showcase/logo-react.png" - -- name: Docusaurus - url: "https://docusaurus.io/" - gif: "./img/showcase/example-docusaurus.gif" - logo: "./img/showcase/logo-docusaurus.png" - -- name: Cordova - url: "http://cordova.apache.org/" - gif: "./img/showcase/example-cordova.gif" - logo: "./img/showcase/logo-cordova.png" - -- name: Babel.js - url: "https://babeljs.io/" - gif: "./img/showcase/example-babel.gif" - logo: "./img/showcase/logo-babel.png" - -- name: Apiary - url: "http://help.apiary.io/" - gif: "./img/showcase/example-apiary.gif" - logo: "./img/showcase/logo-apiary.png" - -- name: Flow - url: "https://flow.org/en/docs/" - gif: "./img/showcase/example-flow.gif" - logo: "./img/showcase/logo-flow.png" - -- name: Moment.js - url: "https://momentjs.com/docs/" - gif: "./img/showcase/example-momentjs.gif" - logo: "./img/showcase/logo-momentjs.png" - -- name: Ant Design - url: "https://ant.design/docs/react/introduce" - gif: "./img/showcase/example-ant-design.gif" - logo: "./img/showcase/logo-ant-design.png" - -- name: Gitlab - url: "https://docs.gitlab.com/" - gif: "./img/showcase/example-gitlab.gif" - logo: "./img/showcase/logo-gitlab.png" - -- name: Symfony - url: "https://symfony.com/doc/current/" - gif: "./img/showcase/example-symfony.gif" - logo: "./img/showcase/logo-symfony.png" - -- name: PM2 - url: "http://pm2.keymetrics.io/docs/usage/cluster-mode/" - gif: "./img/showcase/example-pm2.gif" - logo: "./img/showcase/logo-pm2.png" - -- name: Hugo - url: "http://gohugo.io/documentation/" - gif: "./img/showcase/example-hugo.gif" - logo: "./img/showcase/logo-hugo.png" - -- name: Fasltane - url: "https://docs.fastlane.tools/" - gif: "./img/showcase/example-fastlane.gif" - logo: "./img/showcase/logo-fastlane.png" - -- name: Jekyll - url: "https://jekyllrb.com/" - gif: "./img/showcase/example-jekyll.gif" - logo: "./img/showcase/logo-jekyll.png" - -- name: Gatsby - url: "https://www.gatsbyjs.org/" - gif: "./img/showcase/example-gatsby.gif" - logo: "./img/showcase/logo-gatsby.png" diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html deleted file mode 100644 index 2278d5bc..00000000 --- a/docs/_includes/footer.html +++ /dev/null @@ -1,36 +0,0 @@ -
- diff --git a/docs/_includes/newsletter-mc.html b/docs/_includes/newsletter-mc.html deleted file mode 100644 index 3634f969..00000000 --- a/docs/_includes/newsletter-mc.html +++ /dev/null @@ -1,22 +0,0 @@ - -`, ``, and ``.
+$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace !default;
+$font-family-base: $font-family-sans-serif !default;
+
+$font-size-base: 14px !default;
+$font-size-large: ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-small: ceil(($font-size-base * 0.85)) !default; // ~12px
+
+$font-size-h1: floor(($font-size-base * 2.6)) !default; // ~36px
+$font-size-h2: floor(($font-size-base * 2.15)) !default; // ~30px
+$font-size-h3: ceil(($font-size-base * 1.7)) !default; // ~24px
+$font-size-h4: ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-h5: $font-size-base !default;
+$font-size-h6: ceil(($font-size-base * 0.85)) !default; // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+$line-height-base: 1.428571429 !default; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+$line-height-computed: floor(($font-size-base * $line-height-base)) !default; // ~20px
+
+//** By default, this inherits from the ``.
+$headings-font-family: inherit !default;
+$headings-font-weight: 500 !default;
+$headings-line-height: 1.1 !default;
+$headings-color: inherit !default;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+
+// [converter] Asset helpers such as Sprockets and Node.js Mincer do not resolve relative paths
+$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
+
+//** File name for all font files.
+$icon-font-name: "glyphicons-halflings-regular" !default;
+//** Element ID within SVG icon file.
+$icon-font-svg-id: "glyphicons_halflingsregular" !default;
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+$padding-base-vertical: 6px !default;
+$padding-base-horizontal: 12px !default;
+
+$padding-large-vertical: 10px !default;
+$padding-large-horizontal: 16px !default;
+
+$padding-small-vertical: 5px !default;
+$padding-small-horizontal: 10px !default;
+
+$padding-xs-vertical: 1px !default;
+$padding-xs-horizontal: 5px !default;
+
+$line-height-large: 1.33 !default;
+$line-height-small: 1.5 !default;
+
+$border-radius-base: 4px !default;
+$border-radius-large: 6px !default;
+$border-radius-small: 3px !default;
+
+//** Global color for active items (e.g., navs or dropdowns).
+$component-active-color: #fff !default;
+//** Global background color for active items (e.g., navs or dropdowns).
+$component-active-bg: $brand-primary !default;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+$caret-width-base: 4px !default;
+//** Carets increase slightly in size for larger components.
+$caret-width-large: 5px !default;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for ``s and ` `s.
+$table-cell-padding: 8px !default;
+//** Padding for cells in `.table-condensed`.
+$table-condensed-cell-padding: 5px !default;
+
+//** Default background color used for all tables.
+$table-bg: transparent !default;
+//** Background color used for `.table-striped`.
+$table-bg-accent: #f9f9f9 !default;
+//** Background color used for `.table-hover`.
+$table-bg-hover: #f5f5f5 !default;
+$table-bg-active: $table-bg-hover !default;
+
+//** Border color for table and cell borders.
+$table-border-color: #ddd !default;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+$btn-font-weight: normal !default;
+
+$btn-default-color: #333 !default;
+$btn-default-bg: #fff !default;
+$btn-default-border: #ccc !default;
+
+$btn-primary-color: #fff !default;
+$btn-primary-bg: $brand-primary !default;
+$btn-primary-border: darken($btn-primary-bg, 5%) !default;
+
+$btn-success-color: #fff !default;
+$btn-success-bg: $brand-success !default;
+$btn-success-border: darken($btn-success-bg, 5%) !default;
+
+$btn-info-color: #fff !default;
+$btn-info-bg: $brand-info !default;
+$btn-info-border: darken($btn-info-bg, 5%) !default;
+
+$btn-warning-color: #fff !default;
+$btn-warning-bg: $brand-warning !default;
+$btn-warning-border: darken($btn-warning-bg, 5%) !default;
+
+$btn-danger-color: #fff !default;
+$btn-danger-bg: $brand-danger !default;
+$btn-danger-border: darken($btn-danger-bg, 5%) !default;
+
+$btn-link-disabled-color: $gray-light !default;
+
+
+//== Forms
+//
+//##
+
+//** `` background color
+$input-bg: #fff !default;
+//** `` background color
+$input-bg-disabled: $gray-lighter !default;
+
+//** Text color for ``s
+$input-color: $gray !default;
+//** `` border color
+$input-border: #ccc !default;
+
+// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
+//** Default `.form-control` border radius
+$input-border-radius: $border-radius-base !default;
+//** Large `.form-control` border radius
+$input-border-radius-large: $border-radius-large !default;
+//** Small `.form-control` border radius
+$input-border-radius-small: $border-radius-small !default;
+
+//** Border color for inputs on focus
+$input-border-focus: #66afe9 !default;
+
+//** Placeholder text color
+$input-color-placeholder: #999 !default;
+
+//** Default `.form-control` height
+$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
+//** Large `.form-control` height
+$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
+//** Small `.form-control` height
+$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
+
+$legend-color: $gray-dark !default;
+$legend-border-color: #e5e5e5 !default;
+
+//** Background color for textual input addons
+$input-group-addon-bg: $gray-lighter !default;
+//** Border color for textual input addons
+$input-group-addon-border-color: $input-border !default;
+
+//** Disabled cursor for form controls and buttons.
+$cursor-disabled: not-allowed !default;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+$dropdown-bg: #fff !default;
+//** Dropdown menu `border-color`.
+$dropdown-border: rgba(0,0,0,.15) !default;
+//** Dropdown menu `border-color` **for IE8**.
+$dropdown-fallback-border: #ccc !default;
+//** Divider color for between dropdown items.
+$dropdown-divider-bg: #e5e5e5 !default;
+
+//** Dropdown link text color.
+$dropdown-link-color: $gray-dark !default;
+//** Hover color for dropdown links.
+$dropdown-link-hover-color: darken($gray-dark, 5%) !default;
+//** Hover background for dropdown links.
+$dropdown-link-hover-bg: #f5f5f5 !default;
+
+//** Active dropdown menu item text color.
+$dropdown-link-active-color: $component-active-color !default;
+//** Active dropdown menu item background color.
+$dropdown-link-active-bg: $component-active-bg !default;
+
+//** Disabled dropdown menu item background color.
+$dropdown-link-disabled-color: $gray-light !default;
+
+//** Text color for headers within dropdown menus.
+$dropdown-header-color: $gray-light !default;
+
+//** Deprecated `$dropdown-caret-color` as of v3.1.0
+$dropdown-caret-color: #000 !default;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+$zindex-navbar: 1000 !default;
+$zindex-dropdown: 1000 !default;
+$zindex-popover: 1060 !default;
+$zindex-tooltip: 1070 !default;
+$zindex-navbar-fixed: 1030 !default;
+$zindex-modal: 1040 !default;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `$screen-xs` as of v3.0.1
+$screen-xs: 480px !default;
+//** Deprecated `$screen-xs-min` as of v3.2.0
+$screen-xs-min: $screen-xs !default;
+//** Deprecated `$screen-phone` as of v3.0.1
+$screen-phone: $screen-xs-min !default;
+
+// Small screen / tablet
+//** Deprecated `$screen-sm` as of v3.0.1
+$screen-sm: 768px !default;
+$screen-sm-min: $screen-sm !default;
+//** Deprecated `$screen-tablet` as of v3.0.1
+$screen-tablet: $screen-sm-min !default;
+
+// Medium screen / desktop
+//** Deprecated `$screen-md` as of v3.0.1
+$screen-md: 992px !default;
+$screen-md-min: $screen-md !default;
+//** Deprecated `$screen-desktop` as of v3.0.1
+$screen-desktop: $screen-md-min !default;
+
+// Large screen / wide desktop
+//** Deprecated `$screen-lg` as of v3.0.1
+$screen-lg: 1200px !default;
+$screen-lg-min: $screen-lg !default;
+//** Deprecated `$screen-lg-desktop` as of v3.0.1
+$screen-lg-desktop: $screen-lg-min !default;
+
+// So media queries don't overlap when required, provide a maximum
+$screen-xs-max: ($screen-sm-min - 1) !default;
+$screen-sm-max: ($screen-md-min - 1) !default;
+$screen-md-max: ($screen-lg-min - 1) !default;
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+$grid-columns: 12 !default;
+//** Padding between columns. Gets divided in half for the left and right.
+$grid-gutter-width: 30px !default;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+$grid-float-breakpoint: $screen-sm-min !default;
+//** Point at which the navbar begins collapsing.
+$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+$container-tablet: (720px + $grid-gutter-width) !default;
+//** For `$screen-sm-min` and up.
+$container-sm: $container-tablet !default;
+
+// Medium screen / desktop
+$container-desktop: (940px + $grid-gutter-width) !default;
+//** For `$screen-md-min` and up.
+$container-md: $container-desktop !default;
+
+// Large screen / wide desktop
+$container-large-desktop: (1140px + $grid-gutter-width) !default;
+//** For `$screen-lg-min` and up.
+$container-lg: $container-large-desktop !default;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+$navbar-height: 50px !default;
+$navbar-margin-bottom: $line-height-computed !default;
+$navbar-border-radius: $border-radius-base !default;
+$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default;
+$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default;
+$navbar-collapse-max-height: 340px !default;
+
+$navbar-default-color: #777 !default;
+$navbar-default-bg: #f8f8f8 !default;
+$navbar-default-border: darken($navbar-default-bg, 6.5%) !default;
+
+// Navbar links
+$navbar-default-link-color: #777 !default;
+$navbar-default-link-hover-color: #333 !default;
+$navbar-default-link-hover-bg: transparent !default;
+$navbar-default-link-active-color: #555 !default;
+$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default;
+$navbar-default-link-disabled-color: #ccc !default;
+$navbar-default-link-disabled-bg: transparent !default;
+
+// Navbar brand label
+$navbar-default-brand-color: $navbar-default-link-color !default;
+$navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%) !default;
+$navbar-default-brand-hover-bg: transparent !default;
+
+// Navbar toggle
+$navbar-default-toggle-hover-bg: #ddd !default;
+$navbar-default-toggle-icon-bar-bg: #888 !default;
+$navbar-default-toggle-border-color: #ddd !default;
+
+
+// Inverted navbar
+// Reset inverted navbar basics
+$navbar-inverse-color: lighten($gray-light, 15%) !default;
+$navbar-inverse-bg: #222 !default;
+$navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default;
+
+// Inverted navbar links
+$navbar-inverse-link-color: lighten($gray-light, 15%) !default;
+$navbar-inverse-link-hover-color: #fff !default;
+$navbar-inverse-link-hover-bg: transparent !default;
+$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default;
+$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default;
+$navbar-inverse-link-disabled-color: #444 !default;
+$navbar-inverse-link-disabled-bg: transparent !default;
+
+// Inverted navbar brand label
+$navbar-inverse-brand-color: $navbar-inverse-link-color !default;
+$navbar-inverse-brand-hover-color: #fff !default;
+$navbar-inverse-brand-hover-bg: transparent !default;
+
+// Inverted navbar toggle
+$navbar-inverse-toggle-hover-bg: #333 !default;
+$navbar-inverse-toggle-icon-bar-bg: #fff !default;
+$navbar-inverse-toggle-border-color: #333 !default;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+$nav-link-padding: 10px 15px !default;
+$nav-link-hover-bg: $gray-lighter !default;
+
+$nav-disabled-link-color: $gray-light !default;
+$nav-disabled-link-hover-color: $gray-light !default;
+
+//== Tabs
+$nav-tabs-border-color: #ddd !default;
+
+$nav-tabs-link-hover-border-color: $gray-lighter !default;
+
+$nav-tabs-active-link-hover-bg: $body-bg !default;
+$nav-tabs-active-link-hover-color: $gray !default;
+$nav-tabs-active-link-hover-border-color: #ddd !default;
+
+$nav-tabs-justified-link-border-color: #ddd !default;
+$nav-tabs-justified-active-link-border-color: $body-bg !default;
+
+//== Pills
+$nav-pills-border-radius: $border-radius-base !default;
+$nav-pills-active-link-hover-bg: $component-active-bg !default;
+$nav-pills-active-link-hover-color: $component-active-color !default;
+
+
+//== Pagination
+//
+//##
+
+$pagination-color: $link-color !default;
+$pagination-bg: #fff !default;
+$pagination-border: #ddd !default;
+
+$pagination-hover-color: $link-hover-color !default;
+$pagination-hover-bg: $gray-lighter !default;
+$pagination-hover-border: #ddd !default;
+
+$pagination-active-color: #fff !default;
+$pagination-active-bg: $brand-primary !default;
+$pagination-active-border: $brand-primary !default;
+
+$pagination-disabled-color: $gray-light !default;
+$pagination-disabled-bg: #fff !default;
+$pagination-disabled-border: #ddd !default;
+
+
+//== Pager
+//
+//##
+
+$pager-bg: $pagination-bg !default;
+$pager-border: $pagination-border !default;
+$pager-border-radius: 15px !default;
+
+$pager-hover-bg: $pagination-hover-bg !default;
+
+$pager-active-bg: $pagination-active-bg !default;
+$pager-active-color: $pagination-active-color !default;
+
+$pager-disabled-color: $pagination-disabled-color !default;
+
+
+//== Jumbotron
+//
+//##
+
+$jumbotron-padding: 30px !default;
+$jumbotron-color: inherit !default;
+$jumbotron-bg: $gray-lighter !default;
+$jumbotron-heading-color: inherit !default;
+$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default;
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+$state-success-text: #3c763d !default;
+$state-success-bg: #dff0d8 !default;
+$state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default;
+
+$state-info-text: #31708f !default;
+$state-info-bg: #d9edf7 !default;
+$state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default;
+
+$state-warning-text: #8a6d3b !default;
+$state-warning-bg: #fcf8e3 !default;
+$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default;
+
+$state-danger-text: #a94442 !default;
+$state-danger-bg: #f2dede !default;
+$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default;
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+$tooltip-max-width: 200px !default;
+//** Tooltip text color
+$tooltip-color: #fff !default;
+//** Tooltip background color
+$tooltip-bg: #000 !default;
+$tooltip-opacity: .9 !default;
+
+//** Tooltip arrow width
+$tooltip-arrow-width: 5px !default;
+//** Tooltip arrow color
+$tooltip-arrow-color: $tooltip-bg !default;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+$popover-bg: #fff !default;
+//** Popover maximum width
+$popover-max-width: 276px !default;
+//** Popover border color
+$popover-border-color: rgba(0,0,0,.2) !default;
+//** Popover fallback border color
+$popover-fallback-border-color: #ccc !default;
+
+//** Popover title background color
+$popover-title-bg: darken($popover-bg, 3%) !default;
+
+//** Popover arrow width
+$popover-arrow-width: 10px !default;
+//** Popover arrow color
+$popover-arrow-color: $popover-bg !default;
+
+//** Popover outer arrow width
+$popover-arrow-outer-width: ($popover-arrow-width + 1) !default;
+//** Popover outer arrow color
+$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default;
+//** Popover outer arrow fallback color
+$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default;
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+$label-default-bg: $gray-light !default;
+//** Primary label background color
+$label-primary-bg: $brand-primary !default;
+//** Success label background color
+$label-success-bg: $brand-success !default;
+//** Info label background color
+$label-info-bg: $brand-info !default;
+//** Warning label background color
+$label-warning-bg: $brand-warning !default;
+//** Danger label background color
+$label-danger-bg: $brand-danger !default;
+
+//** Default label text color
+$label-color: #fff !default;
+//** Default text color of a linked label
+$label-link-hover-color: #fff !default;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+$modal-inner-padding: 15px !default;
+
+//** Padding applied to the modal title
+$modal-title-padding: 15px !default;
+//** Modal title line-height
+$modal-title-line-height: $line-height-base !default;
+
+//** Background color of modal content area
+$modal-content-bg: #fff !default;
+//** Modal content border color
+$modal-content-border-color: rgba(0,0,0,.2) !default;
+//** Modal content border color **for IE8**
+$modal-content-fallback-border-color: #999 !default;
+
+//** Modal backdrop background color
+$modal-backdrop-bg: #000 !default;
+//** Modal backdrop opacity
+$modal-backdrop-opacity: .5 !default;
+//** Modal header border color
+$modal-header-border-color: #e5e5e5 !default;
+//** Modal footer border color
+$modal-footer-border-color: $modal-header-border-color !default;
+
+$modal-lg: 900px !default;
+$modal-md: 600px !default;
+$modal-sm: 300px !default;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+$alert-padding: 15px !default;
+$alert-border-radius: $border-radius-base !default;
+$alert-link-font-weight: bold !default;
+
+$alert-success-bg: $state-success-bg !default;
+$alert-success-text: $state-success-text !default;
+$alert-success-border: $state-success-border !default;
+
+$alert-info-bg: $state-info-bg !default;
+$alert-info-text: $state-info-text !default;
+$alert-info-border: $state-info-border !default;
+
+$alert-warning-bg: $state-warning-bg !default;
+$alert-warning-text: $state-warning-text !default;
+$alert-warning-border: $state-warning-border !default;
+
+$alert-danger-bg: $state-danger-bg !default;
+$alert-danger-text: $state-danger-text !default;
+$alert-danger-border: $state-danger-border !default;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+$progress-bg: #f5f5f5 !default;
+//** Progress bar text color
+$progress-bar-color: #fff !default;
+//** Variable for setting rounded corners on progress bar.
+$progress-border-radius: $border-radius-base !default;
+
+//** Default progress bar color
+$progress-bar-bg: $brand-primary !default;
+//** Success progress bar color
+$progress-bar-success-bg: $brand-success !default;
+//** Warning progress bar color
+$progress-bar-warning-bg: $brand-warning !default;
+//** Danger progress bar color
+$progress-bar-danger-bg: $brand-danger !default;
+//** Info progress bar color
+$progress-bar-info-bg: $brand-info !default;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+$list-group-bg: #fff !default;
+//** `.list-group-item` border color
+$list-group-border: #ddd !default;
+//** List group border radius
+$list-group-border-radius: $border-radius-base !default;
+
+//** Background color of single list items on hover
+$list-group-hover-bg: #f5f5f5 !default;
+//** Text color of active list items
+$list-group-active-color: $component-active-color !default;
+//** Background color of active list items
+$list-group-active-bg: $component-active-bg !default;
+//** Border color of active list elements
+$list-group-active-border: $list-group-active-bg !default;
+//** Text color for content within active list items
+$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default;
+
+//** Text color of disabled list items
+$list-group-disabled-color: $gray-light !default;
+//** Background color of disabled list items
+$list-group-disabled-bg: $gray-lighter !default;
+//** Text color for content within disabled list items
+$list-group-disabled-text-color: $list-group-disabled-color !default;
+
+$list-group-link-color: #555 !default;
+$list-group-link-hover-color: $list-group-link-color !default;
+$list-group-link-heading-color: #333 !default;
+
+
+//== Panels
+//
+//##
+
+$panel-bg: #fff !default;
+$panel-body-padding: 15px !default;
+$panel-heading-padding: 10px 15px !default;
+$panel-footer-padding: $panel-heading-padding !default;
+$panel-border-radius: $border-radius-base !default;
+
+//** Border color for elements within panels
+$panel-inner-border: #ddd !default;
+$panel-footer-bg: #f5f5f5 !default;
+
+$panel-default-text: $gray-dark !default;
+$panel-default-border: #ddd !default;
+$panel-default-heading-bg: #f5f5f5 !default;
+
+$panel-primary-text: #fff !default;
+$panel-primary-border: $brand-primary !default;
+$panel-primary-heading-bg: $brand-primary !default;
+
+$panel-success-text: $state-success-text !default;
+$panel-success-border: $state-success-border !default;
+$panel-success-heading-bg: $state-success-bg !default;
+
+$panel-info-text: $state-info-text !default;
+$panel-info-border: $state-info-border !default;
+$panel-info-heading-bg: $state-info-bg !default;
+
+$panel-warning-text: $state-warning-text !default;
+$panel-warning-border: $state-warning-border !default;
+$panel-warning-heading-bg: $state-warning-bg !default;
+
+$panel-danger-text: $state-danger-text !default;
+$panel-danger-border: $state-danger-border !default;
+$panel-danger-heading-bg: $state-danger-bg !default;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+$thumbnail-padding: 4px !default;
+//** Thumbnail background color
+$thumbnail-bg: $body-bg !default;
+//** Thumbnail border color
+$thumbnail-border: #ddd !default;
+//** Thumbnail border radius
+$thumbnail-border-radius: $border-radius-base !default;
+
+//** Custom text color for thumbnail captions
+$thumbnail-caption-color: $text-color !default;
+//** Padding around the thumbnail caption
+$thumbnail-caption-padding: 9px !default;
+
+
+//== Wells
+//
+//##
+
+$well-bg: #f5f5f5 !default;
+$well-border: darken($well-bg, 7%) !default;
+
+
+//== Badges
+//
+//##
+
+$badge-color: #fff !default;
+//** Linked badge text color on hover
+$badge-link-hover-color: #fff !default;
+$badge-bg: $gray-light !default;
+
+//** Badge text color in active nav link
+$badge-active-color: $link-color !default;
+//** Badge background color in active nav link
+$badge-active-bg: #fff !default;
+
+$badge-font-weight: bold !default;
+$badge-line-height: 1 !default;
+$badge-border-radius: 10px !default;
+
+
+//== Breadcrumbs
+//
+//##
+
+$breadcrumb-padding-vertical: 8px !default;
+$breadcrumb-padding-horizontal: 15px !default;
+//** Breadcrumb background color
+$breadcrumb-bg: #f5f5f5 !default;
+//** Breadcrumb text color
+$breadcrumb-color: #ccc !default;
+//** Text color of current page in the breadcrumb
+$breadcrumb-active-color: $gray-light !default;
+//** Textual separator for between breadcrumb elements
+$breadcrumb-separator: "/" !default;
+
+
+//== Carousel
+//
+//##
+
+$carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default;
+
+$carousel-control-color: #fff !default;
+$carousel-control-width: 15% !default;
+$carousel-control-opacity: .5 !default;
+$carousel-control-font-size: 20px !default;
+
+$carousel-indicator-active-bg: #fff !default;
+$carousel-indicator-border-color: #fff !default;
+
+$carousel-caption-color: #fff !default;
+
+
+//== Close
+//
+//##
+
+$close-font-weight: bold !default;
+$close-color: #000 !default;
+$close-text-shadow: 0 1px 0 #fff !default;
+
+
+//== Code
+//
+//##
+
+$code-color: #c7254e !default;
+$code-bg: #f9f2f4 !default;
+
+$kbd-color: #fff !default;
+$kbd-bg: #333 !default;
+
+$pre-bg: #f5f5f5 !default;
+$pre-color: $gray-dark !default;
+$pre-border-color: #ccc !default;
+$pre-scrollable-max-height: 340px !default;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+$component-offset-horizontal: 180px !default;
+//** Text muted color
+$text-muted: $gray-light !default;
+//** Abbreviations and acronyms border color
+$abbr-border-color: $gray-light !default;
+//** Headings small color
+$headings-small-color: $gray-light !default;
+//** Blockquote small color
+$blockquote-small-color: $gray-light !default;
+//** Blockquote font size
+$blockquote-font-size: ($font-size-base * 1.25) !default;
+//** Blockquote border color
+$blockquote-border-color: $gray-lighter !default;
+//** Page header border color
+$page-header-border-color: $gray-lighter !default;
+//** Width of horizontal description list titles
+$dl-horizontal-offset: $component-offset-horizontal !default;
+//** Horizontal line color.
+$hr-border: $gray-lighter !default;
diff --git a/docs/css/bootstrap/mixins/_alerts.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_alerts.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_alerts.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_alerts.scss
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_background-variant.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_background-variant.scss
new file mode 100755
index 00000000..4993bd2b
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_background-variant.scss
@@ -0,0 +1,11 @@
+// Contextual backgrounds
+
+// [converter] $parent hack
+@mixin bg-variant($parent, $color) {
+ #{$parent} {
+ background-color: $color;
+ }
+ a#{$parent}:hover {
+ background-color: darken($color, 10%);
+ }
+}
diff --git a/docs/css/bootstrap/mixins/_border-radius.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_border-radius.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_border-radius.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_border-radius.scss
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_buttons.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_buttons.scss
new file mode 100755
index 00000000..9efc0c8d
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_buttons.scss
@@ -0,0 +1,56 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+@mixin button-variant($color, $background, $border) {
+ color: $color;
+ background-color: $background;
+ border-color: $border;
+
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ color: $color;
+ background-color: darken($background, 10%);
+ border-color: darken($border, 12%);
+ }
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ background-image: none;
+ }
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active {
+ background-color: $background;
+ border-color: $border;
+
+ &.btn-primary {
+ color: #fff;
+ }
+ }
+ }
+
+ .badge {
+ color: $background;
+ background-color: $color;
+ }
+}
+
+// Button sizes
+@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+ padding: $padding-vertical $padding-horizontal;
+ font-size: $font-size;
+ line-height: $line-height;
+ border-radius: $border-radius;
+}
diff --git a/docs/css/bootstrap/mixins/_center-block.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_center-block.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_center-block.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_center-block.scss
diff --git a/docs/css/bootstrap/mixins/_clearfix.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_clearfix.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_clearfix.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_clearfix.scss
diff --git a/docs/css/bootstrap/mixins/_forms.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_forms.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_forms.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_forms.scss
diff --git a/docs/css/bootstrap/mixins/_gradients.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_gradients.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_gradients.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_gradients.scss
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_grid-framework.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_grid-framework.scss
new file mode 100755
index 00000000..fb28cb47
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_grid-framework.scss
@@ -0,0 +1,81 @@
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `$grid-columns`.
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
+ @for $i from (1 + 1) through $grid-columns {
+ $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
+ }
+ #{$list} {
+ position: relative;
+ // Prevent columns from collapsing when empty
+ min-height: 1px;
+ // Inner gutter via padding
+ padding-left: ($grid-gutter-width / 2);
+ padding-right: ($grid-gutter-width / 2);
+ }
+}
+
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
+ @for $i from (1 + 1) through $grid-columns {
+ $list: "#{$list}, .col-#{$class}-#{$i}";
+ }
+ #{$list} {
+ float: left;
+ }
+}
+
+
+@mixin calc-grid-column($index, $class, $type) {
+ @if ($type == width) and ($index > 0) {
+ .col-#{$class}-#{$index} {
+ width: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == push) and ($index > 0) {
+ .col-#{$class}-push-#{$index} {
+ left: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == push) and ($index == 0) {
+ .col-#{$class}-push-0 {
+ left: auto;
+ }
+ }
+ @if ($type == pull) and ($index > 0) {
+ .col-#{$class}-pull-#{$index} {
+ right: percentage(($index / $grid-columns));
+ }
+ }
+ @if ($type == pull) and ($index == 0) {
+ .col-#{$class}-pull-0 {
+ right: auto;
+ }
+ }
+ @if ($type == offset) {
+ .col-#{$class}-offset-#{$index} {
+ margin-left: percentage(($index / $grid-columns));
+ }
+ }
+}
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin loop-grid-columns($columns, $class, $type) {
+ @for $i from 0 through $columns {
+ @include calc-grid-column($i, $class, $type);
+ }
+}
+
+
+// Create grid for specific class
+@mixin make-grid($class) {
+ @include float-grid-columns($class);
+ @include loop-grid-columns($grid-columns, $class, width);
+ @include loop-grid-columns($grid-columns, $class, pull);
+ @include loop-grid-columns($grid-columns, $class, push);
+ @include loop-grid-columns($grid-columns, $class, offset);
+}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_grid.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_grid.scss
new file mode 100755
index 00000000..ae164338
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_grid.scss
@@ -0,0 +1,122 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+// Centered container element
+@mixin container-fixed($gutter: $grid-gutter-width) {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+ @include clearfix;
+}
+
+// Creates a wrapper for a series of columns
+@mixin make-row($gutter: $grid-gutter-width) {
+ margin-left: ($gutter / -2);
+ margin-right: ($gutter / -2);
+ @include clearfix;
+}
+
+// Generate the extra small columns
+@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+}
+@mixin make-xs-column-offset($columns) {
+ margin-left: percentage(($columns / $grid-columns));
+}
+@mixin make-xs-column-push($columns) {
+ left: percentage(($columns / $grid-columns));
+}
+@mixin make-xs-column-pull($columns) {
+ right: percentage(($columns / $grid-columns));
+}
+
+// Generate the small columns
+@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-sm-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-offset($columns) {
+ @media (min-width: $screen-sm-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-push($columns) {
+ @media (min-width: $screen-sm-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-sm-column-pull($columns) {
+ @media (min-width: $screen-sm-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
+
+// Generate the medium columns
+@mixin make-md-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-md-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-offset($columns) {
+ @media (min-width: $screen-md-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-push($columns) {
+ @media (min-width: $screen-md-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-md-column-pull($columns) {
+ @media (min-width: $screen-md-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
+
+// Generate the large columns
+@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: ($gutter / 2);
+ padding-right: ($gutter / 2);
+
+ @media (min-width: $screen-lg-min) {
+ float: left;
+ width: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-offset($columns) {
+ @media (min-width: $screen-lg-min) {
+ margin-left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-push($columns) {
+ @media (min-width: $screen-lg-min) {
+ left: percentage(($columns / $grid-columns));
+ }
+}
+@mixin make-lg-column-pull($columns) {
+ @media (min-width: $screen-lg-min) {
+ right: percentage(($columns / $grid-columns));
+ }
+}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_hide-text.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_hide-text.scss
new file mode 100755
index 00000000..45db6385
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_hide-text.scss
@@ -0,0 +1,21 @@
+// CSS image replacement
+//
+// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
+// mixins being reused as classes with the same name, this doesn't hold up. As
+// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
+//
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+
+// Deprecated as of v3.0.1 (will be removed in v4)
+@mixin hide-text() {
+ font: #{0/0} a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+// New mixin to use as of v3.0.1
+@mixin text-hide() {
+ @include hide-text;
+}
diff --git a/docs/css/bootstrap/mixins/_image.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_image.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_image.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_image.scss
diff --git a/docs/css/bootstrap/mixins/_labels.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_labels.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_labels.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_labels.scss
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_list-group.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_list-group.scss
new file mode 100755
index 00000000..5f05e7ba
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_list-group.scss
@@ -0,0 +1,31 @@
+// List Groups
+
+@mixin list-group-item-variant($state, $background, $color) {
+ .list-group-item-#{$state} {
+ color: $color;
+ background-color: $background;
+
+ // [converter] extracted a& to a.list-group-item-#{$state}
+ }
+
+ a.list-group-item-#{$state} {
+ color: $color;
+
+ .list-group-item-heading {
+ color: inherit;
+ }
+
+ &:hover,
+ &:focus {
+ color: $color;
+ background-color: darken($background, 5%);
+ }
+ &.active,
+ &.active:hover,
+ &.active:focus {
+ color: #fff;
+ background-color: $color;
+ border-color: $color;
+ }
+ }
+}
diff --git a/docs/css/bootstrap/mixins/_nav-divider.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_nav-divider.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_nav-divider.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_nav-divider.scss
diff --git a/docs/css/bootstrap/mixins/_nav-vertical-align.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_nav-vertical-align.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_nav-vertical-align.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_nav-vertical-align.scss
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_opacity.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_opacity.scss
new file mode 100755
index 00000000..df088adf
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_opacity.scss
@@ -0,0 +1,8 @@
+// Opacity
+
+@mixin opacity($opacity) {
+ opacity: $opacity;
+ // IE8 filter
+ $opacity-ie: ($opacity * 100);
+ filter: #{alpha(opacity=$opacity-ie)};
+}
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_pagination.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_pagination.scss
new file mode 100755
index 00000000..43fff686
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_pagination.scss
@@ -0,0 +1,23 @@
+// Pagination
+
+@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $border-radius) {
+ > li {
+ > a,
+ > span {
+ padding: $padding-vertical $padding-horizontal;
+ font-size: $font-size;
+ }
+ &:first-child {
+ > a,
+ > span {
+ @include border-left-radius($border-radius);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ @include border-right-radius($border-radius);
+ }
+ }
+ }
+}
diff --git a/docs/css/bootstrap/mixins/_panels.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_panels.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_panels.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_panels.scss
diff --git a/docs/css/bootstrap/mixins/_progress-bar.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_progress-bar.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_progress-bar.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_progress-bar.scss
diff --git a/docs/css/bootstrap/mixins/_reset-filter.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_reset-filter.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_reset-filter.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_reset-filter.scss
diff --git a/docs/css/bootstrap/mixins/_resize.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_resize.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_resize.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_resize.scss
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_responsive-visibility.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_responsive-visibility.scss
new file mode 100755
index 00000000..9867db01
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_responsive-visibility.scss
@@ -0,0 +1,21 @@
+// Responsive utilities
+
+//
+// More easily include all the states for responsive-utilities.less.
+// [converter] $parent hack
+@mixin responsive-visibility($parent) {
+ #{$parent} {
+ display: block !important;
+ }
+ table#{$parent} { display: table; }
+ tr#{$parent} { display: table-row !important; }
+ th#{$parent},
+ td#{$parent} { display: table-cell !important; }
+}
+
+// [converter] $parent hack
+@mixin responsive-invisibility($parent) {
+ #{$parent} {
+ display: none !important;
+ }
+}
diff --git a/docs/css/bootstrap/mixins/_size.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_size.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_size.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_size.scss
diff --git a/docs/css/bootstrap/mixins/_tab-focus.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_tab-focus.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_tab-focus.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_tab-focus.scss
diff --git a/docs/css/bootstrap/mixins/_table-row.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_table-row.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_table-row.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_table-row.scss
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_text-emphasis.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_text-emphasis.scss
new file mode 100755
index 00000000..1101e036
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_text-emphasis.scss
@@ -0,0 +1,11 @@
+// Typography
+
+// [converter] $parent hack
+@mixin text-emphasis-variant($parent, $color) {
+ #{$parent} {
+ color: $color;
+ }
+ a#{$parent}:hover {
+ color: darken($color, 10%);
+ }
+}
diff --git a/docs/css/bootstrap/mixins/_text-overflow.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_text-overflow.scss
old mode 100644
new mode 100755
similarity index 100%
rename from docs/css/bootstrap/mixins/_text-overflow.scss
rename to docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_text-overflow.scss
diff --git a/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_vendor-prefixes.scss b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_vendor-prefixes.scss
new file mode 100755
index 00000000..a6b9ef4e
--- /dev/null
+++ b/docs/algolia-aerial/src/stylesheet/vendors/bootstrap/mixins/_vendor-prefixes.scss
@@ -0,0 +1,222 @@
+// Vendor Prefixes
+//
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
+// Autoprefixer in our Gruntfile. They will be removed in v4.
+
+// - Animations
+// - Backface visibility
+// - Box shadow
+// - Box sizing
+// - Content columns
+// - Hyphens
+// - Placeholder text
+// - Transformations
+// - Transitions
+// - User Select
+
+
+// Animations
+@mixin animation($animation) {
+ -webkit-animation: $animation;
+ -o-animation: $animation;
+ animation: $animation;
+}
+@mixin animation-name($name) {
+ -webkit-animation-name: $name;
+ animation-name: $name;
+}
+@mixin animation-duration($duration) {
+ -webkit-animation-duration: $duration;
+ animation-duration: $duration;
+}
+@mixin animation-timing-function($timing-function) {
+ -webkit-animation-timing-function: $timing-function;
+ animation-timing-function: $timing-function;
+}
+@mixin animation-delay($delay) {
+ -webkit-animation-delay: $delay;
+ animation-delay: $delay;
+}
+@mixin animation-iteration-count($iteration-count) {
+ -webkit-animation-iteration-count: $iteration-count;
+ animation-iteration-count: $iteration-count;
+}
+@mixin animation-direction($direction) {
+ -webkit-animation-direction: $direction;
+ animation-direction: $direction;
+}
+@mixin animation-fill-mode($fill-mode) {
+ -webkit-animation-fill-mode: $fill-mode;
+ animation-fill-mode: $fill-mode;
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden`
+
+@mixin backface-visibility($visibility){
+ -webkit-backface-visibility: $visibility;
+ -moz-backface-visibility: $visibility;
+ backface-visibility: $visibility;
+}
+
+// Drop shadows
+//
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
+// supported browsers that have box shadow capabilities now support it.
+
+@mixin box-shadow($shadow...) {
+ -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
+ box-shadow: $shadow;
+}
+
+// Box sizing
+@mixin box-sizing($boxmodel) {
+ -webkit-box-sizing: $boxmodel;
+ -moz-box-sizing: $boxmodel;
+ box-sizing: $boxmodel;
+}
+
+// CSS3 Content Columns
+@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
+ -webkit-column-count: $column-count;
+ -moz-column-count: $column-count;
+ column-count: $column-count;
+ -webkit-column-gap: $column-gap;
+ -moz-column-gap: $column-gap;
+ column-gap: $column-gap;
+}
+
+// Optional hyphenation
+@mixin hyphens($mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: $mode;
+ -moz-hyphens: $mode;
+ -ms-hyphens: $mode; // IE10+
+ -o-hyphens: $mode;
+ hyphens: $mode;
+}
+
+// Placeholder text
+@mixin placeholder($color: $input-color-placeholder) {
+ // Firefox
+ &::-moz-placeholder {
+ color: $color;
+ opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526
+ }
+ &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
+ &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
+}
+
+// Transformations
+@mixin scale($ratio...) {
+ -webkit-transform: scale($ratio);
+ -ms-transform: scale($ratio); // IE9 only
+ -o-transform: scale($ratio);
+ transform: scale($ratio);
+}
+
+@mixin scaleX($ratio) {
+ -webkit-transform: scaleX($ratio);
+ -ms-transform: scaleX($ratio); // IE9 only
+ -o-transform: scaleX($ratio);
+ transform: scaleX($ratio);
+}
+@mixin scaleY($ratio) {
+ -webkit-transform: scaleY($ratio);
+ -ms-transform: scaleY($ratio); // IE9 only
+ -o-transform: scaleY($ratio);
+ transform: scaleY($ratio);
+}
+@mixin skew($x, $y) {
+ -webkit-transform: skewX($x) skewY($y);
+ -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
+ -o-transform: skewX($x) skewY($y);
+ transform: skewX($x) skewY($y);
+}
+@mixin translate($x, $y) {
+ -webkit-transform: translate($x, $y);
+ -ms-transform: translate($x, $y); // IE9 only
+ -o-transform: translate($x, $y);
+ transform: translate($x, $y);
+}
+@mixin translate3d($x, $y, $z) {
+ -webkit-transform: translate3d($x, $y, $z);
+ transform: translate3d($x, $y, $z);
+}
+@mixin rotate($degrees) {
+ -webkit-transform: rotate($degrees);
+ -ms-transform: rotate($degrees); // IE9 only
+ -o-transform: rotate($degrees);
+ transform: rotate($degrees);
+}
+@mixin rotateX($degrees) {
+ -webkit-transform: rotateX($degrees);
+ -ms-transform: rotateX($degrees); // IE9 only
+ -o-transform: rotateX($degrees);
+ transform: rotateX($degrees);
+}
+@mixin rotateY($degrees) {
+ -webkit-transform: rotateY($degrees);
+ -ms-transform: rotateY($degrees); // IE9 only
+ -o-transform: rotateY($degrees);
+ transform: rotateY($degrees);
+}
+@mixin perspective($perspective) {
+ -webkit-perspective: $perspective;
+ -moz-perspective: $perspective;
+ perspective: $perspective;
+}
+@mixin perspective-origin($perspective) {
+ -webkit-perspective-origin: $perspective;
+ -moz-perspective-origin: $perspective;
+ perspective-origin: $perspective;
+}
+@mixin transform-origin($origin) {
+ -webkit-transform-origin: $origin;
+ -moz-transform-origin: $origin;
+ -ms-transform-origin: $origin; // IE9 only
+ transform-origin: $origin;
+}
+
+
+// Transitions
+
+@mixin transition($transition...) {
+ -webkit-transition: $transition;
+ -o-transition: $transition;
+ transition: $transition;
+}
+@mixin transition-property($transition-property...) {
+ -webkit-transition-property: $transition-property;
+ transition-property: $transition-property;
+}
+@mixin transition-delay($transition-delay) {
+ -webkit-transition-delay: $transition-delay;
+ transition-delay: $transition-delay;
+}
+@mixin transition-duration($transition-duration...) {
+ -webkit-transition-duration: $transition-duration;
+ transition-duration: $transition-duration;
+}
+@mixin transition-timing-function($timing-function) {
+ -webkit-transition-timing-function: $timing-function;
+ transition-timing-function: $timing-function;
+}
+@mixin transition-transform($transition...) {
+ -webkit-transition: -webkit-transform $transition;
+ -moz-transition: -moz-transform $transition;
+ -o-transition: -o-transform $transition;
+ transition: transform $transition;
+}
+
+
+// User select
+// For selecting text on the page
+
+@mixin user-select($select) {
+ -webkit-user-select: $select;
+ -moz-user-select: $select;
+ -ms-user-select: $select; // IE10+
+ user-select: $select;
+}
diff --git a/docs/algolia-aerial/webpack.config.js b/docs/algolia-aerial/webpack.config.js
new file mode 100644
index 00000000..0ce4e428
--- /dev/null
+++ b/docs/algolia-aerial/webpack.config.js
@@ -0,0 +1,59 @@
+const path = require('path');
+const ExtractTextPlugin = require('extract-text-webpack-plugin');
+const WebpackAutoInject = require('webpack-auto-inject-version');
+
+module.exports = {
+ entry: './src/stylesheet/aerial.sass',
+ output: {
+ path: path.join(__dirname, './dist/'),
+ filename: 'aerial-source.css'
+ },
+ module: {
+ rules: [
+ {
+ test: /\.sass$/,
+ use: ExtractTextPlugin.extract({
+ fallback: 'style-loader',
+ use: ['css-loader','sass-loader']
+ })
+ },
+ {
+ test: /\.(ttf|eot|woff|woff2|svg)$/,
+ loader: 'file-loader',
+ options: {
+ name: 'fonts/[name].[ext]',
+ }
+ }
+ ]
+ },
+ plugins: [
+ new ExtractTextPlugin('aerial-source.css'), // css file will override generated js file
+ new WebpackAutoInject({
+ NAME: 'AIV custom name',
+ SHORT: 'CUSTOM',
+ SILENT: false,
+ PACKAGE_JSON_PATH: './package.json',
+ components: {
+ AutoIncreaseVersion: false,
+ InjectAsComment: true,
+ InjectByTag: true
+ },
+ componentsOptions: {
+ AutoIncreaseVersion: {
+ runInWatchMode: false // it will increase version with every single build!
+ },
+ InjectAsComment: {
+ tag: 'Version: {version} - {date}',
+ dateFormat: 'h:MM:ss TT'
+ },
+ InjectByTag: {
+ fileRegex: /\.+/,
+ dateFormat: 'h:MM:ss TT'
+ }
+ },
+ LOGS_TEXT: {
+ AIS_START: 'DEMO AIV started'
+ }
+ })
+ ]
+ }
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/.babelrc b/docs/algolia-frontend-components/.babelrc
new file mode 100755
index 00000000..059d0bfa
--- /dev/null
+++ b/docs/algolia-frontend-components/.babelrc
@@ -0,0 +1,9 @@
+{
+ "presets": [
+ ["env", {
+ "targets": {
+ "browsers": ["last 2 versions", "safari >= 7"]
+ }
+ }]
+ ]
+}
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/.npmignore b/docs/algolia-frontend-components/.npmignore
new file mode 100755
index 00000000..caefd721
--- /dev/null
+++ b/docs/algolia-frontend-components/.npmignore
@@ -0,0 +1,2 @@
+/node_modules/
+/components/**/*.data.json
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/README.md b/docs/algolia-frontend-components/README.md
new file mode 100755
index 00000000..0328ae59
--- /dev/null
+++ b/docs/algolia-frontend-components/README.md
@@ -0,0 +1,28 @@
+## Algolia front end components
+
+This project was created so that we can more easily update our components across all of our websites and avoid issues with consistency.
+
+### Why this approach
+
+We have a lot of different websites running, a lot of community projects where our components are functionaly and design wise the same, yet we see offsets in CSS and changes to HTML structure which prove hard to maintain. There is no single source of truth for our components and thus we are seeing various different implementations and styles. In the future we want to avoid this and move faster. Changing a header on all of our websites should not take a week's time, but it should be as simple as pulling the components repository, rebuilding the components and re-deploying the websites. No manual cleaning of old CSS, copy/pasting html etc.
+
+### How does it work?
+The package uses javascript to generate custom content inside your component. All you need to specify is the data for that package to render and include it in your project.
+
+Each component has a `.example.json` file which you can simply rename to `.data.json` to have it use the json file.
+
+
+### Usage
+
+Depending on your build process you can have a few different use cases.
+
+### Build the components
+
+Depending on the build tool, there a few use cases of how you can import components.
+
+## @TODO write best practice for different build steps
+
+
+
+
+
diff --git a/docs/algolia-frontend-components/build/assets.js b/docs/algolia-frontend-components/build/assets.js
new file mode 100755
index 00000000..7b8a8048
--- /dev/null
+++ b/docs/algolia-frontend-components/build/assets.js
@@ -0,0 +1,47 @@
+
+const fs = require('fs');
+const path = require('path');
+const chalk = require('chalk');
+const IMG_DIR = path.resolve(__dirname, './../images');
+
+let assets = {}
+
+if(!process.browser && !process.env.webpack) {
+ assets = {
+ algoliaLogo : fs.readFileSync(IMG_DIR + '/algolia-logo-darkbg.svg', 'utf8').toString(),
+ communityLogo : fs.readFileSync(IMG_DIR + '/algolia-community-dark.svg', 'utf8').toString(),
+ searchIcon : fs.readFileSync(IMG_DIR + '/search-icon.svg', 'utf8').toString(),
+ searchCloseIcon : fs.readFileSync(IMG_DIR + '/search-close-icon.svg', 'utf8').toString(),
+ iconSeparator : fs.readFileSync(IMG_DIR + '/icon-separator.svg', 'utf8').toString(),
+ InstantSearchReact : fs.readFileSync(IMG_DIR + '/react-instantsearch.svg', 'utf8').toString(),
+ instantSearchAndroid : fs.readFileSync(IMG_DIR + '/instantsearch-android.svg', 'utf8').toString(),
+ shopify : fs.readFileSync(IMG_DIR + '/shopify.svg', 'utf8').toString(),
+ wordpress : fs.readFileSync(IMG_DIR + '/wordpress.svg', 'utf8').toString()
+ }
+} else if(process.env.webpack){
+ assets = {
+ algoliaLogo : fs.readFileSync(IMG_DIR + '/algolia-logo-darkbg.svg', 'utf8').toString(),
+ communityLogo : fs.readFileSync(IMG_DIR + '/algolia-community-dark.svg', 'utf8').toString(),
+ searchIcon : fs.readFileSync(IMG_DIR + '/search-icon.svg', 'utf8').toString(),
+ searchCloseIcon : fs.readFileSync(IMG_DIR + '/search-close-icon.svg', 'utf8').toString(),
+ iconSeparator : fs.readFileSync(IMG_DIR + '/icon-separator.svg', 'utf8').toString(),
+ InstantSearchReact : fs.readFileSync(IMG_DIR + '/react-instantsearch.svg', 'utf8').toString(),
+ instantSearchAndroid : fs.readFileSync(IMG_DIR + '/instantsearch-android.svg', 'utf8').toString(),
+ shopify : fs.readFileSync(IMG_DIR + '/shopify.svg', 'utf8').toString(),
+ wordpress : fs.readFileSync(IMG_DIR + '/wordpress.svg', 'utf8').toString()
+ }
+} else if(process.env.NODE) {
+ assets = {
+ algoliaLogo : fs.readFileSync(IMG_DIR + '/algolia-logo-darkbg.svg', 'utf8').toString(),
+ communityLogo : fs.readFileSync(IMG_DIR + '/algolia-community-dark.svg', 'utf8').toString(),
+ searchIcon : fs.readFileSync(IMG_DIR + '/search-icon.svg', 'utf8').toString(),
+ searchCloseIcon : fs.readFileSync(IMG_DIR + '/search-close-icon.svg', 'utf8').toString(),
+ iconSeparator : fs.readFileSync(IMG_DIR + '/icon-separator.svg', 'utf8').toString(),
+ InstantSearchReact : fs.readFileSync(IMG_DIR + '/react-instantsearch.svg', 'utf8').toString(),
+ instantSearchAndroid : fs.readFileSync(IMG_DIR + '/instantsearch-android.svg', 'utf8').toString(),
+ shopify : fs.readFileSync(IMG_DIR + '/shopify.svg', 'utf8').toString(),
+ wordpress : fs.readFileSync(IMG_DIR + '/wordpress.svg', 'utf8').toString()
+ }
+}
+
+module.exports = assets;
diff --git a/docs/algolia-frontend-components/build/build.js b/docs/algolia-frontend-components/build/build.js
new file mode 100755
index 00000000..3203d356
--- /dev/null
+++ b/docs/algolia-frontend-components/build/build.js
@@ -0,0 +1,146 @@
+const fs = require('fs');
+const path = require('path');
+const glob = require('glob');
+const chalk = require('chalk');
+const ProgressBar = require('progress');
+const sass = require('node-sass');
+const babel = require('babel-core');
+const assets = require('./assets');
+
+const log = console.log;
+
+const COMPONENT_DIR = path.resolve(__dirname, './../components');
+const IMG_DIR = path.resolve(__dirname, './../images');
+const DIST_DIR = path.resolve(__dirname, './../dist/');
+const jshtmlglob = COMPONENT_DIR + "/**/*.html.js";
+const cssglob = COMPONENT_DIR + "/**/*.scss";
+const jsglob = COMPONENT_DIR + "/**/*.js";
+const scssResolvePath = path.resolve(__dirname, '/stylesheets');
+
+const outputMode = [...process.argv].indexOf('--erb') > 0 ? ".erb" : ".html";
+
+const bar = new ProgressBar(`${chalk.green('building')} [:bar]`, { total: 40 });
+
+const timer = setInterval(function() {
+ bar.tick();
+ if (bar.complete) {
+ clearInterval(timer);
+ }
+}, 100);
+
+const buildAssets = new Promise((resolve, reject) => {
+
+ fs.mkdir(DIST_DIR, function(e) {
+ if (!e || (e && e.code === 'EEXIST')) {} else {
+ console.log(e);
+ }
+ });
+
+ const jsPromise = glob(jsglob, (err, files) => {
+ const fl = files.length - 1;
+ files.forEach((file, i) => {
+ if (file.indexOf('.html.js') > 0) {
+ return
+ }
+ const componentName = file.split('/')
+ .filter((item, i, arr) => i === arr.length - 1)
+ .map(name => {
+
+ // Write filename with '_' prefix
+ // for middleman partials use case
+ return '_' + name.split('.')[0];
+ })[0];
+
+ const fileName = DIST_DIR + '/' + componentName + '.js';
+ let jsCode = fs.readFileSync(file, "utf8");
+ const removeExports = /(^module\.exports.*)/gm
+ jsCode = jsCode.replace(removeExports, "");
+
+ const transpiled = babel.transform(jsCode, {
+ env: "production",
+ presets: ["es2015"]
+ });
+
+ fs.writeFileSync(fileName, transpiled.code);
+
+ });
+ });
+
+ const htmlPromise = new Promise((resolve, reject) => {
+
+ glob(jshtmlglob, (err, files) => {
+ const fl = files.length - 1;
+ log(chalk.white('Start building algolia components'));
+ log(chalk.white('Output to ', chalk.bold.underline(DIST_DIR)));
+
+ files.forEach((file, i) => {
+ // Get component name from /path/to/file
+ const componentName = file.split('/')
+ .filter((item, i, arr) => i === arr.length - 1)
+ .map(name => {
+
+ // Write filename with '_' prefix
+ // for middleman partials use case
+ return '_' + name.split('.')[0];
+ })[0];
+
+ log(chalk.white('Building partial ->'), chalk.bold(componentName));
+
+ // Filename with path to dist dir
+ const fileName = DIST_DIR + '/' + componentName + outputMode;
+ // Require component
+ const component = require(file);
+ // Call it's render function
+ const html = component({}, assets);
+
+ // Write file
+ fs.writeFileSync(fileName, html);
+ if (i === fl) {
+ resolve({ message: 'Finished html assets' });
+ }
+ });
+ });
+ });
+
+ const cssPromise = new Promise((resolve, reject) => {
+
+ glob(cssglob, (err, files) => {
+ const fl = files.length - 1;
+ files.forEach((file, i) => {
+ const componentName = file.split('/')
+ .filter((item, i, arr) => i === arr.length - 1)
+ .map(name => {
+
+ // Write filename with '_' prefix
+ // for middleman partials use case
+ return '_' + name.split('.')[0];
+ })[0];
+
+ const cssContent = fs.readFileSync(file, "utf8");
+
+ const result = sass.render({
+ file: file,
+ includePaths: [scssResolvePath]
+ }, (err, result) => {
+ if (err) { reject(err) }
+
+ fs.writeFileSync(DIST_DIR + '/' + componentName + '.css', result.css.toString());
+ });
+ if (i === fl) {
+ resolve({ message: 'Finished CSS assets' });
+ }
+ })
+ });
+ });
+
+ Promise.all([htmlPromise, cssPromise]).then((data) => {
+ resolve('completed');
+ });
+});
+
+
+buildAssets.then(data => {
+ bar.complete = true;
+})
+
+module.exports = buildAssets;
diff --git a/docs/algolia-frontend-components/build/development.js b/docs/algolia-frontend-components/build/development.js
new file mode 100755
index 00000000..7f4efa2c
--- /dev/null
+++ b/docs/algolia-frontend-components/build/development.js
@@ -0,0 +1,15 @@
+const fs = require('fs');
+const path = require('path');
+const glob = require('glob');
+const buildAssets = require('./build.js');
+
+const COMPONENT_DIR = path.resolve(__dirname, './../components');
+const FILE_GLOB = COMPONENT_DIR + "/**/*";
+
+glob(FILE_GLOB, (err, files) => {
+ files.forEach(file => {
+ fs.watch(file, (eventType, filename) => {
+ buildAssets();
+ });
+ })
+});
diff --git a/docs/algolia-frontend-components/build/index.html b/docs/algolia-frontend-components/build/index.html
new file mode 100755
index 00000000..0d5d0e4a
--- /dev/null
+++ b/docs/algolia-frontend-components/build/index.html
@@ -0,0 +1,55 @@
+
+
+
+
+ Document
+
+
+
+
+
+
+${require('./../components/communityHeader/communityHeader.html.js')({
+ menu:{
+ community: {
+ "dropdownItems": [
+ {
+ "name": "React InstantSearch",
+ "url": "https://community.algolia.com/instantsearch.js/react",
+ "logo": "wordpress",
+ "backgroundColor": "linear-gradient(to bottom left, #2C5EE2 0%, #17204F 150%)"
+ },
+ {
+ "name": "instantsearch.js",
+ "url": "https://community.algolia.com/instantsearch.js/",
+ "logo": "https://community.algolia.com/img/logo-is.svg",
+ "backgroundColor": "#385D72"
+ },{
+ "name": "Shopify",
+ "url": "https://community.algolia.com/shopify",
+ "logo": "shopify",
+ "backgroundColor": "linear-gradient(to bottom left, #29D98D, #03A8F6 450%)"
+ },
+ {
+ "name": "Helper.js",
+ "url": "https://community.algolia.com/algoliasearch-helper-js/",
+ "logo": "https://community.algolia.com/img/logo-helper.svg",
+ "backgroundColor": "#FDBD57"
+ },{
+ "name": "wordpress",
+ "url": "https://community.algolia.com/wordpress",
+ "logo": "https://community.algolia.com/wordpress/img/icons/wp-icon.svg",
+ "backgroundColor": "linear-gradient(to bottom right, #4041B2, #516ED1)"
+ },
+ ]
+ }
+ },
+ sideMenu:[
+ { name: "Test", dropdownItems: [ {name: "test" },{name: "test2" }]},
+ { name: "Test", dropdownItems: [ {name: "test" },{name: "test2" }]},
+ { name: "Github", image:"
", dropdownItems: [ {name: "Magento 1"}, {name: "Magento2"}]}
+ ]
+}, assets)}
+
+
+
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/build/preview.js b/docs/algolia-frontend-components/build/preview.js
new file mode 100755
index 00000000..737ca0a7
--- /dev/null
+++ b/docs/algolia-frontend-components/build/preview.js
@@ -0,0 +1,12 @@
+
+import base from './../stylesheets/_base.scss';
+import css from './../components/communityHeader/communityHeader.scss';
+import communityHeader from './../components/communityHeader/communityHeader';
+
+window.addEventListener('load', () => {
+ var header = new communityHeader({
+ apiKey: '52641df1ce4919ba42eb84595f4825c7',
+ indexName: 'wordpress_algolia',
+ inputSelector: '#searchbox'
+ });
+});
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/build/serve.js b/docs/algolia-frontend-components/build/serve.js
new file mode 100755
index 00000000..deafb920
--- /dev/null
+++ b/docs/algolia-frontend-components/build/serve.js
@@ -0,0 +1,81 @@
+const webpack = require('webpack');
+const path = require('path');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+const server = require('webpack-dev-server');
+
+process.env.webpack = true;
+
+let a = require('./../build/assets');
+
+const plugins = [
+ new webpack.HotModuleReplacementPlugin(),
+ new HtmlWebpackPlugin({
+ template: path.join(process.cwd(), '/build/index.html'),
+ inject: true,
+ }),
+ new webpack.DefinePlugin({
+ 'assets': JSON.stringify(a)
+ }),
+]
+
+const config = {
+ entry: [
+ path.join(process.cwd(),'build/preview.js')
+ ],
+
+ output: {
+ path: path.resolve(process.cwd(), '/'),
+ publicPath: '/',
+ filename: '[name].js'
+ },
+
+ module: {
+
+ rules: [
+ {
+ test: /\.(js)$/,
+ exclude: [
+ /node_modules/
+ ],
+ loader: 'babel-loader',
+ },
+ {
+ test: /\.svg$/,
+ use: 'raw-loader'
+ },
+ {
+ test: /\.scss$/,
+ use: [ {loader:'style-loader'}, {loader: 'css-loader'}, {loader:'sass-loader'}]
+ },
+ {
+ test: /\.html$/,
+ use: [
+ {loader: 'html-loader', options: { interpolate: true}}
+ ]
+ },
+ {
+ test: /\.json$/,
+ loader: 'json-loader',
+ }
+ ]
+ },
+
+ resolve: {
+ modules: ['.', 'node_modules', process.cwd()],
+ extensions: [
+ '.js',
+ '.scss',
+ '.svg'
+ ]
+ },
+
+ plugins: plugins,
+
+ devServer: {
+ historyApiFallback: true,
+ hot: true,
+ inline: true
+ },
+}
+
+module.exports = config;
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/components/communityHeader/communityHeader.example.json b/docs/algolia-frontend-components/components/communityHeader/communityHeader.example.json
new file mode 100755
index 00000000..d02a38c0
--- /dev/null
+++ b/docs/algolia-frontend-components/components/communityHeader/communityHeader.example.json
@@ -0,0 +1,69 @@
+{
+ "menu": {
+ "community": {
+ "style": "widelist",
+ "view": "integrations",
+ "label": "",
+ "caret": "",
+ "dropdownItems": [{
+ "name": "React InstantSearch",
+ "url": "https://community.algolia.com/instantsearch.js/react",
+ "logo": "InstantSearchReact",
+ "backgroundColor": "linear-gradient(to bottom left, #2C5EE2 0%, #17204F 150%)"
+ }, {
+ "name": "Wordpress",
+ "url": "https://community.algolia.com/wordpress",
+ "logo": "https://community.algolia.com/wordpress/img/icons/wp-icon.svg",
+ "backgroundColor": "linear-gradient(to bottom right, #4041B2, #516ED1)"
+ }, {
+ "name": "Autocomplete.js",
+ "url": "https://github.com/algolia/autocomplete.js",
+ "logo": "https://community.algolia.com/img/illus-autocomplete.svg",
+ "backgroundColor": "#00587f"
+ }, {
+ "name": "instantsearch.js",
+ "url": "https://community.algolia.com/instantsearch.js/",
+ "logo": "https://community.algolia.com/img/logo-is.svg",
+ "backgroundColor": "#385D72"
+ }, {
+ "name": "Helper.js",
+ "url": "https://community.algolia.com/algoliasearch-helper-js/",
+ "logo": "https://community.algolia.com/img/logo-helper.svg",
+ "backgroundColor": "#FDBD57"
+ }, {
+ "name": "Magento",
+ "url": "https://community.algolia.com/magento/",
+ "logo": "https://res.cloudinary.com/hilnmyskv/image/upload/v1477318624/magento-icon-white.svg",
+ "backgroundColor": "linear-gradient(to bottom right, #ed9259, #e76d22)"
+ }]
+ },
+ "project": {
+ "view": "links",
+ "label": "Shopify plugin",
+ "logo": "",
+ "caret": "",
+ "dropdownItems": []
+ }
+ },
+ "mobileMenu": [{
+ "name": "Install",
+ "url": "",
+ "image": "",
+ "target": ""
+ }],
+ "sideMenu": [{
+ "name": "Install",
+ "url": "https://community.algolia.com/shopify/try.html",
+ "image": "",
+ "target": "",
+ "dropdownItems": []
+ }],
+ "docSearch": {
+ "input_selector": "searchbox",
+ "input_selector_placeholder": "Search the docs",
+ "input_mobile_selector": "mobile-searchbox",
+ "input_search_icon": "
",
+ "input_cancel_icon": "
",
+ "input_open_on_init": false
+ }
+}
diff --git a/docs/algolia-frontend-components/components/communityHeader/communityHeader.html.js b/docs/algolia-frontend-components/components/communityHeader/communityHeader.html.js
new file mode 100755
index 00000000..f3d67634
--- /dev/null
+++ b/docs/algolia-frontend-components/components/communityHeader/communityHeader.html.js
@@ -0,0 +1,228 @@
+let data = {};
+const merge = require('deepmerge');
+let assets = require('./../../build/assets');
+
+try {
+ data = require('./communityHeader.data.json');
+} catch (e) {
+ data = require('./communityHeader.example.json');
+}
+
+/**
+ * Render item template
+ * @param {[type]} t [template item]
+ * @return {[String]} [rendered template]
+ */
+const renderDropdownItem = (done, t, assets) => {
+ const isSvgTile = assets[t.logo] ? assets[t.logo] : false;
+ return done += `
+
+
+ `;
+}
+
+const renderDropdownList = (data, assets) => {
+
+ let entireList = "";
+
+ Object.keys(data).forEach(list => {
+ const listItem = data[list];
+ const listArray = listItem.dropdownItems;
+ let listString = `
+
+
+ `;
+
+ listString += listArray.reduce((prev, next, i) => renderDropdownItem(prev, next, assets), "");
+ listString +=
+ `
+
+
+ `;
+
+ entireList += listString;
+ });
+ return entireList;
+}
+
+const renderMenu = ({ label, type, dropdownItems, logo, view, url, target }) => {
+ const link = (!dropdownItems || dropdownItems.length === 0) ? "#" : url
+ return `
+
+
+
+ ${logo !== "" ? logo : ""}
+ ${label ? `${ label }`: ""}
+
+ `
+}
+
+const renderMenuList = (data) => {
+ let entireList = "";
+ const listItem = data["project"];
+ entireList += renderMenu(listItem);
+
+ return entireList;
+}
+
+const renderDocSearch = (docSearch, assets) => {
+ if(!docSearch) return ""
+
+ return `
+ `;
+}
+
+const renderRightList = (sideList) => {
+ if(!sideList.length) return;
+ let markup = ""
+
+ return markup;
+}
+
+const renderRightListItem = (prev, data) => {
+ if(data.image){
+ return prev += `
+
+
+ ${data.image}
+ ${ renderGlyph(data) }
+
+ ${renderSubList(data.dropdownItems)}
+ `;
+ } else {
+ return prev += `
+
+
+ ${data.name}
+ ${ renderGlyph(data) }
+
+ ${renderSubList(data.dropdownItems)}
+ `
+ }
+}
+
+const renderGlyph = (data) => {
+ if(data.dropdownItems && data.dropdownItems.length){
+ return '▼'
+ } else {
+ return "";
+ }
+}
+
+const renderSubList = (subList) => {
+ if(!subList || !subList.length) return "";
+ let markup = "";
+
+ return markup;
+}
+
+const renderSubListItem = (prev, data) => {
+ return prev += `
+
+ ${data.name}
+
+ `
+}
+
+const renderMobileMenu = (sideList) => {
+ if(!sideList.length) return;
+ let markup = ""
+ return markup;
+}
+
+const renderMobileMenuItem = (prev, data) => {
+ if(data.image){
+ return prev += `
+
+
+ ${data.image}
+ ${data.name ? data.name : ""}
+
+ `;
+ } else {
+ return prev += `
+
+
+ ${data.name}
+
+ `
+ }
+}
+
+module.exports = function(paramData = {}, assetParams = {}){
+ const d = merge(data, paramData);
+ const a = merge(assets, assetParams);
+ return `
+
+ `;
+}
diff --git a/docs/algolia-frontend-components/components/communityHeader/communityHeader.js b/docs/algolia-frontend-components/components/communityHeader/communityHeader.js
new file mode 100755
index 00000000..fb9963a0
--- /dev/null
+++ b/docs/algolia-frontend-components/components/communityHeader/communityHeader.js
@@ -0,0 +1,280 @@
+/**
+ * Main header function with docsearch
+ * @param {Object} docSearch config
+ */
+
+class communityHeader {
+
+ constructor(docSearchCredentials, docSearch) {
+ this.docSearchCredentials = docSearchCredentials;
+ this.docSearch = docSearch || null;
+
+ this.menuState = {
+ isOpen: false,
+ isOpenMobile: false
+ }
+
+ this.INIT_VAL = {
+ WIDTH: 490,
+ HEIGHT: 360
+ }
+
+ this.disableTransitionTimeout;
+
+ this.searchIcon = document.querySelector('#search');
+ this.cancelIcon = document.querySelector('#cancel');
+ this.searchInputContainer = document.querySelector('.algc-search__input');
+ this.searchContainer = this.searchInputContainer ? this.searchInputContainer.parentNode : null;
+ this.navRoot = document.querySelector('.algc-dropdownroot');
+ this.dropdownRoot = document.querySelector('.algc-navigation__dropdown-holder');
+ this.navItems = document.querySelectorAll('a[data-enabledropdown="true"]');
+ this.navContainer = document.querySelector('.algc-dropdownroot__dropdowncontainer');
+ this.menuContainer = document.querySelector('.algc-navigation__container');
+ this.navBg = document.querySelector('.algc-dropdownroot__dropdownbg');
+ this.navArrow = document.querySelector('.algc-dropdownroot__dropdownarrow');
+ this.dropDownContainer = document.querySelector('.algc-dropdownroot__dropdowncontainer');
+ this.menuTriggers = document.querySelectorAll('[data-enabledropdown="true"]');
+ this.mobileMenuButton = document.querySelector('.algc-openmobile ');
+ this.mobileMenu = document.querySelector('.algc-mobilemenu');
+ this.subList = document.querySelectorAll('.algc-menu--sublistlink');
+ this.subListHolders = [...this.subList].map(node => node.parentNode);
+ this.menuDropdowns = {};
+
+ [].forEach.call(document.querySelectorAll('[data-dropdown-content]'), (item) => {
+ this.menuDropdowns[item.dataset.dropdownContent] = {
+ parent: item.parentNode,
+ content: item
+ }
+ });
+
+ this.shouldInitDocSearch = this.shouldInitDocSearch.bind(this);
+ this.docSearchInit = this.checkDocSearch(docSearch);
+ this.enableDocSearch = this.verifyDocSearchParams(docSearchCredentials);
+ this.hasDocSearchRendered = document.querySelector('.algc-navigation .algc-search__input--docsearch');
+ this.triggerMenu = this.triggerMenu.bind(this);
+ this.shouldTriggerMenu = this.shouldTriggerMenu.bind(this);
+ this.closeMenu = this.closeMenu.bind(this);
+ this.toggleMobileMenu = this.toggleMobileMenu.bind(this);
+ this.docSearchToggling = this.docSearchToggling.bind(this);
+ this.initDocSearchStrategy = this.initDocSearchStrategy.bind(this);
+ this.openSublist = this.openSublist.bind(this);
+ this.closeSubLists = this.closeSubLists.bind(this);
+ this.bindListeners = this.bindListeners.bind(this);
+
+ this.calculatePosition = this.calculatePosition.bind(this);
+
+ this.verifyDocSearchParams();
+ this.shouldInitDocSearch();
+ this.initDocSearchStrategy();
+ this.bindListeners();
+ }
+
+ calculatePosition(sourceNode) {
+ const box = sourceNode.getBoundingClientRect();
+ const realWidth = sourceNode.offsetWidth;
+ const realHeight = sourceNode.offsetHeight;
+
+ return {
+ left: box.left,
+ top: box.top,
+ width: box.width,
+ height: box.height,
+ realWidth: realWidth,
+ realHeight: realHeight,
+ center: box.left + box.width / 2
+ }
+ }
+
+ shouldInitDocSearch() {
+ if (!this.enableDocSearch && this.hasDocSearchRendered) {
+ throw new Error('You need to pass docSearch: { apiKey, indexName, inputSelector } to communityHeader function in order to initialise docSearch');
+ }
+ }
+
+ checkDocSearch(docSearch = false) {
+ if (docSearch) return docSearch;
+
+ if (typeof window.docsearch === "function" || typeof docsearch === "function") {
+ return docsearch;
+ }
+ }
+
+ verifyDocSearchParams(docSearchCredentials) {
+ return (docSearchCredentials &&
+ docSearchCredentials.apiKey &&
+ docSearchCredentials.indexName &&
+ docSearchCredentials.inputSelector) ? true : false;
+ }
+
+ triggerMenu(event) {
+
+ const dropdown = event.target.dataset.dropdown;
+ const newTarget = this.menuDropdowns[dropdown].content;
+ const newContent = this.menuDropdowns[dropdown].parent;
+
+ const navItem = this.calculatePosition(event.target);
+ const newTargetCoordinates = this.calculatePosition(newTarget);
+ const menuContainerOffset = this.calculatePosition(this.menuContainer);
+ let leftDistance;
+
+ const scaleFactors = {
+ X: newTargetCoordinates.realWidth / this.INIT_VAL.WIDTH,
+ Y: newTargetCoordinates.realHeight / this.INIT_VAL.HEIGHT
+ }
+
+ leftDistance = (navItem.center - menuContainerOffset.left) + "px";
+
+ if(menuContainerOffset.left < 20){
+ leftDistance = "calc(50% - 36px)"
+ }
+
+ this.navBg.style.cssText = `
+ transform: translateX(${leftDistance}) scale(${scaleFactors.X}, ${scaleFactors.Y})`;
+
+ this.navArrow.style.cssText = `
+ transform: translateX(${leftDistance}) rotate(45deg)`;
+
+ this.dropDownContainer.style.cssText = `
+ transform: translateX(${leftDistance});
+ width: ${newTargetCoordinates.realWidth}px;
+ height: ${newTargetCoordinates.realHeight + 10}px;`;
+
+ this.dropdownRoot.style.pointerEvents = "auto";
+
+ Object.keys(this.menuDropdowns).forEach(key => {
+ if (key === dropdown) {
+ this.menuDropdowns[key].parent.classList.add('active');
+ } else {
+ this.menuDropdowns[key].parent.classList.remove('active');
+ }
+ })
+
+ if (!this.menuState.isOpen) {
+ setTimeout(() => {
+ this.navRoot.className = "algc-dropdownroot activeDropdown";
+ }, 50);
+ }
+
+ window.clearTimeout(this.disableTransitionTimeout);
+ this.menuState.isOpen = true;
+ }
+
+ shouldTriggerMenu(event) {
+ if(this.menuState.isOpen) {
+ this.triggerMenu(event);
+ } else {
+ this.triggerMenuTimeout = setTimeout(()=>{
+ this.triggerMenu(event);
+ }, 200);
+ }
+ }
+
+ closeMenu(event) {
+ window.clearTimeout(this.triggerMenuTimeout);
+ this.menuState.isOpen = false;
+ this.disableTransitionTimeout = setTimeout(() => {
+ this.dropdownRoot.style.pointerEvents = "none";
+ this.navRoot.className = "algc-dropdownroot notransition"
+ }, 50);
+ }
+
+ toggleMobileMenu(event) {
+ this.mobileMenuButton.classList.toggle('algc-openmobile--open');
+ this.mobileMenu.classList.toggle('algc-mobilemenu--open');
+ }
+
+ // Search
+ docSearchToggling() {
+ this.searchInput = document.querySelector(this.docSearchCredentials.inputSelector);
+ const openSearchInput = () => {
+ this.searchContainer.classList.add('open');
+ this.searchInput.focus();
+ }
+
+ const closeSearchInput = () => {
+ this.searchInput.blur();
+ this.searchContainer.classList.remove('open');
+ }
+
+ const emptySearchInput = () => {
+ if (this.searchInput.value !== '') {
+ this.searchInput.value = '';
+ } else {
+ closeSearchInput();
+ }
+ }
+ this.searchInput.setAttribute('value', '');
+ this.searchIcon.addEventListener('click', openSearchInput);
+ this.cancelIcon.addEventListener('click', emptySearchInput);
+ };
+
+ initDocSearch() {
+ this.docSearchToggling();
+ this.docSearchInit(this.docSearchCredentials);
+ }
+
+ initDocSearchStrategy() {
+ if (this.enableDocSearch && typeof this.docSearchInit === "function") {
+ this.initDocSearch();
+
+ } else if (this.docSearch === "lazy") {
+
+ const docSearchScript = document.createElement('script');
+ docSearchScript.type = 'text/javascript';
+ docSearchScript.async = true;
+ document.body.appendChild(docSearchScript);
+
+ docSearchScript.onload = () => {
+ this.docSearchInit = docsearch;
+ this.initDocSearch();
+ };
+
+ docSearchScript.src = "https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js";
+ }
+ }
+
+ openSublist(node) {
+ const parent = node.parentNode;
+ this.subListHolders.forEach(holder => {
+ if (holder === parent && !parent.classList.contains('open')) {
+ holder.classList.add('open');
+ } else {
+ holder.classList.remove('open');
+ }
+ })
+ }
+
+ closeSubLists(event) {
+ this.subListHolders.forEach(holder => holder.classList.remove('open'));
+ }
+
+ bindListeners() {
+ var that = this;
+ this.subList.forEach(link => {
+ link.addEventListener('click', function(event){
+ event.preventDefault();
+ event.stopPropagation();
+ that.openSublist(this);
+ });
+ });
+
+ this.menuTriggers.forEach(item => {
+ item.addEventListener('mouseenter', this.shouldTriggerMenu);
+ item.addEventListener('focus', this.triggerMenu);
+ });
+
+ this.navItems.forEach(item => {
+ item.addEventListener('mouseleave', this.closeMenu);
+ });
+
+ this.navContainer.addEventListener('mouseenter', () => {
+ clearTimeout(this.disableTransitionTimeout);
+ });
+
+ this.mobileMenuButton.addEventListener('click', this.toggleMobileMenu);
+ document.addEventListener('click', this.closeSubLists);
+ document.querySelector('.algc-dropdownroot__dropdowncontainer').addEventListener('mouseleave', this.closeMenu);
+ }
+}
+
+module.exports = communityHeader
diff --git a/docs/algolia-frontend-components/components/communityHeader/communityHeader.scss b/docs/algolia-frontend-components/components/communityHeader/communityHeader.scss
new file mode 100755
index 00000000..014e1524
--- /dev/null
+++ b/docs/algolia-frontend-components/components/communityHeader/communityHeader.scss
@@ -0,0 +1,957 @@
+@import "./../../stylesheets/_variables.scss";
+@import "./../../stylesheets/_functions.scss";
+@import "./../../stylesheets/_mixins.scss";
+
+$nav-height: 56px;
+$nav-z-index: 50;
+$nav-background: $deep-cove;
+$nav-background-medium: mix($nav-background, #fff, 96%);
+$nav-background-light: mix($nav-background, #fff, 92%);
+
+.algc-navigation {
+ top: 0;
+ left: 0;
+ width: 100%;
+ color: #fff;
+ padding: 0 1em;
+ z-index: $z-top;
+ position: fixed;
+ perspective: 2000px;
+ transform-style: preserve-3d;
+ background: $nav-background;
+ font-size: 1em;
+ will-change: transform;
+
+ @media (max-width: $breakpoint-sm){
+ padding: 0 .5em;
+ }
+
+ .algc-mainmenu {
+ position: relative;
+ }
+
+ .algc-navigation__container{
+ margin: 0 auto;
+ max-width: $container-max-width;
+ }
+
+ a {
+ text-decoration: none;
+ }
+}
+
+.algc-navigation__brands {
+ height: $nav-height;
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+ float: left;
+ font-weight: $light;
+ display: flex;
+ align-items:center;
+ z-index: $z-1;
+ position: relative;
+
+ a {
+ text-decoration: none;
+ color: $white;
+
+ &:hover {
+ color: $white;
+ }
+ }
+
+ &:hover,
+ &:visited {
+ color: white;
+ }
+
+ img,svg {
+ max-width: none;
+ vertical-align: middle;
+ }
+
+ @media (max-width: $breakpoint-md) {
+ font-size: .8em;
+ }
+
+ .algc-navigation__li {
+ float: left;
+ text-align: center;
+ min-height: 33px;
+ display: flex;
+ align-items: center;
+
+ @media (min-width: $breakpoint-md) and (max-width: $breakpoint-lg) {
+
+ &:nth-child(2) {
+ padding-left: 0;
+
+ img,svg {
+ margin-left: 0px;
+ }
+
+ .algc-arrowseparator {
+ margin-left: 4px;
+ }
+ }
+ }
+
+ @media (max-width: $breakpoint-lg) {
+
+ &:nth-child(2) {
+ a { padding-left: 0; }
+ .algc-arrowseparator { display: none; }
+ }
+ }
+
+ @media (max-width: $breakpoint-sm) {
+
+ &:nth-child(2) {
+ width: 30px;
+ overflow: hidden;
+ }
+ }
+ }
+
+ a {
+ position: relative;
+ display: block;
+ padding-right: 12px;
+
+ @media (max-width: $breakpoint-lg) {
+ padding: 0 1.2em;
+ }
+
+ @media (max-width: $breakpoint-sm) {
+ padding: 0 .8em
+ }
+ }
+
+ .algc-navigation__li--algolia {
+
+ a {
+ padding-left: 0;
+ }
+
+ .algolia-logo {
+ width: auto;
+ height: 23px;
+ }
+
+ @media (max-width: $breakpoint-lg) {
+ display: none;
+ }
+ }
+
+ .algc-navigation__li--community {
+
+ a {
+ height: 33px;
+ }
+
+ .algolia-community-logo{
+ width: auto;
+ height: 30px;
+ }
+ }
+}
+
+//---------------------------
+// Dropdown starts here
+//---------------------------
+.algc-navigation__dropdown-holder {
+ position: absolute;
+ top: $nav-height - 14px;
+ left: 25px;
+ max-width: 490px;
+ width: 100%;
+ height: 800px;
+ -webkit-perspective: 500px;
+ perspective: 500px;
+ pointer-events: none;
+ font-size: 1.2em;
+
+ @media (max-width: $breakpoint-sm) {
+ left:0;
+ max-width: 100%;
+ }
+}
+
+.algc-dropdownroot {
+ top: 4px;
+ width: 100%;
+ position: absolute;
+ opacity: 0;
+ transform-origin: 50% -50px;
+ transition-property: transform, opacity;
+ transition-duration: .25s;
+ will-change: transform, opacity;
+ pointer-events: none;
+ z-index: $z-top;
+ transform: rotateX(-15deg) translate(-50%, 0%);
+
+ &.notransition {
+
+ .algc-dropdownroot__dropdowncontainer,
+ .algc-dropdownroot__dropdownbg,
+ .algc-dropdownroot__section,
+ .algc-dropdownroot__dropdownarrow {
+ transition: none;
+ }
+ }
+
+ &.activeDropdown {
+ opacity: 1;
+ transform: translate(-50%, 0);
+ pointer-events: all;
+
+ .algc-dropdownroot__dropdownbg {
+ opacity: 1;
+ transform: none;
+ transform-origin: 50% 0;
+ }
+ }
+
+ .algc-dropdownroot__dropdownbg {
+ left: 0;
+ top: 10px;
+ box-shadow: 0 50px 100px rgba(50, 50, 93, .1), 0 15px 35px rgba(50, 50, 93, .15), 0 5px 15px rgba(0, 0, 0, .1);
+ border-radius: 4px;
+ transform-origin: 50% 0;
+ background-color: #FFF;
+ transition-property: transform, opacity;
+ transition-duration: .25s;
+ position: absolute;
+ width: 490px;
+ height: 360px;
+ will-change: transform, opacity;
+ }
+
+ .algc-dropdownroot__dropdownarrow {
+ left: 50%;
+ top: 6px;
+ background-color: #FFF;
+ box-shadow: -3px -3px 5px rgba(82, 95, 127, .04);
+ will-change: transform, opacity;
+ transition-property: transform, opacity;
+ transition-duration: .25s;
+ transform: rotate(45deg) translate(-50%, 0);
+ position: absolute;
+ width: 12px;
+ height: 12px;
+ border-radius: 2px;
+ pointer-events: none;
+ }
+
+ .algc-dropdownroot__dropdowncontainer {
+ margin: 0 auto;
+ position: relative;
+ overflow: hidden;
+ will-change: transform, width, height;
+ transition-property: transform, width, height;
+ transition-duration: .25s;
+ }
+
+ @media (max-width: $breakpoint-sm){
+
+ transform: translate(0,0) rotateX(-15deg);
+
+ &.activeDropdown {
+ transform: rotateX(0deg) translate(0,0) !important;
+ }
+
+ .algc-dropdownroot__dropdownbg {
+ width: 100%;
+ }
+
+ .algc-dropdownroot__widelist {
+ width: 100%;
+ }
+
+ .algc-dropdownroot__content {
+ width: 100% !important;
+ }
+
+ .algc-dropdownroot__section {
+ width:100%;
+ }
+
+ .algc-dropdownroot__dropdowncontainer {
+ width: 100% !important;
+ max-width: 100%;
+ transform: translate(0,0) !important;
+ }
+ }
+}
+
+
+.algc-dropdownroot__section {
+ position: absolute;
+ left: 0;
+ top: 0;
+ opacity: 0;
+ will-change: transform, opacity;
+ transition-property: transform, opacity;
+ transition-duration: .25s;
+
+ &.active {
+ opacity: 1;
+ transform: translateX(0);
+ z-index: $z-1
+ }
+
+ &.right {
+ transform: translateX(150px);
+ }
+
+ &.left {
+ transform: translateX(-150px);
+ }
+
+ .algc-dropdownroot__content {
+ position: absolute;
+ top: 10px;
+ left: 0;
+ background: #fff;
+ border-radius: 4px;
+ overflow: hidden;
+ }
+}
+
+.algc-dropdownroot__widelist {
+ display: flex;
+ flex-wrap: wrap;
+ list-style-type: none;
+ padding: 0;
+ width: 450px;
+ padding: em(10) em(20);
+ margin: 0;
+ background-color: $titan-white;
+
+ li {
+ flex: 50%;
+ border-radius: 3px;
+ margin: .5em auto;
+
+ a {
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: row;
+ align-items: center;
+ color: #333333;
+ background-color: $titan-white;
+ border-radius: 4px;
+ transition: background 160ms ease;
+
+ &:hover {
+ color: darken(#333333, 10%);
+ background-color: $athens-gray;
+ }
+ }
+
+ h4 {
+ text-align: center;
+ text-align: left;
+ margin: 0;
+ font-size: $text-sm;
+ }
+
+ .item-icon {
+ width: 42px;
+ height: 42px;
+ margin: 8px;
+ border-radius: 4px;
+ text-align:center;
+ position: relative;
+
+ img,
+ svg {
+ max-width: 60%;
+ transition: transform 0.2s ease 0.15s;
+ }
+ }
+
+ svg,
+ img {
+ position: absolute;
+ left: 50%;
+ top:50%;
+ max-width: 32px;
+ width: 100%;
+ height: auto;
+ transform: translate(-50%,-50%);
+ }
+ }
+}
+
+.algc-dropdownroot__footer {
+ text-align: center;
+ font-size: $text-sm;
+ transition: filter 0.2s ease, opacity 0.2s ease;
+ will-change: filter, opacity;
+
+ a {
+ padding: .8em 0;
+ display: block;
+ color: $nav-background;
+ opacity: 0.8;
+
+ &:hover {
+ opacity: 1;
+ }
+ }
+
+ img,
+ svg {
+ vertical-align: middle;
+ }
+}
+
+.algc-dropdownroot__links {
+
+ list-style-type: none;
+ padding: em(10) em(20);
+ display: flex;
+ flex-wrap: wrap;
+ width: 290px;
+ margin: 0;
+
+ li {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ flex: 1 0 50%;
+ padding: em(10) em(10);
+
+ p {
+ margin: 0;
+ }
+
+ img,
+ svg {
+ margin-right: 5px;
+ height: 20px;
+ width: 20px;
+ }
+ }
+}
+
+.algc-navigation__menu {
+ float: right;
+ height: $nav-height;
+ line-height: $nav-height;
+ font-weight: $light;
+ z-index: $z-2;
+
+ .algc-menu__list {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+ width: auto;
+ float: left;
+ position: relative;
+ z-index: $z-1;
+
+ a {
+ text-decoration: none;
+ color: $white;
+ }
+
+ @media (max-width: $breakpoint-md) {
+ display: none;
+ }
+
+ &__item {
+ position: relative;
+ height: $nav-height;
+ line-height: $nav-height;
+ display: inline-block;
+ float: left;
+
+ img,
+ svg {
+ height: $text-lg;
+ width: auto;
+ }
+
+ a {
+ padding: 0 .5em 0 .5em;
+ display: flex;
+ align-items: center;
+ height: 100%;
+ }
+ }
+
+ .algc-glyph {
+ margin-left: 1em;
+ font-size: .4em;
+ }
+
+ .algc-menu__list__item.algc-menu--hassublist.open {
+
+ .algc-menu__sublist {
+ opacity: 1;
+ transform: translate(0, 0);
+ pointer-events: auto;
+ transition: .25s;
+ }
+ }
+ }
+
+ .algc-menu__sublist {
+ pointer-events: none;
+ padding: 0;
+ position: absolute;
+ right: 0;
+ top:100%;
+ background-color: white;
+ list-style-type: none;
+ background-color: #FFF;
+ border-radius: 3px;
+ box-shadow: 0 1px 4px 0 rgba(31, 59, 93, 0.5);
+ font-size: 14px;
+ opacity:0;
+ transition: .14s;
+ transform: translate(0, 6px);
+ will-change: opacity, transform;
+ text-align: left;
+
+ &:before{
+ content: "";
+ position: absolute;
+ right: 16px;
+ top: -4px;
+ height: 12px;
+ width: 12px;
+ border-radius: 3px;
+ transform: rotate(45deg);
+ background-color: #FFF;
+ }
+
+ li:not(:last-child) {
+ border-bottom: solid 1px #eee;
+ }
+
+ li a {
+ text-transform: none;
+ margin: 0;
+ width: 100%;
+ border: none;
+ display: block;
+ padding: 1em 2em;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857;
+ color: #333333;
+ white-space: nowrap;
+ font-size: 1em;
+
+ &:hover {
+ color: darken(#333333, 10%);
+ background-color: #f9f9f9;
+ }
+ }
+ }
+}
+
+.algc-mobilemenu{
+ display: block;
+ position: fixed;
+ top: 0;
+ right: 0;
+ width: 100%;
+ max-width: 200px;
+ padding: 64px $text-sm 0 $text-sm;
+ height: 100vh;
+ background-color: $deep-cove;
+ text-align: right;
+ font-weight: $light;
+ transform: translate(100%, 0);
+ transition: transform 140ms ease-out,
+ opacity 140ms 100ms ease-out;
+ opacity: 0;
+ will-change: transform;
+
+ a {
+ color: $white;
+ }
+
+ &:before{
+ width:100%;
+ height:100vh;
+ position: absolute;
+ content: "";
+ left:0;
+ top: 0;
+ box-shadow: 0 0 36px 3px rgba(0, 0, 0, 0.2);
+ z-index: $z--1;
+ }
+
+ &:after {
+ width: 100%;
+ height: 100%;
+ max-height: 40px;
+ bottom:0;
+ left:0;
+ position: fixed;
+ content: "";
+ background-image: -webkit-linear-gradient(bottom, transparent 0%,rgba(5,15,44,1) 100%);
+ }
+
+ &--open {
+ opacity: 1;
+ transition: 360ms cubic-bezier(0.19, 1, 0.22, 1);
+ transform: translate(0, 0);
+ }
+
+ @media (min-width: $breakpoint-md) {
+ display: none;
+ }
+
+ .algc-mobilemenulist {
+ list-style-type: none;
+ padding: 0 0 40px 0;
+ margin-bottom: 0;
+ position: absolute;
+ top:74px;
+ right:0;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ }
+
+ .algc-mobilemenu__item {
+ line-height: 2.6;
+ position: relative;
+
+ &:after {
+ bottom: 0;
+ width:100%;
+ height: 1px;
+ position: absolute;
+ content: "";
+ display: block;
+ background: linear-gradient(76deg, rgba(28,199,208,0.01) 0%,rgba(28,199,208,0) 18%, rgba(28,199,208,0.49) 46%,rgba(80,191,221,.7) 93%,rgba(125,185,232,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
+ }
+
+ &:last-child {
+
+ &:after {
+ background-color: trasparent;
+ }
+ }
+ }
+
+ a {
+ padding: 0 $text-xs;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ }
+
+ img, svg {
+ height: 1em;
+ margin-right: .4em;
+ }
+}
+
+// Docsearch input
+.algc-menu__search {
+ width: auto;
+ padding: 0 12px;
+ height: $nav-height;
+ display: inline-block;
+ float: left;
+ font-size: $text-sm;
+
+ &--holder {
+ position: relative;
+ width: 32px;
+ height: $nav-height;
+ }
+
+ .algc-search__input {
+
+ button {
+ appearance: none;
+ border: none;
+ background: transparent;
+ position: absolute;
+ z-index: $z-1;
+ top: 50%;
+ bottom: 0;
+ margin: 0;
+ outline: none;
+ display: none;
+ width: 1.6em;
+ height: 1.6em;
+ transition: transform 0.28s ease;
+ transform: translate(0,-50%);
+ cursor: pointer;
+ transform: translate(0,-50%);
+
+ img,
+ svg {
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: auto;
+ max-width: 16px;
+ max-height: $nav-height;
+ vertical-align: middle;
+ position: absolute;
+ margin: auto;
+ pointer-events: all;
+ transition: opacity 0.28s ease 0.15s;
+
+ @media (max-width: $breakpoint-sm) {
+ margin-top: 2px;
+ }
+
+ use {
+ fill: #fff
+ }
+ }
+
+ search {
+ z-index: $z-2;
+ display: block;
+ }
+
+ cancel {
+ z-index: $z-1;
+ display: block;
+ pointer-events: none;
+ opacity: 0;
+ right: -.35em;
+ transition: 40ms ease;
+ transform: translate(0, -40%) scale(.7);
+
+ img,
+ svg {
+ width: 12px;
+ top: 50%;
+ transform: translate(0,-50%);
+ }
+ }
+ }
+
+ // DOCSEARCH RELATED
+ input[type=search] {
+ padding: 0;
+ margin: 0 0 0 2.4em;
+ appearance: none;
+ background: transparent;
+ width: 32px;
+ max-height: 32px;
+ border: 1px solid transparent;
+ position: relative;
+ left: 0;
+ z-index: $z-1;
+ cursor: pointer;
+ transition: background 0.28s ease, transform 0.28s ease, width 0.28s ease;
+ padding: 8px;
+ outline: none;
+ font-weight: $light;
+ border-radius: 3px;
+ padding-left: 1.8em;
+ color: #fff;
+ line-height: 1.3em;
+ padding-right: 1.4em;
+ }
+ }
+
+ &--holder.open {
+ // DOCSEARCH RELATED
+ input[type="search"] {
+ background-color: rgba(white, 0.2);
+ width: 300px;
+ transform: translate(-300px);
+ outline: none;
+ cursor: auto;
+
+ #searchbox {
+ background-color: inherit !important;
+ }
+
+ @media (max-width: $breakpoint-xl){
+ transform: translate(-180px);
+ width: 180px;
+ }
+
+ @media (max-width: $breakpoint-md) and (orientation: landscape) {
+ transform: translate(-240px);
+ width: 240px;
+ }
+
+ @media (max-width: $breakpoint-sm) {
+ transform: translate(-140px);
+ width: 140px;
+ }
+
+ @media (max-width: 370px) {
+ transform: translate(-110px);
+ width: 110px;
+ }
+
+ @include placeholder {
+ color: rgba(#ffffff, 0.3);
+ }
+ }
+
+ button#search {
+ transform: translate(calc(-300px + 4em), -50%);
+
+ @media (max-width: 1180px){
+ transform: translate(calc(-180px + 4em), -50%);
+ }
+
+ @media (max-width: $breakpoint-md) and (orientation: landscape) {
+ transform: translate(calc(-240px + 4em), -50%);
+ }
+
+ @media (max-width: $breakpoint-sm) {
+ transform: translate(calc(-140px + 4em), -50%);
+ }
+
+ @media (max-width: 370px) {
+ transform: translate(calc(-110px + 4em), -50%)
+ }
+ }
+
+ button#cancel {
+ transition: 300ms 300ms ease;
+ pointer-events: auto;
+ opacity: 1;
+ }
+ }
+}
+
+.algolia-autocomplete {
+ position: inherit !important;
+ display: initial !important;
+
+ input#searchbox,
+ input[type="search"] {
+ vertical-align: middle !important;
+ -webkit-appearance: none;
+ appearance: none;
+ font-size: 16px;
+
+ @media (min-width: $breakpoint-sm) {
+ margin-top: -2px;
+ }
+ }
+
+ .ds-dropdown-menu {
+ top: $nav-height - 10px !important;
+ left: -438px !important;
+ right: inherit !important;
+ line-height: 26px !important;
+ font-size: $text-lg;
+
+ @media (max-width: $breakpoint-sm) {
+ margin-top: 0;
+ top: $nav-height !important;
+ left:0 !important;
+ right:0 !important;
+ width: 100% !important;
+ position:fixed !important;
+ min-width: 0 !important;
+ border-radius: 0;
+
+ &:before {
+ display: none;
+ }
+
+ [class^=ds-dataset-] {
+ border-radius: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+ }
+
+ .algolia-docsearch-suggestion--subcategory-column {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ padding-right: 14px;
+ overflow: hidden;
+ }
+ }
+ }
+}
+
+.algc-openmobile {
+ height: 40px;
+ width: 40px;
+ vertical-align: middle;
+ position: relative;
+ z-index: $z-1;
+ cursor: pointer;
+ z-index: $z-3;
+ background-color: $deep-cove;
+ border: none;
+
+ &:focus {
+ outline: none;
+ }
+
+ @media (min-width: $breakpoint-md) {
+ display: none;
+ }
+
+ span {
+ height: 2px;
+ width: 62%;
+ top:50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ transition: 140ms ease-out;
+ background-color: rgba($white, .88);
+ position: absolute;
+
+ &:before,
+ &:after {
+ content: "";
+ width: 100%;
+ height: 2px;
+ background-color: inherit;
+ position: absolute;
+ transition: 130ms ease-out;
+ transform: translate(-50%,-50%);
+ }
+
+ &:before {
+ transform-origin: left center;
+ margin-top: -4px;
+ }
+
+ &:after{
+ transform-origin: left center;
+ margin-top: 6px;
+ }
+ }
+
+ &--open {
+
+ span {
+ transition: 130ms ease-out;
+ transform: translate(-70%,-50%);
+
+ &:before,
+ &:after{
+ transition: 130ms ease-out;
+ transform: translate(-20%,-50%);
+ }
+ }
+ }
+}
+
+.algc-arrowseparator {
+ height: 33px;
+ margin-right: 16px;
+}
+
diff --git a/docs/algolia-frontend-components/images/algolia-community-dark.svg b/docs/algolia-frontend-components/images/algolia-community-dark.svg
new file mode 100755
index 00000000..7d4996c9
--- /dev/null
+++ b/docs/algolia-frontend-components/images/algolia-community-dark.svg
@@ -0,0 +1,11 @@
+
diff --git a/docs/algolia-frontend-components/images/algolia-logo-darkbg.svg b/docs/algolia-frontend-components/images/algolia-logo-darkbg.svg
new file mode 100755
index 00000000..157aedf6
--- /dev/null
+++ b/docs/algolia-frontend-components/images/algolia-logo-darkbg.svg
@@ -0,0 +1,15 @@
+
diff --git a/docs/algolia-frontend-components/images/icon-separator.svg b/docs/algolia-frontend-components/images/icon-separator.svg
new file mode 100755
index 00000000..254d4fee
--- /dev/null
+++ b/docs/algolia-frontend-components/images/icon-separator.svg
@@ -0,0 +1,4 @@
+
diff --git a/docs/algolia-frontend-components/images/instantsearch-android.svg b/docs/algolia-frontend-components/images/instantsearch-android.svg
new file mode 100644
index 00000000..404d9c1e
--- /dev/null
+++ b/docs/algolia-frontend-components/images/instantsearch-android.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/images/react-instantsearch.svg b/docs/algolia-frontend-components/images/react-instantsearch.svg
new file mode 100644
index 00000000..d4b84c2b
--- /dev/null
+++ b/docs/algolia-frontend-components/images/react-instantsearch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/images/search-close-icon.svg b/docs/algolia-frontend-components/images/search-close-icon.svg
new file mode 100755
index 00000000..6537d6e4
--- /dev/null
+++ b/docs/algolia-frontend-components/images/search-close-icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/docs/algolia-frontend-components/images/search-icon.svg b/docs/algolia-frontend-components/images/search-icon.svg
new file mode 100755
index 00000000..5cc1c1d1
--- /dev/null
+++ b/docs/algolia-frontend-components/images/search-icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/docs/algolia-frontend-components/images/shopify.svg b/docs/algolia-frontend-components/images/shopify.svg
new file mode 100644
index 00000000..89a5f0c5
--- /dev/null
+++ b/docs/algolia-frontend-components/images/shopify.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/images/wordpress.svg b/docs/algolia-frontend-components/images/wordpress.svg
new file mode 100644
index 00000000..15814d3f
--- /dev/null
+++ b/docs/algolia-frontend-components/images/wordpress.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/index.js b/docs/algolia-frontend-components/index.js
new file mode 100755
index 00000000..9bf27f94
--- /dev/null
+++ b/docs/algolia-frontend-components/index.js
@@ -0,0 +1,5 @@
+const htmlRender = {
+ communityHeader: require('./components/communityHeader/communityHeader.html.js')
+}
+
+module.exports = htmlRender;
diff --git a/docs/algolia-frontend-components/javascripts.js b/docs/algolia-frontend-components/javascripts.js
new file mode 100755
index 00000000..7971fdbb
--- /dev/null
+++ b/docs/algolia-frontend-components/javascripts.js
@@ -0,0 +1,5 @@
+const javascripts = {
+ communityHeader: require('./components/communityHeader/communityHeader.js')
+}
+
+module.exports = javascripts;
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/package.json b/docs/algolia-frontend-components/package.json
new file mode 100755
index 00000000..21a63f58
--- /dev/null
+++ b/docs/algolia-frontend-components/package.json
@@ -0,0 +1,43 @@
+{
+ "name": "algolia-frontend-components",
+ "version": "0.0.34",
+ "description": "Algolia components",
+ "main": "index.js",
+ "scripts": {
+ "clean": "rm -rf dist",
+ "watch": "node build/development.js --erb",
+ "build": "npm run clean --silent && node build/build.js --silent",
+ "build:erb": "npm run clean --silent && node build/build.js --erb",
+ "serve": "webpack-dev-server --config build/serve.js"
+ },
+ "author": "Jonas Badalic",
+ "license": "ISC",
+ "dependencies": {
+ "babel-cli": "^6.23.0",
+ "babel-core": "^6.23.1",
+ "babel-polyfill": "^6.23.0",
+ "babel-preset-env": "^1.1.9",
+ "babel-preset-es2015": "^6.22.0",
+ "chalk": "^1.1.3",
+ "deepmerge": "^1.3.2",
+ "glob": "^7.1.1",
+ "node-sass": "^4.5.0",
+ "path": "^0.12.7",
+ "progress": "^1.1.8",
+ "webpack": "^2.2.1",
+ "webpack-dev-server": "^2.4.1"
+ },
+ "devDependencies": {
+ "babel-loader": "^6.4.0",
+ "css-loader": "^0.26.2",
+ "extract-loader": "^0.1.0",
+ "file-loader": "^0.10.1",
+ "html-loader": "^0.4.5",
+ "html-webpack-plugin": "^2.28.0",
+ "json-loader": "^0.5.4",
+ "raw-loader": "^0.5.1",
+ "sass-loader": "^6.0.2",
+ "style-loader": "^0.13.2",
+ "url-loader": "^0.5.8"
+ }
+}
diff --git a/docs/algolia-frontend-components/stylesheets/_base.scss b/docs/algolia-frontend-components/stylesheets/_base.scss
new file mode 100755
index 00000000..6109d7b0
--- /dev/null
+++ b/docs/algolia-frontend-components/stylesheets/_base.scss
@@ -0,0 +1,6 @@
+* {
+ box-sizing: border-box;
+}
+body {
+ margin: 0;
+}
\ No newline at end of file
diff --git a/docs/algolia-frontend-components/stylesheets/_functions.scss b/docs/algolia-frontend-components/stylesheets/_functions.scss
new file mode 100755
index 00000000..fb723a1a
--- /dev/null
+++ b/docs/algolia-frontend-components/stylesheets/_functions.scss
@@ -0,0 +1,15 @@
+
+@function str-replace($string, $search, $replace: '') {
+ $index: str-index($string, $search);
+ @if $index {
+ @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
+ }
+ @return $string;
+}
+
+@function em($pixels, $context: $browser-context) {
+ @return #{$pixels/$context}em;
+}
+
+
+
diff --git a/docs/algolia-frontend-components/stylesheets/_mixins.scss b/docs/algolia-frontend-components/stylesheets/_mixins.scss
new file mode 100755
index 00000000..689b99e1
--- /dev/null
+++ b/docs/algolia-frontend-components/stylesheets/_mixins.scss
@@ -0,0 +1,29 @@
+
+@mixin arrowSeparatorLeft($color, $stroke: false) {
+ &:before {
+ content: '';
+ display: block;
+ position: absolute;
+ z-index: 10;
+ height: 110%;
+ width: 40px;
+ top: -5%;
+ left: -6px;
+
+ @if $stroke != false {
+ background: url("data:image/svg+xml;utf8,")no-repeat;
+ } @else {
+ background: url("data:image/svg+xml;utf8,")no-repeat;
+ }
+ }
+}
+
+@mixin placeholder {
+ $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
+ @each $placeholder in $placeholders {
+ &:#{$placeholder}-placeholder {
+ @content;
+ }
+ }
+}
+
diff --git a/docs/algolia-frontend-components/stylesheets/_variables.scss b/docs/algolia-frontend-components/stylesheets/_variables.scss
new file mode 100755
index 00000000..6e4c9f5c
--- /dev/null
+++ b/docs/algolia-frontend-components/stylesheets/_variables.scss
@@ -0,0 +1,158 @@
+
+// font sizes
+$text-xxl: 3.125em;
+$text-xl : 2em;
+$text-lg : 1.25em;
+$text-sm : .75em;
+$text-xs : .625em;
+
+// breakpoints
+$breakpoint-xl: 1200px;
+$breakpoint-lg: 992px;
+$breakpoint-md: 768px;
+$breakpoint-sm: 576px;
+$breakpoint-xs: 576px;
+
+// z-index layers
+$z--1: -10;
+$z-1: 10;
+$z-2: 50;
+$z-3: 100;
+$z-top: 9999;
+
+//containers
+$container-max-width: 1160px;
+
+//fonts;
+$browser-context: 16;
+$light: 300;
+$regular: 400;
+$bold: 600;
+
+//colors;
+$white: white;
+$black: black;
+
+//V2;
+$purple-heart: rgb(142, 67, 231);
+$mulberry: rgb(184, 69, 146);
+$radical-red: rgb(255, 79, 129);
+$bittersweet: rgb(255, 108, 95);
+$koromiko: rgb(255, 193, 104);
+$shamrock: rgb(45, 222, 152);
+$java: rgb(28, 199, 208);
+$algolia-blue: rgb(0, 174, 255);
+$royal-blue: rgb(51, 105, 231);
+$bunting: rgb(24, 35, 89);
+$titan-white: rgb(247, 247, 255);
+$logan: rgb(157, 157, 189);
+$deep-cove: rgb(5, 15, 44);
+$highlight-color: #f6624e;
+$cabaret: #E7486B;
+$rouge: #9C4274;
+$sea-green: #13C4A5;
+$blue-green: #10A4B8;
+$violet: #8A63B3;
+$chambray: #3B5295;
+$sunset-orange: #F6624E;
+$saffron-mango: #FDBD57;
+$red-pink: #fb366e;
+$plum: #65133a;
+$light-navy: #184a80;
+$primary-color: $bunting;
+$secondary-color: $titan-white;
+$tertiary-color: $logan;
+$athens-gray: #EEF0F7;
+$titan-white: #F7F7FF;
+$portage: #8995C7;
+
+$cloudy-blue: #c4c8d7;
+$cloudy-blue-2: #a6b0d8;
+$cloudy-blue-3: #8995C7;
+$summertime: mix($radical-red, $bittersweet, 50%);
+
+//header;
+$header-height: 60px;
+//BootStrap;
+$gray-darker: lighten(#000, 13.5%);
+/* #222 */
+$gray-dark: lighten(#000, 20%);
+/* #333 */
+
+$gray: lighten(#000, 33.5%);
+/* #555 */
+
+$gray-light: lighten(#000, 46.7%);
+/* #777 */
+
+$gray-lighter: lighten(#000, 93.5%);
+/* #eee */
+
+$brand-primary: $algolia-blue;
+$brand-secondary: #FA3870;
+$brand-success: $shamrock;
+$brand-info: $algolia-blue;
+$brand-warning: $koromiko;
+$brand-danger: $radical-red;
+$body-bg: $white;
+$text-color: $bunting;
+$text-muted: $logan;
+$border-radius-base: 3px;
+$border-radius-large: 3px;
+$border-radius-small: 3px;
+$link-color: $brand-primary;
+$link-hover-color: darken($link-color, 15%);
+//fonts;
+$font-family-base: "Open Sans", Helvetica,Arial,sans-serif;
+$headings-font-family: Raleway, "Times New Roman",Times,serif;
+$headings-font-weight: $light;
+$headings-small-color: darken($tertiary-color, 10%);
+//Buttons;
+$btn-font-weight: normal;
+//default;
+$btn-default-color: #777;
+$btn-default-bg: $white;
+$btn-default-border: #ccc;
+//primary;
+$btn-primary-color: $white;
+$btn-primary-bg: $brand-primary;
+$btn-primary-border: darken($btn-primary-bg, 5%);
+//success;
+$btn-success-color: $white;
+$btn-success-bg: $brand-success;
+$btn-success-border: darken($btn-success-bg, 5%);
+//info;
+$btn-info-color: $white;
+$btn-info-bg: $brand-info;
+$btn-info-border: darken($btn-info-bg, 5%);
+//warning;
+$btn-warning-color: $white;
+$btn-warning-bg: $brand-warning;
+$btn-warning-border: darken($btn-warning-bg, 5%);
+//danger;
+$btn-danger-color: $white;
+$btn-danger-bg: $brand-danger;
+$btn-danger-border: darken($btn-danger-bg, 5%);
+//link;
+$btn-link-disabled-color: $gray-light;
+$input-bg-disabled: $gray-lighter;
+//Panels;
+$panel-bg: $white;
+//** Border color for elements within panels;
+$panel-inner-border: lighten($tertiary-color, 20%);
+$panel-footer-bg: lighten($secondary-color, 10%);
+$panel-default-text: $gray-dark;
+$panel-default-border: $white;
+$panel-default-heading-bg: $white;
+//forms;
+$input-group-addon-bg: lighten($secondary-color, 3%);
+$input-border: lighten($gray, 30%);
+//tables;
+$table-border-color: $secondary-color;
+$table-bg-accent: lighten($secondary-color, 5%);
+//tooltip;
+$tooltip-bg: $primary-color;
+$tooltip-opacity: 1;
+//code;
+$pre-bg: $bunting;
+$pre-color: #C2CCCC;
diff --git a/docs/app_data/config.yml b/docs/app_data/config.yml
new file mode 100644
index 00000000..2835e015
--- /dev/null
+++ b/docs/app_data/config.yml
@@ -0,0 +1,9 @@
+# OpenGraph / Twitter
+title: DocSearch
+description: "Algolia DocSearch is the easiest way to add search to your documentation. Just send us your URL, and we'll send you the implementation code."
+tagline: DocSearch
+card_image: https://community.algolia.com/docsearch/assets/images/docsearch-social.png
+twitter_username: algolia
+github_username: algolia
+baseurl: /docsearch
+host: https://community.algolia.com
\ No newline at end of file
diff --git a/docs/app_data/docs.yml b/docs/app_data/docs.yml
new file mode 100644
index 00000000..28fbfc85
--- /dev/null
+++ b/docs/app_data/docs.yml
@@ -0,0 +1,2 @@
+unslug:
+ docsearch: DocSearch
\ No newline at end of file
diff --git a/docs/app_data/google_analytics.yml b/docs/app_data/google_analytics.yml
new file mode 100644
index 00000000..23810825
--- /dev/null
+++ b/docs/app_data/google_analytics.yml
@@ -0,0 +1,2 @@
+---
+doc: 13599
diff --git a/docs/app_data/redirects.yml b/docs/app_data/redirects.yml
new file mode 100644
index 00000000..b6c9e3b0
--- /dev/null
+++ b/docs/app_data/redirects.yml
@@ -0,0 +1,4 @@
+- from: /index.html
+ to: /docsearch/documentation/docsearch/introduction
+- from: /docsearch/documentation/index.html
+ to: /docsearch/documentation/docsearch/introduction
diff --git a/docs/app_data/showcase.yml b/docs/app_data/showcase.yml
new file mode 100644
index 00000000..e9869341
--- /dev/null
+++ b/docs/app_data/showcase.yml
@@ -0,0 +1,94 @@
+- name: Stripe
+ url: "https://stripe.com/docs"
+ gif: "/docsearch/assets/images/showcase/example-stripe.gif"
+ logo: "/docsearch/assets/images/showcase/logo-stripe.png"
+
+- name: Bootstrap
+ url: "https://getbootstrap.com/docs/4.0"
+ gif: "/docsearch/assets/images/showcase/example-bootstrap.gif"
+ logo: "/docsearch/assets/images/showcase/logo-bootstrap.png"
+
+- name: Vue
+ url: "http://vuejs.org/guide/"
+ gif: "/docsearch/assets/images/showcase/example-vuejs.gif"
+ logo: "/docsearch/assets/images/showcase/logo-vuejs.png"
+
+- name: React
+ url: "https://reactjs.org"
+ gif: "/docsearch/assets/images/showcase/example-react.gif"
+ logo: "/docsearch/assets/images/showcase/logo-react.png"
+
+- name: React Native
+ url: "https://facebook.github.io/react-native/"
+ gif: "/docsearch/assets/images/showcase/example-reactnative.gif"
+ logo: "/docsearch/assets/images/showcase/logo-react.png"
+
+- name: Docusaurus
+ url: "https://docusaurus.io/"
+ gif: "/docsearch/assets/images/showcase/example-docusaurus.gif"
+ logo: "/docsearch/assets/images/showcase/logo-docusaurus.png"
+
+- name: Cordova
+ url: "http://cordova.apache.org/"
+ gif: "/docsearch/assets/images/showcase/example-cordova.gif"
+ logo: "/docsearch/assets/images/showcase/logo-cordova.png"
+
+- name: Babel.js
+ url: "https://babeljs.io/"
+ gif: "/docsearch/assets/images/showcase/example-babel.gif"
+ logo: "/docsearch/assets/images/showcase/logo-babel.png"
+
+- name: Apiary
+ url: "http://help.apiary.io/"
+ gif: "/docsearch/assets/images/showcase/example-apiary.gif"
+ logo: "/docsearch/assets/images/showcase/logo-apiary.png"
+
+- name: Flow
+ url: "https://flow.org/en/docs/"
+ gif: "/docsearch/assets/images/showcase/example-flow.gif"
+ logo: "/docsearch/assets/images/showcase/logo-flow.png"
+
+- name: Moment.js
+ url: "https://momentjs.com/docs/"
+ gif: "/docsearch/assets/images/showcase/example-momentjs.gif"
+ logo: "/docsearch/assets/images/showcase/logo-momentjs.png"
+
+- name: Ant Design
+ url: "https://ant.design/docs/react/introduce"
+ gif: "/docsearch/assets/images/showcase/example-ant-design.gif"
+ logo: "/docsearch/assets/images/showcase/logo-ant-design.png"
+
+- name: Gitlab
+ url: "https://docs.gitlab.com/"
+ gif: "/docsearch/assets/images/showcase/example-gitlab.gif"
+ logo: "/docsearch/assets/images/showcase/logo-gitlab.png"
+
+- name: Symfony
+ url: "https://symfony.com/doc/current/"
+ gif: "/docsearch/assets/images/showcase/example-symfony.gif"
+ logo: "/docsearch/assets/images/showcase/logo-symfony.png"
+
+- name: PM2
+ url: "http://pm2.keymetrics.io/docs/usage/cluster-mode/"
+ gif: "/docsearch/assets/images/showcase/example-pm2.gif"
+ logo: "/docsearch/assets/images/showcase/logo-pm2.png"
+
+- name: Hugo
+ url: "http://gohugo.io/documentation/"
+ gif: "/docsearch/assets/images/showcase/example-hugo.gif"
+ logo: "/docsearch/assets/images/showcase/logo-hugo.png"
+
+- name: Fasltane
+ url: "https://docs.fastlane.tools/"
+ gif: "/docsearch/assets/images/showcase/example-fastlane.gif"
+ logo: "/docsearch/assets/images/showcase/logo-fastlane.png"
+
+- name: Jekyll
+ url: "https://jekyllrb.com/"
+ gif: "/docsearch/assets/images/showcase/example-jekyll.gif"
+ logo: "/docsearch/assets/images/showcase/logo-jekyll.png"
+
+- name: Gatsby
+ url: "https://www.gatsbyjs.org/"
+ gif: "/docsearch/assets/images/showcase/example-gatsby.gif"
+ logo: "/docsearch/assets/images/showcase/logo-gatsby.png"
diff --git a/docs/bootstrap-docsearch.gif b/docs/bootstrap-docsearch.gif
deleted file mode 100644
index dd450b1a..00000000
Binary files a/docs/bootstrap-docsearch.gif and /dev/null differ
diff --git a/docs/communityHeader.js b/docs/communityHeader.js
deleted file mode 100644
index 58fd5629..00000000
--- a/docs/communityHeader.js
+++ /dev/null
@@ -1,98 +0,0 @@
-const fs = require('fs');
-const algoliaComponents = require('algolia-frontend-components');
-
-const output = algoliaComponents.communityHeader({
- menu: {
- project: {
- label: 'DocSearch',
- url: '/docsearch/',
- },
- community: {
- style: 'widelist',
- view: 'integrations',
- label: '',
- caret: '',
- dropdownItems: [
- {
- name: 'React InstantSearch',
- url: 'https://community.algolia.com/instantsearch.js/react',
- logo: 'InstantSearchReact',
- backgroundColor: 'linear-gradient(to bottom left, #2C5EE2 0%, #17204F 150%)',
- },
- {
- name: 'Vue InstantSearch',
- url: 'https://github.com/algolia/vue-instantsearch/',
- logo: 'http://res.cloudinary.com/hilnmyskv/image/upload/v1500619122/instantsearch-icon_white.svg',
- backgroundColor: 'linear-gradient(to right, #4DBA87, #2F9088)',
- },
- {
- name: 'InstantSearch Android',
- url: 'https://community.algolia.com/instantsearch-android/',
- logo: 'http://res.cloudinary.com/hilnmyskv/image/upload/v1500619122/instantsearch-icon_white.svg',
- backgroundColor: 'linear-gradient(112deg, #21c7d0, #2dde98)',
- },
- {
- name: 'instantsearch.js',
- url: 'https://community.algolia.com/instantsearch.js/',
- logo: 'http://res.cloudinary.com/hilnmyskv/image/upload/v1500619122/instantsearch-icon_black.svg',
- backgroundColor: '#fecf50',
- },
- {
- name: 'InstantSearch iOS',
- url: 'https://community.algolia.com/instantsearch-ios',
- logo: 'http://res.cloudinary.com/hilnmyskv/image/upload/v1500619122/instantsearch-icon_white.svg',
- backgroundColor: 'linear-gradient(to top left, #D8EE34, #02ADE6, #033DF1)',
- },
- {
- name: 'magento',
- url: 'https://community.algolia.com/magento/',
- logo: 'https://res.cloudinary.com/hilnmyskv/image/upload/v1477318624/magento-icon-white.svg',
- backgroundColor: 'linear-gradient(to bottom right, #ed9259, #e76d22)',
- },
- ],
- },
- },
- sideMenu: [
- {
- name: 'Documentation',
- url: '/docsearch/documentation',
- },
- {
- name: 'About',
- url: 'https://algolia.com/about',
- },
- {
- name: '',
- url: 'https://github.com/algolia/docsearch/',
- target: '_blank',
- image: "
",
- },
- ],
- mobileMenu: [
- {
- name: 'Documentation',
- url: '/docsearch/documentation',
- },
- {
- name: 'About',
- url: 'https://algolia.com/about',
- },
- {
- name: 'Github',
- url: 'https://github.com/algolia/docsearch/',
- target: '_blank',
- image: "
",
- },
- ],
-});
-
-const file = fs.readFileSync(
- 'node_modules/algolia-frontend-components/dist/_communityHeader.js'
-);
-
-try {
- fs.writeFileSync('_includes/header.html', output, 'utf-8');
- fs.writeFileSync('js/communityHeader.js', file, 'utf-8');
-} catch (e) {
- throw new Error('Failed to write header file');
-}
diff --git a/docs/config.rb b/docs/config.rb
new file mode 100644
index 00000000..8cb289ad
--- /dev/null
+++ b/docs/config.rb
@@ -0,0 +1,91 @@
+require 'better_errors'
+require 'extensions/custom_extension'
+require 'lib/php_code_blocks'
+require 'sprockets/es6'
+require 'lib/hash_ostruct'
+
+activate :custom_extension
+
+set :css_dir, 'doc/assets/stylesheets'
+set :js_dir, 'doc/assets/javascripts'
+set :images_dir, 'doc/assets/images'
+
+ignore 'doc/assets/javascripts/vendors/*.js'
+ignore 'doc/assets/stylesheets/vendors/**/*'
+ignore 'templates/*'
+ignore 'layouts/*'
+ignore 'partials/*'
+ignore '**.yml'
+
+page '/docsearch/documentation/*', layout: 'page'
+
+#app.logger.level = :debug
+redirects = []
+
+config[:stage] = ENV['STAGE'] || 'develop'
+
+config[:google_tag_mangager_id] = case config[:stage]
+ when 'beta'
+ 'GTM-K4DF9Q'
+ when 'production'
+ 'GTM-N8JP8G'
+ else
+ 'GTM-K4DF9Q'
+end
+
+activate :vcs_time
+activate :syntax
+activate :sprockets do |s|
+ s.supported_output_extensions = ['.js', '.es6']
+ s.expose_middleman_helpers = true
+end
+
+set(:port, 4569)
+set :haml, { :ugly => true, :format => :html5 }
+set :markdown_engine, :kramdown
+set :markdown, parse_block_html: true, fenced_code_blocks: true, input: 'GFM', with_toc_data: true, smartypants: true, hard_wrap: false
+set :show_exceptions, false
+
+activate :directory_indexes
+
+configure :server do
+ set :debug_assets, true
+ #activate :livereload
+ use BetterErrors::Middleware
+ BetterErrors.application_root = __dir__
+ redirects.push({from: '/index.html' , to: '/docsearch'})
+end
+
+# Build-specific configuration
+configure :build do
+ activate :minify_css
+ activate :minify_javascript
+ #activate :asset_hash
+ activate :minify_html
+ activate :autoprefixer
+ activate :gzip
+end
+
+# Legacy Redirects
+app_data.redirects.each do |redirect|
+ redirects.push({ from: redirect.from, to: redirect.to })
+end
+
+
+ready do
+ no_redirect = ENV['NO_REDIRECTS'] && (ENV['NO_REDIRECTS'] == 'true')
+ is_travis_pr_build = ENV['TRAVIS_PULL_REQUEST'] && (ENV['TRAVIS_PULL_REQUEST'] != 'false')
+
+ if not no_redirect and not is_travis_pr_build
+ redirects.each do |r|
+ redirect r[:from][1..-1], to: r[:to]
+ end
+ end
+
+ proxy '/_redirects', 'templates/redirects', locals: {redirects: redirects}, ignore: true
+
+ sitemap.ensure_resource_list_updated!
+ app.sitemap.ensure_resource_list_updated!
+
+ app_data.set_auto_reload_files(app.config[:stage] != 'production')
+end
\ No newline at end of file
diff --git a/docs/config.ru b/docs/config.ru
new file mode 100644
index 00000000..b1d13a54
--- /dev/null
+++ b/docs/config.ru
@@ -0,0 +1,13 @@
+require 'middleman-core/load_paths'
+::Middleman.setup_load_paths
+
+require 'middleman-core'
+require 'middleman-core/rack'
+
+require 'fileutils'
+FileUtils.mkdir('log') unless File.exist?('log')
+::Middleman::Logger.singleton("log/#{ENV['RACK_ENV']}.log")
+
+app = ::Middleman::Application.new
+
+run ::Middleman::Rack.new(app).to_app
diff --git a/docs/documentation.md b/docs/documentation.md
deleted file mode 100644
index a1328b95..00000000
--- a/docs/documentation.md
+++ /dev/null
@@ -1,259 +0,0 @@
----
-layout: page
-title: Documentation
-permalink: /documentation/
----
-
-## Introduction
-
-We're scratching our own itch here. As developers, we spend a lot of time
-reading documentation, and it isn't always easy to find the information we need.
-
-Not blaming anyone here. Building a good search for a documentation is a complex
-challenge. We happen to have a lot of experience doing that, and we want to
-share it with the world. For free.
-
-Just submit the form on the [website][16] and we'll get back to you with what
-you need to integrate your new search into your website.
-
- 1. We'll crawl your documentation pages,
- 2. We'll configure your search experience,
- 3. You'll need to add a bit of JavaScript and CSS code to your website.
-
-If you prefer to DIY, you can run the [scraper][28] in your own infra.
-
-## Setup
-
-Once we've crawled your documentation website we'll send you the credentials you
-need to add the following code snippet to your website:
-
-```html
-
-
-
-```
-
-You can also install docsearch via `npm`:
-
-```sh
-npm install --save docsearch.js
-```
-
-## Customization
-
-### Attribution
-
-We're happy to provide DocSearch free of charge for your site, and you're
-welcome to customise that experience in a way that works for you; all we ask is
-that Algolia be attributed within the search context. For example, in the
-default implementation, we place a small "Search by Algolia" logo in the
-corner. If you prefer to roll your own UX, you'll need to make sure that this
-logo is included in your implementation as well.
-
-### Default styling
-
-The default colorscheme is white and gray:
-
-![Default colorscheme][17]
-
-To update the colors to suit your website, you just need to override a few
-colors. Here is an example of a CSS file that you can use as a basis to
-set white and purple colors.
-
-```css
-/* Bottom border of each suggestion */
-.algolia-docsearch-suggestion {
- border-bottom-color: #3A3DD1;
-}
-/* Main category headers */
-.algolia-docsearch-suggestion--category-header {
- background-color: #4B54DE;
-}
-/* Highlighted search terms */
-.algolia-docsearch-suggestion--highlight {
- color: #3A33D1;
-}
-/* Highligted search terms in the main category headers */
-.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight {
- background-color: #4D47D5;
-}
-/* Currently selected suggestion */
-.aa-cursor .algolia-docsearch-suggestion--content {
- color: #272296;
-}
-.aa-cursor .algolia-docsearch-suggestion {
- background: #EBEBFB;
-}
-
-/* For bigger screens, when displaying results in two columns */
-@media (min-width: 768px) {
- /* Bottom border of each suggestion */
- .algolia-docsearch-suggestion {
- border-bottom-color: #7671df;
- }
- /* Left column, with secondary category header */
- .algolia-docsearch-suggestion--subcategory-column {
- border-right-color: #7671df;
- background-color: #F2F2FF;
- color: #4E4726;
- }
-}
-```
-
-### Advanced styling
-
-If you want to do heavy changes to the way results are displayed, you might find
-it easier to directly edit the `scss` files in this repository.
-
-[`_variables.scss`][18]
-contains all the color, breakpoints and size definitions while
-[`main.scss`][19]
-holds the structure of the display.
-
-You can regenerate the whole final `css` file from those `scss` files by running
-`npm run build:css`. The resulting files will be found in `./dist/cdn/`.
-
-All you have to do now is change the `link` tag that was loading the default
-styling from our CDN, to one that is loading your newly compiled file.
-
-
-## Custom options
-
-DocSearch is a wrapper around the [autocomplete.js][20] library that gets its
-results from the Algolia API. As such, you can use any options provided by
-[autocomplete.js][21] and by the Algolia API.
-
-### Autocomplete options
-
-You can pass any options to the underlying `autocomplete` instance through
-the`autocompleteOptions` parameter. You will find all `autocomplete` options in
-its [own documentation][22].
-
-You can also listen to `autocomplete` events through the `.autocomplete`
-property of the `docsearch` instance.
-
-```javascript
-var search = docsearch({
- apiKey: '',
- indexName: '',
- inputSelector: '',
- debug: true,
- autocompleteOptions: {
- // See https://github.com/algolia/autocomplete.js#options
- // For full list of options
- }
-});
-
-// See https://github.com/algolia/autocomplete.js#custom-events
-// For full list of events
-search.autocomplete.on('autocomplete:opened', function(e) {
- // Do something when the dropdown menu is opened
-});
-```
-
-### Docsearch Options
-
-
-#### handleSelected
-
-We already bind the autocomplete:selected event inside the docsearch.
-If you want to replace the default behavior you can pass the `handleSelected` option.
-
-```javascript
-var search = docsearch({
- apiKey: '',
- indexName: '',
- inputSelector: '',
- handleSelected: function (input, event, suggestion) {
- }
-});
-```
-
-#### queryHook
-
-If you want modify the query before it is send to Algolia you can pass the `queryHook` option.
-
-```javascript
-var search = docsearch({
- apiKey: '',
- indexName: '',
- inputSelector: '',
- queryHook: function (query) {
- return query + "_modified";
- }
-});
-```
-
-#### transformData
-
-If you want to modify the hits before displaying them you can make use of the
-`transformData` option
-
-```
-var search = docsearch({
- apiKey: '',
- indexName: '',
- inputSelector: '',
- transformData: function (hits) {
- // modify hits
- return hits;
- }
-});
-```
-
-### Algolia options
-
-You can also pass any specific option to the Algolia API to change the way
-records are returned. You can pass any options to the Algolia API through
-the `algoliaOptions` parameter.
-
-```javascript
-docsearch({
- appId: '', // if you are running the crawler yourself
- apiKey: '',
- indexName: '',
- inputSelector: '',
- algoliaOptions: {
- hitsPerPage: 10
- }
-});
-```
-
-You will find all Algolia API options in its [own documentation][23].
-
-
-[1]: https://community.algolia.com/docsearch/
-[2]: https://img.shields.io/npm/v/docsearch.js.svg?style=flat-square
-[3]: https://img.shields.io/travis/algolia/docsearch/master.svg?style=flat-square
-[4]: https://img.shields.io/coveralls/algolia/docsearch/master.svg?style=flat-square
-[5]: http://img.shields.io/badge/license-MIT-green.svg?style=flat-square
-[6]: https://img.shields.io/npm/dm/docsearch.js.svg?style=flat-square
-[7]: ./docs/bootstrap-docsearch.gif
-[8]: #introduction
-[9]: #setup
-[10]: #customization
-[11]: #development-workflow
-[12]: #local-example
-[13]: #local-build
-[14]: #documentation-website
-[15]: #macos
-[16]: https://community.algolia.com/docsearch/
-[17]: https://community.algolia.com/docsearch/img/default-colorscheme.png
-[18]: https://github.com/algolia/docsearch/blob/master/src/styles/_variables.scss
-[19]: https://github.com/algolia/docsearch/blob/master/src/styles/main.scss
-[20]: https://github.com/algolia/autocomplete.js
-[21]: https://github.com/algolia/autocomplete.js
-[22]: https://github.com/algolia/autocomplete.js#options
-[23]: https://www.algolia.com/doc/api-reference/api-parameters/
-[24]: https://nodejs.org/en/
-[25]: https://jekyllrb.com/
-[26]: https://www.ruby-lang.org/en/
-[27]: http://bundler.io/
-[28]: https://github.com/algolia/docsearch-scraper
-
diff --git a/docs/extensions/custom_extension.rb b/docs/extensions/custom_extension.rb
new file mode 100644
index 00000000..81d00072
--- /dev/null
+++ b/docs/extensions/custom_extension.rb
@@ -0,0 +1,76 @@
+require 'lib/sitemap_tree'
+require 'lib/data_store'
+
+class CustomExtension < Middleman::Extension
+ expose_to_config :unslug
+ expose_to_template :unslug
+
+ expose_to_template :sitemap_tree
+ expose_to_config :sitemap_tree
+ expose_to_template :app_data
+ expose_to_config :app_data
+ expose_to_application :app_data
+
+ def app_data
+ @@app_data
+ end
+
+ def sitemap_tree
+ @@sitemap_tree
+ end
+
+ def initialize(app, options_hash={}, &block)
+ @@sitemap_tree = SitemapTree.new(nil)
+ @@app_data = DataStore.new
+ super
+ end
+
+ def manipulate_resource_list(resources)
+ all_resources = []
+
+ resources = resources.sort do |a,b|
+ if a.file_descriptor.nil?
+ -1
+ elsif b.file_descriptor.nil?
+ 1
+ else
+ a.file_descriptor.full_path.to_s <=> b.file_descriptor.full_path.to_s
+ end
+ end
+
+ resources.each do |resource|
+ if resource.instance_of?(Middleman::Sitemap::Extensions::RedirectResource) or resource.path.include?('.yml')
+ all_resources.push(resource)
+ next
+ end
+
+ resource.destination_path = resource.destination_path.gsub(/\/[0-9]+?-/, '/')
+ resource.add_metadata({locals: {render_toc: true}})
+
+ data_file = resource.file_descriptor.full_path.to_s.gsub(/([^\.]+?)\..*?$/, '\1.yml')
+
+ if File.exist?(data_file) and data_file != resource.file_descriptor.full_path.to_s
+ data = DataStoreFile.new(data_file, File.basename(data_file), File.basename(data_file, 'yml'), nil)
+
+ resource.add_metadata({locals: {guide_snippet: data, snippet_file: Pathname(data_file).relative_path_from(app.source_dir)}})
+ end
+
+ resource.add_metadata({page: {popularity: (app_data.google_analytics[resource.destination_path.gsub('/index.html', '').gsub('.html', '')] || 0)}})
+
+ @@sitemap_tree.add(resource)
+ all_resources.push(resource)
+ end
+
+ all_resources
+ end
+
+ def unslug(slug)
+ if not app_data.docs.unslug[slug].nil?
+ app_data.docs.unslug[slug]
+ else
+ slug.gsub('-', ' ').capitalize
+ end
+ end
+end
+
+::Middleman::Extensions.register(:custom_extension, CustomExtension)
\ No newline at end of file
diff --git a/docs/ga.p12 b/docs/ga.p12
new file mode 100644
index 00000000..87bf9ff1
Binary files /dev/null and b/docs/ga.p12 differ
diff --git a/docs/helpers/render_helper.rb b/docs/helpers/render_helper.rb
new file mode 100644
index 00000000..2fc47c75
--- /dev/null
+++ b/docs/helpers/render_helper.rb
@@ -0,0 +1,264 @@
+require 'erubis'
+
+module RenderHelper
+ def get_current_language()
+ if respond_to?(:current_page)
+ current_page.metadata[:locals][:language]
+ else
+ nil
+ end
+ end
+
+ def echo(str, template_data = nil)
+ if str.nil?
+ return ""
+ end
+
+ language = (template_data and template_data[:language]) ? template_data[:language] : get_current_language
+
+ if respond_to?(:current_page)
+ current_page.metadata[:locals].keys.each do |key|
+ singleton_class.send(:define_method, key) { current_page.metadata[:locals][key] }
+ end
+ end
+
+ if (not template_data.nil?) and template_data
+ template_data.each do |key, value|
+ singleton_class.send(:define_method, key) { value }
+
+ if [:method_snippet_obj, :parameter_snippet_obj].include?(key) and not value.nil?
+ if key == :method_snippet_obj
+ link = edit_link("/data/api_methods/#{value['method_key']}/#{value['method_key']}_snippet.yml", 'this snippet')
+ end
+ if key == :parameter_snippet_obj
+ link = edit_link("/data/parameters/#{value['param_key']}.yml", 'this snippet')
+ end
+
+ singleton_class.send(:define_method, '_snippet') { value }
+
+ value.to_h.keys.each do |snippet_key|
+ singleton_class.send(:define_method, snippet_key) { value[snippet_key] }
+ end
+ end
+ end
+ end
+
+ template = Erubis::Eruby.new(str)
+ res = template.result(binding)
+ end
+
+ def render_current_page(options)
+ if config[:stage] == 'develop'
+ current_page.render({layout: 'raw'}, options)
+ else
+ @@page_content ||= {}
+ @@page_content[current_page.destination_path] ||= current_page.render({layout: 'raw'}, options)
+ @@page_content[current_page.destination_path]
+ end
+ end
+
+ def snippet(name, force_tabs=false)
+ snippet = nil
+
+ if name.instance_of?(String)
+ snippet = current_page.metadata[:locals][:guide_snippet]
+ if snippet
+ edit_link = edit_link("/source/#{current_page.metadata[:locals][:snippet_file]}", 'snippet')
+ if snippet[name.to_sym]
+ snippet = snippet[name.to_sym]
+ end
+ else
+ snippet = name
+ return "\n\n#{echo snippet}\n\n"
+ end
+ else
+ snippet = name
+ edit_link = edit_link(snippet.github_link)
+ end
+
+ language = get_current_language
+
+ if snippet
+ if language and not force_tabs
+ if snippet[language.code.to_sym]
+ "#{edit_link}\n\n#{echo snippet[language.code.to_sym]}\n\n"
+ else
+ raise("snippet #{name} in #{language.code} not found for #{current_page.destination_path}")
+ end
+ else
+ ordered_languages = [:php, :ruby, :javascript, :python, :swift, :android, :csharp, :java, :go, :scala]
+ languages = snippet.keys
+ languages.delete(:rest_example)
+ languages.delete(:method_key)
+ languages.delete(:java1)
+
+ languages.sort_by!{|x| i = ordered_languages.index(x); i.nil? ? 1000: i}
+
+ out = []
+ out << "#{edit_link}"
+ out << ""
+ out << ""
+ out << ""
+ out << ""
+ out << ""
+ out << "Copy"
+ out << ""
+ out << ""
+ out << "
"
+ out << ""
+ out << ""
+ out << ''
+ out << ''
+ out << ''
+ languages.each_with_index do |language_code, i|
+ if snippet[language_code.to_sym].strip.length > 0
+ out << " #{snippet[language_code.to_sym].gsub(/```(.+?)$/, "```\\1*")}"
+ end
+ end
+ out << ''
+ out << ''
+
+ out.join("\n")
+ end
+ else
+ raise("snippet #{name} not found for #{current_page.destination_path}")
+ end
+ end
+
+ def haml(template_path, locals)
+ Middleman::Renderers::HamlTemplate.new(template_path).render(self, locals)
+ end
+
+ def markdown(content)
+ Tilt['markdown'].new(nil, 1, {
+ parse_block_html: true, fenced_code_blocks: true, input: 'GFM', with_toc_data: true, smartypants: true, hard_wrap: false
+ }) { echo(content) }.render(self)
+ end
+
+ def render_readme_section(template_path, language)
+ content = Middleman::Renderers::ERb::Template.new(template_path).render(self, {language: language})
+
+ if template_path == 'source/doc/tutorials/1-getting-started/quick-start-with-the-api-client.html.md.erb'
+ content = content.gsub(/.*?<\/section>(.*).*?<\/section>/smu, '\1')
+ end
+ content.gsub(//smu, '')
+ .gsub(/(\-\-\-.+?\-\-\-)/m, '')
+ .gsub(/(([^\n]+\n)+)\{\:(.*\s+)?\.alert-info(\s+.*)?\}/, '**Note:** \1') # render `alert-info` with "Note:" prefix
+ .gsub(/(([^\n]+\n)+)\{\:(.*\s+)?\.alert-warning(\s+.*)?\}/, '**Warning:** \1') # render `alert-warning` with "Warning:" prefix
+ .gsub(/(([^\n]+\n)+)\{\:(.*\s+)?\.alert-danger(\s+.*)?\}/, '**Caution:** \1') # render `alert-danger` with "Caution:" prefix
+ .gsub(/(\{\:.+?\})/, '') # catch-all case to remove any remaining Inline Attribute Lists (IAL)
+ .gsub(/(\{\#.+?\})/, '')
+ .gsub(/<\/?section>/, '')
+ .gsub(//, '')
+ .gsub(/<\/div>/, '')
+ .gsub(//, '')
+ .gsub(/<\/section>/, '')
+ .gsub(/\n{2,}/, "\n\n")
+ .gsub(/\[(.+?)\]\((\/doc\/.+?)\)/, '[\1](https://www.algolia.com\2)')
+ end
+
+ def frontend(language)
+ ['android', 'javascript', 'swift'].include?(language.code)
+ end
+
+ def backend(language)
+ ['csharp', 'go', 'java1', 'java', 'javascript', 'php', 'python', 'ruby', 'scala'].include?(language.code)
+ end
+
+ def framework(language)
+ ['rails', 'laravel', 'symfony', 'django'].include?(language.code)
+ end
+
+ def parameters_dir_got_scope(param_dir, scope)
+ param_dir.keys.each do |parameter_name|
+ parameter = param_dir[parameter_name]
+ if parameter.scope.include?(scope)
+ return true
+ end
+ end
+ false
+ end
+
+ def fetch_parameter(name)
+ unless name.is_a? String
+ return name
+ end
+
+ app_data.parameters.each do |key, group|
+ group.each do |param_key, param|
+ if param.name == name || param.name == "#{name} (deprecated)"
+ return param
+ end
+ end
+ end
+
+ raise("Did not find param #{name}")
+ end
+
+ def parameter_toc(parameter_name)
+ param = fetch_parameter parameter_name
+ "- #{parameter_link(parameter_name)} `#{param.scope.join('`, `')}`"
+ end
+
+ def parameter_link_html(param)
+ "/doc/api-reference/api-parameters/#{param.name}/"
+ end
+
+ def parameter_link(parameter_name)
+ param = fetch_parameter parameter_name
+ name = param.name
+
+ "[#{name}](#{parameter_link_html(param)})"
+ end
+
+ def anchorize(string)
+ if string.nil?
+ "NOT FOUND ANCHOR"
+ else
+ string.gsub(/\s/, "-").gsub(/[()\/",`'&<>\.]/, "").downcase
+ end
+ end
+
+ def generate_id(str)
+ id = (str || '').gsub(/\s/, "-").gsub(/[()\/",`']/, "").downcase
+ @ids ||= {}
+ @ids[id] ||= 0
+ @ids[id] += 1
+ @ids[id] == 1 ? id : "#{id}-#{@ids[id]}"
+ end
+
+ def method_toc(method_name)
+ api_method = app_data.api_methods.flatten.select{|api_method| api_method.base_file_name == method_name}.first
+
+
+ if api_method.nil?
+ raise "issue generating name for #{method_name}"
+ end
+
+ "[#{api_method.name}](/doc/api-reference/api-methods/#{api_method.base_file_name.gsub('_', '-')}/)"
+ end
+
+ def edit_link(file, ressource_name='', classes='')
+ if current_page and not current_page.metadata[:locals][:readme].nil? and current_page.metadata[:locals][:readme]
+ ''
+ else
+ out = []
+ out << ""
+ out << ""
+ out << ""
+ out << ""
+ out << ""
+ out << "Edit #{ressource_name}"
+ out << ""
+ out << ""
+ out << "
"
+ out.join('')
+ end
+ end
+end
diff --git a/docs/helpers/svg_helper.rb b/docs/helpers/svg_helper.rb
new file mode 100644
index 00000000..535d5931
--- /dev/null
+++ b/docs/helpers/svg_helper.rb
@@ -0,0 +1,25 @@
+module SvgHelper
+ def inline_svg(path, message=nil)
+ @svg ||= {}
+
+ return @svg[path] if @svg[path]
+
+ if File.exist?("source/docsearch/assets/images/#{path}")
+ full_path = "source/docsearch/assets/images/#{path}"
+
+ @svg[path] = File.open(full_path, "rb") do |file|
+ file.read
+ end
+ else
+ message = "Could not find SVG file @ #{path}" if message.nil?
+ if config[:stage] == 'develop'
+ p(message)
+ else
+ raise message
+ end
+ end
+
+ @svg[path]
+ end
+end
+
diff --git a/docs/helpers/toc_helper.rb b/docs/helpers/toc_helper.rb
new file mode 100644
index 00000000..0fed06b2
--- /dev/null
+++ b/docs/helpers/toc_helper.rb
@@ -0,0 +1,104 @@
+module TocHelper
+ def build_toc(content, path)
+ @@toc ||= {}
+ return @@toc[content] if @@toc[content]
+
+ doc = Nokogiri::HTML(content)
+ h1 = []
+ toc = []
+ (doc / 'h1, h2, h3, h4').each do |h_node|
+ h = {
+ level: h_node.name[1].to_i,
+ value: h_node.children.map { |child| child.to_s }.join.gsub(/(\{\#.+?\})/, ''),
+ anchor: h_node['id'],
+ path: path.gsub(/\/index\.html/, ''),
+ children: []
+ }
+ if toc.empty?
+ toc << h
+ next
+ end
+ while toc.size > 0 && h[:level] <= toc.last[:level]
+ tmp = toc.pop
+ h1 << tmp if tmp[:level] == 1
+ end
+ if toc.empty?
+ toc << h
+ else
+ toc.last[:children] << h
+ toc << h
+ end
+ end
+ @@toc[content] = h1 + toc.select { |h| h[:level] == 1 }
+ end
+
+ def get_h3s_toc(node)
+ node.css('h3').map do |c_node|
+ {
+ level: c_node.name[1].to_i,
+ value: c_node.children.map { |child| child.to_s }.join,
+ anchor: c_node['id']
+ }
+ end
+ end
+
+ def get_guide_toc(page_content)
+ doc = Nokogiri::HTML(page_content)
+ toc = []
+ (doc / 'h2').each do |h_node|
+ full_toc_section = h_node.ancestors('.full-toc').first
+ h = {
+ level: h_node.name[1].to_i,
+ value: h_node.children.map { |child| child.to_s }.join,
+ anchor: h_node['id'],
+ children: full_toc_section ? get_h3s_toc(full_toc_section) : []
+ }
+ toc.push(h)
+ end
+ toc
+ end
+
+ def get_api_client_toc(language)
+ is_readme = (not current_page.metadata[:locals][:readme].nil? and current_page.metadata[:locals][:readme])
+
+ @@api_clients_toc ||= {}
+ return @@api_clients_toc[language.code] if @@api_clients_toc[language.code] and not is_readme
+
+ tocs = []
+
+ if is_readme and (backend(language) or frontend(language)) and not language.code == 'java1'
+ markdown_content = current_page.render({}, {render_toc: false, readme: is_readme, language: language}).gsub('# ', '')
+ rendered_content = Tilt['markdown'].new { markdown_content}.render(self)
+ tocs << build_toc(rendered_content, current_page.path)
+ else
+ sitemap.resources.each do |page|
+ if page.path.include? "doc/api-client/#{language.code}/" and ((not /\/parameters\/.+?$/.match(page.path)) or /\/parameters\/index\.html$/.match(page.path))
+ rendered_content = page.render({layout: 'raw'}, {render_toc: false, readme: is_readme, language: language})
+ tocs << build_toc(rendered_content, page.path)
+ end
+ end
+ end
+
+ toc_flatten = tocs.flatten
+
+ unless is_readme
+ @@api_clients_toc[language.code] = toc_flatten
+ end
+
+ toc_flatten
+ end
+
+ def get_single_page_guide_toc(page_content, page)
+ build_toc(page_content, page.path)
+ end
+
+ def get_titles_for_page(page_content, tag)
+ doc = Nokogiri::HTML(page_content)
+ (doc / tag).map do |h_node|
+ {
+ value: h_node.children.map { |child| child.to_s }.join,
+ anchor: h_node['id']
+ }
+ end
+ end
+end
diff --git a/docs/index.haml b/docs/index.haml
deleted file mode 100644
index 0cf402ad..00000000
--- a/docs/index.haml
+++ /dev/null
@@ -1,122 +0,0 @@
----
-layout: default
----
-
-.jumbotron.gradient-dark.h800
- .container.pos-rel.z-10
- .spacer120
- .col-md-12
- %header.text-center.color-white
- %h1 DocSearch
- %h3 The easiest way to add search to your documentation
- .inline.spacer40
- .row.pull-left.m100p.w100p.no-margin
- .col-md-7
- #demo-screens
- %img{:src => "./img/screens/screen_react.png", :alt => "", :id => "placeholder", :class => "w100p"}/
- .col-md-5
- {% haml join-form.haml %}
- .spacer64
-
-
-#section_why.page-section.pos-rel
- .spacer40
- .m800.m-l-r-auto.pos-rel.z-10
- %h2.page-section-title.upper-case.text-demi Why DocSearch?
- .spacer32
- %p.color-east-bay.text-regular We're kind of scratching our own itch here. As developers, we spend a lot of time reading documentation, and it isn’t always easy to find the information we need.
- %p.color-east-bay.text-regular No one's to blame, building a good search for a documentation is a complex challenge.
We just happen to have a lot of experience doing that, and we want to share it with the world.
- .spacer40
-
-#section_examples.page-section.fill-royal-blue
- .spacer120
- .spacer40
- .container.pos-rel.z-10
- %header
- .text-center.color-white
- %h2.page-section-title.upper-case.text-demi DocSearch is live
- .spacer16
- %h3.text-lg We’ve integrated DocSearch into several open source projects. Take a look.
- .spacer80
- .row
- {% for entry in site.data.showcase %}
- .col-md-4.col-sm-12.showcase.p-large
- %a.elevation1.fill-white.block.h300.p-large.radius6{:href => "{{ entry.url }}", :target => "_blank"}
- .screen-wrapper.pos-rel.h200.unscroll
- %img.img-responsive.example.m100p{:src => "{{ entry.gif }}", :alt => "{{ entry.name }} docsearch demo", 'data-type-gif' => "true"}
- %img.img-responsive.screen-mask.m100p.pos-abt{:src => "./img/mask.png", :alt => "mask"}
- .spacer32.hidden-sm
- .col-md-4.col-sm-12.no-padding.img-container.text-center.vertical-align-middle
- %img.img-responsive.logo{:src => "{{ entry.logo }}", :alt => "{{ entry.name }}"}
- .col-md-8.col-sm-12.vertical-align-middle
- %p.text-lg.color-bunting.text-demi.no-margin {{ entry.name }}
- {% endfor %}
- .col-md-4.col-sm-12.showcase.p-large.you
- %div.elevation1.fill-white.block.h300.p-large.radius6
- .placeholder-screen.text-center.radius6
- .spacer64
- .spacer32.hidden-sm
- %p.text-lg.color-bunting.text-demi.no-margin +550 Live
implementations
- .spacer64.visible-sm
-
-
-
-
- .spacer64
-
-
-#section_how.page-section.pos-rel
- .container.pos-rel.z-10
- .row.text-center
- %h2.page-section-title.upper-case.text-demi How it works
- .spacer32
- .row
- .col-sm-12
- %img.img-responsive.m100p{:src => "./img/illus-howitworks.svg", :alt => "how it works"}
- .spacer32
- .row
- .col-sm-10.col-sm-offset-1
- .row
- .col-sm-4.how-it-works.p-small
- %h3
- %span.how-it-works-number.text-lg.color-royal-blue.text-lg.m-r-small 1
- %span.text-demi We crawl your documentation pages
- .spacer16
- %p.color-east-bay.text-regular We built a website crawler designed to index every section of your documentation.
- %p.color-east-bay.text-regular Just send us the URL of your documentation, and we’ll periodically run the crawler so you’re always up-to-date.
- .spacer30
- .col-sm-4.how-it-works.p-small
- %h3
- %span.how-it-works-number.text-lg.color-royal-blue.text-lg.m-r-small 2
- %span.text-demi We configure your search experience
- .spacer16
- %p.color-east-bay.text-regular You don’t need to configure any settings or even have an Algolia account.
- %p.color-east-bay.text-regular We take care of all of this automatically to ensure the best documentation search experience.
- .spacer30
- .col-sm-4.how-it-works.p-small
- %h3
- %span.how-it-works-number.text-lg.color-royal-blue.text-lg.m-r-small 3
- %span.text-demi You add the search autocomplete to your UI
- .spacer16
- %p.color-east-bay.text-regular We’ll send you a few lines of code to integrate Algolia autocomplete and power your search.
- %p.color-east-bay.text-regular You will receive the same speed, relevance and best-in-class UX as our paying customers.
-
-
-#section_get-started.page-section.fill-royal-blue
- .spacer120
- .spacer56
- .container.col-md-12.fill-royal-blue.z-10
- %header.text-center
- %h2.page-section-title.color-white.upper-case.text-demi Get started
- .spacer32
- .text-center.color-white
- %p We’ll get back to you within a few hours with everything you need to integrate your new search into your website.
Oh, and did we mention it's FREE? No commitment. No subscription. Everything is on us! And it won't change.
- .spacer64
- .col-md-12.fill-royal-blue
- {% haml join-form.haml %}
- .inline.spacer120
- .inline.spacer64
-
-{% contentfor site-footer %}
-
-{% endcontentfor %}
diff --git a/docs/js/home.js b/docs/js/home.js
deleted file mode 100644
index 7e891c9e..00000000
--- a/docs/js/home.js
+++ /dev/null
@@ -1,85 +0,0 @@
-(function($) {
- function pardotAppendIframe(url) {
- var iframe = document.createElement('iframe');
- iframe.src = url;
- iframe.width = 1;
- iframe.height = 1;
- document.body.appendChild(iframe);
- }
-
- $('.join-form').on('submit', function(e) {
- e.preventDefault();
-
- var $email = $(this).find('input[name="email"]');
- var $url = $(this).find('input[name="url"]');
- var $owner = $(this).find('input[name="owner"]');
- var error = false;
- $(this).find('.has-errors').removeClass('has-errors');
- if (!$email.val()) {
- $email.closest('.input-group').addClass('has-errors');
- error = true;
- }
- if (!$url.val()) {
- $url.closest('.input-group').addClass('has-errors');
- error = true;
- }
- if (!$owner.is(':checked')) {
- $owner.addClass('has-errors');
- error = true;
- }
- if (error) {
- return false;
- }
-
- $.ajax({
- url: 'https://www.algolia.com/docsearch/join',
- type: 'POST',
- data: {
- email: $email.val(),
- url: $url.val()
- }
- }).done(function() {
- pardotAppendIframe(
- 'https://go.pardot.com/l/139121/2016-08-05/ldp67?email=' +
- encodeURIComponent($email.val()) +
- '&website=' +
- encodeURIComponent($url.val())
- );
-
- $('.join-form-fill').hide();
- $('.join-form-validated').removeClass('hidden');
- })
- .fail(function() {
- alert('An error occurred, please try again later.');
- });
-
- return false;
- });
-})(jQuery);
-
-function setScreen() {
- const screens = [
- 'screen_react',
- 'screen_laravel',
- 'screen_akka',
- 'screen_bootstrap',
- 'screen_vue',
- 'screen_middleman',
- ];
- const rand = Math.floor(Math.random() * (screens.length - 0) + 0);
- const imgPath = './img/screens/';
- const screenImage = document.createElement('img');
- const imageHolder = document.querySelector('#demo-screens');
- const imagePlaceholder = document.querySelector('#placeholder');
-
- screenImage.classList.add('demo-screen', 'w100p', 'elevation1');
- screenImage.src = imgPath + screens[rand] + '.png';
-
- imagePlaceholder.remove();
- imageHolder.appendChild(screenImage);
-}
-
-window.addEventListener('load', function() {
- setScreen();
- document.body.classList.add('ready');
-});
diff --git a/docs/lib/data_store.rb b/docs/lib/data_store.rb
new file mode 100644
index 00000000..6098a1be
--- /dev/null
+++ b/docs/lib/data_store.rb
@@ -0,0 +1,127 @@
+require 'pathname'
+class DataStoreFile
+ attr_accessor :path, :file_name, :base_file_name, :parent, :github_path, :position
+
+ def initialize(path, file_name, base_file_name, parent)
+ @path = path
+ @github_path = @path.gsub(Dir.pwd, '')
+ @file_name = file_name
+ @base_file_name = base_file_name
+ @parent = parent
+ @data = YAML.load_file(@path).to_ostruct(@github_path)
+ @@i ||= 0
+ @position = @@i
+ @@i = @@i + 1
+ end
+
+ def method_missing(method_id, *arguments, &block) # We define this method to be able to forward to the actual data
+ @data.public_send(method_id, *arguments, &block)
+ end
+
+ def current_path
+ @path
+ end
+
+ def refresh
+ if @parent.get_auto_reload_files # make sure we don't refresh at build time
+ @data = YAML.load_file(@path).to_ostruct(@github_path)
+ end
+ end
+
+ def to_s
+ ""
+ end
+end
+
+class DataStore
+ attr_reader :base_file_name, :current_path, :parent
+
+ def initialize(current_path=nil, base_file_name=nil, parent=nil)
+ if current_path.nil?
+ @current_path = Dir.pwd + '/app_data'
+ else
+ @current_path = current_path
+ end
+ @cache = {}
+ @parent = parent
+ @base_file_name = base_file_name
+ @@auto_reload_files = false
+
+
+ load_dir # will preload everything at startup
+ end
+
+ def load_dir
+ Dir.entries(@current_path).sort_by{|file| file}.each do |file|
+ if file == '.' or file == '..'
+ next
+ end
+
+ file_path = @current_path + '/' + file
+
+ # remove numbers and first '-' from the filename so we can
+ # - generate nice urls
+ # - omit the number when accessing the object
+ base_file_name = file.gsub(/[0-9]*+-?(.+)/, '\1')
+
+ if File.file?(file_path)
+ method_name = File.basename(base_file_name, File.extname(file))
+ @cache[method_name.to_s] = DataStoreFile.new(file_path, file, method_name, self)
+ elsif File.directory?(file_path)
+ d = DataStore.new(file_path, base_file_name, self)
+ @cache[base_file_name] = d
+ end
+ end
+ end
+
+ def get_auto_reload_files
+ @@auto_reload_files
+ end
+
+ def set_auto_reload_files(is_auto_releoad)
+ @@auto_reload_files = is_auto_releoad
+ end
+
+ def flatten
+ elements = []
+
+ @cache.sort_by{|k, v| v.current_path }.each do |k, v|
+ if v.instance_of?(DataStoreFile)
+ v.refresh
+ elements.push(v)
+ else
+ elements.push(*v.flatten)
+ end
+ end
+
+ elements
+ end
+
+ def method_missing(method_id, *arguments, &block)
+ method_name = method_id
+
+ # Make sure we are able to access data files with an array syntax
+ if method_id == :[]
+ method_name = arguments[0].to_sym
+ end
+
+ if @cache.has_key?(method_name.to_s)
+ if @@auto_reload_files and @cache[method_name.to_s].instance_of?(DataStoreFile)
+ @cache[method_name.to_s].refresh
+ end
+
+ return @cache[method_name.to_s]
+ end
+
+ # Make sure we forward the access to the data
+ if @cache.respond_to?(method_name)
+ return @cache.public_send(method_name, &block)
+ end
+
+ raise('Not found: ' + @current_path + '/' + method_name.to_s + '.yml')
+ end
+
+ def to_s
+ ""
+ end
+end
\ No newline at end of file
diff --git a/docs/lib/google_analytics_downloader.rb b/docs/lib/google_analytics_downloader.rb
new file mode 100644
index 00000000..ea0278b8
--- /dev/null
+++ b/docs/lib/google_analytics_downloader.rb
@@ -0,0 +1,41 @@
+require 'google/api_client'
+
+GA_P12 = File.expand_path(File.join(__FILE__, '..', '..', 'ga.p12'))
+
+class GoogleAnalyticsDownloader
+
+ def self.fetch
+ client = Google::APIClient.new
+
+ client.authorization = Signet::OAuth2::Client.new(
+ :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
+ :audience => 'https://accounts.google.com/o/oauth2/token',
+ :scope => 'https://www.googleapis.com/auth/analytics.readonly',
+ :issuer => "13001872082-jvmq5jsb2clnsh64879genqijvgg2k41@developer.gserviceaccount.com",
+ :signing_key => Google::APIClient::PKCS12.load_key(GA_P12, 'notasecret')
+ ).tap { |auth| auth.fetch_access_token! }
+
+ api_method = client.discovered_api('analytics', 'v3').data.ga.get
+
+ result = client.execute(:api_method => api_method, :parameters => {
+ 'ids' => 'ga:106545591',
+ 'start-date' => (Date.today - 30).strftime('%Y-%m-%d'),
+ 'end-date' => Date.today.strftime('%Y-%m-%d'),
+ 'dimensions' => 'ga:pagePath',
+ 'metrics' => 'ga:pageViews',
+ 'samplingLevel' => 'HIGHER_PRECISION',
+ "max_results" => 1000,
+ 'filters' => 'ga:pagePath=~www.algolia.com/doc/*;ga:pageViews>10'
+ })
+ stats = {}
+
+ result.data.rows.each do |row|
+ path = row[0].gsub(/.*?algolia\.com\/doc\/(.*?)$/, 'doc/\1').split(/[?#]/).first.gsub('index.html', '').gsub(/\/$/, '')
+ stats[path] ||= 0
+ stats[path] += row[1].to_i
+ end
+
+ stats
+ end
+
+end
diff --git a/docs/lib/hash_ostruct.rb b/docs/lib/hash_ostruct.rb
new file mode 100644
index 00000000..2240a5dd
--- /dev/null
+++ b/docs/lib/hash_ostruct.rb
@@ -0,0 +1,56 @@
+require 'ostruct'
+
+class CustomStruct < OpenStruct
+ def initialize(hash, path)
+ @path = path
+ super(hash)
+ end
+
+ def github_link
+ @path
+ end
+
+
+ # OpenStruct does not allow to call hash methods so we forward them if it exists
+ # This also means that we are not able to have keys named like hash methods
+ def method_missing(method_id, *arguments, &block)
+ if to_h.respond_to?(method_id)
+ to_h.public_send(method_id, &block)
+ else
+ super(method_id, *arguments)
+ end
+ end
+end
+
+class Hash
+ @path = nil
+ # Recursively converts a Hash and all nested Hashes to
+ def to_ostruct(path)
+ @path = path
+ arr = map do |k, v|
+ case v
+ when Hash
+ [k, v.to_ostruct(@path)]
+ when Array
+ [k, v.map { |el| el.respond_to?(:to_ostruct) ? el.to_ostruct(@path) : el }]
+ else
+ [k, v]
+ end
+ end
+ CustomStruct.new(Hash[arr], @path)
+ end
+end
+
+class Array
+ @path = nil
+ def to_ostruct(path)
+ @path = path
+ map do |item|
+ if item.respond_to? :to_ostruct
+ item.to_ostruct(@path)
+ else
+ item
+ end
+ end
+ end
+end
\ No newline at end of file
diff --git a/docs/lib/php_code_blocks.rb b/docs/lib/php_code_blocks.rb
new file mode 100644
index 00000000..ae926d92
--- /dev/null
+++ b/docs/lib/php_code_blocks.rb
@@ -0,0 +1,59 @@
+require 'middleman-syntax/formatters'
+
+module Middleman
+ module Syntax
+ module Highlighter
+ mattr_accessor :options
+
+ # A helper module for highlighting code
+ def self.highlight(code, language=nil, opts={})
+ tabbed = false
+
+ if language and language[-1] == '*'
+ language = language.gsub('*', '')
+ tabbed = true
+ end
+
+ if language == 'php'
+ code = "'
+ s << ''
+ s << ''
+ s << ''
+ s << ''
+ s << ''
+ s << 'Copy'
+ s << ''
+ s << ''
+ s << '
'
+ s << ''
+ s << ''
+ s << ''
+ s << ''
+ s << ''
+ end
+ s << formatter.format(lexer.lex(code, lexer_options))
+ if language and not tabbed
+ s << ''
+ s << ''
+ end
+ s
+ end
+ end
+ end
+end
+
diff --git a/docs/lib/sitemap_tree.rb b/docs/lib/sitemap_tree.rb
new file mode 100644
index 00000000..b730105d
--- /dev/null
+++ b/docs/lib/sitemap_tree.rb
@@ -0,0 +1,170 @@
+class SitemapTree
+ def initialize(url_part)
+ @parent = nil
+ @children = []
+ @val = nil
+ @url_part = url_part
+ @@urls ||= {}
+ @position = nil
+ @url = nil
+ end
+
+ def final_url(url)
+ url.gsub('/index.html', '').gsub('.html', '')
+ end
+
+ def get_final_url
+ "/#{final_url(@url)}/"
+ end
+
+ def from_resource(resource)
+ @@urls[self.final_url(resource.destination_path).to_sym]
+ end
+
+ def from_url(url)
+ @@urls[url.to_sym]
+ end
+
+ def get_url
+ @url
+ end
+
+ def set_url(url)
+ @url = url
+ end
+
+ def add(resource)
+ if resource.destination_path.end_with?('.js') or resource.destination_path.end_with?('.css')
+ return
+ end
+ url = self.final_url(resource.destination_path)
+ parts = url.split('/')
+ used_parts = []
+ self.add_parts(parts, used_parts, resource)
+ end
+
+ def ancestor(part, level=0)
+ ancestors = [self]
+ ancestor = self
+
+ while (not ancestor.nil?) and ancestor.get_url_part != part
+ ancestor = ancestor.get_parent
+ ancestors.unshift(ancestor)
+ end
+
+ if (not ancestor.nil?) and ancestor.get_url_part == part
+ ancestors[level]
+ else
+ nil
+ end
+ end
+
+ def get_position
+ @position
+ end
+
+ def set_position(position)
+ @position = position
+ end
+
+ def flatten(take=false)
+ resources = []
+
+ if take and not @val.nil? and (@children.length == 0 || (@val.metadata[:page][:languages] and @val.metadata[:page][:languages].length > 0))
+ resources.push(self)
+ end
+
+ self.get_children.each do |child|
+ resources = resources + child.flatten(true)
+ end
+
+ resources
+ end
+
+ def add_parts(parts, used_parts, val)
+ if (parts.length) <= 0
+ @val = val
+ return
+ end
+
+ current_part = parts.shift
+ used_parts.push(current_part)
+ child = @children.select{|child| child.get_url_part == current_part}
+ child = child.length > 0 ? child[0] : nil
+
+ if child.nil?
+ child = SitemapTree.new(current_part)
+ child.set_parent(self)
+ url = used_parts.join('/')
+ child.set_url(url)
+ @@urls[url.to_sym] = child
+ child.set_position(@children.length)
+ @children.push(child)
+ end
+
+ child.add_parts(parts, used_parts, val)
+ end
+
+ def find(parts)
+ if parts.length <= 0
+ return self
+ end
+
+ current_part = parts.shift
+ child = @children.select{|child| child.get_url_part == current_part}
+
+ if child.length > 0
+ child[0].find(parts)
+ else
+ nil
+ end
+ end
+
+ def siblings
+ @parent.get_children
+ end
+
+ def set_val(val)
+ @val = val
+ end
+
+ def get_val
+ @val
+ end
+
+ def get_url_part
+ @url_part
+ end
+
+ def set_parent(parent)
+ @parent = parent
+ end
+
+ def get_children
+ @children
+ end
+
+ def get_pages
+ @children.select{|c| c.get_val}
+ end
+
+ def get_parent
+ @parent
+ end
+
+ def pretty_print (space)
+ spaces = space >= 0 ? " " * space : ''
+
+ if @url_part
+ print(spaces + @url_part + "\n")
+ end
+
+ if @val
+ print(spaces + " -> r\n")
+ end
+
+ @children.each do |child|
+ child.pretty_print(space + 1)
+ end
+ end
+end
\ No newline at end of file
diff --git a/docs/link_checker.rb b/docs/link_checker.rb
new file mode 100644
index 00000000..ccdaaf18
--- /dev/null
+++ b/docs/link_checker.rb
@@ -0,0 +1,79 @@
+require 'nokogiri'
+
+require 'find'
+
+html = []
+Find.find('build') do |path|
+ html << path if path =~ /.*\.html$/
+end
+
+files = {}
+links = []
+anchors = []
+
+html.each do |page|
+ content = File.read(page)
+ files[page] = Nokogiri::HTML(content)
+
+ (files[page] / 'a, link').each do |link|
+ href = link['href'].gsub(/http(s)?:\/\/(www\.)?algolia\.com\/doc\//, '/doc/')
+ .gsub(/\/$/, '')
+ .gsub(/\/#/, '#')
+
+ if href.start_with?('javascript:', 'http://', 'https://', 'mailto:', '//') or href.end_with?('.css', '.ico', 'png') or href == '#'
+ next
+ end
+
+ if href.start_with?('doc', '/doc')
+ parts = href.split('#')
+ link = "build#{parts[0]}/index.html"
+ anchor = parts.size >= 2 ? "##{parts[1]}": nil
+ links.push({link: link, from: page})
+
+ unless anchor.nil?
+ anchors.push({link: link, anchor: anchor, from: page})
+ end
+ elsif href.start_with?('#')
+ anchors.push({link: page, anchor: href, from: page})
+ end
+ end
+end
+
+errors_count_links = 0
+errors_count_anchors = 0
+
+links = links.uniq{ |x| "#{x[:link]}"}
+
+links.each do |link|
+ unless File.file?(link[:link])
+ errors_count_links += 1
+ print "[ERROR] Did not find #{link[:link]} included in page #{link[:from]}\n"
+ end
+end
+
+anchors = anchors.uniq{ |x| "#{x[:link]}#{x[:anchor]}"}
+
+anchors.each do |anchor|
+ if files[anchor[:link]].nil?
+ errors_count_links += 1
+ print "[ERROR] Did not find #{anchor[:anchor]} included in page #{anchor[:from]}\n"
+ next
+ end
+
+ begin
+ matching_anchors = files[anchor[:link]].css(anchor[:anchor])
+ rescue Nokogiri::CSS::SyntaxError
+ matching_anchors = []
+ end
+
+ if matching_anchors.size <= 0
+ errors_count_anchors += 1
+ print "[ERROR] Did not find #{anchor[:anchor]} included in page #{anchor[:from]}\n"
+ end
+end
+
+print "Checked #{links.size} links and #{anchors.size} anchors. #{errors_count_links} bad link. #{errors_count_anchors} bad anchors\n"
+
+if errors_count_anchors + errors_count_links > 0
+ exit(1)
+end
\ No newline at end of file
diff --git a/docs/optimiseFonts.js b/docs/optimiseFonts.js
new file mode 100644
index 00000000..ce71e771
--- /dev/null
+++ b/docs/optimiseFonts.js
@@ -0,0 +1,58 @@
+const fs = require('fs'),
+ path = require('path'),
+ glob = require('glob'),
+ ttf2woff2 = require('ttf2woff2'),
+ ttf2woff = require('ttf2woff/index.js'),
+ crypto = require('crypto');
+
+const last = (arr) => {
+ return arr[arr.length-1];
+}
+
+const files = glob.sync(path.resolve(__dirname, 'source/doc/assets/fonts/*.ttf'));
+const replaceFontNameRegexp = /^@.*\{[^{]+?\}/gm;
+
+const fileMap = files.reduce((p,f) => {
+
+ const name = last(f.split('/')).replace('.ttf','');
+ const woffName = f.replace('.ttf', '.woff');
+
+ const ttfBuffer = fs.readFileSync(f);
+ const woffBuffer = fs.readFileSync(woffName);
+
+ const woff2 = ttf2woff2(ttfBuffer);
+
+ const woffHash = crypto.createHash('md5').update(woffBuffer).digest('hex');
+ const ttfHash = crypto.createHash('md5').update(ttfBuffer).digest('hex')
+
+ const woff2Encode = new Buffer(woff2).toString('base64');
+ // const woffEncode = new Buffer(woff).toString('base64');
+
+ const cssFontFamily = `@font-face {
+ font-family: '${name}';
+ src: url('data:application/font-woff2;charset=utf-8;base64, ${woff2Encode}') format('woff2'),
+ url('../../fonts/${name}.woff?${woffHash}') format('woff'),
+ url('../../fonts/${name}.ttf?${ttfHash}') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}`
+
+ const key = f.split('-')[1] === 'brands' ? 'source/doc/assets/stylesheets/_brands.scss' : 'source/doc/assets/stylesheets/vendors/_icons.scss';
+ p[key] = cssFontFamily;
+
+ return p;
+},{});
+
+// Write stylesheet
+Object.keys(fileMap).forEach(key => {
+ console.log(key)
+ fs.readFile(key, 'utf-8', (err, data) => {
+ if(err) throw new Error(`Error when reading ${key}`)
+
+ const replacedContent = data.replace(replaceFontNameRegexp, fileMap[key]);
+
+ fs.writeFileSync(key, replacedContent, 'utf8', function (err) {
+ if (err) throw new Error(`Error when writing file ${key}`);
+ });
+ });
+})
\ No newline at end of file
diff --git a/docs/package-lock.json b/docs/package-lock.json
deleted file mode 100644
index 24b3e6d0..00000000
--- a/docs/package-lock.json
+++ /dev/null
@@ -1,6469 +0,0 @@
-{
- "requires": true,
- "lockfileVersion": 1,
- "dependencies": {
- "abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
- },
- "accepts": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
- "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
- "requires": {
- "mime-types": "2.1.17",
- "negotiator": "0.6.1"
- }
- },
- "acorn": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz",
- "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w=="
- },
- "acorn-dynamic-import": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
- "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
- "requires": {
- "acorn": "4.0.13"
- },
- "dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
- }
- }
- },
- "ajv": {
- "version": "5.5.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.1.tgz",
- "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=",
- "requires": {
- "co": "4.6.0",
- "fast-deep-equal": "1.0.0",
- "fast-json-stable-stringify": "2.0.0",
- "json-schema-traverse": "0.3.1"
- }
- },
- "ajv-keywords": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
- "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw="
- },
- "algolia-aerial": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/algolia-aerial/-/algolia-aerial-1.2.6.tgz",
- "integrity": "sha512-9lUtqu3z6ljg+esGFUCYS+ENBeIGcel35wiJGhoVoYnCZJ1/xYrNBoCejmmTgUoj9ckWckXNjiCCYv24nd/T9Q==",
- "requires": {
- "clean-css-cli": "4.1.10",
- "css-loader": "0.28.7",
- "file-loader": "0.11.2",
- "style-loader": "0.18.2",
- "url-loader": "0.5.9"
- }
- },
- "algolia-frontend-components": {
- "version": "0.0.34",
- "resolved": "https://registry.npmjs.org/algolia-frontend-components/-/algolia-frontend-components-0.0.34.tgz",
- "integrity": "sha1-9xndVGF3BCebNDOlBh8UyVtPz6s=",
- "requires": {
- "babel-cli": "6.26.0",
- "babel-core": "6.26.0",
- "babel-polyfill": "6.26.0",
- "babel-preset-env": "1.6.1",
- "babel-preset-es2015": "6.24.1",
- "chalk": "1.1.3",
- "deepmerge": "1.5.2",
- "glob": "7.1.2",
- "node-sass": "4.7.2",
- "path": "0.12.7",
- "progress": "1.1.8",
- "webpack": "2.7.0",
- "webpack-dev-server": "2.9.7"
- }
- },
- "align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "requires": {
- "kind-of": "3.2.2",
- "longest": "1.0.1",
- "repeat-string": "1.6.1"
- }
- },
- "alphanum-sort": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
- "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
- },
- "amdefine": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
- },
- "ansi-html": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
- "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4="
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
- },
- "anymatch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
- "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
- "requires": {
- "micromatch": "2.3.11",
- "normalize-path": "2.1.1"
- }
- },
- "aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
- },
- "are-we-there-yet": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
- "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
- "requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.3.3"
- }
- },
- "argparse": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
- "requires": {
- "sprintf-js": "1.0.3"
- }
- },
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "requires": {
- "arr-flatten": "1.1.0"
- }
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
- },
- "array-find-index": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
- "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
- },
- "array-flatten": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
- "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY="
- },
- "array-includes": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
- "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
- "requires": {
- "define-properties": "1.1.2",
- "es-abstract": "1.10.0"
- }
- },
- "array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
- "requires": {
- "array-uniq": "1.0.3"
- }
- },
- "array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
- },
- "asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
- },
- "asn1.js": {
- "version": "4.9.2",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz",
- "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==",
- "requires": {
- "bn.js": "4.11.8",
- "inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
- }
- },
- "assert": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
- "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
- "requires": {
- "util": "0.10.3"
- }
- },
- "assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
- },
- "async": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
- "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
- "requires": {
- "lodash": "4.17.4"
- }
- },
- "async-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
- "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0="
- },
- "async-foreach": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
- "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "autoprefixer": {
- "version": "6.7.7",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
- "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
- "requires": {
- "browserslist": "1.7.7",
- "caniuse-db": "1.0.30000780",
- "normalize-range": "0.1.2",
- "num2fraction": "1.2.2",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
- },
- "aws4": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
- },
- "babel-cli": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
- "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
- "requires": {
- "babel-core": "6.26.0",
- "babel-polyfill": "6.26.0",
- "babel-register": "6.26.0",
- "babel-runtime": "6.26.0",
- "chokidar": "1.7.0",
- "commander": "2.12.2",
- "convert-source-map": "1.5.1",
- "fs-readdir-recursive": "1.1.0",
- "glob": "7.1.2",
- "lodash": "4.17.4",
- "output-file-sync": "1.1.2",
- "path-is-absolute": "1.0.1",
- "slash": "1.0.0",
- "source-map": "0.5.7",
- "v8flags": "2.1.1"
- }
- },
- "babel-code-frame": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
- "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
- "requires": {
- "chalk": "1.1.3",
- "esutils": "2.0.2",
- "js-tokens": "3.0.2"
- }
- },
- "babel-core": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
- "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
- "requires": {
- "babel-code-frame": "6.26.0",
- "babel-generator": "6.26.0",
- "babel-helpers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-register": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "convert-source-map": "1.5.1",
- "debug": "2.6.9",
- "json5": "0.5.1",
- "lodash": "4.17.4",
- "minimatch": "3.0.4",
- "path-is-absolute": "1.0.1",
- "private": "0.1.8",
- "slash": "1.0.0",
- "source-map": "0.5.7"
- }
- },
- "babel-generator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
- "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
- "requires": {
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "detect-indent": "4.0.0",
- "jsesc": "1.3.0",
- "lodash": "4.17.4",
- "source-map": "0.5.7",
- "trim-right": "1.0.1"
- },
- "dependencies": {
- "jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
- }
- }
- },
- "babel-helper-builder-binary-assignment-operator-visitor": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
- "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
- "requires": {
- "babel-helper-explode-assignable-expression": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-call-delegate": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
- "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
- "requires": {
- "babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-define-map": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
- "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
- }
- },
- "babel-helper-explode-assignable-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
- "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
- "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
- "requires": {
- "babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-get-function-arity": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
- "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-hoist-variables": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
- "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-optimise-call-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
- "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-regex": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
- "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
- }
- },
- "babel-helper-remap-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-replace-supers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
- "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
- "requires": {
- "babel-helper-optimise-call-expression": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helpers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
- "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-messages": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-check-es2015-constants": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
- "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-syntax-async-functions": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
- "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU="
- },
- "babel-plugin-syntax-exponentiation-operator": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
- "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4="
- },
- "babel-plugin-syntax-trailing-function-commas": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
- "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM="
- },
- "babel-plugin-transform-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
- "requires": {
- "babel-helper-remap-async-to-generator": "6.24.1",
- "babel-plugin-syntax-async-functions": "6.13.0",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-arrow-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
- "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-block-scoped-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
- "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-block-scoping": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
- "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
- }
- },
- "babel-plugin-transform-es2015-classes": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
- "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
- "requires": {
- "babel-helper-define-map": "6.26.0",
- "babel-helper-function-name": "6.24.1",
- "babel-helper-optimise-call-expression": "6.24.1",
- "babel-helper-replace-supers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-computed-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
- "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-destructuring": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
- "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-duplicate-keys": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
- "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-for-of": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
- "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
- "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
- "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-amd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
- "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
- "requires": {
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
- "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=",
- "requires": {
- "babel-plugin-transform-strict-mode": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-systemjs": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
- "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
- "requires": {
- "babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-umd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
- "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
- "requires": {
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-object-super": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
- "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
- "requires": {
- "babel-helper-replace-supers": "6.24.1",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-parameters": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
- "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
- "requires": {
- "babel-helper-call-delegate": "6.24.1",
- "babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-shorthand-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
- "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-spread": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
- "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-sticky-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
- "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
- "requires": {
- "babel-helper-regex": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-template-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
- "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-typeof-symbol": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
- "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-unicode-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
- "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
- "requires": {
- "babel-helper-regex": "6.26.0",
- "babel-runtime": "6.26.0",
- "regexpu-core": "2.0.0"
- },
- "dependencies": {
- "regexpu-core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
- "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
- "requires": {
- "regenerate": "1.3.3",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
- }
- }
- }
- },
- "babel-plugin-transform-exponentiation-operator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
- "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
- "requires": {
- "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "6.13.0",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-regenerator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
- "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
- "requires": {
- "regenerator-transform": "0.10.1"
- }
- },
- "babel-plugin-transform-strict-mode": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
- "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-polyfill": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
- "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
- "requires": {
- "babel-runtime": "6.26.0",
- "core-js": "2.5.1",
- "regenerator-runtime": "0.10.5"
- },
- "dependencies": {
- "regenerator-runtime": {
- "version": "0.10.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
- "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
- }
- }
- },
- "babel-preset-env": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz",
- "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==",
- "requires": {
- "babel-plugin-check-es2015-constants": "6.22.0",
- "babel-plugin-syntax-trailing-function-commas": "6.22.0",
- "babel-plugin-transform-async-to-generator": "6.24.1",
- "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "6.26.0",
- "babel-plugin-transform-es2015-classes": "6.24.1",
- "babel-plugin-transform-es2015-computed-properties": "6.24.1",
- "babel-plugin-transform-es2015-destructuring": "6.23.0",
- "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
- "babel-plugin-transform-es2015-for-of": "6.23.0",
- "babel-plugin-transform-es2015-function-name": "6.24.1",
- "babel-plugin-transform-es2015-literals": "6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
- "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
- "babel-plugin-transform-es2015-modules-umd": "6.24.1",
- "babel-plugin-transform-es2015-object-super": "6.24.1",
- "babel-plugin-transform-es2015-parameters": "6.24.1",
- "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
- "babel-plugin-transform-es2015-spread": "6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
- "babel-plugin-transform-es2015-template-literals": "6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
- "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
- "babel-plugin-transform-exponentiation-operator": "6.24.1",
- "babel-plugin-transform-regenerator": "6.26.0",
- "browserslist": "2.10.0",
- "invariant": "2.2.2",
- "semver": "5.4.1"
- },
- "dependencies": {
- "browserslist": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.10.0.tgz",
- "integrity": "sha512-WyvzSLsuAVPOjbljXnyeWl14Ae+ukAT8MUuagKVzIDvwBxl4UAwD1xqtyQs2eWYPGUKMeC3Ol62goqYuKqTTcw==",
- "requires": {
- "caniuse-lite": "1.0.30000780",
- "electron-to-chromium": "1.3.28"
- }
- }
- }
- },
- "babel-preset-es2015": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
- "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
- "requires": {
- "babel-plugin-check-es2015-constants": "6.22.0",
- "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "6.26.0",
- "babel-plugin-transform-es2015-classes": "6.24.1",
- "babel-plugin-transform-es2015-computed-properties": "6.24.1",
- "babel-plugin-transform-es2015-destructuring": "6.23.0",
- "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
- "babel-plugin-transform-es2015-for-of": "6.23.0",
- "babel-plugin-transform-es2015-function-name": "6.24.1",
- "babel-plugin-transform-es2015-literals": "6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
- "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
- "babel-plugin-transform-es2015-modules-umd": "6.24.1",
- "babel-plugin-transform-es2015-object-super": "6.24.1",
- "babel-plugin-transform-es2015-parameters": "6.24.1",
- "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
- "babel-plugin-transform-es2015-spread": "6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
- "babel-plugin-transform-es2015-template-literals": "6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
- "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
- "babel-plugin-transform-regenerator": "6.26.0"
- }
- },
- "babel-register": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
- "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
- "requires": {
- "babel-core": "6.26.0",
- "babel-runtime": "6.26.0",
- "core-js": "2.5.1",
- "home-or-tmp": "2.0.0",
- "lodash": "4.17.4",
- "mkdirp": "0.5.1",
- "source-map-support": "0.4.18"
- }
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "requires": {
- "core-js": "2.5.1",
- "regenerator-runtime": "0.11.0"
- }
- },
- "babel-template": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "lodash": "4.17.4"
- }
- },
- "babel-traverse": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
- "requires": {
- "babel-code-frame": "6.26.0",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "debug": "2.6.9",
- "globals": "9.18.0",
- "invariant": "2.2.2",
- "lodash": "4.17.4"
- }
- },
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "requires": {
- "babel-runtime": "6.26.0",
- "esutils": "2.0.2",
- "lodash": "4.17.4",
- "to-fast-properties": "1.0.3"
- }
- },
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "base64-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
- "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw=="
- },
- "batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
- },
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
- "optional": true,
- "requires": {
- "tweetnacl": "0.14.5"
- }
- },
- "big.js": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
- "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q=="
- },
- "binary-extensions": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
- "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU="
- },
- "block-stream": {
- "version": "0.0.9",
- "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
- "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "bn.js": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
- "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
- },
- "body-parser": {
- "version": "1.18.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
- "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
- "requires": {
- "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"
- },
- "dependencies": {
- "qs": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
- }
- }
- },
- "bonjour": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
- "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
- "requires": {
- "array-flatten": "2.1.1",
- "deep-equal": "1.0.1",
- "dns-equal": "1.0.0",
- "dns-txt": "2.0.2",
- "multicast-dns": "6.2.1",
- "multicast-dns-service-types": "1.1.0"
- }
- },
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "requires": {
- "balanced-match": "1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.2"
- }
- },
- "brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
- },
- "browserify-aes": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz",
- "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==",
- "requires": {
- "buffer-xor": "1.0.3",
- "cipher-base": "1.0.4",
- "create-hash": "1.1.3",
- "evp_bytestokey": "1.0.3",
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- },
- "browserify-cipher": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
- "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
- "requires": {
- "browserify-aes": "1.1.1",
- "browserify-des": "1.0.0",
- "evp_bytestokey": "1.0.3"
- }
- },
- "browserify-des": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
- "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
- "requires": {
- "cipher-base": "1.0.4",
- "des.js": "1.0.0",
- "inherits": "2.0.3"
- }
- },
- "browserify-rsa": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
- "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
- "requires": {
- "bn.js": "4.11.8",
- "randombytes": "2.0.5"
- }
- },
- "browserify-sign": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
- "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
- "requires": {
- "bn.js": "4.11.8",
- "browserify-rsa": "4.0.1",
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
- "elliptic": "6.4.0",
- "inherits": "2.0.3",
- "parse-asn1": "5.1.0"
- }
- },
- "browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "requires": {
- "pako": "1.0.6"
- }
- },
- "browserslist": {
- "version": "1.7.7",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
- "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
- "requires": {
- "caniuse-db": "1.0.30000780",
- "electron-to-chromium": "1.3.28"
- }
- },
- "buffer": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
- "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
- "requires": {
- "base64-js": "1.2.1",
- "ieee754": "1.1.8",
- "isarray": "1.0.0"
- }
- },
- "buffer-indexof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
- "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="
- },
- "buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
- },
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
- },
- "builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
- },
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
- },
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
- },
- "camelcase-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
- "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
- "requires": {
- "camelcase": "2.1.1",
- "map-obj": "1.0.1"
- }
- },
- "caniuse-api": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
- "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
- "requires": {
- "browserslist": "1.7.7",
- "caniuse-db": "1.0.30000780",
- "lodash.memoize": "4.1.2",
- "lodash.uniq": "4.5.0"
- }
- },
- "caniuse-db": {
- "version": "1.0.30000780",
- "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000780.tgz",
- "integrity": "sha1-jRl3Vh0A/w8O0ra2YUAyirRQTAo="
- },
- "caniuse-lite": {
- "version": "1.0.30000780",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000780.tgz",
- "integrity": "sha1-H5CV8u/UlA4LpsWZKreptkzDW6Q="
- },
- "caseless": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
- "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
- },
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "requires": {
- "align-text": "0.1.4",
- "lazy-cache": "1.0.4"
- }
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "chokidar": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
- "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
- "requires": {
- "anymatch": "1.3.2",
- "async-each": "1.0.1",
- "fsevents": "1.1.3",
- "glob-parent": "2.0.0",
- "inherits": "2.0.3",
- "is-binary-path": "1.0.1",
- "is-glob": "2.0.1",
- "path-is-absolute": "1.0.1",
- "readdirp": "2.1.0"
- }
- },
- "cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "requires": {
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- },
- "clap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
- "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
- "requires": {
- "chalk": "1.1.3"
- }
- },
- "clean-css": {
- "version": "4.1.9",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz",
- "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=",
- "requires": {
- "source-map": "0.5.7"
- }
- },
- "clean-css-cli": {
- "version": "4.1.10",
- "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.1.10.tgz",
- "integrity": "sha1-g2JMkEY0FCGHXMYKKJSzgvfKDKY=",
- "requires": {
- "clean-css": "4.1.9",
- "commander": "2.12.2",
- "glob": "7.1.2"
- }
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
- }
- },
- "clone": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz",
- "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8="
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
- },
- "coa": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
- "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
- "requires": {
- "q": "1.5.1"
- }
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
- },
- "color": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
- "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
- "requires": {
- "clone": "1.0.3",
- "color-convert": "1.9.1",
- "color-string": "0.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
- "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "color-string": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
- "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "colormin": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
- "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
- "requires": {
- "color": "0.11.4",
- "css-color-names": "0.0.4",
- "has": "1.0.1"
- }
- },
- "colors": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
- },
- "combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
- "requires": {
- "delayed-stream": "1.0.0"
- }
- },
- "commander": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
- "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA=="
- },
- "compressible": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz",
- "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=",
- "requires": {
- "mime-db": "1.30.0"
- }
- },
- "compression": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz",
- "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=",
- "requires": {
- "accepts": "1.3.4",
- "bytes": "3.0.0",
- "compressible": "2.0.12",
- "debug": "2.6.9",
- "on-headers": "1.0.1",
- "safe-buffer": "5.1.1",
- "vary": "1.1.2"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "connect-history-api-fallback": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
- "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo="
- },
- "console-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
- "requires": {
- "date-now": "0.1.4"
- }
- },
- "console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
- },
- "constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
- },
- "content-disposition": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
- "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
- },
- "convert-source-map": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
- "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
- },
- "cookie": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
- },
- "core-js": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
- "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs="
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "create-ecdh": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
- "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
- "requires": {
- "bn.js": "4.11.8",
- "elliptic": "6.4.0"
- }
- },
- "create-hash": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
- "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
- "requires": {
- "cipher-base": "1.0.4",
- "inherits": "2.0.3",
- "ripemd160": "2.0.1",
- "sha.js": "2.4.9"
- }
- },
- "create-hmac": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
- "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
- "requires": {
- "cipher-base": "1.0.4",
- "create-hash": "1.1.3",
- "inherits": "2.0.3",
- "ripemd160": "2.0.1",
- "safe-buffer": "5.1.1",
- "sha.js": "2.4.9"
- }
- },
- "cross-spawn": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
- "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
- "requires": {
- "lru-cache": "4.1.1",
- "which": "1.3.0"
- }
- },
- "cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
- "requires": {
- "boom": "2.10.1"
- }
- },
- "crypto-browserify": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
- "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
- "requires": {
- "browserify-cipher": "1.0.0",
- "browserify-sign": "4.0.4",
- "create-ecdh": "4.0.0",
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
- "diffie-hellman": "5.0.2",
- "inherits": "2.0.3",
- "pbkdf2": "3.0.14",
- "public-encrypt": "4.0.0",
- "randombytes": "2.0.5",
- "randomfill": "1.0.3"
- }
- },
- "css-color-names": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
- "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA="
- },
- "css-loader": {
- "version": "0.28.7",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz",
- "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==",
- "requires": {
- "babel-code-frame": "6.26.0",
- "css-selector-tokenizer": "0.7.0",
- "cssnano": "3.10.0",
- "icss-utils": "2.1.0",
- "loader-utils": "1.1.0",
- "lodash.camelcase": "4.3.0",
- "object-assign": "4.1.1",
- "postcss": "5.2.18",
- "postcss-modules-extract-imports": "1.1.0",
- "postcss-modules-local-by-default": "1.2.0",
- "postcss-modules-scope": "1.1.0",
- "postcss-modules-values": "1.3.0",
- "postcss-value-parser": "3.3.0",
- "source-list-map": "2.0.0"
- }
- },
- "css-selector-tokenizer": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
- "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
- "requires": {
- "cssesc": "0.1.0",
- "fastparse": "1.1.1",
- "regexpu-core": "1.0.0"
- }
- },
- "cssesc": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
- "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q="
- },
- "cssnano": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
- "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
- "requires": {
- "autoprefixer": "6.7.7",
- "decamelize": "1.2.0",
- "defined": "1.0.0",
- "has": "1.0.1",
- "object-assign": "4.1.1",
- "postcss": "5.2.18",
- "postcss-calc": "5.3.1",
- "postcss-colormin": "2.2.2",
- "postcss-convert-values": "2.6.1",
- "postcss-discard-comments": "2.0.4",
- "postcss-discard-duplicates": "2.1.0",
- "postcss-discard-empty": "2.1.0",
- "postcss-discard-overridden": "0.1.1",
- "postcss-discard-unused": "2.2.3",
- "postcss-filter-plugins": "2.0.2",
- "postcss-merge-idents": "2.1.7",
- "postcss-merge-longhand": "2.0.2",
- "postcss-merge-rules": "2.1.2",
- "postcss-minify-font-values": "1.0.5",
- "postcss-minify-gradients": "1.0.5",
- "postcss-minify-params": "1.2.2",
- "postcss-minify-selectors": "2.1.1",
- "postcss-normalize-charset": "1.1.1",
- "postcss-normalize-url": "3.0.8",
- "postcss-ordered-values": "2.2.3",
- "postcss-reduce-idents": "2.4.0",
- "postcss-reduce-initial": "1.0.1",
- "postcss-reduce-transforms": "1.0.4",
- "postcss-svgo": "2.1.6",
- "postcss-unique-selectors": "2.0.2",
- "postcss-value-parser": "3.3.0",
- "postcss-zindex": "2.2.0"
- }
- },
- "csso": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
- "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
- "requires": {
- "clap": "1.2.3",
- "source-map": "0.5.7"
- }
- },
- "currently-unhandled": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
- "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
- "requires": {
- "array-find-index": "1.0.2"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "date-now": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "deep-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
- "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
- },
- "deepmerge": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
- "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
- },
- "define-properties": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
- "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
- "requires": {
- "foreach": "2.0.5",
- "object-keys": "1.0.11"
- }
- },
- "defined": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
- },
- "del": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
- "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
- "requires": {
- "globby": "6.1.0",
- "is-path-cwd": "1.0.0",
- "is-path-in-cwd": "1.0.0",
- "p-map": "1.2.0",
- "pify": "3.0.0",
- "rimraf": "2.6.2"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- }
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
- },
- "depd": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
- "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
- },
- "des.js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
- "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
- "requires": {
- "inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
- }
- },
- "destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
- },
- "detect-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
- "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
- "requires": {
- "repeating": "2.0.1"
- }
- },
- "detect-node": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz",
- "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc="
- },
- "diffie-hellman": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
- "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
- "requires": {
- "bn.js": "4.11.8",
- "miller-rabin": "4.0.1",
- "randombytes": "2.0.5"
- }
- },
- "dns-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
- "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
- },
- "dns-packet": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz",
- "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==",
- "requires": {
- "ip": "1.1.5",
- "safe-buffer": "5.1.1"
- }
- },
- "dns-txt": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
- "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
- "requires": {
- "buffer-indexof": "1.1.1"
- }
- },
- "domain-browser": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
- "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw="
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
- },
- "electron-to-chromium": {
- "version": "1.3.28",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.28.tgz",
- "integrity": "sha1-jdTmRYCGZE6fnwoc8y4qH53/2e4="
- },
- "elliptic": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
- "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
- "requires": {
- "bn.js": "4.11.8",
- "brorand": "1.1.0",
- "hash.js": "1.1.3",
- "hmac-drbg": "1.0.1",
- "inherits": "2.0.3",
- "minimalistic-assert": "1.0.0",
- "minimalistic-crypto-utils": "1.0.1"
- }
- },
- "emojis-list": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
- "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
- },
- "encodeurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
- "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
- },
- "enhanced-resolve": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
- "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
- "requires": {
- "graceful-fs": "4.1.11",
- "memory-fs": "0.4.1",
- "object-assign": "4.1.1",
- "tapable": "0.2.8"
- }
- },
- "errno": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
- "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
- "requires": {
- "prr": "0.0.0"
- }
- },
- "error-ex": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
- "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
- "requires": {
- "is-arrayish": "0.2.1"
- }
- },
- "es-abstract": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz",
- "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==",
- "requires": {
- "es-to-primitive": "1.1.1",
- "function-bind": "1.1.1",
- "has": "1.0.1",
- "is-callable": "1.1.3",
- "is-regex": "1.0.4"
- }
- },
- "es-to-primitive": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
- "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
- "requires": {
- "is-callable": "1.1.3",
- "is-date-object": "1.0.1",
- "is-symbol": "1.0.1"
- }
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "esprima": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
- },
- "esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
- },
- "eventemitter3": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
- "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg="
- },
- "events": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
- "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
- },
- "eventsource": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
- "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
- "requires": {
- "original": "1.0.0"
- }
- },
- "evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "requires": {
- "md5.js": "1.3.4",
- "safe-buffer": "5.1.1"
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "requires": {
- "is-posix-bracket": "0.1.1"
- }
- },
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "requires": {
- "fill-range": "2.2.3"
- }
- },
- "express": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
- "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
- "requires": {
- "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"
- },
- "dependencies": {
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
- "qs": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
- }
- }
- },
- "extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "requires": {
- "is-extglob": "1.0.0"
- }
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
- },
- "fast-deep-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
- "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
- },
- "fast-json-stable-stringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
- },
- "fastparse": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
- "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg="
- },
- "faye-websocket": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
- "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
- "requires": {
- "websocket-driver": "0.7.0"
- }
- },
- "file-loader": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz",
- "integrity": "sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==",
- "requires": {
- "loader-utils": "1.1.0"
- }
- },
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
- },
- "fill-range": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
- "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
- "requires": {
- "is-number": "2.1.0",
- "isobject": "2.1.0",
- "randomatic": "1.1.7",
- "repeat-element": "1.1.2",
- "repeat-string": "1.6.1"
- }
- },
- "finalhandler": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
- "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
- "requires": {
- "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": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "flatten": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
- "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I="
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
- },
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "requires": {
- "for-in": "1.0.2"
- }
- },
- "foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
- },
- "form-data": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
- "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.17"
- }
- },
- "forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
- },
- "fs-readdir-recursive": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
- "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA=="
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "fsevents": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
- "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
- "optional": true,
- "requires": {
- "nan": "2.8.0",
- "node-pre-gyp": "0.6.39"
- },
- "dependencies": {
- "abbrev": {
- "version": "1.1.0",
- "bundled": true,
- "optional": true
- },
- "ajv": {
- "version": "4.11.8",
- "bundled": true,
- "optional": true,
- "requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
- }
- },
- "ansi-regex": {
- "version": "2.1.1",
- "bundled": true
- },
- "aproba": {
- "version": "1.1.1",
- "bundled": true,
- "optional": true
- },
- "are-we-there-yet": {
- "version": "1.1.4",
- "bundled": true,
- "optional": true,
- "requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.2.9"
- }
- },
- "asn1": {
- "version": "0.2.3",
- "bundled": true,
- "optional": true
- },
- "assert-plus": {
- "version": "0.2.0",
- "bundled": true,
- "optional": true
- },
- "asynckit": {
- "version": "0.4.0",
- "bundled": true,
- "optional": true
- },
- "aws-sign2": {
- "version": "0.6.0",
- "bundled": true,
- "optional": true
- },
- "aws4": {
- "version": "1.6.0",
- "bundled": true,
- "optional": true
- },
- "balanced-match": {
- "version": "0.4.2",
- "bundled": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "tweetnacl": "0.14.5"
- }
- },
- "block-stream": {
- "version": "0.0.9",
- "bundled": true,
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "boom": {
- "version": "2.10.1",
- "bundled": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "brace-expansion": {
- "version": "1.1.7",
- "bundled": true,
- "requires": {
- "balanced-match": "0.4.2",
- "concat-map": "0.0.1"
- }
- },
- "buffer-shims": {
- "version": "1.0.0",
- "bundled": true
- },
- "caseless": {
- "version": "0.12.0",
- "bundled": true,
- "optional": true
- },
- "co": {
- "version": "4.6.0",
- "bundled": true,
- "optional": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "bundled": true
- },
- "combined-stream": {
- "version": "1.0.5",
- "bundled": true,
- "requires": {
- "delayed-stream": "1.0.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "bundled": true
- },
- "console-control-strings": {
- "version": "1.1.0",
- "bundled": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "bundled": true
- },
- "cryptiles": {
- "version": "2.0.5",
- "bundled": true,
- "requires": {
- "boom": "2.10.1"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- }
- }
- },
- "debug": {
- "version": "2.6.8",
- "bundled": true,
- "optional": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "deep-extend": {
- "version": "0.4.2",
- "bundled": true,
- "optional": true
- },
- "delayed-stream": {
- "version": "1.0.0",
- "bundled": true
- },
- "delegates": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- },
- "detect-libc": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "extend": {
- "version": "3.0.1",
- "bundled": true,
- "optional": true
- },
- "extsprintf": {
- "version": "1.0.2",
- "bundled": true
- },
- "forever-agent": {
- "version": "0.6.1",
- "bundled": true,
- "optional": true
- },
- "form-data": {
- "version": "2.1.4",
- "bundled": true,
- "optional": true,
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.15"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "bundled": true
- },
- "fstream": {
- "version": "1.0.11",
- "bundled": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.1"
- }
- },
- "fstream-ignore": {
- "version": "1.0.5",
- "bundled": true,
- "optional": true,
- "requires": {
- "fstream": "1.0.11",
- "inherits": "2.0.3",
- "minimatch": "3.0.4"
- }
- },
- "gauge": {
- "version": "2.7.4",
- "bundled": true,
- "optional": true,
- "requires": {
- "aproba": "1.1.1",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.2"
- }
- },
- "getpass": {
- "version": "0.1.7",
- "bundled": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- }
- }
- },
- "glob": {
- "version": "7.1.2",
- "bundled": true,
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "graceful-fs": {
- "version": "4.1.11",
- "bundled": true
- },
- "har-schema": {
- "version": "1.0.5",
- "bundled": true,
- "optional": true
- },
- "har-validator": {
- "version": "4.2.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "ajv": "4.11.8",
- "har-schema": "1.0.5"
- }
- },
- "has-unicode": {
- "version": "2.0.1",
- "bundled": true,
- "optional": true
- },
- "hawk": {
- "version": "3.1.3",
- "bundled": true,
- "requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
- }
- },
- "hoek": {
- "version": "2.16.3",
- "bundled": true
- },
- "http-signature": {
- "version": "1.1.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.4.0",
- "sshpk": "1.13.0"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "bundled": true
- },
- "ini": {
- "version": "1.3.4",
- "bundled": true,
- "optional": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "bundled": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-typedarray": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- },
- "isarray": {
- "version": "1.0.0",
- "bundled": true
- },
- "isstream": {
- "version": "0.1.2",
- "bundled": true,
- "optional": true
- },
- "jodid25519": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "bundled": true,
- "optional": true
- },
- "json-schema": {
- "version": "0.2.3",
- "bundled": true,
- "optional": true
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "jsonify": "0.0.0"
- }
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "bundled": true,
- "optional": true
- },
- "jsonify": {
- "version": "0.0.0",
- "bundled": true,
- "optional": true
- },
- "jsprim": {
- "version": "1.4.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.0.2",
- "json-schema": "0.2.3",
- "verror": "1.3.6"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- }
- }
- },
- "mime-db": {
- "version": "1.27.0",
- "bundled": true
- },
- "mime-types": {
- "version": "2.1.15",
- "bundled": true,
- "requires": {
- "mime-db": "1.27.0"
- }
- },
- "minimatch": {
- "version": "3.0.4",
- "bundled": true,
- "requires": {
- "brace-expansion": "1.1.7"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "bundled": true
- },
- "mkdirp": {
- "version": "0.5.1",
- "bundled": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "bundled": true,
- "optional": true
- },
- "node-pre-gyp": {
- "version": "0.6.39",
- "bundled": true,
- "optional": true,
- "requires": {
- "detect-libc": "1.0.2",
- "hawk": "3.1.3",
- "mkdirp": "0.5.1",
- "nopt": "4.0.1",
- "npmlog": "4.1.0",
- "rc": "1.2.1",
- "request": "2.81.0",
- "rimraf": "2.6.1",
- "semver": "5.3.0",
- "tar": "2.2.1",
- "tar-pack": "3.4.0"
- }
- },
- "nopt": {
- "version": "4.0.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "abbrev": "1.1.0",
- "osenv": "0.1.4"
- }
- },
- "npmlog": {
- "version": "4.1.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "are-we-there-yet": "1.1.4",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "bundled": true
- },
- "oauth-sign": {
- "version": "0.8.2",
- "bundled": true,
- "optional": true
- },
- "object-assign": {
- "version": "4.1.1",
- "bundled": true,
- "optional": true
- },
- "once": {
- "version": "1.4.0",
- "bundled": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true
- },
- "osenv": {
- "version": "0.1.4",
- "bundled": true,
- "optional": true,
- "requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true
- },
- "performance-now": {
- "version": "0.2.0",
- "bundled": true,
- "optional": true
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "bundled": true
- },
- "punycode": {
- "version": "1.4.1",
- "bundled": true,
- "optional": true
- },
- "qs": {
- "version": "6.4.0",
- "bundled": true,
- "optional": true
- },
- "rc": {
- "version": "1.2.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.4",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "bundled": true,
- "optional": true
- }
- }
- },
- "readable-stream": {
- "version": "2.2.9",
- "bundled": true,
- "requires": {
- "buffer-shims": "1.0.0",
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "1.0.1",
- "util-deprecate": "1.0.2"
- }
- },
- "request": {
- "version": "2.81.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "aws-sign2": "0.6.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.1.4",
- "har-validator": "4.2.1",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.15",
- "oauth-sign": "0.8.2",
- "performance-now": "0.2.0",
- "qs": "6.4.0",
- "safe-buffer": "5.0.1",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.2",
- "tunnel-agent": "0.6.0",
- "uuid": "3.0.1"
- }
- },
- "rimraf": {
- "version": "2.6.1",
- "bundled": true,
- "requires": {
- "glob": "7.1.2"
- }
- },
- "safe-buffer": {
- "version": "5.0.1",
- "bundled": true
- },
- "semver": {
- "version": "5.3.0",
- "bundled": true,
- "optional": true
- },
- "set-blocking": {
- "version": "2.0.0",
- "bundled": true,
- "optional": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "bundled": true,
- "optional": true
- },
- "sntp": {
- "version": "1.0.9",
- "bundled": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "sshpk": {
- "version": "1.13.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.1",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jodid25519": "1.0.2",
- "jsbn": "0.1.1",
- "tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- }
- }
- },
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "string_decoder": {
- "version": "1.0.1",
- "bundled": true,
- "requires": {
- "safe-buffer": "5.0.1"
- }
- },
- "stringstream": {
- "version": "0.0.5",
- "bundled": true,
- "optional": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "bundled": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "bundled": true,
- "optional": true
- },
- "tar": {
- "version": "2.2.1",
- "bundled": true,
- "requires": {
- "block-stream": "0.0.9",
- "fstream": "1.0.11",
- "inherits": "2.0.3"
- }
- },
- "tar-pack": {
- "version": "3.4.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "debug": "2.6.8",
- "fstream": "1.0.11",
- "fstream-ignore": "1.0.5",
- "once": "1.4.0",
- "readable-stream": "2.2.9",
- "rimraf": "2.6.1",
- "tar": "2.2.1",
- "uid-number": "0.0.6"
- }
- },
- "tough-cookie": {
- "version": "2.3.2",
- "bundled": true,
- "optional": true,
- "requires": {
- "punycode": "1.4.1"
- }
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "safe-buffer": "5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "bundled": true,
- "optional": true
- },
- "uid-number": {
- "version": "0.0.6",
- "bundled": true,
- "optional": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true
- },
- "uuid": {
- "version": "3.0.1",
- "bundled": true,
- "optional": true
- },
- "verror": {
- "version": "1.3.6",
- "bundled": true,
- "optional": true,
- "requires": {
- "extsprintf": "1.0.2"
- }
- },
- "wide-align": {
- "version": "1.1.2",
- "bundled": true,
- "optional": true,
- "requires": {
- "string-width": "1.0.2"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true
- }
- }
- },
- "fstream": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
- "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
- "requires": {
- "graceful-fs": "4.1.11",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.2"
- }
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "gauge": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
- "requires": {
- "aproba": "1.2.0",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.2"
- }
- },
- "gaze": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
- "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
- "requires": {
- "globule": "1.2.0"
- }
- },
- "generate-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
- },
- "generate-object-property": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
- "requires": {
- "is-property": "1.0.2"
- }
- },
- "get-caller-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
- "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
- },
- "get-stdin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
- "requires": {
- "glob-parent": "2.0.0",
- "is-glob": "2.0.1"
- }
- },
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "requires": {
- "is-glob": "2.0.1"
- }
- },
- "globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
- },
- "globby": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
- "requires": {
- "array-union": "1.0.2",
- "glob": "7.1.2",
- "object-assign": "4.1.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "globule": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
- "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
- "requires": {
- "glob": "7.1.2",
- "lodash": "4.17.4",
- "minimatch": "3.0.4"
- }
- },
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
- },
- "handle-thing": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
- "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ="
- },
- "har-validator": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
- "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
- "requires": {
- "chalk": "1.1.3",
- "commander": "2.12.2",
- "is-my-json-valid": "2.16.1",
- "pinkie-promise": "2.0.1"
- }
- },
- "has": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
- "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
- "requires": {
- "function-bind": "1.1.1"
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
- },
- "hash-base": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
- "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "hash.js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
- "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
- "requires": {
- "inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
- }
- },
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
- "requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
- }
- },
- "hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
- "requires": {
- "hash.js": "1.1.3",
- "minimalistic-assert": "1.0.0",
- "minimalistic-crypto-utils": "1.0.1"
- }
- },
- "hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
- },
- "home-or-tmp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
- "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
- "requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
- }
- },
- "hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg=="
- },
- "hpack.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
- "requires": {
- "inherits": "2.0.3",
- "obuf": "1.1.1",
- "readable-stream": "2.3.3",
- "wbuf": "1.7.2"
- }
- },
- "html-comment-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
- "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4="
- },
- "html-entities": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
- "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8="
- },
- "http-deceiver": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc="
- },
- "http-errors": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
- "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
- "requires": {
- "depd": "1.1.1",
- "inherits": "2.0.3",
- "setprototypeof": "1.0.3",
- "statuses": "1.3.1"
- },
- "dependencies": {
- "setprototypeof": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
- "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
- }
- }
- },
- "http-parser-js": {
- "version": "0.4.9",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz",
- "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE="
- },
- "http-proxy": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz",
- "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=",
- "requires": {
- "eventemitter3": "1.2.0",
- "requires-port": "1.0.0"
- }
- },
- "http-proxy-middleware": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
- "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
- "requires": {
- "http-proxy": "1.16.2",
- "is-glob": "3.1.0",
- "lodash": "4.17.4",
- "micromatch": "2.3.11"
- },
- "dependencies": {
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
- },
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "requires": {
- "is-extglob": "2.1.1"
- }
- }
- }
- },
- "http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
- "requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.4.1",
- "sshpk": "1.13.1"
- }
- },
- "https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
- },
- "iconv-lite": {
- "version": "0.4.19",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
- },
- "icss-replace-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
- "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0="
- },
- "icss-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
- "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
- "requires": {
- "postcss": "6.0.14"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "postcss": {
- "version": "6.0.14",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz",
- "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==",
- "requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "4.5.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "2.0.0"
- }
- }
- }
- },
- "ieee754": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
- "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q="
- },
- "import-local": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz",
- "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=",
- "requires": {
- "pkg-dir": "2.0.0",
- "resolve-cwd": "2.0.0"
- }
- },
- "in-publish": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
- "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E="
- },
- "indent-string": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
- "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
- "requires": {
- "repeating": "2.0.1"
- }
- },
- "indexes-of": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
- "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc="
- },
- "indexof": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
- "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "internal-ip": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz",
- "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=",
- "requires": {
- "meow": "3.7.0"
- }
- },
- "interpret": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
- "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
- },
- "invariant": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
- "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
- "requires": {
- "loose-envify": "1.3.1"
- }
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
- },
- "ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
- },
- "ipaddr.js": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
- "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
- },
- "is-absolute-url": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
- "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY="
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
- },
- "is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
- "requires": {
- "binary-extensions": "1.11.0"
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
- "requires": {
- "builtin-modules": "1.1.1"
- }
- },
- "is-callable": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
- "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI="
- },
- "is-date-object": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
- "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
- },
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
- },
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
- "requires": {
- "is-primitive": "2.0.0"
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "1.0.0"
- }
- },
- "is-my-json-valid": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz",
- "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==",
- "requires": {
- "generate-function": "2.0.0",
- "generate-object-property": "1.2.0",
- "jsonpointer": "4.0.1",
- "xtend": "4.0.1"
- }
- },
- "is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
- "requires": {
- "kind-of": "3.2.2"
- }
- },
- "is-path-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
- "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0="
- },
- "is-path-in-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
- "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
- "requires": {
- "is-path-inside": "1.0.1"
- }
- },
- "is-path-inside": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
- "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
- "requires": {
- "path-is-inside": "1.0.2"
- }
- },
- "is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
- },
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
- },
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
- },
- "is-property": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
- },
- "is-regex": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
- "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
- "requires": {
- "has": "1.0.1"
- }
- },
- "is-svg": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
- "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
- "requires": {
- "html-comment-regex": "1.1.1"
- }
- },
- "is-symbol": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
- "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI="
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
- },
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
- },
- "is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "requires": {
- "isarray": "1.0.0"
- }
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "js-base64": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz",
- "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA=="
- },
- "js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
- },
- "js-yaml": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
- "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
- "requires": {
- "argparse": "1.0.9",
- "esprima": "2.7.3"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "optional": true
- },
- "jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
- },
- "json-loader": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
- "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
- },
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
- },
- "json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "requires": {
- "jsonify": "0.0.0"
- }
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
- },
- "json3": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
- "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE="
- },
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
- },
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
- },
- "jsonpointer": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
- "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk="
- },
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "killable": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
- "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms="
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "1.1.6"
- }
- },
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
- },
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "requires": {
- "invert-kv": "1.0.0"
- }
- },
- "load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
- }
- },
- "loader-runner": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
- "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI="
- },
- "loader-utils": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
- "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
- "requires": {
- "big.js": "3.2.0",
- "emojis-list": "2.1.0",
- "json5": "0.5.1"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "requires": {
- "p-locate": "2.0.0",
- "path-exists": "3.0.0"
- },
- "dependencies": {
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
- }
- }
- },
- "lodash": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
- },
- "lodash.assign": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
- "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
- },
- "lodash.camelcase": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
- },
- "lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
- },
- "lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
- },
- "lodash.mergewith": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz",
- "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU="
- },
- "lodash.uniq": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
- },
- "loglevel": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz",
- "integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ="
- },
- "longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
- },
- "loose-envify": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
- "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
- "requires": {
- "js-tokens": "3.0.2"
- }
- },
- "loud-rejection": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
- "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
- "requires": {
- "currently-unhandled": "0.4.1",
- "signal-exit": "3.0.2"
- }
- },
- "lru-cache": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
- "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
- "requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
- }
- },
- "macaddress": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz",
- "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI="
- },
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
- },
- "math-expression-evaluator": {
- "version": "1.2.17",
- "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
- "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw="
- },
- "md5.js": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
- "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
- "requires": {
- "hash-base": "3.0.4",
- "inherits": "2.0.3"
- },
- "dependencies": {
- "hash-base": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
- "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
- "requires": {
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- }
- }
- },
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
- },
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
- "requires": {
- "errno": "0.1.4",
- "readable-stream": "2.3.3"
- }
- },
- "meow": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
- "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
- "requires": {
- "camelcase-keys": "2.1.0",
- "decamelize": "1.2.0",
- "loud-rejection": "1.6.0",
- "map-obj": "1.0.1",
- "minimist": "1.2.0",
- "normalize-package-data": "2.4.0",
- "object-assign": "4.1.1",
- "read-pkg-up": "1.0.1",
- "redent": "1.0.0",
- "trim-newlines": "1.0.0"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- }
- }
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
- }
- },
- "miller-rabin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
- "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
- "requires": {
- "bn.js": "4.11.8",
- "brorand": "1.1.0"
- }
- },
- "mime": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz",
- "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA="
- },
- "mime-db": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
- "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
- },
- "mime-types": {
- "version": "2.1.17",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
- "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
- "requires": {
- "mime-db": "1.30.0"
- }
- },
- "minimalistic-assert": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
- "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M="
- },
- "minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "multicast-dns": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.1.tgz",
- "integrity": "sha512-uV3/ckdsffHx9IrGQrx613mturMdMqQ06WTq+C09NsStJ9iNG6RcUWgPKs1Rfjy+idZT6tfQoXEusGNnEZhT3w==",
- "requires": {
- "dns-packet": "1.2.2",
- "thunky": "0.1.0"
- }
- },
- "multicast-dns-service-types": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
- "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE="
- },
- "nan": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
- "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo="
- },
- "negotiator": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
- "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
- },
- "node-forge": {
- "version": "0.6.33",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz",
- "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw="
- },
- "node-gyp": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
- "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
- "requires": {
- "fstream": "1.0.11",
- "glob": "7.1.2",
- "graceful-fs": "4.1.11",
- "minimatch": "3.0.4",
- "mkdirp": "0.5.1",
- "nopt": "3.0.6",
- "npmlog": "4.1.2",
- "osenv": "0.1.4",
- "request": "2.79.0",
- "rimraf": "2.6.2",
- "semver": "5.3.0",
- "tar": "2.2.1",
- "which": "1.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
- "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
- }
- }
- },
- "node-libs-browser": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
- "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
- "requires": {
- "assert": "1.4.1",
- "browserify-zlib": "0.2.0",
- "buffer": "4.9.1",
- "console-browserify": "1.1.0",
- "constants-browserify": "1.0.0",
- "crypto-browserify": "3.12.0",
- "domain-browser": "1.1.7",
- "events": "1.1.1",
- "https-browserify": "1.0.0",
- "os-browserify": "0.3.0",
- "path-browserify": "0.0.0",
- "process": "0.11.10",
- "punycode": "1.4.1",
- "querystring-es3": "0.2.1",
- "readable-stream": "2.3.3",
- "stream-browserify": "2.0.1",
- "stream-http": "2.7.2",
- "string_decoder": "1.0.3",
- "timers-browserify": "2.0.4",
- "tty-browserify": "0.0.0",
- "url": "0.11.0",
- "util": "0.10.3",
- "vm-browserify": "0.0.4"
- }
- },
- "node-sass": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz",
- "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==",
- "requires": {
- "async-foreach": "0.1.3",
- "chalk": "1.1.3",
- "cross-spawn": "3.0.1",
- "gaze": "1.1.2",
- "get-stdin": "4.0.1",
- "glob": "7.1.2",
- "in-publish": "2.0.0",
- "lodash.assign": "4.2.0",
- "lodash.clonedeep": "4.5.0",
- "lodash.mergewith": "4.6.0",
- "meow": "3.7.0",
- "mkdirp": "0.5.1",
- "nan": "2.8.0",
- "node-gyp": "3.6.2",
- "npmlog": "4.1.2",
- "request": "2.79.0",
- "sass-graph": "2.2.4",
- "stdout-stream": "1.4.0",
- "true-case-path": "1.0.2"
- }
- },
- "nopt": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
- "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
- "requires": {
- "abbrev": "1.1.1"
- }
- },
- "normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
- "requires": {
- "hosted-git-info": "2.5.0",
- "is-builtin-module": "1.0.0",
- "semver": "5.4.1",
- "validate-npm-package-license": "3.0.1"
- }
- },
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "requires": {
- "remove-trailing-separator": "1.1.0"
- }
- },
- "normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
- },
- "normalize-url": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
- "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
- "requires": {
- "object-assign": "4.1.1",
- "prepend-http": "1.0.4",
- "query-string": "4.3.4",
- "sort-keys": "1.1.2"
- }
- },
- "npmlog": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
- "requires": {
- "are-we-there-yet": "1.1.4",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
- }
- },
- "num2fraction": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
- "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4="
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
- },
- "oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "object-keys": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
- "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
- },
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
- "requires": {
- "for-own": "0.1.5",
- "is-extendable": "0.1.1"
- }
- },
- "obuf": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz",
- "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4="
- },
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "on-headers": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
- "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "opn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz",
- "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==",
- "requires": {
- "is-wsl": "1.1.0"
- }
- },
- "original": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz",
- "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=",
- "requires": {
- "url-parse": "1.0.5"
- },
- "dependencies": {
- "url-parse": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz",
- "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=",
- "requires": {
- "querystringify": "0.0.4",
- "requires-port": "1.0.0"
- }
- }
- }
- },
- "os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
- },
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "requires": {
- "lcid": "1.0.0"
- }
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
- },
- "osenv": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
- "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
- "requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
- }
- },
- "output-file-sync": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
- "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
- "requires": {
- "graceful-fs": "4.1.11",
- "mkdirp": "0.5.1",
- "object-assign": "4.1.1"
- }
- },
- "p-limit": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
- "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw="
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "requires": {
- "p-limit": "1.1.0"
- }
- },
- "p-map": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
- "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA=="
- },
- "pako": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
- "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg=="
- },
- "parse-asn1": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
- "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
- "requires": {
- "asn1.js": "4.9.2",
- "browserify-aes": "1.1.1",
- "create-hash": "1.1.3",
- "evp_bytestokey": "1.0.3",
- "pbkdf2": "3.0.14"
- }
- },
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
- "requires": {
- "glob-base": "0.3.0",
- "is-dotfile": "1.0.3",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1"
- }
- },
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "requires": {
- "error-ex": "1.3.1"
- }
- },
- "parseurl": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
- "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
- },
- "path": {
- "version": "0.12.7",
- "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
- "requires": {
- "process": "0.11.10",
- "util": "0.10.3"
- }
- },
- "path-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
- "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "requires": {
- "pinkie-promise": "2.0.1"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
- },
- "path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
- },
- "path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "pbkdf2": {
- "version": "3.0.14",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
- "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
- "requires": {
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
- "ripemd160": "2.0.1",
- "safe-buffer": "5.1.1",
- "sha.js": "2.4.9"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "requires": {
- "pinkie": "2.0.4"
- }
- },
- "pkg-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
- "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
- "requires": {
- "find-up": "2.1.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
- "locate-path": "2.0.0"
- }
- }
- }
- },
- "portfinder": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
- "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=",
- "requires": {
- "async": "1.5.2",
- "debug": "2.6.9",
- "mkdirp": "0.5.1"
- },
- "dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
- }
- }
- },
- "postcss": {
- "version": "5.2.18",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
- "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
- "requires": {
- "chalk": "1.1.3",
- "js-base64": "2.4.0",
- "source-map": "0.5.7",
- "supports-color": "3.2.3"
- },
- "dependencies": {
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "requires": {
- "has-flag": "1.0.0"
- }
- }
- }
- },
- "postcss-calc": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
- "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
- "requires": {
- "postcss": "5.2.18",
- "postcss-message-helpers": "2.0.0",
- "reduce-css-calc": "1.3.0"
- }
- },
- "postcss-colormin": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
- "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
- "requires": {
- "colormin": "1.1.2",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-convert-values": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
- "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
- "requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-discard-comments": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
- "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-discard-duplicates": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
- "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-discard-empty": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
- "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-discard-overridden": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
- "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-discard-unused": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
- "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
- "requires": {
- "postcss": "5.2.18",
- "uniqs": "2.0.0"
- }
- },
- "postcss-filter-plugins": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
- "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
- "requires": {
- "postcss": "5.2.18",
- "uniqid": "4.1.1"
- }
- },
- "postcss-merge-idents": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
- "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
- "requires": {
- "has": "1.0.1",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-merge-longhand": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
- "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-merge-rules": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
- "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
- "requires": {
- "browserslist": "1.7.7",
- "caniuse-api": "1.6.1",
- "postcss": "5.2.18",
- "postcss-selector-parser": "2.2.3",
- "vendors": "1.0.1"
- }
- },
- "postcss-message-helpers": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
- "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4="
- },
- "postcss-minify-font-values": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
- "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
- "requires": {
- "object-assign": "4.1.1",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-minify-gradients": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
- "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
- "requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-minify-params": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
- "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
- "requires": {
- "alphanum-sort": "1.0.2",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0",
- "uniqs": "2.0.0"
- }
- },
- "postcss-minify-selectors": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
- "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
- "requires": {
- "alphanum-sort": "1.0.2",
- "has": "1.0.1",
- "postcss": "5.2.18",
- "postcss-selector-parser": "2.2.3"
- }
- },
- "postcss-modules-extract-imports": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
- "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
- "requires": {
- "postcss": "6.0.14"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "postcss": {
- "version": "6.0.14",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz",
- "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==",
- "requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "4.5.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "2.0.0"
- }
- }
- }
- },
- "postcss-modules-local-by-default": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
- "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
- "requires": {
- "css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.14"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "postcss": {
- "version": "6.0.14",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz",
- "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==",
- "requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "4.5.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "2.0.0"
- }
- }
- }
- },
- "postcss-modules-scope": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
- "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
- "requires": {
- "css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.14"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "postcss": {
- "version": "6.0.14",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz",
- "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==",
- "requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "4.5.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "2.0.0"
- }
- }
- }
- },
- "postcss-modules-values": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
- "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
- "requires": {
- "icss-replace-symbols": "1.1.0",
- "postcss": "6.0.14"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "postcss": {
- "version": "6.0.14",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz",
- "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==",
- "requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "4.5.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "2.0.0"
- }
- }
- }
- },
- "postcss-normalize-charset": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
- "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-normalize-url": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
- "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
- "requires": {
- "is-absolute-url": "2.1.0",
- "normalize-url": "1.9.1",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-ordered-values": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
- "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
- "requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-reduce-idents": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
- "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
- "requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-reduce-initial": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
- "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-reduce-transforms": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
- "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
- "requires": {
- "has": "1.0.1",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-selector-parser": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
- "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
- "requires": {
- "flatten": "1.0.2",
- "indexes-of": "1.0.1",
- "uniq": "1.0.1"
- }
- },
- "postcss-svgo": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
- "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
- "requires": {
- "is-svg": "2.1.0",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0",
- "svgo": "0.7.2"
- }
- },
- "postcss-unique-selectors": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
- "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
- "requires": {
- "alphanum-sort": "1.0.2",
- "postcss": "5.2.18",
- "uniqs": "2.0.0"
- }
- },
- "postcss-value-parser": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
- "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU="
- },
- "postcss-zindex": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
- "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
- "requires": {
- "has": "1.0.1",
- "postcss": "5.2.18",
- "uniqs": "2.0.0"
- }
- },
- "prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
- },
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
- },
- "private": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
- "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
- },
- "progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="
- },
- "proxy-addr": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
- "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
- "requires": {
- "forwarded": "0.1.2",
- "ipaddr.js": "1.5.2"
- }
- },
- "prr": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
- "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo="
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
- },
- "public-encrypt": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
- "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
- "requires": {
- "bn.js": "4.11.8",
- "browserify-rsa": "4.0.1",
- "create-hash": "1.1.3",
- "parse-asn1": "5.1.0",
- "randombytes": "2.0.5"
- }
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "q": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
- "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
- },
- "qs": {
- "version": "6.3.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
- "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw="
- },
- "query-string": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
- "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
- "requires": {
- "object-assign": "4.1.1",
- "strict-uri-encode": "1.1.0"
- }
- },
- "querystring": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
- },
- "querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
- },
- "querystringify": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz",
- "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw="
- },
- "randomatic": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
- "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
- "requires": {
- "is-number": "3.0.0",
- "kind-of": "4.0.0"
- },
- "dependencies": {
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "1.1.6"
- }
- }
- }
- },
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "requires": {
- "is-buffer": "1.1.6"
- }
- }
- }
- },
- "randombytes": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz",
- "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==",
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "randomfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz",
- "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==",
- "requires": {
- "randombytes": "2.0.5",
- "safe-buffer": "5.1.1"
- }
- },
- "range-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
- "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
- },
- "raw-body": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
- "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
- "requires": {
- "bytes": "3.0.0",
- "http-errors": "1.6.2",
- "iconv-lite": "0.4.19",
- "unpipe": "1.0.0"
- }
- },
- "read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
- "requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
- }
- },
- "read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
- }
- },
- "readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
- }
- },
- "readdirp": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
- "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
- "requires": {
- "graceful-fs": "4.1.11",
- "minimatch": "3.0.4",
- "readable-stream": "2.3.3",
- "set-immediate-shim": "1.0.1"
- }
- },
- "redent": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
- "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
- "requires": {
- "indent-string": "2.1.0",
- "strip-indent": "1.0.1"
- }
- },
- "reduce-css-calc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
- "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
- "requires": {
- "balanced-match": "0.4.2",
- "math-expression-evaluator": "1.2.17",
- "reduce-function-call": "1.0.2"
- },
- "dependencies": {
- "balanced-match": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
- }
- }
- },
- "reduce-function-call": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
- "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
- "requires": {
- "balanced-match": "0.4.2"
- },
- "dependencies": {
- "balanced-match": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
- }
- }
- },
- "regenerate": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
- "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg=="
- },
- "regenerator-runtime": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
- "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A=="
- },
- "regenerator-transform": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
- "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "private": "0.1.8"
- }
- },
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
- "requires": {
- "is-equal-shallow": "0.1.3"
- }
- },
- "regexpu-core": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
- "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
- "requires": {
- "regenerate": "1.3.3",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
- }
- },
- "regjsgen": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
- "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc="
- },
- "regjsparser": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
- "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
- "requires": {
- "jsesc": "0.5.0"
- }
- },
- "remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
- },
- "repeat-element": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
- "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
- },
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
- },
- "repeating": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
- "requires": {
- "is-finite": "1.0.2"
- }
- },
- "request": {
- "version": "2.79.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
- "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
- "requires": {
- "aws-sign2": "0.6.0",
- "aws4": "1.6.0",
- "caseless": "0.11.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.1.4",
- "har-validator": "2.0.6",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
- "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",
- "qs": "6.3.2",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.3",
- "tunnel-agent": "0.4.3",
- "uuid": "3.1.0"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
- },
- "require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
- },
- "requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
- },
- "resolve-cwd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
- "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
- "requires": {
- "resolve-from": "3.0.0"
- }
- },
- "resolve-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
- },
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "requires": {
- "align-text": "0.1.4"
- }
- },
- "rimraf": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
- "requires": {
- "glob": "7.1.2"
- }
- },
- "ripemd160": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
- "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
- "requires": {
- "hash-base": "2.0.2",
- "inherits": "2.0.3"
- }
- },
- "safe-buffer": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
- },
- "sass-graph": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
- "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
- "requires": {
- "glob": "7.1.2",
- "lodash": "4.17.4",
- "scss-tokenizer": "0.2.3",
- "yargs": "7.1.0"
- }
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "schema-utils": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
- "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
- "requires": {
- "ajv": "5.5.1"
- }
- },
- "scss-tokenizer": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
- "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
- "requires": {
- "js-base64": "2.4.0",
- "source-map": "0.4.4"
- },
- "dependencies": {
- "source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "requires": {
- "amdefine": "1.0.1"
- }
- }
- }
- },
- "select-hose": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo="
- },
- "selfsigned": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz",
- "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=",
- "requires": {
- "node-forge": "0.6.33"
- }
- },
- "semver": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
- },
- "send": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
- "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
- "requires": {
- "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"
- },
- "dependencies": {
- "mime": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
- "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
- }
- }
- },
- "serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
- "requires": {
- "accepts": "1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "1.0.3",
- "http-errors": "1.6.2",
- "mime-types": "2.1.17",
- "parseurl": "1.3.2"
- }
- },
- "serve-static": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
- "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
- "requires": {
- "encodeurl": "1.0.1",
- "escape-html": "1.0.3",
- "parseurl": "1.3.2",
- "send": "0.16.1"
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
- },
- "set-immediate-shim": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
- "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
- },
- "setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
- },
- "setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
- },
- "sha.js": {
- "version": "2.4.9",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz",
- "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==",
- "requires": {
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- },
- "signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
- },
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
- },
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "sockjs": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz",
- "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=",
- "requires": {
- "faye-websocket": "0.10.0",
- "uuid": "2.0.3"
- },
- "dependencies": {
- "uuid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
- }
- }
- },
- "sockjs-client": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz",
- "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
- "requires": {
- "debug": "2.6.9",
- "eventsource": "0.1.6",
- "faye-websocket": "0.11.1",
- "inherits": "2.0.3",
- "json3": "3.3.2",
- "url-parse": "1.2.0"
- },
- "dependencies": {
- "faye-websocket": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
- "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
- "requires": {
- "websocket-driver": "0.7.0"
- }
- }
- }
- },
- "sort-keys": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
- "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
- "requires": {
- "is-plain-obj": "1.1.0"
- }
- },
- "source-list-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
- "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A=="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- },
- "source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
- "requires": {
- "source-map": "0.5.7"
- }
- },
- "spdx-correct": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
- "requires": {
- "spdx-license-ids": "1.2.2"
- }
- },
- "spdx-expression-parse": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
- "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
- },
- "spdx-license-ids": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
- "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
- },
- "spdy": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
- "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
- "requires": {
- "debug": "2.6.9",
- "handle-thing": "1.2.5",
- "http-deceiver": "1.2.7",
- "safe-buffer": "5.1.1",
- "select-hose": "2.0.0",
- "spdy-transport": "2.0.20"
- }
- },
- "spdy-transport": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz",
- "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=",
- "requires": {
- "debug": "2.6.9",
- "detect-node": "2.0.3",
- "hpack.js": "2.1.6",
- "obuf": "1.1.1",
- "readable-stream": "2.3.3",
- "safe-buffer": "5.1.1",
- "wbuf": "1.7.2"
- }
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- },
- "sshpk": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
- "requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.1",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jsbn": "0.1.1",
- "tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "statuses": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
- "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
- },
- "stdout-stream": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
- "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
- "requires": {
- "readable-stream": "2.3.3"
- }
- },
- "stream-browserify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
- "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.3"
- }
- },
- "stream-http": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
- "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==",
- "requires": {
- "builtin-status-codes": "3.0.0",
- "inherits": "2.0.3",
- "readable-stream": "2.3.3",
- "to-arraybuffer": "1.0.1",
- "xtend": "4.0.1"
- }
- },
- "strict-uri-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "requires": {
- "is-utf8": "0.2.1"
- }
- },
- "strip-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
- "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
- "requires": {
- "get-stdin": "4.0.1"
- }
- },
- "style-loader": {
- "version": "0.18.2",
- "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz",
- "integrity": "sha512-WPpJPZGUxWYHWIUMNNOYqql7zh85zGmr84FdTVWq52WTIkqlW9xSxD3QYWi/T31cqn9UNSsietVEgGn2aaSCzw==",
- "requires": {
- "loader-utils": "1.1.0",
- "schema-utils": "0.3.0"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
- },
- "svgo": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
- "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
- "requires": {
- "coa": "1.0.4",
- "colors": "1.1.2",
- "csso": "2.3.2",
- "js-yaml": "3.7.0",
- "mkdirp": "0.5.1",
- "sax": "1.2.4",
- "whet.extend": "0.9.9"
- }
- },
- "tapable": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
- "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI="
- },
- "tar": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
- "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
- "requires": {
- "block-stream": "0.0.9",
- "fstream": "1.0.11",
- "inherits": "2.0.3"
- }
- },
- "thunky": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz",
- "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4="
- },
- "time-stamp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz",
- "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c="
- },
- "timers-browserify": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz",
- "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==",
- "requires": {
- "setimmediate": "1.0.5"
- }
- },
- "to-arraybuffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
- },
- "to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
- },
- "tough-cookie": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
- "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
- "requires": {
- "punycode": "1.4.1"
- }
- },
- "trim-newlines": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
- },
- "trim-right": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
- "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
- },
- "true-case-path": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz",
- "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=",
- "requires": {
- "glob": "6.0.4"
- },
- "dependencies": {
- "glob": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
- "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
- "requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- }
- }
- },
- "tty-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
- },
- "tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "optional": true
- },
- "type-is": {
- "version": "1.6.15",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
- "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "2.1.17"
- }
- },
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "requires": {
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
- },
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "requires": {
- "center-align": "0.1.3",
- "right-align": "0.1.3",
- "wordwrap": "0.0.2"
- }
- },
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "requires": {
- "camelcase": "1.2.1",
- "cliui": "2.1.0",
- "decamelize": "1.2.0",
- "window-size": "0.1.0"
- }
- }
- }
- },
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "optional": true
- },
- "uniq": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
- "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8="
- },
- "uniqid": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
- "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
- "requires": {
- "macaddress": "0.2.8"
- }
- },
- "uniqs": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
- "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI="
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
- },
- "url": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
- "requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- },
- "dependencies": {
- "punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
- }
- }
- },
- "url-loader": {
- "version": "0.5.9",
- "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz",
- "integrity": "sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q==",
- "requires": {
- "loader-utils": "1.1.0",
- "mime": "1.3.6"
- }
- },
- "url-parse": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",
- "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==",
- "requires": {
- "querystringify": "1.0.0",
- "requires-port": "1.0.0"
- },
- "dependencies": {
- "querystringify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz",
- "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs="
- }
- }
- },
- "user-home": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
- "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
- },
- "util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "requires": {
- "inherits": "2.0.1"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
- }
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
- },
- "uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
- },
- "v8flags": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
- "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
- "requires": {
- "user-home": "1.1.1"
- }
- },
- "validate-npm-package-license": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
- "requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.4"
- }
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
- },
- "vendors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
- "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI="
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "requires": {
- "assert-plus": "1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "1.3.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "vm-browserify": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
- "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
- "requires": {
- "indexof": "0.0.1"
- }
- },
- "watchpack": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz",
- "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=",
- "requires": {
- "async": "2.6.0",
- "chokidar": "1.7.0",
- "graceful-fs": "4.1.11"
- }
- },
- "wbuf": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz",
- "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=",
- "requires": {
- "minimalistic-assert": "1.0.0"
- }
- },
- "webpack": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.7.0.tgz",
- "integrity": "sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg==",
- "requires": {
- "acorn": "5.2.1",
- "acorn-dynamic-import": "2.0.2",
- "ajv": "4.11.8",
- "ajv-keywords": "1.5.1",
- "async": "2.6.0",
- "enhanced-resolve": "3.4.1",
- "interpret": "1.1.0",
- "json-loader": "0.5.7",
- "json5": "0.5.1",
- "loader-runner": "2.3.0",
- "loader-utils": "0.2.17",
- "memory-fs": "0.4.1",
- "mkdirp": "0.5.1",
- "node-libs-browser": "2.1.0",
- "source-map": "0.5.7",
- "supports-color": "3.2.3",
- "tapable": "0.2.8",
- "uglify-js": "2.8.29",
- "watchpack": "1.4.0",
- "webpack-sources": "1.1.0",
- "yargs": "6.6.0"
- },
- "dependencies": {
- "ajv": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
- "requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
- }
- },
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
- },
- "loader-utils": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
- "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
- "requires": {
- "big.js": "3.2.0",
- "emojis-list": "2.1.0",
- "json5": "0.5.1",
- "object-assign": "4.1.1"
- }
- },
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "requires": {
- "has-flag": "1.0.0"
- }
- },
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
- "requires": {
- "camelcase": "3.0.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "4.2.1"
- }
- },
- "yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "requires": {
- "camelcase": "3.0.0"
- }
- }
- }
- },
- "webpack-dev-middleware": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz",
- "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==",
- "requires": {
- "memory-fs": "0.4.1",
- "mime": "1.6.0",
- "path-is-absolute": "1.0.1",
- "range-parser": "1.2.0",
- "time-stamp": "2.0.0"
- },
- "dependencies": {
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- }
- }
- },
- "webpack-dev-server": {
- "version": "2.9.7",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.7.tgz",
- "integrity": "sha512-Pu7uoQFgQj5RE5wmlfkpYSzihMKxulwEuO2xCsaMnAnyRSApwoVi3B8WCm9XbigyWTHaIMzYGkB90Vr6leAeTQ==",
- "requires": {
- "ansi-html": "0.0.7",
- "array-includes": "3.0.3",
- "bonjour": "3.5.0",
- "chokidar": "1.7.0",
- "compression": "1.7.1",
- "connect-history-api-fallback": "1.5.0",
- "debug": "3.1.0",
- "del": "3.0.0",
- "express": "4.16.2",
- "html-entities": "1.2.1",
- "http-proxy-middleware": "0.17.4",
- "import-local": "0.1.1",
- "internal-ip": "1.2.0",
- "ip": "1.1.5",
- "killable": "1.0.0",
- "loglevel": "1.6.0",
- "opn": "5.1.0",
- "portfinder": "1.0.13",
- "selfsigned": "1.10.1",
- "serve-index": "1.9.1",
- "sockjs": "0.3.18",
- "sockjs-client": "1.1.4",
- "spdy": "3.4.7",
- "strip-ansi": "3.0.1",
- "supports-color": "4.5.0",
- "webpack-dev-middleware": "1.12.2",
- "yargs": "6.6.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "2.0.0"
- }
- },
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
- "requires": {
- "camelcase": "3.0.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "4.2.1"
- }
- },
- "yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "requires": {
- "camelcase": "3.0.0"
- }
- }
- }
- },
- "webpack-sources": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
- "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
- "requires": {
- "source-list-map": "2.0.0",
- "source-map": "0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- },
- "websocket-driver": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
- "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
- "requires": {
- "http-parser-js": "0.4.9",
- "websocket-extensions": "0.1.3"
- }
- },
- "websocket-extensions": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
- "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg=="
- },
- "whet.extend": {
- "version": "0.9.9",
- "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
- "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE="
- },
- "which": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
- "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
- "requires": {
- "isexe": "2.0.0"
- }
- },
- "which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
- },
- "wide-align": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
- "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
- "requires": {
- "string-width": "1.0.2"
- }
- },
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
- },
- "wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
- },
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- },
- "yargs": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
- "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
- "requires": {
- "camelcase": "3.0.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "5.0.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
- }
- }
- },
- "yargs-parser": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
- "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
- "requires": {
- "camelcase": "3.0.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
- }
- }
- }
- }
-}
diff --git a/docs/source/404.html.haml b/docs/source/404.html.haml
new file mode 100644
index 00000000..5e11abd9
--- /dev/null
+++ b/docs/source/404.html.haml
@@ -0,0 +1,10 @@
+---
+layout: 404.html
+---
+
+.panel-header.text-center.color-white
+ .relative-container-illus-alien
+ .spacer32
+ %h1.color-bunting Error 404
+ %h2.text-muted The page you requested was not found.
+ .spacer64
\ No newline at end of file
diff --git a/docs/fonts/algolia-website-iconfont.eot b/docs/source/docsearch/assets/fonts/algolia-website-iconfont.eot
similarity index 100%
rename from docs/fonts/algolia-website-iconfont.eot
rename to docs/source/docsearch/assets/fonts/algolia-website-iconfont.eot
diff --git a/docs/fonts/algolia-website-iconfont.svg b/docs/source/docsearch/assets/fonts/algolia-website-iconfont.svg
similarity index 100%
rename from docs/fonts/algolia-website-iconfont.svg
rename to docs/source/docsearch/assets/fonts/algolia-website-iconfont.svg
diff --git a/docs/fonts/algolia-website-iconfont.ttf b/docs/source/docsearch/assets/fonts/algolia-website-iconfont.ttf
similarity index 100%
rename from docs/fonts/algolia-website-iconfont.ttf
rename to docs/source/docsearch/assets/fonts/algolia-website-iconfont.ttf
diff --git a/docs/fonts/algolia-website-iconfont.woff b/docs/source/docsearch/assets/fonts/algolia-website-iconfont.woff
similarity index 100%
rename from docs/fonts/algolia-website-iconfont.woff
rename to docs/source/docsearch/assets/fonts/algolia-website-iconfont.woff
diff --git a/docs/img/algolia-logo.svg b/docs/source/docsearch/assets/images/algolia-logo.svg
similarity index 100%
rename from docs/img/algolia-logo.svg
rename to docs/source/docsearch/assets/images/algolia-logo.svg
diff --git a/docs/img/background_footer.svg b/docs/source/docsearch/assets/images/background_footer.svg
similarity index 100%
rename from docs/img/background_footer.svg
rename to docs/source/docsearch/assets/images/background_footer.svg
diff --git a/docs/img/community-badge.svg b/docs/source/docsearch/assets/images/community-badge.svg
similarity index 100%
rename from docs/img/community-badge.svg
rename to docs/source/docsearch/assets/images/community-badge.svg
diff --git a/docs/img/default-colorscheme.png b/docs/source/docsearch/assets/images/default-colorscheme.png
similarity index 100%
rename from docs/img/default-colorscheme.png
rename to docs/source/docsearch/assets/images/default-colorscheme.png
diff --git a/docs/img/docsearch-logo-horizontal_dark.svg b/docs/source/docsearch/assets/images/docsearch-logo-horizontal_dark.svg
similarity index 100%
rename from docs/img/docsearch-logo-horizontal_dark.svg
rename to docs/source/docsearch/assets/images/docsearch-logo-horizontal_dark.svg
diff --git a/docs/img/docsearch-logo-horizontal_light.svg b/docs/source/docsearch/assets/images/docsearch-logo-horizontal_light.svg
similarity index 100%
rename from docs/img/docsearch-logo-horizontal_light.svg
rename to docs/source/docsearch/assets/images/docsearch-logo-horizontal_light.svg
diff --git a/docs/img/docsearch-logo-vertical_dark.svg b/docs/source/docsearch/assets/images/docsearch-logo-vertical_dark.svg
similarity index 100%
rename from docs/img/docsearch-logo-vertical_dark.svg
rename to docs/source/docsearch/assets/images/docsearch-logo-vertical_dark.svg
diff --git a/docs/img/docsearch-logo-vertical_light.svg b/docs/source/docsearch/assets/images/docsearch-logo-vertical_light.svg
similarity index 100%
rename from docs/img/docsearch-logo-vertical_light.svg
rename to docs/source/docsearch/assets/images/docsearch-logo-vertical_light.svg
diff --git a/docs/img/docsearch-social.png b/docs/source/docsearch/assets/images/docsearch-social.png
similarity index 100%
rename from docs/img/docsearch-social.png
rename to docs/source/docsearch/assets/images/docsearch-social.png
diff --git a/docs/img/favicon.ico b/docs/source/docsearch/assets/images/favicon.ico
similarity index 100%
rename from docs/img/favicon.ico
rename to docs/source/docsearch/assets/images/favicon.ico
diff --git a/docs/img/favicon.png b/docs/source/docsearch/assets/images/favicon.png
similarity index 100%
rename from docs/img/favicon.png
rename to docs/source/docsearch/assets/images/favicon.png
diff --git a/docs/img/header-bg.jpg b/docs/source/docsearch/assets/images/header-bg.jpg
similarity index 100%
rename from docs/img/header-bg.jpg
rename to docs/source/docsearch/assets/images/header-bg.jpg
diff --git a/docs/img/icon-arrow-pipe.svg b/docs/source/docsearch/assets/images/icon-arrow-pipe.svg
similarity index 100%
rename from docs/img/icon-arrow-pipe.svg
rename to docs/source/docsearch/assets/images/icon-arrow-pipe.svg
diff --git a/docs/img/icon-github.svg b/docs/source/docsearch/assets/images/icon-github.svg
similarity index 100%
rename from docs/img/icon-github.svg
rename to docs/source/docsearch/assets/images/icon-github.svg
diff --git a/docs/img/icon-heart-dark.svg b/docs/source/docsearch/assets/images/icon-heart-dark.svg
similarity index 100%
rename from docs/img/icon-heart-dark.svg
rename to docs/source/docsearch/assets/images/icon-heart-dark.svg
diff --git a/docs/img/icon-heart-light.svg b/docs/source/docsearch/assets/images/icon-heart-light.svg
similarity index 100%
rename from docs/img/icon-heart-light.svg
rename to docs/source/docsearch/assets/images/icon-heart-light.svg
diff --git a/docs/img/icon-page-doc.svg b/docs/source/docsearch/assets/images/icon-page-doc.svg
similarity index 100%
rename from docs/img/icon-page-doc.svg
rename to docs/source/docsearch/assets/images/icon-page-doc.svg
diff --git a/docs/img/icon-search-white.svg b/docs/source/docsearch/assets/images/icon-search-white.svg
similarity index 100%
rename from docs/img/icon-search-white.svg
rename to docs/source/docsearch/assets/images/icon-search-white.svg
diff --git a/docs/img/illus-howitworks.jpg b/docs/source/docsearch/assets/images/illus-howitworks.jpg
similarity index 100%
rename from docs/img/illus-howitworks.jpg
rename to docs/source/docsearch/assets/images/illus-howitworks.jpg
diff --git a/docs/img/illus-howitworks.svg b/docs/source/docsearch/assets/images/illus-howitworks.svg
similarity index 100%
rename from docs/img/illus-howitworks.svg
rename to docs/source/docsearch/assets/images/illus-howitworks.svg
diff --git a/docs/img/illus-index.svg b/docs/source/docsearch/assets/images/illus-index.svg
similarity index 100%
rename from docs/img/illus-index.svg
rename to docs/source/docsearch/assets/images/illus-index.svg
diff --git a/docs/img/logo-algolia-dark.png b/docs/source/docsearch/assets/images/logo-algolia-dark.png
similarity index 100%
rename from docs/img/logo-algolia-dark.png
rename to docs/source/docsearch/assets/images/logo-algolia-dark.png
diff --git a/docs/img/logo-community-inline-dark.svg b/docs/source/docsearch/assets/images/logo-community-inline-dark.svg
similarity index 100%
rename from docs/img/logo-community-inline-dark.svg
rename to docs/source/docsearch/assets/images/logo-community-inline-dark.svg
diff --git a/docs/img/logo-community.svg b/docs/source/docsearch/assets/images/logo-community.svg
similarity index 100%
rename from docs/img/logo-community.svg
rename to docs/source/docsearch/assets/images/logo-community.svg
diff --git a/docs/img/logo-docsearch.svg b/docs/source/docsearch/assets/images/logo-docsearch.svg
similarity index 100%
rename from docs/img/logo-docsearch.svg
rename to docs/source/docsearch/assets/images/logo-docsearch.svg
diff --git a/docs/img/mask.png b/docs/source/docsearch/assets/images/mask.png
similarity index 100%
rename from docs/img/mask.png
rename to docs/source/docsearch/assets/images/mask.png
diff --git a/docs/img/screens/screen_akka.png b/docs/source/docsearch/assets/images/screens/screen_akka.png
similarity index 100%
rename from docs/img/screens/screen_akka.png
rename to docs/source/docsearch/assets/images/screens/screen_akka.png
diff --git a/docs/img/screens/screen_bootstrap.png b/docs/source/docsearch/assets/images/screens/screen_bootstrap.png
similarity index 100%
rename from docs/img/screens/screen_bootstrap.png
rename to docs/source/docsearch/assets/images/screens/screen_bootstrap.png
diff --git a/docs/img/screens/screen_laravel.png b/docs/source/docsearch/assets/images/screens/screen_laravel.png
similarity index 100%
rename from docs/img/screens/screen_laravel.png
rename to docs/source/docsearch/assets/images/screens/screen_laravel.png
diff --git a/docs/img/screens/screen_middleman.png b/docs/source/docsearch/assets/images/screens/screen_middleman.png
similarity index 100%
rename from docs/img/screens/screen_middleman.png
rename to docs/source/docsearch/assets/images/screens/screen_middleman.png
diff --git a/docs/img/screens/screen_react.png b/docs/source/docsearch/assets/images/screens/screen_react.png
similarity index 100%
rename from docs/img/screens/screen_react.png
rename to docs/source/docsearch/assets/images/screens/screen_react.png
diff --git a/docs/img/screens/screen_stripe.png b/docs/source/docsearch/assets/images/screens/screen_stripe.png
similarity index 100%
rename from docs/img/screens/screen_stripe.png
rename to docs/source/docsearch/assets/images/screens/screen_stripe.png
diff --git a/docs/img/screens/screen_vue.png b/docs/source/docsearch/assets/images/screens/screen_vue.png
similarity index 100%
rename from docs/img/screens/screen_vue.png
rename to docs/source/docsearch/assets/images/screens/screen_vue.png
diff --git a/docs/img/showcase/example-ant-design.gif b/docs/source/docsearch/assets/images/showcase/example-ant-design.gif
similarity index 100%
rename from docs/img/showcase/example-ant-design.gif
rename to docs/source/docsearch/assets/images/showcase/example-ant-design.gif
diff --git a/docs/img/showcase/example-apiary.gif b/docs/source/docsearch/assets/images/showcase/example-apiary.gif
similarity index 100%
rename from docs/img/showcase/example-apiary.gif
rename to docs/source/docsearch/assets/images/showcase/example-apiary.gif
diff --git a/docs/img/showcase/example-apiplatform.gif b/docs/source/docsearch/assets/images/showcase/example-apiplatform.gif
similarity index 100%
rename from docs/img/showcase/example-apiplatform.gif
rename to docs/source/docsearch/assets/images/showcase/example-apiplatform.gif
diff --git a/docs/img/showcase/example-babel.gif b/docs/source/docsearch/assets/images/showcase/example-babel.gif
similarity index 100%
rename from docs/img/showcase/example-babel.gif
rename to docs/source/docsearch/assets/images/showcase/example-babel.gif
diff --git a/docs/img/showcase/example-batch.gif b/docs/source/docsearch/assets/images/showcase/example-batch.gif
similarity index 100%
rename from docs/img/showcase/example-batch.gif
rename to docs/source/docsearch/assets/images/showcase/example-batch.gif
diff --git a/docs/img/showcase/example-bootstrap.gif b/docs/source/docsearch/assets/images/showcase/example-bootstrap.gif
similarity index 100%
rename from docs/img/showcase/example-bootstrap.gif
rename to docs/source/docsearch/assets/images/showcase/example-bootstrap.gif
diff --git a/docs/img/showcase/example-cordova.gif b/docs/source/docsearch/assets/images/showcase/example-cordova.gif
similarity index 100%
rename from docs/img/showcase/example-cordova.gif
rename to docs/source/docsearch/assets/images/showcase/example-cordova.gif
diff --git a/docs/img/showcase/example-docusaurus.gif b/docs/source/docsearch/assets/images/showcase/example-docusaurus.gif
similarity index 100%
rename from docs/img/showcase/example-docusaurus.gif
rename to docs/source/docsearch/assets/images/showcase/example-docusaurus.gif
diff --git a/docs/img/showcase/example-echo.gif b/docs/source/docsearch/assets/images/showcase/example-echo.gif
similarity index 100%
rename from docs/img/showcase/example-echo.gif
rename to docs/source/docsearch/assets/images/showcase/example-echo.gif
diff --git a/docs/img/showcase/example-eslint.gif b/docs/source/docsearch/assets/images/showcase/example-eslint.gif
similarity index 100%
rename from docs/img/showcase/example-eslint.gif
rename to docs/source/docsearch/assets/images/showcase/example-eslint.gif
diff --git a/docs/img/showcase/example-fastlane.gif b/docs/source/docsearch/assets/images/showcase/example-fastlane.gif
similarity index 100%
rename from docs/img/showcase/example-fastlane.gif
rename to docs/source/docsearch/assets/images/showcase/example-fastlane.gif
diff --git a/docs/img/showcase/example-flow.gif b/docs/source/docsearch/assets/images/showcase/example-flow.gif
similarity index 100%
rename from docs/img/showcase/example-flow.gif
rename to docs/source/docsearch/assets/images/showcase/example-flow.gif
diff --git a/docs/img/showcase/example-gatsby.gif b/docs/source/docsearch/assets/images/showcase/example-gatsby.gif
similarity index 100%
rename from docs/img/showcase/example-gatsby.gif
rename to docs/source/docsearch/assets/images/showcase/example-gatsby.gif
diff --git a/docs/img/showcase/example-gitlab.gif b/docs/source/docsearch/assets/images/showcase/example-gitlab.gif
similarity index 100%
rename from docs/img/showcase/example-gitlab.gif
rename to docs/source/docsearch/assets/images/showcase/example-gitlab.gif
diff --git a/docs/img/showcase/example-hugo.gif b/docs/source/docsearch/assets/images/showcase/example-hugo.gif
similarity index 100%
rename from docs/img/showcase/example-hugo.gif
rename to docs/source/docsearch/assets/images/showcase/example-hugo.gif
diff --git a/docs/img/showcase/example-influxdata.gif b/docs/source/docsearch/assets/images/showcase/example-influxdata.gif
similarity index 100%
rename from docs/img/showcase/example-influxdata.gif
rename to docs/source/docsearch/assets/images/showcase/example-influxdata.gif
diff --git a/docs/img/showcase/example-jekyll.gif b/docs/source/docsearch/assets/images/showcase/example-jekyll.gif
similarity index 100%
rename from docs/img/showcase/example-jekyll.gif
rename to docs/source/docsearch/assets/images/showcase/example-jekyll.gif
diff --git a/docs/img/showcase/example-mailjet.gif b/docs/source/docsearch/assets/images/showcase/example-mailjet.gif
similarity index 100%
rename from docs/img/showcase/example-mailjet.gif
rename to docs/source/docsearch/assets/images/showcase/example-mailjet.gif
diff --git a/docs/img/showcase/example-marionettejs.gif b/docs/source/docsearch/assets/images/showcase/example-marionettejs.gif
similarity index 100%
rename from docs/img/showcase/example-marionettejs.gif
rename to docs/source/docsearch/assets/images/showcase/example-marionettejs.gif
diff --git a/docs/img/showcase/example-momentjs.gif b/docs/source/docsearch/assets/images/showcase/example-momentjs.gif
similarity index 100%
rename from docs/img/showcase/example-momentjs.gif
rename to docs/source/docsearch/assets/images/showcase/example-momentjs.gif
diff --git a/docs/img/showcase/example-pm2.gif b/docs/source/docsearch/assets/images/showcase/example-pm2.gif
similarity index 100%
rename from docs/img/showcase/example-pm2.gif
rename to docs/source/docsearch/assets/images/showcase/example-pm2.gif
diff --git a/docs/img/showcase/example-quill.gif b/docs/source/docsearch/assets/images/showcase/example-quill.gif
similarity index 100%
rename from docs/img/showcase/example-quill.gif
rename to docs/source/docsearch/assets/images/showcase/example-quill.gif
diff --git a/docs/img/showcase/example-react.gif b/docs/source/docsearch/assets/images/showcase/example-react.gif
similarity index 100%
rename from docs/img/showcase/example-react.gif
rename to docs/source/docsearch/assets/images/showcase/example-react.gif
diff --git a/docs/img/showcase/example-reactnative.gif b/docs/source/docsearch/assets/images/showcase/example-reactnative.gif
similarity index 100%
rename from docs/img/showcase/example-reactnative.gif
rename to docs/source/docsearch/assets/images/showcase/example-reactnative.gif
diff --git a/docs/source/docsearch/assets/images/showcase/example-scala.gif b/docs/source/docsearch/assets/images/showcase/example-scala.gif
new file mode 100644
index 00000000..4148730a
Binary files /dev/null and b/docs/source/docsearch/assets/images/showcase/example-scala.gif differ
diff --git a/docs/img/showcase/example-serge.gif b/docs/source/docsearch/assets/images/showcase/example-serge.gif
similarity index 100%
rename from docs/img/showcase/example-serge.gif
rename to docs/source/docsearch/assets/images/showcase/example-serge.gif
diff --git a/docs/img/showcase/example-serge.png b/docs/source/docsearch/assets/images/showcase/example-serge.png
similarity index 100%
rename from docs/img/showcase/example-serge.png
rename to docs/source/docsearch/assets/images/showcase/example-serge.png
diff --git a/docs/img/showcase/example-stripe.gif b/docs/source/docsearch/assets/images/showcase/example-stripe.gif
similarity index 100%
rename from docs/img/showcase/example-stripe.gif
rename to docs/source/docsearch/assets/images/showcase/example-stripe.gif
diff --git a/docs/img/showcase/example-symfony.gif b/docs/source/docsearch/assets/images/showcase/example-symfony.gif
similarity index 100%
rename from docs/img/showcase/example-symfony.gif
rename to docs/source/docsearch/assets/images/showcase/example-symfony.gif
diff --git a/docs/img/showcase/example-vuejs.gif b/docs/source/docsearch/assets/images/showcase/example-vuejs.gif
similarity index 100%
rename from docs/img/showcase/example-vuejs.gif
rename to docs/source/docsearch/assets/images/showcase/example-vuejs.gif
diff --git a/docs/img/showcase/logo-ant-design.png b/docs/source/docsearch/assets/images/showcase/logo-ant-design.png
similarity index 100%
rename from docs/img/showcase/logo-ant-design.png
rename to docs/source/docsearch/assets/images/showcase/logo-ant-design.png
diff --git a/docs/img/showcase/logo-apiary.png b/docs/source/docsearch/assets/images/showcase/logo-apiary.png
similarity index 100%
rename from docs/img/showcase/logo-apiary.png
rename to docs/source/docsearch/assets/images/showcase/logo-apiary.png
diff --git a/docs/img/showcase/logo-apiplatform.svg b/docs/source/docsearch/assets/images/showcase/logo-apiplatform.svg
similarity index 100%
rename from docs/img/showcase/logo-apiplatform.svg
rename to docs/source/docsearch/assets/images/showcase/logo-apiplatform.svg
diff --git a/docs/img/showcase/logo-babel.png b/docs/source/docsearch/assets/images/showcase/logo-babel.png
similarity index 100%
rename from docs/img/showcase/logo-babel.png
rename to docs/source/docsearch/assets/images/showcase/logo-babel.png
diff --git a/docs/img/showcase/logo-batch.png b/docs/source/docsearch/assets/images/showcase/logo-batch.png
similarity index 100%
rename from docs/img/showcase/logo-batch.png
rename to docs/source/docsearch/assets/images/showcase/logo-batch.png
diff --git a/docs/img/showcase/logo-batch.svg b/docs/source/docsearch/assets/images/showcase/logo-batch.svg
similarity index 100%
rename from docs/img/showcase/logo-batch.svg
rename to docs/source/docsearch/assets/images/showcase/logo-batch.svg
diff --git a/docs/img/showcase/logo-bootstrap.png b/docs/source/docsearch/assets/images/showcase/logo-bootstrap.png
similarity index 100%
rename from docs/img/showcase/logo-bootstrap.png
rename to docs/source/docsearch/assets/images/showcase/logo-bootstrap.png
diff --git a/docs/img/showcase/logo-cordova.png b/docs/source/docsearch/assets/images/showcase/logo-cordova.png
similarity index 100%
rename from docs/img/showcase/logo-cordova.png
rename to docs/source/docsearch/assets/images/showcase/logo-cordova.png
diff --git a/docs/img/showcase/logo-docusaurus.png b/docs/source/docsearch/assets/images/showcase/logo-docusaurus.png
similarity index 100%
rename from docs/img/showcase/logo-docusaurus.png
rename to docs/source/docsearch/assets/images/showcase/logo-docusaurus.png
diff --git a/docs/img/showcase/logo-echo.png b/docs/source/docsearch/assets/images/showcase/logo-echo.png
similarity index 100%
rename from docs/img/showcase/logo-echo.png
rename to docs/source/docsearch/assets/images/showcase/logo-echo.png
diff --git a/docs/img/showcase/logo-eslint.png b/docs/source/docsearch/assets/images/showcase/logo-eslint.png
similarity index 100%
rename from docs/img/showcase/logo-eslint.png
rename to docs/source/docsearch/assets/images/showcase/logo-eslint.png
diff --git a/docs/img/showcase/logo-fastlane.png b/docs/source/docsearch/assets/images/showcase/logo-fastlane.png
similarity index 100%
rename from docs/img/showcase/logo-fastlane.png
rename to docs/source/docsearch/assets/images/showcase/logo-fastlane.png
diff --git a/docs/img/showcase/logo-flow.png b/docs/source/docsearch/assets/images/showcase/logo-flow.png
similarity index 100%
rename from docs/img/showcase/logo-flow.png
rename to docs/source/docsearch/assets/images/showcase/logo-flow.png
diff --git a/docs/img/showcase/logo-gatsby.png b/docs/source/docsearch/assets/images/showcase/logo-gatsby.png
similarity index 100%
rename from docs/img/showcase/logo-gatsby.png
rename to docs/source/docsearch/assets/images/showcase/logo-gatsby.png
diff --git a/docs/img/showcase/logo-gitlab.png b/docs/source/docsearch/assets/images/showcase/logo-gitlab.png
similarity index 100%
rename from docs/img/showcase/logo-gitlab.png
rename to docs/source/docsearch/assets/images/showcase/logo-gitlab.png
diff --git a/docs/img/showcase/logo-hugo.png b/docs/source/docsearch/assets/images/showcase/logo-hugo.png
similarity index 100%
rename from docs/img/showcase/logo-hugo.png
rename to docs/source/docsearch/assets/images/showcase/logo-hugo.png
diff --git a/docs/img/showcase/logo-influxdata.png b/docs/source/docsearch/assets/images/showcase/logo-influxdata.png
similarity index 100%
rename from docs/img/showcase/logo-influxdata.png
rename to docs/source/docsearch/assets/images/showcase/logo-influxdata.png
diff --git a/docs/img/showcase/logo-jekyll.png b/docs/source/docsearch/assets/images/showcase/logo-jekyll.png
similarity index 100%
rename from docs/img/showcase/logo-jekyll.png
rename to docs/source/docsearch/assets/images/showcase/logo-jekyll.png
diff --git a/docs/img/showcase/logo-mailjet.png b/docs/source/docsearch/assets/images/showcase/logo-mailjet.png
similarity index 100%
rename from docs/img/showcase/logo-mailjet.png
rename to docs/source/docsearch/assets/images/showcase/logo-mailjet.png
diff --git a/docs/img/showcase/logo-marionettejs.png b/docs/source/docsearch/assets/images/showcase/logo-marionettejs.png
similarity index 100%
rename from docs/img/showcase/logo-marionettejs.png
rename to docs/source/docsearch/assets/images/showcase/logo-marionettejs.png
diff --git a/docs/img/showcase/logo-momentjs.png b/docs/source/docsearch/assets/images/showcase/logo-momentjs.png
similarity index 100%
rename from docs/img/showcase/logo-momentjs.png
rename to docs/source/docsearch/assets/images/showcase/logo-momentjs.png
diff --git a/docs/img/showcase/logo-pm2.png b/docs/source/docsearch/assets/images/showcase/logo-pm2.png
similarity index 100%
rename from docs/img/showcase/logo-pm2.png
rename to docs/source/docsearch/assets/images/showcase/logo-pm2.png
diff --git a/docs/img/showcase/logo-quill.png b/docs/source/docsearch/assets/images/showcase/logo-quill.png
similarity index 100%
rename from docs/img/showcase/logo-quill.png
rename to docs/source/docsearch/assets/images/showcase/logo-quill.png
diff --git a/docs/img/showcase/logo-quill.svg b/docs/source/docsearch/assets/images/showcase/logo-quill.svg
similarity index 100%
rename from docs/img/showcase/logo-quill.svg
rename to docs/source/docsearch/assets/images/showcase/logo-quill.svg
diff --git a/docs/img/showcase/logo-react.png b/docs/source/docsearch/assets/images/showcase/logo-react.png
similarity index 100%
rename from docs/img/showcase/logo-react.png
rename to docs/source/docsearch/assets/images/showcase/logo-react.png
diff --git a/docs/source/docsearch/assets/images/showcase/logo-scala.png b/docs/source/docsearch/assets/images/showcase/logo-scala.png
new file mode 100644
index 00000000..a24cbe8f
Binary files /dev/null and b/docs/source/docsearch/assets/images/showcase/logo-scala.png differ
diff --git a/docs/img/showcase/logo-serge.svg b/docs/source/docsearch/assets/images/showcase/logo-serge.svg
similarity index 100%
rename from docs/img/showcase/logo-serge.svg
rename to docs/source/docsearch/assets/images/showcase/logo-serge.svg
diff --git a/docs/img/showcase/logo-stripe.png b/docs/source/docsearch/assets/images/showcase/logo-stripe.png
similarity index 100%
rename from docs/img/showcase/logo-stripe.png
rename to docs/source/docsearch/assets/images/showcase/logo-stripe.png
diff --git a/docs/img/showcase/logo-symfony.png b/docs/source/docsearch/assets/images/showcase/logo-symfony.png
similarity index 100%
rename from docs/img/showcase/logo-symfony.png
rename to docs/source/docsearch/assets/images/showcase/logo-symfony.png
diff --git a/docs/img/showcase/logo-vuejs.png b/docs/source/docsearch/assets/images/showcase/logo-vuejs.png
similarity index 100%
rename from docs/img/showcase/logo-vuejs.png
rename to docs/source/docsearch/assets/images/showcase/logo-vuejs.png
diff --git a/docs/js/bootstrap.min.js b/docs/source/docsearch/assets/javascripts/bootstrap.min.js
similarity index 100%
rename from docs/js/bootstrap.min.js
rename to docs/source/docsearch/assets/javascripts/bootstrap.min.js
diff --git a/docs/js/communityHeader.js b/docs/source/docsearch/assets/javascripts/communityHeader.js
similarity index 100%
rename from docs/js/communityHeader.js
rename to docs/source/docsearch/assets/javascripts/communityHeader.js
diff --git a/docs/source/docsearch/assets/javascripts/components/copy-link.es6 b/docs/source/docsearch/assets/javascripts/components/copy-link.es6
new file mode 100644
index 00000000..8760157c
--- /dev/null
+++ b/docs/source/docsearch/assets/javascripts/components/copy-link.es6
@@ -0,0 +1,30 @@
+const copy_links = [...document.querySelectorAll('.copy-link')];
+
+copy_links.forEach(function (link) {
+ link.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ return false;
+ });
+});
+
+const clipboard = new Clipboard('.copy-link', {
+ text: function(trigger) {
+ const wrapper = $(trigger).closest('.snippet-wrapper');
+ const current_snippet = wrapper.find('.tab-pane.active pre');
+
+ return current_snippet.text().replace('0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,o){!function(i,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof o)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(e,t,n,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var u=i(t),s=i(n),f=i(o),d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new u.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof t?[t]:t,o=!!document.queryCommandSupported;return n.forEach(function(e){o=o&&!!document.queryCommandSupported(e)}),o}}]),t}(s.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)});
\ No newline at end of file
diff --git a/docs/css/_base.scss b/docs/source/docsearch/assets/stylesheets/_base.scss
similarity index 100%
rename from docs/css/_base.scss
rename to docs/source/docsearch/assets/stylesheets/_base.scss
diff --git a/docs/css/_docsearch.scss b/docs/source/docsearch/assets/stylesheets/_docsearch.scss
similarity index 100%
rename from docs/css/_docsearch.scss
rename to docs/source/docsearch/assets/stylesheets/_docsearch.scss
diff --git a/docs/css/_documentation.scss b/docs/source/docsearch/assets/stylesheets/_documentation.scss
similarity index 73%
rename from docs/css/_documentation.scss
rename to docs/source/docsearch/assets/stylesheets/_documentation.scss
index e6ce926a..176e466e 100644
--- a/docs/css/_documentation.scss
+++ b/docs/source/docsearch/assets/stylesheets/_documentation.scss
@@ -2,6 +2,10 @@
p, ul li, ol li {
font-size: 15px;
color: $east-bay
+
+ img {
+ max-width: 100%;
+ }
}
ol li {
@@ -23,6 +27,18 @@
.main-content {
padding-bottom: 120px
}
+
+ .main-content {
+ width: calc(100% - 300px);
+ position: relative;
+ margin-left: 300px;
+ margin-top: 56px;
+
+ @media (max-width: 768px) {
+ width: 100%;
+ margin-left: 0;
+ }
+ }
}
.about .main-content {
@@ -40,4 +56,4 @@ pre {
[style*="background-color:hsla(0,100%,50%,0.05)"],
[style*="background-color:hsla(0,0%,0%,0.07)"] {
background: transparent !important
-}
\ No newline at end of file
+}
diff --git a/docs/css/_fonts.scss b/docs/source/docsearch/assets/stylesheets/_fonts.scss
similarity index 100%
rename from docs/css/_fonts.scss
rename to docs/source/docsearch/assets/stylesheets/_fonts.scss
diff --git a/docs/css/_footer.sass b/docs/source/docsearch/assets/stylesheets/_footer.sass
similarity index 100%
rename from docs/css/_footer.sass
rename to docs/source/docsearch/assets/stylesheets/_footer.sass
diff --git a/docs/css/_forms.scss b/docs/source/docsearch/assets/stylesheets/_forms.scss
similarity index 100%
rename from docs/css/_forms.scss
rename to docs/source/docsearch/assets/stylesheets/_forms.scss
diff --git a/docs/css/_helper.scss b/docs/source/docsearch/assets/stylesheets/_helper.scss
similarity index 100%
rename from docs/css/_helper.scss
rename to docs/source/docsearch/assets/stylesheets/_helper.scss
diff --git a/docs/css/_mixin.scss b/docs/source/docsearch/assets/stylesheets/_mixin.scss
similarity index 100%
rename from docs/css/_mixin.scss
rename to docs/source/docsearch/assets/stylesheets/_mixin.scss
diff --git a/docs/css/_navigation.scss b/docs/source/docsearch/assets/stylesheets/_navigation.scss
similarity index 100%
rename from docs/css/_navigation.scss
rename to docs/source/docsearch/assets/stylesheets/_navigation.scss
diff --git a/docs/css/_page.scss b/docs/source/docsearch/assets/stylesheets/_page.scss
similarity index 100%
rename from docs/css/_page.scss
rename to docs/source/docsearch/assets/stylesheets/_page.scss
diff --git a/docs/css/_searchbar.scss b/docs/source/docsearch/assets/stylesheets/_searchbar.scss
similarity index 100%
rename from docs/css/_searchbar.scss
rename to docs/source/docsearch/assets/stylesheets/_searchbar.scss
diff --git a/docs/source/docsearch/assets/stylesheets/_sidebar.scss b/docs/source/docsearch/assets/stylesheets/_sidebar.scss
new file mode 100644
index 00000000..4f0b7a72
--- /dev/null
+++ b/docs/source/docsearch/assets/stylesheets/_sidebar.scss
@@ -0,0 +1,11 @@
+.documentation {
+ aside {
+ top: 56px;
+ padding-top: 38px;
+ border-right-color: $ghost;
+
+ @media (max-width: 768px) {
+ display: none
+ }
+ }
+}
\ No newline at end of file
diff --git a/docs/css/_syntax-highlighting.scss b/docs/source/docsearch/assets/stylesheets/_syntax-highlighting.scss
similarity index 97%
rename from docs/css/_syntax-highlighting.scss
rename to docs/source/docsearch/assets/stylesheets/_syntax-highlighting.scss
index b1527a6f..cf6414e8 100644
--- a/docs/css/_syntax-highlighting.scss
+++ b/docs/source/docsearch/assets/stylesheets/_syntax-highlighting.scss
@@ -16,11 +16,6 @@ cyan #2aa198 strings, numbers
green #859900 operators, other keywords
*/
-pre.highlight {
- background: #0A1724;
- border: none;
- color: #A3B6CB;
-}
.highlight .hll { background-color: #49483e }
.highlight { /*background: #272822;*/ color: #f8f8f2 }
.highlight .c { color: #75715e } /* Comment */
diff --git a/docs/css/bootstrap/_alerts.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_alerts.scss
similarity index 100%
rename from docs/css/bootstrap/_alerts.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_alerts.scss
diff --git a/docs/css/bootstrap/_badges.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_badges.scss
similarity index 100%
rename from docs/css/bootstrap/_badges.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_badges.scss
diff --git a/docs/css/bootstrap/_breadcrumbs.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_breadcrumbs.scss
similarity index 100%
rename from docs/css/bootstrap/_breadcrumbs.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_breadcrumbs.scss
diff --git a/docs/css/bootstrap/_button-groups.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_button-groups.scss
similarity index 100%
rename from docs/css/bootstrap/_button-groups.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_button-groups.scss
diff --git a/docs/css/bootstrap/_buttons.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_buttons.scss
similarity index 100%
rename from docs/css/bootstrap/_buttons.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_buttons.scss
diff --git a/docs/css/bootstrap/_carousel.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_carousel.scss
similarity index 100%
rename from docs/css/bootstrap/_carousel.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_carousel.scss
diff --git a/docs/css/bootstrap/_close.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_close.scss
similarity index 100%
rename from docs/css/bootstrap/_close.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_close.scss
diff --git a/docs/css/bootstrap/_code.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_code.scss
similarity index 100%
rename from docs/css/bootstrap/_code.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_code.scss
diff --git a/docs/css/bootstrap/_component-animations.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_component-animations.scss
similarity index 100%
rename from docs/css/bootstrap/_component-animations.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_component-animations.scss
diff --git a/docs/css/bootstrap/_dropdowns.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_dropdowns.scss
similarity index 100%
rename from docs/css/bootstrap/_dropdowns.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_dropdowns.scss
diff --git a/docs/css/bootstrap/_forms.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_forms.scss
similarity index 100%
rename from docs/css/bootstrap/_forms.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_forms.scss
diff --git a/docs/css/bootstrap/_glyphicons.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_glyphicons.scss
similarity index 100%
rename from docs/css/bootstrap/_glyphicons.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_glyphicons.scss
diff --git a/docs/source/docsearch/assets/stylesheets/bootstrap/_grid.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_grid.scss
new file mode 100644
index 00000000..b15ca27b
--- /dev/null
+++ b/docs/source/docsearch/assets/stylesheets/bootstrap/_grid.scss
@@ -0,0 +1,84 @@
+//
+// Grid system
+// --------------------------------------------------
+
+
+// Container widths
+//
+// Set the container width, and override it for fixed navbars in media queries.
+
+.container {
+ @include container-fixed;
+
+ @media (min-width: $screen-sm-min) {
+ width: $container-sm;
+ }
+ @media (min-width: $screen-md-min) {
+ width: $container-md;
+ }
+ @media (min-width: $screen-lg-min) {
+ width: $container-lg;
+ }
+}
+
+
+// Fluid container
+//
+// Utilizes the mixin meant for fixed width containers, but without any defined
+// width for fluid, full width layouts.
+
+.container-fluid {
+ @include container-fixed;
+}
+
+
+// Row
+//
+// Rows contain and clear the floats of your columns.
+
+.row {
+ @include make-row;
+}
+
+
+// Columns
+//
+// Common styles for small and large grid columns
+
+@include make-grid-columns;
+
+
+// Extra small grid
+//
+// Columns, offsets, pushes, and pulls for extra small devices like
+// smartphones.
+
+@include make-grid(xs);
+
+
+// Small grid
+//
+// Columns, offsets, pushes, and pulls for the small device range, from phones
+// to tablets.
+
+@media (min-width: $screen-sm-min) {
+ @include make-grid(sm);
+}
+
+
+// Medium grid
+//
+// Columns, offsets, pushes, and pulls for the desktop device range.
+
+@media (min-width: $screen-md-min) {
+ @include make-grid(md);
+}
+
+
+// Large grid
+//
+// Columns, offsets, pushes, and pulls for the large desktop device range.
+
+@media (min-width: $screen-lg-min) {
+ @include make-grid(lg);
+}
diff --git a/docs/css/bootstrap/_input-groups.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_input-groups.scss
similarity index 100%
rename from docs/css/bootstrap/_input-groups.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_input-groups.scss
diff --git a/docs/css/bootstrap/_jumbotron.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_jumbotron.scss
similarity index 100%
rename from docs/css/bootstrap/_jumbotron.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_jumbotron.scss
diff --git a/docs/css/bootstrap/_labels.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_labels.scss
similarity index 100%
rename from docs/css/bootstrap/_labels.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_labels.scss
diff --git a/docs/css/bootstrap/_list-group.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_list-group.scss
similarity index 100%
rename from docs/css/bootstrap/_list-group.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_list-group.scss
diff --git a/docs/css/bootstrap/_media.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_media.scss
similarity index 100%
rename from docs/css/bootstrap/_media.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_media.scss
diff --git a/docs/css/bootstrap/_mixins.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_mixins.scss
similarity index 100%
rename from docs/css/bootstrap/_mixins.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_mixins.scss
diff --git a/docs/css/bootstrap/_modals.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_modals.scss
similarity index 100%
rename from docs/css/bootstrap/_modals.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_modals.scss
diff --git a/docs/css/bootstrap/_navbar.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_navbar.scss
similarity index 100%
rename from docs/css/bootstrap/_navbar.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_navbar.scss
diff --git a/docs/css/bootstrap/_navs.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_navs.scss
similarity index 100%
rename from docs/css/bootstrap/_navs.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_navs.scss
diff --git a/docs/css/bootstrap/_normalize.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_normalize.scss
similarity index 100%
rename from docs/css/bootstrap/_normalize.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_normalize.scss
diff --git a/docs/css/bootstrap/_pager.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_pager.scss
similarity index 100%
rename from docs/css/bootstrap/_pager.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_pager.scss
diff --git a/docs/css/bootstrap/_pagination.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_pagination.scss
similarity index 100%
rename from docs/css/bootstrap/_pagination.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_pagination.scss
diff --git a/docs/css/bootstrap/_panels.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_panels.scss
similarity index 100%
rename from docs/css/bootstrap/_panels.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_panels.scss
diff --git a/docs/css/bootstrap/_popovers.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_popovers.scss
similarity index 100%
rename from docs/css/bootstrap/_popovers.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_popovers.scss
diff --git a/docs/css/bootstrap/_print.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_print.scss
similarity index 100%
rename from docs/css/bootstrap/_print.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_print.scss
diff --git a/docs/css/bootstrap/_progress-bars.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_progress-bars.scss
similarity index 100%
rename from docs/css/bootstrap/_progress-bars.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_progress-bars.scss
diff --git a/docs/css/bootstrap/_responsive-embed.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_responsive-embed.scss
similarity index 100%
rename from docs/css/bootstrap/_responsive-embed.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_responsive-embed.scss
diff --git a/docs/css/bootstrap/_responsive-utilities.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_responsive-utilities.scss
similarity index 100%
rename from docs/css/bootstrap/_responsive-utilities.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_responsive-utilities.scss
diff --git a/docs/css/bootstrap/_scaffolding.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_scaffolding.scss
similarity index 100%
rename from docs/css/bootstrap/_scaffolding.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_scaffolding.scss
diff --git a/docs/css/bootstrap/_tables.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_tables.scss
similarity index 100%
rename from docs/css/bootstrap/_tables.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_tables.scss
diff --git a/docs/css/bootstrap/_theme.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_theme.scss
similarity index 100%
rename from docs/css/bootstrap/_theme.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_theme.scss
diff --git a/docs/css/bootstrap/_thumbnails.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_thumbnails.scss
similarity index 100%
rename from docs/css/bootstrap/_thumbnails.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_thumbnails.scss
diff --git a/docs/css/bootstrap/_tooltip.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_tooltip.scss
similarity index 100%
rename from docs/css/bootstrap/_tooltip.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_tooltip.scss
diff --git a/docs/css/bootstrap/_type.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_type.scss
similarity index 100%
rename from docs/css/bootstrap/_type.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_type.scss
diff --git a/docs/css/bootstrap/_utilities.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_utilities.scss
similarity index 100%
rename from docs/css/bootstrap/_utilities.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_utilities.scss
diff --git a/docs/css/bootstrap/_variables.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_variables.scss
similarity index 100%
rename from docs/css/bootstrap/_variables.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_variables.scss
diff --git a/docs/css/bootstrap/_wells.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/_wells.scss
similarity index 100%
rename from docs/css/bootstrap/_wells.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/_wells.scss
diff --git a/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_alerts.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_alerts.scss
new file mode 100644
index 00000000..3faf0b5a
--- /dev/null
+++ b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_alerts.scss
@@ -0,0 +1,14 @@
+// Alerts
+
+@mixin alert-variant($background, $border, $text-color) {
+ background-color: $background;
+ border-color: $border;
+ color: $text-color;
+
+ hr {
+ border-top-color: darken($border, 5%);
+ }
+ .alert-link {
+ color: darken($text-color, 10%);
+ }
+}
diff --git a/docs/css/bootstrap/mixins/_background-variant.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_background-variant.scss
similarity index 100%
rename from docs/css/bootstrap/mixins/_background-variant.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_background-variant.scss
diff --git a/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_border-radius.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_border-radius.scss
new file mode 100644
index 00000000..ce194998
--- /dev/null
+++ b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_border-radius.scss
@@ -0,0 +1,18 @@
+// Single side border-radius
+
+@mixin border-top-radius($radius) {
+ border-top-right-radius: $radius;
+ border-top-left-radius: $radius;
+}
+@mixin border-right-radius($radius) {
+ border-bottom-right-radius: $radius;
+ border-top-right-radius: $radius;
+}
+@mixin border-bottom-radius($radius) {
+ border-bottom-right-radius: $radius;
+ border-bottom-left-radius: $radius;
+}
+@mixin border-left-radius($radius) {
+ border-bottom-left-radius: $radius;
+ border-top-left-radius: $radius;
+}
diff --git a/docs/css/bootstrap/mixins/_buttons.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_buttons.scss
similarity index 100%
rename from docs/css/bootstrap/mixins/_buttons.scss
rename to docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_buttons.scss
diff --git a/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_center-block.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_center-block.scss
new file mode 100644
index 00000000..e06fb5e2
--- /dev/null
+++ b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_center-block.scss
@@ -0,0 +1,7 @@
+// Center-align a block level element
+
+@mixin center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
diff --git a/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_clearfix.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_clearfix.scss
new file mode 100644
index 00000000..dc3e2ab4
--- /dev/null
+++ b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_clearfix.scss
@@ -0,0 +1,22 @@
+// Clearfix
+//
+// For modern browsers
+// 1. The space content is one way to avoid an Opera bug when the
+// contenteditable attribute is included anywhere else in the document.
+// Otherwise it causes space to appear at the top and bottom of elements
+// that are clearfixed.
+// 2. The use of `table` rather than `block` is only necessary if using
+// `:before` to contain the top-margins of child elements.
+//
+// Source: http://nicolasgallagher.com/micro-clearfix-hack/
+
+@mixin clearfix() {
+ &:before,
+ &:after {
+ content: " "; // 1
+ display: table; // 2
+ }
+ &:after {
+ clear: both;
+ }
+}
diff --git a/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_forms.scss b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_forms.scss
new file mode 100644
index 00000000..277aa5f8
--- /dev/null
+++ b/docs/source/docsearch/assets/stylesheets/bootstrap/mixins/_forms.scss
@@ -0,0 +1,88 @@
+// Form validation states
+//
+// Used in forms.less to generate the form validation CSS for warnings, errors,
+// and successes.
+
+@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
+ // Color the label and help text
+ .help-block,
+ .control-label,
+ .radio,
+ .checkbox,
+ .radio-inline,
+ .checkbox-inline,
+ &.radio label,
+ &.checkbox label,
+ &.radio-inline label,
+ &.checkbox-inline label {
+ color: $text-color;
+ }
+ // Set the border and box shadow on specific inputs to match
+ .form-control {
+ border-color: $border-color;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken($border-color, 10%);
+ $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
+ @include box-shadow($shadow);
+ }
+ }
+ // Set validation states also for addons
+ .input-group-addon {
+ color: $text-color;
+ border-color: $border-color;
+ background-color: $background-color;
+ }
+ // Optional feedback icon
+ .form-control-feedback {
+ color: $text-color;
+ }
+}
+
+
+// Form control focus state
+//
+// Generate a customized focus state and for any input with the specified color,
+// which defaults to the `$input-border-focus` variable.
+//
+// We highly encourage you to not customize the default value, but instead use
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
+// WebKit's default styles, but applicable to a wider range of browsers. Its
+// usability and accessibility should be taken into account with any change.
+//
+// Example usage: change the default blue border and shadow to white for better
+// contrast against a dark gray background.
+@mixin form-control-focus($color: $input-border-focus) {
+ $color-rgba: rgba(red($color), green($color), blue($color), .6);
+ &:focus {
+ border-color: $color;
+ outline: 0;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
+ }
+}
+
+// Form control sizing
+//
+// Relative text size, padding, and border-radii changes for form controls. For
+// horizontal sizing, wrap controls in the predefined grid classes. `