├── .eslintrc.js
├── .gitignore
├── .npmignore
├── .travis.yml
├── README.md
├── assets
└── logo-360.png
├── package.json
├── src.js
├── test
├── add.js
├── append.js
├── apply.js
├── assoc.js
├── assocPath.js
├── call.js
├── compose.js
├── composeP.js
├── concat.js
├── cond.js
├── constant.js
├── converge.js
├── curry.js
├── curryN.js
├── defaultTo.js
├── dissoc.js
├── dissocPath.js
├── either.js
├── evolve.js
├── filter.js
├── find.js
├── flatten.js
├── flip.js
├── head.js
├── identity.js
├── ifElse.js
├── indexBy.js
├── init.js
├── is.js
├── join.js
├── juxt.js
├── keys.js
├── last.js
├── length.js
├── map.js
├── mapObj.js
├── match.js
├── merge.js
├── multiply.js
├── nAry.js
├── not.js
├── objOf.js
├── omit.js
├── partial.js
├── partialRight.js
├── path.js
├── pathEq.js
├── pick.js
├── pipe.js
├── pipeP.js
├── pluck.js
├── prepend.js
├── prop.js
├── propEq.js
├── props.js
├── reduce.js
├── reduceObj.js
├── reduceP.js
├── reduceRight.js
├── reduceRightP.js
├── replace.js
├── slice.js
├── sort.js
├── sortBy.js
├── split.js
├── tail.js
├── take.js
├── tap.js
├── test.js
├── then.js
├── thrush.js
├── unapply.js
├── unary.js
├── uniqBy.js
├── unit.js
├── unless.js
├── useWith.js
├── values.js
├── when.js
└── zipObj.js
├── tinyfunk.js
└── yarn.lock
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | 'env': {
3 | 'es6': true,
4 | 'mocha': true,
5 | 'node': true
6 | },
7 | 'extends': 'eslint:recommended',
8 | 'parserOptions': {
9 | 'sourceType': 'module'
10 | },
11 | 'rules': {
12 | 'indent': ['error', 2, {
13 | 'flatTernaryExpressions': true,
14 | 'SwitchCase': 1
15 | }],
16 | 'linebreak-style': ['error', 'unix'],
17 | 'no-console': 'off',
18 | 'quotes': ['error', 'single', { 'allowTemplateLiterals': true }],
19 | 'semi': ['error', 'never']
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 | .DS_Store
3 | .yarn*
4 | /.nyc_output
5 | /node_modules
6 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .eslintrc.js
3 | .git*
4 | .travis.yml
5 | .yarn*
6 | /.nyc_output
7 | /assets
8 | /coverage
9 | /node_modules
10 | /test
11 | README.md
12 | yarn.lock
13 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - '10'
4 | - '8'
5 | - '7'
6 | - '6'
7 | before_install:
8 | - npm install -g yarn@1.10.0
9 | install:
10 | - yarn install --pure-lockfile
11 | script:
12 | - yarn test:ci
13 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | The tiniest of functional libraries.
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | ## Documentation
19 |
20 | - [Motivation](#motivation)
21 | - [Caveat Emptor](#caveat-emptor)
22 | - [API](#api)
23 | - [Dependents](#dependents)
24 |
25 | ## Motivation
26 |
27 | Most popular functional libraries, like [Ramda](https://www.npmjs.com/package/ramda), are quite large. To use them in a frontend project, it's common to import only the bits you need (to keep the bundle size down) like this:
28 |
29 | ```js
30 | const assoc = require('ramda/src/assoc')
31 | const map = require('ramda/src/map')
32 | const merge = require('ramda/src/merge')
33 | // etc.
34 | ```
35 |
36 | But multiple `require` statements take up extra space, since many `js` code compression tools (including [`uglify-js`](https://www.npmjs.com/package/uglify-js)) don't mangle strings. The AST overhead required to bundle the various modules adds an additional size penalty, not to mention the extra compute time to parse the twisted flow of the AST, which adds to a longer perceived load time.
37 |
38 | `tinyfunk` takes a different approach. It exports a single module to minimize AST overhead and obviate the repeated require statements. You just destructure the functions you need in one go:
39 |
40 | ```js
41 | const { assoc, map, merge } = require('tinyfunk')
42 | ```
43 |
44 | Where possible, it also composes more complex functions by reusing basic ones. A good example is `compose`, implemented as so:
45 |
46 | ```js
47 | const compose = unapply(flip(reduceRight(thrush)))
48 | ```
49 |
50 | With [`uglify-es`](https://www.npmjs.com/package/uglify-es), this mangles down to the following. I doubt you'll find a smaller implementation.
51 |
52 | ```js
53 | const I=r(b(B(E)))
54 | ```
55 |
56 | ## Caveat emptor
57 |
58 | In an effort to keep `tinyfunk` lean and mean - and most of all, tiny - I've taken a few shortcuts.
59 |
60 | 1. **None of the exported functions perform type-checking of arguments.**
If type-checking is a runtime debug tool you tend to lean on, then you'll need to look elsewhere.
61 |
62 | 2. **Many of the function combinators only support unary functions.**
This includes `compose`, `converge`, `juxt`, `pipe`, `thrush`, etc. Unary functions are easily composable, readily portable, and so much simpler (ie: tinier) to support.
63 |
64 | 3. **Unlike other popular FP libraries, each exported function only has a single job.**
For example, Ramda's `map` supports "mapping" over functors, objects, and even functions. In `tinyfunk`, those various jobs are supported instead by `map`, `mapObj`, and `compose` respectfully. So be sure to use the right tool for the job at hand.
65 |
66 | ## API
67 |
68 | If you've lived with FP long enough, you are likely familiar with most of the functions listed below. So I've opted to leave out the lengthy descriptions and include only the signatures. I'll be adding more functions as I need them, but if you see any of your favorites missing, just [post an issue](https://github.com/flintinatux/tinyfunk/issues) and I'll be sure to consider it.
69 |
70 | | Function | Signature |
71 | | -------- | --------- |
72 | | `add` | `Number -> Number -> Number` |
73 | | `append` | `a -> [a] -> [a]` |
74 | | `apply` | `(a... -> b) -> [a] -> b` |
75 | | `assoc` | `k -> v -> { k: v } -> { k: v }` |
76 | | `assocPath` | `[k] -> v -> { k: v } -> { k: v }` |
77 | | `call` | `(a... -> b) -> a... -> b` |
78 | | `compose` | `((y -> z), ..., (a -> b)) -> a -> z` |
79 | | `composeP` | `((y -> Promise z), ..., (a -> Promise b)) -> a -> Promise z` |
80 | | `concat` | `Semigroup a => a -> a -> a` |
81 | | `cond` | `[[(a -> Boolean), (a -> b)]] -> a -> b` |
82 | | `constant` | `a -> () -> a` |
83 | | `converge` | `(b... -> c) -> [(a -> b)] -> a -> c` |
84 | | `curry` | `((a, b, ...) -> z) -> a -> b -> ... -> z` |
85 | | `curryN` | `Number -> ((a, b, ...) -> z) -> a -> b -> ... -> z` |
86 | | `defaultTo` | `a -> a -> a` |
87 | | `dissoc` | `k -> { k: v } -> { k: v }` |
88 | | `dissocPath` | `[k] -> { k: v } -> { k: v }` |
89 | | `either` | `(a -> Boolean) -> (a -> Boolean) -> (a -> Boolean)` |
90 | | `evolve` | `{ k: (v -> v) } -> { k: v } -> { k: v }` |
91 | | `filter` | `(a -> Boolean) -> [a] -> [a]` |
92 | | `find` | `(a -> Boolean) -> [a] -> a` |
93 | | `flatten` | `[a] -> [b]` |
94 | | `flip` | `(a -> b -> c) -> (b -> a -> c)` |
95 | | `head` | `[a] -> a` |
96 | | `identity` | `a -> a` |
97 | | `ifElse` | `(a -> Boolean) -> (a -> b) -> (a -> b) -> (a -> b)` |
98 | | `indexBy` | `(v -> k) -> [v] -> { k: v }` |
99 | | `init` | `[a] -> [a]` |
100 | | `is` | `Constructor -> a -> Boolean` |
101 | | `join` | `String -> [a] -> String` |
102 | | `juxt` | `[(a -> b)] -> a -> [b]` |
103 | | `keys` | `{ k: v } -> [k]` |
104 | | `last` | `[a] -> a` |
105 | | `length` | `[a] -> Number` |
106 | | `map` | `Functor f => (a -> b) -> f a -> f b` |
107 | | `mapObj` | `(v -> k -> v) -> { k: v } -> { k: v }` |
108 | | `match` | `RegExp -> String -> [String]` |
109 | | `merge` | `{ k: v } -> { k: v } -> { k: v }` |
110 | | `multiply` | `Number -> Number -> Number` |
111 | | `nAry` | `Number -> (a... -> b) -> (a... -> b)` |
112 | | `not` | `a -> a` |
113 | | `objOf` | `k -> v -> { k: v }` |
114 | | `omit` | `[k] -> { k: v } -> { k: v }` |
115 | | `partial` | `(a... -> b) -> [a] -> a... -> b` |
116 | | `partialRight` | `(a... -> b) -> [a] -> a... -> b` |
117 | | `path` | `[k] -> { k: v } -> v` |
118 | | `pathEq` | `[k] -> v -> { k: v } -> Boolean` |
119 | | `pick` | `[k] -> { k: v } -> { k: v }` |
120 | | `pipe` | `((a -> b), ..., (y -> z)) -> a -> z` |
121 | | `pipeP` | `((a -> Promise b), ..., (y -> Promise z)) -> a -> Promise z` |
122 | | `pluck` | `k -> [{ k: v }] -> [v]` |
123 | | `prepend` | `a -> [a] -> [a]` |
124 | | `prop` | `k -> { k: v } -> v` |
125 | | `propEq` | `k -> v -> { k: v } -> Boolean` |
126 | | `props` | `[k] -> { k: v } -> [v]` |
127 | | `reduce` | `Foldable f => (b -> a -> b) -> b -> f a -> b` |
128 | | `reduceObj` | `(a -> v -> k -> a) -> a -> { k: v } -> a` |
129 | | `reduceP` | `(b -> a -> Promise b) -> b -> [a] -> Promise b` |
130 | | `reduceRight` | `Foldable f => (b -> a -> b) -> b -> f a -> b` |
131 | | `reduceRightP` | `(b -> a -> Promise b) -> b -> [a] -> Promise b` |
132 | | `replace` | `RegExp -> String -> String -> String` |
133 | | `slice` | `Number -> Number -> [a] -> [a]` |
134 | | `sort` | `((a, a) -> Number) -> [a] -> [a]` |
135 | | `sortBy` | `Ord b => (a -> b) -> [a] -> [a]` |
136 | | `split` | `RegExp -> String -> [String]` |
137 | | `tail` | `[a] -> [a]` |
138 | | `take` | `Number -> [a] -> [a]` |
139 | | `tap` | `(a -> b) -> a -> a` |
140 | | `test` | `RegExp -> String -> Boolean` |
141 | | `then` | `(a -> Promise b) -> a -> Promise b` |
142 | | `thrush` | `a -> (a -> b) -> b` |
143 | | `unapply` | `([a] -> b) -> a... -> b` |
144 | | `unary` | `(a... -> b) -> (a -> b)` |
145 | | `uniqBy` | `(a -> String) -> [a] -> [a]` |
146 | | `unit` | `a -> ()` |
147 | | `unless` | `(a -> Boolean) -> (a -> a) -> a -> a` |
148 | | `useWith` | `(b... -> c) -> [(a -> b)] -> a... -> c` |
149 | | `values` | `{ k: v } -> [v]` |
150 | | `when` | `(a -> Boolean) -> (a -> a) -> a -> a` |
151 | | `zipObj` | `[k] -> [v] -> { k: v }` |
152 |
153 | ## Dependents
154 |
155 | I use `tinyfunk` everyday to make cool things. Maybe you do, too. If so, let me know with a PR, and we can add your cool things to this list.
156 |
157 | - [`puddles`](https://github.com/flintinatux/puddles) - _Tiny vdom app framework. Pure Redux. No boilerplate._ - Built with ❤️ on `tinyfunk`.
158 |
--------------------------------------------------------------------------------
/assets/logo-360.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/flintinatux/tinyfunk/d49dee5e78d4da0a00a71b95f9ad3e017a0f43cc/assets/logo-360.png
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tinyfunk",
3 | "version": "1.7.3",
4 | "description": "The tiniest of functional libraries",
5 | "repository": "git@github.com:flintinatux/tinyfunk.git",
6 | "keywords": [
7 | "functional",
8 | "tiny",
9 | "compose",
10 | "ramda"
11 | ],
12 | "main": "src.js",
13 | "unpkg": "tinyfunk.js",
14 | "author": "flintinatux",
15 | "license": "MIT",
16 | "nyc": {
17 | "check-coverage": true,
18 | "include": [
19 | "src.js"
20 | ],
21 | "lines": 100,
22 | "statements": 100,
23 | "functions": 100,
24 | "branches": 100
25 | },
26 | "scripts": {
27 | "build": "uglifyjs src.js -cm --toplevel --wrap tinyfunk > tinyfunk.js",
28 | "clean": "rm -f tinyfunk.js",
29 | "coverage": "nyc report --reporter=text-lcov | coveralls",
30 | "lint": "eslint src.js test",
31 | "postbuild": "gzip-size tinyfunk.js",
32 | "prewatch": "yarn run build",
33 | "test": "mocha --reporter=dot",
34 | "test:ci": "yarn run lint && yarn run test:coverage && yarn run coverage",
35 | "test:coverage": "nyc yarn run test",
36 | "watch": "eye --*glob=src.js yarn run build"
37 | },
38 | "devDependencies": {
39 | "@articulate/spy": "^0.0.1",
40 | "chai": "^4.1.2",
41 | "coveralls": "^2.13.1",
42 | "eslint": "^4.7.2",
43 | "eye": "^0.0.3",
44 | "gzip-size-cli": "^2.1.0",
45 | "mocha": "^3.5.3",
46 | "nyc": "^11.2.1",
47 | "prop-factory": "^1.0.0",
48 | "uglify-es": "^3.3.9"
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src.js:
--------------------------------------------------------------------------------
1 | // _appendKey :: ([k], v, k) -> [k]
2 | const _appendKey = (keys, val, key) =>
3 | append(key, keys)
4 |
5 | // _assign :: ({ k: v }, { k: v }) -> { k: v }
6 | const _assign = (a, b) => {
7 | for (let key in b) a[key] = b[key]
8 | return a
9 | }
10 |
11 | // _comp :: (a, b) -> Number
12 | const _comp = (a, b) =>
13 | a < b ? -1 : b < a ? 1 : 0
14 |
15 | // _index :: ({ k: Number }, String) -> { k: Number }
16 | const _index = (idx, key) =>
17 | assoc(key, 1, idx)
18 |
19 | // _partial :: ((a... -> b), [a]) -> a... -> b
20 | const _partial = (f, args) =>
21 | f.bind(null, ...args)
22 |
23 | // _putBy :: (v -> k) -> { k: v } -> v -> { k: v }
24 | const _putBy = f => (acc, item) =>
25 | assoc(f(item), item, acc)
26 |
27 | // _smash :: ([a], a) -> [b]
28 | const _smash = (acc, item) =>
29 | concat(acc, flatten(item))
30 |
31 | // length :: [a] -> Number
32 | const length = list =>
33 | list.length
34 |
35 | // unapply :: ([a] -> b) -> a... -> b
36 | const unapply = f => (...args) =>
37 | f(args)
38 |
39 | // curryN :: Number -> ((a, b, ...) -> z) -> a -> b -> ... -> z
40 | const _curryN = (n, f) =>
41 | n < 1 ? f : unapply(args => {
42 | const left = n - length(args)
43 | return left > 0
44 | ? _curryN(left, _partial(f, args))
45 | : f.apply(null, args)
46 | })
47 |
48 | const curryN = _curryN(2, _curryN)
49 |
50 | // curry :: ((a, b, ...) -> z) -> a -> b -> ... -> z
51 | const curry = f =>
52 | curryN(length(f), f)
53 |
54 | // _xfrm :: { k: (v -> v) } -> v -> k -> v
55 | const _xfrm = curry((xfrms, val, key) => {
56 | let f = xfrms[key] || identity
57 | if (typeof f === 'object') f = evolve(f)
58 | return f(val)
59 | })
60 |
61 | // add :: Number -> Number -> Number
62 | const add = curry((a, b) =>
63 | a + b
64 | )
65 |
66 | // append :: a -> [a] -> [a]
67 | const append = curry((last, init) =>
68 | concat(init, [ last ])
69 | )
70 |
71 | // apply :: (a... -> b) -> [a] -> b
72 | const apply = curry((f, args) =>
73 | f.apply(null, args)
74 | )
75 |
76 | // assoc :: k -> v -> { k: v } -> { k: v }
77 | const assoc = curry((prop, val, obj) => {
78 | const res = _assign({}, obj)
79 | res[prop] = val
80 | return res
81 | })
82 |
83 | // assocPath :: [k] -> v -> { k: v } -> { k: v }
84 | const assocPath = curryN(3, ([ head, ...tail ], x, obj={}) =>
85 | assoc(head, length(tail) ? assocPath(tail, x, obj[head]) : x, obj)
86 | )
87 |
88 | // call :: (a... -> b) -> a... -> b
89 | const call = curryN(2, (f, ...args) =>
90 | apply(f, args)
91 | )
92 |
93 | // concat :: Semigroup a => a -> a -> a
94 | const concat = curry((a, b) =>
95 | a.concat(b)
96 | )
97 |
98 | // constant :: a -> () -> a
99 | const constant = x => () => x
100 |
101 | // converge :: (b... -> c) -> [(a -> b)] -> a -> c
102 | const converge = curry((after, fs) =>
103 | compose(apply(after), juxt(fs))
104 | )
105 |
106 | // defaultTo :: a -> a -> a
107 | const defaultTo = curry((a, b) =>
108 | b == null || b !== b ? a : b
109 | )
110 |
111 | // dissoc :: k -> { k: v } -> { k: v }
112 | const dissoc = curry((key, obj) => {
113 | const res = _assign({}, obj)
114 | delete res[key]
115 | return res
116 | })
117 |
118 | // dissocPath :: [k] -> { k: v } -> { k: v }
119 | const dissocPath = curry(([ head, ...tail ], obj) =>
120 | !head ? obj :
121 | obj[head] == null ? obj :
122 | length(tail) ? assoc(head, dissocPath(tail, obj[head]), obj) :
123 | dissoc(head, obj)
124 | )
125 |
126 | // either :: (a -> Boolean) -> (a -> Boolean) -> (a -> Boolean)
127 | const either = curry((f, g, x) =>
128 | f(x) || g(x)
129 | )
130 |
131 | // evolve :: { k: (v -> v) } -> { k: v } -> { k: v }
132 | const evolve = curry((xfrms, obj) => {
133 | return mapObj(_xfrm(xfrms), obj)
134 | })
135 |
136 | // filter :: (a -> Boolean) -> [a] -> [a]
137 | const filter = curry((pred, list) =>
138 | list.filter(pred)
139 | )
140 |
141 | // find :: (a -> Boolean) -> [a] -> a
142 | const find = curry((pred, list) =>
143 | list.find(pred)
144 | )
145 |
146 | // flip :: (a -> b -> c) -> (b -> a -> c)
147 | const flip = curry((f, x, y) =>
148 | curry(f)(y, x)
149 | )
150 |
151 | // identity :: a -> a
152 | const identity = x => x
153 |
154 | // ifElse :: (a -> Boolean) -> (a -> b) -> (a -> b) -> (a -> b)
155 | const ifElse = curry((pred, pos, neg, x) =>
156 | pred(x) ? pos(x) : neg(x)
157 | )
158 |
159 | // is :: Constructor -> a -> Boolean
160 | const is = curry((type, val) =>
161 | val != null && val.constructor === type || val instanceof type
162 | )
163 |
164 | // join :: String -> [a] -> String
165 | const join = curry((sep, list) =>
166 | list.join(sep)
167 | )
168 |
169 | // juxt :: [(a -> b)] -> a -> [b]
170 | const juxt = curry((fs, x) =>
171 | map(thrush(x), fs)
172 | )
173 |
174 | // map :: Functor f => (a -> b) -> f a -> f b
175 | const map = curry((f, functor) =>
176 | functor.map(f)
177 | )
178 |
179 | // mapObj :: (v -> k -> v) -> { k: v } -> { k: v }
180 | const mapObj = curry((f, obj) => {
181 | const res = {}
182 | for (let key in obj) res[key] = f(obj[key], key)
183 | return res
184 | })
185 |
186 | // match :: RegExp -> String -> [String]
187 | const match = curry((regexp, string) =>
188 | string.match(regexp) || []
189 | )
190 |
191 | // merge :: { k: v } -> { k: v } -> { k: v }
192 | const merge = curry((a, b) =>
193 | reduce(_assign, {}, [ a, b ])
194 | )
195 |
196 | // multiply :: Number -> Number -> Number
197 | const multiply = curry((a, b) =>
198 | a * b
199 | )
200 |
201 | // nAry :: Number -> (a... -> b) -> (a... -> b)
202 | const nAry = curry((n, f) =>
203 | unapply(compose(apply(f), take(n)))
204 | )
205 |
206 | // not :: a -> a
207 | const not = a => !a
208 |
209 | // objOf :: k -> v -> { k: v }
210 | const objOf = curry((key, val) =>
211 | ({ [key]: val })
212 | )
213 |
214 | // omit :: [k] -> { k: v } -> { k: v }
215 | const omit = curry((keys, obj) => {
216 | const idx = reduce(_index, {}, keys)
217 | const res = {}
218 | for (let key in obj) if (!idx[key]) res[key] = obj[key]
219 | return res
220 | })
221 |
222 | // partial :: (a... -> b) -> [a] -> a... -> b
223 | const partial = curry(_partial)
224 |
225 | // partialRight :: (a... -> b) -> [a] -> a... -> b
226 | const partialRight = curryN(3, (f, right, ...left) =>
227 | apply(f, concat(left, right))
228 | )
229 |
230 | // path :: [k] -> { k: v } -> v
231 | const path = curryN(2, ([ head, ...tail ], obj) => {
232 | if (obj == null) obj = {}
233 | return length(tail) ? path(tail, obj[head]) : obj[head]
234 | })
235 |
236 | // pathEq :: [k] -> v -> { k: v } -> Boolean
237 | const pathEq = curry((paths, val, obj) =>
238 | path(paths, obj) === val
239 | )
240 |
241 | // pick :: [k] -> { k: v } -> { k: v }
242 | const pick = curry((keys, obj) =>
243 | zipObj(keys, props(keys, obj))
244 | )
245 |
246 | // prepend :: a -> [a] -> [a]
247 | const prepend = curry((head, tail) =>
248 | concat([ head ], tail)
249 | )
250 |
251 | // prop :: k -> { k: v } -> v
252 | const prop = curry((key, obj) =>
253 | obj[key]
254 | )
255 |
256 | // propEq :: k -> v -> { k: v } -> Boolean
257 | const propEq = curry((key, val, obj) =>
258 | obj[key] === val
259 | )
260 |
261 | // props :: [k] -> { k: v } -> [v]
262 | const props = curry((keys, obj) =>
263 | map(flip(prop)(obj), keys)
264 | )
265 |
266 | // reduce :: Foldable f => (b -> a -> b) -> b -> f a -> b
267 | const reduce = curry((f, acc, list) =>
268 | list.reduce(f, acc)
269 | )
270 |
271 | // reduceObj :: (a -> v -> k -> a) -> a -> { k: v } -> a
272 | const reduceObj = curry((f, acc, obj) => {
273 | for (let key in obj) acc = f(acc, obj[key], key)
274 | return acc
275 | })
276 |
277 | // reduceP :: (b -> a -> Promise b) -> b -> [a] -> Promise b
278 | const reduceP = curry((f, acc, list) =>
279 | pipeP(...map(unary(flip(f)), list))(acc)
280 | )
281 |
282 | // reduceRight :: Foldable f => (b -> a -> b) -> b -> f a -> b
283 | const reduceRight = curry((f, acc, list) =>
284 | list.reduceRight(f, acc)
285 | )
286 |
287 | // reduceRightP :: (b -> a -> Promise b) -> b -> [a] -> Promise b
288 | const reduceRightP = curry((f, acc, list) =>
289 | composeP(...map(unary(flip(f)), list))(acc)
290 | )
291 |
292 | // replace :: RegExp -> String -> String -> String
293 | const replace = curry((regexp, replacement, string) =>
294 | string.replace(regexp, replacement)
295 | )
296 |
297 | // sort :: ((a, a) -> Number) -> [a] -> [a]
298 | const sort = curry((comp, list) =>
299 | list.slice(0).sort(comp)
300 | )
301 |
302 | // sortBy :: Ord b => (a -> b) -> [a] -> [a]
303 | const sortBy = curry((f, list) =>
304 | sort(useWith(_comp, [ f, f ]), list)
305 | )
306 |
307 | // split :: RegExp -> String -> [String]
308 | const split = curry((regexp, string) =>
309 | string.split(regexp)
310 | )
311 |
312 | // tap :: (a -> b) -> a -> a
313 | const tap = curry((f, x) =>
314 | (f(x), x)
315 | )
316 |
317 | // test :: RegExp -> String -> Boolean
318 | const test = curry((regexp, string) =>
319 | regexp.test(string)
320 | )
321 |
322 | // then :: (a -> Promise b) -> a -> Promise b
323 | const then = curry((f, x) =>
324 | Promise.resolve(x).then(f)
325 | )
326 |
327 | // thrush :: a -> (a -> b) -> b
328 | const thrush = curry((x, f) =>
329 | f(x)
330 | )
331 |
332 | // unary :: (a... -> b) -> (a -> b)
333 | const unary = nAry(1)
334 |
335 | // unit :: a -> ()
336 | const unit = () => {}
337 |
338 | // unless :: (a -> Boolean) -> (a -> a) -> a -> a
339 | const unless = curry((pred, f, x) =>
340 | pred(x) ? x : f(x)
341 | )
342 |
343 | // useWith :: (b... -> c) -> [(a -> b)] -> a... -> c
344 | const useWith = curry((f, xfrms) =>
345 | unapply(compose(apply(f), map(_xfrm(xfrms))))
346 | )
347 |
348 | // when :: (a -> Boolean) -> (a -> a) -> a -> a
349 | const when = curry((pred, f, x) =>
350 | pred(x) ? f(x) : x
351 | )
352 |
353 | // zipObj :: [k] -> [v] -> { k: v }
354 | const zipObj = curry((keys, vals) => {
355 | const res = {}
356 | for (let i = length(keys); i--;)
357 | if (vals[i] !== undefined) res[keys[i]] = vals[i]
358 | return res
359 | })
360 |
361 | // compose :: ((y -> z), ..., (a -> b)) -> a -> z
362 | const compose = unapply(flip(reduceRight(thrush)))
363 |
364 | // composeP :: ((y -> Promise z), ..., (a -> Promise b)) -> a -> Promise z
365 | const composeP = unapply(flip(reduceRight(flip(then))))
366 |
367 | // pipe :: ((a -> b), ..., (y -> z)) -> a -> z
368 | const pipe = unapply(flip(reduce(thrush)))
369 |
370 | // pipeP :: ((a -> Promise b), ..., (y -> Promise z)) -> a -> Promise z
371 | const pipeP = unapply(flip(reduce(flip(then))))
372 |
373 | // cond :: [[(a -> Boolean), (a -> b)]] -> a -> b
374 | const cond = compose(reduceRight(thrush, unit), map(apply(ifElse)))
375 |
376 | // flatten :: [a] -> [b]
377 | const flatten =
378 | when(Array.isArray, reduce(_smash, []))
379 |
380 | // pluck :: k -> [{ k: v }] -> [v]
381 | const pluck = curry((key, list) =>
382 | map(prop(key), list)
383 | )
384 |
385 | // slice :: Number -> Number -> [a] -> [a]
386 | const slice = curry((from, to, list) =>
387 | list.slice(from, to)
388 | )
389 |
390 | // head :: [a] -> a
391 | const head = prop(0)
392 |
393 | // init :: [a] -> [a]
394 | const init = slice(0, -1)
395 |
396 | // last :: [a] -> a
397 | const last = compose(head, slice(-1, void 0))
398 |
399 | // tail :: [a] -> [a]
400 | const tail = slice(1, Infinity)
401 |
402 | // take :: Number -> [a] -> [a]
403 | const take = slice(0)
404 |
405 | // keys :: { k: v } -> [k]
406 | const keys = reduceObj(_appendKey, [])
407 |
408 | // values :: { k: v } -> [v]
409 | const values = reduceObj(flip(append), [])
410 |
411 | // indexBy :: (v -> k) -> [v] -> { k: v }
412 | const indexBy = curry((f, list) =>
413 | reduce(_putBy(f), {}, list)
414 | )
415 |
416 | // uniqBy :: (a -> String) -> [a] -> [a]
417 | const uniqBy = curry((f, list) =>
418 | compose(values, indexBy(f))(list)
419 | )
420 |
421 | _assign(exports, {
422 | add,
423 | append,
424 | apply,
425 | assoc,
426 | assocPath,
427 | call,
428 | compose,
429 | composeP,
430 | concat,
431 | cond,
432 | constant,
433 | converge,
434 | curry,
435 | curryN,
436 | defaultTo,
437 | dissoc,
438 | dissocPath,
439 | either,
440 | evolve,
441 | filter,
442 | find,
443 | flatten,
444 | flip,
445 | head,
446 | identity,
447 | ifElse,
448 | indexBy,
449 | init,
450 | is,
451 | join,
452 | juxt,
453 | keys,
454 | last,
455 | length,
456 | map,
457 | mapObj,
458 | match,
459 | merge,
460 | multiply,
461 | nAry,
462 | not,
463 | objOf,
464 | omit,
465 | partial,
466 | partialRight,
467 | path,
468 | pathEq,
469 | pick,
470 | pipe,
471 | pipeP,
472 | pluck,
473 | prepend,
474 | prop,
475 | propEq,
476 | props,
477 | reduce,
478 | reduceObj,
479 | reduceP,
480 | reduceRight,
481 | reduceRightP,
482 | replace,
483 | slice,
484 | sort,
485 | sortBy,
486 | split,
487 | tail,
488 | take,
489 | tap,
490 | test,
491 | then,
492 | thrush,
493 | unapply,
494 | unary,
495 | uniqBy,
496 | unit,
497 | unless,
498 | useWith,
499 | values,
500 | when,
501 | zipObj
502 | })
503 |
--------------------------------------------------------------------------------
/test/add.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add } = require('..')
4 |
5 | describe('add', () => {
6 | it('adds two numbers', () =>
7 | expect(add(1, 2)).to.equal(3)
8 | )
9 |
10 | it('is curried', () =>
11 | expect(add(1)(2)).to.equal(3)
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/append.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { append } = require('..')
4 |
5 | describe('append', () => {
6 | const list = [ 1, 2, 3 ]
7 |
8 | it('appends an element to a list', () =>
9 | expect(append(4, list)).to.eql([ 1, 2, 3, 4 ])
10 | )
11 |
12 | it('is curried', () =>
13 | expect(append(4)(list)).to.eql([ 1, 2, 3, 4 ])
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/apply.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { apply } = require('..')
4 |
5 | describe('apply', () => {
6 | const f = (a, b) => a + b
7 |
8 | it('applies a list of args to a function', () =>
9 | expect(apply(f, [1, 2])).to.equal(3)
10 | )
11 |
12 | it('is curried', () =>
13 | expect(apply(f)([1, 2])).to.equal(3)
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/assoc.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { assoc } = require('..')
4 |
5 | describe('assoc', () => {
6 | it('sets a property on an obj to a value', () =>
7 | expect(assoc('foo', 'bar', {})).to.eql({ foo: 'bar' })
8 | )
9 |
10 | it('is curried', () => {
11 | expect(assoc('foo')('bar', {})).to.eql({ foo: 'bar' })
12 | expect(assoc('foo', 'bar')({})).to.eql({ foo: 'bar' })
13 | })
14 | })
15 |
--------------------------------------------------------------------------------
/test/assocPath.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { assocPath } = require('..')
4 |
5 | describe('assocPath', () => {
6 | it('sets a value on a path of a nested object', () =>
7 | expect(assocPath(['foo', 'bar', 'bat'], 'baz', {}))
8 | .to.eql({ foo: { bar: { bat: 'baz' } } })
9 | )
10 |
11 | it('is curried', () => {
12 | expect(assocPath(['foo', 'bar', 'bat'])('baz', {}))
13 | .to.eql({ foo: { bar: { bat: 'baz' } } })
14 | expect(assocPath(['foo', 'bar', 'bat'], 'baz')({}))
15 | .to.eql({ foo: { bar: { bat: 'baz' } } })
16 | })
17 | })
18 |
--------------------------------------------------------------------------------
/test/call.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { call } = require('..')
4 |
5 | describe('call', () => {
6 | const f = (a, b) => a + b
7 |
8 | it('calls a function with variadic arguments', () =>
9 | expect(call(f, 1, 2)).to.equal(3)
10 | )
11 |
12 | it('is curried', () =>
13 | expect(call(f)(1, 2)).to.equal(3)
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/compose.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, compose, multiply } = require('..')
4 |
5 | describe('compose', () => {
6 | const f = compose(add(1), multiply(2))
7 |
8 | it('composes functions RTL', () =>
9 | expect(f(2)).to.equal(5)
10 | )
11 | })
12 |
--------------------------------------------------------------------------------
/test/composeP.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 | const property = require('prop-factory')
3 |
4 | const { composeP, curry } = require('..')
5 |
6 | describe('composeP', () => {
7 | const res = property()
8 |
9 | const add = curry((a, b) => Promise.resolve(a + b))
10 | const multiply = curry((a, b) => Promise.resolve(a * b))
11 |
12 | const maths = composeP(add(2), multiply(3))
13 |
14 | beforeEach(() =>
15 | maths(1).then(res)
16 | )
17 |
18 | it('composes async functions RTL', () =>
19 | expect(res()).to.equal(5)
20 | )
21 | })
22 |
--------------------------------------------------------------------------------
/test/concat.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { concat } = require('..')
4 |
5 | describe('concat', () => {
6 | const array = ['a']
7 | const string = 'a'
8 |
9 | it('concats two semigroups', () => {
10 | expect(concat(array, array)).to.eql(['a','a'])
11 | expect(concat(string, string)).to.equal('aa')
12 | })
13 |
14 | it('is curried', () =>
15 | expect(concat(string)(string)).to.equal('aa')
16 | )
17 | })
18 |
--------------------------------------------------------------------------------
/test/cond.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { cond, constant, prop } = require('..')
4 |
5 | describe('cond', () => {
6 | const conditional =
7 | cond([
8 | [ prop('foo'), constant('yes') ],
9 | [ prop('bar'), constant('no') ]
10 | ])
11 |
12 | it('accepts a list of if/else pred and transformer pairs', () => {
13 | expect(conditional({ foo: true })).to.equal('yes')
14 | expect(conditional({ bar: true })).to.equal('no')
15 | })
16 |
17 | it('returns undefined if no preds match', () =>
18 | expect(conditional({ none: true })).to.be.undefined
19 | )
20 | })
21 |
--------------------------------------------------------------------------------
/test/constant.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { constant } = require('..')
4 |
5 | describe('constant', () => {
6 | const f = constant('a')
7 |
8 | it('creates a function that returns the same value regardless of input', () => {
9 | expect(f()).to.equal('a')
10 | expect(f(1)).to.equal('a')
11 | expect(f(2)).to.equal('a')
12 | })
13 | })
14 |
--------------------------------------------------------------------------------
/test/converge.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, converge, multiply } = require('..')
4 |
5 | describe('converge', () => {
6 | it('converges the results of applying an arg to branching functions', () =>
7 | expect(converge(multiply, [ add(1), add(2) ])(1)).to.equal(6)
8 | )
9 |
10 | it('is curried', () =>
11 | expect(converge(multiply)([ add(1), add(2) ])(1)).to.equal(6)
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/curry.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { curry } = require('..')
4 |
5 | describe('curry', () => {
6 | const f = curry((a, b, c=0) =>
7 | a + b + c
8 | )
9 |
10 | it('curries a function to its length', () => {
11 | expect(f(1, 2)).to.equal(3)
12 | expect(f(1)(2)).to.equal(3)
13 | expect(f(1, 2, 3)).to.equal(6)
14 | expect(f(1)(2, 3)).to.equal(6)
15 | })
16 | })
17 |
--------------------------------------------------------------------------------
/test/curryN.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { curryN } = require('..')
4 |
5 | describe('curryN', () => {
6 | const f = (a, b, c) =>
7 | a + b + (c || 0)
8 |
9 | const g = curryN(2, f)
10 |
11 | it('curries a function to N arity', () => {
12 | expect(g(1, 2)).to.equal(3)
13 | expect(g(1)(2)).to.equal(3)
14 | expect(g(1, 2, 3)).to.equal(6)
15 | expect(g(1)(2, 3)).to.equal(6)
16 | })
17 |
18 | it('is curried', () =>
19 | expect(curryN(2)(f)(1)(2)).to.equal(3)
20 | )
21 | })
22 |
--------------------------------------------------------------------------------
/test/defaultTo.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { defaultTo } = require('..')
4 |
5 | describe('defaultTo', () => {
6 | it('defaults to a value if the original is null', () =>
7 | expect(defaultTo(1, null)).to.equal(1)
8 | )
9 |
10 | it('defaults to a value if the original is undefined', () =>
11 | expect(defaultTo(1, undefined)).to.equal(1)
12 | )
13 |
14 | it('defaults to a value if the original is NaN', () =>
15 | expect(defaultTo(1, 1/'a')).to.equal(1)
16 | )
17 |
18 | it('passes thru the original otherwise', () =>
19 | expect(defaultTo(1, 2)).to.equal(2)
20 | )
21 |
22 | it('is curried', () =>
23 | expect(defaultTo(1)(null)).to.equal(1)
24 | )
25 | })
26 |
--------------------------------------------------------------------------------
/test/dissoc.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { dissoc } = require('..')
4 |
5 | describe('dissoc', () => {
6 | it('removes a property from an obj', () =>
7 | expect(dissoc('foo', { foo: 'bar', baz: 'bat' })).to.eql({ baz: 'bat' })
8 | )
9 |
10 | it('is curried', () =>
11 | expect(dissoc('foo')({ foo: 'bar', baz: 'bat' })).to.eql({ baz: 'bat' })
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/dissocPath.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { dissocPath } = require('..')
4 |
5 | describe('dissocPath', () => {
6 | const orig = { foo: { bar: 'baz' } }
7 |
8 | it('removes a value from the tip of a path on a nested object', () =>
9 | expect(dissocPath(['foo', 'bar'], orig)).to.eql({ foo: { } })
10 | )
11 |
12 | it('returns object unharmed if path is empty', () =>
13 | expect(dissocPath([], orig)).to.eql(orig)
14 | )
15 |
16 | it('returns object unharmed if nothing at that path', () =>
17 | expect(dissocPath(['blah'], orig)).to.eql(orig)
18 | )
19 |
20 | it('is curried', () =>
21 | expect(dissocPath(['foo', 'bar'])(orig)).to.eql({ foo: { } })
22 | )
23 | })
24 |
--------------------------------------------------------------------------------
/test/either.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { either, prop } = require('..')
4 |
5 | describe('either', () => {
6 | const f = prop('f')
7 | const g = prop('g')
8 |
9 | const obj = { g: 'h' }
10 |
11 | it('wraps two functions in an || operation', () =>
12 | expect(either(f, g, obj)).to.equal('h')
13 | )
14 |
15 | it('is curried', () => {
16 | expect(either(f)(g, obj)).to.equal('h')
17 | expect(either(f, g)(obj)).to.equal('h')
18 | expect(either(f)(g)(obj)).to.equal('h')
19 | })
20 | })
21 |
--------------------------------------------------------------------------------
/test/evolve.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, evolve } = require('..')
4 |
5 | describe('evolve', () => {
6 | const orig = { foo: 1, bar: { baz: 2 }, blah: 3 }
7 |
8 | const xfrms = { foo: add(1), bar: { baz: add(2) } }
9 |
10 | it('recursively evolves a nested object with a map of transforms', () =>
11 | expect(evolve(xfrms, orig)).to.eql({ foo: 2, bar: { baz: 4 }, blah: 3 })
12 | )
13 |
14 | it('is curried', () =>
15 | expect(evolve(xfrms)(orig)).to.eql({ foo: 2, bar: { baz: 4 }, blah: 3 })
16 | )
17 | })
18 |
--------------------------------------------------------------------------------
/test/filter.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { filter } = require('..')
4 |
5 | describe('filter', () => {
6 | const even = num =>
7 | num % 2 === 0
8 |
9 | it('filters a list by a predicate', () =>
10 | expect(filter(even, [ 1, 2, 3, 4 ])).to.eql([ 2, 4 ])
11 | )
12 |
13 | it('is curried', () =>
14 | expect(filter(even)([ 1, 2, 3, 4 ])).to.eql([ 2, 4 ])
15 | )
16 | })
17 |
--------------------------------------------------------------------------------
/test/find.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { find } = require('..')
4 |
5 | describe('find', () => {
6 | const arr = [1, 2, 3, 4]
7 |
8 | const gt2 = x =>
9 | x > 2
10 |
11 | it('finds an item in a list', () =>
12 | expect(find(gt2, arr)).to.equal(3)
13 | )
14 |
15 | it('is curried', () =>
16 | expect(find(gt2)(arr)).to.equal(3)
17 | )
18 | })
19 |
--------------------------------------------------------------------------------
/test/flatten.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { flatten } = require('..')
4 |
5 | describe('flatten', () => {
6 | const arr = [ 1, [ 2, 3 ], [ 4, [ 5 ] ] ]
7 |
8 | it('recursively flattens an array', () =>
9 | expect(flatten(arr)).to.eql([ 1, 2, 3, 4, 5 ])
10 | )
11 | })
12 |
--------------------------------------------------------------------------------
/test/flip.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, flip } = require('..')
4 |
5 | describe('flip', () => {
6 | it('flips and curries the first two args of a function', () => {
7 | expect(flip(add)('a', 'b')).to.equal('ba')
8 | expect(flip(add)('a')('b')).to.equal('ba')
9 | })
10 | })
11 |
--------------------------------------------------------------------------------
/test/head.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { head } = require('..')
4 |
5 | describe('head', () => {
6 | it('returns the head of a list', () =>
7 | expect(head([ 1, 2, 3 ])).to.equal(1)
8 | )
9 | })
10 |
--------------------------------------------------------------------------------
/test/identity.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { identity } = require('..')
4 |
5 | describe('identity', () => {
6 | const obj = { foo: 'bar' }
7 |
8 | it('always returns the first arg', () => {
9 | expect(identity('a')).to.equal('a')
10 | expect(identity(1)).to.equal(1)
11 | expect(identity(true)).to.equal(true)
12 | expect(identity(obj)).to.equal(obj)
13 | })
14 | })
15 |
--------------------------------------------------------------------------------
/test/ifElse.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, ifElse } = require('..')
4 |
5 | describe('ifElse', () => {
6 | const falsy = x => !x
7 |
8 | it('branches between two functions based on predicate', () => {
9 | expect(ifElse(falsy, add(1), add(2), 0)).to.equal(1)
10 | expect(ifElse(falsy, add(1), add(2), 1)).to.equal(3)
11 | })
12 |
13 | it('isCurried', () => {
14 | expect(ifElse(falsy, add(1), add(2))(0)).to.equal(1)
15 | expect(ifElse(falsy, add(1))(add(2), 0)).to.equal(1)
16 | expect(ifElse(falsy)(add(1), add(2), 0)).to.equal(1)
17 | expect(ifElse(falsy)(add(1))(add(2))(0)).to.equal(1)
18 | })
19 | })
20 |
--------------------------------------------------------------------------------
/test/indexBy.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { indexBy, prop } = require('..')
4 |
5 | describe('indexBy', () => {
6 | const list = [{ id: 'abc' }, { id: 'def' }]
7 |
8 | it('indexes a list by a key function', () =>
9 | expect(indexBy(prop('id'), list)).to.eql({
10 | abc: { id: 'abc' },
11 | def: { id: 'def' }
12 | })
13 | )
14 |
15 | it('is curried', () =>
16 | expect(indexBy(prop('id'))(list)).to.eql({
17 | abc: { id: 'abc' },
18 | def: { id: 'def' }
19 | })
20 | )
21 | })
22 |
--------------------------------------------------------------------------------
/test/init.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { init } = require('..')
4 |
5 | describe('init', () => {
6 | it('returns all but the last element of a list', () =>
7 | expect(init([ 1, 2, 3 ])).to.eql([ 1, 2 ])
8 | )
9 | })
10 |
--------------------------------------------------------------------------------
/test/is.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { is } = require('..')
4 |
5 | class Foo {}
6 | class Bar extends Foo {}
7 |
8 | describe('is', () => {
9 | it('tests if object is instance of supplied contructor', () => {
10 | expect(is(Number, 12345)).to.be.true
11 | expect(is(String, 'foo')).to.be.true
12 | expect(is(Foo, new Bar())).to.be.true
13 | })
14 |
15 | it('is curried', () =>
16 | expect(is(String)('foo')).to.be.true
17 | )
18 | })
19 |
--------------------------------------------------------------------------------
/test/join.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { join } = require('..')
4 |
5 | describe('join', () => {
6 | it('joins a list by a separator', () =>
7 | expect(join(',', [ 1, 2, 3 ])).to.equal('1,2,3')
8 | )
9 |
10 | it('is curried', () =>
11 | expect(join(',')([ 1, 2, 3 ])).to.equal('1,2,3')
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/juxt.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, juxt, multiply } = require('..')
4 |
5 | describe('juxt', () => {
6 | it('creates a new function that branches an arg over multiple functions', () =>
7 | expect(juxt([ add(1), multiply(2) ], 2)).to.eql([ 3, 4 ])
8 | )
9 |
10 | it('is curried', () =>
11 | expect(juxt([ add(1), multiply(2) ])(2)).to.eql([ 3, 4 ])
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/keys.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { keys } = require('..')
4 |
5 | describe('keys', () => {
6 | it('returns a list of keys in an object', () =>
7 | expect(keys({ foo: 'bar', baz: 'bat' })).to.eql([ 'foo', 'baz' ])
8 | )
9 | })
10 |
--------------------------------------------------------------------------------
/test/last.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { last } = require('..')
4 |
5 | describe('last', () => {
6 | it('returns the last item of a list', () =>
7 | expect(last([ 1, 2, 3 ])).to.equal(3)
8 | )
9 | })
10 |
--------------------------------------------------------------------------------
/test/length.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { length } = require('..')
4 |
5 | describe('length', () => {
6 | const a = [1, 2, 3]
7 |
8 | it('returns the length of a list', () =>
9 | expect(length(a)).to.equal(3)
10 | )
11 | })
12 |
--------------------------------------------------------------------------------
/test/map.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, map } = require('..')
4 |
5 | describe('map', () => {
6 | const functor = [ 1, 2 ]
7 |
8 | it('maps a function over a functor', () =>
9 | expect(map(add(1), functor)).to.eql([ 2, 3 ])
10 | )
11 |
12 | it('is curried', () =>
13 | expect(map(add(1))(functor)).to.eql([ 2, 3 ])
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/mapObj.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { mapObj } = require('..')
4 |
5 | describe('mapObj', () => {
6 | const obj = { foo: 1, bar: 2 }
7 |
8 | const f = (val, key) => key + val
9 |
10 | it('maps a function over an object', () =>
11 | expect(mapObj(f, obj)).to.eql({ foo: 'foo1', bar: 'bar2' })
12 | )
13 |
14 | it('is curried', () =>
15 | expect(mapObj(f)(obj)).to.eql({ foo: 'foo1', bar: 'bar2' })
16 | )
17 | })
18 |
--------------------------------------------------------------------------------
/test/match.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { match } = require('..')
4 |
5 | describe('match', () => {
6 | const regex = /foo/
7 |
8 | it('matches a regex to a string', () =>
9 | expect(match(regex, 'foot')).to.eql(['foo'])
10 | )
11 |
12 | it('is curried', () =>
13 | expect(match(regex)('foot')).to.eql(['foo'])
14 | )
15 |
16 | it('returns an empty array if no matches found', () =>
17 | expect(match(regex, 'nope')).to.eql([])
18 | )
19 | })
20 |
--------------------------------------------------------------------------------
/test/merge.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { merge } = require('..')
4 |
5 | describe('merge', () => {
6 | it('merges the properties of one object onto a shallow copy of another', () =>
7 | expect(merge({ foo: 1 }, { bar: 2 })).to.eql({ foo: 1, bar: 2 })
8 | )
9 |
10 | it('is curried', () =>
11 | expect(merge({ foo: 1 })({ bar: 2 })).to.eql({ foo: 1, bar: 2 })
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/multiply.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { multiply } = require('..')
4 |
5 | describe('multiply', () => {
6 | it('multiplies two numbers', () =>
7 | expect(multiply(2, 3)).to.equal(6)
8 | )
9 |
10 | it('is curried', () =>
11 | expect(multiply(2)(3)).to.equal(6)
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/nAry.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { nAry } = require('..')
4 |
5 | describe('nAry', () => {
6 | const f = (a=0, b=0, c=0, d=0) =>
7 | a + b + c + d
8 |
9 | it('limits the args passed to the wrapped function', () => {
10 | expect(nAry(0, f)(1, 1, 1, 1)).to.equal(0)
11 | expect(nAry(1, f)(1, 1, 1, 1)).to.equal(1)
12 | expect(nAry(2, f)(1, 1, 1, 1)).to.equal(2)
13 | expect(nAry(3, f)(1, 1, 1, 1)).to.equal(3)
14 | })
15 |
16 | it('is curried', () =>
17 | expect(nAry(1)(f)(1, 1, 1, 1)).to.equal(1)
18 | )
19 | })
20 |
--------------------------------------------------------------------------------
/test/not.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { not } = require('..')
4 |
5 | describe('not', () => {
6 | it('negates its first argument', () => {
7 | expect(not(true)).to.be.false
8 | expect(not(false)).to.be.true
9 | })
10 | })
11 |
--------------------------------------------------------------------------------
/test/objOf.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { objOf } = require('..')
4 |
5 | describe('objOf', () => {
6 | it('makes an object of a key/value pair', () =>
7 | expect(objOf('foo', 'bar')).to.eql({ foo: 'bar' })
8 | )
9 |
10 | it('is curried', () =>
11 | expect(objOf('foo')('bar')).to.eql({ foo: 'bar' })
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/omit.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { omit } = require('..')
4 |
5 | describe('omit', () => {
6 | const orig = { a: 'a', b: 'b', c: 'c' }
7 |
8 | it('omits certain properties from an object', () =>
9 | expect(omit([ 'a', 'b' ], orig)).to.eql({ c: 'c' })
10 | )
11 |
12 | it('is curried', () =>
13 | expect(omit([ 'a', 'b' ])(orig)).to.eql({ c: 'c' })
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/partial.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { partial } = require('..')
4 |
5 | describe('partial', () => {
6 | const sum = (a, b, c, d) =>
7 | a + b + c + d
8 |
9 | it('partially applies args to a function', () =>
10 | expect(partial(sum, [ 1, 2 ])(3, 4)).to.equal(10)
11 | )
12 |
13 | it('is curried', () =>
14 | expect(partial(sum)([ 1, 2 ])(3, 4)).to.equal(10)
15 | )
16 | })
17 |
--------------------------------------------------------------------------------
/test/partialRight.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { partialRight } = require('..')
4 |
5 | describe('partialRight', () => {
6 | const maths = (a, b, c, d) =>
7 | a + b * c + d
8 |
9 | it('partially applies right-side args to a function', () =>
10 | expect(partialRight(maths, [ 1, 2 ])(3, 4)).to.equal(9)
11 | )
12 |
13 | it('is curried', () =>
14 | expect(partialRight(maths)([ 1, 2 ])(3, 4)).to.equal(9)
15 | )
16 | })
17 |
--------------------------------------------------------------------------------
/test/path.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { path } = require('..')
4 |
5 | describe('path', () => {
6 | const obj = { foo: { bar: 'baz' } }
7 |
8 | it('accesses a value at the tip of a path on an object', () =>
9 | expect(path(['foo', 'bar'], obj)).to.equal('baz')
10 | )
11 |
12 | it('is curried', () =>
13 | expect(path(['foo', 'bar'])(obj)).to.equal('baz')
14 | )
15 |
16 | it('returns undefined if part of the path is undefined or null', () => {
17 | expect(path(['foo', 'bar'], undefined)).to.be.undefined
18 | expect(path(['bar', 'foo'], obj)).to.be.undefined
19 | expect(path(['bar', 'foo'], { bar: null })).to.be.undefined
20 | })
21 | })
22 |
--------------------------------------------------------------------------------
/test/pathEq.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { pathEq } = require('..')
4 |
5 | describe('pathEq', () => {
6 | const obj = { foo: { bar: 'yes' } }
7 |
8 | it('tests if a nested path is identically equal to a value', () => {
9 | expect(pathEq(['foo', 'bar'], 'yes', obj)).to.be.true
10 | expect(pathEq(['foo', 'bar'], 'no', obj)).to.be.false
11 | })
12 |
13 | it('does not fail if the path is missing', () =>
14 | expect(pathEq(['bar', 'foo'], 'yes', obj)).to.be.false
15 | )
16 |
17 | it('is curried', () => {
18 | expect(pathEq(['foo', 'bar'])('yes', obj)).to.be.true
19 | expect(pathEq(['foo', 'bar'], 'yes')(obj)).to.be.true
20 | expect(pathEq(['foo', 'bar'])('yes')(obj)).to.be.true
21 | })
22 | })
23 |
--------------------------------------------------------------------------------
/test/pick.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { pick } = require('..')
4 |
5 | describe('pick', () => {
6 | const orig = { a: 'a', b: 'b', c: 'c' }
7 |
8 | it('picks certain properties from an object', () =>
9 | expect(pick([ 'a', 'b' ], orig)).to.eql({ a: 'a', b: 'b' })
10 | )
11 |
12 | it('is curried', () =>
13 | expect(pick([ 'a', 'b' ])(orig)).to.eql({ a: 'a', b: 'b' })
14 | )
15 |
16 | it('does not include a picked key if val is undefined', () =>
17 | expect(pick([ 'a', 'd' ], orig)).to.eql({ a: 'a' })
18 | )
19 | })
20 |
--------------------------------------------------------------------------------
/test/pipe.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, multiply, pipe } = require('..')
4 |
5 | describe('pipe', () => {
6 | const f = pipe(add(1), multiply(2))
7 |
8 | it('composes functions LTR', () =>
9 | expect(f(2)).to.equal(6)
10 | )
11 | })
12 |
--------------------------------------------------------------------------------
/test/pipeP.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 | const property = require('prop-factory')
3 |
4 | const { curry, pipeP } = require('..')
5 |
6 | describe('pipeP', () => {
7 | const res = property()
8 |
9 | const add = curry((a, b) => Promise.resolve(a + b))
10 | const multiply = curry((a, b) => Promise.resolve(a * b))
11 |
12 | const maths = pipeP(add(2), multiply(3))
13 |
14 | beforeEach(() =>
15 | maths(1).then(res)
16 | )
17 |
18 | it('composes async functions RTL', () =>
19 | expect(res()).to.equal(9)
20 | )
21 | })
22 |
--------------------------------------------------------------------------------
/test/pluck.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { pluck } = require('..')
4 |
5 | describe('pluck', () => {
6 | const list = [{ a: 'b' }, { a: 'c' }, { b: 'a' }]
7 |
8 | it('plucks the values from a list for a given key', () =>
9 | expect(pluck('a', list)).to.eql(['b', 'c', undefined])
10 | )
11 |
12 | it('is curried', () =>
13 | expect(pluck('a')(list)).to.eql(['b', 'c', undefined])
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/prepend.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { prepend } = require('..')
4 |
5 | describe('prepend', () => {
6 | const list = [ 1, 2, 3 ]
7 |
8 | it('appends an element to a list', () =>
9 | expect(prepend(0, list)).to.eql([ 0, 1, 2, 3 ])
10 | )
11 |
12 | it('is curried', () =>
13 | expect(prepend(0)(list)).to.eql([ 0, 1, 2, 3 ])
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/prop.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { prop } = require('..')
4 |
5 | describe('prop', () => {
6 | const obj = { foo: 'bar' }
7 |
8 | it('accesses the value of a property on an object', () =>
9 | expect(prop('foo', obj)).to.equal('bar')
10 | )
11 |
12 | it('is curried', () =>
13 | expect(prop('foo')(obj)).to.equal('bar')
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/propEq.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { propEq } = require('..')
4 |
5 | describe('propEq', () => {
6 | const obj = { foo: 'bar' }
7 |
8 | it('tests that a certain property equals a supplied value', () => {
9 | expect(propEq('foo', 'bar', obj)).to.be.true
10 | expect(propEq('foo', 'nope', obj)).to.be.false
11 | expect(propEq('bar', 'nope', obj)).to.be.false
12 | })
13 |
14 | it('is curried', () => {
15 | expect(propEq('foo', 'bar')(obj)).to.be.true
16 | expect(propEq('foo')('bar', obj)).to.be.true
17 | expect(propEq('foo')('bar')(obj)).to.be.true
18 | })
19 | })
20 |
--------------------------------------------------------------------------------
/test/props.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { props } = require('..')
4 |
5 | describe('props', () => {
6 | const obj = { foo: 1, bar: 2, baz: 3 }
7 |
8 | it('lists values from an object corresponding to a list of keys', () =>
9 | expect(props(['foo', 'bar'], obj)).to.eql([ 1, 2 ])
10 | )
11 |
12 | it('is curried', () =>
13 | expect(props(['foo', 'bar'])(obj)).to.eql([ 1, 2 ])
14 | )
15 | })
16 |
--------------------------------------------------------------------------------
/test/reduce.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, reduce } = require('..')
4 |
5 | describe('reduce', () => {
6 | const list = ['1', '2', '3']
7 |
8 | it('reduces a list LTR', () =>
9 | expect(reduce(add, '0', list)).to.equal('0123')
10 | )
11 |
12 | it('is curried', () => {
13 | expect(reduce(add)('0', list)).to.equal('0123')
14 | expect(reduce(add, '0')(list)).to.equal('0123')
15 | expect(reduce(add)('0')(list)).to.equal('0123')
16 | })
17 | })
18 |
--------------------------------------------------------------------------------
/test/reduceObj.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { reduceObj } = require('..')
4 |
5 | describe('reduceObj', () => {
6 | const obj = { name: 'Spot', color: 'blue' }
7 |
8 | const serialize = (acc, val, key) =>
9 | (acc ? `${acc},` : '') + `${key}:${val}`
10 |
11 | it('reduces an object', () =>
12 | expect(reduceObj(serialize, '', obj)).to.equal('name:Spot,color:blue')
13 | )
14 |
15 | it('is curried', () => {
16 | expect(reduceObj(serialize)('', obj)).to.equal('name:Spot,color:blue')
17 | expect(reduceObj(serialize, '')(obj)).to.equal('name:Spot,color:blue')
18 | expect(reduceObj(serialize)('')(obj)).to.equal('name:Spot,color:blue')
19 | })
20 | })
21 |
--------------------------------------------------------------------------------
/test/reduceP.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 | const property = require('prop-factory')
3 |
4 | const { reduceP } = require('..')
5 |
6 | describe('reduceP', () => {
7 | const res = property()
8 |
9 | const f = (b, a) =>
10 | Promise.resolve(b + a)
11 |
12 | beforeEach(() =>
13 | reduceP(f, '0', ['1', '2', '3', '4']).then(res)
14 | )
15 |
16 | it('reduces a list LTR with an async reducer', () =>
17 | expect(res()).to.equal('01234')
18 | )
19 | })
20 |
--------------------------------------------------------------------------------
/test/reduceRight.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, reduceRight } = require('..')
4 |
5 | describe('reduceRight', () => {
6 | const list = ['1', '2', '3']
7 |
8 | it('reduces a list RTL', () =>
9 | expect(reduceRight(add, '0', list)).to.equal('0321')
10 | )
11 |
12 | it('is curried', () => {
13 | expect(reduceRight(add)('0', list)).to.equal('0321')
14 | expect(reduceRight(add, '0')(list)).to.equal('0321')
15 | expect(reduceRight(add)('0')(list)).to.equal('0321')
16 | })
17 | })
18 |
--------------------------------------------------------------------------------
/test/reduceRightP.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 | const property = require('prop-factory')
3 |
4 | const { reduceRightP } = require('..')
5 |
6 | describe('reduceRightP', () => {
7 | const res = property()
8 |
9 | const f = (b, a) =>
10 | Promise.resolve(b + a)
11 |
12 | beforeEach(() =>
13 | reduceRightP(f, '0', ['1', '2', '3', '4']).then(res)
14 | )
15 |
16 | it('reduces a list RTL with an async reducer', () =>
17 | expect(res()).to.equal('04321')
18 | )
19 | })
20 |
--------------------------------------------------------------------------------
/test/replace.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { replace } = require('..')
4 |
5 | describe('replace', () => {
6 | const string = 'I like food.'
7 |
8 | it('replaces a regex in a string with a replacement string', () =>
9 | expect(replace(/foo/, 'bar', string)).to.equal('I like bard.')
10 | )
11 |
12 | it('is curried', () => {
13 | expect(replace(/foo/)('bar', string)).to.equal('I like bard.')
14 | expect(replace(/foo/, 'bar')(string)).to.equal('I like bard.')
15 | expect(replace(/foo/)('bar')(string)).to.equal('I like bard.')
16 | })
17 | })
18 |
--------------------------------------------------------------------------------
/test/slice.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { slice } = require('..')
4 |
5 | describe('slice', () => {
6 | it('slices a list', () =>
7 | expect(slice(1, 3, [ 1, 2, 3, 4 ])).to.eql([ 2, 3 ])
8 | )
9 |
10 | it('is curried', () => {
11 | expect(slice(1)(3, [ 1, 2, 3, 4 ])).to.eql([ 2, 3 ])
12 | expect(slice(1, 3)([ 1, 2, 3, 4 ])).to.eql([ 2, 3 ])
13 | expect(slice(1)(3)([ 1, 2, 3, 4 ])).to.eql([ 2, 3 ])
14 | })
15 | })
16 |
--------------------------------------------------------------------------------
/test/sort.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { sort } = require('..')
4 |
5 | describe('sort', () => {
6 | const desc = (a, b) =>
7 | a < b ? 1 : b < a ? -1 : 0
8 |
9 | const list = [ 1, 2, 3, 4 ]
10 |
11 | it('sorts a list by a comparator', () =>
12 | expect(sort(desc, list)).to.eql([ 4, 3, 2, 1 ])
13 | )
14 |
15 | it('is curried', () =>
16 | expect(sort(desc)(list)).to.eql([ 4, 3, 2, 1 ])
17 | )
18 | })
19 |
--------------------------------------------------------------------------------
/test/sortBy.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { prop, sortBy } = require('..')
4 |
5 | describe('sortBy', () => {
6 | const list = [
7 | { name: 'Scott' },
8 | { name: 'Frank' },
9 | { name: 'Scott' },
10 | { name: 'Reginald' }
11 | ]
12 |
13 | it('sorts a list by an indexing function', () =>
14 | expect(sortBy(prop('name'), list)).to.eql([
15 | { name: 'Frank' },
16 | { name: 'Reginald' },
17 | { name: 'Scott' },
18 | { name: 'Scott' }
19 | ])
20 | )
21 |
22 | it('is curried', () =>
23 | expect(sortBy(prop('name'))(list)).to.eql([
24 | { name: 'Frank' },
25 | { name: 'Reginald' },
26 | { name: 'Scott' },
27 | { name: 'Scott' }
28 | ])
29 | )
30 | })
31 |
--------------------------------------------------------------------------------
/test/split.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { split } = require('..')
4 |
5 | describe('split', () => {
6 | it('splits a string by a regexp', () => {
7 | expect(split('', 'abc')).to.eql(['a','b','c'])
8 | expect(split('a', 'banana')).to.eql(['b','n','n',''])
9 | })
10 |
11 | it('is curried', () =>
12 | expect(split('')('abc')).to.eql(['a','b','c'])
13 | )
14 | })
15 |
--------------------------------------------------------------------------------
/test/tail.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { tail } = require('..')
4 |
5 | describe('tail', () => {
6 | it('returns all but the first item of a list', () =>
7 | expect(tail([ 1, 2, 3 ])).to.eql([ 2, 3 ])
8 | )
9 | })
10 |
--------------------------------------------------------------------------------
/test/take.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { take } = require('..')
4 |
5 | describe('take', () => {
6 | const arr = [1, 2, 3, 4]
7 |
8 | it('takes the first n items in a list', () => {
9 | expect(take(0, arr)).to.eql([])
10 | expect(take(1, arr)).to.eql([1])
11 | expect(take(2, arr)).to.eql([1, 2])
12 | expect(take(3, arr)).to.eql([1, 2, 3])
13 | expect(take(4, arr)).to.eql([1, 2, 3, 4])
14 | expect(take(5, arr)).to.eql([1, 2, 3, 4])
15 | })
16 |
17 | it('is curried', () =>
18 | expect(take(1)(arr)).to.eql([1])
19 | )
20 | })
21 |
--------------------------------------------------------------------------------
/test/tap.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 | const spy = require('@articulate/spy')
3 |
4 | const { tap } = require('..')
5 |
6 | describe('tap', () => {
7 | const f = spy()
8 |
9 | afterEach(() =>
10 | f.reset()
11 | )
12 |
13 | it('passes thru the arg after executing the function', () => {
14 | expect(tap(f, 'a')).to.equal('a')
15 | expect(f.calls.length).to.equal(1)
16 | })
17 |
18 | it('is curried', () => {
19 | expect(tap(f)('a')).to.equal('a')
20 | expect(f.calls.length).to.equal(1)
21 | })
22 | })
23 |
--------------------------------------------------------------------------------
/test/test.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { test } = require('..')
4 |
5 | describe('test', () => {
6 | const pattern = /good/
7 |
8 | it('tests a string against a RegExp', () => {
9 | expect(test(pattern, 'good news')).to.be.true
10 | expect(test(pattern, 'bad news')).to.be.false
11 | })
12 |
13 | it('is curried', () =>
14 | expect(test(pattern)('good news')).to.be.true
15 | )
16 | })
17 |
--------------------------------------------------------------------------------
/test/then.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 | const property = require('prop-factory')
3 |
4 | const { curry, then } = require('..')
5 |
6 | describe('then', () => {
7 | const res1 = property()
8 | const res2 = property()
9 |
10 | const add = curry((a, b) => Promise.resolve(a + b))
11 |
12 | beforeEach(() =>
13 | Promise.all([
14 | then(add(2), Promise.resolve(2)).then(res1),
15 | then(add(2))(Promise.resolve(2)).then(res2)
16 | ])
17 | )
18 |
19 | it('is a pointfree then', () =>
20 | expect(res1()).to.equal(4)
21 | )
22 |
23 | it('is curried', () =>
24 | expect(res2()).to.equal(4)
25 | )
26 | })
27 |
--------------------------------------------------------------------------------
/test/thrush.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, thrush } = require('..')
4 |
5 | describe('thrush', () => {
6 | it('accepts a value and function and executes the latter with the former', () =>
7 | expect(thrush(1, add(1))).to.equal(2)
8 | )
9 |
10 | it('is curried', () =>
11 | expect(thrush(1)(add(1))).to.equal(2)
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/unapply.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, reduce, unapply } = require('..')
4 |
5 | describe('unapply', () => {
6 | const sum = unapply(reduce(add, 0))
7 |
8 | it('converts a function which takes an array to variadic', () =>
9 | expect(sum(1, 2, 3, 4)).to.equal(10)
10 | )
11 | })
12 |
--------------------------------------------------------------------------------
/test/unary.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { unary } = require('..')
4 |
5 | describe('unary', () => {
6 | const f = unary((a=0, b=0) =>
7 | a + b
8 | )
9 |
10 | it('only passes one arg to wrapped function', () => {
11 | expect(f()).to.equal(0)
12 | expect(f(1)).to.equal(1)
13 | expect(f(1, 2)).to.equal(1)
14 | })
15 | })
16 |
--------------------------------------------------------------------------------
/test/uniqBy.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { prop, propEq, uniqBy } = require('..')
4 |
5 | describe('uniqBy', () => {
6 | const list = [{ id: 'abc' }, { id: 'def' }, { id: 'abc' }]
7 |
8 | it('uniques a list by a key function', () => {
9 | const res = uniqBy(prop('id'), list)
10 | expect(res.length).to.equal(2)
11 | expect(res.find(propEq('id', 'abc'))).to.exist
12 | expect(res.find(propEq('id', 'def'))).to.exist
13 | })
14 |
15 | it('is curried', () => {
16 | const res = uniqBy(prop('id'))(list)
17 | expect(res.length).to.equal(2)
18 | expect(res.find(propEq('id', 'abc'))).to.exist
19 | expect(res.find(propEq('id', 'def'))).to.exist
20 | })
21 | })
22 |
--------------------------------------------------------------------------------
/test/unit.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { unit } = require('..')
4 |
5 | describe('unit', () => {
6 | it('always returns undefined', () => {
7 | expect(unit('a')).to.be.undefined
8 | expect(unit()).to.be.undefined
9 | })
10 | })
11 |
--------------------------------------------------------------------------------
/test/unless.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, unless } = require('..')
4 |
5 | describe('unless', () => {
6 | const truthy = x => !!x
7 |
8 | it('transforms an arg by a function unless a predicate is true', () => {
9 | expect(unless(truthy, add(1), 0)).to.equal(1)
10 | expect(unless(truthy, add(1), 1)).to.equal(1)
11 | })
12 |
13 | it('is curried', () => {
14 | expect(unless(truthy)(add(1), 0)).to.equal(1)
15 | expect(unless(truthy, add(1))(0)).to.equal(1)
16 | expect(unless(truthy)(add(1))(0)).to.equal(1)
17 | })
18 | })
19 |
--------------------------------------------------------------------------------
/test/useWith.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, multiply, useWith } = require('..')
4 |
5 | describe('useWith', () => {
6 | it('transforms args before passing to original function', () =>
7 | expect(useWith(multiply, [ add(1), add(2) ])(1, 1)).to.equal(6)
8 | )
9 |
10 | it('is curried', () =>
11 | expect(useWith(multiply)([ add(1), add(2) ])(1, 1)).to.equal(6)
12 | )
13 | })
14 |
--------------------------------------------------------------------------------
/test/values.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { values } = require('..')
4 |
5 | describe('values', () => {
6 | it('returns a list of values in an object', () =>
7 | expect(values({ foo: 'bar', baz: 'bat' })).to.eql([ 'bar', 'bat' ])
8 | )
9 | })
10 |
--------------------------------------------------------------------------------
/test/when.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { add, when } = require('..')
4 |
5 | describe('when', () => {
6 | const falsy = x => !x
7 |
8 | it('transforms an arg by a function when a predicate is true', () => {
9 | expect(when(falsy, add(1), 0)).to.equal(1)
10 | expect(when(falsy, add(1), 1)).to.equal(1)
11 | })
12 |
13 | it('is curried', () => {
14 | expect(when(falsy)(add(1), 0)).to.equal(1)
15 | expect(when(falsy, add(1))(0)).to.equal(1)
16 | expect(when(falsy)(add(1))(0)).to.equal(1)
17 | })
18 | })
19 |
--------------------------------------------------------------------------------
/test/zipObj.js:
--------------------------------------------------------------------------------
1 | const { expect } = require('chai')
2 |
3 | const { zipObj } = require('..')
4 |
5 | describe('zipObj', () => {
6 | const keys = ['foo', 'bar']
7 | const vals = [ 1, 2 ]
8 |
9 | it('zips a list of keys and list of values into an object', () =>
10 | expect(zipObj(keys, vals)).to.eql({ foo: 1, bar: 2 })
11 | )
12 |
13 | it('is curried', () =>
14 | expect(zipObj(keys)(vals)).to.eql({ foo: 1, bar: 2 })
15 | )
16 |
17 | it('does not include a key when val is undefined', () =>
18 | expect(zipObj(keys, [ 1, undefined ])).to.eql({ foo: 1 })
19 | )
20 | })
21 |
--------------------------------------------------------------------------------
/tinyfunk.js:
--------------------------------------------------------------------------------
1 | !function(e){const t=(e,t)=>{for(let n in t)e[n]=t[n];return e},n=(e,t)=>ey(t,1,e),i=(e,t)=>e.bind(null,...t),l=e=>e.length,o=e=>(...t)=>e(t),c=(e,t)=>e<1?t:o(n=>{const r=e-l(n);return r>0?c(r,i(t,n)):t.apply(null,n)}),p=c(2,c),s=e=>p(l(e),e),u=s((e,t,n)=>{let r=e[n]||B;return"object"==typeof r&&(r=O(r)),r(t)}),a=s((e,t)=>e+t),d=s((e,t)=>g(t,[e])),f=s((e,t)=>e.apply(null,t)),y=s((e,n,r)=>{const i=t({},r);return i[e]=n,i}),h=p(3,([e,...t],n,r={})=>y(e,l(t)?h(t,n,r[e]):n,r)),m=p(2,(e,...t)=>f(e,t)),g=s((e,t)=>e.concat(t)),j=s((e,t)=>ye(f(e),z(t))),k=s((e,t)=>null==t||t!=t?e:t),v=s((e,n)=>{const r=t({},n);return delete r[e],r}),P=s(([e,...t],n)=>e?null==n[e]?n:l(t)?y(e,P(t,n[e]),n):v(e,n):n),b=s((e,t,n)=>e(n)||t(n)),O=s((e,t)=>T(u(e),t)),R=s((e,t)=>t.filter(e)),q=s((e,t)=>t.find(e)),A=s((e,t,n)=>s(e)(n,t)),B=e=>e,E=s((e,t,n,r)=>e(r)?t(r):n(r)),x=s((e,t)=>null!=t&&t.constructor===e||t instanceof e),w=s((e,t)=>t.join(e)),z=s((e,t)=>N(ce(t),e)),N=s((e,t)=>t.map(e)),T=s((e,t)=>{const n={};for(let r in t)n[r]=e(t[r],r);return n}),W=s((e,t)=>t.match(e)||[]),C=s((e,n)=>X(t,{},[e,n])),D=s((e,t)=>e*t),F=s((e,t)=>o(ye(f(t),Ae(e)))),G=s((e,t)=>({[e]:t})),H=s((e,t)=>{const n=X(r,{},e),i={};for(let e in t)n[e]||(i[e]=t[e]);return i}),I=s(i),J=p(3,(e,t,...n)=>f(e,g(n,t))),K=p(2,([e,...t],n)=>(null==n&&(n={}),l(t)?K(t,n[e]):n[e])),L=s((e,t,n)=>K(e,n)===t),M=s((e,t)=>fe(e,V(e,t))),Q=s((e,t)=>g([e],t)),S=s((e,t)=>t[e]),U=s((e,t,n)=>n[e]===t),V=s((e,t)=>N(A(S)(t),e)),X=s((e,t,n)=>n.reduce(e,t)),Y=s((e,t,n)=>{for(let r in n)t=e(t,n[r],r);return t}),Z=s((e,t,n)=>ge(...N(pe(A(e)),n))(t)),$=s((e,t,n)=>n.reduceRight(e,t)),_=s((e,t,n)=>he(...N(pe(A(e)),n))(t)),ee=s((e,t,n)=>n.replace(e,t)),te=s((e,t)=>t.slice(0).sort(e)),ne=s((e,t)=>te(ae(n,[e,e]),t)),re=s((e,t)=>t.split(e)),ie=s((e,t)=>(e(t),t)),le=s((e,t)=>e.test(t)),oe=s((e,t)=>Promise.resolve(t).then(e)),ce=s((e,t)=>t(e)),pe=F(1),se=()=>{},ue=s((e,t,n)=>e(n)?n:t(n)),ae=s((e,t)=>o(ye(f(e),N(u(t))))),de=s((e,t,n)=>e(n)?t(n):n),fe=s((e,t)=>{const n={};for(let r=l(e);r--;)void 0!==t[r]&&(n[e[r]]=t[r]);return n}),ye=o(A($(ce))),he=o(A($(A(oe)))),me=o(A(X(ce))),ge=o(A(X(A(oe)))),je=ye($(ce,se),N(f(E))),ke=de(Array.isArray,X((e,t)=>g(e,ke(t)),[])),ve=s((e,t)=>N(S(e),t)),Pe=s((e,t,n)=>n.slice(e,t)),be=S(0),Oe=Pe(0,-1),Re=ye(be,Pe(-1,void 0)),qe=Pe(1,1/0),Ae=Pe(0),Be=Y((e,t,n)=>d(n,e),[]),Ee=Y(A(d),[]),xe=s((e,t)=>X((e=>(t,n)=>y(e(n),n,t))(e),{},t)),we=s((e,t)=>ye(Ee,xe(e))(t));t(e,{add:a,append:d,apply:f,assoc:y,assocPath:h,call:m,compose:ye,composeP:he,concat:g,cond:je,constant:e=>()=>e,converge:j,curry:s,curryN:p,defaultTo:k,dissoc:v,dissocPath:P,either:b,evolve:O,filter:R,find:q,flatten:ke,flip:A,head:be,identity:B,ifElse:E,indexBy:xe,init:Oe,is:x,join:w,juxt:z,keys:Be,last:Re,length:l,map:N,mapObj:T,match:W,merge:C,multiply:D,nAry:F,not:e=>!e,objOf:G,omit:H,partial:I,partialRight:J,path:K,pathEq:L,pick:M,pipe:me,pipeP:ge,pluck:ve,prepend:Q,prop:S,propEq:U,props:V,reduce:X,reduceObj:Y,reduceP:Z,reduceRight:$,reduceRightP:_,replace:ee,slice:Pe,sort:te,sortBy:ne,split:re,tail:qe,take:Ae,tap:ie,test:le,then:oe,thrush:ce,unapply:o,unary:pe,uniqBy:we,unit:se,unless:ue,useWith:ae,values:Ee,when:de,zipObj:fe})}("undefined"==typeof tinyfunk?tinyfunk={}:tinyfunk);
2 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@articulate/spy@^0.0.1":
6 | version "0.0.1"
7 | resolved "https://registry.yarnpkg.com/@articulate/spy/-/spy-0.0.1.tgz#2da9fdb919075fa5fc3868017e17b43b8528a399"
8 | integrity sha512-Ewt95Ba4Kg/n28OMqm/bfUOeq7vURjYL1EXmPOVzqMPPG1tBGPcEftQzlcIb+cz9rNh/5d7uxdPo9eqD8x5hXg==
9 |
10 | acorn-jsx@^3.0.0:
11 | version "3.0.1"
12 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
13 | integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=
14 | dependencies:
15 | acorn "^3.0.4"
16 |
17 | acorn@^3.0.4:
18 | version "3.3.0"
19 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
20 | integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
21 |
22 | acorn@^5.1.1:
23 | version "5.1.2"
24 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7"
25 | integrity sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==
26 |
27 | ajv-keywords@^1.0.0:
28 | version "1.5.1"
29 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
30 | integrity sha1-MU3QpLM2j609/NxU7eYXG4htrzw=
31 |
32 | ajv@^4.7.0:
33 | version "4.11.8"
34 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
35 | integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=
36 | dependencies:
37 | co "^4.6.0"
38 | json-stable-stringify "^1.0.1"
39 |
40 | ajv@^5.2.0:
41 | version "5.2.2"
42 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39"
43 | integrity sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=
44 | dependencies:
45 | co "^4.6.0"
46 | fast-deep-equal "^1.0.0"
47 | json-schema-traverse "^0.3.0"
48 | json-stable-stringify "^1.0.1"
49 |
50 | align-text@^0.1.1, align-text@^0.1.3:
51 | version "0.1.4"
52 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
53 | integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
54 | dependencies:
55 | kind-of "^3.0.2"
56 | longest "^1.0.1"
57 | repeat-string "^1.5.2"
58 |
59 | amdefine@>=0.0.4:
60 | version "1.0.1"
61 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
62 | integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
63 |
64 | ansi-escapes@^3.0.0:
65 | version "3.0.0"
66 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
67 | integrity sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==
68 |
69 | ansi-regex@^2.0.0:
70 | version "2.1.1"
71 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
72 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
73 |
74 | ansi-regex@^3.0.0:
75 | version "3.0.0"
76 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
77 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
78 |
79 | ansi-styles@^2.2.1:
80 | version "2.2.1"
81 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
82 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
83 |
84 | ansi-styles@^3.1.0:
85 | version "3.2.0"
86 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
87 | integrity sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==
88 | dependencies:
89 | color-convert "^1.9.0"
90 |
91 | append-transform@^0.4.0:
92 | version "0.4.0"
93 | resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
94 | integrity sha1-126/jKlNJ24keja61EpLdKthGZE=
95 | dependencies:
96 | default-require-extensions "^1.0.0"
97 |
98 | archy@^1.0.0:
99 | version "1.0.0"
100 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
101 | integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=
102 |
103 | argparse@^1.0.7:
104 | version "1.0.9"
105 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
106 | integrity sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=
107 | dependencies:
108 | sprintf-js "~1.0.2"
109 |
110 | arr-diff@^2.0.0:
111 | version "2.0.0"
112 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
113 | integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
114 | dependencies:
115 | arr-flatten "^1.0.1"
116 |
117 | arr-flatten@^1.0.1:
118 | version "1.1.0"
119 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
120 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
121 |
122 | array-find-index@^1.0.1:
123 | version "1.0.2"
124 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
125 | integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
126 |
127 | array-union@^1.0.1:
128 | version "1.0.2"
129 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
130 | integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
131 | dependencies:
132 | array-uniq "^1.0.1"
133 |
134 | array-uniq@^1.0.1:
135 | version "1.0.3"
136 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
137 | integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
138 |
139 | array-unique@^0.2.1:
140 | version "0.2.1"
141 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
142 | integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
143 |
144 | arrify@^1.0.0, arrify@^1.0.1:
145 | version "1.0.1"
146 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
147 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
148 |
149 | asn1@~0.2.3:
150 | version "0.2.3"
151 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
152 | integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=
153 |
154 | assert-plus@1.0.0, assert-plus@^1.0.0:
155 | version "1.0.0"
156 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
157 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
158 |
159 | assert-plus@^0.2.0:
160 | version "0.2.0"
161 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
162 | integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ=
163 |
164 | assertion-error@^1.0.1:
165 | version "1.0.2"
166 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
167 | integrity sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=
168 |
169 | async@^1.4.0:
170 | version "1.5.2"
171 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
172 | integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
173 |
174 | asynckit@^0.4.0:
175 | version "0.4.0"
176 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
177 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
178 |
179 | aws-sign2@~0.6.0:
180 | version "0.6.0"
181 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
182 | integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8=
183 |
184 | aws4@^1.2.1:
185 | version "1.6.0"
186 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
187 | integrity sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=
188 |
189 | babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
190 | version "6.26.0"
191 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
192 | integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
193 | dependencies:
194 | chalk "^1.1.3"
195 | esutils "^2.0.2"
196 | js-tokens "^3.0.2"
197 |
198 | babel-generator@^6.18.0:
199 | version "6.26.0"
200 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5"
201 | integrity sha1-rBriAHC3n248odMmlhMFN3TyDcU=
202 | dependencies:
203 | babel-messages "^6.23.0"
204 | babel-runtime "^6.26.0"
205 | babel-types "^6.26.0"
206 | detect-indent "^4.0.0"
207 | jsesc "^1.3.0"
208 | lodash "^4.17.4"
209 | source-map "^0.5.6"
210 | trim-right "^1.0.1"
211 |
212 | babel-messages@^6.23.0:
213 | version "6.23.0"
214 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
215 | integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=
216 | dependencies:
217 | babel-runtime "^6.22.0"
218 |
219 | babel-runtime@^6.22.0, babel-runtime@^6.26.0:
220 | version "6.26.0"
221 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
222 | integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
223 | dependencies:
224 | core-js "^2.4.0"
225 | regenerator-runtime "^0.11.0"
226 |
227 | babel-template@^6.16.0:
228 | version "6.26.0"
229 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
230 | integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=
231 | dependencies:
232 | babel-runtime "^6.26.0"
233 | babel-traverse "^6.26.0"
234 | babel-types "^6.26.0"
235 | babylon "^6.18.0"
236 | lodash "^4.17.4"
237 |
238 | babel-traverse@^6.18.0, babel-traverse@^6.26.0:
239 | version "6.26.0"
240 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
241 | integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
242 | dependencies:
243 | babel-code-frame "^6.26.0"
244 | babel-messages "^6.23.0"
245 | babel-runtime "^6.26.0"
246 | babel-types "^6.26.0"
247 | babylon "^6.18.0"
248 | debug "^2.6.8"
249 | globals "^9.18.0"
250 | invariant "^2.2.2"
251 | lodash "^4.17.4"
252 |
253 | babel-types@^6.18.0, babel-types@^6.26.0:
254 | version "6.26.0"
255 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
256 | integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
257 | dependencies:
258 | babel-runtime "^6.26.0"
259 | esutils "^2.0.2"
260 | lodash "^4.17.4"
261 | to-fast-properties "^1.0.3"
262 |
263 | babylon@^6.18.0:
264 | version "6.18.0"
265 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
266 | integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
267 |
268 | balanced-match@^1.0.0:
269 | version "1.0.0"
270 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
271 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
272 |
273 | bcrypt-pbkdf@^1.0.0:
274 | version "1.0.1"
275 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
276 | integrity sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=
277 | dependencies:
278 | tweetnacl "^0.14.3"
279 |
280 | boom@2.x.x:
281 | version "2.10.1"
282 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
283 | integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=
284 | dependencies:
285 | hoek "2.x.x"
286 |
287 | brace-expansion@^1.1.7:
288 | version "1.1.8"
289 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
290 | integrity sha1-wHshHHyVLsH479Uad+8NHTmQopI=
291 | dependencies:
292 | balanced-match "^1.0.0"
293 | concat-map "0.0.1"
294 |
295 | braces@^1.8.2:
296 | version "1.8.5"
297 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
298 | integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
299 | dependencies:
300 | expand-range "^1.8.1"
301 | preserve "^0.2.0"
302 | repeat-element "^1.1.2"
303 |
304 | browser-stdout@1.3.0:
305 | version "1.3.0"
306 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
307 | integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8=
308 |
309 | builtin-modules@^1.0.0:
310 | version "1.1.1"
311 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
312 | integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
313 |
314 | caching-transform@^1.0.0:
315 | version "1.0.1"
316 | resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
317 | integrity sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=
318 | dependencies:
319 | md5-hex "^1.2.0"
320 | mkdirp "^0.5.1"
321 | write-file-atomic "^1.1.4"
322 |
323 | caller-path@^0.1.0:
324 | version "0.1.0"
325 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
326 | integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=
327 | dependencies:
328 | callsites "^0.2.0"
329 |
330 | callsites@^0.2.0:
331 | version "0.2.0"
332 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
333 | integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
334 |
335 | camelcase-keys@^2.0.0:
336 | version "2.1.0"
337 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
338 | integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
339 | dependencies:
340 | camelcase "^2.0.0"
341 | map-obj "^1.0.0"
342 |
343 | camelcase@^1.0.2:
344 | version "1.2.1"
345 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
346 | integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
347 |
348 | camelcase@^2.0.0:
349 | version "2.1.1"
350 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
351 | integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
352 |
353 | camelcase@^3.0.0:
354 | version "3.0.0"
355 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
356 | integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
357 |
358 | camelcase@^4.1.0:
359 | version "4.1.0"
360 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
361 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
362 |
363 | caseless@~0.11.0:
364 | version "0.11.0"
365 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
366 | integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c=
367 |
368 | center-align@^0.1.1:
369 | version "0.1.3"
370 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
371 | integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
372 | dependencies:
373 | align-text "^0.1.3"
374 | lazy-cache "^1.0.3"
375 |
376 | chai@^4.1.2:
377 | version "4.1.2"
378 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
379 | integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=
380 | dependencies:
381 | assertion-error "^1.0.1"
382 | check-error "^1.0.1"
383 | deep-eql "^3.0.0"
384 | get-func-name "^2.0.0"
385 | pathval "^1.0.0"
386 | type-detect "^4.0.0"
387 |
388 | chalk@^1.1.1, chalk@^1.1.3:
389 | version "1.1.3"
390 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
391 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
392 | dependencies:
393 | ansi-styles "^2.2.1"
394 | escape-string-regexp "^1.0.2"
395 | has-ansi "^2.0.0"
396 | strip-ansi "^3.0.0"
397 | supports-color "^2.0.0"
398 |
399 | chalk@^2.0.0, chalk@^2.1.0:
400 | version "2.1.0"
401 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
402 | integrity sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==
403 | dependencies:
404 | ansi-styles "^3.1.0"
405 | escape-string-regexp "^1.0.5"
406 | supports-color "^4.0.0"
407 |
408 | check-error@^1.0.1:
409 | version "1.0.2"
410 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
411 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
412 |
413 | circular-json@^0.3.1:
414 | version "0.3.3"
415 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
416 | integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
417 |
418 | cli-cursor@^2.1.0:
419 | version "2.1.0"
420 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
421 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
422 | dependencies:
423 | restore-cursor "^2.0.0"
424 |
425 | cli-width@^2.0.0:
426 | version "2.2.0"
427 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
428 | integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
429 |
430 | cliui@^2.1.0:
431 | version "2.1.0"
432 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
433 | integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
434 | dependencies:
435 | center-align "^0.1.1"
436 | right-align "^0.1.1"
437 | wordwrap "0.0.2"
438 |
439 | cliui@^3.2.0:
440 | version "3.2.0"
441 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
442 | integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
443 | dependencies:
444 | string-width "^1.0.1"
445 | strip-ansi "^3.0.1"
446 | wrap-ansi "^2.0.0"
447 |
448 | co@^4.6.0:
449 | version "4.6.0"
450 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
451 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
452 |
453 | code-point-at@^1.0.0:
454 | version "1.1.0"
455 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
456 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
457 |
458 | color-convert@^1.9.0:
459 | version "1.9.0"
460 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
461 | integrity sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=
462 | dependencies:
463 | color-name "^1.1.1"
464 |
465 | color-name@^1.1.1:
466 | version "1.1.3"
467 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
468 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
469 |
470 | combined-stream@^1.0.5, combined-stream@~1.0.5:
471 | version "1.0.5"
472 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
473 | integrity sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=
474 | dependencies:
475 | delayed-stream "~1.0.0"
476 |
477 | commander@2.9.0:
478 | version "2.9.0"
479 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
480 | integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=
481 | dependencies:
482 | graceful-readlink ">= 1.0.0"
483 |
484 | commander@^2.9.0:
485 | version "2.11.0"
486 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
487 | integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==
488 |
489 | commander@~2.13.0:
490 | version "2.13.0"
491 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
492 | integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
493 |
494 | commondir@^1.0.1:
495 | version "1.0.1"
496 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
497 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
498 |
499 | concat-map@0.0.1:
500 | version "0.0.1"
501 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
502 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
503 |
504 | concat-stream@^1.6.0:
505 | version "1.6.0"
506 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
507 | integrity sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=
508 | dependencies:
509 | inherits "^2.0.3"
510 | readable-stream "^2.2.2"
511 | typedarray "^0.0.6"
512 |
513 | convert-source-map@^1.3.0:
514 | version "1.5.0"
515 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
516 | integrity sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=
517 |
518 | core-js@^2.4.0:
519 | version "2.5.1"
520 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
521 | integrity sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=
522 |
523 | core-util-is@1.0.2, core-util-is@~1.0.0:
524 | version "1.0.2"
525 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
526 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
527 |
528 | coveralls@^2.13.1:
529 | version "2.13.1"
530 | resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.13.1.tgz#d70bb9acc1835ec4f063ff9dac5423c17b11f178"
531 | integrity sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=
532 | dependencies:
533 | js-yaml "3.6.1"
534 | lcov-parse "0.0.10"
535 | log-driver "1.2.5"
536 | minimist "1.2.0"
537 | request "2.79.0"
538 |
539 | cross-spawn@^4:
540 | version "4.0.2"
541 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
542 | integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=
543 | dependencies:
544 | lru-cache "^4.0.1"
545 | which "^1.2.9"
546 |
547 | cross-spawn@^5.0.1, cross-spawn@^5.1.0:
548 | version "5.1.0"
549 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
550 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
551 | dependencies:
552 | lru-cache "^4.0.1"
553 | shebang-command "^1.2.0"
554 | which "^1.2.9"
555 |
556 | cryptiles@2.x.x:
557 | version "2.0.5"
558 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
559 | integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=
560 | dependencies:
561 | boom "2.x.x"
562 |
563 | currently-unhandled@^0.4.1:
564 | version "0.4.1"
565 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
566 | integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
567 | dependencies:
568 | array-find-index "^1.0.1"
569 |
570 | dashdash@^1.12.0:
571 | version "1.14.1"
572 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
573 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
574 | dependencies:
575 | assert-plus "^1.0.0"
576 |
577 | debug-log@^1.0.1:
578 | version "1.0.1"
579 | resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
580 | integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=
581 |
582 | debug@2.6.8:
583 | version "2.6.8"
584 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
585 | integrity sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=
586 | dependencies:
587 | ms "2.0.0"
588 |
589 | debug@^2.6.3, debug@^2.6.8:
590 | version "2.6.9"
591 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
592 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
593 | dependencies:
594 | ms "2.0.0"
595 |
596 | debug@^3.0.1:
597 | version "3.0.1"
598 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.0.1.tgz#0564c612b521dc92d9f2988f0549e34f9c98db64"
599 | integrity sha512-6nVc6S36qbt/mutyt+UGMnawAMrPDZUPQjRZI3FS9tCtDRhvxJbK79unYBLPi+z5SLXQ3ftoVBFCblQtNSls8w==
600 | dependencies:
601 | ms "2.0.0"
602 |
603 | decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
604 | version "1.2.0"
605 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
606 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
607 |
608 | deep-eql@^3.0.0:
609 | version "3.0.1"
610 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
611 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
612 | dependencies:
613 | type-detect "^4.0.0"
614 |
615 | deep-is@~0.1.3:
616 | version "0.1.3"
617 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
618 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
619 |
620 | default-require-extensions@^1.0.0:
621 | version "1.0.0"
622 | resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
623 | integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=
624 | dependencies:
625 | strip-bom "^2.0.0"
626 |
627 | del@^2.0.2:
628 | version "2.2.2"
629 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
630 | integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=
631 | dependencies:
632 | globby "^5.0.0"
633 | is-path-cwd "^1.0.0"
634 | is-path-in-cwd "^1.0.0"
635 | object-assign "^4.0.1"
636 | pify "^2.0.0"
637 | pinkie-promise "^2.0.0"
638 | rimraf "^2.2.8"
639 |
640 | delayed-stream@~1.0.0:
641 | version "1.0.0"
642 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
643 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
644 |
645 | detect-indent@^4.0.0:
646 | version "4.0.0"
647 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
648 | integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg=
649 | dependencies:
650 | repeating "^2.0.0"
651 |
652 | diff@3.2.0:
653 | version "3.2.0"
654 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
655 | integrity sha1-yc45Okt8vQsFinJck98pkCeGj/k=
656 |
657 | doctrine@^2.0.0:
658 | version "2.0.0"
659 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
660 | integrity sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=
661 | dependencies:
662 | esutils "^2.0.2"
663 | isarray "^1.0.0"
664 |
665 | duplexer@^0.1.1:
666 | version "0.1.1"
667 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
668 | integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
669 |
670 | ecc-jsbn@~0.1.1:
671 | version "0.1.1"
672 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
673 | integrity sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=
674 | dependencies:
675 | jsbn "~0.1.0"
676 |
677 | error-ex@^1.2.0:
678 | version "1.3.1"
679 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
680 | integrity sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=
681 | dependencies:
682 | is-arrayish "^0.2.1"
683 |
684 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
685 | version "1.0.5"
686 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
687 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
688 |
689 | eslint-scope@^3.7.1:
690 | version "3.7.1"
691 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
692 | integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=
693 | dependencies:
694 | esrecurse "^4.1.0"
695 | estraverse "^4.1.1"
696 |
697 | eslint@^4.7.2:
698 | version "4.7.2"
699 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.7.2.tgz#ff6f5f5193848a27ee9b627be3e73fb9cb5e662e"
700 | integrity sha1-/29fUZOEiifum2J74+c/ucteZi4=
701 | dependencies:
702 | ajv "^5.2.0"
703 | babel-code-frame "^6.22.0"
704 | chalk "^2.1.0"
705 | concat-stream "^1.6.0"
706 | cross-spawn "^5.1.0"
707 | debug "^3.0.1"
708 | doctrine "^2.0.0"
709 | eslint-scope "^3.7.1"
710 | espree "^3.5.1"
711 | esquery "^1.0.0"
712 | estraverse "^4.2.0"
713 | esutils "^2.0.2"
714 | file-entry-cache "^2.0.0"
715 | functional-red-black-tree "^1.0.1"
716 | glob "^7.1.2"
717 | globals "^9.17.0"
718 | ignore "^3.3.3"
719 | imurmurhash "^0.1.4"
720 | inquirer "^3.0.6"
721 | is-resolvable "^1.0.0"
722 | js-yaml "^3.9.1"
723 | json-stable-stringify "^1.0.1"
724 | levn "^0.3.0"
725 | lodash "^4.17.4"
726 | minimatch "^3.0.2"
727 | mkdirp "^0.5.1"
728 | natural-compare "^1.4.0"
729 | optionator "^0.8.2"
730 | path-is-inside "^1.0.2"
731 | pluralize "^7.0.0"
732 | progress "^2.0.0"
733 | require-uncached "^1.0.3"
734 | semver "^5.3.0"
735 | strip-ansi "^4.0.0"
736 | strip-json-comments "~2.0.1"
737 | table "^4.0.1"
738 | text-table "~0.2.0"
739 |
740 | espree@^3.5.1:
741 | version "3.5.1"
742 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e"
743 | integrity sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=
744 | dependencies:
745 | acorn "^5.1.1"
746 | acorn-jsx "^3.0.0"
747 |
748 | esprima@^2.6.0:
749 | version "2.7.3"
750 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
751 | integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=
752 |
753 | esprima@^4.0.0:
754 | version "4.0.0"
755 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
756 | integrity sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==
757 |
758 | esquery@^1.0.0:
759 | version "1.0.0"
760 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
761 | integrity sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=
762 | dependencies:
763 | estraverse "^4.0.0"
764 |
765 | esrecurse@^4.1.0:
766 | version "4.2.0"
767 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
768 | integrity sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=
769 | dependencies:
770 | estraverse "^4.1.0"
771 | object-assign "^4.0.1"
772 |
773 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
774 | version "4.2.0"
775 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
776 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
777 |
778 | esutils@^2.0.2:
779 | version "2.0.2"
780 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
781 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
782 |
783 | execa@^0.7.0:
784 | version "0.7.0"
785 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
786 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
787 | dependencies:
788 | cross-spawn "^5.0.1"
789 | get-stream "^3.0.0"
790 | is-stream "^1.1.0"
791 | npm-run-path "^2.0.0"
792 | p-finally "^1.0.0"
793 | signal-exit "^3.0.0"
794 | strip-eof "^1.0.0"
795 |
796 | expand-brackets@^0.1.4:
797 | version "0.1.5"
798 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
799 | integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
800 | dependencies:
801 | is-posix-bracket "^0.1.0"
802 |
803 | expand-range@^1.8.1:
804 | version "1.8.2"
805 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
806 | integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
807 | dependencies:
808 | fill-range "^2.1.0"
809 |
810 | extend@~3.0.0:
811 | version "3.0.1"
812 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
813 | integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=
814 |
815 | external-editor@^2.0.4:
816 | version "2.0.5"
817 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
818 | integrity sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==
819 | dependencies:
820 | iconv-lite "^0.4.17"
821 | jschardet "^1.4.2"
822 | tmp "^0.0.33"
823 |
824 | extglob@^0.3.1:
825 | version "0.3.2"
826 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
827 | integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
828 | dependencies:
829 | is-extglob "^1.0.0"
830 |
831 | extsprintf@1.3.0, extsprintf@^1.2.0:
832 | version "1.3.0"
833 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
834 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
835 |
836 | eye@^0.0.3:
837 | version "0.0.3"
838 | resolved "https://registry.yarnpkg.com/eye/-/eye-0.0.3.tgz#20a82763f19827fb9315664ce6fee381aa1959c7"
839 | integrity sha1-IKgnY/GYJ/uTFWZM5v7jgaoZWcc=
840 | dependencies:
841 | gaze "~0.3.4"
842 |
843 | fast-deep-equal@^1.0.0:
844 | version "1.0.0"
845 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
846 | integrity sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=
847 |
848 | fast-levenshtein@~2.0.4:
849 | version "2.0.6"
850 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
851 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
852 |
853 | figures@^2.0.0:
854 | version "2.0.0"
855 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
856 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
857 | dependencies:
858 | escape-string-regexp "^1.0.5"
859 |
860 | file-entry-cache@^2.0.0:
861 | version "2.0.0"
862 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
863 | integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=
864 | dependencies:
865 | flat-cache "^1.2.1"
866 | object-assign "^4.0.1"
867 |
868 | filename-regex@^2.0.0:
869 | version "2.0.1"
870 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
871 | integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
872 |
873 | fileset@~0.1.5:
874 | version "0.1.8"
875 | resolved "https://registry.yarnpkg.com/fileset/-/fileset-0.1.8.tgz#506b91a9396eaa7e32fb42a84077c7a0c736b741"
876 | integrity sha1-UGuRqTluqn4y+0KoQHfHoMc2t0E=
877 | dependencies:
878 | glob "3.x"
879 | minimatch "0.x"
880 |
881 | fill-range@^2.1.0:
882 | version "2.2.3"
883 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
884 | integrity sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=
885 | dependencies:
886 | is-number "^2.1.0"
887 | isobject "^2.0.0"
888 | randomatic "^1.1.3"
889 | repeat-element "^1.1.2"
890 | repeat-string "^1.5.2"
891 |
892 | find-cache-dir@^0.1.1:
893 | version "0.1.1"
894 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
895 | integrity sha1-yN765XyKUqinhPnjHFfHQumToLk=
896 | dependencies:
897 | commondir "^1.0.1"
898 | mkdirp "^0.5.1"
899 | pkg-dir "^1.0.0"
900 |
901 | find-up@^1.0.0:
902 | version "1.1.2"
903 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
904 | integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
905 | dependencies:
906 | path-exists "^2.0.0"
907 | pinkie-promise "^2.0.0"
908 |
909 | find-up@^2.0.0, find-up@^2.1.0:
910 | version "2.1.0"
911 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
912 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
913 | dependencies:
914 | locate-path "^2.0.0"
915 |
916 | flat-cache@^1.2.1:
917 | version "1.2.2"
918 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
919 | integrity sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=
920 | dependencies:
921 | circular-json "^0.3.1"
922 | del "^2.0.2"
923 | graceful-fs "^4.1.2"
924 | write "^0.2.1"
925 |
926 | for-in@^1.0.1:
927 | version "1.0.2"
928 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
929 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
930 |
931 | for-own@^0.1.4:
932 | version "0.1.5"
933 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
934 | integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
935 | dependencies:
936 | for-in "^1.0.1"
937 |
938 | foreground-child@^1.5.3, foreground-child@^1.5.6:
939 | version "1.5.6"
940 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
941 | integrity sha1-T9ca0t/elnibmApcCilZN8svXOk=
942 | dependencies:
943 | cross-spawn "^4"
944 | signal-exit "^3.0.0"
945 |
946 | forever-agent@~0.6.1:
947 | version "0.6.1"
948 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
949 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
950 |
951 | form-data@~2.1.1:
952 | version "2.1.4"
953 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
954 | integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=
955 | dependencies:
956 | asynckit "^0.4.0"
957 | combined-stream "^1.0.5"
958 | mime-types "^2.1.12"
959 |
960 | fs.realpath@^1.0.0:
961 | version "1.0.0"
962 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
963 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
964 |
965 | functional-red-black-tree@^1.0.1:
966 | version "1.0.1"
967 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
968 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
969 |
970 | gaze@~0.3.4:
971 | version "0.3.4"
972 | resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.3.4.tgz#5f94bdda0afe53bc710969bcd6f282548d60c279"
973 | integrity sha1-X5S92gr+U7xxCWm81vKCVI1gwnk=
974 | dependencies:
975 | fileset "~0.1.5"
976 | minimatch "~0.2.9"
977 |
978 | generate-function@^2.0.0:
979 | version "2.0.0"
980 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
981 | integrity sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=
982 |
983 | generate-object-property@^1.1.0:
984 | version "1.2.0"
985 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
986 | integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=
987 | dependencies:
988 | is-property "^1.0.0"
989 |
990 | get-caller-file@^1.0.1:
991 | version "1.0.2"
992 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
993 | integrity sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=
994 |
995 | get-func-name@^2.0.0:
996 | version "2.0.0"
997 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
998 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
999 |
1000 | get-stdin@^4.0.1:
1001 | version "4.0.1"
1002 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
1003 | integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
1004 |
1005 | get-stream@^3.0.0:
1006 | version "3.0.0"
1007 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
1008 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
1009 |
1010 | getpass@^0.1.1:
1011 | version "0.1.7"
1012 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
1013 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
1014 | dependencies:
1015 | assert-plus "^1.0.0"
1016 |
1017 | glob-base@^0.3.0:
1018 | version "0.3.0"
1019 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
1020 | integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
1021 | dependencies:
1022 | glob-parent "^2.0.0"
1023 | is-glob "^2.0.0"
1024 |
1025 | glob-parent@^2.0.0:
1026 | version "2.0.0"
1027 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
1028 | integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
1029 | dependencies:
1030 | is-glob "^2.0.0"
1031 |
1032 | glob@3.x:
1033 | version "3.2.11"
1034 | resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d"
1035 | integrity sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=
1036 | dependencies:
1037 | inherits "2"
1038 | minimatch "0.3"
1039 |
1040 | glob@7.1.1:
1041 | version "7.1.1"
1042 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
1043 | integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg=
1044 | dependencies:
1045 | fs.realpath "^1.0.0"
1046 | inflight "^1.0.4"
1047 | inherits "2"
1048 | minimatch "^3.0.2"
1049 | once "^1.3.0"
1050 | path-is-absolute "^1.0.0"
1051 |
1052 | glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.2:
1053 | version "7.1.2"
1054 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
1055 | integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
1056 | dependencies:
1057 | fs.realpath "^1.0.0"
1058 | inflight "^1.0.4"
1059 | inherits "2"
1060 | minimatch "^3.0.4"
1061 | once "^1.3.0"
1062 | path-is-absolute "^1.0.0"
1063 |
1064 | globals@^9.17.0, globals@^9.18.0:
1065 | version "9.18.0"
1066 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
1067 | integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
1068 |
1069 | globby@^5.0.0:
1070 | version "5.0.0"
1071 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
1072 | integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=
1073 | dependencies:
1074 | array-union "^1.0.1"
1075 | arrify "^1.0.0"
1076 | glob "^7.0.3"
1077 | object-assign "^4.0.1"
1078 | pify "^2.0.0"
1079 | pinkie-promise "^2.0.0"
1080 |
1081 | graceful-fs@^4.1.11, graceful-fs@^4.1.2:
1082 | version "4.1.11"
1083 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
1084 | integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
1085 |
1086 | "graceful-readlink@>= 1.0.0":
1087 | version "1.0.1"
1088 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
1089 | integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
1090 |
1091 | growl@1.9.2:
1092 | version "1.9.2"
1093 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
1094 | integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=
1095 |
1096 | gzip-size-cli@^2.1.0:
1097 | version "2.1.0"
1098 | resolved "https://registry.yarnpkg.com/gzip-size-cli/-/gzip-size-cli-2.1.0.tgz#78a1fc3dc399e9d39d9f1f63a7aae38a817e917d"
1099 | integrity sha512-2aFj16SGdAD5FTTqJe4Wdzs5d05MnHYLr5lwmxdFjiWzJWhUI+L48beS0Vmlg6s9Kqe+bfQ42WskPZdzTwPH4w==
1100 | dependencies:
1101 | gzip-size "^4.0.0"
1102 | meow "^3.7.0"
1103 | pretty-bytes "^4.0.2"
1104 |
1105 | gzip-size@^4.0.0:
1106 | version "4.0.0"
1107 | resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.0.0.tgz#a80e13e18938bcb2e6702fec606f5cf8b666db3a"
1108 | integrity sha512-6SWfFRd8r8VTKTpJCR7h/T6IbCaK+jM/n2gB1+pV3IrKcrLO1WTb8ZWdaRy1T/nwOz80cp4gAJf8sujpZxfA1w==
1109 | dependencies:
1110 | duplexer "^0.1.1"
1111 | pify "^3.0.0"
1112 |
1113 | handlebars@^4.0.3:
1114 | version "4.0.10"
1115 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f"
1116 | integrity sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=
1117 | dependencies:
1118 | async "^1.4.0"
1119 | optimist "^0.6.1"
1120 | source-map "^0.4.4"
1121 | optionalDependencies:
1122 | uglify-js "^2.6"
1123 |
1124 | har-validator@~2.0.6:
1125 | version "2.0.6"
1126 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
1127 | integrity sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=
1128 | dependencies:
1129 | chalk "^1.1.1"
1130 | commander "^2.9.0"
1131 | is-my-json-valid "^2.12.4"
1132 | pinkie-promise "^2.0.0"
1133 |
1134 | has-ansi@^2.0.0:
1135 | version "2.0.0"
1136 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
1137 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
1138 | dependencies:
1139 | ansi-regex "^2.0.0"
1140 |
1141 | has-flag@^1.0.0:
1142 | version "1.0.0"
1143 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
1144 | integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
1145 |
1146 | has-flag@^2.0.0:
1147 | version "2.0.0"
1148 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
1149 | integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=
1150 |
1151 | hawk@~3.1.3:
1152 | version "3.1.3"
1153 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
1154 | integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=
1155 | dependencies:
1156 | boom "2.x.x"
1157 | cryptiles "2.x.x"
1158 | hoek "2.x.x"
1159 | sntp "1.x.x"
1160 |
1161 | he@1.1.1:
1162 | version "1.1.1"
1163 | resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
1164 | integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
1165 |
1166 | hoek@2.x.x:
1167 | version "2.16.3"
1168 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
1169 | integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=
1170 |
1171 | hosted-git-info@^2.1.4:
1172 | version "2.5.0"
1173 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
1174 | integrity sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==
1175 |
1176 | http-signature@~1.1.0:
1177 | version "1.1.1"
1178 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
1179 | integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=
1180 | dependencies:
1181 | assert-plus "^0.2.0"
1182 | jsprim "^1.2.2"
1183 | sshpk "^1.7.0"
1184 |
1185 | iconv-lite@^0.4.17:
1186 | version "0.4.19"
1187 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
1188 | integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==
1189 |
1190 | ignore@^3.3.3:
1191 | version "3.3.5"
1192 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
1193 | integrity sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==
1194 |
1195 | imurmurhash@^0.1.4:
1196 | version "0.1.4"
1197 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1198 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
1199 |
1200 | indent-string@^2.1.0:
1201 | version "2.1.0"
1202 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
1203 | integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
1204 | dependencies:
1205 | repeating "^2.0.0"
1206 |
1207 | inflight@^1.0.4:
1208 | version "1.0.6"
1209 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1210 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1211 | dependencies:
1212 | once "^1.3.0"
1213 | wrappy "1"
1214 |
1215 | inherits@2, inherits@^2.0.3, inherits@~2.0.3:
1216 | version "2.0.3"
1217 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
1218 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
1219 |
1220 | inquirer@^3.0.6:
1221 | version "3.3.0"
1222 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
1223 | integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==
1224 | dependencies:
1225 | ansi-escapes "^3.0.0"
1226 | chalk "^2.0.0"
1227 | cli-cursor "^2.1.0"
1228 | cli-width "^2.0.0"
1229 | external-editor "^2.0.4"
1230 | figures "^2.0.0"
1231 | lodash "^4.3.0"
1232 | mute-stream "0.0.7"
1233 | run-async "^2.2.0"
1234 | rx-lite "^4.0.8"
1235 | rx-lite-aggregates "^4.0.8"
1236 | string-width "^2.1.0"
1237 | strip-ansi "^4.0.0"
1238 | through "^2.3.6"
1239 |
1240 | invariant@^2.2.2:
1241 | version "2.2.2"
1242 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
1243 | integrity sha1-nh9WrArNtr8wMwbzOL47IErmA2A=
1244 | dependencies:
1245 | loose-envify "^1.0.0"
1246 |
1247 | invert-kv@^1.0.0:
1248 | version "1.0.0"
1249 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
1250 | integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
1251 |
1252 | is-arrayish@^0.2.1:
1253 | version "0.2.1"
1254 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1255 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
1256 |
1257 | is-buffer@^1.1.5:
1258 | version "1.1.5"
1259 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
1260 | integrity sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=
1261 |
1262 | is-builtin-module@^1.0.0:
1263 | version "1.0.0"
1264 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
1265 | integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
1266 | dependencies:
1267 | builtin-modules "^1.0.0"
1268 |
1269 | is-dotfile@^1.0.0:
1270 | version "1.0.3"
1271 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
1272 | integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
1273 |
1274 | is-equal-shallow@^0.1.3:
1275 | version "0.1.3"
1276 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
1277 | integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
1278 | dependencies:
1279 | is-primitive "^2.0.0"
1280 |
1281 | is-extendable@^0.1.1:
1282 | version "0.1.1"
1283 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1284 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
1285 |
1286 | is-extglob@^1.0.0:
1287 | version "1.0.0"
1288 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
1289 | integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
1290 |
1291 | is-finite@^1.0.0:
1292 | version "1.0.2"
1293 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
1294 | integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
1295 | dependencies:
1296 | number-is-nan "^1.0.0"
1297 |
1298 | is-fullwidth-code-point@^1.0.0:
1299 | version "1.0.0"
1300 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
1301 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
1302 | dependencies:
1303 | number-is-nan "^1.0.0"
1304 |
1305 | is-fullwidth-code-point@^2.0.0:
1306 | version "2.0.0"
1307 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
1308 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
1309 |
1310 | is-glob@^2.0.0, is-glob@^2.0.1:
1311 | version "2.0.1"
1312 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
1313 | integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
1314 | dependencies:
1315 | is-extglob "^1.0.0"
1316 |
1317 | is-my-json-valid@^2.12.4:
1318 | version "2.16.1"
1319 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11"
1320 | integrity sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==
1321 | dependencies:
1322 | generate-function "^2.0.0"
1323 | generate-object-property "^1.1.0"
1324 | jsonpointer "^4.0.0"
1325 | xtend "^4.0.0"
1326 |
1327 | is-number@^2.1.0:
1328 | version "2.1.0"
1329 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
1330 | integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
1331 | dependencies:
1332 | kind-of "^3.0.2"
1333 |
1334 | is-number@^3.0.0:
1335 | version "3.0.0"
1336 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
1337 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
1338 | dependencies:
1339 | kind-of "^3.0.2"
1340 |
1341 | is-path-cwd@^1.0.0:
1342 | version "1.0.0"
1343 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
1344 | integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
1345 |
1346 | is-path-in-cwd@^1.0.0:
1347 | version "1.0.0"
1348 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
1349 | integrity sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=
1350 | dependencies:
1351 | is-path-inside "^1.0.0"
1352 |
1353 | is-path-inside@^1.0.0:
1354 | version "1.0.0"
1355 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
1356 | integrity sha1-/AbloWg/vaE95mev9xe7wQpI838=
1357 | dependencies:
1358 | path-is-inside "^1.0.1"
1359 |
1360 | is-posix-bracket@^0.1.0:
1361 | version "0.1.1"
1362 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
1363 | integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
1364 |
1365 | is-primitive@^2.0.0:
1366 | version "2.0.0"
1367 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
1368 | integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
1369 |
1370 | is-promise@^2.1.0:
1371 | version "2.1.0"
1372 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
1373 | integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
1374 |
1375 | is-property@^1.0.0:
1376 | version "1.0.2"
1377 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
1378 | integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=
1379 |
1380 | is-resolvable@^1.0.0:
1381 | version "1.0.0"
1382 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
1383 | integrity sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=
1384 | dependencies:
1385 | tryit "^1.0.1"
1386 |
1387 | is-stream@^1.1.0:
1388 | version "1.1.0"
1389 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
1390 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
1391 |
1392 | is-typedarray@~1.0.0:
1393 | version "1.0.0"
1394 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1395 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
1396 |
1397 | is-utf8@^0.2.0:
1398 | version "0.2.1"
1399 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
1400 | integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
1401 |
1402 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
1403 | version "1.0.0"
1404 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1405 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
1406 |
1407 | isexe@^2.0.0:
1408 | version "2.0.0"
1409 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1410 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1411 |
1412 | isobject@^2.0.0:
1413 | version "2.1.0"
1414 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1415 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
1416 | dependencies:
1417 | isarray "1.0.0"
1418 |
1419 | isstream@~0.1.2:
1420 | version "0.1.2"
1421 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
1422 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
1423 |
1424 | istanbul-lib-coverage@^1.1.1:
1425 | version "1.1.1"
1426 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da"
1427 | integrity sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==
1428 |
1429 | istanbul-lib-hook@^1.0.7:
1430 | version "1.0.7"
1431 | resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc"
1432 | integrity sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==
1433 | dependencies:
1434 | append-transform "^0.4.0"
1435 |
1436 | istanbul-lib-instrument@^1.8.0:
1437 | version "1.8.0"
1438 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532"
1439 | integrity sha1-ZvbJQhzJ7EcE928tsIS6kHiitTI=
1440 | dependencies:
1441 | babel-generator "^6.18.0"
1442 | babel-template "^6.16.0"
1443 | babel-traverse "^6.18.0"
1444 | babel-types "^6.18.0"
1445 | babylon "^6.18.0"
1446 | istanbul-lib-coverage "^1.1.1"
1447 | semver "^5.3.0"
1448 |
1449 | istanbul-lib-report@^1.1.1:
1450 | version "1.1.1"
1451 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9"
1452 | integrity sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==
1453 | dependencies:
1454 | istanbul-lib-coverage "^1.1.1"
1455 | mkdirp "^0.5.1"
1456 | path-parse "^1.0.5"
1457 | supports-color "^3.1.2"
1458 |
1459 | istanbul-lib-source-maps@^1.2.1:
1460 | version "1.2.1"
1461 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c"
1462 | integrity sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==
1463 | dependencies:
1464 | debug "^2.6.3"
1465 | istanbul-lib-coverage "^1.1.1"
1466 | mkdirp "^0.5.1"
1467 | rimraf "^2.6.1"
1468 | source-map "^0.5.3"
1469 |
1470 | istanbul-reports@^1.1.1:
1471 | version "1.1.2"
1472 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.2.tgz#0fb2e3f6aa9922bd3ce45d05d8ab4d5e8e07bd4f"
1473 | integrity sha1-D7Lj9qqZIr085F0F2KtNXo4HvU8=
1474 | dependencies:
1475 | handlebars "^4.0.3"
1476 |
1477 | js-tokens@^3.0.0, js-tokens@^3.0.2:
1478 | version "3.0.2"
1479 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
1480 | integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
1481 |
1482 | js-yaml@3.6.1:
1483 | version "3.6.1"
1484 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30"
1485 | integrity sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=
1486 | dependencies:
1487 | argparse "^1.0.7"
1488 | esprima "^2.6.0"
1489 |
1490 | js-yaml@^3.9.1:
1491 | version "3.10.0"
1492 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
1493 | integrity sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==
1494 | dependencies:
1495 | argparse "^1.0.7"
1496 | esprima "^4.0.0"
1497 |
1498 | jsbn@~0.1.0:
1499 | version "0.1.1"
1500 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
1501 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
1502 |
1503 | jschardet@^1.4.2:
1504 | version "1.5.1"
1505 | resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9"
1506 | integrity sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==
1507 |
1508 | jsesc@^1.3.0:
1509 | version "1.3.0"
1510 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
1511 | integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
1512 |
1513 | json-schema-traverse@^0.3.0:
1514 | version "0.3.1"
1515 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
1516 | integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
1517 |
1518 | json-schema@0.2.3:
1519 | version "0.2.3"
1520 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
1521 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
1522 |
1523 | json-stable-stringify@^1.0.1:
1524 | version "1.0.1"
1525 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
1526 | integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
1527 | dependencies:
1528 | jsonify "~0.0.0"
1529 |
1530 | json-stringify-safe@~5.0.1:
1531 | version "5.0.1"
1532 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
1533 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
1534 |
1535 | json3@3.3.2:
1536 | version "3.3.2"
1537 | resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
1538 | integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
1539 |
1540 | jsonify@~0.0.0:
1541 | version "0.0.0"
1542 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
1543 | integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
1544 |
1545 | jsonpointer@^4.0.0:
1546 | version "4.0.1"
1547 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
1548 | integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk=
1549 |
1550 | jsprim@^1.2.2:
1551 | version "1.4.1"
1552 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
1553 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
1554 | dependencies:
1555 | assert-plus "1.0.0"
1556 | extsprintf "1.3.0"
1557 | json-schema "0.2.3"
1558 | verror "1.10.0"
1559 |
1560 | kind-of@^3.0.2:
1561 | version "3.2.2"
1562 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
1563 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
1564 | dependencies:
1565 | is-buffer "^1.1.5"
1566 |
1567 | kind-of@^4.0.0:
1568 | version "4.0.0"
1569 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
1570 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
1571 | dependencies:
1572 | is-buffer "^1.1.5"
1573 |
1574 | lazy-cache@^1.0.3:
1575 | version "1.0.4"
1576 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
1577 | integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
1578 |
1579 | lcid@^1.0.0:
1580 | version "1.0.0"
1581 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
1582 | integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
1583 | dependencies:
1584 | invert-kv "^1.0.0"
1585 |
1586 | lcov-parse@0.0.10:
1587 | version "0.0.10"
1588 | resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3"
1589 | integrity sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=
1590 |
1591 | levn@^0.3.0, levn@~0.3.0:
1592 | version "0.3.0"
1593 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
1594 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
1595 | dependencies:
1596 | prelude-ls "~1.1.2"
1597 | type-check "~0.3.2"
1598 |
1599 | load-json-file@^1.0.0:
1600 | version "1.1.0"
1601 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
1602 | integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
1603 | dependencies:
1604 | graceful-fs "^4.1.2"
1605 | parse-json "^2.2.0"
1606 | pify "^2.0.0"
1607 | pinkie-promise "^2.0.0"
1608 | strip-bom "^2.0.0"
1609 |
1610 | load-json-file@^2.0.0:
1611 | version "2.0.0"
1612 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
1613 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
1614 | dependencies:
1615 | graceful-fs "^4.1.2"
1616 | parse-json "^2.2.0"
1617 | pify "^2.0.0"
1618 | strip-bom "^3.0.0"
1619 |
1620 | locate-path@^2.0.0:
1621 | version "2.0.0"
1622 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
1623 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
1624 | dependencies:
1625 | p-locate "^2.0.0"
1626 | path-exists "^3.0.0"
1627 |
1628 | lodash._baseassign@^3.0.0:
1629 | version "3.2.0"
1630 | resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
1631 | integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=
1632 | dependencies:
1633 | lodash._basecopy "^3.0.0"
1634 | lodash.keys "^3.0.0"
1635 |
1636 | lodash._basecopy@^3.0.0:
1637 | version "3.0.1"
1638 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
1639 | integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=
1640 |
1641 | lodash._basecreate@^3.0.0:
1642 | version "3.0.3"
1643 | resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
1644 | integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=
1645 |
1646 | lodash._getnative@^3.0.0:
1647 | version "3.9.1"
1648 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
1649 | integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
1650 |
1651 | lodash._isiterateecall@^3.0.0:
1652 | version "3.0.9"
1653 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
1654 | integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=
1655 |
1656 | lodash.create@3.1.1:
1657 | version "3.1.1"
1658 | resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
1659 | integrity sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=
1660 | dependencies:
1661 | lodash._baseassign "^3.0.0"
1662 | lodash._basecreate "^3.0.0"
1663 | lodash._isiterateecall "^3.0.0"
1664 |
1665 | lodash.isarguments@^3.0.0:
1666 | version "3.1.0"
1667 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
1668 | integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
1669 |
1670 | lodash.isarray@^3.0.0:
1671 | version "3.0.4"
1672 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
1673 | integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
1674 |
1675 | lodash.keys@^3.0.0:
1676 | version "3.1.2"
1677 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
1678 | integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
1679 | dependencies:
1680 | lodash._getnative "^3.0.0"
1681 | lodash.isarguments "^3.0.0"
1682 | lodash.isarray "^3.0.0"
1683 |
1684 | lodash@^4.0.0, lodash@^4.17.4, lodash@^4.3.0:
1685 | version "4.17.4"
1686 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
1687 | integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=
1688 |
1689 | log-driver@1.2.5:
1690 | version "1.2.5"
1691 | resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
1692 | integrity sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=
1693 |
1694 | longest@^1.0.1:
1695 | version "1.0.1"
1696 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
1697 | integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
1698 |
1699 | loose-envify@^1.0.0:
1700 | version "1.3.1"
1701 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
1702 | integrity sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=
1703 | dependencies:
1704 | js-tokens "^3.0.0"
1705 |
1706 | loud-rejection@^1.0.0:
1707 | version "1.6.0"
1708 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
1709 | integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
1710 | dependencies:
1711 | currently-unhandled "^0.4.1"
1712 | signal-exit "^3.0.0"
1713 |
1714 | lru-cache@2:
1715 | version "2.7.3"
1716 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
1717 | integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=
1718 |
1719 | lru-cache@^4.0.1:
1720 | version "4.1.1"
1721 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
1722 | integrity sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==
1723 | dependencies:
1724 | pseudomap "^1.0.2"
1725 | yallist "^2.1.2"
1726 |
1727 | map-obj@^1.0.0, map-obj@^1.0.1:
1728 | version "1.0.1"
1729 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
1730 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
1731 |
1732 | md5-hex@^1.2.0:
1733 | version "1.3.0"
1734 | resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
1735 | integrity sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=
1736 | dependencies:
1737 | md5-o-matic "^0.1.1"
1738 |
1739 | md5-o-matic@^0.1.1:
1740 | version "0.1.1"
1741 | resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
1742 | integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=
1743 |
1744 | mem@^1.1.0:
1745 | version "1.1.0"
1746 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
1747 | integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
1748 | dependencies:
1749 | mimic-fn "^1.0.0"
1750 |
1751 | meow@^3.7.0:
1752 | version "3.7.0"
1753 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
1754 | integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
1755 | dependencies:
1756 | camelcase-keys "^2.0.0"
1757 | decamelize "^1.1.2"
1758 | loud-rejection "^1.0.0"
1759 | map-obj "^1.0.1"
1760 | minimist "^1.1.3"
1761 | normalize-package-data "^2.3.4"
1762 | object-assign "^4.0.1"
1763 | read-pkg-up "^1.0.1"
1764 | redent "^1.0.0"
1765 | trim-newlines "^1.0.0"
1766 |
1767 | merge-source-map@^1.0.2:
1768 | version "1.0.4"
1769 | resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f"
1770 | integrity sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=
1771 | dependencies:
1772 | source-map "^0.5.6"
1773 |
1774 | micromatch@^2.3.11:
1775 | version "2.3.11"
1776 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
1777 | integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
1778 | dependencies:
1779 | arr-diff "^2.0.0"
1780 | array-unique "^0.2.1"
1781 | braces "^1.8.2"
1782 | expand-brackets "^0.1.4"
1783 | extglob "^0.3.1"
1784 | filename-regex "^2.0.0"
1785 | is-extglob "^1.0.0"
1786 | is-glob "^2.0.1"
1787 | kind-of "^3.0.2"
1788 | normalize-path "^2.0.1"
1789 | object.omit "^2.0.0"
1790 | parse-glob "^3.0.4"
1791 | regex-cache "^0.4.2"
1792 |
1793 | mime-db@~1.30.0:
1794 | version "1.30.0"
1795 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
1796 | integrity sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=
1797 |
1798 | mime-types@^2.1.12, mime-types@~2.1.7:
1799 | version "2.1.17"
1800 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
1801 | integrity sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=
1802 | dependencies:
1803 | mime-db "~1.30.0"
1804 |
1805 | mimic-fn@^1.0.0:
1806 | version "1.1.0"
1807 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
1808 | integrity sha1-5md4PZLonb00KBi1IwudYqZyrRg=
1809 |
1810 | minimatch@0.3:
1811 | version "0.3.0"
1812 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd"
1813 | integrity sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=
1814 | dependencies:
1815 | lru-cache "2"
1816 | sigmund "~1.0.0"
1817 |
1818 | minimatch@0.x:
1819 | version "0.4.0"
1820 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.4.0.tgz#bd2c7d060d2c8c8fd7cde7f1f2ed2d5b270fdb1b"
1821 | integrity sha1-vSx9Bg0sjI/Xzefx8u0tWycP2xs=
1822 | dependencies:
1823 | lru-cache "2"
1824 | sigmund "~1.0.0"
1825 |
1826 | minimatch@^3.0.2, minimatch@^3.0.4:
1827 | version "3.0.4"
1828 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1829 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1830 | dependencies:
1831 | brace-expansion "^1.1.7"
1832 |
1833 | minimatch@~0.2.9:
1834 | version "0.2.14"
1835 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
1836 | integrity sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=
1837 | dependencies:
1838 | lru-cache "2"
1839 | sigmund "~1.0.0"
1840 |
1841 | minimist@0.0.8:
1842 | version "0.0.8"
1843 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1844 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
1845 |
1846 | minimist@1.2.0, minimist@^1.1.3:
1847 | version "1.2.0"
1848 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1849 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
1850 |
1851 | minimist@~0.0.1:
1852 | version "0.0.10"
1853 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
1854 | integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
1855 |
1856 | mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1:
1857 | version "0.5.1"
1858 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1859 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
1860 | dependencies:
1861 | minimist "0.0.8"
1862 |
1863 | mocha@^3.5.3:
1864 | version "3.5.3"
1865 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
1866 | integrity sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==
1867 | dependencies:
1868 | browser-stdout "1.3.0"
1869 | commander "2.9.0"
1870 | debug "2.6.8"
1871 | diff "3.2.0"
1872 | escape-string-regexp "1.0.5"
1873 | glob "7.1.1"
1874 | growl "1.9.2"
1875 | he "1.1.1"
1876 | json3 "3.3.2"
1877 | lodash.create "3.1.1"
1878 | mkdirp "0.5.1"
1879 | supports-color "3.1.2"
1880 |
1881 | ms@2.0.0:
1882 | version "2.0.0"
1883 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1884 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
1885 |
1886 | mute-stream@0.0.7:
1887 | version "0.0.7"
1888 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
1889 | integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
1890 |
1891 | natural-compare@^1.4.0:
1892 | version "1.4.0"
1893 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1894 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
1895 |
1896 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
1897 | version "2.4.0"
1898 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
1899 | integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
1900 | dependencies:
1901 | hosted-git-info "^2.1.4"
1902 | is-builtin-module "^1.0.0"
1903 | semver "2 || 3 || 4 || 5"
1904 | validate-npm-package-license "^3.0.1"
1905 |
1906 | normalize-path@^2.0.1:
1907 | version "2.1.1"
1908 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
1909 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
1910 | dependencies:
1911 | remove-trailing-separator "^1.0.1"
1912 |
1913 | npm-run-path@^2.0.0:
1914 | version "2.0.2"
1915 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
1916 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
1917 | dependencies:
1918 | path-key "^2.0.0"
1919 |
1920 | number-is-nan@^1.0.0:
1921 | version "1.0.1"
1922 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
1923 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
1924 |
1925 | nyc@^11.2.1:
1926 | version "11.2.1"
1927 | resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.2.1.tgz#ad850afe9dbad7f4970728b4b2e47fed1c38721c"
1928 | integrity sha1-rYUK/p261/SXByi0suR/7Rw4chw=
1929 | dependencies:
1930 | archy "^1.0.0"
1931 | arrify "^1.0.1"
1932 | caching-transform "^1.0.0"
1933 | convert-source-map "^1.3.0"
1934 | debug-log "^1.0.1"
1935 | default-require-extensions "^1.0.0"
1936 | find-cache-dir "^0.1.1"
1937 | find-up "^2.1.0"
1938 | foreground-child "^1.5.3"
1939 | glob "^7.0.6"
1940 | istanbul-lib-coverage "^1.1.1"
1941 | istanbul-lib-hook "^1.0.7"
1942 | istanbul-lib-instrument "^1.8.0"
1943 | istanbul-lib-report "^1.1.1"
1944 | istanbul-lib-source-maps "^1.2.1"
1945 | istanbul-reports "^1.1.1"
1946 | md5-hex "^1.2.0"
1947 | merge-source-map "^1.0.2"
1948 | micromatch "^2.3.11"
1949 | mkdirp "^0.5.0"
1950 | resolve-from "^2.0.0"
1951 | rimraf "^2.5.4"
1952 | signal-exit "^3.0.1"
1953 | spawn-wrap "^1.3.8"
1954 | test-exclude "^4.1.1"
1955 | yargs "^8.0.1"
1956 | yargs-parser "^5.0.0"
1957 |
1958 | oauth-sign@~0.8.1:
1959 | version "0.8.2"
1960 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
1961 | integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=
1962 |
1963 | object-assign@^4.0.1, object-assign@^4.1.0:
1964 | version "4.1.1"
1965 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1966 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1967 |
1968 | object.omit@^2.0.0:
1969 | version "2.0.1"
1970 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
1971 | integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
1972 | dependencies:
1973 | for-own "^0.1.4"
1974 | is-extendable "^0.1.1"
1975 |
1976 | once@^1.3.0:
1977 | version "1.4.0"
1978 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1979 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1980 | dependencies:
1981 | wrappy "1"
1982 |
1983 | onetime@^2.0.0:
1984 | version "2.0.1"
1985 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
1986 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
1987 | dependencies:
1988 | mimic-fn "^1.0.0"
1989 |
1990 | optimist@^0.6.1:
1991 | version "0.6.1"
1992 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
1993 | integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
1994 | dependencies:
1995 | minimist "~0.0.1"
1996 | wordwrap "~0.0.2"
1997 |
1998 | optionator@^0.8.2:
1999 | version "0.8.2"
2000 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
2001 | integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
2002 | dependencies:
2003 | deep-is "~0.1.3"
2004 | fast-levenshtein "~2.0.4"
2005 | levn "~0.3.0"
2006 | prelude-ls "~1.1.2"
2007 | type-check "~0.3.2"
2008 | wordwrap "~1.0.0"
2009 |
2010 | os-homedir@^1.0.1:
2011 | version "1.0.2"
2012 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
2013 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
2014 |
2015 | os-locale@^2.0.0:
2016 | version "2.1.0"
2017 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
2018 | integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
2019 | dependencies:
2020 | execa "^0.7.0"
2021 | lcid "^1.0.0"
2022 | mem "^1.1.0"
2023 |
2024 | os-tmpdir@~1.0.2:
2025 | version "1.0.2"
2026 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
2027 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
2028 |
2029 | p-finally@^1.0.0:
2030 | version "1.0.0"
2031 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
2032 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
2033 |
2034 | p-limit@^1.1.0:
2035 | version "1.1.0"
2036 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
2037 | integrity sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=
2038 |
2039 | p-locate@^2.0.0:
2040 | version "2.0.0"
2041 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
2042 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
2043 | dependencies:
2044 | p-limit "^1.1.0"
2045 |
2046 | parse-glob@^3.0.4:
2047 | version "3.0.4"
2048 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
2049 | integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
2050 | dependencies:
2051 | glob-base "^0.3.0"
2052 | is-dotfile "^1.0.0"
2053 | is-extglob "^1.0.0"
2054 | is-glob "^2.0.0"
2055 |
2056 | parse-json@^2.2.0:
2057 | version "2.2.0"
2058 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
2059 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
2060 | dependencies:
2061 | error-ex "^1.2.0"
2062 |
2063 | path-exists@^2.0.0:
2064 | version "2.1.0"
2065 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
2066 | integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
2067 | dependencies:
2068 | pinkie-promise "^2.0.0"
2069 |
2070 | path-exists@^3.0.0:
2071 | version "3.0.0"
2072 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
2073 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
2074 |
2075 | path-is-absolute@^1.0.0:
2076 | version "1.0.1"
2077 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2078 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
2079 |
2080 | path-is-inside@^1.0.1, path-is-inside@^1.0.2:
2081 | version "1.0.2"
2082 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
2083 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
2084 |
2085 | path-key@^2.0.0:
2086 | version "2.0.1"
2087 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
2088 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
2089 |
2090 | path-parse@^1.0.5:
2091 | version "1.0.5"
2092 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
2093 | integrity sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=
2094 |
2095 | path-type@^1.0.0:
2096 | version "1.1.0"
2097 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
2098 | integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
2099 | dependencies:
2100 | graceful-fs "^4.1.2"
2101 | pify "^2.0.0"
2102 | pinkie-promise "^2.0.0"
2103 |
2104 | path-type@^2.0.0:
2105 | version "2.0.0"
2106 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
2107 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
2108 | dependencies:
2109 | pify "^2.0.0"
2110 |
2111 | pathval@^1.0.0:
2112 | version "1.1.0"
2113 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
2114 | integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA=
2115 |
2116 | pify@^2.0.0:
2117 | version "2.3.0"
2118 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
2119 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
2120 |
2121 | pify@^3.0.0:
2122 | version "3.0.0"
2123 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
2124 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
2125 |
2126 | pinkie-promise@^2.0.0:
2127 | version "2.0.1"
2128 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
2129 | integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
2130 | dependencies:
2131 | pinkie "^2.0.0"
2132 |
2133 | pinkie@^2.0.0:
2134 | version "2.0.4"
2135 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
2136 | integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
2137 |
2138 | pkg-dir@^1.0.0:
2139 | version "1.0.0"
2140 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
2141 | integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
2142 | dependencies:
2143 | find-up "^1.0.0"
2144 |
2145 | pluralize@^7.0.0:
2146 | version "7.0.0"
2147 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
2148 | integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==
2149 |
2150 | prelude-ls@~1.1.2:
2151 | version "1.1.2"
2152 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
2153 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
2154 |
2155 | preserve@^0.2.0:
2156 | version "0.2.0"
2157 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
2158 | integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
2159 |
2160 | pretty-bytes@^4.0.2:
2161 | version "4.0.2"
2162 | resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
2163 | integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=
2164 |
2165 | process-nextick-args@~1.0.6:
2166 | version "1.0.7"
2167 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
2168 | integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
2169 |
2170 | progress@^2.0.0:
2171 | version "2.0.0"
2172 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
2173 | integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=
2174 |
2175 | prop-factory@^1.0.0:
2176 | version "1.0.0"
2177 | resolved "https://registry.yarnpkg.com/prop-factory/-/prop-factory-1.0.0.tgz#1a1f953b10be675b5524f2273e38dfba18151ae6"
2178 | integrity sha1-Gh+VOxC+Z1tVJPInPjjfuhgVGuY=
2179 |
2180 | pseudomap@^1.0.2:
2181 | version "1.0.2"
2182 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
2183 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
2184 |
2185 | punycode@^1.4.1:
2186 | version "1.4.1"
2187 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
2188 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
2189 |
2190 | qs@~6.3.0:
2191 | version "6.3.2"
2192 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
2193 | integrity sha1-51vV9uJoEioqDgvaYwslUMFmUCw=
2194 |
2195 | randomatic@^1.1.3:
2196 | version "1.1.7"
2197 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
2198 | integrity sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==
2199 | dependencies:
2200 | is-number "^3.0.0"
2201 | kind-of "^4.0.0"
2202 |
2203 | read-pkg-up@^1.0.1:
2204 | version "1.0.1"
2205 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
2206 | integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
2207 | dependencies:
2208 | find-up "^1.0.0"
2209 | read-pkg "^1.0.0"
2210 |
2211 | read-pkg-up@^2.0.0:
2212 | version "2.0.0"
2213 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
2214 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
2215 | dependencies:
2216 | find-up "^2.0.0"
2217 | read-pkg "^2.0.0"
2218 |
2219 | read-pkg@^1.0.0:
2220 | version "1.1.0"
2221 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
2222 | integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
2223 | dependencies:
2224 | load-json-file "^1.0.0"
2225 | normalize-package-data "^2.3.2"
2226 | path-type "^1.0.0"
2227 |
2228 | read-pkg@^2.0.0:
2229 | version "2.0.0"
2230 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
2231 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
2232 | dependencies:
2233 | load-json-file "^2.0.0"
2234 | normalize-package-data "^2.3.2"
2235 | path-type "^2.0.0"
2236 |
2237 | readable-stream@^2.2.2:
2238 | version "2.3.3"
2239 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
2240 | integrity sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==
2241 | dependencies:
2242 | core-util-is "~1.0.0"
2243 | inherits "~2.0.3"
2244 | isarray "~1.0.0"
2245 | process-nextick-args "~1.0.6"
2246 | safe-buffer "~5.1.1"
2247 | string_decoder "~1.0.3"
2248 | util-deprecate "~1.0.1"
2249 |
2250 | redent@^1.0.0:
2251 | version "1.0.0"
2252 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
2253 | integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
2254 | dependencies:
2255 | indent-string "^2.1.0"
2256 | strip-indent "^1.0.1"
2257 |
2258 | regenerator-runtime@^0.11.0:
2259 | version "0.11.0"
2260 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
2261 | integrity sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==
2262 |
2263 | regex-cache@^0.4.2:
2264 | version "0.4.4"
2265 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
2266 | integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
2267 | dependencies:
2268 | is-equal-shallow "^0.1.3"
2269 |
2270 | remove-trailing-separator@^1.0.1:
2271 | version "1.1.0"
2272 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
2273 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
2274 |
2275 | repeat-element@^1.1.2:
2276 | version "1.1.2"
2277 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
2278 | integrity sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=
2279 |
2280 | repeat-string@^1.5.2:
2281 | version "1.6.1"
2282 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
2283 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
2284 |
2285 | repeating@^2.0.0:
2286 | version "2.0.1"
2287 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
2288 | integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
2289 | dependencies:
2290 | is-finite "^1.0.0"
2291 |
2292 | request@2.79.0:
2293 | version "2.79.0"
2294 | resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
2295 | integrity sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=
2296 | dependencies:
2297 | aws-sign2 "~0.6.0"
2298 | aws4 "^1.2.1"
2299 | caseless "~0.11.0"
2300 | combined-stream "~1.0.5"
2301 | extend "~3.0.0"
2302 | forever-agent "~0.6.1"
2303 | form-data "~2.1.1"
2304 | har-validator "~2.0.6"
2305 | hawk "~3.1.3"
2306 | http-signature "~1.1.0"
2307 | is-typedarray "~1.0.0"
2308 | isstream "~0.1.2"
2309 | json-stringify-safe "~5.0.1"
2310 | mime-types "~2.1.7"
2311 | oauth-sign "~0.8.1"
2312 | qs "~6.3.0"
2313 | stringstream "~0.0.4"
2314 | tough-cookie "~2.3.0"
2315 | tunnel-agent "~0.4.1"
2316 | uuid "^3.0.0"
2317 |
2318 | require-directory@^2.1.1:
2319 | version "2.1.1"
2320 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
2321 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
2322 |
2323 | require-main-filename@^1.0.1:
2324 | version "1.0.1"
2325 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
2326 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
2327 |
2328 | require-uncached@^1.0.3:
2329 | version "1.0.3"
2330 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
2331 | integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=
2332 | dependencies:
2333 | caller-path "^0.1.0"
2334 | resolve-from "^1.0.0"
2335 |
2336 | resolve-from@^1.0.0:
2337 | version "1.0.1"
2338 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
2339 | integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=
2340 |
2341 | resolve-from@^2.0.0:
2342 | version "2.0.0"
2343 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
2344 | integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=
2345 |
2346 | restore-cursor@^2.0.0:
2347 | version "2.0.0"
2348 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
2349 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
2350 | dependencies:
2351 | onetime "^2.0.0"
2352 | signal-exit "^3.0.2"
2353 |
2354 | right-align@^0.1.1:
2355 | version "0.1.3"
2356 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
2357 | integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8=
2358 | dependencies:
2359 | align-text "^0.1.1"
2360 |
2361 | rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.4, rimraf@^2.6.1:
2362 | version "2.6.2"
2363 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
2364 | integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
2365 | dependencies:
2366 | glob "^7.0.5"
2367 |
2368 | run-async@^2.2.0:
2369 | version "2.3.0"
2370 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
2371 | integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
2372 | dependencies:
2373 | is-promise "^2.1.0"
2374 |
2375 | rx-lite-aggregates@^4.0.8:
2376 | version "4.0.8"
2377 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
2378 | integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=
2379 | dependencies:
2380 | rx-lite "*"
2381 |
2382 | rx-lite@*, rx-lite@^4.0.8:
2383 | version "4.0.8"
2384 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
2385 | integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
2386 |
2387 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
2388 | version "5.1.1"
2389 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
2390 | integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
2391 |
2392 | "semver@2 || 3 || 4 || 5", semver@^5.3.0:
2393 | version "5.4.1"
2394 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
2395 | integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==
2396 |
2397 | set-blocking@^2.0.0:
2398 | version "2.0.0"
2399 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
2400 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
2401 |
2402 | shebang-command@^1.2.0:
2403 | version "1.2.0"
2404 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
2405 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
2406 | dependencies:
2407 | shebang-regex "^1.0.0"
2408 |
2409 | shebang-regex@^1.0.0:
2410 | version "1.0.0"
2411 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
2412 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
2413 |
2414 | sigmund@~1.0.0:
2415 | version "1.0.1"
2416 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
2417 | integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
2418 |
2419 | signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
2420 | version "3.0.2"
2421 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
2422 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
2423 |
2424 | slice-ansi@0.0.4:
2425 | version "0.0.4"
2426 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
2427 | integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
2428 |
2429 | slide@^1.1.5:
2430 | version "1.1.6"
2431 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
2432 | integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
2433 |
2434 | sntp@1.x.x:
2435 | version "1.0.9"
2436 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
2437 | integrity sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=
2438 | dependencies:
2439 | hoek "2.x.x"
2440 |
2441 | source-map@^0.4.4:
2442 | version "0.4.4"
2443 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
2444 | integrity sha1-66T12pwNyZneaAMti092FzZSA2s=
2445 | dependencies:
2446 | amdefine ">=0.0.4"
2447 |
2448 | source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1:
2449 | version "0.5.7"
2450 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
2451 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
2452 |
2453 | source-map@~0.6.1:
2454 | version "0.6.1"
2455 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
2456 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
2457 |
2458 | spawn-wrap@^1.3.8:
2459 | version "1.3.8"
2460 | resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.3.8.tgz#fa2a79b990cbb0bb0018dca6748d88367b19ec31"
2461 | integrity sha512-Yfkd7Yiwz4RcBPrDWzvhnTzQINBHNqOEhUzOdWZ67Y9b4wzs3Gz6ymuptQmRBpzlpOzroM7jwzmBdRec7JJ0UA==
2462 | dependencies:
2463 | foreground-child "^1.5.6"
2464 | mkdirp "^0.5.0"
2465 | os-homedir "^1.0.1"
2466 | rimraf "^2.3.3"
2467 | signal-exit "^3.0.2"
2468 | which "^1.2.4"
2469 |
2470 | spdx-correct@~1.0.0:
2471 | version "1.0.2"
2472 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
2473 | integrity sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=
2474 | dependencies:
2475 | spdx-license-ids "^1.0.2"
2476 |
2477 | spdx-expression-parse@~1.0.0:
2478 | version "1.0.4"
2479 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
2480 | integrity sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=
2481 |
2482 | spdx-license-ids@^1.0.2:
2483 | version "1.2.2"
2484 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
2485 | integrity sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=
2486 |
2487 | sprintf-js@~1.0.2:
2488 | version "1.0.3"
2489 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
2490 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
2491 |
2492 | sshpk@^1.7.0:
2493 | version "1.13.1"
2494 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
2495 | integrity sha1-US322mKHFEMW3EwY/hzx2UBzm+M=
2496 | dependencies:
2497 | asn1 "~0.2.3"
2498 | assert-plus "^1.0.0"
2499 | dashdash "^1.12.0"
2500 | getpass "^0.1.1"
2501 | optionalDependencies:
2502 | bcrypt-pbkdf "^1.0.0"
2503 | ecc-jsbn "~0.1.1"
2504 | jsbn "~0.1.0"
2505 | tweetnacl "~0.14.0"
2506 |
2507 | string-width@^1.0.1:
2508 | version "1.0.2"
2509 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
2510 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
2511 | dependencies:
2512 | code-point-at "^1.0.0"
2513 | is-fullwidth-code-point "^1.0.0"
2514 | strip-ansi "^3.0.0"
2515 |
2516 | string-width@^2.0.0, string-width@^2.1.0:
2517 | version "2.1.1"
2518 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
2519 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
2520 | dependencies:
2521 | is-fullwidth-code-point "^2.0.0"
2522 | strip-ansi "^4.0.0"
2523 |
2524 | string_decoder@~1.0.3:
2525 | version "1.0.3"
2526 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
2527 | integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==
2528 | dependencies:
2529 | safe-buffer "~5.1.0"
2530 |
2531 | stringstream@~0.0.4:
2532 | version "0.0.5"
2533 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
2534 | integrity sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=
2535 |
2536 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
2537 | version "3.0.1"
2538 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
2539 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
2540 | dependencies:
2541 | ansi-regex "^2.0.0"
2542 |
2543 | strip-ansi@^4.0.0:
2544 | version "4.0.0"
2545 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
2546 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
2547 | dependencies:
2548 | ansi-regex "^3.0.0"
2549 |
2550 | strip-bom@^2.0.0:
2551 | version "2.0.0"
2552 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
2553 | integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
2554 | dependencies:
2555 | is-utf8 "^0.2.0"
2556 |
2557 | strip-bom@^3.0.0:
2558 | version "3.0.0"
2559 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
2560 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
2561 |
2562 | strip-eof@^1.0.0:
2563 | version "1.0.0"
2564 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
2565 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
2566 |
2567 | strip-indent@^1.0.1:
2568 | version "1.0.1"
2569 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
2570 | integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
2571 | dependencies:
2572 | get-stdin "^4.0.1"
2573 |
2574 | strip-json-comments@~2.0.1:
2575 | version "2.0.1"
2576 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
2577 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
2578 |
2579 | supports-color@3.1.2:
2580 | version "3.1.2"
2581 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
2582 | integrity sha1-cqJiiU2dQIuVbKBf83su2KbiotU=
2583 | dependencies:
2584 | has-flag "^1.0.0"
2585 |
2586 | supports-color@^2.0.0:
2587 | version "2.0.0"
2588 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
2589 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
2590 |
2591 | supports-color@^3.1.2:
2592 | version "3.2.3"
2593 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
2594 | integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
2595 | dependencies:
2596 | has-flag "^1.0.0"
2597 |
2598 | supports-color@^4.0.0:
2599 | version "4.4.0"
2600 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
2601 | integrity sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==
2602 | dependencies:
2603 | has-flag "^2.0.0"
2604 |
2605 | table@^4.0.1:
2606 | version "4.0.1"
2607 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435"
2608 | integrity sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=
2609 | dependencies:
2610 | ajv "^4.7.0"
2611 | ajv-keywords "^1.0.0"
2612 | chalk "^1.1.1"
2613 | lodash "^4.0.0"
2614 | slice-ansi "0.0.4"
2615 | string-width "^2.0.0"
2616 |
2617 | test-exclude@^4.1.1:
2618 | version "4.1.1"
2619 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26"
2620 | integrity sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==
2621 | dependencies:
2622 | arrify "^1.0.1"
2623 | micromatch "^2.3.11"
2624 | object-assign "^4.1.0"
2625 | read-pkg-up "^1.0.1"
2626 | require-main-filename "^1.0.1"
2627 |
2628 | text-table@~0.2.0:
2629 | version "0.2.0"
2630 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
2631 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
2632 |
2633 | through@^2.3.6:
2634 | version "2.3.8"
2635 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
2636 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
2637 |
2638 | tmp@^0.0.33:
2639 | version "0.0.33"
2640 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
2641 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
2642 | dependencies:
2643 | os-tmpdir "~1.0.2"
2644 |
2645 | to-fast-properties@^1.0.3:
2646 | version "1.0.3"
2647 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
2648 | integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
2649 |
2650 | tough-cookie@~2.3.0:
2651 | version "2.3.3"
2652 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
2653 | integrity sha1-C2GKVWW23qkL80JdBNVe3EdadWE=
2654 | dependencies:
2655 | punycode "^1.4.1"
2656 |
2657 | trim-newlines@^1.0.0:
2658 | version "1.0.0"
2659 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
2660 | integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
2661 |
2662 | trim-right@^1.0.1:
2663 | version "1.0.1"
2664 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
2665 | integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
2666 |
2667 | tryit@^1.0.1:
2668 | version "1.0.3"
2669 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
2670 | integrity sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=
2671 |
2672 | tunnel-agent@~0.4.1:
2673 | version "0.4.3"
2674 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
2675 | integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=
2676 |
2677 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
2678 | version "0.14.5"
2679 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
2680 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
2681 |
2682 | type-check@~0.3.2:
2683 | version "0.3.2"
2684 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
2685 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
2686 | dependencies:
2687 | prelude-ls "~1.1.2"
2688 |
2689 | type-detect@^4.0.0:
2690 | version "4.0.3"
2691 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea"
2692 | integrity sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=
2693 |
2694 | typedarray@^0.0.6:
2695 | version "0.0.6"
2696 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
2697 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
2698 |
2699 | uglify-es@^3.3.9:
2700 | version "3.3.9"
2701 | resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
2702 | integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
2703 | dependencies:
2704 | commander "~2.13.0"
2705 | source-map "~0.6.1"
2706 |
2707 | uglify-js@^2.6:
2708 | version "2.8.29"
2709 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
2710 | integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0=
2711 | dependencies:
2712 | source-map "~0.5.1"
2713 | yargs "~3.10.0"
2714 | optionalDependencies:
2715 | uglify-to-browserify "~1.0.0"
2716 |
2717 | uglify-to-browserify@~1.0.0:
2718 | version "1.0.2"
2719 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
2720 | integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
2721 |
2722 | util-deprecate@~1.0.1:
2723 | version "1.0.2"
2724 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2725 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
2726 |
2727 | uuid@^3.0.0:
2728 | version "3.1.0"
2729 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
2730 | integrity sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==
2731 |
2732 | validate-npm-package-license@^3.0.1:
2733 | version "3.0.1"
2734 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
2735 | integrity sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=
2736 | dependencies:
2737 | spdx-correct "~1.0.0"
2738 | spdx-expression-parse "~1.0.0"
2739 |
2740 | verror@1.10.0:
2741 | version "1.10.0"
2742 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
2743 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
2744 | dependencies:
2745 | assert-plus "^1.0.0"
2746 | core-util-is "1.0.2"
2747 | extsprintf "^1.2.0"
2748 |
2749 | which-module@^2.0.0:
2750 | version "2.0.0"
2751 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
2752 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
2753 |
2754 | which@^1.2.4, which@^1.2.9:
2755 | version "1.3.0"
2756 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
2757 | integrity sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==
2758 | dependencies:
2759 | isexe "^2.0.0"
2760 |
2761 | window-size@0.1.0:
2762 | version "0.1.0"
2763 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
2764 | integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
2765 |
2766 | wordwrap@0.0.2:
2767 | version "0.0.2"
2768 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
2769 | integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=
2770 |
2771 | wordwrap@~0.0.2:
2772 | version "0.0.3"
2773 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
2774 | integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
2775 |
2776 | wordwrap@~1.0.0:
2777 | version "1.0.0"
2778 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
2779 | integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
2780 |
2781 | wrap-ansi@^2.0.0:
2782 | version "2.1.0"
2783 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
2784 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
2785 | dependencies:
2786 | string-width "^1.0.1"
2787 | strip-ansi "^3.0.1"
2788 |
2789 | wrappy@1:
2790 | version "1.0.2"
2791 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2792 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
2793 |
2794 | write-file-atomic@^1.1.4:
2795 | version "1.3.4"
2796 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
2797 | integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=
2798 | dependencies:
2799 | graceful-fs "^4.1.11"
2800 | imurmurhash "^0.1.4"
2801 | slide "^1.1.5"
2802 |
2803 | write@^0.2.1:
2804 | version "0.2.1"
2805 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
2806 | integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=
2807 | dependencies:
2808 | mkdirp "^0.5.1"
2809 |
2810 | xtend@^4.0.0:
2811 | version "4.0.1"
2812 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
2813 | integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
2814 |
2815 | y18n@^3.2.1:
2816 | version "3.2.1"
2817 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
2818 | integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
2819 |
2820 | yallist@^2.1.2:
2821 | version "2.1.2"
2822 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
2823 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
2824 |
2825 | yargs-parser@^5.0.0:
2826 | version "5.0.0"
2827 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
2828 | integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
2829 | dependencies:
2830 | camelcase "^3.0.0"
2831 |
2832 | yargs-parser@^7.0.0:
2833 | version "7.0.0"
2834 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
2835 | integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k=
2836 | dependencies:
2837 | camelcase "^4.1.0"
2838 |
2839 | yargs@^8.0.1:
2840 | version "8.0.2"
2841 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
2842 | integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A=
2843 | dependencies:
2844 | camelcase "^4.1.0"
2845 | cliui "^3.2.0"
2846 | decamelize "^1.1.1"
2847 | get-caller-file "^1.0.1"
2848 | os-locale "^2.0.0"
2849 | read-pkg-up "^2.0.0"
2850 | require-directory "^2.1.1"
2851 | require-main-filename "^1.0.1"
2852 | set-blocking "^2.0.0"
2853 | string-width "^2.0.0"
2854 | which-module "^2.0.0"
2855 | y18n "^3.2.1"
2856 | yargs-parser "^7.0.0"
2857 |
2858 | yargs@~3.10.0:
2859 | version "3.10.0"
2860 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
2861 | integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=
2862 | dependencies:
2863 | camelcase "^1.0.2"
2864 | cliui "^2.1.0"
2865 | decamelize "^1.0.0"
2866 | window-size "0.1.0"
2867 |
--------------------------------------------------------------------------------