mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
[kbn-plugin-generator] add plugin generator to the repo (#16655)
* [kbn-plugin-generator] add plugin generator to the repo * [plugin-generator] use snake_case plugin name for directory name * [plugin-generator] fix typo * [plugin-generator] remove translation support until we resume i18n efforts * [yarn] update lockfile * [mocha] remove plugin-generator selector from mocha tests * [plugin-generator] update generated readme to recommend yarn * [plugin-generator] add readme to generator pacakge * [plugin-generator] link from plugin-resource docs * [plugin-generator] mention very important `kbn bootstrap` script * [plugin-generator] rework some parts of the README * [plugin-generator] log actual directory name with system separators * [plugin-generator] include bootstrap/yarn preinstall check script
This commit is contained in:
parent
2484982a2e
commit
2c7a1f34cb
25 changed files with 2852 additions and 18 deletions
|
@ -16,4 +16,5 @@
|
|||
/packages/kbn-build/dist
|
||||
/packages/kbn-build/vendor
|
||||
/packages/kbn-build/**/fixtures
|
||||
/packages/kbn-plugin-generator/sao_template/template
|
||||
!/.eslintrc.js
|
||||
|
|
12
.eslintrc.js
12
.eslintrc.js
|
@ -16,7 +16,11 @@ module.exports = {
|
|||
overrides: [
|
||||
// Enable Prettier
|
||||
{
|
||||
files: ['.eslintrc.js', 'packages/kbn-build/**/*.js'],
|
||||
files: [
|
||||
'.eslintrc.js',
|
||||
'packages/kbn-build/**/*',
|
||||
'packages/kbn-plugin-generator/**/*',
|
||||
],
|
||||
plugins: ['prettier'],
|
||||
rules: Object.assign(
|
||||
{ 'prettier/prettier': 'error' },
|
||||
|
@ -27,7 +31,11 @@ module.exports = {
|
|||
|
||||
// files not transpiled by babel can't using things like object-spread
|
||||
{
|
||||
files: ['.eslintrc.js', 'packages/kbn-plugin-helpers/**/*.js'],
|
||||
files: [
|
||||
'.eslintrc.js',
|
||||
'packages/kbn-plugin-helpers/**/*',
|
||||
'packages/kbn-plugin-generator/**/*',
|
||||
],
|
||||
rules: {
|
||||
'prefer-object-spread/prefer-object-spread': 'off',
|
||||
},
|
||||
|
|
|
@ -20,7 +20,13 @@ Many Kibana developers hang out on `irc.freenode.net` in the `#kibana` channel.
|
|||
[float]
|
||||
==== Plugin Generator
|
||||
|
||||
Check out the https://github.com/elastic/template-kibana-plugin/[plugin generator] to kick-start your plugin.
|
||||
It is recommended that you kick-start your plugin by generating it with the {repo}tree/{branch}/packages/kbn-plugin-generator[Kibana Plugin Generator]. Run the following within the Kibana repo and you will be asked a couple questions, see some progress bars, and have a freshly generated plugin ready for you to play within Kibana's sibling `kibana-extra` folder.
|
||||
|
||||
["source","shell"]
|
||||
-----------
|
||||
node scripts/generate_plugin my_plugin_name # replace "my_plugin_name" with your desired plugin name
|
||||
-----------
|
||||
|
||||
|
||||
[float]
|
||||
==== Directory structure for plugins
|
||||
|
|
|
@ -221,6 +221,7 @@
|
|||
"@elastic/eslint-config-kibana": "link:packages/eslint-config-kibana",
|
||||
"@elastic/eslint-import-resolver-kibana": "1.0.0",
|
||||
"@elastic/eslint-plugin-kibana-custom": "link:packages/eslint-plugin-kibana-custom",
|
||||
"@kbn/plugin-generator": "link:packages/kbn-plugin-generator",
|
||||
"angular-mocks": "1.4.7",
|
||||
"babel-eslint": "8.1.2",
|
||||
"backport": "2.2.0",
|
||||
|
|
82
packages/kbn-plugin-generator/README.md
Normal file
82
packages/kbn-plugin-generator/README.md
Normal file
|
@ -0,0 +1,82 @@
|
|||
# Kibana Plugin Generator
|
||||
|
||||
This package can be used to generate a Kibana plugin from the Kibana repo.
|
||||
|
||||
## Setup
|
||||
|
||||
Before you can use this plugin generator you must setup your [Kibana development environment](../../CONTRIBUTING.md#development-environment-setup). If you can successfully run `yarn kbn bootstrap` then you are ready to generate plugins!
|
||||
|
||||
## Compatibility
|
||||
|
||||
The plugin generator became a part of the Kibana project as of Kibana 6.3. If you are targeting versions **before Kibana 6.3** then use the [Kibana plugin sao template](https://github.com/elastic/template-kibana-plugin).
|
||||
|
||||
If you are targeting **Kibana 6.3 or greater** then checkout the corresponding Kibana branch and run the plugin generator.
|
||||
|
||||
## Quick Start
|
||||
|
||||
To target the current development version of Kibana just use the default `master` branch.
|
||||
|
||||
```sh
|
||||
node scripts/generate_plugin my_plugin_name
|
||||
# generates a plugin in `../kibana-extra/my_plugin_name`
|
||||
```
|
||||
|
||||
To target 6.3, use the `6.x` branch (until the `6.3` branch is created).
|
||||
|
||||
```sh
|
||||
git checkout 6.x
|
||||
yarn kbn bootstrap # always bootstrap when switching branches
|
||||
node scripts/generate_plugin
|
||||
# generates a plugin for Kibana 6.3 in `../kibana-extra/my_plugin_name`
|
||||
```
|
||||
|
||||
The generate script supports a few flags; run it with the `--help` flag to learn more.
|
||||
|
||||
```sh
|
||||
node scripts/generate_plugin --help
|
||||
```
|
||||
|
||||
## Updating
|
||||
|
||||
Since the Plugin Generator is now a part of the Kibana repo, when you update your local checkout of the Kibana repository and `bootstrap` everything should be up to date!
|
||||
|
||||
> ***NOTE:*** These commands should be run from the Kibana repo, and `upstream` is our convention for the git remote that references https://github.com/elastic/kibana.git, unless you added this remote you might need to use `origin`.
|
||||
|
||||
```sh
|
||||
git pull upstream master
|
||||
yarn kbn bootstrap
|
||||
```
|
||||
|
||||
## Plugin Development Scripts
|
||||
|
||||
Generated plugins receive a handful of scripts that can be used during development. Those scripts are detailed in the [README.md](sao_template/template/README.md) file in each newly generated plugin, and expose the scripts provided by the [Kibana plugin helpers](../kbn-plugin-helpers), but here is a quick reference in case you need it:
|
||||
|
||||
> ***NOTE:*** All of these scripts should be run from the generated plugin.
|
||||
|
||||
- `yarn kbn bootstrap`
|
||||
|
||||
Install dependencies and crosslink Kibana and all projects/plugins.
|
||||
|
||||
> ***IMPORTANT:*** Use this script instead of `yarn` to install dependencies when switching branches, and re-run it whenever your dependencies change.
|
||||
|
||||
- `yarn start`
|
||||
|
||||
Start kibana and have it include this plugin. You can pass any arguments that you would normally send to `bin/kibana`
|
||||
|
||||
```
|
||||
yarn start --elasticsearch.url http://localhost:9220
|
||||
```
|
||||
|
||||
- `yarn build`
|
||||
|
||||
Build a distributable archive of your plugin.
|
||||
|
||||
- `yarn test:browser`
|
||||
|
||||
Run the browser tests in a real web browser.
|
||||
|
||||
- `yarn test:server`
|
||||
|
||||
Run the server tests using mocha.
|
||||
|
||||
For more information about any of these commands run `yarn ${task} --help`. For a full list of tasks run `yarn run` or take a look in the `package.json` file.
|
48
packages/kbn-plugin-generator/index.js
Normal file
48
packages/kbn-plugin-generator/index.js
Normal file
|
@ -0,0 +1,48 @@
|
|||
const { resolve } = require('path');
|
||||
|
||||
const dedent = require('dedent');
|
||||
const sao = require('sao');
|
||||
const chalk = require('chalk');
|
||||
const getopts = require('getopts');
|
||||
const snakeCase = require('lodash.snakecase');
|
||||
|
||||
exports.run = function run(argv) {
|
||||
const options = getopts(argv, {
|
||||
alias: {
|
||||
h: 'help',
|
||||
},
|
||||
});
|
||||
|
||||
if (!options.help && options._.length !== 1) {
|
||||
console.log(chalk`{red {bold [name]} is a required argument}\n`);
|
||||
options.help = true;
|
||||
}
|
||||
|
||||
if (options.help) {
|
||||
console.log(
|
||||
dedent(chalk`
|
||||
{dim usage:} node scripts/generate-plugin {bold [name]}
|
||||
|
||||
generate a fresh Kibana plugin in the ../kibana-extra/ directory
|
||||
`) + '\n'
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const name = options._[0];
|
||||
const template = resolve(__dirname, './sao_template');
|
||||
const kibanaExtra = resolve(__dirname, '../../../kibana-extra');
|
||||
const targetPath = resolve(kibanaExtra, snakeCase(name));
|
||||
|
||||
sao({
|
||||
template: template,
|
||||
targetPath: targetPath,
|
||||
configOptions: {
|
||||
name,
|
||||
},
|
||||
}).catch(error => {
|
||||
console.error(chalk`{red fatal error}!`);
|
||||
console.error(error.stack);
|
||||
process.exit(1);
|
||||
});
|
||||
};
|
15
packages/kbn-plugin-generator/package.json
Normal file
15
packages/kbn-plugin-generator/package.json
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"name": "@kbn/plugin-generator",
|
||||
"private": true,
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"chalk": "^2.3.0",
|
||||
"dedent": "^0.7.0",
|
||||
"execa": "^0.9.0",
|
||||
"getopts": "^2.0.0",
|
||||
"lodash.camelcase": "^4.3.0",
|
||||
"lodash.kebabcase": "^4.1.1",
|
||||
"lodash.startcase": "^4.4.0",
|
||||
"sao": "^0.22.12"
|
||||
}
|
||||
}
|
92
packages/kbn-plugin-generator/sao_template/sao.js
Executable file
92
packages/kbn-plugin-generator/sao_template/sao.js
Executable file
|
@ -0,0 +1,92 @@
|
|||
const { resolve, relative, dirname } = require('path');
|
||||
|
||||
const kebabCase = require('lodash.kebabcase');
|
||||
const startCase = require('lodash.startcase');
|
||||
const camelCase = require('lodash.camelcase');
|
||||
const snakeCase = require('lodash.snakecase');
|
||||
const execa = require('execa');
|
||||
const chalk = require('chalk');
|
||||
|
||||
const pkg = require('../package.json');
|
||||
const kibanaPkgPath = require.resolve('../../../package.json');
|
||||
const kibanaPkg = require(kibanaPkgPath);
|
||||
|
||||
const KBN_DIR = dirname(kibanaPkgPath);
|
||||
|
||||
module.exports = function({ name }) {
|
||||
return {
|
||||
prompts: {
|
||||
description: {
|
||||
message: 'Provide a short description',
|
||||
default: 'An awesome Kibana plugin',
|
||||
},
|
||||
kbnVersion: {
|
||||
message: 'What Kibana version are you targeting?',
|
||||
default: kibanaPkg.branch,
|
||||
},
|
||||
generateApp: {
|
||||
type: 'confirm',
|
||||
message: 'Should an app component be generated?',
|
||||
default: true,
|
||||
},
|
||||
generateTranslations: {
|
||||
type: 'confirm',
|
||||
message: 'Should translation files be generated?',
|
||||
default: true,
|
||||
},
|
||||
generateHack: {
|
||||
type: 'confirm',
|
||||
message: 'Should a hack component be generated?',
|
||||
default: true,
|
||||
},
|
||||
generateApi: {
|
||||
type: 'confirm',
|
||||
message: 'Should a server API be generated?',
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
filters: {
|
||||
'public/**/*': 'generateApp',
|
||||
'translations/**/*': 'generateTranslations',
|
||||
'public/hack.js': 'generateHack',
|
||||
'server/**/*': 'generateApi',
|
||||
},
|
||||
move: {
|
||||
gitignore: '.gitignore',
|
||||
eslintrc: '.eslintrc',
|
||||
},
|
||||
data: answers =>
|
||||
Object.assign(
|
||||
{
|
||||
templateVersion: pkg.version,
|
||||
kebabCase,
|
||||
startCase,
|
||||
camelCase,
|
||||
name,
|
||||
},
|
||||
answers
|
||||
),
|
||||
enforceNewFolder: true,
|
||||
installDependencies: false,
|
||||
gitInit: true,
|
||||
post({ log }) {
|
||||
return execa('yarn', ['kbn', 'bootstrap'], {
|
||||
cwd: KBN_DIR,
|
||||
stdio: 'inherit',
|
||||
}).then(() => {
|
||||
const dir = relative(
|
||||
process.cwd(),
|
||||
resolve(KBN_DIR, `../kibana-extra`, snakeCase(name))
|
||||
);
|
||||
|
||||
log.success(chalk`🎉
|
||||
|
||||
Your plugin has been created in {bold ${dir}}. Move into that directory to run it:
|
||||
|
||||
{bold cd "${dir}"}
|
||||
{bold yarn start}
|
||||
`);
|
||||
});
|
||||
},
|
||||
};
|
||||
};
|
182
packages/kbn-plugin-generator/sao_template/sao.test.js
Executable file
182
packages/kbn-plugin-generator/sao_template/sao.test.js
Executable file
|
@ -0,0 +1,182 @@
|
|||
const sao = require('sao');
|
||||
|
||||
const templatePkg = require('../package.json');
|
||||
|
||||
const template = {
|
||||
fromPath: __dirname,
|
||||
configOptions: {
|
||||
name: 'Some fancy plugin',
|
||||
},
|
||||
};
|
||||
|
||||
function getFileContents(file) {
|
||||
return file.contents.toString();
|
||||
}
|
||||
|
||||
function getConfig(file) {
|
||||
const contents = getFileContents(file).replace(/\r?\n/gm, '');
|
||||
return contents.split('kibana.Plugin(')[1];
|
||||
}
|
||||
|
||||
describe('plugin generator sao integration', () => {
|
||||
test('skips files when answering no', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
generateApp: false,
|
||||
generateHack: false,
|
||||
generateApi: false,
|
||||
});
|
||||
|
||||
expect(res.fileList).not.toContain('public/app.js');
|
||||
expect(res.fileList).not.toContain('public/__tests__/index.js');
|
||||
expect(res.fileList).not.toContain('public/hack.js');
|
||||
expect(res.fileList).not.toContain('server/routes/example.js');
|
||||
expect(res.fileList).not.toContain('server/__tests__/index.js');
|
||||
|
||||
const uiExports = getConfig(res.files['index.js']);
|
||||
expect(uiExports).not.toContain('app:');
|
||||
expect(uiExports).not.toContain('hacks:');
|
||||
expect(uiExports).not.toContain('init(server, options)');
|
||||
});
|
||||
|
||||
it('includes app when answering yes', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
generateApp: true,
|
||||
generateHack: false,
|
||||
generateApi: false,
|
||||
});
|
||||
|
||||
// check output files
|
||||
expect(res.fileList).toContain('public/app.js');
|
||||
expect(res.fileList).toContain('public/__tests__/index.js');
|
||||
expect(res.fileList).not.toContain('public/hack.js');
|
||||
expect(res.fileList).not.toContain('server/routes/example.js');
|
||||
expect(res.fileList).not.toContain('server/__tests__/index.js');
|
||||
|
||||
const uiExports = getConfig(res.files['index.js']);
|
||||
expect(uiExports).toContain('app:');
|
||||
expect(uiExports).not.toContain('hacks:');
|
||||
expect(uiExports).not.toContain('init(server, options)');
|
||||
});
|
||||
|
||||
it('includes hack when answering yes', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
generateApp: true,
|
||||
generateHack: true,
|
||||
generateApi: false,
|
||||
});
|
||||
|
||||
// check output files
|
||||
expect(res.fileList).toContain('public/app.js');
|
||||
expect(res.fileList).toContain('public/__tests__/index.js');
|
||||
expect(res.fileList).toContain('public/hack.js');
|
||||
expect(res.fileList).not.toContain('server/routes/example.js');
|
||||
expect(res.fileList).not.toContain('server/__tests__/index.js');
|
||||
|
||||
const uiExports = getConfig(res.files['index.js']);
|
||||
expect(uiExports).toContain('app:');
|
||||
expect(uiExports).toContain('hacks:');
|
||||
expect(uiExports).not.toContain('init(server, options)');
|
||||
});
|
||||
|
||||
it('includes server api when answering yes', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
generateApp: true,
|
||||
generateHack: true,
|
||||
generateApi: true,
|
||||
});
|
||||
|
||||
// check output files
|
||||
expect(res.fileList).toContain('public/app.js');
|
||||
expect(res.fileList).toContain('public/__tests__/index.js');
|
||||
expect(res.fileList).toContain('public/hack.js');
|
||||
expect(res.fileList).toContain('server/routes/example.js');
|
||||
expect(res.fileList).toContain('server/__tests__/index.js');
|
||||
|
||||
const uiExports = getConfig(res.files['index.js']);
|
||||
expect(uiExports).toContain('app:');
|
||||
expect(uiExports).toContain('hacks:');
|
||||
expect(uiExports).toContain('init(server, options)');
|
||||
});
|
||||
|
||||
it('plugin config has correct name and main path', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
generateApp: true,
|
||||
generateHack: true,
|
||||
generateApi: true,
|
||||
});
|
||||
|
||||
const indexContents = getFileContents(res.files['index.js']);
|
||||
const nameLine = indexContents.match('name: (.*)')[1];
|
||||
const mainLine = indexContents.match('main: (.*)')[1];
|
||||
|
||||
expect(nameLine).toContain('some-fancy-plugin');
|
||||
expect(mainLine).toContain('plugins/some-fancy-plugin/app');
|
||||
});
|
||||
|
||||
it('plugin package has correct name', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
generateApp: true,
|
||||
generateHack: true,
|
||||
generateApi: true,
|
||||
});
|
||||
|
||||
const packageContents = getFileContents(res.files['package.json']);
|
||||
const pkg = JSON.parse(packageContents);
|
||||
|
||||
expect(pkg.name).toBe('some-fancy-plugin');
|
||||
});
|
||||
|
||||
it('package has version "kibana" with master', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
kbnVersion: 'master',
|
||||
});
|
||||
|
||||
const packageContents = getFileContents(res.files['package.json']);
|
||||
const pkg = JSON.parse(packageContents);
|
||||
|
||||
expect(pkg.kibana.version).toBe('kibana');
|
||||
});
|
||||
|
||||
it('package has correct version', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
kbnVersion: 'v6.0.0',
|
||||
});
|
||||
|
||||
const packageContents = getFileContents(res.files['package.json']);
|
||||
const pkg = JSON.parse(packageContents);
|
||||
|
||||
expect(pkg.kibana.version).toBe('v6.0.0');
|
||||
});
|
||||
|
||||
it('package has correct templateVersion', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
kbnVersion: 'master',
|
||||
});
|
||||
|
||||
const packageContents = getFileContents(res.files['package.json']);
|
||||
const pkg = JSON.parse(packageContents);
|
||||
|
||||
expect(pkg.kibana.templateVersion).toBe(templatePkg.version);
|
||||
});
|
||||
|
||||
it('sample app has correct values', async () => {
|
||||
const res = await sao.mockPrompt(template, {
|
||||
generateApp: true,
|
||||
generateHack: true,
|
||||
generateApi: true,
|
||||
});
|
||||
|
||||
const contents = getFileContents(res.files['public/app.js']);
|
||||
const controllerLine = contents.match('.controller(.*)')[1];
|
||||
const titleLine = contents.match('\\$scope.title(.*)')[1];
|
||||
|
||||
expect(controllerLine).toContain('someFancyPluginHelloWorld');
|
||||
expect(titleLine).toContain('Some Fancy Plugin');
|
||||
});
|
||||
|
||||
it('includes dotfiles', async () => {
|
||||
const res = await sao.mockPrompt(template);
|
||||
expect(res.files['.gitignore']).toBeTruthy();
|
||||
expect(res.files['.eslintrc']).toBeTruthy();
|
||||
});
|
||||
});
|
39
packages/kbn-plugin-generator/sao_template/template/README.md
Executable file
39
packages/kbn-plugin-generator/sao_template/template/README.md
Executable file
|
@ -0,0 +1,39 @@
|
|||
# <%= name %>
|
||||
|
||||
<%- (description || '').split('\n').map(function (line) {
|
||||
return '> ' + line
|
||||
}).join('\n') %>
|
||||
|
||||
---
|
||||
|
||||
## development
|
||||
|
||||
See the [kibana contributing guide](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md) for instructions setting up your development environment. Once you have completed that, use the following yarn scripts.
|
||||
|
||||
- `yarn kbn bootstrap`
|
||||
|
||||
Install dependencies and crosslink Kibana and all projects/plugins.
|
||||
|
||||
> ***IMPORTANT:*** Use this script instead of `yarn` to install dependencies when switching branches, and re-run it whenever your dependencies change.
|
||||
|
||||
- `yarn start`
|
||||
|
||||
Start kibana and have it include this plugin. You can pass any arguments that you would normally send to `bin/kibana`
|
||||
|
||||
```
|
||||
yarn start --elasticsearch.url http://localhost:9220
|
||||
```
|
||||
|
||||
- `yarn build`
|
||||
|
||||
Build a distributable archive of your plugin.
|
||||
|
||||
- `yarn test:browser`
|
||||
|
||||
Run the browser tests in a real web browser.
|
||||
|
||||
- `yarn test:server`
|
||||
|
||||
Run the server tests using mocha.
|
||||
|
||||
For more information about any of these commands run `yarn ${task} --help`. For a full list of tasks checkout the `package.json` file, or run `yarn run`.
|
7
packages/kbn-plugin-generator/sao_template/template/eslintrc
Executable file
7
packages/kbn-plugin-generator/sao_template/template/eslintrc
Executable file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
extends: "@elastic/kibana"
|
||||
|
||||
settings:
|
||||
import/resolver:
|
||||
'@elastic/eslint-import-resolver-kibana':
|
||||
rootPackageName: '<%= kebabCase(name) %>'
|
3
packages/kbn-plugin-generator/sao_template/template/gitignore
Executable file
3
packages/kbn-plugin-generator/sao_template/template/gitignore
Executable file
|
@ -0,0 +1,3 @@
|
|||
npm-debug.log*
|
||||
node_modules
|
||||
/build/
|
36
packages/kbn-plugin-generator/sao_template/template/index.js
Executable file
36
packages/kbn-plugin-generator/sao_template/template/index.js
Executable file
|
@ -0,0 +1,36 @@
|
|||
<% if (generateApi) { %>import exampleRoute from './server/routes/example';<% } %>
|
||||
|
||||
export default function (kibana) {
|
||||
return new kibana.Plugin({
|
||||
require: ['elasticsearch'],
|
||||
name: '<%= kebabCase(name) %>',
|
||||
uiExports: {
|
||||
<% if (generateApp) { %>
|
||||
app: {
|
||||
title: '<%= startCase(name) %>',
|
||||
description: '<%= description %>',
|
||||
main: 'plugins/<%= kebabCase(name) %>/app'
|
||||
},
|
||||
<% } %>
|
||||
<% if (generateHack) { %>
|
||||
hacks: [
|
||||
'plugins/<%= name %>/hack'
|
||||
]
|
||||
<% } %>
|
||||
},
|
||||
|
||||
config(Joi) {
|
||||
return Joi.object({
|
||||
enabled: Joi.boolean().default(true),
|
||||
}).default();
|
||||
},
|
||||
|
||||
<% if (generateApi) { %>
|
||||
init(server, options) {
|
||||
// Add server routes and initialize the plugin here
|
||||
exampleRoute(server);
|
||||
}
|
||||
<% } %>
|
||||
|
||||
});
|
||||
};
|
33
packages/kbn-plugin-generator/sao_template/template/package.json
Executable file
33
packages/kbn-plugin-generator/sao_template/template/package.json
Executable file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"name": "<%= kebabCase(name) %>",
|
||||
"version": "0.0.0",
|
||||
"description": "<%= description %>",
|
||||
"main": "index.js",
|
||||
"kibana": {
|
||||
"version": "<%= (kbnVersion === 'master') ? 'kibana' : kbnVersion %>",
|
||||
"templateVersion": "<%= templateVersion %>"
|
||||
},
|
||||
"scripts": {
|
||||
"preinstall": "node ../../kibana/preinstall_check",
|
||||
"kbn": "node ../../kibana/scripts/kbn",
|
||||
"lint": "eslint **/*.js",
|
||||
"start": "plugin-helpers start",
|
||||
"test:server": "plugin-helpers test:server",
|
||||
"test:browser": "plugin-helpers test:browser",
|
||||
"build": "plugin-helpers build"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@elastic/eslint-config-kibana": "link:../../kibana/packages/eslint-config-kibana",
|
||||
"@elastic/eslint-import-resolver-kibana": "^0.9.0",
|
||||
"@kbn/plugin-helpers": "link:../../kibana/packages/kbn-plugin-helpers",
|
||||
"babel-eslint": "^8.0.2",
|
||||
"eslint": "^4.11.0",
|
||||
"eslint-plugin-babel": "^4.1.1",
|
||||
"eslint-plugin-import": "^2.3.0",
|
||||
"eslint-plugin-jest": "^21.3.2",
|
||||
"eslint-plugin-mocha": "^4.9.0",
|
||||
"eslint-plugin-prefer-object-spread": "^1.2.1",
|
||||
"eslint-plugin-react": "^7.0.1",
|
||||
"expect.js": "^0.3.1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
import expect from 'expect.js';
|
||||
|
||||
describe('suite', () => {
|
||||
it('is a test', () => {
|
||||
expect(true).to.equal(true);
|
||||
});
|
||||
});
|
34
packages/kbn-plugin-generator/sao_template/template/public/app.js
Executable file
34
packages/kbn-plugin-generator/sao_template/template/public/app.js
Executable file
|
@ -0,0 +1,34 @@
|
|||
import moment from 'moment';
|
||||
import { uiModules } from 'ui/modules';
|
||||
import uiRoutes from 'ui/routes';
|
||||
|
||||
import 'ui/autoload/styles';
|
||||
import './less/main.less';
|
||||
import template from './templates/index.html';
|
||||
|
||||
uiRoutes.enable();
|
||||
uiRoutes
|
||||
.when('/', {
|
||||
template,
|
||||
resolve: {
|
||||
currentTime($http) {
|
||||
return $http.get('../api/<%= name %>/example').then(function (resp) {
|
||||
return resp.data.time;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
uiModules
|
||||
.get('app/<%= name %>', [])
|
||||
.controller('<%= camelCase(name) %>HelloWorld', function ($scope, $route, $interval) {
|
||||
$scope.title = '<%= startCase(name) %>';
|
||||
$scope.description = '<%= description %>';
|
||||
|
||||
const currentTime = moment($route.current.locals.currentTime);
|
||||
$scope.currentTime = currentTime.format('HH:mm:ss');
|
||||
const unsubscribe = $interval(function () {
|
||||
$scope.currentTime = currentTime.add(1, 'second').format('HH:mm:ss');
|
||||
}, 1000);
|
||||
$scope.$watch('$destroy', unsubscribe);
|
||||
});
|
7
packages/kbn-plugin-generator/sao_template/template/public/hack.js
Executable file
7
packages/kbn-plugin-generator/sao_template/template/public/hack.js
Executable file
|
@ -0,0 +1,7 @@
|
|||
import $ from 'jquery';
|
||||
|
||||
$(document.body).on('keypress', function (event) {
|
||||
if (event.which === 58) {
|
||||
alert('boo!');
|
||||
}
|
||||
});
|
|
@ -0,0 +1,4 @@
|
|||
.container {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<div class="container" ng-controller="<%= camelCase(name) %>HelloWorld">
|
||||
<div class="row">
|
||||
<div class="col-12-sm">
|
||||
<div class="well">
|
||||
<h2>Congratulations</h2>
|
||||
<p class="lead">You've successfully created your first Kibana Plugin!</p>
|
||||
</div>
|
||||
<h1>{{ title }}</h1>
|
||||
<p class="lead">{{ description }}</p>
|
||||
<p>The current time is {{ currentTime }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,7 @@
|
|||
import expect from 'expect.js';
|
||||
|
||||
describe('suite', () => {
|
||||
it('is a test', () => {
|
||||
expect(true).to.equal(true);
|
||||
});
|
||||
});
|
11
packages/kbn-plugin-generator/sao_template/template/server/routes/example.js
Executable file
11
packages/kbn-plugin-generator/sao_template/template/server/routes/example.js
Executable file
|
@ -0,0 +1,11 @@
|
|||
export default function (server) {
|
||||
|
||||
server.route({
|
||||
path: '/api/<%= name %>/example',
|
||||
method: 'GET',
|
||||
handler(req, reply) {
|
||||
reply({ time: (new Date()).toISOString() });
|
||||
}
|
||||
});
|
||||
|
||||
}
|
1690
packages/kbn-plugin-generator/yarn.lock
Normal file
1690
packages/kbn-plugin-generator/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
1
scripts/generate_plugin.js
Normal file
1
scripts/generate_plugin.js
Normal file
|
@ -0,0 +1 @@
|
|||
require('@kbn/plugin-generator').run(process.argv.slice(2));
|
|
@ -11,5 +11,6 @@ export const DEFAULT_ESLINT_PATHS = [
|
|||
'ui_framework/doc_site/src',
|
||||
'ui_framework/generator_kui',
|
||||
'utilities',
|
||||
'webpackShims'
|
||||
'webpackShims',
|
||||
'.eslintrc.js'
|
||||
];
|
||||
|
|
534
yarn.lock
534
yarn.lock
|
@ -132,6 +132,10 @@
|
|||
version "0.0.0"
|
||||
uid ""
|
||||
|
||||
"@kbn/plugin-generator@link:packages/kbn-plugin-generator":
|
||||
version "0.0.0"
|
||||
uid ""
|
||||
|
||||
"@types/json-stable-stringify@^1.0.32":
|
||||
version "1.0.32"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz#121f6917c4389db3923640b2e68de5fa64dda88e"
|
||||
|
@ -1372,6 +1376,10 @@ base64-arraybuffer@0.1.5:
|
|||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
|
||||
|
||||
base64-js@0.0.8:
|
||||
version "0.0.8"
|
||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
|
||||
|
||||
base64-js@^1.0.2:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
|
||||
|
@ -1441,6 +1449,12 @@ binary-extensions@^1.0.0:
|
|||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.0.0.tgz#e597d1a7a6a3558a2d1c7241a16c99965e6aa40f"
|
||||
|
||||
bl@^1.0.0:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
|
||||
dependencies:
|
||||
readable-stream "^2.0.5"
|
||||
|
||||
bl@~1.0.0:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/bl/-/bl-1.0.3.tgz#fc5421a28fd4226036c3b3891a66a25bc64d226e"
|
||||
|
@ -1549,7 +1563,7 @@ boom@5.2.0, boom@5.x.x:
|
|||
dependencies:
|
||||
hoek "4.x.x"
|
||||
|
||||
boxen@1.3.0, boxen@^1.2.1:
|
||||
boxen@1.3.0, boxen@^1.2.1, boxen@^1.2.2:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
|
||||
dependencies:
|
||||
|
@ -1697,6 +1711,14 @@ buffer-xor@^1.0.3:
|
|||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
|
||||
|
||||
buffer@^3.0.1:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
|
||||
dependencies:
|
||||
base64-js "0.0.8"
|
||||
ieee754 "^1.1.4"
|
||||
isarray "^1.0.0"
|
||||
|
||||
buffer@^4.3.0:
|
||||
version "4.9.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
|
||||
|
@ -1742,6 +1764,29 @@ bytes@3.0.0:
|
|||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
|
||||
|
||||
cac@^3.0.3:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/cac/-/cac-3.0.4.tgz#6d24ceec372efe5c9b798808bc7f49b47242a4ef"
|
||||
dependencies:
|
||||
camelcase-keys "^3.0.0"
|
||||
chalk "^1.1.3"
|
||||
indent-string "^3.0.0"
|
||||
minimist "^1.2.0"
|
||||
read-pkg-up "^1.0.1"
|
||||
suffix "^0.1.0"
|
||||
text-table "^0.2.0"
|
||||
|
||||
cac@^4.3.4:
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/cac/-/cac-4.4.1.tgz#c6867f731c4be7b0c270689d1689400b914c7788"
|
||||
dependencies:
|
||||
chalk "^2.0.1"
|
||||
minimost "^1.0.0"
|
||||
read-pkg-up "^2.0.0"
|
||||
redent "^2.0.0"
|
||||
string-width "^2.1.1"
|
||||
text-table "^0.2.0"
|
||||
|
||||
cache-loader@1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.0.3.tgz#7717963ec082db068b17a1412deaaa72d21c4e30"
|
||||
|
@ -1789,6 +1834,21 @@ camelcase-keys@^2.0.0:
|
|||
camelcase "^2.0.0"
|
||||
map-obj "^1.0.0"
|
||||
|
||||
camelcase-keys@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-3.0.0.tgz#fc0c6c360363f7377e3793b9a16bccf1070c1ca4"
|
||||
dependencies:
|
||||
camelcase "^3.0.0"
|
||||
map-obj "^1.0.0"
|
||||
|
||||
camelcase-keys@^4.0.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
|
||||
dependencies:
|
||||
camelcase "^4.1.0"
|
||||
map-obj "^2.0.0"
|
||||
quick-lru "^1.0.0"
|
||||
|
||||
camelcase@4.1.0, camelcase@^4.0.0, camelcase@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
|
||||
|
@ -1844,6 +1904,15 @@ catbox@7.x.x:
|
|||
hoek "4.x.x"
|
||||
joi "10.x.x"
|
||||
|
||||
caw@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95"
|
||||
dependencies:
|
||||
get-proxy "^2.0.0"
|
||||
isurl "^1.0.0-alpha5"
|
||||
tunnel-agent "^0.6.0"
|
||||
url-to-options "^1.0.1"
|
||||
|
||||
center-align@^0.1.1:
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
|
||||
|
@ -2165,6 +2234,10 @@ cloneable-readable@^1.0.0:
|
|||
process-nextick-args "^1.0.6"
|
||||
through2 "^2.0.1"
|
||||
|
||||
co@3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78"
|
||||
|
||||
co@^4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||
|
@ -2269,7 +2342,7 @@ commander@2.11.0:
|
|||
version "2.11.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
|
||||
|
||||
commander@2.8.1, commander@2.8.x:
|
||||
commander@2.8.1, commander@2.8.x, commander@~2.8.1:
|
||||
version "2.8.1"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
|
||||
dependencies:
|
||||
|
@ -2339,6 +2412,23 @@ concat-stream@1.6.0, concat-stream@^1.4.7, concat-stream@^1.5.2, concat-stream@^
|
|||
readable-stream "^2.2.2"
|
||||
typedarray "^0.0.6"
|
||||
|
||||
conf@^1.1.2:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/conf/-/conf-1.4.0.tgz#1ea66c9d7a9b601674a5bb9d2b8dc3c726625e67"
|
||||
dependencies:
|
||||
dot-prop "^4.1.0"
|
||||
env-paths "^1.0.0"
|
||||
make-dir "^1.0.0"
|
||||
pkg-up "^2.0.0"
|
||||
write-file-atomic "^2.3.0"
|
||||
|
||||
config-chain@^1.1.11:
|
||||
version "1.1.11"
|
||||
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2"
|
||||
dependencies:
|
||||
ini "^1.3.4"
|
||||
proto-list "~1.2.1"
|
||||
|
||||
configstore@^1.0.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021"
|
||||
|
@ -2527,6 +2617,13 @@ cross-spawn@^3.0.0:
|
|||
lru-cache "^4.0.1"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
|
||||
dependencies:
|
||||
lru-cache "^4.0.1"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^5.0.1, cross-spawn@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
|
||||
|
@ -2958,6 +3055,58 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
|
|||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||
|
||||
decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
|
||||
dependencies:
|
||||
file-type "^5.2.0"
|
||||
is-stream "^1.1.0"
|
||||
tar-stream "^1.5.2"
|
||||
|
||||
decompress-tarbz2@^4.0.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
|
||||
dependencies:
|
||||
decompress-tar "^4.1.0"
|
||||
file-type "^6.1.0"
|
||||
is-stream "^1.1.0"
|
||||
seek-bzip "^1.0.5"
|
||||
unbzip2-stream "^1.0.9"
|
||||
|
||||
decompress-targz@^4.0.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
|
||||
dependencies:
|
||||
decompress-tar "^4.1.1"
|
||||
file-type "^5.2.0"
|
||||
is-stream "^1.1.0"
|
||||
|
||||
decompress-unzip@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
|
||||
dependencies:
|
||||
file-type "^3.8.0"
|
||||
get-stream "^2.2.0"
|
||||
pify "^2.3.0"
|
||||
yauzl "^2.4.2"
|
||||
|
||||
decompress@^4.0.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
|
||||
dependencies:
|
||||
decompress-tar "^4.0.0"
|
||||
decompress-tarbz2 "^4.0.0"
|
||||
decompress-targz "^4.0.0"
|
||||
decompress-unzip "^4.0.1"
|
||||
graceful-fs "^4.1.10"
|
||||
make-dir "^1.0.0"
|
||||
pify "^2.3.0"
|
||||
strip-dirs "^2.0.0"
|
||||
|
||||
dedent@^0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
|
||||
|
||||
deep-eql@^0.1.3:
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
|
||||
|
@ -3218,6 +3367,26 @@ downgrade-root@^1.0.0:
|
|||
default-uid "^1.0.0"
|
||||
is-root "^1.0.0"
|
||||
|
||||
download-git-repo@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/download-git-repo/-/download-git-repo-1.0.2.tgz#0b93a62057e41e2f21b1a06c95e7b26362b108ff"
|
||||
dependencies:
|
||||
download "^5.0.3"
|
||||
git-clone "^0.1.0"
|
||||
rimraf "^2.6.1"
|
||||
|
||||
download@^5.0.3:
|
||||
version "5.0.3"
|
||||
resolved "https://registry.yarnpkg.com/download/-/download-5.0.3.tgz#63537f977f99266a30eb8a2a2fbd1f20b8000f7a"
|
||||
dependencies:
|
||||
caw "^2.0.0"
|
||||
decompress "^4.0.0"
|
||||
filenamify "^2.0.0"
|
||||
get-stream "^3.0.0"
|
||||
got "^6.3.0"
|
||||
mkdirp "^0.5.1"
|
||||
pify "^2.3.0"
|
||||
|
||||
dragula@3.7.0:
|
||||
version "3.7.0"
|
||||
resolved "https://registry.yarnpkg.com/dragula/-/dragula-3.7.0.tgz#c010ae79be164e4a9cc765b0a8035e44c4896332"
|
||||
|
@ -3290,7 +3459,7 @@ ee-first@1.1.1:
|
|||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||
|
||||
ejs@^2.3.1:
|
||||
ejs@^2.2.4, ejs@^2.3.1:
|
||||
version "2.5.7"
|
||||
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
|
||||
|
||||
|
@ -3436,6 +3605,10 @@ entities@^1.1.1, entities@~1.1.1:
|
|||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
|
||||
|
||||
env-paths@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
|
||||
|
||||
enzyme-adapter-react-16@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz#a8f4278b47e082fbca14f5bfb1ee50ee650717b4"
|
||||
|
@ -3998,6 +4171,18 @@ execa@^0.8.0:
|
|||
signal-exit "^3.0.0"
|
||||
strip-eof "^1.0.0"
|
||||
|
||||
execa@^0.9.0:
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01"
|
||||
dependencies:
|
||||
cross-spawn "^5.0.1"
|
||||
get-stream "^3.0.0"
|
||||
is-stream "^1.1.0"
|
||||
npm-run-path "^2.0.0"
|
||||
p-finally "^1.0.0"
|
||||
signal-exit "^3.0.0"
|
||||
strip-eof "^1.0.0"
|
||||
|
||||
execall@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73"
|
||||
|
@ -4108,6 +4293,12 @@ express@^4.13.3:
|
|||
utils-merge "1.0.1"
|
||||
vary "~1.1.2"
|
||||
|
||||
extend-shallow@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
|
||||
dependencies:
|
||||
is-extendable "^0.1.0"
|
||||
|
||||
extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
|
||||
|
@ -4259,14 +4450,34 @@ file-sync-cmp@^0.1.0:
|
|||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz#a5e7a8ffbfa493b43b923bbd4ca89a53b63b612b"
|
||||
|
||||
file-type@^3.1.0:
|
||||
file-type@^3.1.0, file-type@^3.8.0:
|
||||
version "3.9.0"
|
||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
|
||||
|
||||
file-type@^5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
|
||||
|
||||
file-type@^6.1.0:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
|
||||
|
||||
filename-regex@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
|
||||
|
||||
filename-reserved-regex@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229"
|
||||
|
||||
filenamify@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.0.0.tgz#bd162262c0b6e94bfbcdcf19a3bbb3764f785695"
|
||||
dependencies:
|
||||
filename-reserved-regex "^2.0.0"
|
||||
strip-outer "^1.0.0"
|
||||
trim-repeated "^1.0.0"
|
||||
|
||||
fileset@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
|
||||
|
@ -4501,6 +4712,10 @@ fs-access@^1.0.0:
|
|||
dependencies:
|
||||
null-check "^1.0.0"
|
||||
|
||||
fs-exists-sync@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
|
||||
|
||||
fs-extra@5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd"
|
||||
|
@ -4518,6 +4733,22 @@ fs-extra@^0.24.0:
|
|||
path-is-absolute "^1.0.0"
|
||||
rimraf "^2.2.8"
|
||||
|
||||
fs-extra@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
jsonfile "^3.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs-extra@^4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
jsonfile "^4.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
|
@ -4617,6 +4848,12 @@ get-caller-file@^1.0.1:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
|
||||
|
||||
get-proxy@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93"
|
||||
dependencies:
|
||||
npm-conf "^1.1.0"
|
||||
|
||||
get-stdin@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
|
||||
|
@ -4625,6 +4862,13 @@ get-stdin@^5.0.1:
|
|||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398"
|
||||
|
||||
get-stream@^2.2.0:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
|
||||
dependencies:
|
||||
object-assign "^4.0.1"
|
||||
pinkie-promise "^2.0.0"
|
||||
|
||||
get-stream@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
|
||||
|
@ -4633,7 +4877,7 @@ getobject@~0.1.0:
|
|||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c"
|
||||
|
||||
getopts@2.0.0:
|
||||
getopts@2.0.0, getopts@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.0.0.tgz#e9119f3e79d22d0685b77fbe78d5cd6e19ca1af0"
|
||||
|
||||
|
@ -4650,6 +4894,18 @@ gh-got@^5.0.0:
|
|||
got "^6.2.0"
|
||||
is-plain-obj "^1.1.0"
|
||||
|
||||
git-clone@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9"
|
||||
|
||||
git-config-path@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/git-config-path/-/git-config-path-1.0.1.tgz#6d33f7ed63db0d0e118131503bab3aca47d54664"
|
||||
dependencies:
|
||||
extend-shallow "^2.0.1"
|
||||
fs-exists-sync "^0.1.0"
|
||||
homedir-polyfill "^1.0.0"
|
||||
|
||||
github-username@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/github-username/-/github-username-3.0.0.tgz#0a772219b3130743429f2456d0bdd3db55dce7b1"
|
||||
|
@ -4876,7 +5132,7 @@ got@^5.0.0:
|
|||
unzip-response "^1.0.2"
|
||||
url-parse-lax "^1.0.0"
|
||||
|
||||
got@^6.2.0, got@^6.7.1:
|
||||
got@^6.2.0, got@^6.3.0, got@^6.7.1:
|
||||
version "6.7.1"
|
||||
resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
|
||||
dependencies:
|
||||
|
@ -4892,7 +5148,7 @@ got@^6.2.0, got@^6.7.1:
|
|||
unzip-response "^2.0.1"
|
||||
url-parse-lax "^1.0.0"
|
||||
|
||||
graceful-fs@4.X, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6:
|
||||
graceful-fs@4.X, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6:
|
||||
version "4.1.11"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||
|
||||
|
@ -5183,10 +5439,20 @@ has-flag@^2.0.0:
|
|||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
|
||||
|
||||
has-symbol-support-x@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz#66ec2e377e0c7d7ccedb07a3a84d77510ff1bc4c"
|
||||
|
||||
has-symbols@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
|
||||
|
||||
has-to-string-tag-x@^1.2.0:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d"
|
||||
dependencies:
|
||||
has-symbol-support-x "^1.4.1"
|
||||
|
||||
has-unicode@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
|
||||
|
@ -5332,6 +5598,12 @@ home-or-tmp@^2.0.0:
|
|||
os-homedir "^1.0.0"
|
||||
os-tmpdir "^1.0.1"
|
||||
|
||||
homedir-polyfill@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
|
||||
dependencies:
|
||||
parse-passwd "^1.0.0"
|
||||
|
||||
hooker@~0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959"
|
||||
|
@ -5676,7 +5948,7 @@ inquirer@^1.0.2:
|
|||
strip-ansi "^3.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
inquirer@^3.0.1, inquirer@^3.0.6, inquirer@^3.3.0:
|
||||
inquirer@^3.0.1, inquirer@^3.0.6, inquirer@^3.2.3, inquirer@^3.3.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
|
||||
dependencies:
|
||||
|
@ -5812,6 +6084,12 @@ is-binary-path@^1.0.0:
|
|||
dependencies:
|
||||
binary-extensions "^1.0.0"
|
||||
|
||||
is-binary-path@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.0.0.tgz#0e61cea6974b24dda8bcc8366ce58a69265d1a36"
|
||||
dependencies:
|
||||
binary-extensions "^1.0.0"
|
||||
|
||||
is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
||||
|
@ -5858,7 +6136,7 @@ is-equal-shallow@^0.1.3:
|
|||
dependencies:
|
||||
is-primitive "^2.0.0"
|
||||
|
||||
is-extendable@^0.1.1:
|
||||
is-extendable@^0.1.0, is-extendable@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
|
||||
|
||||
|
@ -5926,6 +6204,10 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.0:
|
|||
jsonpointer "^4.0.0"
|
||||
xtend "^4.0.0"
|
||||
|
||||
is-natural-number@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
|
||||
|
||||
is-npm@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
|
||||
|
@ -5950,7 +6232,7 @@ is-obj@^1.0.0:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
|
||||
|
||||
is-object@~1.0.1:
|
||||
is-object@^1.0.1, is-object@~1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
|
||||
|
||||
|
@ -6240,6 +6522,13 @@ istextorbinary@^2.1.0:
|
|||
editions "^1.1.1"
|
||||
textextensions "1 || 2"
|
||||
|
||||
isurl@^1.0.0-alpha5:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67"
|
||||
dependencies:
|
||||
has-to-string-tag-x "^1.2.0"
|
||||
is-object "^1.0.1"
|
||||
|
||||
items@1.x.x:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/items/-/items-1.1.1.tgz#435b5dd21bca28b3cfd25bb5c6b278b715010fd9"
|
||||
|
@ -6768,6 +7057,12 @@ jsonfile@^2.1.0:
|
|||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
jsonfile@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
|
||||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
jsonfile@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
|
||||
|
@ -6799,6 +7094,18 @@ jstimezonedetect@1.0.5:
|
|||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/jstimezonedetect/-/jstimezonedetect-1.0.5.tgz#93d035cd20e8c7d64eb1375cf5aa7a10a024466a"
|
||||
|
||||
jstransformer-ejs@^0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/jstransformer-ejs/-/jstransformer-ejs-0.0.3.tgz#04d9201469274fcf260f1e7efd732d487fa234b6"
|
||||
dependencies:
|
||||
ejs "^2.2.4"
|
||||
|
||||
jstransformer-handlebars@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/jstransformer-handlebars/-/jstransformer-handlebars-1.1.0.tgz#91ba56e0a28aee31bb56d4adbcbce508d8230468"
|
||||
dependencies:
|
||||
handlebars "^4.0.1"
|
||||
|
||||
jstransformer@0.0.2:
|
||||
version "0.0.2"
|
||||
resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-0.0.2.tgz#7aae29a903d196cfa0973d885d3e47947ecd76ab"
|
||||
|
@ -6806,6 +7113,13 @@ jstransformer@0.0.2:
|
|||
is-promise "^2.0.0"
|
||||
promise "^6.0.1"
|
||||
|
||||
jstransformer@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3"
|
||||
dependencies:
|
||||
is-promise "^2.0.0"
|
||||
promise "^7.0.1"
|
||||
|
||||
jsx-ast-utils@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
|
||||
|
@ -6926,6 +7240,19 @@ kind-of@^4.0.0:
|
|||
dependencies:
|
||||
is-buffer "^1.1.5"
|
||||
|
||||
kopy@^8.2.0:
|
||||
version "8.2.5"
|
||||
resolved "https://registry.yarnpkg.com/kopy/-/kopy-8.2.5.tgz#6c95f312e981ab917680d7e5de3cdf29a1bf221f"
|
||||
dependencies:
|
||||
inquirer "^3.2.3"
|
||||
is-binary-path "^2.0.0"
|
||||
jstransformer "^1.0.0"
|
||||
jstransformer-ejs "^0.0.3"
|
||||
majo "^0.4.1"
|
||||
minimatch "^3.0.4"
|
||||
multimatch "^2.1.0"
|
||||
path-exists "^3.0.0"
|
||||
|
||||
latest-version@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb"
|
||||
|
@ -7326,6 +7653,10 @@ lodash.istypedarray@^3.0.0:
|
|||
version "3.0.6"
|
||||
resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
|
||||
|
||||
lodash.kebabcase@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
|
||||
|
||||
lodash.keys@^3.0.0:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
|
||||
|
@ -7408,6 +7739,10 @@ lodash.sortby@^4.7.0:
|
|||
version "4.7.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
||||
|
||||
lodash.startcase@^4.4.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8"
|
||||
|
||||
lodash.tail@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
|
||||
|
@ -7532,6 +7867,14 @@ macaddress@^0.2.8:
|
|||
version "0.2.8"
|
||||
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
|
||||
|
||||
majo@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/majo/-/majo-0.4.1.tgz#5e6eeb9b63bda77e59d396b9c9ce4189ce6100bc"
|
||||
dependencies:
|
||||
fs-extra "^3.0.1"
|
||||
globby "^6.1.0"
|
||||
ware "^1.3.0"
|
||||
|
||||
make-dir@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51"
|
||||
|
@ -7563,6 +7906,10 @@ map-obj@^1.0.0, map-obj@^1.0.1:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
|
||||
|
||||
map-obj@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9"
|
||||
|
||||
map-stream@~0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
|
||||
|
@ -7829,6 +8176,13 @@ minimist@~0.0.1:
|
|||
version "0.0.10"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
|
||||
|
||||
minimost@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/minimost/-/minimost-1.0.0.tgz#1d07954aa0268873408b95552fbffc5977dfc78b"
|
||||
dependencies:
|
||||
camelcase-keys "^4.0.0"
|
||||
minimist "^1.2.0"
|
||||
|
||||
mixin-object@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
|
||||
|
@ -7936,7 +8290,7 @@ multicast-dns@^6.0.1:
|
|||
dns-packet "^1.0.1"
|
||||
thunky "^0.1.0"
|
||||
|
||||
multimatch@^2.0.0:
|
||||
multimatch@^2.0.0, multimatch@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
|
||||
dependencies:
|
||||
|
@ -8238,6 +8592,13 @@ normalize-url@^1.4.0:
|
|||
query-string "^4.1.0"
|
||||
sort-keys "^1.0.0"
|
||||
|
||||
npm-conf@^1.1.0:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
|
||||
dependencies:
|
||||
config-chain "^1.1.11"
|
||||
pify "^3.0.0"
|
||||
|
||||
npm-keyword@^4.1.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/npm-keyword/-/npm-keyword-4.2.0.tgz#98ffebfdbb1336f27ef5fe1baca0dcacd0acf6c0"
|
||||
|
@ -8640,6 +9001,15 @@ parse-entities@^1.0.2:
|
|||
is-decimal "^1.0.0"
|
||||
is-hexadecimal "^1.0.0"
|
||||
|
||||
parse-git-config@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-1.1.1.tgz#d3a9984317132f57398712bba438e129590ddf8c"
|
||||
dependencies:
|
||||
extend-shallow "^2.0.1"
|
||||
fs-exists-sync "^0.1.0"
|
||||
git-config-path "^1.0.1"
|
||||
ini "^1.3.4"
|
||||
|
||||
parse-glob@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
|
||||
|
@ -8668,6 +9038,10 @@ parse-json@^2.1.0, parse-json@^2.2.0:
|
|||
dependencies:
|
||||
error-ex "^1.2.0"
|
||||
|
||||
parse-passwd@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
||||
|
||||
parse5@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"
|
||||
|
@ -8880,6 +9254,12 @@ pkg-up@^1.0.0:
|
|||
dependencies:
|
||||
find-up "^1.0.0"
|
||||
|
||||
pkg-up@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
|
||||
dependencies:
|
||||
find-up "^2.1.0"
|
||||
|
||||
pkginfo@0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff"
|
||||
|
@ -9247,7 +9627,7 @@ promise@^6.0.1:
|
|||
dependencies:
|
||||
asap "~1.0.0"
|
||||
|
||||
promise@^7.1.1:
|
||||
promise@^7.0.1, promise@^7.1.1:
|
||||
version "7.3.1"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
|
||||
dependencies:
|
||||
|
@ -9281,6 +9661,10 @@ properties-parser@^0.2.3:
|
|||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/properties-parser/-/properties-parser-0.2.3.tgz#f7591255f707abbff227c7b56b637dbb0373a10f"
|
||||
|
||||
proto-list@~1.2.1:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
|
||||
|
||||
proxy-addr@~2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec"
|
||||
|
@ -9407,6 +9791,10 @@ querystringify@~1.0.0:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb"
|
||||
|
||||
quick-lru@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
|
||||
|
||||
raf@^3.0.0, raf@^3.1.0, raf@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575"
|
||||
|
@ -9845,6 +10233,13 @@ redent@^1.0.0:
|
|||
indent-string "^2.1.0"
|
||||
strip-indent "^1.0.1"
|
||||
|
||||
redent@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa"
|
||||
dependencies:
|
||||
indent-string "^3.0.0"
|
||||
strip-indent "^2.0.0"
|
||||
|
||||
reduce-css-calc@^1.2.6:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
|
||||
|
@ -10313,6 +10708,32 @@ sane@^2.0.0:
|
|||
optionalDependencies:
|
||||
fsevents "^1.1.1"
|
||||
|
||||
sao@^0.22.12:
|
||||
version "0.22.12"
|
||||
resolved "https://registry.yarnpkg.com/sao/-/sao-0.22.12.tgz#fe13bb32bb0d32892c188024f77c5ac26c19eaf9"
|
||||
dependencies:
|
||||
boxen "^1.2.2"
|
||||
cac "^4.3.4"
|
||||
chalk "^2.0.1"
|
||||
co "^4.6.0"
|
||||
conf "^1.1.2"
|
||||
cross-spawn "^5.1.0"
|
||||
download-git-repo "^1.0.1"
|
||||
filenamify "^2.0.0"
|
||||
fs-extra "^4.0.1"
|
||||
git-config-path "^1.0.1"
|
||||
globby "^6.1.0"
|
||||
jstransformer-handlebars "^1.0.0"
|
||||
kopy "^8.2.0"
|
||||
ora "^1.3.0"
|
||||
parse-git-config "^1.1.1"
|
||||
semver "^5.4.1"
|
||||
text-table "^0.2.0"
|
||||
tildify "^1.2.0"
|
||||
update-notifier "^2.2.0"
|
||||
user-home "^2.0.0"
|
||||
yarn-install "^0.5.1"
|
||||
|
||||
sass-graph@^2.1.1:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
|
||||
|
@ -10367,6 +10788,12 @@ scss-tokenizer@^0.2.3:
|
|||
js-base64 "^2.1.8"
|
||||
source-map "^0.4.2"
|
||||
|
||||
seek-bzip@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
|
||||
dependencies:
|
||||
commander "~2.8.1"
|
||||
|
||||
select-hose@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
|
||||
|
@ -11030,6 +11457,12 @@ strip-bom@3.0.0, strip-bom@^3.0.0:
|
|||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
|
||||
|
||||
strip-dirs@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
|
||||
dependencies:
|
||||
is-natural-number "^4.0.1"
|
||||
|
||||
strip-eof@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
|
||||
|
@ -11040,10 +11473,20 @@ strip-indent@^1.0.1:
|
|||
dependencies:
|
||||
get-stdin "^4.0.1"
|
||||
|
||||
strip-indent@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
|
||||
|
||||
strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||
|
||||
strip-outer@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.0.tgz#aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8"
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.2"
|
||||
|
||||
style-loader@0.19.0:
|
||||
version "0.19.0"
|
||||
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.0.tgz#7258e788f0fee6a42d710eaf7d6c2412a4c50759"
|
||||
|
@ -11069,6 +11512,10 @@ sudo-block@^1.1.0:
|
|||
is-docker "^1.0.0"
|
||||
is-root "^1.0.0"
|
||||
|
||||
suffix@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/suffix/-/suffix-0.1.0.tgz#3e46966de56af17600385e58db8ec659dd797907"
|
||||
|
||||
superagent@^3.0.0:
|
||||
version "3.8.2"
|
||||
resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.2.tgz#e4a11b9d047f7d3efeb3bbe536d9ec0021d16403"
|
||||
|
@ -11225,6 +11672,15 @@ tar-pack@^3.4.0:
|
|||
tar "^2.2.1"
|
||||
uid-number "^0.0.6"
|
||||
|
||||
tar-stream@^1.5.2:
|
||||
version "1.5.5"
|
||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55"
|
||||
dependencies:
|
||||
bl "^1.0.0"
|
||||
end-of-stream "^1.0.0"
|
||||
readable-stream "^2.0.0"
|
||||
xtend "^4.0.0"
|
||||
|
||||
tar@2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.0.tgz#527c595940b9673f386c7237759982ab2f274d08"
|
||||
|
@ -11306,6 +11762,12 @@ ticky@1.0.0:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ticky/-/ticky-1.0.0.tgz#e87f38ee0491ea32f62e8f0567ba9638b29f049c"
|
||||
|
||||
tildify@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
|
||||
dependencies:
|
||||
os-homedir "^1.0.0"
|
||||
|
||||
time-stamp@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357"
|
||||
|
@ -11459,6 +11921,12 @@ trim-newlines@^1.0.0:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
|
||||
|
||||
trim-repeated@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.2"
|
||||
|
||||
trim-right@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
|
||||
|
@ -11606,6 +12074,13 @@ ultron@1.0.x:
|
|||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
|
||||
|
||||
unbzip2-stream@^1.0.9:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
|
||||
dependencies:
|
||||
buffer "^3.0.1"
|
||||
through "^2.3.6"
|
||||
|
||||
unc-path-regex@^0.1.0:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
|
||||
|
@ -11715,7 +12190,7 @@ update-notifier@^0.5.0:
|
|||
semver-diff "^2.0.0"
|
||||
string-length "^1.0.0"
|
||||
|
||||
update-notifier@^2.1.0, update-notifier@^2.3.0:
|
||||
update-notifier@^2.1.0, update-notifier@^2.2.0, update-notifier@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451"
|
||||
dependencies:
|
||||
|
@ -11770,6 +12245,10 @@ url-regex@^3.0.0:
|
|||
dependencies:
|
||||
ip-regex "^1.0.1"
|
||||
|
||||
url-to-options@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
|
||||
|
||||
url@^0.11.0:
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
|
||||
|
@ -12174,6 +12653,12 @@ walker@~1.0.5:
|
|||
dependencies:
|
||||
makeerror "1.0.x"
|
||||
|
||||
ware@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4"
|
||||
dependencies:
|
||||
wrap-fn "^0.1.0"
|
||||
|
||||
warning@^2.0.0, warning@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/warning/-/warning-2.1.0.tgz#21220d9c63afc77a8c92111e011af705ce0c6901"
|
||||
|
@ -12402,6 +12887,12 @@ wrap-ansi@^2.0.0:
|
|||
string-width "^1.0.1"
|
||||
strip-ansi "^3.0.1"
|
||||
|
||||
wrap-fn@^0.1.0:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845"
|
||||
dependencies:
|
||||
co "3.1.0"
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
|
@ -12449,7 +12940,7 @@ write-file-atomic@^1.1.2:
|
|||
imurmurhash "^0.1.4"
|
||||
slide "^1.1.5"
|
||||
|
||||
write-file-atomic@^2.0.0, write-file-atomic@^2.1.0:
|
||||
write-file-atomic@^2.0.0, write-file-atomic@^2.1.0, write-file-atomic@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
|
||||
dependencies:
|
||||
|
@ -12691,6 +13182,14 @@ yargs@~3.10.0:
|
|||
decamelize "^1.0.0"
|
||||
window-size "0.1.0"
|
||||
|
||||
yarn-install@^0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/yarn-install/-/yarn-install-0.5.1.tgz#f3c55e8646b6ac8da360b2f8e31afe5c4a067340"
|
||||
dependencies:
|
||||
cac "^3.0.3"
|
||||
chalk "^1.1.3"
|
||||
cross-spawn "^4.0.2"
|
||||
|
||||
yauzl@2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
|
||||
|
@ -12704,6 +13203,13 @@ yauzl@2.7.0:
|
|||
buffer-crc32 "~0.2.3"
|
||||
fd-slicer "~1.0.1"
|
||||
|
||||
yauzl@^2.4.2:
|
||||
version "2.9.1"
|
||||
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f"
|
||||
dependencies:
|
||||
buffer-crc32 "~0.2.3"
|
||||
fd-slicer "~1.0.1"
|
||||
|
||||
yeast@0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue