├── template
├── .eslintignore
├── static
│ └── icons
│ │ ├── 128.png
│ │ ├── 16.png
│ │ └── 48.png
├── .gitignore
├── src
│ ├── content
│ │ └── index.js
│ ├── background
│ │ └── index.js
│ ├── devtools
│ │ ├── index.js
│ │ ├── panel.js
│ │ └── root.vue
│ ├── tab
│ │ ├── index.js
│ │ └── root.vue
│ ├── options
│ │ ├── index.js
│ │ └── root.vue
│ ├── popup
│ │ ├── index.js
│ │ └── root.vue
│ ├── _locales
│ │ ├── zh_TW
│ │ │ └── messages.js
│ │ └── en
│ │ │ └── messages.js
│ ├── ext
│ │ └── storage.js
│ └── manifest.js
├── .postcssrc.js
├── build
│ ├── page.ejs
│ ├── webpack.dev.js
│ ├── webpack.prod.js
│ ├── tools.js
│ └── webpack.base.js
├── .babelrc
├── .eslintrc.js
├── plugins
│ └── GenerateLocaleJsonPlugin.js
└── package.json
├── .gitignore
├── package.json
├── LICENSE
├── meta.js
├── README.md
├── utils
└── index.js
└── yarn.lock
/template/.eslintignore:
--------------------------------------------------------------------------------
1 | dist/*.js
2 |
--------------------------------------------------------------------------------
/template/static/icons/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ALiangLiang/vue-webpack-chrome-extension-template/HEAD/template/static/icons/128.png
--------------------------------------------------------------------------------
/template/static/icons/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ALiangLiang/vue-webpack-chrome-extension-template/HEAD/template/static/icons/16.png
--------------------------------------------------------------------------------
/template/static/icons/48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ALiangLiang/vue-webpack-chrome-extension-template/HEAD/template/static/icons/48.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # IDE
2 | .vscode
3 |
4 | # dependencies
5 | node_modules
6 | template/package-lock.json
7 | template/yarn.lock
8 |
9 | # logs
10 | npm-debug.log
11 |
--------------------------------------------------------------------------------
/template/.gitignore:
--------------------------------------------------------------------------------
1 | # IDE
2 | .vscode
3 |
4 | # dependencies
5 | node_modules
6 |
7 | # logs
8 | npm-debug.log
9 |
10 | # Backpack build
11 | dist
12 | extension.zip
13 |
--------------------------------------------------------------------------------
/template/src/content/index.js:
--------------------------------------------------------------------------------
1 | {{#if components.locales}}
2 | const __ = chrome.i18n.getMessage
3 | console.log(__('content'))
4 | {{/if}}
5 | {{#unless components.locales}}
6 | console.log('content-script!')
7 | {{/unless}}
8 |
--------------------------------------------------------------------------------
/template/src/background/index.js:
--------------------------------------------------------------------------------
1 | {{#if components.locales}}
2 | const __ = chrome.i18n.getMessage
3 | console.log(__('background'))
4 | {{/if}}
5 | {{#unless components.locales}}
6 | console.log('background!')
7 | {{/unless}}
8 |
--------------------------------------------------------------------------------
/template/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserslist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/template/src/devtools/index.js:
--------------------------------------------------------------------------------
1 | chrome.devtools.panels.create('panel', 'img/logo.png', 'pages/panel.html', function (panel) {
2 | {{#if components.locales}}
3 | const __ = chrome.i18n.getMessage
4 | console.log(__('devtools'))
5 | {{/if}}
6 | {{#unless components.locales}}
7 | console.log('devtools')
8 | {{/unless}}
9 | })
10 |
--------------------------------------------------------------------------------
/template/src/tab/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import root from './root.vue'
3 | Vue.config.productionTip = false
4 |
5 | {{#if components.locales}}
6 | // used in Vue rendering
7 | Vue.prototype.__ = chrome.i18n.getMessage
8 |
9 | {{/if}}
10 | new Vue({ // eslint-disable-line no-new
11 | el: '#root',
12 | render: h => h(root)
13 | })
14 |
--------------------------------------------------------------------------------
/template/src/options/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import root from './root.vue'
3 | Vue.config.productionTip = false
4 |
5 | {{#if components.locales}}
6 | // used in Vue rendering
7 | Vue.prototype.__ = chrome.i18n.getMessage
8 |
9 | {{/if}}
10 | new Vue({ // eslint-disable-line no-new
11 | el: '#root',
12 | render: h => h(root)
13 | })
14 |
--------------------------------------------------------------------------------
/template/src/devtools/panel.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import root from './root.vue'
3 | Vue.config.productionTip = false
4 |
5 | {{#if components.locales}}
6 | // used in Vue rendering
7 | Vue.prototype.__ = chrome.i18n.getMessage
8 |
9 | {{/if}}
10 | /* eslint-disable no-new */
11 | new Vue({
12 | el: '#root',
13 | render: h => h(root)
14 | })
15 |
--------------------------------------------------------------------------------
/template/build/page.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | <%= htmlWebpackPlugin.options.title %>
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/template/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": ["transform-runtime"],
12 | "env": {
13 | "test": {
14 | "presets": ["env", "stage-2"],
15 | "plugins": ["istanbul"]
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/template/src/popup/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import root from './root.vue'
3 | import ElementUI from 'element-ui'
4 | import 'element-ui/lib/theme-chalk/index.css'
5 |
6 | Vue.config.productionTip = false
7 |
8 | {{#if components.locales}}
9 | // used in Vue rendering
10 | Vue.prototype.__ = chrome.i18n.getMessage
11 |
12 | {{/if}}
13 | Vue.use(ElementUI)
14 |
15 | new Vue({ // eslint-disable-line no-new
16 | el: '#root',
17 | render: h => h(root)
18 | })
19 |
--------------------------------------------------------------------------------
/template/src/_locales/zh_TW/messages.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @see {@link https://developer.chrome.com/extensions/i18n}
3 | */
4 | module.exports = {
5 | extName: { message: 'Vue Chrome 擴充套件' },
6 | extDescription: { message: 'Vue.js Chrome 擴充套件模板' },
7 |
8 | background: { message: '背景(Background)' },
9 | content: { message: '內容腳本(Content Script)' },
10 | devtools: { message: '從回呼函數來的訊息(from callback)' },
11 | options: { message: '選項(Options)' },
12 | popup: { message: '新的頁籤(Tab)' },
13 | tab: { message: '頁籤(Tab)' }
14 | }
15 |
--------------------------------------------------------------------------------
/template/src/_locales/en/messages.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @see {@link https://developer.chrome.com/extensions/i18n}
3 | */
4 | module.exports = {
5 | extName: { message: 'Vue Chrome Extension' },
6 | extDescription: { message: 'Vue.js Chrome Extension Template' },
7 |
8 | background: { message: 'background!' },
9 | content: { message: 'content-script!' },
10 | devtools: { message: 'devtools' },
11 | fromCallback: { message: 'hello from callback' },
12 | options: { message: 'options' },
13 | popup: { message: 'New tab' },
14 | tab: { message: 'tab' }
15 | }
16 |
--------------------------------------------------------------------------------
/template/src/ext/storage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage}
3 | */
4 | export default {
5 | get (key) {
6 | try {
7 | return JSON.parse(localStorage.getItem(key))
8 | } catch (e) {}
9 | },
10 | set (key, val) {
11 | try {
12 | localStorage.setItem(key, JSON.stringify(val))
13 | } catch (e) {}
14 | },
15 | remove (key) {
16 | try {
17 | localStorage.removeItem(key)
18 | } catch (e) {}
19 | },
20 | clear () {
21 | try {
22 | localStorage.clear()
23 | } catch (e) {}
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/template/build/webpack.dev.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack')
2 | const merge = require('webpack-merge')
3 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
4 | const baseWebpack = require('./webpack.base')
5 | const { styleLoaders } = require('./tools')
6 |
7 | module.exports = merge(baseWebpack, {
8 | watch: true,
9 | module: { rules: styleLoaders({ sourceMap: false }) },
10 | devtool: '#cheap-module-source-map',
11 | plugins: [
12 | new webpack.NoEmitOnErrorsPlugin(),
13 | new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"development"' }),
14 | new FriendlyErrorsPlugin()
15 | ]
16 | })
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-webpack-chrome-extension-template",
3 | "version": "1.0.1",
4 | "description": "Template for quick creation of Chrome extension on Vuejs hot reloading when developing.",
5 | "author": "ALiangLiang",
6 | "repository": {
7 | "type": "git",
8 | "url": "git://github.com/ALiangLiang/vue-webpack-chrome-extension-template.git"
9 | },
10 | "bugs": {
11 | "url": "https://github.com/ALiangLiang/vue-webpack-chrome-extension-template/issues"
12 | },
13 | "keywords": [
14 | "vue",
15 | "webpack",
16 | "webpack-boilerplate",
17 | "template",
18 | "chrome-extension",
19 | "vuejs2"
20 | ],
21 | "license": "MIT",
22 | "devDependencies": {
23 | "vue-cli": "^2.9.3"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/template/src/tab/root.vue:
--------------------------------------------------------------------------------
1 |
2 | {{#if components.locales}}
3 | {{{{raw-helper}}}}
4 | div {{ __('tab') }}
5 | {{{{/raw-helper}}}}
6 | {{/if}}
7 | {{#unless components.locales}}
8 | div tab
9 | {{/unless}}
10 |
11 |
32 |
37 |
--------------------------------------------------------------------------------
/template/src/options/root.vue:
--------------------------------------------------------------------------------
1 |
2 | {{#if components.locales}}
3 | {{{{raw-helper}}}}
4 | div {{ __('options') }}
5 | {{{{/raw-helper}}}}
6 | {{/if}}
7 | {{#unless components.locales}}
8 | div options
9 | {{/unless}}
10 |
11 |
32 |
37 |
--------------------------------------------------------------------------------
/template/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // https://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | globals: {
10 | "chrome": true
11 | // chrome: true
12 | },
13 | env: {
14 | browser: true,
15 | },
16 | // https://github.com/standard/standard/blob/master/docs/RULES-en.md
17 | extends: 'standard',
18 | // required to lint *.vue files
19 | plugins: [
20 | 'html'
21 | ],
22 | // add your custom rules here
23 | 'rules': {
24 | // allow paren-less arrow functions
25 | 'arrow-parens': 0,
26 | // allow async-await
27 | 'generator-star-spacing': 0,
28 | // allow debugger during development
29 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/template/src/devtools/root.vue:
--------------------------------------------------------------------------------
1 |
2 | {{#if components.locales}}
3 | {{{{raw-helper}}}}
4 | div {{ __('devtools') }}
5 | {{{{/raw-helper}}}}
6 | {{/if}}
7 | {{#unless components.locales}}
8 | div devtools
9 | {{/unless}}
10 |
11 |
32 |
37 |
--------------------------------------------------------------------------------
/template/build/webpack.prod.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack')
2 | const merge = require('webpack-merge')
3 | const ZipPlugin = require('zip-webpack-plugin')
4 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
5 | const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
6 | const baseWebpack = require('./webpack.base')
7 | const { styleLoaders } = require('./tools')
8 |
9 | module.exports = merge(baseWebpack, {
10 | module: { rules: styleLoaders({ extract: true, sourceMap: true }) },
11 | plugins: [
12 | new webpack.NoEmitOnErrorsPlugin(),
13 | new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"production"' }),
14 | new OptimizeCSSPlugin({ cssProcessorOptions: { safe: true } }),
15 | new ExtractTextPlugin({ filename: 'css/[name].[contenthash].css' }),
16 | new webpack.HashedModuleIdsPlugin(),
17 | new ZipPlugin({
18 | path: '..',
19 | filename: 'extension.zip'
20 | })
21 | ]
22 | })
23 |
--------------------------------------------------------------------------------
/template/src/popup/root.vue:
--------------------------------------------------------------------------------
1 |
2 | {{#if components.locales}}
3 | {{{{raw-helper}}}}
4 | div
5 | el-button(type="primary" @click="tab") {{ __('popup') }}
6 | {{{{/raw-helper}}}}
7 | {{/if}}
8 | {{#unless components.locales}}
9 | div
10 | el-button(type="primary" @click="tab") New tab
11 | {{/unless}}
12 |
13 |
38 |
43 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 阿良良 ALiangLiang
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/template/build/tools.js:
--------------------------------------------------------------------------------
1 | const { resolve } = require('path')
2 | const { extract } = require('extract-text-webpack-plugin')
3 | const HtmlWebpackPlugin = require('html-webpack-plugin')
4 |
5 | exports.htmlPage = (title, filename, chunks, template) => new HtmlWebpackPlugin({
6 | title,
7 | hash: true,
8 | cache: true,
9 | inject: 'body',
10 | filename: './pages/' + filename + '.html',
11 | template: template || resolve(__dirname, './page.ejs'),
12 | appMountId: 'app',
13 | chunks
14 | })
15 |
16 | exports.cssLoaders = (options = {}) => {
17 | let loaders = {}
18 | let prePprocessors = {
19 | css: {},
20 | postcss: {},
21 | less: { loader: 'less' },
22 | sass: { loader: 'sass', options: { indentedSyntax: true } },
23 | scss: { loader: 'sass' },
24 | stylus: { loader: 'stylus' },
25 | styl: { loader: 'stylus' }
26 | }
27 | for (let key in prePprocessors) {
28 | let loader = [{
29 | loader: 'css-loader',
30 | options: { minimize: process.env.NODE_ENV === 'production' }
31 | }]
32 | if (prePprocessors[key].loader) {
33 | loader.push({
34 | loader: prePprocessors[key].loader + '-loader',
35 | options: Object.assign({}, prePprocessors[key].options, { sourceMap: options.sourceMap })
36 | })
37 | }
38 | if (options.extract) {
39 | loaders[key] = extract({ use: loader, fallback: 'vue-style-loader' })
40 | } else {
41 | loaders[key] = ['vue-style-loader'].concat(loader)
42 | }
43 | }
44 | return loaders
45 | }
46 |
47 | exports.styleLoaders = function (options) {
48 | const output = []
49 | const loaders = exports.cssLoaders(options)
50 | for (const extension in loaders) {
51 | const loader = loaders[extension]
52 | output.push({
53 | test: new RegExp('\\.' + extension + '$'),
54 | use: loader
55 | })
56 | }
57 | return output
58 | }
59 |
--------------------------------------------------------------------------------
/template/plugins/GenerateLocaleJsonPlugin.js:
--------------------------------------------------------------------------------
1 | const { lstatSync, readdirSync, readFileSync } = require('fs')
2 | const { join, parse } = require('path')
3 | const Module = require('module')
4 |
5 | const isDirectory = (source) => lstatSync(source).isDirectory()
6 | const getDirectories = (source) =>
7 | readdirSync(source).map(name => join(source, name)).filter(isDirectory)
8 |
9 | module.exports = class GenerateLocaleJsonPlugin {
10 | constructor ({ _locales }) {
11 | this.__localesPath = _locales
12 | this._locales = []
13 | }
14 |
15 | compile (comp) {
16 | const dirsPath = getDirectories(this.__localesPath)
17 | dirsPath.forEach((dirPath) => {
18 | try {
19 | const localeName = parse(dirPath).base
20 | const filename = join(this.__localesPath, localeName, 'messages.js')
21 | const code = readFileSync(filename, 'utf8')
22 | const mod = new Module(filename)
23 | mod.filename = filename
24 | mod._compile(code, filename)
25 | mod.paths = Module._nodeModulePaths(filename)
26 | this._locales.push({
27 | localeName,
28 | content: mod.exports,
29 | src: join(dirPath, 'messages.js')
30 | })
31 | } catch (err) {
32 | console.error(err)
33 | }
34 | })
35 | }
36 |
37 | generate (comp, done) {
38 | if (!this._locales.length) return done()
39 |
40 | for (let locale of this._locales) {
41 | comp.fileDependencies.push(locale.src)
42 | const source = JSON.stringify(locale.content)
43 | comp.assets[join('_locales', locale.localeName, 'messages.json')] = {
44 | source: () => source,
45 | size: () => source.length
46 | }
47 | }
48 |
49 | return done()
50 | }
51 |
52 | apply (compiler) {
53 | compiler.plugin('compile', (comp) => this.compile(comp))
54 | compiler.plugin('emit', (comp, done) => this.generate(comp, done))
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/template/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "{{ name }}",
3 | "version": "1.0.0",
4 | "description": "{{ description }}",
5 | "author": "{{ author }}",
6 | "license": "MIT",
7 | "private": false,
8 | "dependencies": {
9 | "element-ui": "^2.0.1",
10 | "lodash": "^4.17.4",
11 | "vue": "^2.5.2",
12 | "vue-router": "^3.0.1"
13 | },
14 | "scripts": {
15 | "lint": "eslint --ext .js,.vue src",
16 | "dev": "webpack --config ./build/webpack.dev.js --hide-modules",
17 | "build": "webpack --config ./build/webpack.prod.js -p --progress --hide-modules --colors"
18 | },
19 | "devDependencies": {
20 | "babel-core": "^6.26.0",
21 | "babel-eslint": "^8.2.2",
22 | "babel-loader": "^7.1.2",
23 | "babel-plugin-transform-runtime": "^6.23.0",
24 | "babel-preset-env": "^1.6.1",
25 | "babel-preset-stage-2": "^6.24.1",
26 | "clean-webpack-plugin": "^0.1.18",
27 | "copy-webpack-plugin": "^4.4.1",
28 | "css-loader": "^0.28.9",
29 | "eslint": "^4.18.1",
30 | "eslint-config-standard": "^11.0.0",
31 | "eslint-friendly-formatter": "^3.0.0",
32 | "eslint-loader": "^1.9.0",
33 | "eslint-plugin-html": "^4.0.2",
34 | "eslint-plugin-import": "^2.8.0",
35 | "eslint-plugin-node": "^6.0.0",
36 | "eslint-plugin-promise": "^3.6.0",
37 | "eslint-plugin-standard": "^3.0.1",
38 | "extract-text-webpack-plugin": "^3.0.2",
39 | "file-loader": "^1.1.8",
40 | "friendly-errors-webpack-plugin": "^1.6.1",
41 | "html-webpack-plugin": "^2.30.1",
42 | "node-sass": "^4.7.2",
43 | "optimize-css-assets-webpack-plugin": "^3.2.0",
44 | "pug": "^2.0.0-rc.4",
45 | "pug-loader": "^2.3.0",
46 | "sass-loader": "^6.0.6",
47 | "url-loader": "^0.6.2",
48 | "vue-loader": "^14.1.1",
49 | "vue-template-compiler": "^2.5.13",
50 | "wcer": "^1.0.3",
51 | "webpack": "^3.8.1",
52 | "webpack-merge": "^4.1.1",
53 | "zip-webpack-plugin": "^2.1.0"
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/template/src/manifest.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @see {@link https://developer.chrome.com/extensions/manifest}
3 | */
4 | module.exports = {
5 | {{#if components.locales}}
6 | name: '__MSG_extName__', // Vue Extension
7 | description: '__MSG_extDescription__', // Vue.js Webpack Chrome Extension Template
8 | {{/if}}
9 | {{#unless components.locales}}
10 | name: '{{ name }}',
11 | description: '{{ description }}',
12 | {{/unless}}
13 | author: '{{ author }}',
14 | version: '1.0.0',
15 | icons: {
16 | '16': 'icons/16.png',
17 | '128': 'icons/128.png'
18 | },
19 | /**
20 | * @see {@link https://developer.chrome.com/extensions/declare_permissions}
21 | */
22 | permissions: [
23 | '',
24 | '*://*/*',
25 | 'activeTab',
26 | 'tabs',
27 | 'background',
28 | 'unlimitedStorage',
29 | 'storage'
30 | ],
31 | browser_action: {
32 | default_title: 'title',
33 | {{#if components.popupTab}}
34 | default_popup: 'pages/popup.html'
35 | {{/if}}
36 | },
37 | {{#if components.background}}
38 | background: {
39 | persistent: false,
40 | page: 'pages/background.html'
41 | },
42 | {{/if}}
43 | {{#if components.devtool}}
44 | devtools_page: 'pages/devtools.html',
45 | {{/if}}
46 | {{#if components.optionPage}}
47 | options_page: 'pages/options.html',
48 | {{/if}}
49 | {{#if components.contentScript}}
50 | content_scripts: [{
51 | js: [
52 | 'js/manifest.js',
53 | 'js/vendor.js',
54 | 'js/content.js'
55 | ],
56 | run_at: 'document_end',
57 | matches: [''],
58 | all_frames: true
59 | }],
60 | {{/if}}
61 | {{#if components.locales}}
62 | default_locale: 'en',
63 | {{/if}}
64 | manifest_version: 2,
65 | content_security_policy: "script-src 'self'; object-src 'self'",
66 | web_accessible_resources: [
67 | {{#if components.devtool}}
68 | 'panel.html',
69 | {{/if}}
70 | {{#if components.contentScript}}
71 | 'js/content.js'
72 | {{/if}}
73 | ]
74 | }
75 |
--------------------------------------------------------------------------------
/meta.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 | const {
3 | sortDependencies,
4 | installDependencies,
5 | printMessage
6 | } = require('./utils')
7 |
8 | module.exports = {
9 | helpers: {
10 | 'raw-helper': function (options) {
11 | return options.fn()
12 | }
13 | },
14 | prompts: {
15 | name: {
16 | type: 'string',
17 | required: true,
18 | default: 'vue-webpack-chrome-extension-template',
19 | message: 'Project name'
20 | },
21 | description: {
22 | type: 'string',
23 | required: true,
24 | label: 'Project description',
25 | default: 'A Chrome extension project with Vue.js'
26 | },
27 | author: {
28 | type: 'string',
29 | label: 'Author'
30 | },
31 | components: {
32 | type: 'checkbox',
33 | message: 'Select components',
34 | name: 'components',
35 | default: [ 'background', 'contentScript', 'optionPage', 'popupTab' ],
36 | choices: [
37 | { name: 'background (https://developer.chrome.com/extensions/background_pages)', value: 'background', short: 'background' },
38 | { name: 'content script (https://developer.chrome.com/extensions/content_scripts)', value: 'contentScript', short: 'content script' },
39 | { name: 'option page (https://developer.chrome.com/extensions/options)', value: 'optionPage', short: 'option page' },
40 | { name: 'popup and tab', value: 'popupTab' },
41 | { name: 'locales (https://developer.chrome.com/extensions/i18n)', value: 'locales', short: 'locales' },
42 | { name: 'devtool (https://developer.chrome.com/extensions/devtools)', value: 'devtool', short: 'devtool' }
43 | ]
44 | },
45 | autoInstall: {
46 | type: 'list',
47 | message:
48 | 'Should we run `npm install` for you after the project has been created? (recommended)',
49 | choices: [
50 | { name: 'Yes, use NPM', value: 'npm', short: 'npm' },
51 | { name: 'Yes, use Yarn', value: 'yarn', short: 'yarn' },
52 | { name: 'No, I will handle that myself', value: false, short: 'no' }
53 | ]
54 | }
55 | },
56 | filters: {
57 | 'node_modules/**': 'false',
58 | 'dist/**': 'false',
59 | 'src/_locales/**': 'components.locales',
60 | 'src/background/**': 'components.background',
61 | 'src/content/**': 'components.contentScript',
62 | 'src/devtools/**': 'components.devtool',
63 | 'src/options/**': 'components.optionPage',
64 | 'src/popup/**': 'components.popupTab',
65 | 'src/tab/**': 'components.popupTab',
66 | 'package-lock.json': 'autoInstall === "npm"',
67 | 'yarn.lock': 'autoInstall === "yarn"'
68 | },
69 | complete: function (data, { chalk }) {
70 | const green = chalk.green
71 |
72 | sortDependencies(data, green)
73 |
74 | const cwd = path.join(process.cwd(), data.inPlace ? '' : data.destDirName)
75 |
76 | if (data.autoInstall) {
77 | installDependencies(cwd, data.autoInstall, green)
78 | .then(() => {
79 | printMessage(data, green)
80 | })
81 | .catch(e => {
82 | console.log(chalk.red('Error:'), e)
83 | })
84 | } else {
85 | printMessage(data, chalk)
86 | }
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue.js Webpack Chrome Extension Template
2 |
3 | [](https://www.npmjs.com/package/vue-webpack-chrome-extension-template)
4 |
5 | > Template for quick creation of Chrome extension on Vuejs hot reloading when developing.
6 |
7 | ## Installation:
8 |
9 | This boilerplate was built as a template for [vue-cli](https://github.com/vuejs/vue-cli) and includes options to customize your final scaffolded app.
10 |
11 | ```bash
12 | # install vue-cli
13 | $ npm install -g vue-cli
14 | # create a new project using the template
15 | $ vue init ALiangLiang/vue-webpack-chrome-extension-template my-project
16 | # install dependencies and go!
17 | $ cd my-project
18 | $ npm install # or yarn
19 | $ npm run dev # or yarn dev
20 | ```
21 |
22 | ## Structure
23 |
24 | ```bash
25 | .
26 | ├── build # core scripts
27 | │ ├── page.ejs # html page boilerplate of background, options, etc.
28 | │ ├── tools.js # util scripts
29 | │ ├── webpack.base.js # base webpack configure file
30 | │ ├── webpack.dev.js # configure file on developing, would merge into base
31 | │ └── webpack.prod.js # configure file on build, would merge into base
32 | ├── plugins # special webpack plugins for Chrome extension
33 | │ ├── GenerateLocaleJsonPlugin.js # Transform locale message."js" to "json"
34 | │ └── GenerateManifestJsonPlugin.js # Transform your manifest."js" to "json"
35 | ├── dist # your runtime code. generate by program.
36 | ├── src # your source code
37 | │ ├── _locales # Implement internationalization across your whole extension (https://developer.chrome.com/extensions/i18n)
38 | │ ├── background # Background work of your extension (https://developer.chrome.com/extensions/background_pages)
39 | │ ├── content # Run in the context of web pages (https://developer.chrome.com/extensions/content_scripts)
40 | │ ├── devtools # It can add new UI panels and sidebars, interact with the inspected page, get information about network requests, and more. (https://developer.chrome.com/extensions/devtools)
41 | │ ├── ext # Shared scripts
42 | │ ├── options # To allow users to customize the behavior of your extension, you may wish to provide an options page. (https://developer.chrome.com/extensions/options)
43 | │ ├── popup # The page (window) that will be displayed when the icon is clicked
44 | │ ├── tab # Your application will work in a separate tab
45 | │ └── manifest.js # Descriptions of the application, its rights and possibilities (https://developer.chrome.com/extensions/manifest)
46 | ├── static # static assets, would copy into dist directly.
47 | │ └── icons # icons
48 | ├── extension.zip # extension package. used to upload to web store.
49 | ├── package.json # build scripts and dependencies
50 | ├── package-lock.json # npm lockfile, should be commit into git
51 | └── yarn.lock # yarn lockfile, should be commit into git
52 | ```
53 |
54 | ## Pre-install
55 |
56 | * vue
57 | * vue-router
58 | * lodash - Javascript util library
59 | * element-ui - Style Framework for Vue.js
60 |
61 | ## License
62 |
63 | MIT
64 |
--------------------------------------------------------------------------------
/utils/index.js:
--------------------------------------------------------------------------------
1 | // Shameless copy from https://github.com/vuejs-templates/webpack/blob/b65484714b660aff66eb9f70b6a32487de44b78d/utils/index.js
2 | const path = require('path')
3 | const fs = require('fs')
4 | const spawn = require('child_process').spawn
5 |
6 | const lintStyles = ['standard', 'airbnb']
7 |
8 | /**
9 | * Sorts dependencies in package.json alphabetically.
10 | * They are unsorted because they were grouped for the handlebars helpers
11 | * @param {object} data Data from questionnaire
12 | */
13 | exports.sortDependencies = function sortDependencies (data) {
14 | const packageJsonFile = path.join(
15 | data.inPlace ? '' : data.destDirName,
16 | 'package.json'
17 | )
18 | const packageJson = JSON.parse(fs.readFileSync(packageJsonFile))
19 | packageJson.devDependencies = sortObject(packageJson.devDependencies)
20 | packageJson.dependencies = sortObject(packageJson.dependencies)
21 | fs.writeFileSync(packageJsonFile, JSON.stringify(packageJson, null, 2) + '\n')
22 | }
23 |
24 | /**
25 | * Runs `npm install` in the project directory
26 | * @param {string} cwd Path of the created project directory
27 | * @param {object} data Data from questionnaire
28 | */
29 | exports.installDependencies = function installDependencies (
30 | cwd,
31 | executable = 'npm',
32 | color
33 | ) {
34 | console.log(`\n\n# ${color('Installing project dependencies ...')}`)
35 | console.log('# ========================\n')
36 | return runCommand(executable, ['install'], {
37 | cwd
38 | })
39 | }
40 |
41 | /**
42 | * Runs `npm run lint -- --fix` in the project directory
43 | * @param {string} cwd Path of the created project directory
44 | * @param {object} data Data from questionnaire
45 | */
46 | exports.runLintFix = function runLintFix (cwd, data, color) {
47 | if (data.lint && lintStyles.indexOf(data.lintConfig) !== -1) {
48 | console.log(
49 | `\n\n${color(
50 | 'Running eslint --fix to comply with chosen preset rules...'
51 | )}`
52 | )
53 | console.log('# ========================\n')
54 | const args =
55 | data.autoInstall === 'npm'
56 | ? ['run', 'lint', '--', '--fix']
57 | : ['run', 'lint', '--fix']
58 | return runCommand(data.autoInstall, args, {
59 | cwd
60 | })
61 | }
62 | return Promise.resolve()
63 | }
64 |
65 | /**
66 | * Prints the final message with instructions of necessary next steps.
67 | * @param {Object} data Data from questionnaire.
68 | */
69 | exports.printMessage = function printMessage (data, { green, yellow }) {
70 | const message = `
71 | # ${green('Project initialization finished!')}
72 | # ========================
73 |
74 | To get started:
75 |
76 | ${yellow(
77 | `${data.inPlace ? '' : `cd ${data.destDirName}\n `}${installMsg(
78 | data
79 | )}${lintMsg(data)}npm run dev`
80 | )}
81 | `
82 | console.log(message)
83 | }
84 |
85 | /**
86 | * If the user will have to run lint --fix themselves, it returns a string
87 | * containing the instruction for this step.
88 | * @param {Object} data Data from questionnaire.
89 | */
90 | function lintMsg (data) {
91 | return !data.autoInstall &&
92 | data.lint &&
93 | lintStyles.indexOf(data.lintConfig) !== -1
94 | ? 'npm run lint -- --fix (or for yarn: yarn run lint --fix)\n '
95 | : ''
96 | }
97 |
98 | /**
99 | * If the user will have to run `npm install` or `yarn` themselves, it returns a string
100 | * containing the instruction for this step.
101 | * @param {Object} data Data from the questionnaire
102 | */
103 | function installMsg (data) {
104 | return !data.autoInstall ? 'npm install (or if using yarn: yarn)\n ' : ''
105 | }
106 |
107 | /**
108 | * Spawns a child process and runs the specified command
109 | * By default, runs in the CWD and inherits stdio
110 | * Options are the same as node's child_process.spawn
111 | * @param {string} cmd
112 | * @param {array} args
113 | * @param {object} options
114 | */
115 | function runCommand (cmd, args, options) {
116 | return new Promise((resolve, reject) => {
117 | const spwan = spawn(
118 | cmd,
119 | args,
120 | Object.assign(
121 | {
122 | cwd: process.cwd(),
123 | stdio: 'inherit',
124 | shell: true
125 | },
126 | options
127 | )
128 | )
129 |
130 | spwan.on('exit', () => {
131 | resolve()
132 | })
133 | })
134 | }
135 |
136 | function sortObject (object) {
137 | // Based on https://github.com/yarnpkg/yarn/blob/v1.3.2/src/config.js#L79-L85
138 | const sortedObject = {}
139 | Object.keys(object)
140 | .sort()
141 | .forEach(item => {
142 | sortedObject[item] = object[item]
143 | })
144 | return sortedObject
145 | }
146 | // End Shameless copy
147 |
--------------------------------------------------------------------------------
/template/build/webpack.base.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 | const webpack = require('webpack')
3 | const CleanWebpackPlugin = require('clean-webpack-plugin')
4 | const ChromeReloadPlugin = require('wcer')
5 | const CopyWebpackPlugin = require('copy-webpack-plugin')
6 | {{#if components.locales}}
7 | const GenerateLocaleJsonPlugin = require('../plugins/GenerateLocaleJsonPlugin')
8 | {{/if}}
9 | const { cssLoaders, htmlPage } = require('./tools')
10 |
11 | const rootDir = path.resolve(__dirname, '..')
12 |
13 | let resolve = (dir) => path.join(rootDir, 'src', dir)
14 |
15 | module.exports = {
16 | entry: {
17 | {{#if components.popupTab}}
18 | popup: resolve('./popup'),
19 | tab: resolve('./tab'),
20 | {{/if}}
21 | {{#if components.optionPage}}
22 | options: resolve('./options'),
23 | {{/if}}
24 | {{#if components.contentScript}}
25 | content: resolve('./content'),
26 | {{/if}}
27 | {{#if components.devtool}}
28 | devtools: resolve('./devtools'),
29 | panel: resolve('./devtools/panel'),
30 | {{/if}}
31 | {{#if components.background}}
32 | background: resolve('./background'),
33 | {{/if}}
34 | },
35 | output: {
36 | path: path.join(rootDir, 'dist'),
37 | publicPath: '/',
38 | filename: 'js/[name].js',
39 | chunkFilename: 'js/[id].[name].js?[hash]',
40 | library: '[name]'
41 | },
42 | resolve: {
43 | extensions: ['.js', '.vue', '.json'],
44 | alias: {
45 | 'vue$': 'vue/dist/vue.esm.js',
46 | '@': resolve('src')
47 | }
48 | },
49 | module: {
50 | rules: [{
51 | test: /\.(js|vue)$/,
52 | loader: 'eslint-loader',
53 | enforce: 'pre',
54 | include: [ path.join(rootDir, 'src') ],
55 | options: { formatter: require('eslint-friendly-formatter') }
56 | }, {
57 | test: /\.vue$/,
58 | loader: 'vue-loader',
59 | options: {
60 | extractCSS: true,
61 | loaders: {
62 | ...cssLoaders(),
63 | js: { loader: 'babel-loader' }
64 | },
65 | transformToRequire: {
66 | video: 'src',
67 | source: 'src',
68 | img: 'src',
69 | image: 'xlink:href'
70 | }
71 | }
72 | }, {
73 | test: /\.js$/,
74 | loader: 'babel-loader',
75 | include: [
76 | path.join(rootDir, 'src'),
77 | // https://github.com/sagalbot/vue-select/issues/71#issuecomment-229453096
78 | path.join(rootDir, 'node_modules', 'element-ui', 'src', 'utils')
79 | ]
80 | }, {
81 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
82 | loader: 'url-loader',
83 | options: {
84 | limit: 10000,
85 | name: 'img/[name].[hash:7].[ext]'
86 | }
87 | }, {
88 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
89 | loader: 'url-loader',
90 | options: {
91 | limit: 10000,
92 | name: 'media/[name].[hash:7].[ext]'
93 | }
94 | }, {
95 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
96 | loader: 'url-loader',
97 | options: {
98 | limit: 10000,
99 | name: 'fonts/[name].[hash:7].[ext]'
100 | }
101 | }]
102 | },
103 | plugins: [
104 | new CleanWebpackPlugin(['*'], { root: path.join(rootDir, 'dist') }),
105 | // Customize your extension structure.
106 | {{#if components.popupTab}}
107 | htmlPage('home', 'app', ['manifest', 'vendor', 'tab']),
108 | htmlPage('popup', 'popup', ['manifest', 'vendor', 'popup']),
109 | {{/if}}
110 | {{#if components.devtool}}
111 | htmlPage('panel', 'panel', ['manifest', 'vendor', 'panel']),
112 | htmlPage('devtools', 'devtools', ['manifest', 'vendor', 'devtools']),
113 | {{/if}}
114 | {{#if components.optionPage}}
115 | htmlPage('options', 'options', ['manifest', 'vendor', 'options']),
116 | {{/if}}
117 | {{#if components.background}}
118 | htmlPage('background', 'background', ['manifest', 'vendor', 'background']),
119 | {{/if}}
120 | // End customize
121 | new CopyWebpackPlugin([{ from: path.join(rootDir, 'static') }]),
122 | new ChromeReloadPlugin({
123 | port: 9090,
124 | manifest: path.join(rootDir, 'src', 'manifest.js')
125 | }),
126 | {{#if components.locales}}
127 | new GenerateLocaleJsonPlugin({
128 | _locales: path.join(rootDir, 'src', '_locales')
129 | }),
130 | {{/if}}
131 | new webpack.optimize.CommonsChunkPlugin({
132 | name: 'vendor',
133 | minChunks: function (module) {
134 | return (
135 | module.resource &&
136 | /\.js$/.test(module.resource) &&
137 | module.resource.indexOf(
138 | path.join(__dirname, '../node_modules')
139 | ) === 0
140 | )
141 | }
142 | }),
143 | new webpack.optimize.CommonsChunkPlugin({
144 | name: 'manifest',
145 | chunks: ['vendor']
146 | })
147 | ],
148 | performance: { hints: false }
149 | }
150 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | absolute@0.0.1:
6 | version "0.0.1"
7 | resolved "https://registry.yarnpkg.com/absolute/-/absolute-0.0.1.tgz#c22822f87e1c939f579887504d9c109c4173829d"
8 |
9 | ajv@^5.1.0:
10 | version "5.5.2"
11 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
12 | dependencies:
13 | co "^4.6.0"
14 | fast-deep-equal "^1.0.0"
15 | fast-json-stable-stringify "^2.0.0"
16 | json-schema-traverse "^0.3.0"
17 |
18 | align-text@^0.1.1, align-text@^0.1.3:
19 | version "0.1.4"
20 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
21 | dependencies:
22 | kind-of "^3.0.2"
23 | longest "^1.0.1"
24 | repeat-string "^1.5.2"
25 |
26 | amdefine@>=0.0.4:
27 | version "1.0.1"
28 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
29 |
30 | ansi-escapes@^3.0.0:
31 | version "3.0.0"
32 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
33 |
34 | ansi-red@^0.1.1:
35 | version "0.1.1"
36 | resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c"
37 | dependencies:
38 | ansi-wrap "0.1.0"
39 |
40 | ansi-regex@^2.0.0:
41 | version "2.1.1"
42 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
43 |
44 | ansi-regex@^3.0.0:
45 | version "3.0.0"
46 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
47 |
48 | ansi-styles@^2.2.1:
49 | version "2.2.1"
50 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
51 |
52 | ansi-styles@^3.2.0:
53 | version "3.2.0"
54 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
55 | dependencies:
56 | color-convert "^1.9.0"
57 |
58 | ansi-wrap@0.1.0:
59 | version "0.1.0"
60 | resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
61 |
62 | argparse@^1.0.7:
63 | version "1.0.10"
64 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
65 | dependencies:
66 | sprintf-js "~1.0.2"
67 |
68 | array-differ@^1.0.0:
69 | version "1.0.0"
70 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
71 |
72 | array-union@^1.0.1:
73 | version "1.0.2"
74 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
75 | dependencies:
76 | array-uniq "^1.0.1"
77 |
78 | array-uniq@^1.0.1:
79 | version "1.0.3"
80 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
81 |
82 | arrify@^1.0.0:
83 | version "1.0.1"
84 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
85 |
86 | asn1@~0.2.3:
87 | version "0.2.3"
88 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
89 |
90 | assert-plus@1.0.0, assert-plus@^1.0.0:
91 | version "1.0.0"
92 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
93 |
94 | async@^1.4.0:
95 | version "1.5.2"
96 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
97 |
98 | async@^2.4.0:
99 | version "2.6.0"
100 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
101 | dependencies:
102 | lodash "^4.14.0"
103 |
104 | asynckit@^0.4.0:
105 | version "0.4.0"
106 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
107 |
108 | aws-sign2@~0.7.0:
109 | version "0.7.0"
110 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
111 |
112 | aws4@^1.6.0:
113 | version "1.6.0"
114 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
115 |
116 | balanced-match@^1.0.0:
117 | version "1.0.0"
118 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
119 |
120 | base64-js@0.0.8:
121 | version "0.0.8"
122 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
123 |
124 | bcrypt-pbkdf@^1.0.0:
125 | version "1.0.1"
126 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
127 | dependencies:
128 | tweetnacl "^0.14.3"
129 |
130 | bl@^1.0.0:
131 | version "1.2.1"
132 | resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
133 | dependencies:
134 | readable-stream "^2.0.5"
135 |
136 | bluebird@^3.1.1:
137 | version "3.5.1"
138 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
139 |
140 | boom@4.x.x:
141 | version "4.3.1"
142 | resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
143 | dependencies:
144 | hoek "4.x.x"
145 |
146 | boom@5.x.x:
147 | version "5.2.0"
148 | resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
149 | dependencies:
150 | hoek "4.x.x"
151 |
152 | brace-expansion@^1.1.7:
153 | version "1.1.11"
154 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
155 | dependencies:
156 | balanced-match "^1.0.0"
157 | concat-map "0.0.1"
158 |
159 | buffer-crc32@~0.2.3:
160 | version "0.2.13"
161 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
162 |
163 | buffer@^3.0.1:
164 | version "3.6.0"
165 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
166 | dependencies:
167 | base64-js "0.0.8"
168 | ieee754 "^1.1.4"
169 | isarray "^1.0.0"
170 |
171 | builtins@^1.0.3:
172 | version "1.0.3"
173 | resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
174 |
175 | camelcase@^1.0.2:
176 | version "1.2.1"
177 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
178 |
179 | capture-stack-trace@^1.0.0:
180 | version "1.0.0"
181 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
182 |
183 | caseless@~0.12.0:
184 | version "0.12.0"
185 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
186 |
187 | caw@^2.0.0:
188 | version "2.0.1"
189 | resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95"
190 | dependencies:
191 | get-proxy "^2.0.0"
192 | isurl "^1.0.0-alpha5"
193 | tunnel-agent "^0.6.0"
194 | url-to-options "^1.0.1"
195 |
196 | center-align@^0.1.1:
197 | version "0.1.3"
198 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
199 | dependencies:
200 | align-text "^0.1.3"
201 | lazy-cache "^1.0.3"
202 |
203 | chalk@^1.1.3:
204 | version "1.1.3"
205 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
206 | dependencies:
207 | ansi-styles "^2.2.1"
208 | escape-string-regexp "^1.0.2"
209 | has-ansi "^2.0.0"
210 | strip-ansi "^3.0.0"
211 | supports-color "^2.0.0"
212 |
213 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0:
214 | version "2.3.1"
215 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796"
216 | dependencies:
217 | ansi-styles "^3.2.0"
218 | escape-string-regexp "^1.0.5"
219 | supports-color "^5.2.0"
220 |
221 | chardet@^0.4.0:
222 | version "0.4.2"
223 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
224 |
225 | cli-cursor@^2.1.0:
226 | version "2.1.0"
227 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
228 | dependencies:
229 | restore-cursor "^2.0.0"
230 |
231 | cli-spinners@^1.0.1:
232 | version "1.1.0"
233 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06"
234 |
235 | cli-width@^2.0.0:
236 | version "2.2.0"
237 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
238 |
239 | cliui@^2.1.0:
240 | version "2.1.0"
241 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
242 | dependencies:
243 | center-align "^0.1.1"
244 | right-align "^0.1.1"
245 | wordwrap "0.0.2"
246 |
247 | clone@^1.0.2:
248 | version "1.0.3"
249 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
250 |
251 | co-from-stream@~0.0.0:
252 | version "0.0.0"
253 | resolved "https://registry.yarnpkg.com/co-from-stream/-/co-from-stream-0.0.0.tgz#1a5cd8ced77263946094fa39f2499a63297bcaf9"
254 | dependencies:
255 | co-read "0.0.1"
256 |
257 | co-fs-extra@^1.2.1:
258 | version "1.2.1"
259 | resolved "https://registry.yarnpkg.com/co-fs-extra/-/co-fs-extra-1.2.1.tgz#3b6ad77cf2614530f677b1cf62664f5ba756b722"
260 | dependencies:
261 | co-from-stream "~0.0.0"
262 | fs-extra "~0.26.5"
263 | thunkify-wrap "~1.0.4"
264 |
265 | co-read@0.0.1:
266 | version "0.0.1"
267 | resolved "https://registry.yarnpkg.com/co-read/-/co-read-0.0.1.tgz#f81b3eb8a86675fec51e3d883a7f564e873c9389"
268 |
269 | co@3.1.0, co@~3.1.0:
270 | version "3.1.0"
271 | resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78"
272 |
273 | co@^4.6.0:
274 | version "4.6.0"
275 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
276 |
277 | coffee-script@1.12.7, coffee-script@^1.12.4:
278 | version "1.12.7"
279 | resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53"
280 |
281 | color-convert@^1.9.0:
282 | version "1.9.1"
283 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
284 | dependencies:
285 | color-name "^1.1.1"
286 |
287 | color-name@^1.1.1:
288 | version "1.1.3"
289 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
290 |
291 | combined-stream@1.0.6, combined-stream@~1.0.5:
292 | version "1.0.6"
293 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
294 | dependencies:
295 | delayed-stream "~1.0.0"
296 |
297 | commander@^2.6.0, commander@^2.9.0:
298 | version "2.14.1"
299 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
300 |
301 | commander@~2.8.1:
302 | version "2.8.1"
303 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
304 | dependencies:
305 | graceful-readlink ">= 1.0.0"
306 |
307 | concat-map@0.0.1:
308 | version "0.0.1"
309 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
310 |
311 | config-chain@^1.1.11:
312 | version "1.1.11"
313 | resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2"
314 | dependencies:
315 | ini "^1.3.4"
316 | proto-list "~1.2.1"
317 |
318 | consolidate@^0.14.0:
319 | version "0.14.5"
320 | resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.14.5.tgz#5a25047bc76f73072667c8cb52c989888f494c63"
321 | dependencies:
322 | bluebird "^3.1.1"
323 |
324 | core-util-is@1.0.2, core-util-is@~1.0.0:
325 | version "1.0.2"
326 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
327 |
328 | create-error-class@^3.0.0:
329 | version "3.0.2"
330 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
331 | dependencies:
332 | capture-stack-trace "^1.0.0"
333 |
334 | cryptiles@3.x.x:
335 | version "3.1.2"
336 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
337 | dependencies:
338 | boom "5.x.x"
339 |
340 | dashdash@^1.12.0:
341 | version "1.14.1"
342 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
343 | dependencies:
344 | assert-plus "^1.0.0"
345 |
346 | decamelize@^1.0.0:
347 | version "1.2.0"
348 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
349 |
350 | decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
351 | version "4.1.1"
352 | resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
353 | dependencies:
354 | file-type "^5.2.0"
355 | is-stream "^1.1.0"
356 | tar-stream "^1.5.2"
357 |
358 | decompress-tarbz2@^4.0.0:
359 | version "4.1.1"
360 | resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
361 | dependencies:
362 | decompress-tar "^4.1.0"
363 | file-type "^6.1.0"
364 | is-stream "^1.1.0"
365 | seek-bzip "^1.0.5"
366 | unbzip2-stream "^1.0.9"
367 |
368 | decompress-targz@^4.0.0:
369 | version "4.1.1"
370 | resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
371 | dependencies:
372 | decompress-tar "^4.1.1"
373 | file-type "^5.2.0"
374 | is-stream "^1.1.0"
375 |
376 | decompress-unzip@^4.0.1:
377 | version "4.0.1"
378 | resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
379 | dependencies:
380 | file-type "^3.8.0"
381 | get-stream "^2.2.0"
382 | pify "^2.3.0"
383 | yauzl "^2.4.2"
384 |
385 | decompress@^4.0.0:
386 | version "4.2.0"
387 | resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
388 | dependencies:
389 | decompress-tar "^4.0.0"
390 | decompress-tarbz2 "^4.0.0"
391 | decompress-targz "^4.0.0"
392 | decompress-unzip "^4.0.1"
393 | graceful-fs "^4.1.10"
394 | make-dir "^1.0.0"
395 | pify "^2.3.0"
396 | strip-dirs "^2.0.0"
397 |
398 | delayed-stream@~1.0.0:
399 | version "1.0.0"
400 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
401 |
402 | download-git-repo@^1.0.1:
403 | version "1.0.2"
404 | resolved "https://registry.yarnpkg.com/download-git-repo/-/download-git-repo-1.0.2.tgz#0b93a62057e41e2f21b1a06c95e7b26362b108ff"
405 | dependencies:
406 | download "^5.0.3"
407 | git-clone "^0.1.0"
408 | rimraf "^2.6.1"
409 |
410 | download@^5.0.3:
411 | version "5.0.3"
412 | resolved "https://registry.yarnpkg.com/download/-/download-5.0.3.tgz#63537f977f99266a30eb8a2a2fbd1f20b8000f7a"
413 | dependencies:
414 | caw "^2.0.0"
415 | decompress "^4.0.0"
416 | filenamify "^2.0.0"
417 | get-stream "^3.0.0"
418 | got "^6.3.0"
419 | mkdirp "^0.5.1"
420 | pify "^2.3.0"
421 |
422 | duplexer3@^0.1.4:
423 | version "0.1.4"
424 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
425 |
426 | ecc-jsbn@~0.1.1:
427 | version "0.1.1"
428 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
429 | dependencies:
430 | jsbn "~0.1.0"
431 |
432 | enable@1:
433 | version "1.3.2"
434 | resolved "https://registry.yarnpkg.com/enable/-/enable-1.3.2.tgz#9eba6837d16d0982b59f87d889bf754443d52931"
435 |
436 | end-of-stream@^1.0.0:
437 | version "1.4.1"
438 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
439 | dependencies:
440 | once "^1.4.0"
441 |
442 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
443 | version "1.0.5"
444 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
445 |
446 | esprima@^4.0.0:
447 | version "4.0.0"
448 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
449 |
450 | extend-shallow@^2.0.1:
451 | version "2.0.1"
452 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
453 | dependencies:
454 | is-extendable "^0.1.0"
455 |
456 | extend@~3.0.1:
457 | version "3.0.1"
458 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
459 |
460 | external-editor@^2.0.4:
461 | version "2.1.0"
462 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48"
463 | dependencies:
464 | chardet "^0.4.0"
465 | iconv-lite "^0.4.17"
466 | tmp "^0.0.33"
467 |
468 | extsprintf@1.3.0:
469 | version "1.3.0"
470 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
471 |
472 | extsprintf@^1.2.0:
473 | version "1.4.0"
474 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
475 |
476 | fast-deep-equal@^1.0.0:
477 | version "1.0.0"
478 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
479 |
480 | fast-json-stable-stringify@^2.0.0:
481 | version "2.0.0"
482 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
483 |
484 | fd-slicer@~1.0.1:
485 | version "1.0.1"
486 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
487 | dependencies:
488 | pend "~1.2.0"
489 |
490 | figures@^2.0.0:
491 | version "2.0.0"
492 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
493 | dependencies:
494 | escape-string-regexp "^1.0.5"
495 |
496 | file-type@^3.8.0:
497 | version "3.9.0"
498 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
499 |
500 | file-type@^5.2.0:
501 | version "5.2.0"
502 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
503 |
504 | file-type@^6.1.0:
505 | version "6.2.0"
506 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
507 |
508 | filename-reserved-regex@^2.0.0:
509 | version "2.0.0"
510 | resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229"
511 |
512 | filenamify@^2.0.0:
513 | version "2.0.0"
514 | resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.0.0.tgz#bd162262c0b6e94bfbcdcf19a3bbb3764f785695"
515 | dependencies:
516 | filename-reserved-regex "^2.0.0"
517 | strip-outer "^1.0.0"
518 | trim-repeated "^1.0.0"
519 |
520 | forever-agent@~0.6.1:
521 | version "0.6.1"
522 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
523 |
524 | form-data@~2.3.1:
525 | version "2.3.2"
526 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
527 | dependencies:
528 | asynckit "^0.4.0"
529 | combined-stream "1.0.6"
530 | mime-types "^2.1.12"
531 |
532 | fs-extra@~0.26.5:
533 | version "0.26.7"
534 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9"
535 | dependencies:
536 | graceful-fs "^4.1.2"
537 | jsonfile "^2.1.0"
538 | klaw "^1.0.0"
539 | path-is-absolute "^1.0.0"
540 | rimraf "^2.2.8"
541 |
542 | fs.realpath@^1.0.0:
543 | version "1.0.0"
544 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
545 |
546 | get-proxy@^2.0.0:
547 | version "2.1.0"
548 | resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93"
549 | dependencies:
550 | npm-conf "^1.1.0"
551 |
552 | get-stream@^2.2.0:
553 | version "2.3.1"
554 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
555 | dependencies:
556 | object-assign "^4.0.1"
557 | pinkie-promise "^2.0.0"
558 |
559 | get-stream@^3.0.0:
560 | version "3.0.0"
561 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
562 |
563 | getpass@^0.1.1:
564 | version "0.1.7"
565 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
566 | dependencies:
567 | assert-plus "^1.0.0"
568 |
569 | git-clone@^0.1.0:
570 | version "0.1.0"
571 | resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9"
572 |
573 | glob@^7.0.5:
574 | version "7.1.2"
575 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
576 | dependencies:
577 | fs.realpath "^1.0.0"
578 | inflight "^1.0.4"
579 | inherits "2"
580 | minimatch "^3.0.4"
581 | once "^1.3.0"
582 | path-is-absolute "^1.0.0"
583 |
584 | got@^6.3.0:
585 | version "6.7.1"
586 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
587 | dependencies:
588 | create-error-class "^3.0.0"
589 | duplexer3 "^0.1.4"
590 | get-stream "^3.0.0"
591 | is-redirect "^1.0.0"
592 | is-retry-allowed "^1.0.0"
593 | is-stream "^1.0.0"
594 | lowercase-keys "^1.0.0"
595 | safe-buffer "^5.0.1"
596 | timed-out "^4.0.0"
597 | unzip-response "^2.0.1"
598 | url-parse-lax "^1.0.0"
599 |
600 | graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
601 | version "4.1.11"
602 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
603 |
604 | "graceful-readlink@>= 1.0.0":
605 | version "1.0.1"
606 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
607 |
608 | gray-matter@^2.0.0:
609 | version "2.1.1"
610 | resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e"
611 | dependencies:
612 | ansi-red "^0.1.1"
613 | coffee-script "^1.12.4"
614 | extend-shallow "^2.0.1"
615 | js-yaml "^3.8.1"
616 | toml "^2.3.2"
617 |
618 | handlebars@^4.0.5:
619 | version "4.0.11"
620 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
621 | dependencies:
622 | async "^1.4.0"
623 | optimist "^0.6.1"
624 | source-map "^0.4.4"
625 | optionalDependencies:
626 | uglify-js "^2.6"
627 |
628 | har-schema@^2.0.0:
629 | version "2.0.0"
630 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
631 |
632 | har-validator@~5.0.3:
633 | version "5.0.3"
634 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
635 | dependencies:
636 | ajv "^5.1.0"
637 | har-schema "^2.0.0"
638 |
639 | has-ansi@^2.0.0:
640 | version "2.0.0"
641 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
642 | dependencies:
643 | ansi-regex "^2.0.0"
644 |
645 | has-flag@^3.0.0:
646 | version "3.0.0"
647 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
648 |
649 | has-generators@^1.0.1:
650 | version "1.0.1"
651 | resolved "https://registry.yarnpkg.com/has-generators/-/has-generators-1.0.1.tgz#a6a2e55486011940482e13e2c93791c449acf449"
652 |
653 | has-symbol-support-x@^1.4.1:
654 | version "1.4.1"
655 | resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz#66ec2e377e0c7d7ccedb07a3a84d77510ff1bc4c"
656 |
657 | has-to-string-tag-x@^1.2.0:
658 | version "1.4.1"
659 | resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d"
660 | dependencies:
661 | has-symbol-support-x "^1.4.1"
662 |
663 | hawk@~6.0.2:
664 | version "6.0.2"
665 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
666 | dependencies:
667 | boom "4.x.x"
668 | cryptiles "3.x.x"
669 | hoek "4.x.x"
670 | sntp "2.x.x"
671 |
672 | hoek@4.x.x:
673 | version "4.2.1"
674 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
675 |
676 | http-signature@~1.2.0:
677 | version "1.2.0"
678 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
679 | dependencies:
680 | assert-plus "^1.0.0"
681 | jsprim "^1.2.2"
682 | sshpk "^1.7.0"
683 |
684 | iconv-lite@^0.4.17:
685 | version "0.4.19"
686 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
687 |
688 | ieee754@^1.1.4:
689 | version "1.1.8"
690 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
691 |
692 | inflight@^1.0.4:
693 | version "1.0.6"
694 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
695 | dependencies:
696 | once "^1.3.0"
697 | wrappy "1"
698 |
699 | inherits@2, inherits@~2.0.3:
700 | version "2.0.3"
701 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
702 |
703 | ini@^1.3.4:
704 | version "1.3.5"
705 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
706 |
707 | inquirer@^3.3.0:
708 | version "3.3.0"
709 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
710 | dependencies:
711 | ansi-escapes "^3.0.0"
712 | chalk "^2.0.0"
713 | cli-cursor "^2.1.0"
714 | cli-width "^2.0.0"
715 | external-editor "^2.0.4"
716 | figures "^2.0.0"
717 | lodash "^4.3.0"
718 | mute-stream "0.0.7"
719 | run-async "^2.2.0"
720 | rx-lite "^4.0.8"
721 | rx-lite-aggregates "^4.0.8"
722 | string-width "^2.1.0"
723 | strip-ansi "^4.0.0"
724 | through "^2.3.6"
725 |
726 | is-buffer@^1.1.5:
727 | version "1.1.6"
728 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
729 |
730 | is-extendable@^0.1.0:
731 | version "0.1.1"
732 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
733 |
734 | is-fullwidth-code-point@^2.0.0:
735 | version "2.0.0"
736 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
737 |
738 | is-natural-number@^4.0.1:
739 | version "4.0.1"
740 | resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
741 |
742 | is-object@^1.0.1:
743 | version "1.0.1"
744 | resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
745 |
746 | is-promise@^2.1.0:
747 | version "2.1.0"
748 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
749 |
750 | is-redirect@^1.0.0:
751 | version "1.0.0"
752 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
753 |
754 | is-retry-allowed@^1.0.0:
755 | version "1.1.0"
756 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
757 |
758 | is-stream@^1.0.0, is-stream@^1.1.0:
759 | version "1.1.0"
760 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
761 |
762 | is-typedarray@~1.0.0:
763 | version "1.0.0"
764 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
765 |
766 | is-utf8@~0.2.0:
767 | version "0.2.1"
768 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
769 |
770 | is@^3.1.0:
771 | version "3.2.1"
772 | resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5"
773 |
774 | isarray@^1.0.0, isarray@~1.0.0:
775 | version "1.0.0"
776 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
777 |
778 | isstream@~0.1.2:
779 | version "0.1.2"
780 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
781 |
782 | isurl@^1.0.0-alpha5:
783 | version "1.0.0"
784 | resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67"
785 | dependencies:
786 | has-to-string-tag-x "^1.2.0"
787 | is-object "^1.0.1"
788 |
789 | js-yaml@^3.8.1:
790 | version "3.10.0"
791 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
792 | dependencies:
793 | argparse "^1.0.7"
794 | esprima "^4.0.0"
795 |
796 | jsbn@~0.1.0:
797 | version "0.1.1"
798 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
799 |
800 | json-schema-traverse@^0.3.0:
801 | version "0.3.1"
802 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
803 |
804 | json-schema@0.2.3:
805 | version "0.2.3"
806 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
807 |
808 | json-stringify-safe@~5.0.1:
809 | version "5.0.1"
810 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
811 |
812 | jsonfile@^2.1.0:
813 | version "2.4.0"
814 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
815 | optionalDependencies:
816 | graceful-fs "^4.1.6"
817 |
818 | jsprim@^1.2.2:
819 | version "1.4.1"
820 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
821 | dependencies:
822 | assert-plus "1.0.0"
823 | extsprintf "1.3.0"
824 | json-schema "0.2.3"
825 | verror "1.10.0"
826 |
827 | kind-of@^3.0.2:
828 | version "3.2.2"
829 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
830 | dependencies:
831 | is-buffer "^1.1.5"
832 |
833 | klaw@^1.0.0:
834 | version "1.3.1"
835 | resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
836 | optionalDependencies:
837 | graceful-fs "^4.1.9"
838 |
839 | lazy-cache@^1.0.3:
840 | version "1.0.4"
841 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
842 |
843 | lodash@^4.14.0, lodash@^4.3.0:
844 | version "4.17.5"
845 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
846 |
847 | log-symbols@^2.1.0:
848 | version "2.2.0"
849 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
850 | dependencies:
851 | chalk "^2.0.1"
852 |
853 | longest@^1.0.1:
854 | version "1.0.1"
855 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
856 |
857 | lowercase-keys@^1.0.0:
858 | version "1.0.0"
859 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
860 |
861 | make-dir@^1.0.0:
862 | version "1.2.0"
863 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b"
864 | dependencies:
865 | pify "^3.0.0"
866 |
867 | metalsmith@^2.1.0:
868 | version "2.3.0"
869 | resolved "https://registry.yarnpkg.com/metalsmith/-/metalsmith-2.3.0.tgz#833afbb5a2a6385e2d9ae3d935e39e33eaea5231"
870 | dependencies:
871 | absolute "0.0.1"
872 | chalk "^1.1.3"
873 | clone "^1.0.2"
874 | co-fs-extra "^1.2.1"
875 | commander "^2.6.0"
876 | gray-matter "^2.0.0"
877 | has-generators "^1.0.1"
878 | is "^3.1.0"
879 | is-utf8 "~0.2.0"
880 | recursive-readdir "^2.1.0"
881 | rimraf "^2.2.8"
882 | stat-mode "^0.2.0"
883 | thunkify "^2.1.2"
884 | unyield "0.0.1"
885 | ware "^1.2.0"
886 | win-fork "^1.1.1"
887 |
888 | mime-db@~1.33.0:
889 | version "1.33.0"
890 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
891 |
892 | mime-types@^2.1.12, mime-types@~2.1.17:
893 | version "2.1.18"
894 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
895 | dependencies:
896 | mime-db "~1.33.0"
897 |
898 | mimic-fn@^1.0.0:
899 | version "1.2.0"
900 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
901 |
902 | minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.4:
903 | version "3.0.4"
904 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
905 | dependencies:
906 | brace-expansion "^1.1.7"
907 |
908 | minimist@0.0.8:
909 | version "0.0.8"
910 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
911 |
912 | minimist@~0.0.1:
913 | version "0.0.10"
914 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
915 |
916 | mkdirp@^0.5.1:
917 | version "0.5.1"
918 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
919 | dependencies:
920 | minimist "0.0.8"
921 |
922 | multimatch@^2.1.0:
923 | version "2.1.0"
924 | resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
925 | dependencies:
926 | array-differ "^1.0.0"
927 | array-union "^1.0.1"
928 | arrify "^1.0.0"
929 | minimatch "^3.0.0"
930 |
931 | mute-stream@0.0.7:
932 | version "0.0.7"
933 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
934 |
935 | npm-conf@^1.1.0:
936 | version "1.1.3"
937 | resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
938 | dependencies:
939 | config-chain "^1.1.11"
940 | pify "^3.0.0"
941 |
942 | oauth-sign@~0.8.2:
943 | version "0.8.2"
944 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
945 |
946 | object-assign@^4.0.1:
947 | version "4.1.1"
948 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
949 |
950 | once@^1.3.0, once@^1.4.0:
951 | version "1.4.0"
952 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
953 | dependencies:
954 | wrappy "1"
955 |
956 | onetime@^2.0.0:
957 | version "2.0.1"
958 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
959 | dependencies:
960 | mimic-fn "^1.0.0"
961 |
962 | optimist@^0.6.1:
963 | version "0.6.1"
964 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
965 | dependencies:
966 | minimist "~0.0.1"
967 | wordwrap "~0.0.2"
968 |
969 | ora@^1.3.0:
970 | version "1.4.0"
971 | resolved "https://registry.yarnpkg.com/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5"
972 | dependencies:
973 | chalk "^2.1.0"
974 | cli-cursor "^2.1.0"
975 | cli-spinners "^1.0.1"
976 | log-symbols "^2.1.0"
977 |
978 | os-homedir@^1.0.0:
979 | version "1.0.2"
980 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
981 |
982 | os-tmpdir@~1.0.2:
983 | version "1.0.2"
984 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
985 |
986 | path-is-absolute@^1.0.0:
987 | version "1.0.1"
988 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
989 |
990 | pend@~1.2.0:
991 | version "1.2.0"
992 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
993 |
994 | performance-now@^2.1.0:
995 | version "2.1.0"
996 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
997 |
998 | pify@^2.3.0:
999 | version "2.3.0"
1000 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
1001 |
1002 | pify@^3.0.0:
1003 | version "3.0.0"
1004 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
1005 |
1006 | pinkie-promise@^2.0.0:
1007 | version "2.0.1"
1008 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
1009 | dependencies:
1010 | pinkie "^2.0.0"
1011 |
1012 | pinkie@^2.0.0:
1013 | version "2.0.4"
1014 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
1015 |
1016 | prepend-http@^1.0.1:
1017 | version "1.0.4"
1018 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
1019 |
1020 | process-nextick-args@~2.0.0:
1021 | version "2.0.0"
1022 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
1023 |
1024 | proto-list@~1.2.1:
1025 | version "1.2.4"
1026 | resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
1027 |
1028 | punycode@^1.4.1:
1029 | version "1.4.1"
1030 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
1031 |
1032 | qs@~6.5.1:
1033 | version "6.5.1"
1034 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
1035 |
1036 | read-metadata@^1.0.0:
1037 | version "1.0.0"
1038 | resolved "https://registry.yarnpkg.com/read-metadata/-/read-metadata-1.0.0.tgz#6df9cbe51184e8ceb7d0668b40ee5191e6f3dac6"
1039 | dependencies:
1040 | yaml-js "0.0.8"
1041 |
1042 | readable-stream@^2.0.0, readable-stream@^2.0.5:
1043 | version "2.3.4"
1044 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071"
1045 | dependencies:
1046 | core-util-is "~1.0.0"
1047 | inherits "~2.0.3"
1048 | isarray "~1.0.0"
1049 | process-nextick-args "~2.0.0"
1050 | safe-buffer "~5.1.1"
1051 | string_decoder "~1.0.3"
1052 | util-deprecate "~1.0.1"
1053 |
1054 | recursive-readdir@^2.1.0:
1055 | version "2.2.2"
1056 | resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f"
1057 | dependencies:
1058 | minimatch "3.0.4"
1059 |
1060 | repeat-string@^1.5.2:
1061 | version "1.6.1"
1062 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
1063 |
1064 | request@^2.67.0:
1065 | version "2.83.0"
1066 | resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
1067 | dependencies:
1068 | aws-sign2 "~0.7.0"
1069 | aws4 "^1.6.0"
1070 | caseless "~0.12.0"
1071 | combined-stream "~1.0.5"
1072 | extend "~3.0.1"
1073 | forever-agent "~0.6.1"
1074 | form-data "~2.3.1"
1075 | har-validator "~5.0.3"
1076 | hawk "~6.0.2"
1077 | http-signature "~1.2.0"
1078 | is-typedarray "~1.0.0"
1079 | isstream "~0.1.2"
1080 | json-stringify-safe "~5.0.1"
1081 | mime-types "~2.1.17"
1082 | oauth-sign "~0.8.2"
1083 | performance-now "^2.1.0"
1084 | qs "~6.5.1"
1085 | safe-buffer "^5.1.1"
1086 | stringstream "~0.0.5"
1087 | tough-cookie "~2.3.3"
1088 | tunnel-agent "^0.6.0"
1089 | uuid "^3.1.0"
1090 |
1091 | restore-cursor@^2.0.0:
1092 | version "2.0.0"
1093 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
1094 | dependencies:
1095 | onetime "^2.0.0"
1096 | signal-exit "^3.0.2"
1097 |
1098 | right-align@^0.1.1:
1099 | version "0.1.3"
1100 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
1101 | dependencies:
1102 | align-text "^0.1.1"
1103 |
1104 | rimraf@^2.2.8, rimraf@^2.5.0, rimraf@^2.6.1:
1105 | version "2.6.2"
1106 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
1107 | dependencies:
1108 | glob "^7.0.5"
1109 |
1110 | run-async@^2.2.0:
1111 | version "2.3.0"
1112 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
1113 | dependencies:
1114 | is-promise "^2.1.0"
1115 |
1116 | rx-lite-aggregates@^4.0.8:
1117 | version "4.0.8"
1118 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
1119 | dependencies:
1120 | rx-lite "*"
1121 |
1122 | rx-lite@*, rx-lite@^4.0.8:
1123 | version "4.0.8"
1124 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
1125 |
1126 | safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1127 | version "5.1.1"
1128 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
1129 |
1130 | seek-bzip@^1.0.5:
1131 | version "1.0.5"
1132 | resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
1133 | dependencies:
1134 | commander "~2.8.1"
1135 |
1136 | semver@^5.1.0:
1137 | version "5.5.0"
1138 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
1139 |
1140 | signal-exit@^3.0.2:
1141 | version "3.0.2"
1142 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
1143 |
1144 | sntp@2.x.x:
1145 | version "2.1.0"
1146 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
1147 | dependencies:
1148 | hoek "4.x.x"
1149 |
1150 | source-map@^0.4.4:
1151 | version "0.4.4"
1152 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
1153 | dependencies:
1154 | amdefine ">=0.0.4"
1155 |
1156 | source-map@~0.5.1:
1157 | version "0.5.7"
1158 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1159 |
1160 | sprintf-js@~1.0.2:
1161 | version "1.0.3"
1162 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1163 |
1164 | sshpk@^1.7.0:
1165 | version "1.13.1"
1166 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
1167 | dependencies:
1168 | asn1 "~0.2.3"
1169 | assert-plus "^1.0.0"
1170 | dashdash "^1.12.0"
1171 | getpass "^0.1.1"
1172 | optionalDependencies:
1173 | bcrypt-pbkdf "^1.0.0"
1174 | ecc-jsbn "~0.1.1"
1175 | jsbn "~0.1.0"
1176 | tweetnacl "~0.14.0"
1177 |
1178 | stat-mode@^0.2.0:
1179 | version "0.2.2"
1180 | resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502"
1181 |
1182 | string-width@^2.1.0:
1183 | version "2.1.1"
1184 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
1185 | dependencies:
1186 | is-fullwidth-code-point "^2.0.0"
1187 | strip-ansi "^4.0.0"
1188 |
1189 | string_decoder@~1.0.3:
1190 | version "1.0.3"
1191 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
1192 | dependencies:
1193 | safe-buffer "~5.1.0"
1194 |
1195 | stringstream@~0.0.5:
1196 | version "0.0.5"
1197 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
1198 |
1199 | strip-ansi@^3.0.0:
1200 | version "3.0.1"
1201 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
1202 | dependencies:
1203 | ansi-regex "^2.0.0"
1204 |
1205 | strip-ansi@^4.0.0:
1206 | version "4.0.0"
1207 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1208 | dependencies:
1209 | ansi-regex "^3.0.0"
1210 |
1211 | strip-dirs@^2.0.0:
1212 | version "2.1.0"
1213 | resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
1214 | dependencies:
1215 | is-natural-number "^4.0.1"
1216 |
1217 | strip-outer@^1.0.0:
1218 | version "1.0.0"
1219 | resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.0.tgz#aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8"
1220 | dependencies:
1221 | escape-string-regexp "^1.0.2"
1222 |
1223 | supports-color@^2.0.0:
1224 | version "2.0.0"
1225 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
1226 |
1227 | supports-color@^5.2.0:
1228 | version "5.2.0"
1229 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a"
1230 | dependencies:
1231 | has-flag "^3.0.0"
1232 |
1233 | tar-stream@^1.5.2:
1234 | version "1.5.5"
1235 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55"
1236 | dependencies:
1237 | bl "^1.0.0"
1238 | end-of-stream "^1.0.0"
1239 | readable-stream "^2.0.0"
1240 | xtend "^4.0.0"
1241 |
1242 | through@^2.3.6:
1243 | version "2.3.8"
1244 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
1245 |
1246 | thunkify-wrap@~1.0.4:
1247 | version "1.0.4"
1248 | resolved "https://registry.yarnpkg.com/thunkify-wrap/-/thunkify-wrap-1.0.4.tgz#b52be548ddfefda20e00b58c6096762b43dd6880"
1249 | dependencies:
1250 | enable "1"
1251 |
1252 | thunkify@^2.1.2:
1253 | version "2.1.2"
1254 | resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
1255 |
1256 | tildify@^1.2.0:
1257 | version "1.2.0"
1258 | resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
1259 | dependencies:
1260 | os-homedir "^1.0.0"
1261 |
1262 | timed-out@^4.0.0:
1263 | version "4.0.1"
1264 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
1265 |
1266 | tmp@^0.0.33:
1267 | version "0.0.33"
1268 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
1269 | dependencies:
1270 | os-tmpdir "~1.0.2"
1271 |
1272 | toml@^2.3.2:
1273 | version "2.3.3"
1274 | resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.3.tgz#8d683d729577cb286231dfc7a8affe58d31728fb"
1275 |
1276 | tough-cookie@~2.3.3:
1277 | version "2.3.3"
1278 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
1279 | dependencies:
1280 | punycode "^1.4.1"
1281 |
1282 | trim-repeated@^1.0.0:
1283 | version "1.0.0"
1284 | resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
1285 | dependencies:
1286 | escape-string-regexp "^1.0.2"
1287 |
1288 | tunnel-agent@^0.6.0:
1289 | version "0.6.0"
1290 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
1291 | dependencies:
1292 | safe-buffer "^5.0.1"
1293 |
1294 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
1295 | version "0.14.5"
1296 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
1297 |
1298 | uglify-js@^2.6:
1299 | version "2.8.29"
1300 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
1301 | dependencies:
1302 | source-map "~0.5.1"
1303 | yargs "~3.10.0"
1304 | optionalDependencies:
1305 | uglify-to-browserify "~1.0.0"
1306 |
1307 | uglify-to-browserify@~1.0.0:
1308 | version "1.0.2"
1309 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
1310 |
1311 | uid@0.0.2:
1312 | version "0.0.2"
1313 | resolved "https://registry.yarnpkg.com/uid/-/uid-0.0.2.tgz#5e4a5d4b78138b4f70f89fd3c76fc59aa9d2f103"
1314 |
1315 | unbzip2-stream@^1.0.9:
1316 | version "1.2.5"
1317 | resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
1318 | dependencies:
1319 | buffer "^3.0.1"
1320 | through "^2.3.6"
1321 |
1322 | unyield@0.0.1:
1323 | version "0.0.1"
1324 | resolved "https://registry.yarnpkg.com/unyield/-/unyield-0.0.1.tgz#150e65da42bf7742445b958a64eb9b85d1d2b180"
1325 | dependencies:
1326 | co "~3.1.0"
1327 |
1328 | unzip-response@^2.0.1:
1329 | version "2.0.1"
1330 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
1331 |
1332 | url-parse-lax@^1.0.0:
1333 | version "1.0.0"
1334 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
1335 | dependencies:
1336 | prepend-http "^1.0.1"
1337 |
1338 | url-to-options@^1.0.1:
1339 | version "1.0.1"
1340 | resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
1341 |
1342 | user-home@^2.0.0:
1343 | version "2.0.0"
1344 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
1345 | dependencies:
1346 | os-homedir "^1.0.0"
1347 |
1348 | util-deprecate@~1.0.1:
1349 | version "1.0.2"
1350 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1351 |
1352 | uuid@^3.1.0:
1353 | version "3.2.1"
1354 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
1355 |
1356 | validate-npm-package-name@^3.0.0:
1357 | version "3.0.0"
1358 | resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
1359 | dependencies:
1360 | builtins "^1.0.3"
1361 |
1362 | verror@1.10.0:
1363 | version "1.10.0"
1364 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
1365 | dependencies:
1366 | assert-plus "^1.0.0"
1367 | core-util-is "1.0.2"
1368 | extsprintf "^1.2.0"
1369 |
1370 | vue-cli@^2.9.3:
1371 | version "2.9.3"
1372 | resolved "https://registry.yarnpkg.com/vue-cli/-/vue-cli-2.9.3.tgz#c363ec48a7f55f72b76d90f44c001cc52d2fe0a8"
1373 | dependencies:
1374 | uid "0.0.2"
1375 | async "^2.4.0"
1376 | chalk "^2.1.0"
1377 | coffee-script "1.12.7"
1378 | commander "^2.9.0"
1379 | consolidate "^0.14.0"
1380 | download-git-repo "^1.0.1"
1381 | handlebars "^4.0.5"
1382 | inquirer "^3.3.0"
1383 | metalsmith "^2.1.0"
1384 | minimatch "^3.0.0"
1385 | multimatch "^2.1.0"
1386 | ora "^1.3.0"
1387 | read-metadata "^1.0.0"
1388 | request "^2.67.0"
1389 | rimraf "^2.5.0"
1390 | semver "^5.1.0"
1391 | tildify "^1.2.0"
1392 | user-home "^2.0.0"
1393 | validate-npm-package-name "^3.0.0"
1394 |
1395 | ware@^1.2.0:
1396 | version "1.3.0"
1397 | resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4"
1398 | dependencies:
1399 | wrap-fn "^0.1.0"
1400 |
1401 | win-fork@^1.1.1:
1402 | version "1.1.1"
1403 | resolved "https://registry.yarnpkg.com/win-fork/-/win-fork-1.1.1.tgz#8f58e0656fca00adc8c86a2b89e3cd2d6a2d5e5e"
1404 |
1405 | window-size@0.1.0:
1406 | version "0.1.0"
1407 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
1408 |
1409 | wordwrap@0.0.2:
1410 | version "0.0.2"
1411 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
1412 |
1413 | wordwrap@~0.0.2:
1414 | version "0.0.3"
1415 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
1416 |
1417 | wrap-fn@^0.1.0:
1418 | version "0.1.5"
1419 | resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845"
1420 | dependencies:
1421 | co "3.1.0"
1422 |
1423 | wrappy@1:
1424 | version "1.0.2"
1425 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1426 |
1427 | xtend@^4.0.0:
1428 | version "4.0.1"
1429 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
1430 |
1431 | yaml-js@0.0.8:
1432 | version "0.0.8"
1433 | resolved "https://registry.yarnpkg.com/yaml-js/-/yaml-js-0.0.8.tgz#87cfa5a9613f48e26005420d6a8ee0da6fe8daec"
1434 |
1435 | yargs@~3.10.0:
1436 | version "3.10.0"
1437 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
1438 | dependencies:
1439 | camelcase "^1.0.2"
1440 | cliui "^2.1.0"
1441 | decamelize "^1.0.0"
1442 | window-size "0.1.0"
1443 |
1444 | yauzl@^2.4.2:
1445 | version "2.9.1"
1446 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f"
1447 | dependencies:
1448 | buffer-crc32 "~0.2.3"
1449 | fd-slicer "~1.0.1"
1450 |
--------------------------------------------------------------------------------