├── .eslintrc.json
├── .gitignore
├── BadDOM.js
├── BadDOM.min.js
├── LICENSE
├── README.md
├── package.json
└── yarn.lock
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "airbnb-base",
3 | "env": {
4 | "es6": true,
5 | "browser": true
6 | },
7 | "rules": {
8 | "indent": ["error", 4],
9 | "no-unused-expressions": 0,
10 | "max-len": ["error", 120],
11 | "arrow-parens": 0,
12 | "no-confusing-arrow": 0,
13 | "no-param-reassign": 0
14 | }
15 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #################
2 | ## Eclipse
3 | #################
4 |
5 | *.pydevproject
6 | .project
7 | .metadata
8 | bin/
9 | tmp/
10 | *.tmp
11 | *.bak
12 | *.swp
13 | *~.nib
14 | local.properties
15 | .classpath
16 | .settings/
17 | .loadpath
18 |
19 | # External tool builders
20 | .externalToolBuilders/
21 |
22 | # Locally stored "Eclipse launch configurations"
23 | *.launch
24 |
25 | # CDT-specific
26 | .cproject
27 |
28 | # PDT-specific
29 | .buildpath
30 |
31 |
32 | #################
33 | ## Visual Studio
34 | #################
35 |
36 | ## Ignore Visual Studio temporary files, build results, and
37 | ## files generated by popular Visual Studio add-ons.
38 |
39 | # User-specific files
40 | *.suo
41 | *.user
42 | *.sln.docstates
43 |
44 | # VScode
45 | .vscode
46 |
47 | # Build results
48 |
49 | [Dd]ebug/
50 | [Rr]elease/
51 | x64/
52 | build/
53 | [Bb]in/
54 | [Oo]bj/
55 |
56 | # MSTest test Results
57 | [Tt]est[Rr]esult*/
58 | [Bb]uild[Ll]og.*
59 |
60 | *_i.c
61 | *_p.c
62 | *.ilk
63 | *.meta
64 | *.obj
65 | *.pch
66 | *.pdb
67 | *.pgc
68 | *.pgd
69 | *.rsp
70 | *.sbr
71 | *.tlb
72 | *.tli
73 | *.tlh
74 | *.tmp
75 | *.tmp_proj
76 | *.log
77 | *.vspscc
78 | *.vssscc
79 | .builds
80 | *.pidb
81 | *.log
82 | *.scc
83 |
84 | # Visual C++ cache files
85 | ipch/
86 | *.aps
87 | *.ncb
88 | *.opensdf
89 | *.sdf
90 | *.cachefile
91 |
92 | # Visual Studio profiler
93 | *.psess
94 | *.vsp
95 | *.vspx
96 |
97 | # Guidance Automation Toolkit
98 | *.gpState
99 |
100 | # ReSharper is a .NET coding add-in
101 | _ReSharper*/
102 | *.[Rr]e[Ss]harper
103 |
104 | # TeamCity is a build add-in
105 | _TeamCity*
106 |
107 | # DotCover is a Code Coverage Tool
108 | *.dotCover
109 |
110 | # NCrunch
111 | *.ncrunch*
112 | .*crunch*.local.xml
113 |
114 | # Installshield output folder
115 | [Ee]xpress/
116 |
117 | # DocProject is a documentation generator add-in
118 | DocProject/buildhelp/
119 | DocProject/Help/*.HxT
120 | DocProject/Help/*.HxC
121 | DocProject/Help/*.hhc
122 | DocProject/Help/*.hhk
123 | DocProject/Help/*.hhp
124 | DocProject/Help/Html2
125 | DocProject/Help/html
126 |
127 | # Click-Once directory
128 | publish/
129 |
130 | # Publish Web Output
131 | *.Publish.xml
132 | *.pubxml
133 |
134 | # NuGet Packages Directory
135 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line
136 | #packages/
137 |
138 | # Windows Azure Build Output
139 | csx
140 | *.build.csdef
141 |
142 | # Windows Store app package directory
143 | AppPackages/
144 |
145 | # Others
146 | sql/
147 | *.Cache
148 | ClientBin/
149 | [Ss]tyle[Cc]op.*
150 | ~$*
151 | *~
152 | *.dbmdl
153 | *.[Pp]ublish.xml
154 | *.pfx
155 | *.publishsettings
156 |
157 | # RIA/Silverlight projects
158 | Generated_Code/
159 |
160 | # Backup & report files from converting an old project file to a newer
161 | # Visual Studio version. Backup files are not needed, because we have git ;-)
162 | _UpgradeReport_Files/
163 | Backup*/
164 | UpgradeLog*.XML
165 | UpgradeLog*.htm
166 |
167 | # SQL Server files
168 | App_Data/*.mdf
169 | App_Data/*.ldf
170 |
171 | #############
172 | ## Windows detritus
173 | #############
174 |
175 | # Windows image file caches
176 | Thumbs.db
177 | ehthumbs.db
178 |
179 | # Folder config file
180 | Desktop.ini
181 |
182 | # Recycle Bin used on file shares
183 | $RECYCLE.BIN/
184 |
185 | # Mac crap
186 | .DS_Store
187 |
188 |
189 | #############
190 | ## Python
191 | #############
192 |
193 | *.py[co]
194 |
195 | # Packages
196 | *.egg
197 | *.egg-info
198 | build/
199 | eggs/
200 | parts/
201 | var/
202 | sdist/
203 | develop-eggs/
204 | .installed.cfg
205 |
206 | # Installer logs
207 | pip-log.txt
208 |
209 | # Unit test / coverage reports
210 | .coverage
211 | .tox
212 | spec/screenshots
213 |
214 | #Translations
215 | *.mo
216 |
217 | #Mr Developer
218 | .mr.developer.cfg
219 |
220 | sftp-config.json
221 |
222 | #Node
223 | /node_modules
224 | npm-debug.log
225 | package-lock.json
226 |
227 | # workspace files are user-specific
228 | *.sublime-workspace
229 | *.sublime-project
230 |
231 | # Super secret stuff
232 | github_npm
233 | .npmrc
234 | Icon?
--------------------------------------------------------------------------------
/BadDOM.js:
--------------------------------------------------------------------------------
1 |
2 | window.vDiff = (target, source) => {
3 | const worker = {
4 | settings: {
5 | original: target,
6 | },
7 | replace(nTarget, nSource = target) {
8 | const v = new DOMParser().parseFromString(source, 'text/html').body.childNodes
9 | const vHTML = v[0];
10 | if (vHTML.nodeName !== target.nodeName) {
11 | target.parentElement.replaceChild(vHTML, target);
12 | return;
13 | }
14 | this.iterate(target, vHTML);
15 | },
16 | iterate(targetNode, sourceNode, tOriginal) {
17 | if (targetNode || sourceNode) {
18 | this.checkAdditions(targetNode, sourceNode, tOriginal);
19 | if (targetNode && sourceNode && targetNode.nodeName !== sourceNode.nodeName) {
20 | this.checkNodeName(targetNode, sourceNode);
21 | } else if (targetNode && sourceNode && targetNode.nodeName === sourceNode.nodeName) {
22 | this.checkTextContent(targetNode, sourceNode);
23 | targetNode.nodeType !== 3 && target.nodeType !== 8 && this.checkAttributes(targetNode, sourceNode);
24 | }
25 | }
26 | if (targetNode && sourceNode) {
27 | if (targetNode.childNodes && sourceNode.childNodes) {
28 | this.settings.lengthDifferentiator = [...target.childNodes, ...sourceNode.childNodes];
29 | } else {
30 | this.settings.lengthDifferentiator = null;
31 | }
32 | (this.settings.lengthDifferentiator || []).forEach((node, idx) => {
33 | this.settings.lengthDifferentiator &&
34 | this.iterate(targetNode.childNodes[idx], sourceNode.childNodes[idx], targetNode, sourceNode);
35 | });
36 | }
37 | },
38 | checkNodeName(targetNode, sourceNode) {
39 | const n = sourceNode.cloneNode(true);
40 | targetNode.parentElement.replaceChild(n, targetNode);
41 | },
42 | checkAttributes(targetNode, sourceNode) {
43 | const attributes = targetNode.attributes || [];
44 | const filteredAttrs = Object.keys(attributes).map((n) => attributes[n]);
45 | const attributesNew = sourceNode.attributes || [];
46 | const filteredAttrsNew = Object.keys(attributesNew).map((n) => attributesNew[n]);
47 | filteredAttrs.forEach(o => sourceNode.getAttribute(o.name) !== null ?
48 | targetNode.setAttribute(o.name, sourceNode.getAttribute(o.name)) :
49 | targetNode.removeAttribute(o.name));
50 | filteredAttrsNew.forEach(a => targetNode.getAttribute(a.name) !== sourceNode.getAttribute(a.name) &&
51 | targetNode.setAttribute(a.name, sourceNode.getAttribute(a.name)));
52 | },
53 | checkTextContent(targetNode, sourceNode) {
54 | if (targetNode.nodeValue !== sourceNode.nodeValue) {
55 | targetNode.textContent = sourceNode.textContent;
56 | }
57 | },
58 | checkAdditions(targetNode, sourceNode, tParent = this.settings.original) {
59 | if (sourceNode && targetNode === undefined) {
60 | const newNode = sourceNode.cloneNode(true);
61 | tParent.nodeType !== 3 && tParent.nodeType !== 8 && tParent.appendChild(newNode);
62 | } else if (targetNode && sourceNode === undefined) {
63 | targetNode.parentElement.removeChild(targetNode);
64 | }
65 | },
66 | };
67 | Object.create(worker).replace(target, source);
68 | };
69 |
--------------------------------------------------------------------------------
/BadDOM.min.js:
--------------------------------------------------------------------------------
1 | window.vDiff=((e,t)=>{const i={settings:{original:e},replace(i,n=e){const o=(new DOMParser).parseFromString(t,"text/html").body.childNodes[0];o.nodeName===e.nodeName?this.iterate(e,o):e.parentElement.replaceChild(o,e)},iterate(t,i,n){(t||i)&&(this.checkAdditions(t,i,n),t&&i&&t.nodeName!==i.nodeName?this.checkNodeName(t,i):t&&i&&t.nodeName===i.nodeName&&(this.checkTextContent(t,i),3!==t.nodeType&&8!==e.nodeType&&this.checkAttributes(t,i))),t&&i&&(t.childNodes&&i.childNodes?this.settings.lengthDifferentiator=[...e.childNodes,...i.childNodes]:this.settings.lengthDifferentiator=null,(this.settings.lengthDifferentiator||[]).forEach((e,n)=>{this.settings.lengthDifferentiator&&this.iterate(t.childNodes[n],i.childNodes[n],t,i)}))},checkNodeName(e,t){const i=t.cloneNode(!0);e.parentElement.replaceChild(i,e)},checkAttributes(e,t){const i=e.attributes||[],n=Object.keys(i).map(e=>i[e]),o=t.attributes||[],s=Object.keys(o).map(e=>o[e]);n.forEach(i=>null!==t.getAttribute(i.name)?e.setAttribute(i.name,t.getAttribute(i.name)):e.removeAttribute(i.name)),s.forEach(i=>e.getAttribute(i.name)!==t.getAttribute(i.name)&&e.setAttribute(i.name,t.getAttribute(i.name)))},checkTextContent(e,t){e.nodeValue!==t.nodeValue&&(e.textContent=t.textContent)},checkAdditions(e,t,i=this.settings.original){if(t&&void 0===e){const e=t.cloneNode(!0);3!==i.nodeType&&8!==i.nodeType&&i.appendChild(e)}else e&&void 0===t&&e.parentElement.removeChild(e)}};Object.create(i).replace(e,t)});
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Tim Evko
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # BadDOM
2 | the smallest component renderer
3 |
Introducing: Bad-DOM - the smallest* component renderer
4 |
5 | *seriously, it's 592 bytes minified + gzipped
6 |
7 | What does it do?
8 | Bad-DOM is a lazy diffing algorithm and HTML component renderer. It's lazy because it doesn't try too hard to keep the browser from doing unnecessary work, but still does a pretty good job.
9 | Bad-DOM exposes a single function, vDiff
, which takes 2 parameters. The first being an existing element on the page, and the second being a template string representing the markup you would like to replace the first item with.
10 |
11 | Calling this function will result in parameter 1 being replaced by parameter 2, with the goal of the least amount of changes taking place in the DOM in order to achieve that replacement. Here's what that would look like using some "hello world" text in a p tag:
12 |
13 | vDiff(document.querySelector('.hello-world-demo'), `<p class="hello-world-demo">GoodBye!</p>`)
14 |
15 | In this example, we're taking an element from the page (a paragraph tag with text in it that says "hello world!") and changing the text inside it. Bad-DOM knows not to change anything other than the text, because it can tell that nothing else has changed.
16 | What else does it do?
17 | Since Bad-DOM takes a template string as its second parameter, it becomes a fully capable component renderer as well.
18 | For example, given an html page with an empty element: <div id="My-App"></div>
19 | We can render markup into our My-App container:
20 |
21 |
22 | const name = 'Tim';
23 | vDiff(document.querySelector('#My-App'), `<div id="My-App">Hello, ${name}</div>`);
24 |
25 |
26 |
27 | An example of this behavior can be found here, wherein a working image slider is being rendered into the dom and transitioned based on a counter state.
28 |
Here's the code necessary to render the slider:
29 |
30 |
31 | document.querySelector('button').addEventListener('click', () => {
32 | x = (x === 3 ? 0 : x + 1);
33 | vDiff(document.querySelector('section'),
34 | `<section>
35 | <img style="display:${x === 1 ? 'block' : 'none'}" src="https://placeimg.com/700/200/tech" alt="phones p much">
36 | <img style="display:${x === 2 ? 'block' : 'none'}" src="https://placeimg.com/700/200/people" alt="peeps">
37 | <img style="display:${x === 0 ? 'block' : 'none'}" src="https://placeimg.com/700/200/animals" alt="woofers">
38 | <img style="display:${x === 3 ? 'block' : 'none'}" src="https://placeimg.com/700/200/nature" alt="outside">
39 | </section>`
40 | );
41 | });
42 |
43 |
44 |
45 | Why should I use this thing?
46 | Since Bad-DOM is a fully capable component renderer, you can use it to build fully capable UI's. An example is provided here: https://codepen.io/tevko/pen/MrwXdy.
47 | For the above demo application to work, all we need to do is include the Bad-DOM library, provide a render target, and feed the vDiff function a template string. After the initial rendering takes place, the inline event handlers reference functions that update the global app state and rebuild the template string. No more DOM manipulation, render-hacks, or confusing framework methods to memorize.
48 | Overall, you can use Bad-DOM to build powerful components as long as you provide your own state management and event systems. In the counter demo referenced above, basic inline html events are being used, while each callback function is only responsible for updating the application state and calling the render function. Essentially, Bad-DOM's advantage is that it doesn't keep any internal memory, but is still able to intelligently update the DOM based on whatever source it is given. Since Bad-DOM doesn't provide any reoccuring update functionality (you need to tell it to re-render explicitly) your application will be less likely to fall into common performance pitfalls seen with other component renderers.
49 | Conclusion
50 |
51 | - Bad-DOM is fast.
52 | - Bad-DOM is small.
53 | - Bad-DOM is incredibly easy to use.
54 |
55 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "baddom",
3 | "version": "1.0.0",
4 | "description": "The Worlds smalles component renderer",
5 | "main": "BadDOM.js",
6 | "scripts": {
7 | "precommit": "./node_modules/.bin/eslint BadDom.js"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/tevko/BadDOM.git"
12 | },
13 | "keywords": [
14 | "javascript",
15 | "es6",
16 | "framework"
17 | ],
18 | "author": "@tevko",
19 | "license": "MIT",
20 | "bugs": {
21 | "url": "https://github.com/tevko/BadDOM/issues"
22 | },
23 | "homepage": "https://github.com/tevko/BadDOM#readme",
24 | "devDependencies": {
25 | "eslint": "^4.19.1",
26 | "eslint-config-airbnb-base": "^12.1.0",
27 | "eslint-plugin-import": "^2.12.0",
28 | "husky": "^0.14.3"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | acorn-jsx@^3.0.0:
6 | version "3.0.1"
7 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
8 | dependencies:
9 | acorn "^3.0.4"
10 |
11 | acorn@^3.0.4:
12 | version "3.3.0"
13 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
14 |
15 | acorn@^5.5.0:
16 | version "5.7.1"
17 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
18 |
19 | ajv-keywords@^2.1.0:
20 | version "2.1.1"
21 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
22 |
23 | ajv@^5.2.3, ajv@^5.3.0:
24 | version "5.5.2"
25 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
26 | dependencies:
27 | co "^4.6.0"
28 | fast-deep-equal "^1.0.0"
29 | fast-json-stable-stringify "^2.0.0"
30 | json-schema-traverse "^0.3.0"
31 |
32 | ansi-escapes@^3.0.0:
33 | version "3.1.0"
34 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
35 |
36 | ansi-regex@^2.0.0:
37 | version "2.1.1"
38 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
39 |
40 | ansi-regex@^3.0.0:
41 | version "3.0.0"
42 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
43 |
44 | ansi-styles@^2.2.1:
45 | version "2.2.1"
46 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
47 |
48 | ansi-styles@^3.2.1:
49 | version "3.2.1"
50 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
51 | dependencies:
52 | color-convert "^1.9.0"
53 |
54 | argparse@^1.0.7:
55 | version "1.0.10"
56 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
57 | dependencies:
58 | sprintf-js "~1.0.2"
59 |
60 | array-union@^1.0.1:
61 | version "1.0.2"
62 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
63 | dependencies:
64 | array-uniq "^1.0.1"
65 |
66 | array-uniq@^1.0.1:
67 | version "1.0.3"
68 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
69 |
70 | arrify@^1.0.0:
71 | version "1.0.1"
72 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
73 |
74 | babel-code-frame@^6.22.0:
75 | version "6.26.0"
76 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
77 | dependencies:
78 | chalk "^1.1.3"
79 | esutils "^2.0.2"
80 | js-tokens "^3.0.2"
81 |
82 | balanced-match@^1.0.0:
83 | version "1.0.0"
84 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
85 |
86 | brace-expansion@^1.1.7:
87 | version "1.1.11"
88 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
89 | dependencies:
90 | balanced-match "^1.0.0"
91 | concat-map "0.0.1"
92 |
93 | buffer-from@^1.0.0:
94 | version "1.1.0"
95 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04"
96 |
97 | builtin-modules@^1.0.0:
98 | version "1.1.1"
99 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
100 |
101 | caller-path@^0.1.0:
102 | version "0.1.0"
103 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
104 | dependencies:
105 | callsites "^0.2.0"
106 |
107 | callsites@^0.2.0:
108 | version "0.2.0"
109 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
110 |
111 | chalk@^1.1.3:
112 | version "1.1.3"
113 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
114 | dependencies:
115 | ansi-styles "^2.2.1"
116 | escape-string-regexp "^1.0.2"
117 | has-ansi "^2.0.0"
118 | strip-ansi "^3.0.0"
119 | supports-color "^2.0.0"
120 |
121 | chalk@^2.0.0, chalk@^2.1.0:
122 | version "2.4.1"
123 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
124 | dependencies:
125 | ansi-styles "^3.2.1"
126 | escape-string-regexp "^1.0.5"
127 | supports-color "^5.3.0"
128 |
129 | chardet@^0.4.0:
130 | version "0.4.2"
131 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
132 |
133 | ci-info@^1.0.0:
134 | version "1.1.3"
135 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2"
136 |
137 | circular-json@^0.3.1:
138 | version "0.3.3"
139 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
140 |
141 | cli-cursor@^2.1.0:
142 | version "2.1.0"
143 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
144 | dependencies:
145 | restore-cursor "^2.0.0"
146 |
147 | cli-width@^2.0.0:
148 | version "2.2.0"
149 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
150 |
151 | co@^4.6.0:
152 | version "4.6.0"
153 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
154 |
155 | color-convert@^1.9.0:
156 | version "1.9.2"
157 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147"
158 | dependencies:
159 | color-name "1.1.1"
160 |
161 | color-name@1.1.1:
162 | version "1.1.1"
163 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
164 |
165 | concat-map@0.0.1:
166 | version "0.0.1"
167 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
168 |
169 | concat-stream@^1.6.0:
170 | version "1.6.2"
171 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
172 | dependencies:
173 | buffer-from "^1.0.0"
174 | inherits "^2.0.3"
175 | readable-stream "^2.2.2"
176 | typedarray "^0.0.6"
177 |
178 | contains-path@^0.1.0:
179 | version "0.1.0"
180 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
181 |
182 | core-util-is@~1.0.0:
183 | version "1.0.2"
184 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
185 |
186 | cross-spawn@^5.1.0:
187 | version "5.1.0"
188 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
189 | dependencies:
190 | lru-cache "^4.0.1"
191 | shebang-command "^1.2.0"
192 | which "^1.2.9"
193 |
194 | debug@^2.6.8, debug@^2.6.9:
195 | version "2.6.9"
196 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
197 | dependencies:
198 | ms "2.0.0"
199 |
200 | debug@^3.1.0:
201 | version "3.1.0"
202 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
203 | dependencies:
204 | ms "2.0.0"
205 |
206 | deep-is@~0.1.3:
207 | version "0.1.3"
208 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
209 |
210 | del@^2.0.2:
211 | version "2.2.2"
212 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
213 | dependencies:
214 | globby "^5.0.0"
215 | is-path-cwd "^1.0.0"
216 | is-path-in-cwd "^1.0.0"
217 | object-assign "^4.0.1"
218 | pify "^2.0.0"
219 | pinkie-promise "^2.0.0"
220 | rimraf "^2.2.8"
221 |
222 | doctrine@1.5.0:
223 | version "1.5.0"
224 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
225 | dependencies:
226 | esutils "^2.0.2"
227 | isarray "^1.0.0"
228 |
229 | doctrine@^2.1.0:
230 | version "2.1.0"
231 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
232 | dependencies:
233 | esutils "^2.0.2"
234 |
235 | error-ex@^1.2.0:
236 | version "1.3.2"
237 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
238 | dependencies:
239 | is-arrayish "^0.2.1"
240 |
241 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
242 | version "1.0.5"
243 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
244 |
245 | eslint-config-airbnb-base@^12.1.0:
246 | version "12.1.0"
247 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944"
248 | dependencies:
249 | eslint-restricted-globals "^0.1.1"
250 |
251 | eslint-import-resolver-node@^0.3.1:
252 | version "0.3.2"
253 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
254 | dependencies:
255 | debug "^2.6.9"
256 | resolve "^1.5.0"
257 |
258 | eslint-module-utils@^2.2.0:
259 | version "2.2.0"
260 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746"
261 | dependencies:
262 | debug "^2.6.8"
263 | pkg-dir "^1.0.0"
264 |
265 | eslint-plugin-import@^2.12.0:
266 | version "2.13.0"
267 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.13.0.tgz#df24f241175e312d91662dc91ca84064caec14ed"
268 | dependencies:
269 | contains-path "^0.1.0"
270 | debug "^2.6.8"
271 | doctrine "1.5.0"
272 | eslint-import-resolver-node "^0.3.1"
273 | eslint-module-utils "^2.2.0"
274 | has "^1.0.1"
275 | lodash "^4.17.4"
276 | minimatch "^3.0.3"
277 | read-pkg-up "^2.0.0"
278 | resolve "^1.6.0"
279 |
280 | eslint-restricted-globals@^0.1.1:
281 | version "0.1.1"
282 | resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
283 |
284 | eslint-scope@^3.7.1:
285 | version "3.7.1"
286 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
287 | dependencies:
288 | esrecurse "^4.1.0"
289 | estraverse "^4.1.1"
290 |
291 | eslint-visitor-keys@^1.0.0:
292 | version "1.0.0"
293 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
294 |
295 | eslint@^4.19.1:
296 | version "4.19.1"
297 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
298 | dependencies:
299 | ajv "^5.3.0"
300 | babel-code-frame "^6.22.0"
301 | chalk "^2.1.0"
302 | concat-stream "^1.6.0"
303 | cross-spawn "^5.1.0"
304 | debug "^3.1.0"
305 | doctrine "^2.1.0"
306 | eslint-scope "^3.7.1"
307 | eslint-visitor-keys "^1.0.0"
308 | espree "^3.5.4"
309 | esquery "^1.0.0"
310 | esutils "^2.0.2"
311 | file-entry-cache "^2.0.0"
312 | functional-red-black-tree "^1.0.1"
313 | glob "^7.1.2"
314 | globals "^11.0.1"
315 | ignore "^3.3.3"
316 | imurmurhash "^0.1.4"
317 | inquirer "^3.0.6"
318 | is-resolvable "^1.0.0"
319 | js-yaml "^3.9.1"
320 | json-stable-stringify-without-jsonify "^1.0.1"
321 | levn "^0.3.0"
322 | lodash "^4.17.4"
323 | minimatch "^3.0.2"
324 | mkdirp "^0.5.1"
325 | natural-compare "^1.4.0"
326 | optionator "^0.8.2"
327 | path-is-inside "^1.0.2"
328 | pluralize "^7.0.0"
329 | progress "^2.0.0"
330 | regexpp "^1.0.1"
331 | require-uncached "^1.0.3"
332 | semver "^5.3.0"
333 | strip-ansi "^4.0.0"
334 | strip-json-comments "~2.0.1"
335 | table "4.0.2"
336 | text-table "~0.2.0"
337 |
338 | espree@^3.5.4:
339 | version "3.5.4"
340 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
341 | dependencies:
342 | acorn "^5.5.0"
343 | acorn-jsx "^3.0.0"
344 |
345 | esprima@^4.0.0:
346 | version "4.0.1"
347 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
348 |
349 | esquery@^1.0.0:
350 | version "1.0.1"
351 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
352 | dependencies:
353 | estraverse "^4.0.0"
354 |
355 | esrecurse@^4.1.0:
356 | version "4.2.1"
357 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
358 | dependencies:
359 | estraverse "^4.1.0"
360 |
361 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
362 | version "4.2.0"
363 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
364 |
365 | esutils@^2.0.2:
366 | version "2.0.2"
367 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
368 |
369 | external-editor@^2.0.4:
370 | version "2.2.0"
371 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
372 | dependencies:
373 | chardet "^0.4.0"
374 | iconv-lite "^0.4.17"
375 | tmp "^0.0.33"
376 |
377 | fast-deep-equal@^1.0.0:
378 | version "1.1.0"
379 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
380 |
381 | fast-json-stable-stringify@^2.0.0:
382 | version "2.0.0"
383 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
384 |
385 | fast-levenshtein@~2.0.4:
386 | version "2.0.6"
387 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
388 |
389 | figures@^2.0.0:
390 | version "2.0.0"
391 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
392 | dependencies:
393 | escape-string-regexp "^1.0.5"
394 |
395 | file-entry-cache@^2.0.0:
396 | version "2.0.0"
397 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
398 | dependencies:
399 | flat-cache "^1.2.1"
400 | object-assign "^4.0.1"
401 |
402 | find-up@^1.0.0:
403 | version "1.1.2"
404 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
405 | dependencies:
406 | path-exists "^2.0.0"
407 | pinkie-promise "^2.0.0"
408 |
409 | find-up@^2.0.0:
410 | version "2.1.0"
411 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
412 | dependencies:
413 | locate-path "^2.0.0"
414 |
415 | flat-cache@^1.2.1:
416 | version "1.3.0"
417 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
418 | dependencies:
419 | circular-json "^0.3.1"
420 | del "^2.0.2"
421 | graceful-fs "^4.1.2"
422 | write "^0.2.1"
423 |
424 | fs.realpath@^1.0.0:
425 | version "1.0.0"
426 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
427 |
428 | function-bind@^1.1.1:
429 | version "1.1.1"
430 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
431 |
432 | functional-red-black-tree@^1.0.1:
433 | version "1.0.1"
434 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
435 |
436 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
437 | version "7.1.2"
438 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
439 | dependencies:
440 | fs.realpath "^1.0.0"
441 | inflight "^1.0.4"
442 | inherits "2"
443 | minimatch "^3.0.4"
444 | once "^1.3.0"
445 | path-is-absolute "^1.0.0"
446 |
447 | globals@^11.0.1:
448 | version "11.7.0"
449 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
450 |
451 | globby@^5.0.0:
452 | version "5.0.0"
453 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
454 | dependencies:
455 | array-union "^1.0.1"
456 | arrify "^1.0.0"
457 | glob "^7.0.3"
458 | object-assign "^4.0.1"
459 | pify "^2.0.0"
460 | pinkie-promise "^2.0.0"
461 |
462 | graceful-fs@^4.1.2:
463 | version "4.1.11"
464 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
465 |
466 | has-ansi@^2.0.0:
467 | version "2.0.0"
468 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
469 | dependencies:
470 | ansi-regex "^2.0.0"
471 |
472 | has-flag@^3.0.0:
473 | version "3.0.0"
474 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
475 |
476 | has@^1.0.1:
477 | version "1.0.3"
478 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
479 | dependencies:
480 | function-bind "^1.1.1"
481 |
482 | hosted-git-info@^2.1.4:
483 | version "2.6.1"
484 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.1.tgz#6e4cee78b01bb849dcf93527708c69fdbee410df"
485 |
486 | husky@^0.14.3:
487 | version "0.14.3"
488 | resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3"
489 | dependencies:
490 | is-ci "^1.0.10"
491 | normalize-path "^1.0.0"
492 | strip-indent "^2.0.0"
493 |
494 | iconv-lite@^0.4.17:
495 | version "0.4.23"
496 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
497 | dependencies:
498 | safer-buffer ">= 2.1.2 < 3"
499 |
500 | ignore@^3.3.3:
501 | version "3.3.10"
502 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
503 |
504 | imurmurhash@^0.1.4:
505 | version "0.1.4"
506 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
507 |
508 | inflight@^1.0.4:
509 | version "1.0.6"
510 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
511 | dependencies:
512 | once "^1.3.0"
513 | wrappy "1"
514 |
515 | inherits@2, inherits@^2.0.3, inherits@~2.0.3:
516 | version "2.0.3"
517 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
518 |
519 | inquirer@^3.0.6:
520 | version "3.3.0"
521 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
522 | dependencies:
523 | ansi-escapes "^3.0.0"
524 | chalk "^2.0.0"
525 | cli-cursor "^2.1.0"
526 | cli-width "^2.0.0"
527 | external-editor "^2.0.4"
528 | figures "^2.0.0"
529 | lodash "^4.3.0"
530 | mute-stream "0.0.7"
531 | run-async "^2.2.0"
532 | rx-lite "^4.0.8"
533 | rx-lite-aggregates "^4.0.8"
534 | string-width "^2.1.0"
535 | strip-ansi "^4.0.0"
536 | through "^2.3.6"
537 |
538 | is-arrayish@^0.2.1:
539 | version "0.2.1"
540 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
541 |
542 | is-builtin-module@^1.0.0:
543 | version "1.0.0"
544 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
545 | dependencies:
546 | builtin-modules "^1.0.0"
547 |
548 | is-ci@^1.0.10:
549 | version "1.1.0"
550 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5"
551 | dependencies:
552 | ci-info "^1.0.0"
553 |
554 | is-fullwidth-code-point@^2.0.0:
555 | version "2.0.0"
556 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
557 |
558 | is-path-cwd@^1.0.0:
559 | version "1.0.0"
560 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
561 |
562 | is-path-in-cwd@^1.0.0:
563 | version "1.0.1"
564 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
565 | dependencies:
566 | is-path-inside "^1.0.0"
567 |
568 | is-path-inside@^1.0.0:
569 | version "1.0.1"
570 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
571 | dependencies:
572 | path-is-inside "^1.0.1"
573 |
574 | is-promise@^2.1.0:
575 | version "2.1.0"
576 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
577 |
578 | is-resolvable@^1.0.0:
579 | version "1.1.0"
580 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
581 |
582 | isarray@^1.0.0, isarray@~1.0.0:
583 | version "1.0.0"
584 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
585 |
586 | isexe@^2.0.0:
587 | version "2.0.0"
588 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
589 |
590 | js-tokens@^3.0.2:
591 | version "3.0.2"
592 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
593 |
594 | js-yaml@^3.9.1:
595 | version "3.13.1"
596 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
597 | dependencies:
598 | argparse "^1.0.7"
599 | esprima "^4.0.0"
600 |
601 | json-schema-traverse@^0.3.0:
602 | version "0.3.1"
603 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
604 |
605 | json-stable-stringify-without-jsonify@^1.0.1:
606 | version "1.0.1"
607 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
608 |
609 | levn@^0.3.0, levn@~0.3.0:
610 | version "0.3.0"
611 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
612 | dependencies:
613 | prelude-ls "~1.1.2"
614 | type-check "~0.3.2"
615 |
616 | load-json-file@^2.0.0:
617 | version "2.0.0"
618 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
619 | dependencies:
620 | graceful-fs "^4.1.2"
621 | parse-json "^2.2.0"
622 | pify "^2.0.0"
623 | strip-bom "^3.0.0"
624 |
625 | locate-path@^2.0.0:
626 | version "2.0.0"
627 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
628 | dependencies:
629 | p-locate "^2.0.0"
630 | path-exists "^3.0.0"
631 |
632 | lodash@^4.17.4, lodash@^4.3.0:
633 | version "4.17.10"
634 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
635 |
636 | lru-cache@^4.0.1:
637 | version "4.1.3"
638 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
639 | dependencies:
640 | pseudomap "^1.0.2"
641 | yallist "^2.1.2"
642 |
643 | mimic-fn@^1.0.0:
644 | version "1.2.0"
645 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
646 |
647 | minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
648 | version "3.0.4"
649 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
650 | dependencies:
651 | brace-expansion "^1.1.7"
652 |
653 | minimist@0.0.8:
654 | version "0.0.8"
655 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
656 |
657 | mkdirp@^0.5.1:
658 | version "0.5.1"
659 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
660 | dependencies:
661 | minimist "0.0.8"
662 |
663 | ms@2.0.0:
664 | version "2.0.0"
665 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
666 |
667 | mute-stream@0.0.7:
668 | version "0.0.7"
669 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
670 |
671 | natural-compare@^1.4.0:
672 | version "1.4.0"
673 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
674 |
675 | normalize-package-data@^2.3.2:
676 | version "2.4.0"
677 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
678 | dependencies:
679 | hosted-git-info "^2.1.4"
680 | is-builtin-module "^1.0.0"
681 | semver "2 || 3 || 4 || 5"
682 | validate-npm-package-license "^3.0.1"
683 |
684 | normalize-path@^1.0.0:
685 | version "1.0.0"
686 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
687 |
688 | object-assign@^4.0.1:
689 | version "4.1.1"
690 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
691 |
692 | once@^1.3.0:
693 | version "1.4.0"
694 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
695 | dependencies:
696 | wrappy "1"
697 |
698 | onetime@^2.0.0:
699 | version "2.0.1"
700 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
701 | dependencies:
702 | mimic-fn "^1.0.0"
703 |
704 | optionator@^0.8.2:
705 | version "0.8.2"
706 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
707 | dependencies:
708 | deep-is "~0.1.3"
709 | fast-levenshtein "~2.0.4"
710 | levn "~0.3.0"
711 | prelude-ls "~1.1.2"
712 | type-check "~0.3.2"
713 | wordwrap "~1.0.0"
714 |
715 | os-tmpdir@~1.0.2:
716 | version "1.0.2"
717 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
718 |
719 | p-limit@^1.1.0:
720 | version "1.3.0"
721 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
722 | dependencies:
723 | p-try "^1.0.0"
724 |
725 | p-locate@^2.0.0:
726 | version "2.0.0"
727 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
728 | dependencies:
729 | p-limit "^1.1.0"
730 |
731 | p-try@^1.0.0:
732 | version "1.0.0"
733 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
734 |
735 | parse-json@^2.2.0:
736 | version "2.2.0"
737 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
738 | dependencies:
739 | error-ex "^1.2.0"
740 |
741 | path-exists@^2.0.0:
742 | version "2.1.0"
743 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
744 | dependencies:
745 | pinkie-promise "^2.0.0"
746 |
747 | path-exists@^3.0.0:
748 | version "3.0.0"
749 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
750 |
751 | path-is-absolute@^1.0.0:
752 | version "1.0.1"
753 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
754 |
755 | path-is-inside@^1.0.1, path-is-inside@^1.0.2:
756 | version "1.0.2"
757 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
758 |
759 | path-parse@^1.0.5:
760 | version "1.0.5"
761 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
762 |
763 | path-type@^2.0.0:
764 | version "2.0.0"
765 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
766 | dependencies:
767 | pify "^2.0.0"
768 |
769 | pify@^2.0.0:
770 | version "2.3.0"
771 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
772 |
773 | pinkie-promise@^2.0.0:
774 | version "2.0.1"
775 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
776 | dependencies:
777 | pinkie "^2.0.0"
778 |
779 | pinkie@^2.0.0:
780 | version "2.0.4"
781 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
782 |
783 | pkg-dir@^1.0.0:
784 | version "1.0.0"
785 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
786 | dependencies:
787 | find-up "^1.0.0"
788 |
789 | pluralize@^7.0.0:
790 | version "7.0.0"
791 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
792 |
793 | prelude-ls@~1.1.2:
794 | version "1.1.2"
795 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
796 |
797 | process-nextick-args@~2.0.0:
798 | version "2.0.0"
799 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
800 |
801 | progress@^2.0.0:
802 | version "2.0.0"
803 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
804 |
805 | pseudomap@^1.0.2:
806 | version "1.0.2"
807 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
808 |
809 | read-pkg-up@^2.0.0:
810 | version "2.0.0"
811 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
812 | dependencies:
813 | find-up "^2.0.0"
814 | read-pkg "^2.0.0"
815 |
816 | read-pkg@^2.0.0:
817 | version "2.0.0"
818 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
819 | dependencies:
820 | load-json-file "^2.0.0"
821 | normalize-package-data "^2.3.2"
822 | path-type "^2.0.0"
823 |
824 | readable-stream@^2.2.2:
825 | version "2.3.6"
826 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
827 | dependencies:
828 | core-util-is "~1.0.0"
829 | inherits "~2.0.3"
830 | isarray "~1.0.0"
831 | process-nextick-args "~2.0.0"
832 | safe-buffer "~5.1.1"
833 | string_decoder "~1.1.1"
834 | util-deprecate "~1.0.1"
835 |
836 | regexpp@^1.0.1:
837 | version "1.1.0"
838 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
839 |
840 | require-uncached@^1.0.3:
841 | version "1.0.3"
842 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
843 | dependencies:
844 | caller-path "^0.1.0"
845 | resolve-from "^1.0.0"
846 |
847 | resolve-from@^1.0.0:
848 | version "1.0.1"
849 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
850 |
851 | resolve@^1.5.0, resolve@^1.6.0:
852 | version "1.8.1"
853 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
854 | dependencies:
855 | path-parse "^1.0.5"
856 |
857 | restore-cursor@^2.0.0:
858 | version "2.0.0"
859 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
860 | dependencies:
861 | onetime "^2.0.0"
862 | signal-exit "^3.0.2"
863 |
864 | rimraf@^2.2.8:
865 | version "2.6.2"
866 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
867 | dependencies:
868 | glob "^7.0.5"
869 |
870 | run-async@^2.2.0:
871 | version "2.3.0"
872 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
873 | dependencies:
874 | is-promise "^2.1.0"
875 |
876 | rx-lite-aggregates@^4.0.8:
877 | version "4.0.8"
878 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
879 | dependencies:
880 | rx-lite "*"
881 |
882 | rx-lite@*, rx-lite@^4.0.8:
883 | version "4.0.8"
884 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
885 |
886 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
887 | version "5.1.2"
888 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
889 |
890 | "safer-buffer@>= 2.1.2 < 3":
891 | version "2.1.2"
892 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
893 |
894 | "semver@2 || 3 || 4 || 5", semver@^5.3.0:
895 | version "5.5.0"
896 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
897 |
898 | shebang-command@^1.2.0:
899 | version "1.2.0"
900 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
901 | dependencies:
902 | shebang-regex "^1.0.0"
903 |
904 | shebang-regex@^1.0.0:
905 | version "1.0.0"
906 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
907 |
908 | signal-exit@^3.0.2:
909 | version "3.0.2"
910 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
911 |
912 | slice-ansi@1.0.0:
913 | version "1.0.0"
914 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
915 | dependencies:
916 | is-fullwidth-code-point "^2.0.0"
917 |
918 | spdx-correct@^3.0.0:
919 | version "3.0.0"
920 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
921 | dependencies:
922 | spdx-expression-parse "^3.0.0"
923 | spdx-license-ids "^3.0.0"
924 |
925 | spdx-exceptions@^2.1.0:
926 | version "2.1.0"
927 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
928 |
929 | spdx-expression-parse@^3.0.0:
930 | version "3.0.0"
931 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
932 | dependencies:
933 | spdx-exceptions "^2.1.0"
934 | spdx-license-ids "^3.0.0"
935 |
936 | spdx-license-ids@^3.0.0:
937 | version "3.0.0"
938 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
939 |
940 | sprintf-js@~1.0.2:
941 | version "1.0.3"
942 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
943 |
944 | string-width@^2.1.0, string-width@^2.1.1:
945 | version "2.1.1"
946 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
947 | dependencies:
948 | is-fullwidth-code-point "^2.0.0"
949 | strip-ansi "^4.0.0"
950 |
951 | string_decoder@~1.1.1:
952 | version "1.1.1"
953 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
954 | dependencies:
955 | safe-buffer "~5.1.0"
956 |
957 | strip-ansi@^3.0.0:
958 | version "3.0.1"
959 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
960 | dependencies:
961 | ansi-regex "^2.0.0"
962 |
963 | strip-ansi@^4.0.0:
964 | version "4.0.0"
965 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
966 | dependencies:
967 | ansi-regex "^3.0.0"
968 |
969 | strip-bom@^3.0.0:
970 | version "3.0.0"
971 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
972 |
973 | strip-indent@^2.0.0:
974 | version "2.0.0"
975 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
976 |
977 | strip-json-comments@~2.0.1:
978 | version "2.0.1"
979 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
980 |
981 | supports-color@^2.0.0:
982 | version "2.0.0"
983 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
984 |
985 | supports-color@^5.3.0:
986 | version "5.4.0"
987 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
988 | dependencies:
989 | has-flag "^3.0.0"
990 |
991 | table@4.0.2:
992 | version "4.0.2"
993 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
994 | dependencies:
995 | ajv "^5.2.3"
996 | ajv-keywords "^2.1.0"
997 | chalk "^2.1.0"
998 | lodash "^4.17.4"
999 | slice-ansi "1.0.0"
1000 | string-width "^2.1.1"
1001 |
1002 | text-table@~0.2.0:
1003 | version "0.2.0"
1004 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1005 |
1006 | through@^2.3.6:
1007 | version "2.3.8"
1008 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
1009 |
1010 | tmp@^0.0.33:
1011 | version "0.0.33"
1012 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
1013 | dependencies:
1014 | os-tmpdir "~1.0.2"
1015 |
1016 | type-check@~0.3.2:
1017 | version "0.3.2"
1018 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
1019 | dependencies:
1020 | prelude-ls "~1.1.2"
1021 |
1022 | typedarray@^0.0.6:
1023 | version "0.0.6"
1024 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
1025 |
1026 | util-deprecate@~1.0.1:
1027 | version "1.0.2"
1028 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1029 |
1030 | validate-npm-package-license@^3.0.1:
1031 | version "3.0.3"
1032 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
1033 | dependencies:
1034 | spdx-correct "^3.0.0"
1035 | spdx-expression-parse "^3.0.0"
1036 |
1037 | which@^1.2.9:
1038 | version "1.3.1"
1039 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1040 | dependencies:
1041 | isexe "^2.0.0"
1042 |
1043 | wordwrap@~1.0.0:
1044 | version "1.0.0"
1045 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
1046 |
1047 | wrappy@1:
1048 | version "1.0.2"
1049 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1050 |
1051 | write@^0.2.1:
1052 | version "0.2.1"
1053 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
1054 | dependencies:
1055 | mkdirp "^0.5.1"
1056 |
1057 | yallist@^2.1.2:
1058 | version "2.1.2"
1059 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
1060 |
--------------------------------------------------------------------------------