├── .babelrc
├── .editorconfig
├── .gitignore
├── .npmignore
├── CHANGELOG.md
├── README.md
├── dist
├── directive.js
├── enums
│ └── getting-strategy.js
├── index.js
├── install.js
└── mixin.js
├── example
├── .babelrc
├── .gitignore
├── .postcssrc.js
├── package.json
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── App.vue
│ ├── Children.vue
│ ├── SubChildren.vue
│ ├── assets
│ │ └── logo.png
│ ├── main.js
│ └── ml.js
└── yarn.lock
├── license
├── package.json
├── src
├── directive.js
├── enums
│ └── getting-strategy.js
├── index.js
├── install.js
└── mixin.js
└── yarn.lock
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015"]
3 | }
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*]
2 | tab_width = 2
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | example/.DS_Store
2 | example/node_modules/
3 | example/dist/
4 | example/npm-debug.log
5 | example/yarn-error.log
6 | .DS_Store
7 | node_modules/
8 | npm-debug.log
9 | yarn-error.log
10 | *.sublime*
11 | .idea
12 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | example
2 | src
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ** version 4
2 |
3 | - rewrite plugin
4 | - local message builder
5 | - builder from language
6 | - remove directive
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-multilanguage: control of languages in vuejs
2 |
3 | > We will help you to control the languages in your app for yours components
4 |
5 | ## Installation
6 |
7 | ```bash
8 | # yarn
9 | yarn add vue-multilanguage
10 | # npm
11 | npm install vue-multilanguage --save
12 | ```
13 |
14 | ## Get Started
15 |
16 | Create the `ml.js` file to define your multilanguage settings and languages:
17 |
18 | ```javascript
19 | import Vue from 'vue'
20 | import { MLInstaller, MLCreate, MLanguage } from 'vue-multilanguage'
21 |
22 | Vue.use(MLInstaller)
23 |
24 | export default new MLCreate({
25 | initial: 'english',
26 | save: process.env.NODE_ENV === 'production',
27 | languages: [
28 | new MLanguage('english').create({
29 | title: 'Hello {0}!',
30 | msg: 'You have {f} friends and {l} likes'
31 | }),
32 |
33 | new MLanguage('portuguese').create({
34 | title: 'Oi {0}!',
35 | msg: 'Você tem {f} amigos e {l} curtidas'
36 | })
37 | ]
38 | })
39 | ```
40 |
41 | More details:
42 |
43 | - **MLInstaller**: plugin class for install in Vue with Vue.use
44 | - **MLCreate**: class to define acl settings
45 | - **initial**: first language, for startup with your app
46 | - **save**: save current language in localStorage
47 | - **languages**: array with your languages supported
48 | - **MLanguage**: class with language generator, create your language with it
49 | - **create**: method for create language based in object param
50 |
51 | You can define a middleware for execute before all `get` call. Use this for custom structure app, e.g:
52 |
53 | ```javascript
54 | export default new MLCreate({
55 | ...
56 | middleware: (component, path) => {
57 | const newPath = `${component.$options.name}.${path}`
58 | // you should return newPath
59 | return newPath
60 | }
61 | })
62 | ```
63 |
64 | PS: in example, all `$ml.get` call go concate path with component name.
65 |
66 | For finish, in your `main.js` import the `ml`:
67 |
68 | ```javascript
69 | import Vue from 'vue'
70 | import App from './App.vue'
71 | import router from './router'
72 | import './ml'
73 |
74 | Vue.config.productionTip = false
75 |
76 | new Vue({
77 | router,
78 | render: h => h(App)
79 | }).$mount('#app')
80 | ```
81 |
82 | ## Use in components
83 |
84 | You can define messages inside your component, use computed propertis with prefix `ml`
85 |
86 | ```html
87 |
88 |
91 |
92 |
93 |
108 | ```
109 |
110 | You can also get message direct in template:
111 |
112 | ```html
113 |
114 | ```
115 |
116 | E.g: display 'Hello VueJS'.
117 |
118 | You can get list language in any component using `list` property:
119 |
120 | ```html
121 |
126 | ```
127 |
128 | Finish, you can change current language in any component using `change` method:
129 |
130 | ```html
131 |
137 | ```
--------------------------------------------------------------------------------
/dist/directive.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 |
7 | exports.default = function (Vue, initial) {
8 | Vue.directive('ml', {
9 | bind: function bind(el, binding, vnode) {
10 | var component = vnode.context;
11 | var changeTextBinding = function changeTextBinding(msg) {
12 | var variables = (msg.match(/\{(.*?)\}/gm) || []).map(function (v) {
13 | return v.replace('{', '').replace('}', '').trim();
14 | });
15 | if (variables.length <= 0) return msg;
16 |
17 | variables.forEach(function (variable) {
18 | var croped = variable.split('.');
19 | var instance = component;
20 | croped.forEach(function (part) {
21 | if (part in instance) {
22 | instance = instance[part];
23 | }
24 | });
25 |
26 | msg = msg.replace('{' + variable + '}', instance);
27 | });
28 |
29 | return msg;
30 | };
31 |
32 | el.setAttribute('data-ml-initial', el.innerText);
33 | el.innerText = changeTextBinding(el.getAttribute('data-ml-initial'));
34 |
35 | var actionToChange = function actionToChange() {
36 | var path = Object.keys(binding.modifiers).join('.');
37 | var current = component.$ml.current;
38 | var isInitial = current === initial;
39 |
40 | if (isInitial && el.innerText !== '') {
41 | el.innerText = changeTextBinding(el.getAttribute('data-ml-initial'));
42 | return;
43 | }
44 |
45 | Object.keys(binding.value || {}).forEach(function (name) {
46 | component.$ml.with(name, component[name]);
47 | });
48 |
49 | el.innerText = component.$ml.get(path);
50 | component.$forceUpdate();
51 | };
52 |
53 | component.$ml.bus.$on('vueml-language-changed', actionToChange);
54 | component.$ml.bus.$on('vueml-force-reload', actionToChange);
55 | el.removeEventListener('change', actionToChange);
56 | el.addEventListener('change', actionToChange);
57 | }
58 | });
59 | };
--------------------------------------------------------------------------------
/dist/enums/getting-strategy.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | var GettingStrategy = exports.GettingStrategy = {
7 | DEFAULT: 'default',
8 | RETURN_PATH_BY_DEFAULT: 'return-path-by-default',
9 | RETURN_PATH_BY_DEFAULT_WITHOUT_ERROR: 'return-path-by-default-without-error'
10 | };
--------------------------------------------------------------------------------
/dist/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.MLBuilder = exports.MLanguage = exports.MLCreate = exports.MLInstaller = undefined;
7 |
8 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
9 |
10 | var _vue = require('vue');
11 |
12 | var _install2 = require('./install');
13 |
14 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /* eslint-disable */
15 | // @ts-check
16 |
17 |
18 | /**
19 | * @typedef {Object} VueMultiLanguageParams
20 | * @property {String} initial
21 | * @property {Array} languages
22 | * @property {Boolean} [save]
23 | * @property {Function} [middleware]
24 | * @property {String} [gettingStrategy]
25 | */
26 |
27 | /** @type {VueMultiLanguageParams} */
28 | var options = {
29 | initial: null,
30 | languages: [],
31 | save: false,
32 | middleware: null,
33 | gettingStrategy: ''
34 |
35 | /** @type {VueConstructor} */
36 | };var Vue = void 0;
37 |
38 | var MLInstaller =
39 | /**
40 | * function for install plugin with Vue.use
41 | * @param {VueConstructor} _Vue Vue constructor
42 | */
43 | exports.MLInstaller = function MLInstaller(_Vue) {
44 | Vue = _Vue;
45 | };
46 |
47 | var MLCreate =
48 | /**
49 | * Constructor
50 | * @param {VueMultiLanguageParams} _options object of settings
51 | */
52 | exports.MLCreate = function MLCreate(_options) {
53 | _classCallCheck(this, MLCreate);
54 |
55 | options = _options;
56 | (0, _install2._install)(Vue, options);
57 | };
58 |
59 | var MLanguage = exports.MLanguage = function () {
60 | /**
61 | * Create new language
62 | * @param {string} name language name
63 | */
64 | function MLanguage(name) {
65 | _classCallCheck(this, MLanguage);
66 |
67 | this.name = name;
68 | }
69 |
70 | /**
71 | * Create new language with pharses
72 | * @param {Object} database object with all language pharses
73 | * @return {Object} object with language sentences
74 | */
75 |
76 |
77 | _createClass(MLanguage, [{
78 | key: 'create',
79 | value: function create(database) {
80 | var name = this.name;
81 |
82 | return { name: name, database: database };
83 | }
84 | }]);
85 |
86 | return MLanguage;
87 | }();
88 |
89 | var MLBuilder = exports.MLBuilder = function () {
90 | /**
91 | * Create new language builder
92 | * @param {string} path language path
93 | */
94 | function MLBuilder(path) {
95 | _classCallCheck(this, MLBuilder);
96 |
97 | this.path = path;
98 | this._with = null;
99 | }
100 |
101 | /**
102 | * Create new language with pharses
103 | * @param {String} name name or value from message
104 | * @param {String|Boolean} value value from message
105 | * @return {MLBuilder} builder
106 | */
107 |
108 |
109 | _createClass(MLBuilder, [{
110 | key: 'with',
111 | value: function _with(name) {
112 | var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
113 |
114 | if (value !== false) {
115 | if (this._with === null) {
116 | this._with = [];
117 | }
118 | // @ts-ignore
119 | this._with.push({
120 | name: name,
121 | value: value
122 | });
123 | } else {
124 | this._with = [name];
125 | }
126 | return this;
127 | }
128 | }]);
129 |
130 | return MLBuilder;
131 | }();
--------------------------------------------------------------------------------
/dist/install.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports._install = undefined;
7 |
8 | var _vue = require('vue');
9 |
10 | var _mixin = require('./mixin');
11 |
12 | var _gettingStrategy = require('./enums/getting-strategy');
13 |
14 | var _directive = require('./directive');
15 |
16 | var _directive2 = _interopRequireDefault(_directive);
17 |
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19 |
20 | /**
21 | * @typedef {Object} VueMultiLanguageParams
22 | * @property {String} initial
23 | * @property {Array} languages
24 | * @property {Boolean} [save]
25 | * @property {Function} [middleware]
26 | */
27 |
28 | /**
29 | * Function for install plugin with Vue.use
30 | * @function
31 | * @param {VueConstructor} _Vue
32 | * @param {VueMultiLanguageParams} options
33 | */
34 | // @ts-check
35 | var _install = exports._install = function _install(_Vue, options) {
36 | var initial = options.initial,
37 | languages = options.languages,
38 | save = options.save,
39 | middleware = options.middleware,
40 | gettingStrategy = options.gettingStrategy;
41 |
42 |
43 | var mixin = (0, _mixin.register)(initial, languages, save || false, middleware || function (self, path) {
44 | return path;
45 | }, gettingStrategy || _gettingStrategy.GettingStrategy.DEFAULT);
46 |
47 | // @ts-ignore
48 | if (mixin !== undefined) {
49 | // @ts-ignore
50 | _Vue.mixin(mixin);
51 | (0, _directive2.default)(_Vue, initial);
52 | }
53 | };
--------------------------------------------------------------------------------
/dist/mixin.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.register = undefined;
7 |
8 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; // @ts-check
9 |
10 |
11 | var _vue = require('vue');
12 |
13 | var _vue2 = _interopRequireDefault(_vue);
14 |
15 | var _gettingStrategy = require('./enums/getting-strategy');
16 |
17 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18 |
19 | var EventBus = new _vue2.default();
20 |
21 | var currentGlobal = null;
22 | /** @type {Array} */
23 | var _with2 = null;
24 | /**
25 | * Register all plugin actions
26 | *
27 | * @param {String} initial initial language
28 | * @param {Array} languages array with languages
29 | * @param {Boolean} save if save language in local storage
30 | * @param {Function} middleware function for handler get
31 | * @param {String} gettingStrategy translation getting strategy
32 | */
33 | var register = exports.register = function register(initial, languages, save, middleware, gettingStrategy) {
34 | if (save) {
35 | try {
36 | var lang = localStorage.getItem('vueml-lang');
37 | if (lang === null) {
38 | localStorage.setItem('vueml-lang', initial);
39 | } else {
40 | initial = lang;
41 | }
42 | } catch (error) {
43 | initial = languages[0].name;
44 | }
45 | }
46 |
47 | if (initial === null) {
48 | return console.error('[vue-multilanguage] initial language is null, please set a value');
49 | }
50 | currentGlobal = initial;
51 | return {
52 | /**
53 | * Called before create component
54 | */
55 | beforeCreate: function beforeCreate() {
56 | var _this = this;
57 |
58 | var self = this;
59 |
60 | this.$ml = {
61 | /**
62 | * Change current language
63 | * @param {string} param new language
64 | */
65 | change: function change(param) {
66 | var current = languages.filter(function (l) {
67 | return l.name === param;
68 | });
69 | if (current.length === 0) {
70 | return console.error('[vue-multilanguage] \'' + param + '\' language not found');
71 | }
72 |
73 | if (currentGlobal !== param) {
74 | try {
75 | if (save) {
76 | localStorage.setItem('vueml-lang', param);
77 | }
78 | } catch (error) {
79 | window.parent.postMessage(JSON.stringify({ type: "local", value: param }), "*");
80 | }
81 |
82 | EventBus.$emit('vueml-language-changed', param);
83 | }
84 | },
85 | with: function _with(name) {
86 | var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
87 |
88 | if (value !== false) {
89 | if (_with2 === null) {
90 | _with2 = [];
91 | }
92 | _with2.push({ name: name, value: value });
93 | } else {
94 | _with2 = [name];
95 | }
96 | return this;
97 | },
98 | get: function get(path) {
99 | var initialPath = path;
100 |
101 | var current = languages.filter(function (l) {
102 | return l.name === currentGlobal;
103 | });
104 | if (current.length > 1) {
105 | return console.error('[vue-multilanguage] you define \'' + currentGlobal + '\' language two or more times');
106 | }
107 | var db = current[0].database;
108 |
109 | if ('ml' + path in self) {
110 | path = 'ml' + path;
111 | _with2 = self[path]._with;
112 | path = self[path].path;
113 | }
114 |
115 | path = middleware(self, path);
116 |
117 | /** @type {Array} */
118 | var splitedPath = path.split('.');
119 |
120 | splitedPath.forEach(function (ph) {
121 | if (ph in db) {
122 | db = db[ph];
123 | } else {
124 | if (gettingStrategy !== _gettingStrategy.GettingStrategy.RETURN_PATH_BY_DEFAULT_WITHOUT_ERROR) {
125 | console.error('[vue-multilanguage] path \'' + path + '\' unknown from \'' + ph + '\'');
126 | }
127 | if (gettingStrategy === _gettingStrategy.GettingStrategy.RETURN_PATH_BY_DEFAULT || gettingStrategy === _gettingStrategy.GettingStrategy.RETURN_PATH_BY_DEFAULT_WITHOUT_ERROR) {
128 | db = initialPath;
129 | } else {
130 | return db = false;
131 | }
132 | }
133 | });
134 |
135 | if (db !== false) {
136 | if (Array.isArray(_with2)) {
137 | _with2.forEach(function (w) {
138 | if ((typeof w === 'undefined' ? 'undefined' : _typeof(w)) !== 'object') {
139 | db = db.replace(/\{0\}/g, _with2[0]);
140 | } else {
141 | var replace = '{' + w.name + '}';
142 | while (db.includes(replace)) {
143 | db = db.replace(replace, w.value);
144 | }
145 | }
146 | });
147 | }
148 | _with2 = null;
149 |
150 | return db;
151 | }
152 | },
153 |
154 |
155 | /**
156 | * get current permission
157 | */
158 | get current() {
159 | return currentGlobal;
160 | },
161 |
162 | /**
163 | * get event bus
164 | */
165 | get bus() {
166 | return EventBus;
167 | },
168 |
169 | /**
170 | * get languages list
171 | */
172 | get list() {
173 | return languages.map(function (l) {
174 | return l.name;
175 | });
176 | },
177 |
178 | /**
179 | * get languages database list
180 | */
181 | get db() {
182 | return languages.map(function (l) {
183 | return l.database;
184 | });
185 | }
186 | };
187 |
188 | EventBus.$on('vueml-language-changed', function (newLanguage) {
189 | currentGlobal = newLanguage;
190 | _this.$forceUpdate();
191 | });
192 | }
193 | };
194 | };
--------------------------------------------------------------------------------
/example/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "@vue/app"
4 | ]
5 | }
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 | # local env files
6 | .env.local
7 | .env.*.local
8 |
9 | # Log files
10 | npm-debug.log*
11 | yarn-debug.log*
12 | yarn-error.log*
13 |
14 | # Editor directories and files
15 | .idea
16 | .vscode
17 | *.suo
18 | *.ntvs*
19 | *.njsproj
20 | *.sln
21 | *.sw*
22 |
--------------------------------------------------------------------------------
/example/.postcssrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | autoprefixer: {}
4 | }
5 | }
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "build": "vue-cli-service build"
8 | },
9 | "dependencies": {
10 | "vue": "^2.5.16"
11 | },
12 | "devDependencies": {
13 | "@vue/cli-plugin-babel": "^3.0.0-beta.10",
14 | "@vue/cli-service": "^3.0.0-beta.10",
15 | "vue-template-compiler": "^2.5.13"
16 | },
17 | "browserslist": [
18 | "> 1%",
19 | "last 2 versions",
20 | "not ie <= 8"
21 | ]
22 | }
--------------------------------------------------------------------------------
/example/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leonardovilarinho/vue-multilanguage/38c29806c23d99a8401a3fb2dd0ef2de60a34fd0/example/public/favicon.ico
--------------------------------------------------------------------------------
/example/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | example
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/example/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Hello {name}, click to {friends} logout
6 |
Say hello to your friends
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
20 |
21 |
22 |
23 |
48 |
--------------------------------------------------------------------------------
/example/src/Children.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
1. {{ $ml.current }}
4 |
2.
5 |
6 |
7 |
8 |
16 |
--------------------------------------------------------------------------------
/example/src/SubChildren.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ $ml.current }}
3 |
4 |
5 |
10 |
--------------------------------------------------------------------------------
/example/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leonardovilarinho/vue-multilanguage/38c29806c23d99a8401a3fb2dd0ef2de60a34fd0/example/src/assets/logo.png
--------------------------------------------------------------------------------
/example/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 | import './ml'
4 |
5 | Vue.config.productionTip = false
6 |
7 | new Vue({
8 | render: h => h(App)
9 | }).$mount('#app')
10 |
--------------------------------------------------------------------------------
/example/src/ml.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import { MLInstaller, MLCreate, MLanguage } from '../../src'
3 |
4 | Vue.use(MLInstaller)
5 |
6 | export default new MLCreate({
7 | initial: 'english',
8 | save: process.env.NODE_ENV === 'production',
9 | languages: [
10 | new MLanguage('english').create({
11 | title: 'Hello {0}!',
12 | msg: 'You have {f} friends and {l} likes',
13 | fruits: ['Apple', 'Pineapple']
14 | }),
15 |
16 | new MLanguage('portuguese').create({
17 | title: 'Oi {0}!',
18 | logout: 'Olá {name}, clique aqui para sair {friends}',
19 | infos: {
20 | friends: 'Diga olá para seus amigos'
21 | },
22 | msg: 'Você tem {f} amigos e {l} curtidas',
23 | fruits: ['Maçã', 'Abacaxi']
24 | })
25 | ],
26 | middleware: (component, path) => {
27 | // you can mutate path here
28 | // you should return path updated
29 | return path
30 | },
31 | gettingStrategy: 'default'
32 | })
33 |
--------------------------------------------------------------------------------
/license:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) [year] [fullname]
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | 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, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
22 |
23 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-multilanguage",
3 | "version": "4.0.17",
4 | "description": "Multilanguage easy support to Vue.js 2",
5 | "main": "dist/index.js",
6 | "scripts": {
7 | "build": "babel ./src --out-dir ./dist"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/leonardovilarinho/vue-multilanguage.git"
12 | },
13 | "keywords": [
14 | "vuejs",
15 | "multilanguage",
16 | "front-end"
17 | ],
18 | "author": "Leonardo Vilarinho",
19 | "contributors": [
20 | {
21 | "name": "Matthew Dean",
22 | "url": "https://github.com/matthew-dean"
23 | },
24 | {
25 | "name": "Dyaa Eldin Moustafa",
26 | "url": "https://github.com/dyaa"
27 | },
28 | {
29 | "name": "weineel",
30 | "url": "https://github.com/weineel"
31 | },
32 | {
33 | "name": "andlav",
34 | "url": "https://github.com/andlav"
35 | },
36 | {
37 | "name": "Guilherme Mamedio",
38 | "url": "https://github.com/mamedioguilherme1"
39 | },
40 | {
41 | "name": "Adam",
42 | "url": "https://github.com/mercs600"
43 | }
44 | ],
45 | "license": "MIT",
46 | "bugs": {
47 | "url": "https://github.com/leonardovilarinho/vue-multilanguage/issues"
48 | },
49 | "homepage": "https://github.com/leonardovilarinho/vue-multilanguage#readme",
50 | "devDependencies": {
51 | "@types/vue": "^2.0.0",
52 | "babel-cli": "^6.26.0",
53 | "babel-preset-env": "^1.6.1",
54 | "babel-preset-es2015": "^6.24.1",
55 | "vue": "^2.5.16"
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/directive.js:
--------------------------------------------------------------------------------
1 | export default (Vue, initial) => {
2 | Vue.directive('ml', {
3 | bind(el, binding, vnode) {
4 | const component = vnode.context
5 | const changeTextBinding = msg => {
6 | const variables = (msg.match(/\{(.*?)\}/gm) || []).map(v => v.replace('{', '').replace('}', '').trim())
7 | if (variables.length <= 0) return msg
8 |
9 | variables.forEach(variable => {
10 | const croped = variable.split('.')
11 | let instance = component
12 | croped.forEach(part => {
13 | if (part in instance) {
14 | instance = instance[part]
15 | }
16 | })
17 |
18 | msg = msg.replace(`{${variable}}`, instance)
19 | })
20 |
21 | return msg
22 | }
23 |
24 | el.setAttribute('data-ml-initial', el.innerText)
25 | el.innerText = changeTextBinding(el.getAttribute('data-ml-initial'))
26 |
27 | const actionToChange = () => {
28 | const path = Object.keys(binding.modifiers).join('.')
29 | const current = component.$ml.current
30 | const isInitial = current === initial
31 |
32 | if (isInitial && el.innerText !== '') {
33 | el.innerText = changeTextBinding(el.getAttribute('data-ml-initial'))
34 | return
35 | }
36 |
37 | Object.keys(binding.value || {}).forEach(name => {
38 | component.$ml.with(name, component[name])
39 | })
40 |
41 | el.innerText = component.$ml.get(path)
42 | component.$forceUpdate()
43 | }
44 |
45 | component.$ml.bus.$on('vueml-language-changed',actionToChange)
46 | component.$ml.bus.$on('vueml-force-reload',actionToChange)
47 | el.removeEventListener('change', actionToChange)
48 | el.addEventListener('change', actionToChange)
49 | }
50 | })
51 | }
--------------------------------------------------------------------------------
/src/enums/getting-strategy.js:
--------------------------------------------------------------------------------
1 | export const GettingStrategy = {
2 | DEFAULT: 'default',
3 | RETURN_PATH_BY_DEFAULT: 'return-path-by-default',
4 | RETURN_PATH_BY_DEFAULT_WITHOUT_ERROR: 'return-path-by-default-without-error'
5 | }
6 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // @ts-check
3 | import { VueConstructor } from 'vue'
4 | import { _install } from './install'
5 | /**
6 | * @typedef {Object} VueMultiLanguageParams
7 | * @property {String} initial
8 | * @property {Array} languages
9 | * @property {Boolean} [save]
10 | * @property {Function} [middleware]
11 | * @property {String} [gettingStrategy]
12 | */
13 |
14 | /** @type {VueMultiLanguageParams} */
15 | let options = {
16 | initial: null,
17 | languages: [],
18 | save: false,
19 | middleware: null,
20 | gettingStrategy: ''
21 | }
22 |
23 | /** @type {VueConstructor} */
24 | let Vue
25 |
26 | export const MLInstaller =
27 | /**
28 | * function for install plugin with Vue.use
29 | * @param {VueConstructor} _Vue Vue constructor
30 | */
31 | (_Vue) => {
32 | Vue = _Vue
33 | }
34 |
35 | export class MLCreate {
36 | /**
37 | * Constructor
38 | * @param {VueMultiLanguageParams} _options object of settings
39 | */
40 | constructor(_options) {
41 | options = _options
42 | _install(Vue, options)
43 | }
44 | }
45 |
46 | export class MLanguage {
47 | /**
48 | * Create new language
49 | * @param {string} name language name
50 | */
51 | constructor(name) {
52 | this.name = name
53 | }
54 |
55 | /**
56 | * Create new language with pharses
57 | * @param {Object} database object with all language pharses
58 | * @return {Object} object with language sentences
59 | */
60 | create(database) {
61 | const { name } = this
62 | return { name, database }
63 | }
64 | }
65 |
66 | export class MLBuilder {
67 | /**
68 | * Create new language builder
69 | * @param {string} path language path
70 | */
71 | constructor(path) {
72 | this.path = path
73 | this._with = null
74 | }
75 |
76 | /**
77 | * Create new language with pharses
78 | * @param {String} name name or value from message
79 | * @param {String|Boolean} value value from message
80 | * @return {MLBuilder} builder
81 | */
82 | with(name, value = false) {
83 | if (value !== false) {
84 | if (this._with === null) {
85 | this._with = []
86 | }
87 | // @ts-ignore
88 | this._with.push({
89 | name,
90 | value
91 | })
92 | } else {
93 | this._with = [name]
94 | }
95 | return this
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/src/install.js:
--------------------------------------------------------------------------------
1 | // @ts-check
2 | import { VueConstructor } from 'vue'
3 | import { register } from './mixin'
4 | import { GettingStrategy } from './enums/getting-strategy'
5 | import directive from './directive'
6 |
7 | /**
8 | * @typedef {Object} VueMultiLanguageParams
9 | * @property {String} initial
10 | * @property {Array} languages
11 | * @property {Boolean} [save]
12 | * @property {Function} [middleware]
13 | */
14 |
15 | /**
16 | * Function for install plugin with Vue.use
17 | * @function
18 | * @param {VueConstructor} _Vue
19 | * @param {VueMultiLanguageParams} options
20 | */
21 | export const _install = (_Vue, options) => {
22 | const { initial, languages, save, middleware, gettingStrategy } = options
23 |
24 | const mixin = register(
25 | initial,
26 | languages,
27 | save || false,
28 | middleware || ((self, path) => path),
29 | gettingStrategy || GettingStrategy.DEFAULT
30 | )
31 |
32 | // @ts-ignore
33 | if (mixin !== undefined) {
34 | // @ts-ignore
35 | _Vue.mixin(mixin)
36 | directive(_Vue, initial)
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/mixin.js:
--------------------------------------------------------------------------------
1 | // @ts-check
2 | import Vue from 'vue'
3 | import { GettingStrategy } from './enums/getting-strategy'
4 | const EventBus = new Vue()
5 |
6 | function setCookie(name, value) {
7 | var expires = "";
8 | var date = new Date();
9 | date.setTime(date.getTime() + 1000000 * 24 * 60 * 60 * 1000);
10 | expires = "; expires=" + date.toUTCString();
11 |
12 | document.cookie = name + "=" + (value || "") + expires + "; path=/";
13 | }
14 |
15 | function getCookie(name) {
16 | var nameEQ = name + "=";
17 | var ca = document.cookie.split(";");
18 | for (var i = 0; i < ca.length; i++) {
19 | var c = ca[i];
20 | while (c.charAt(0) == " ") c = c.substring(1, c.length);
21 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
22 | }
23 | return null;
24 | }
25 |
26 | let currentGlobal = null
27 | /** @type {Array} */
28 | let _with = null
29 | /**
30 | * Register all plugin actions
31 | *
32 | * @param {String} initial initial language
33 | * @param {Array} languages array with languages
34 | * @param {Boolean} save if save language in local storage
35 | * @param {Function} middleware function for handler get
36 | * @param {String} gettingStrategy translation getting strategy
37 | */
38 | export const register = (initial, languages, save, middleware, gettingStrategy) => {
39 | if (save) {
40 | try {
41 | const lang = localStorage.getItem('vueml-lang')
42 | if (lang === null) {
43 | localStorage.setItem('vueml-lang', initial)
44 | } else {
45 | initial = lang
46 | }
47 | } catch(error) {
48 | const lang = getCookie('vueml-lang')
49 | if (lang === null) {
50 | setCookie('vueml-lang', initial)
51 | } else {
52 | initial = lang
53 | }
54 | }
55 | }
56 |
57 | if (initial === null) {
58 | return console.error('[vue-multilanguage] initial language is null, please set a value')
59 | }
60 | currentGlobal = initial
61 | return {
62 | /**
63 | * Called before create component
64 | */
65 | beforeCreate () {
66 | const self = this
67 |
68 | this.$ml = {
69 | /**
70 | * Change current language
71 | * @param {string} param new language
72 | */
73 | change (param) {
74 | const current = languages.filter(l => l.name === param)
75 | if (current.length === 0) {
76 | return console.error(`[vue-multilanguage] '${param}' language not found`)
77 | }
78 |
79 | if (currentGlobal !== param) {
80 | try {
81 | if (save) {
82 | localStorage.setItem('vueml-lang', param)
83 | }
84 | } catch (error) {
85 | setCookie('vueml-lang', param)
86 | }
87 |
88 | EventBus.$emit('vueml-language-changed', param)
89 | }
90 | },
91 |
92 | with (name, value = false) {
93 | if (value !== false) {
94 | if (_with === null) {
95 | _with = []
96 | }
97 | _with.push({ name, value })
98 | } else {
99 | _with = [name]
100 | }
101 | return this
102 | },
103 |
104 | get (path) {
105 | const initialPath = path;
106 |
107 | const current = languages.filter(l => l.name === currentGlobal)
108 | if (current.length > 1) {
109 | return console.error(`[vue-multilanguage] you define '${currentGlobal}' language two or more times`)
110 | }
111 | let db = current[0].database
112 |
113 | if (`ml${path}` in self) {
114 | path = `ml${path}`
115 | _with = self[path]._with
116 | path = self[path].path
117 | }
118 |
119 | path = middleware(self, path)
120 |
121 | /** @type {Array} */
122 | const splitedPath = path.split('.')
123 |
124 | splitedPath.forEach(ph => {
125 | if (ph in db) {
126 | db = db[ph]
127 | } else {
128 | if (gettingStrategy !== GettingStrategy.RETURN_PATH_BY_DEFAULT_WITHOUT_ERROR) {
129 | console.error(`[vue-multilanguage] path '${path}' unknown from '${ph}'`)
130 | }
131 | if (gettingStrategy === GettingStrategy.RETURN_PATH_BY_DEFAULT || gettingStrategy === GettingStrategy.RETURN_PATH_BY_DEFAULT_WITHOUT_ERROR){
132 | db = initialPath;
133 | } else {
134 | return (db = false)
135 | }
136 | }
137 | })
138 |
139 | if (db !== false) {
140 | if (Array.isArray(_with)) {
141 | _with.forEach(w => {
142 | if (typeof w !== 'object') {
143 | db = db.replace(/\{0\}/g, _with[0])
144 | } else {
145 | const replace = `{${w.name}}`
146 | while (db.includes(replace)) {
147 | db = db.replace(replace, w.value)
148 | }
149 | }
150 | })
151 | }
152 | _with = null
153 |
154 | return db
155 | }
156 | },
157 |
158 | /**
159 | * get current permission
160 | */
161 | get current () {
162 | return currentGlobal
163 | },
164 |
165 | /**
166 | * get event bus
167 | */
168 | get bus () {
169 | return EventBus
170 | },
171 |
172 | /**
173 | * get languages list
174 | */
175 | get list() {
176 | return languages.map(l => l.name)
177 | },
178 |
179 | /**
180 | * get languages database list
181 | */
182 | get db() {
183 | return languages.map(function (l) {
184 | return l.database;
185 | });
186 | }
187 | }
188 |
189 | EventBus.$on('vueml-language-changed', (newLanguage) => {
190 | currentGlobal = newLanguage
191 | this.$forceUpdate()
192 | })
193 | }
194 | }
195 | }
196 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@types/vue@^2.0.0":
6 | version "2.0.0"
7 | resolved "https://registry.yarnpkg.com/@types/vue/-/vue-2.0.0.tgz#ec77b3d89591deb9ca5cb052368aa9c32be088e7"
8 | dependencies:
9 | vue "*"
10 |
11 | abbrev@1:
12 | version "1.1.1"
13 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
14 |
15 | ansi-regex@^2.0.0:
16 | version "2.1.1"
17 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
18 |
19 | ansi-styles@^2.2.1:
20 | version "2.2.1"
21 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
22 |
23 | anymatch@^1.3.0:
24 | version "1.3.2"
25 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
26 | dependencies:
27 | micromatch "^2.1.5"
28 | normalize-path "^2.0.0"
29 |
30 | aproba@^1.0.3:
31 | version "1.2.0"
32 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
33 |
34 | are-we-there-yet@~1.1.2:
35 | version "1.1.4"
36 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
37 | dependencies:
38 | delegates "^1.0.0"
39 | readable-stream "^2.0.6"
40 |
41 | arr-diff@^2.0.0:
42 | version "2.0.0"
43 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
44 | dependencies:
45 | arr-flatten "^1.0.1"
46 |
47 | arr-flatten@^1.0.1:
48 | version "1.1.0"
49 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
50 |
51 | array-unique@^0.2.1:
52 | version "0.2.1"
53 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
54 |
55 | async-each@^1.0.0:
56 | version "1.0.1"
57 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
58 |
59 | babel-cli@^6.26.0:
60 | version "6.26.0"
61 | resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
62 | dependencies:
63 | babel-core "^6.26.0"
64 | babel-polyfill "^6.26.0"
65 | babel-register "^6.26.0"
66 | babel-runtime "^6.26.0"
67 | commander "^2.11.0"
68 | convert-source-map "^1.5.0"
69 | fs-readdir-recursive "^1.0.0"
70 | glob "^7.1.2"
71 | lodash "^4.17.4"
72 | output-file-sync "^1.1.2"
73 | path-is-absolute "^1.0.1"
74 | slash "^1.0.0"
75 | source-map "^0.5.6"
76 | v8flags "^2.1.1"
77 | optionalDependencies:
78 | chokidar "^1.6.1"
79 |
80 | babel-code-frame@^6.26.0:
81 | version "6.26.0"
82 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
83 | dependencies:
84 | chalk "^1.1.3"
85 | esutils "^2.0.2"
86 | js-tokens "^3.0.2"
87 |
88 | babel-core@^6.26.0:
89 | version "6.26.3"
90 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
91 | dependencies:
92 | babel-code-frame "^6.26.0"
93 | babel-generator "^6.26.0"
94 | babel-helpers "^6.24.1"
95 | babel-messages "^6.23.0"
96 | babel-register "^6.26.0"
97 | babel-runtime "^6.26.0"
98 | babel-template "^6.26.0"
99 | babel-traverse "^6.26.0"
100 | babel-types "^6.26.0"
101 | babylon "^6.18.0"
102 | convert-source-map "^1.5.1"
103 | debug "^2.6.9"
104 | json5 "^0.5.1"
105 | lodash "^4.17.4"
106 | minimatch "^3.0.4"
107 | path-is-absolute "^1.0.1"
108 | private "^0.1.8"
109 | slash "^1.0.0"
110 | source-map "^0.5.7"
111 |
112 | babel-generator@^6.26.0:
113 | version "6.26.1"
114 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
115 | dependencies:
116 | babel-messages "^6.23.0"
117 | babel-runtime "^6.26.0"
118 | babel-types "^6.26.0"
119 | detect-indent "^4.0.0"
120 | jsesc "^1.3.0"
121 | lodash "^4.17.4"
122 | source-map "^0.5.7"
123 | trim-right "^1.0.1"
124 |
125 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
126 | version "6.24.1"
127 | resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
128 | dependencies:
129 | babel-helper-explode-assignable-expression "^6.24.1"
130 | babel-runtime "^6.22.0"
131 | babel-types "^6.24.1"
132 |
133 | babel-helper-call-delegate@^6.24.1:
134 | version "6.24.1"
135 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
136 | dependencies:
137 | babel-helper-hoist-variables "^6.24.1"
138 | babel-runtime "^6.22.0"
139 | babel-traverse "^6.24.1"
140 | babel-types "^6.24.1"
141 |
142 | babel-helper-define-map@^6.24.1:
143 | version "6.26.0"
144 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
145 | dependencies:
146 | babel-helper-function-name "^6.24.1"
147 | babel-runtime "^6.26.0"
148 | babel-types "^6.26.0"
149 | lodash "^4.17.4"
150 |
151 | babel-helper-explode-assignable-expression@^6.24.1:
152 | version "6.24.1"
153 | resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
154 | dependencies:
155 | babel-runtime "^6.22.0"
156 | babel-traverse "^6.24.1"
157 | babel-types "^6.24.1"
158 |
159 | babel-helper-function-name@^6.24.1:
160 | version "6.24.1"
161 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
162 | dependencies:
163 | babel-helper-get-function-arity "^6.24.1"
164 | babel-runtime "^6.22.0"
165 | babel-template "^6.24.1"
166 | babel-traverse "^6.24.1"
167 | babel-types "^6.24.1"
168 |
169 | babel-helper-get-function-arity@^6.24.1:
170 | version "6.24.1"
171 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
172 | dependencies:
173 | babel-runtime "^6.22.0"
174 | babel-types "^6.24.1"
175 |
176 | babel-helper-hoist-variables@^6.24.1:
177 | version "6.24.1"
178 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
179 | dependencies:
180 | babel-runtime "^6.22.0"
181 | babel-types "^6.24.1"
182 |
183 | babel-helper-optimise-call-expression@^6.24.1:
184 | version "6.24.1"
185 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
186 | dependencies:
187 | babel-runtime "^6.22.0"
188 | babel-types "^6.24.1"
189 |
190 | babel-helper-regex@^6.24.1:
191 | version "6.26.0"
192 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
193 | dependencies:
194 | babel-runtime "^6.26.0"
195 | babel-types "^6.26.0"
196 | lodash "^4.17.4"
197 |
198 | babel-helper-remap-async-to-generator@^6.24.1:
199 | version "6.24.1"
200 | resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
201 | dependencies:
202 | babel-helper-function-name "^6.24.1"
203 | babel-runtime "^6.22.0"
204 | babel-template "^6.24.1"
205 | babel-traverse "^6.24.1"
206 | babel-types "^6.24.1"
207 |
208 | babel-helper-replace-supers@^6.24.1:
209 | version "6.24.1"
210 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
211 | dependencies:
212 | babel-helper-optimise-call-expression "^6.24.1"
213 | babel-messages "^6.23.0"
214 | babel-runtime "^6.22.0"
215 | babel-template "^6.24.1"
216 | babel-traverse "^6.24.1"
217 | babel-types "^6.24.1"
218 |
219 | babel-helpers@^6.24.1:
220 | version "6.24.1"
221 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
222 | dependencies:
223 | babel-runtime "^6.22.0"
224 | babel-template "^6.24.1"
225 |
226 | babel-messages@^6.23.0:
227 | version "6.23.0"
228 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
229 | dependencies:
230 | babel-runtime "^6.22.0"
231 |
232 | babel-plugin-check-es2015-constants@^6.22.0:
233 | version "6.22.0"
234 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
235 | dependencies:
236 | babel-runtime "^6.22.0"
237 |
238 | babel-plugin-syntax-async-functions@^6.8.0:
239 | version "6.13.0"
240 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
241 |
242 | babel-plugin-syntax-exponentiation-operator@^6.8.0:
243 | version "6.13.0"
244 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
245 |
246 | babel-plugin-syntax-trailing-function-commas@^6.22.0:
247 | version "6.22.0"
248 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
249 |
250 | babel-plugin-transform-async-to-generator@^6.22.0:
251 | version "6.24.1"
252 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
253 | dependencies:
254 | babel-helper-remap-async-to-generator "^6.24.1"
255 | babel-plugin-syntax-async-functions "^6.8.0"
256 | babel-runtime "^6.22.0"
257 |
258 | babel-plugin-transform-es2015-arrow-functions@^6.22.0:
259 | version "6.22.0"
260 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
261 | dependencies:
262 | babel-runtime "^6.22.0"
263 |
264 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
265 | version "6.22.0"
266 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
267 | dependencies:
268 | babel-runtime "^6.22.0"
269 |
270 | babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1:
271 | version "6.26.0"
272 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
273 | dependencies:
274 | babel-runtime "^6.26.0"
275 | babel-template "^6.26.0"
276 | babel-traverse "^6.26.0"
277 | babel-types "^6.26.0"
278 | lodash "^4.17.4"
279 |
280 | babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1:
281 | version "6.24.1"
282 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
283 | dependencies:
284 | babel-helper-define-map "^6.24.1"
285 | babel-helper-function-name "^6.24.1"
286 | babel-helper-optimise-call-expression "^6.24.1"
287 | babel-helper-replace-supers "^6.24.1"
288 | babel-messages "^6.23.0"
289 | babel-runtime "^6.22.0"
290 | babel-template "^6.24.1"
291 | babel-traverse "^6.24.1"
292 | babel-types "^6.24.1"
293 |
294 | babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1:
295 | version "6.24.1"
296 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
297 | dependencies:
298 | babel-runtime "^6.22.0"
299 | babel-template "^6.24.1"
300 |
301 | babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0:
302 | version "6.23.0"
303 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
304 | dependencies:
305 | babel-runtime "^6.22.0"
306 |
307 | babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1:
308 | version "6.24.1"
309 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
310 | dependencies:
311 | babel-runtime "^6.22.0"
312 | babel-types "^6.24.1"
313 |
314 | babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0:
315 | version "6.23.0"
316 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
317 | dependencies:
318 | babel-runtime "^6.22.0"
319 |
320 | babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1:
321 | version "6.24.1"
322 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
323 | dependencies:
324 | babel-helper-function-name "^6.24.1"
325 | babel-runtime "^6.22.0"
326 | babel-types "^6.24.1"
327 |
328 | babel-plugin-transform-es2015-literals@^6.22.0:
329 | version "6.22.0"
330 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
331 | dependencies:
332 | babel-runtime "^6.22.0"
333 |
334 | babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1:
335 | version "6.24.1"
336 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154"
337 | dependencies:
338 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
339 | babel-runtime "^6.22.0"
340 | babel-template "^6.24.1"
341 |
342 | babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
343 | version "6.26.2"
344 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3"
345 | dependencies:
346 | babel-plugin-transform-strict-mode "^6.24.1"
347 | babel-runtime "^6.26.0"
348 | babel-template "^6.26.0"
349 | babel-types "^6.26.0"
350 |
351 | babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1:
352 | version "6.24.1"
353 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
354 | dependencies:
355 | babel-helper-hoist-variables "^6.24.1"
356 | babel-runtime "^6.22.0"
357 | babel-template "^6.24.1"
358 |
359 | babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1:
360 | version "6.24.1"
361 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468"
362 | dependencies:
363 | babel-plugin-transform-es2015-modules-amd "^6.24.1"
364 | babel-runtime "^6.22.0"
365 | babel-template "^6.24.1"
366 |
367 | babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1:
368 | version "6.24.1"
369 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
370 | dependencies:
371 | babel-helper-replace-supers "^6.24.1"
372 | babel-runtime "^6.22.0"
373 |
374 | babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1:
375 | version "6.24.1"
376 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
377 | dependencies:
378 | babel-helper-call-delegate "^6.24.1"
379 | babel-helper-get-function-arity "^6.24.1"
380 | babel-runtime "^6.22.0"
381 | babel-template "^6.24.1"
382 | babel-traverse "^6.24.1"
383 | babel-types "^6.24.1"
384 |
385 | babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1:
386 | version "6.24.1"
387 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
388 | dependencies:
389 | babel-runtime "^6.22.0"
390 | babel-types "^6.24.1"
391 |
392 | babel-plugin-transform-es2015-spread@^6.22.0:
393 | version "6.22.0"
394 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
395 | dependencies:
396 | babel-runtime "^6.22.0"
397 |
398 | babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1:
399 | version "6.24.1"
400 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
401 | dependencies:
402 | babel-helper-regex "^6.24.1"
403 | babel-runtime "^6.22.0"
404 | babel-types "^6.24.1"
405 |
406 | babel-plugin-transform-es2015-template-literals@^6.22.0:
407 | version "6.22.0"
408 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
409 | dependencies:
410 | babel-runtime "^6.22.0"
411 |
412 | babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0:
413 | version "6.23.0"
414 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
415 | dependencies:
416 | babel-runtime "^6.22.0"
417 |
418 | babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1:
419 | version "6.24.1"
420 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
421 | dependencies:
422 | babel-helper-regex "^6.24.1"
423 | babel-runtime "^6.22.0"
424 | regexpu-core "^2.0.0"
425 |
426 | babel-plugin-transform-exponentiation-operator@^6.22.0:
427 | version "6.24.1"
428 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
429 | dependencies:
430 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
431 | babel-plugin-syntax-exponentiation-operator "^6.8.0"
432 | babel-runtime "^6.22.0"
433 |
434 | babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1:
435 | version "6.26.0"
436 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
437 | dependencies:
438 | regenerator-transform "^0.10.0"
439 |
440 | babel-plugin-transform-strict-mode@^6.24.1:
441 | version "6.24.1"
442 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
443 | dependencies:
444 | babel-runtime "^6.22.0"
445 | babel-types "^6.24.1"
446 |
447 | babel-polyfill@^6.26.0:
448 | version "6.26.0"
449 | resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
450 | dependencies:
451 | babel-runtime "^6.26.0"
452 | core-js "^2.5.0"
453 | regenerator-runtime "^0.10.5"
454 |
455 | babel-preset-env@^1.6.1:
456 | version "1.7.0"
457 | resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a"
458 | dependencies:
459 | babel-plugin-check-es2015-constants "^6.22.0"
460 | babel-plugin-syntax-trailing-function-commas "^6.22.0"
461 | babel-plugin-transform-async-to-generator "^6.22.0"
462 | babel-plugin-transform-es2015-arrow-functions "^6.22.0"
463 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
464 | babel-plugin-transform-es2015-block-scoping "^6.23.0"
465 | babel-plugin-transform-es2015-classes "^6.23.0"
466 | babel-plugin-transform-es2015-computed-properties "^6.22.0"
467 | babel-plugin-transform-es2015-destructuring "^6.23.0"
468 | babel-plugin-transform-es2015-duplicate-keys "^6.22.0"
469 | babel-plugin-transform-es2015-for-of "^6.23.0"
470 | babel-plugin-transform-es2015-function-name "^6.22.0"
471 | babel-plugin-transform-es2015-literals "^6.22.0"
472 | babel-plugin-transform-es2015-modules-amd "^6.22.0"
473 | babel-plugin-transform-es2015-modules-commonjs "^6.23.0"
474 | babel-plugin-transform-es2015-modules-systemjs "^6.23.0"
475 | babel-plugin-transform-es2015-modules-umd "^6.23.0"
476 | babel-plugin-transform-es2015-object-super "^6.22.0"
477 | babel-plugin-transform-es2015-parameters "^6.23.0"
478 | babel-plugin-transform-es2015-shorthand-properties "^6.22.0"
479 | babel-plugin-transform-es2015-spread "^6.22.0"
480 | babel-plugin-transform-es2015-sticky-regex "^6.22.0"
481 | babel-plugin-transform-es2015-template-literals "^6.22.0"
482 | babel-plugin-transform-es2015-typeof-symbol "^6.23.0"
483 | babel-plugin-transform-es2015-unicode-regex "^6.22.0"
484 | babel-plugin-transform-exponentiation-operator "^6.22.0"
485 | babel-plugin-transform-regenerator "^6.22.0"
486 | browserslist "^3.2.6"
487 | invariant "^2.2.2"
488 | semver "^5.3.0"
489 |
490 | babel-preset-es2015@^6.24.1:
491 | version "6.24.1"
492 | resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
493 | dependencies:
494 | babel-plugin-check-es2015-constants "^6.22.0"
495 | babel-plugin-transform-es2015-arrow-functions "^6.22.0"
496 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
497 | babel-plugin-transform-es2015-block-scoping "^6.24.1"
498 | babel-plugin-transform-es2015-classes "^6.24.1"
499 | babel-plugin-transform-es2015-computed-properties "^6.24.1"
500 | babel-plugin-transform-es2015-destructuring "^6.22.0"
501 | babel-plugin-transform-es2015-duplicate-keys "^6.24.1"
502 | babel-plugin-transform-es2015-for-of "^6.22.0"
503 | babel-plugin-transform-es2015-function-name "^6.24.1"
504 | babel-plugin-transform-es2015-literals "^6.22.0"
505 | babel-plugin-transform-es2015-modules-amd "^6.24.1"
506 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
507 | babel-plugin-transform-es2015-modules-systemjs "^6.24.1"
508 | babel-plugin-transform-es2015-modules-umd "^6.24.1"
509 | babel-plugin-transform-es2015-object-super "^6.24.1"
510 | babel-plugin-transform-es2015-parameters "^6.24.1"
511 | babel-plugin-transform-es2015-shorthand-properties "^6.24.1"
512 | babel-plugin-transform-es2015-spread "^6.22.0"
513 | babel-plugin-transform-es2015-sticky-regex "^6.24.1"
514 | babel-plugin-transform-es2015-template-literals "^6.22.0"
515 | babel-plugin-transform-es2015-typeof-symbol "^6.22.0"
516 | babel-plugin-transform-es2015-unicode-regex "^6.24.1"
517 | babel-plugin-transform-regenerator "^6.24.1"
518 |
519 | babel-register@^6.26.0:
520 | version "6.26.0"
521 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
522 | dependencies:
523 | babel-core "^6.26.0"
524 | babel-runtime "^6.26.0"
525 | core-js "^2.5.0"
526 | home-or-tmp "^2.0.0"
527 | lodash "^4.17.4"
528 | mkdirp "^0.5.1"
529 | source-map-support "^0.4.15"
530 |
531 | babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
532 | version "6.26.0"
533 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
534 | dependencies:
535 | core-js "^2.4.0"
536 | regenerator-runtime "^0.11.0"
537 |
538 | babel-template@^6.24.1, babel-template@^6.26.0:
539 | version "6.26.0"
540 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
541 | dependencies:
542 | babel-runtime "^6.26.0"
543 | babel-traverse "^6.26.0"
544 | babel-types "^6.26.0"
545 | babylon "^6.18.0"
546 | lodash "^4.17.4"
547 |
548 | babel-traverse@^6.24.1, babel-traverse@^6.26.0:
549 | version "6.26.0"
550 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
551 | dependencies:
552 | babel-code-frame "^6.26.0"
553 | babel-messages "^6.23.0"
554 | babel-runtime "^6.26.0"
555 | babel-types "^6.26.0"
556 | babylon "^6.18.0"
557 | debug "^2.6.8"
558 | globals "^9.18.0"
559 | invariant "^2.2.2"
560 | lodash "^4.17.4"
561 |
562 | babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
563 | version "6.26.0"
564 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
565 | dependencies:
566 | babel-runtime "^6.26.0"
567 | esutils "^2.0.2"
568 | lodash "^4.17.4"
569 | to-fast-properties "^1.0.3"
570 |
571 | babylon@^6.18.0:
572 | version "6.18.0"
573 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
574 |
575 | balanced-match@^1.0.0:
576 | version "1.0.0"
577 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
578 |
579 | binary-extensions@^1.0.0:
580 | version "1.11.0"
581 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
582 |
583 | brace-expansion@^1.1.7:
584 | version "1.1.11"
585 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
586 | dependencies:
587 | balanced-match "^1.0.0"
588 | concat-map "0.0.1"
589 |
590 | braces@^1.8.2:
591 | version "1.8.5"
592 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
593 | dependencies:
594 | expand-range "^1.8.1"
595 | preserve "^0.2.0"
596 | repeat-element "^1.1.2"
597 |
598 | browserslist@^3.2.6:
599 | version "3.2.7"
600 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.7.tgz#aa488634d320b55e88bab0256184dbbcca1e6de9"
601 | dependencies:
602 | caniuse-lite "^1.0.30000835"
603 | electron-to-chromium "^1.3.45"
604 |
605 | caniuse-lite@^1.0.30000835:
606 | version "1.0.30000842"
607 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000842.tgz#7a198e3181a207f4b5749b8f5a1817685bf3d7df"
608 |
609 | chalk@^1.1.3:
610 | version "1.1.3"
611 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
612 | dependencies:
613 | ansi-styles "^2.2.1"
614 | escape-string-regexp "^1.0.2"
615 | has-ansi "^2.0.0"
616 | strip-ansi "^3.0.0"
617 | supports-color "^2.0.0"
618 |
619 | chokidar@^1.6.1:
620 | version "1.7.0"
621 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
622 | dependencies:
623 | anymatch "^1.3.0"
624 | async-each "^1.0.0"
625 | glob-parent "^2.0.0"
626 | inherits "^2.0.1"
627 | is-binary-path "^1.0.0"
628 | is-glob "^2.0.0"
629 | path-is-absolute "^1.0.0"
630 | readdirp "^2.0.0"
631 | optionalDependencies:
632 | fsevents "^1.0.0"
633 |
634 | chownr@^1.0.1:
635 | version "1.0.1"
636 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
637 |
638 | code-point-at@^1.0.0:
639 | version "1.1.0"
640 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
641 |
642 | commander@^2.11.0:
643 | version "2.15.1"
644 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
645 |
646 | concat-map@0.0.1:
647 | version "0.0.1"
648 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
649 |
650 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
651 | version "1.1.0"
652 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
653 |
654 | convert-source-map@^1.5.0, convert-source-map@^1.5.1:
655 | version "1.5.1"
656 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
657 |
658 | core-js@^2.4.0, core-js@^2.5.0:
659 | version "2.5.6"
660 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d"
661 |
662 | core-util-is@~1.0.0:
663 | version "1.0.2"
664 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
665 |
666 | debug@^2.1.2, debug@^2.6.8, debug@^2.6.9:
667 | version "2.6.9"
668 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
669 | dependencies:
670 | ms "2.0.0"
671 |
672 | deep-extend@^0.5.1:
673 | version "0.5.1"
674 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f"
675 |
676 | delegates@^1.0.0:
677 | version "1.0.0"
678 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
679 |
680 | detect-indent@^4.0.0:
681 | version "4.0.0"
682 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
683 | dependencies:
684 | repeating "^2.0.0"
685 |
686 | detect-libc@^1.0.2:
687 | version "1.0.3"
688 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
689 |
690 | electron-to-chromium@^1.3.45:
691 | version "1.3.47"
692 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz#764e887ca9104d01a0ac8eabee7dfc0e2ce14104"
693 |
694 | escape-string-regexp@^1.0.2:
695 | version "1.0.5"
696 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
697 |
698 | esutils@^2.0.2:
699 | version "2.0.2"
700 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
701 |
702 | expand-brackets@^0.1.4:
703 | version "0.1.5"
704 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
705 | dependencies:
706 | is-posix-bracket "^0.1.0"
707 |
708 | expand-range@^1.8.1:
709 | version "1.8.2"
710 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
711 | dependencies:
712 | fill-range "^2.1.0"
713 |
714 | extglob@^0.3.1:
715 | version "0.3.2"
716 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
717 | dependencies:
718 | is-extglob "^1.0.0"
719 |
720 | filename-regex@^2.0.0:
721 | version "2.0.1"
722 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
723 |
724 | fill-range@^2.1.0:
725 | version "2.2.4"
726 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
727 | dependencies:
728 | is-number "^2.1.0"
729 | isobject "^2.0.0"
730 | randomatic "^3.0.0"
731 | repeat-element "^1.1.2"
732 | repeat-string "^1.5.2"
733 |
734 | for-in@^1.0.1:
735 | version "1.0.2"
736 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
737 |
738 | for-own@^0.1.4:
739 | version "0.1.5"
740 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
741 | dependencies:
742 | for-in "^1.0.1"
743 |
744 | fs-minipass@^1.2.5:
745 | version "1.2.5"
746 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
747 | dependencies:
748 | minipass "^2.2.1"
749 |
750 | fs-readdir-recursive@^1.0.0:
751 | version "1.1.0"
752 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
753 |
754 | fs.realpath@^1.0.0:
755 | version "1.0.0"
756 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
757 |
758 | fsevents@^1.0.0:
759 | version "1.2.4"
760 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
761 | dependencies:
762 | nan "^2.9.2"
763 | node-pre-gyp "^0.10.0"
764 |
765 | gauge@~2.7.3:
766 | version "2.7.4"
767 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
768 | dependencies:
769 | aproba "^1.0.3"
770 | console-control-strings "^1.0.0"
771 | has-unicode "^2.0.0"
772 | object-assign "^4.1.0"
773 | signal-exit "^3.0.0"
774 | string-width "^1.0.1"
775 | strip-ansi "^3.0.1"
776 | wide-align "^1.1.0"
777 |
778 | glob-base@^0.3.0:
779 | version "0.3.0"
780 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
781 | dependencies:
782 | glob-parent "^2.0.0"
783 | is-glob "^2.0.0"
784 |
785 | glob-parent@^2.0.0:
786 | version "2.0.0"
787 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
788 | dependencies:
789 | is-glob "^2.0.0"
790 |
791 | glob@^7.0.5, glob@^7.1.2:
792 | version "7.1.2"
793 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
794 | dependencies:
795 | fs.realpath "^1.0.0"
796 | inflight "^1.0.4"
797 | inherits "2"
798 | minimatch "^3.0.4"
799 | once "^1.3.0"
800 | path-is-absolute "^1.0.0"
801 |
802 | globals@^9.18.0:
803 | version "9.18.0"
804 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
805 |
806 | graceful-fs@^4.1.2, graceful-fs@^4.1.4:
807 | version "4.1.11"
808 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
809 |
810 | has-ansi@^2.0.0:
811 | version "2.0.0"
812 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
813 | dependencies:
814 | ansi-regex "^2.0.0"
815 |
816 | has-unicode@^2.0.0:
817 | version "2.0.1"
818 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
819 |
820 | home-or-tmp@^2.0.0:
821 | version "2.0.0"
822 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
823 | dependencies:
824 | os-homedir "^1.0.0"
825 | os-tmpdir "^1.0.1"
826 |
827 | iconv-lite@^0.4.4:
828 | version "0.4.23"
829 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
830 | dependencies:
831 | safer-buffer ">= 2.1.2 < 3"
832 |
833 | ignore-walk@^3.0.1:
834 | version "3.0.1"
835 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
836 | dependencies:
837 | minimatch "^3.0.4"
838 |
839 | inflight@^1.0.4:
840 | version "1.0.6"
841 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
842 | dependencies:
843 | once "^1.3.0"
844 | wrappy "1"
845 |
846 | inherits@2, inherits@^2.0.1, inherits@~2.0.3:
847 | version "2.0.3"
848 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
849 |
850 | ini@~1.3.0:
851 | version "1.3.5"
852 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
853 |
854 | invariant@^2.2.2:
855 | version "2.2.4"
856 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
857 | dependencies:
858 | loose-envify "^1.0.0"
859 |
860 | is-binary-path@^1.0.0:
861 | version "1.0.1"
862 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
863 | dependencies:
864 | binary-extensions "^1.0.0"
865 |
866 | is-buffer@^1.1.5:
867 | version "1.1.6"
868 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
869 |
870 | is-dotfile@^1.0.0:
871 | version "1.0.3"
872 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
873 |
874 | is-equal-shallow@^0.1.3:
875 | version "0.1.3"
876 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
877 | dependencies:
878 | is-primitive "^2.0.0"
879 |
880 | is-extendable@^0.1.1:
881 | version "0.1.1"
882 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
883 |
884 | is-extglob@^1.0.0:
885 | version "1.0.0"
886 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
887 |
888 | is-finite@^1.0.0:
889 | version "1.0.2"
890 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
891 | dependencies:
892 | number-is-nan "^1.0.0"
893 |
894 | is-fullwidth-code-point@^1.0.0:
895 | version "1.0.0"
896 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
897 | dependencies:
898 | number-is-nan "^1.0.0"
899 |
900 | is-glob@^2.0.0, is-glob@^2.0.1:
901 | version "2.0.1"
902 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
903 | dependencies:
904 | is-extglob "^1.0.0"
905 |
906 | is-number@^2.1.0:
907 | version "2.1.0"
908 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
909 | dependencies:
910 | kind-of "^3.0.2"
911 |
912 | is-number@^4.0.0:
913 | version "4.0.0"
914 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
915 |
916 | is-posix-bracket@^0.1.0:
917 | version "0.1.1"
918 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
919 |
920 | is-primitive@^2.0.0:
921 | version "2.0.0"
922 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
923 |
924 | isarray@1.0.0, isarray@~1.0.0:
925 | version "1.0.0"
926 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
927 |
928 | isobject@^2.0.0:
929 | version "2.1.0"
930 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
931 | dependencies:
932 | isarray "1.0.0"
933 |
934 | js-tokens@^3.0.0, js-tokens@^3.0.2:
935 | version "3.0.2"
936 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
937 |
938 | jsesc@^1.3.0:
939 | version "1.3.0"
940 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
941 |
942 | jsesc@~0.5.0:
943 | version "0.5.0"
944 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
945 |
946 | json5@^0.5.1:
947 | version "0.5.1"
948 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
949 |
950 | kind-of@^3.0.2:
951 | version "3.2.2"
952 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
953 | dependencies:
954 | is-buffer "^1.1.5"
955 |
956 | kind-of@^6.0.0:
957 | version "6.0.2"
958 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
959 |
960 | lodash@^4.17.4:
961 | version "4.17.15"
962 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
963 |
964 | loose-envify@^1.0.0:
965 | version "1.3.1"
966 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
967 | dependencies:
968 | js-tokens "^3.0.0"
969 |
970 | math-random@^1.0.1:
971 | version "1.0.1"
972 | resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac"
973 |
974 | micromatch@^2.1.5:
975 | version "2.3.11"
976 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
977 | dependencies:
978 | arr-diff "^2.0.0"
979 | array-unique "^0.2.1"
980 | braces "^1.8.2"
981 | expand-brackets "^0.1.4"
982 | extglob "^0.3.1"
983 | filename-regex "^2.0.0"
984 | is-extglob "^1.0.0"
985 | is-glob "^2.0.1"
986 | kind-of "^3.0.2"
987 | normalize-path "^2.0.1"
988 | object.omit "^2.0.0"
989 | parse-glob "^3.0.4"
990 | regex-cache "^0.4.2"
991 |
992 | minimatch@^3.0.2, minimatch@^3.0.4:
993 | version "3.0.4"
994 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
995 | dependencies:
996 | brace-expansion "^1.1.7"
997 |
998 | minimist@0.0.8:
999 | version "0.0.8"
1000 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1001 |
1002 | minimist@^1.2.0:
1003 | version "1.2.0"
1004 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1005 |
1006 | minipass@^2.2.1, minipass@^2.2.4:
1007 | version "2.3.0"
1008 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.0.tgz#2e11b1c46df7fe7f1afbe9a490280add21ffe384"
1009 | dependencies:
1010 | safe-buffer "^5.1.1"
1011 | yallist "^3.0.0"
1012 |
1013 | minizlib@^1.1.0:
1014 | version "1.1.0"
1015 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
1016 | dependencies:
1017 | minipass "^2.2.1"
1018 |
1019 | mkdirp@^0.5.0, mkdirp@^0.5.1:
1020 | version "0.5.1"
1021 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1022 | dependencies:
1023 | minimist "0.0.8"
1024 |
1025 | ms@2.0.0:
1026 | version "2.0.0"
1027 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1028 |
1029 | nan@^2.9.2:
1030 | version "2.10.0"
1031 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
1032 |
1033 | needle@^2.2.0:
1034 | version "2.2.1"
1035 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d"
1036 | dependencies:
1037 | debug "^2.1.2"
1038 | iconv-lite "^0.4.4"
1039 | sax "^1.2.4"
1040 |
1041 | node-pre-gyp@^0.10.0:
1042 | version "0.10.0"
1043 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46"
1044 | dependencies:
1045 | detect-libc "^1.0.2"
1046 | mkdirp "^0.5.1"
1047 | needle "^2.2.0"
1048 | nopt "^4.0.1"
1049 | npm-packlist "^1.1.6"
1050 | npmlog "^4.0.2"
1051 | rc "^1.1.7"
1052 | rimraf "^2.6.1"
1053 | semver "^5.3.0"
1054 | tar "^4"
1055 |
1056 | nopt@^4.0.1:
1057 | version "4.0.1"
1058 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
1059 | dependencies:
1060 | abbrev "1"
1061 | osenv "^0.1.4"
1062 |
1063 | normalize-path@^2.0.0, normalize-path@^2.0.1:
1064 | version "2.1.1"
1065 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
1066 | dependencies:
1067 | remove-trailing-separator "^1.0.1"
1068 |
1069 | npm-bundled@^1.0.1:
1070 | version "1.0.3"
1071 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308"
1072 |
1073 | npm-packlist@^1.1.6:
1074 | version "1.1.10"
1075 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a"
1076 | dependencies:
1077 | ignore-walk "^3.0.1"
1078 | npm-bundled "^1.0.1"
1079 |
1080 | npmlog@^4.0.2:
1081 | version "4.1.2"
1082 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
1083 | dependencies:
1084 | are-we-there-yet "~1.1.2"
1085 | console-control-strings "~1.1.0"
1086 | gauge "~2.7.3"
1087 | set-blocking "~2.0.0"
1088 |
1089 | number-is-nan@^1.0.0:
1090 | version "1.0.1"
1091 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
1092 |
1093 | object-assign@^4.1.0:
1094 | version "4.1.1"
1095 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1096 |
1097 | object.omit@^2.0.0:
1098 | version "2.0.1"
1099 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
1100 | dependencies:
1101 | for-own "^0.1.4"
1102 | is-extendable "^0.1.1"
1103 |
1104 | once@^1.3.0:
1105 | version "1.4.0"
1106 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1107 | dependencies:
1108 | wrappy "1"
1109 |
1110 | os-homedir@^1.0.0:
1111 | version "1.0.2"
1112 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
1113 |
1114 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
1115 | version "1.0.2"
1116 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1117 |
1118 | osenv@^0.1.4:
1119 | version "0.1.5"
1120 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
1121 | dependencies:
1122 | os-homedir "^1.0.0"
1123 | os-tmpdir "^1.0.0"
1124 |
1125 | output-file-sync@^1.1.2:
1126 | version "1.1.2"
1127 | resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76"
1128 | dependencies:
1129 | graceful-fs "^4.1.4"
1130 | mkdirp "^0.5.1"
1131 | object-assign "^4.1.0"
1132 |
1133 | parse-glob@^3.0.4:
1134 | version "3.0.4"
1135 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
1136 | dependencies:
1137 | glob-base "^0.3.0"
1138 | is-dotfile "^1.0.0"
1139 | is-extglob "^1.0.0"
1140 | is-glob "^2.0.0"
1141 |
1142 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
1143 | version "1.0.1"
1144 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1145 |
1146 | preserve@^0.2.0:
1147 | version "0.2.0"
1148 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
1149 |
1150 | private@^0.1.6, private@^0.1.8:
1151 | version "0.1.8"
1152 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
1153 |
1154 | process-nextick-args@~2.0.0:
1155 | version "2.0.0"
1156 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
1157 |
1158 | randomatic@^3.0.0:
1159 | version "3.0.0"
1160 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923"
1161 | dependencies:
1162 | is-number "^4.0.0"
1163 | kind-of "^6.0.0"
1164 | math-random "^1.0.1"
1165 |
1166 | rc@^1.1.7:
1167 | version "1.2.7"
1168 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.7.tgz#8a10ca30d588d00464360372b890d06dacd02297"
1169 | dependencies:
1170 | deep-extend "^0.5.1"
1171 | ini "~1.3.0"
1172 | minimist "^1.2.0"
1173 | strip-json-comments "~2.0.1"
1174 |
1175 | readable-stream@^2.0.2, readable-stream@^2.0.6:
1176 | version "2.3.6"
1177 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
1178 | dependencies:
1179 | core-util-is "~1.0.0"
1180 | inherits "~2.0.3"
1181 | isarray "~1.0.0"
1182 | process-nextick-args "~2.0.0"
1183 | safe-buffer "~5.1.1"
1184 | string_decoder "~1.1.1"
1185 | util-deprecate "~1.0.1"
1186 |
1187 | readdirp@^2.0.0:
1188 | version "2.1.0"
1189 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
1190 | dependencies:
1191 | graceful-fs "^4.1.2"
1192 | minimatch "^3.0.2"
1193 | readable-stream "^2.0.2"
1194 | set-immediate-shim "^1.0.1"
1195 |
1196 | regenerate@^1.2.1:
1197 | version "1.4.0"
1198 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
1199 |
1200 | regenerator-runtime@^0.10.5:
1201 | version "0.10.5"
1202 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
1203 |
1204 | regenerator-runtime@^0.11.0:
1205 | version "0.11.1"
1206 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
1207 |
1208 | regenerator-transform@^0.10.0:
1209 | version "0.10.1"
1210 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
1211 | dependencies:
1212 | babel-runtime "^6.18.0"
1213 | babel-types "^6.19.0"
1214 | private "^0.1.6"
1215 |
1216 | regex-cache@^0.4.2:
1217 | version "0.4.4"
1218 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
1219 | dependencies:
1220 | is-equal-shallow "^0.1.3"
1221 |
1222 | regexpu-core@^2.0.0:
1223 | version "2.0.0"
1224 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
1225 | dependencies:
1226 | regenerate "^1.2.1"
1227 | regjsgen "^0.2.0"
1228 | regjsparser "^0.1.4"
1229 |
1230 | regjsgen@^0.2.0:
1231 | version "0.2.0"
1232 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
1233 |
1234 | regjsparser@^0.1.4:
1235 | version "0.1.5"
1236 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
1237 | dependencies:
1238 | jsesc "~0.5.0"
1239 |
1240 | remove-trailing-separator@^1.0.1:
1241 | version "1.1.0"
1242 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
1243 |
1244 | repeat-element@^1.1.2:
1245 | version "1.1.2"
1246 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
1247 |
1248 | repeat-string@^1.5.2:
1249 | version "1.6.1"
1250 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
1251 |
1252 | repeating@^2.0.0:
1253 | version "2.0.1"
1254 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
1255 | dependencies:
1256 | is-finite "^1.0.0"
1257 |
1258 | rimraf@^2.6.1:
1259 | version "2.6.2"
1260 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
1261 | dependencies:
1262 | glob "^7.0.5"
1263 |
1264 | safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1265 | version "5.1.2"
1266 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1267 |
1268 | "safer-buffer@>= 2.1.2 < 3":
1269 | version "2.1.2"
1270 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1271 |
1272 | sax@^1.2.4:
1273 | version "1.2.4"
1274 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
1275 |
1276 | semver@^5.3.0:
1277 | version "5.5.0"
1278 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
1279 |
1280 | set-blocking@~2.0.0:
1281 | version "2.0.0"
1282 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1283 |
1284 | set-immediate-shim@^1.0.1:
1285 | version "1.0.1"
1286 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
1287 |
1288 | signal-exit@^3.0.0:
1289 | version "3.0.2"
1290 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
1291 |
1292 | slash@^1.0.0:
1293 | version "1.0.0"
1294 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
1295 |
1296 | source-map-support@^0.4.15:
1297 | version "0.4.18"
1298 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
1299 | dependencies:
1300 | source-map "^0.5.6"
1301 |
1302 | source-map@^0.5.6, source-map@^0.5.7:
1303 | version "0.5.7"
1304 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1305 |
1306 | string-width@^1.0.1, string-width@^1.0.2:
1307 | version "1.0.2"
1308 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
1309 | dependencies:
1310 | code-point-at "^1.0.0"
1311 | is-fullwidth-code-point "^1.0.0"
1312 | strip-ansi "^3.0.0"
1313 |
1314 | string_decoder@~1.1.1:
1315 | version "1.1.1"
1316 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1317 | dependencies:
1318 | safe-buffer "~5.1.0"
1319 |
1320 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
1321 | version "3.0.1"
1322 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
1323 | dependencies:
1324 | ansi-regex "^2.0.0"
1325 |
1326 | strip-json-comments@~2.0.1:
1327 | version "2.0.1"
1328 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1329 |
1330 | supports-color@^2.0.0:
1331 | version "2.0.0"
1332 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
1333 |
1334 | tar@^4:
1335 | version "4.4.2"
1336 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462"
1337 | dependencies:
1338 | chownr "^1.0.1"
1339 | fs-minipass "^1.2.5"
1340 | minipass "^2.2.4"
1341 | minizlib "^1.1.0"
1342 | mkdirp "^0.5.0"
1343 | safe-buffer "^5.1.2"
1344 | yallist "^3.0.2"
1345 |
1346 | to-fast-properties@^1.0.3:
1347 | version "1.0.3"
1348 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
1349 |
1350 | trim-right@^1.0.1:
1351 | version "1.0.1"
1352 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
1353 |
1354 | user-home@^1.1.1:
1355 | version "1.1.1"
1356 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
1357 |
1358 | util-deprecate@~1.0.1:
1359 | version "1.0.2"
1360 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1361 |
1362 | v8flags@^2.1.1:
1363 | version "2.1.1"
1364 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
1365 | dependencies:
1366 | user-home "^1.1.1"
1367 |
1368 | vue@*, vue@^2.5.16:
1369 | version "2.5.16"
1370 | resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.16.tgz#07edb75e8412aaeed871ebafa99f4672584a0085"
1371 |
1372 | wide-align@^1.1.0:
1373 | version "1.1.2"
1374 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
1375 | dependencies:
1376 | string-width "^1.0.2"
1377 |
1378 | wrappy@1:
1379 | version "1.0.2"
1380 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1381 |
1382 | yallist@^3.0.0, yallist@^3.0.2:
1383 | version "3.0.2"
1384 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
1385 |
--------------------------------------------------------------------------------