feat(complex-matcher): new package (#28)

This commit is contained in:
Julien Fontanet 2017-12-22 13:08:24 +01:00 committed by GitHub
parent ed7a40bc73
commit 1b42523e2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 1147 additions and 5 deletions

View File

@ -1,5 +1,6 @@
{ {
"devDependencies": { "devDependencies": {
"babel-7-jest": "^21.3.2",
"babel-eslint": "^8.0.1", "babel-eslint": "^8.0.1",
"eslint": "^4.13.1", "eslint": "^4.13.1",
"eslint-config-standard": "^11.0.0-beta.0", "eslint-config-standard": "^11.0.0-beta.0",
@ -25,7 +26,11 @@
"/dist/", "/dist/",
"/xo-vmdk-to-vhd/" "/xo-vmdk-to-vhd/"
], ],
"testRegex": "\\.spec\\.js$" "testRegex": "\\.spec\\.js$",
"transform": {
"complex-matcher/.+\\.jsx?$": "babel-7-jest",
"\\.jsx?$": "babel-jest"
}
}, },
"lint-staged": { "lint-staged": {
"*.js": [ "*.js": [

View File

@ -0,0 +1,27 @@
const { NODE_ENV = 'development' } = process.env
const __PROD__ = NODE_ENV === 'production'
const __TEST__ = NODE_ENV === 'test'
module.exports = {
comments: !__PROD__,
compact: __PROD__,
ignore: __TEST__ ? undefined : [ /\.spec\.js$/ ],
plugins: ['lodash'],
presets: [
[
'@babel/env',
{
debug: !__TEST__,
loose: true,
shippedProposals: true,
targets: __PROD__
? {
browsers: '>2%',
node: '4',
}
: { node: 'current' },
useBuiltIns: 'usage',
},
],
],
}

View File

@ -0,0 +1,24 @@
/benchmark/
/benchmarks/
*.bench.js
*.bench.js.map
/examples/
example.js
example.js.map
*.example.js
*.example.js.map
/fixture/
/fixtures/
*.fixture.js
*.fixture.js.map
*.fixtures.js
*.fixtures.js.map
/test/
/tests/
*.spec.js
*.spec.js.map
__snapshots__/

View File

@ -0,0 +1,66 @@
# complex-matcher [![Build Status](https://travis-ci.org/vatesfr/xen-orchestra.png?branch=master)](https://travis-ci.org/vatesfr/xen-orchestra)
> ${pkg.description}
## Install
Installation of the [npm package](https://npmjs.org/package/complex-matcher):
```
> npm install --save complex-matcher
```
## Usage
```js
import * as CM from 'complex-matcher'
const characters = [
{ name: 'Catwoman', costumeColor: 'black' },
{ name: 'Superman', costumeColor: 'blue', hasCape: true },
{ name: 'Wonder Woman', costumeColor: 'blue' },
]
const predicate = CM.parse('costumeColor:blue hasCape?').createPredicate()
characters.filter(predicate)
// [
// { name: 'Superman', costumeColor: 'blue', hasCape: true },
// ]
new CM.String('foo').createPredicate()
```
## Development
```
# Install dependencies
> yarn
# Run the tests
> yarn test
# Continuously compile
> yarn dev
# Continuously run the tests
> yarn dev-test
# Build for production (automatically called by npm install)
> yarn build
```
## Contributions
Contributions are *very* welcomed, either on the documentation or on
the code.
You may:
- report any [issue](https://github.com/vatesfr/xo-web/issues)
you've encountered;
- fork and create a pull request.
## License
ISC © [Vates SAS](https://vates.fr)

View File

@ -0,0 +1,45 @@
{
"name": "complex-matcher",
"version": "0.1.0",
"license": "ISC",
"description": "",
"keywords": [],
"homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/packages/complex-matcher",
"bugs": "https://github.com/vatesfr/xo-web/issues",
"repository": {
"type": "git",
"url": "https://github.com/vatesfr/xen-orchestra.git"
},
"author": {
"name": "Julien Fontanet",
"email": "julien.fontanet@isonoe.net"
},
"preferGlobal": false,
"main": "dist/",
"bin": {},
"files": [
"dist/"
],
"engines": {
"node": ">=4"
},
"dependencies": {
"@babel/polyfill": "^7.0.0-beta.35",
"lodash": "^4.17.4"
},
"devDependencies": {
"@babel/cli": "^7.0.0-beta.35",
"@babel/core": "^7.0.0-beta.35",
"@babel/preset-env": "^7.0.0-beta.35",
"babel-plugin-lodash": "^3.3.2",
"cross-env": "^5.1.1",
"rimraf": "^2.6.2"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"prebuild": "rimraf dist/",
"predev": "npm run prebuild",
"prepublishOnly": "npm run build"
}
}

View File

@ -0,0 +1,12 @@
import { parse } from './'
import { ast, pattern } from './index.fixtures'
export default ({ benchmark }) => {
benchmark('parse', () => {
parse(pattern)
})
benchmark('toString', () => {
ast.toString()
})
}

View File

@ -0,0 +1,13 @@
import * as CM from './'
export const pattern = 'foo !"\\\\ \\"" name:|(wonderwoman batman) hasCape?'
export const ast = new CM.And([
new CM.String('foo'),
new CM.Not(new CM.String('\\ "')),
new CM.Property(
'name',
new CM.Or([new CM.String('wonderwoman'), new CM.String('batman')])
),
new CM.TruthyProperty('hasCape'),
])

View File

@ -0,0 +1,429 @@
import { isPlainObject, some } from 'lodash'
// ===================================================================
// Invoke a function and returns it result.
// All parameters are forwarded.
//
// Why using `invoke()`?
// - avoid tedious IIFE syntax
// - avoid declaring variables in the common scope
// - monkey-patching
//
// ```js
// const sum = invoke(1, 2, (a, b) => a + b)
//
// eventEmitter.emit = invoke(eventEmitter.emit, emit => function (event) {
// if (event === 'foo') {
// throw new Error('event foo is disabled')
// }
//
// return emit.apply(this, arguments)
// })
// ```
function invoke (fn) {
const n = arguments.length - 1
if (!n) {
return fn()
}
fn = arguments[n]
const args = new Array(n)
for (let i = 0; i < n; ++i) {
args[i] = arguments[i]
}
return fn.apply(undefined, args)
}
// ===================================================================
const RAW_STRING_CHARS = invoke(() => {
const chars = { __proto__: null }
const add = (a, b = a) => {
let i = a.charCodeAt(0)
const j = b.charCodeAt(0)
while (i <= j) {
chars[String.fromCharCode(i++)] = true
}
}
add('$')
add('-')
add('.')
add('0', '9')
add('_')
add('A', 'Z')
add('a', 'z')
return chars
})
const isRawString = string => {
const { length } = string
for (let i = 0; i < length; ++i) {
if (!(string[i] in RAW_STRING_CHARS)) {
return false
}
}
return true
}
// -------------------------------------------------------------------
class Node {
createPredicate () {
return value => this.match(value)
}
}
const formatTerms = terms => terms.map(term => term.toString(true)).join(' ')
export class And extends Node {
constructor (children) {
super()
if (children.length === 1) {
return children[0]
}
this.children = children
}
match (value) {
return this.children.every(child => child.match(value))
}
toString (isNested) {
const terms = formatTerms(this.children)
return isNested ? `(${terms})` : terms
}
}
export class Or extends Node {
constructor (children) {
super()
if (children.length === 1) {
return children[0]
}
this.children = children
}
match (value) {
return this.children.some(child => child.match(value))
}
toString () {
return `|(${formatTerms(this.children)})`
}
}
export class Not extends Node {
constructor (child) {
super()
this.child = child
}
match (value) {
return !this.child.match(value)
}
toString () {
return '!' + this.child.toString(true)
}
}
export class Property extends Node {
constructor (name, child) {
super()
this.name = name
this.child = child
}
match (value) {
return value != null && this.child.match(value[this.name])
}
toString () {
return `${formatString(this.name)}:${this.child.toString(true)}`
}
}
const escapeChar = char => '\\' + char
const formatString = value => isRawString(value)
? value
: `"${value.replace(/\\|"/g, escapeChar)}"`
export class StringNode extends Node {
constructor (value) {
super()
this.lcValue = value.toLowerCase()
this.value = value
// should not be enumerable for the tests
Object.defineProperty(this, 'match', {
value: this.match.bind(this),
})
}
match (value) {
if (typeof value === 'string') {
return value.toLowerCase().indexOf(this.lcValue) !== -1
}
if (Array.isArray(value) || isPlainObject(value)) {
return some(value, this.match)
}
return false
}
toString () {
return formatString(this.value)
}
}
export { StringNode as String }
export class TruthyProperty extends Node {
constructor (name) {
super()
this.name = name
}
match (value) {
return value != null && !!value[this.name]
}
toString () {
return formatString(this.name) + '?'
}
}
// -------------------------------------------------------------------
// terms = term+
// term = ws (and | or | not | property | truthyProperty | string) ws
// ws = ' '*
// *and = "(" terms ")"
// *or = "|" ws "(" terms ")"
// *not = "!" term
// *property = string ws ":" term
// *truthyProperty = string ws "?"
// *string = quotedString | rawString
// quotedString = "\"" ( /[^"\]/ | "\\\\" | "\\\"" )+
// rawString = /[a-z0-9-_.]+/i
export const parse = invoke(() => {
let i
let n
let input
// -----
const backtrace = parser => () => {
const pos = i
const node = parser()
if (node !== undefined) {
return node
}
i = pos
}
// -----
const parseTerms = Node => {
let term = parseTerm()
if (!term) {
return
}
const terms = [term]
while ((term = parseTerm())) {
terms.push(term)
}
return new Node(terms)
}
const parseTerm = () => {
parseWs()
const child =
parseAnd() ||
parseOr() ||
parseNot() ||
parseProperty() ||
parseTruthyProperty() ||
parseString()
if (child) {
parseWs()
return child
}
}
const parseWs = () => {
while (input[i] === ' ') {
++i
}
return true
}
const parseAnd = backtrace(() => {
let and
if (input[i++] === '(' && (and = parseTerm(And)) && input[i++] === ')') {
return and
}
})
const parseOr = backtrace(() => {
let or
if (
input[i++] === '|' &&
parseWs() &&
input[i++] === '(' &&
(or = parseTerms(Or)) &&
input[i++] === ')'
) {
return or
}
})
const parseNot = backtrace(() => {
let child
if (input[i++] === '!' && (child = parseTerm())) {
return new Not(child)
}
})
const parseProperty = backtrace(() => {
let name, child
if (
(name = parseString()) &&
parseWs() &&
input[i++] === ':' &&
(child = parseTerm())
) {
return new Property(name.value, child)
}
})
const parseString = () => {
let value
if (
(value = parseQuotedString()) !== undefined ||
(value = parseRawString()) !== undefined
) {
return new StringNode(value)
}
}
const parseQuotedString = backtrace(() => {
if (input[i++] !== '"') {
return
}
const value = []
let char
while (i < n && (char = input[i++]) !== '"') {
if (char === '\\') {
char = input[i++]
}
value.push(char)
}
return value.join('')
})
const parseRawString = () => {
let value = ''
let c
while ((c = input[i]) && RAW_STRING_CHARS[c]) {
++i
value += c
}
if (value.length) {
return value
}
}
const parseTruthyProperty = backtrace(() => {
let name
if ((name = parseString()) && parseWs() && input[i++] === '?') {
return new TruthyProperty(name.value)
}
})
return input_ => {
i = 0
input = input_.split('')
n = input.length
try {
return parseTerms(And)
} finally {
input = undefined
}
}
})
// -------------------------------------------------------------------
const _getPropertyClauseStrings = ({ child }) => {
if (child instanceof Or) {
const strings = []
child.children.forEach(child => {
if (child instanceof StringNode) {
strings.push(child.value)
}
})
return strings
}
if (child instanceof StringNode) {
return [child.value]
}
return []
}
// Find possible values for property clauses in a and clause.
export const getPropertyClausesStrings = node => {
if (!node) {
return {}
}
if (node instanceof Property) {
return {
[node.name]: _getPropertyClauseStrings(node),
}
}
if (node instanceof And) {
const strings = {}
node.children.forEach(node => {
if (node instanceof Property) {
const { name } = node
const values = strings[name]
if (values) {
values.push.apply(values, _getPropertyClauseStrings(node))
} else {
strings[name] = _getPropertyClauseStrings(node)
}
}
})
return strings
}
return {}
}
// -------------------------------------------------------------------
export const setPropertyClause = (node, name, child) => {
const property = child && new Property(
name,
typeof child === 'string' ? new StringNode(child) : child
)
if (node === undefined) {
return property
}
const children = (node instanceof And ? node.children : [node]).filter(child =>
!(child instanceof Property && child.name === name)
)
if (property !== undefined) {
children.push(property)
}
return new And(children)
}

View File

@ -0,0 +1,56 @@
/* eslint-env jest */
import {
getPropertyClausesStrings,
parse,
setPropertyClause,
} from './'
import { ast, pattern } from './index.fixtures'
it('getPropertyClausesStrings', () => {
const tmp = getPropertyClausesStrings(parse('foo bar:baz baz:|(foo bar)'))
expect(tmp).toEqual({
bar: ['baz'],
baz: ['foo', 'bar'],
})
})
it('parse', () => {
expect(parse(pattern)).toEqual(ast)
})
describe('setPropertyClause', () => {
it('creates a node if none passed', () => {
expect(setPropertyClause(undefined, 'foo', 'bar').toString()).toBe('foo:bar')
})
it('adds a property clause if there was none', () => {
expect(
setPropertyClause(parse('baz'), 'foo', 'bar').toString()
).toBe('baz foo:bar')
})
it('replaces the property clause if there was one', () => {
expect(
setPropertyClause(parse('plip foo:baz plop'), 'foo', 'bar').toString()
).toBe('plip plop foo:bar')
expect(
setPropertyClause(parse('foo:|(baz plop)'), 'foo', 'bar').toString()
).toBe('foo:bar')
})
it('removes the property clause if no chid is passed', () => {
expect(
setPropertyClause(parse('foo bar:baz qux'), 'bar', undefined).toString()
).toBe('foo qux')
expect(
setPropertyClause(parse('foo bar:baz qux'), 'baz', undefined).toString()
).toBe('foo bar:baz qux')
})
})
it('toString', () => {
expect(pattern).toBe(ast.toString())
})

View File

@ -32,6 +32,7 @@ require('exec-promise')(() =>
deleteProperties(pkg, 'config', [ 'commitizen' ]) deleteProperties(pkg, 'config', [ 'commitizen' ])
deleteProperties(pkg, 'devDependencies', [ deleteProperties(pkg, 'devDependencies', [
'babel-7-jest',
'babel-eslint', 'babel-eslint',
'commitizen', 'commitizen',
'cz-conventional-changelog', 'cz-conventional-changelog',
@ -68,7 +69,7 @@ require('exec-promise')(() =>
JSON.stringify(pkg, null, 2) + '\n' JSON.stringify(pkg, null, 2) + '\n'
), ),
unlink(`${dir}/.editorconfig`), unlink(`${dir}/.editorconfig`),
unlink(`${dir}/.eslintrc`), unlink(`${dir}/.eslintrc.js`),
unlink(`${dir}/.gitignore`), unlink(`${dir}/.gitignore`),
unlink(`${dir}/.jshintrc`), unlink(`${dir}/.jshintrc`),
unlink(`${dir}/.travis.yml`), unlink(`${dir}/.travis.yml`),

470
yarn.lock
View File

@ -2,6 +2,21 @@
# yarn lockfile v1 # yarn lockfile v1
"@babel/cli@^7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.0.0-beta.35.tgz#9e180810080f29daa917747e2f08fe1b903a7e46"
dependencies:
commander "^2.8.1"
convert-source-map "^1.1.0"
fs-readdir-recursive "^1.0.0"
glob "^7.0.0"
lodash "^4.2.0"
output-file-sync "^2.0.0"
slash "^1.0.0"
source-map "^0.5.0"
optionalDependencies:
chokidar "^1.6.1"
"@babel/code-frame@7.0.0-beta.31": "@babel/code-frame@7.0.0-beta.31":
version "7.0.0-beta.31" version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.31.tgz#473d021ecc573a2cce1c07d5b509d5215f46ba35" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.31.tgz#473d021ecc573a2cce1c07d5b509d5215f46ba35"
@ -10,7 +25,7 @@
esutils "^2.0.2" esutils "^2.0.2"
js-tokens "^3.0.0" js-tokens "^3.0.0"
"@babel/code-frame@^7.0.0-beta.35": "@babel/code-frame@7.0.0-beta.35", "@babel/code-frame@^7.0.0-beta.35":
version "7.0.0-beta.35" version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.35.tgz#04eeb6dca7efef8f65776a4c214157303b85ad51" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.35.tgz#04eeb6dca7efef8f65776a4c214157303b85ad51"
dependencies: dependencies:
@ -18,6 +33,71 @@
esutils "^2.0.2" esutils "^2.0.2"
js-tokens "^3.0.0" js-tokens "^3.0.0"
"@babel/core@^7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-beta.35.tgz#69dc61d317c73177b91fdc4432619f997155b60f"
dependencies:
"@babel/code-frame" "7.0.0-beta.35"
"@babel/generator" "7.0.0-beta.35"
"@babel/helpers" "7.0.0-beta.35"
"@babel/template" "7.0.0-beta.35"
"@babel/traverse" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
babylon "7.0.0-beta.35"
convert-source-map "^1.1.0"
debug "^3.0.1"
json5 "^0.5.0"
lodash "^4.2.0"
micromatch "^2.3.11"
resolve "^1.3.2"
source-map "^0.5.0"
"@babel/generator@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.35.tgz#09798d7e714ef8a3cd6ac27afb140e21c2794cef"
dependencies:
"@babel/types" "7.0.0-beta.35"
jsesc "^2.5.1"
lodash "^4.2.0"
source-map "^0.5.0"
trim-right "^1.0.1"
"@babel/helper-annotate-as-pure@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.35.tgz#d391e76ccb1a6b417007a2b774c688539e115fdb"
dependencies:
"@babel/types" "7.0.0-beta.35"
"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.35.tgz#cc63f36ec86a7fa5bae5ec2a255c459414b4263c"
dependencies:
"@babel/helper-explode-assignable-expression" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
"@babel/helper-call-delegate@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.35.tgz#4322fd23212ff2d1855792a69cb765ee711fffb6"
dependencies:
"@babel/helper-hoist-variables" "7.0.0-beta.35"
"@babel/traverse" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
"@babel/helper-define-map@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.35.tgz#38dea093c57565dc50ac96ead46e355e12985ced"
dependencies:
"@babel/helper-function-name" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
lodash "^4.2.0"
"@babel/helper-explode-assignable-expression@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.35.tgz#f88536e506bf1df2d6ec4b975df8324aa37b4b08"
dependencies:
"@babel/traverse" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
"@babel/helper-function-name@7.0.0-beta.31": "@babel/helper-function-name@7.0.0-beta.31":
version "7.0.0-beta.31" version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.31.tgz#afe63ad799209989348b1109b44feb66aa245f57" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.31.tgz#afe63ad799209989348b1109b44feb66aa245f57"
@ -27,12 +107,338 @@
"@babel/traverse" "7.0.0-beta.31" "@babel/traverse" "7.0.0-beta.31"
"@babel/types" "7.0.0-beta.31" "@babel/types" "7.0.0-beta.31"
"@babel/helper-function-name@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.35.tgz#b2fc51a59fe95fcc56ee5e9db21c500606ea2fab"
dependencies:
"@babel/helper-get-function-arity" "7.0.0-beta.35"
"@babel/template" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
"@babel/helper-get-function-arity@7.0.0-beta.31": "@babel/helper-get-function-arity@7.0.0-beta.31":
version "7.0.0-beta.31" version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.31.tgz#1176d79252741218e0aec872ada07efb2b37a493" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.31.tgz#1176d79252741218e0aec872ada07efb2b37a493"
dependencies: dependencies:
"@babel/types" "7.0.0-beta.31" "@babel/types" "7.0.0-beta.31"
"@babel/helper-get-function-arity@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.35.tgz#7f3c86d6646527a03423d42cf0fd06a26718d7cb"
dependencies:
"@babel/types" "7.0.0-beta.35"
"@babel/helper-hoist-variables@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.35.tgz#b4fcbafe5c18bc90c6cdad8969ba0dc6bb64e664"
dependencies:
"@babel/types" "7.0.0-beta.35"
"@babel/helper-module-imports@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz#308e350e731752cdb4d0f058df1d704925c64e0a"
dependencies:
"@babel/types" "7.0.0-beta.35"
lodash "^4.2.0"
"@babel/helper-module-transforms@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.35.tgz#2219dfb9e470704235bbb3477ac63a946a2b3812"
dependencies:
"@babel/helper-module-imports" "7.0.0-beta.35"
"@babel/helper-simple-access" "7.0.0-beta.35"
"@babel/template" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
lodash "^4.2.0"
"@babel/helper-optimise-call-expression@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.35.tgz#3adc8c5347b4a8d4ef8b117d99535f6fa3b61a71"
dependencies:
"@babel/types" "7.0.0-beta.35"
"@babel/helper-regex@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-beta.35.tgz#b3f33c8151cb7c1e3de9cc7a5402a5de57e74902"
dependencies:
lodash "^4.2.0"
"@babel/helper-remap-async-to-generator@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.35.tgz#272aecf58ae20cd6d4582766fe106c6d77104e1c"
dependencies:
"@babel/helper-annotate-as-pure" "7.0.0-beta.35"
"@babel/helper-wrap-function" "7.0.0-beta.35"
"@babel/template" "7.0.0-beta.35"
"@babel/traverse" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
"@babel/helper-replace-supers@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.35.tgz#fb59070aba45002d09898c8dfb8f8ac05bde4d19"
dependencies:
"@babel/helper-optimise-call-expression" "7.0.0-beta.35"
"@babel/template" "7.0.0-beta.35"
"@babel/traverse" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
"@babel/helper-simple-access@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.35.tgz#1e7221daa67261f541d9125a4f7a1fc7badf884e"
dependencies:
"@babel/template" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
lodash "^4.2.0"
"@babel/helper-wrap-function@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.35.tgz#2fb82e91842e0bbdc67fc60babf156b6fa781239"
dependencies:
"@babel/helper-function-name" "7.0.0-beta.35"
"@babel/template" "7.0.0-beta.35"
"@babel/traverse" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
"@babel/helpers@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-beta.35.tgz#8cde270b68c227dca8cb35cd30c6eb3e5a280c09"
dependencies:
"@babel/template" "7.0.0-beta.35"
"@babel/traverse" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
"@babel/plugin-check-constants@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-check-constants/-/plugin-check-constants-7.0.0-beta.35.tgz#18cca7d9fbba746171c879ced7c69defbdc8bc11"
"@babel/plugin-proposal-async-generator-functions@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.35.tgz#7f55a538b0f347e13504c9301807a16b8b5b5cc9"
dependencies:
"@babel/helper-remap-async-to-generator" "7.0.0-beta.35"
"@babel/plugin-syntax-async-generators" "7.0.0-beta.35"
"@babel/plugin-proposal-object-rest-spread@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.35.tgz#e5b4e4521bb847cd4931720b5f4472835b5e3c68"
dependencies:
"@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.35"
"@babel/plugin-proposal-optional-catch-binding@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.35.tgz#44d6e492243e442ab1a686c96ed851b55a459223"
dependencies:
"@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.35"
"@babel/plugin-proposal-unicode-property-regex@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.35.tgz#687d134d5e3638f1ded6d334455d576368d73ee1"
dependencies:
"@babel/helper-regex" "7.0.0-beta.35"
regexpu-core "^4.1.3"
"@babel/plugin-syntax-async-generators@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.35.tgz#ff672774420f1fa1cedc407ba0c33e8503339198"
"@babel/plugin-syntax-object-rest-spread@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.35.tgz#da521551c5439fdd32025bd26299d99fd704df95"
"@babel/plugin-syntax-optional-catch-binding@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.35.tgz#a2451f5dd30f858d31ec55ce12602f43d2cf5cdc"
"@babel/plugin-transform-arrow-functions@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.35.tgz#c9764114c629bf1ef0037339b1b05267a5e4aab1"
"@babel/plugin-transform-async-to-generator@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.35.tgz#fd83aa60c374f91f549f1ecea39a766702cb15f0"
dependencies:
"@babel/helper-module-imports" "7.0.0-beta.35"
"@babel/helper-remap-async-to-generator" "7.0.0-beta.35"
"@babel/plugin-transform-block-scoped-functions@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.35.tgz#7bf54e90261fdf33b152b3a249ecf2ec6b649338"
"@babel/plugin-transform-block-scoping@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.35.tgz#065a1bfebe60be2c1c433edfad20591df4ef76f5"
dependencies:
lodash "^4.2.0"
"@babel/plugin-transform-classes@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.35.tgz#ae1367d9c41081528f87d5770f6b8c6ee7141b52"
dependencies:
"@babel/helper-annotate-as-pure" "7.0.0-beta.35"
"@babel/helper-define-map" "7.0.0-beta.35"
"@babel/helper-function-name" "7.0.0-beta.35"
"@babel/helper-optimise-call-expression" "7.0.0-beta.35"
"@babel/helper-replace-supers" "7.0.0-beta.35"
"@babel/plugin-transform-computed-properties@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.35.tgz#2e42ac7d57935c725471e19a1a6127072f3bc2da"
"@babel/plugin-transform-destructuring@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.35.tgz#b08d63ca71b54805735681175f0451c7587855b5"
"@babel/plugin-transform-duplicate-keys@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.35.tgz#c0409a2d2d8a4718b0abea3a8fd136fdf3b4ff3e"
"@babel/plugin-transform-exponentiation-operator@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.35.tgz#a5470fad798a7052596e19fefbb6f391b17ac6e8"
dependencies:
"@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.35"
"@babel/plugin-transform-for-of@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.35.tgz#50774c6c1cf68a38493ee76d34acb7b55470e05f"
"@babel/plugin-transform-function-name@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.35.tgz#efad92ef7c63bc34b4f3379f319bcafdccce7b7f"
dependencies:
"@babel/helper-function-name" "7.0.0-beta.35"
"@babel/plugin-transform-literals@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.35.tgz#c0634fc137702afd7ae77829a41be45c4fa530ca"
"@babel/plugin-transform-modules-amd@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.35.tgz#3d26e48a481938983b9f067daf9b3458717419b7"
dependencies:
"@babel/helper-module-transforms" "7.0.0-beta.35"
"@babel/plugin-transform-modules-commonjs@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.35.tgz#b5b85b47d4cef093ce974a55d5012532f0a2b182"
dependencies:
"@babel/helper-module-transforms" "7.0.0-beta.35"
"@babel/helper-simple-access" "7.0.0-beta.35"
"@babel/plugin-transform-modules-systemjs@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.35.tgz#ef9704902423054fa6326f9d0596aa3a46e5be80"
dependencies:
"@babel/helper-hoist-variables" "7.0.0-beta.35"
"@babel/plugin-transform-modules-umd@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.35.tgz#ca3fbd3f00752310a75c9a97f21f37c1df00c902"
dependencies:
"@babel/helper-module-transforms" "7.0.0-beta.35"
"@babel/plugin-transform-new-target@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.35.tgz#457fd711ff6d554c9cd6fc9d5e139e0375739d17"
"@babel/plugin-transform-object-super@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.35.tgz#768dd11a3d336a96b42fde9f2c4437c19ab548b4"
dependencies:
"@babel/helper-replace-supers" "7.0.0-beta.35"
"@babel/plugin-transform-parameters@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.35.tgz#6c44edc8218df6afc635d65593bf391a0482993c"
dependencies:
"@babel/helper-call-delegate" "7.0.0-beta.35"
"@babel/helper-get-function-arity" "7.0.0-beta.35"
"@babel/plugin-transform-regenerator@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.35.tgz#91d87172445d0238dde257e01de74c63fa92c818"
dependencies:
regenerator-transform "^0.12.2"
"@babel/plugin-transform-shorthand-properties@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.35.tgz#20077ee7a82d5845d4ecf03e2d11aa13f6b6a4d4"
"@babel/plugin-transform-spread@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.35.tgz#aa5c0fa12c01d23b8f02d367e66b49715d4b77a4"
"@babel/plugin-transform-sticky-regex@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.35.tgz#ee70fed27bf78e407d2338519db09176cca73597"
dependencies:
"@babel/helper-regex" "7.0.0-beta.35"
"@babel/plugin-transform-template-literals@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.35.tgz#fc27efe898e3716066d65742afae7d811eed8667"
dependencies:
"@babel/helper-annotate-as-pure" "7.0.0-beta.35"
"@babel/plugin-transform-typeof-symbol@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.35.tgz#ab8a83cf44fa63556471622ae886a14187e118c2"
"@babel/plugin-transform-unicode-regex@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.35.tgz#0cb1148921dbabfb819221754b9a54d5cf8fb443"
dependencies:
"@babel/helper-regex" "7.0.0-beta.35"
regexpu-core "^4.1.3"
"@babel/polyfill@^7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.0.0-beta.35.tgz#49d033c4fdfa54a3a11e8f87239530141650d47a"
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.11.1"
"@babel/preset-env@^7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0-beta.35.tgz#634431813b14ebe841f293fbf459a3ffa61d7ef6"
dependencies:
"@babel/plugin-check-constants" "7.0.0-beta.35"
"@babel/plugin-proposal-async-generator-functions" "7.0.0-beta.35"
"@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.35"
"@babel/plugin-proposal-optional-catch-binding" "7.0.0-beta.35"
"@babel/plugin-proposal-unicode-property-regex" "7.0.0-beta.35"
"@babel/plugin-syntax-async-generators" "7.0.0-beta.35"
"@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.35"
"@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.35"
"@babel/plugin-transform-arrow-functions" "7.0.0-beta.35"
"@babel/plugin-transform-async-to-generator" "7.0.0-beta.35"
"@babel/plugin-transform-block-scoped-functions" "7.0.0-beta.35"
"@babel/plugin-transform-block-scoping" "7.0.0-beta.35"
"@babel/plugin-transform-classes" "7.0.0-beta.35"
"@babel/plugin-transform-computed-properties" "7.0.0-beta.35"
"@babel/plugin-transform-destructuring" "7.0.0-beta.35"
"@babel/plugin-transform-duplicate-keys" "7.0.0-beta.35"
"@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.35"
"@babel/plugin-transform-for-of" "7.0.0-beta.35"
"@babel/plugin-transform-function-name" "7.0.0-beta.35"
"@babel/plugin-transform-literals" "7.0.0-beta.35"
"@babel/plugin-transform-modules-amd" "7.0.0-beta.35"
"@babel/plugin-transform-modules-commonjs" "7.0.0-beta.35"
"@babel/plugin-transform-modules-systemjs" "7.0.0-beta.35"
"@babel/plugin-transform-modules-umd" "7.0.0-beta.35"
"@babel/plugin-transform-new-target" "7.0.0-beta.35"
"@babel/plugin-transform-object-super" "7.0.0-beta.35"
"@babel/plugin-transform-parameters" "7.0.0-beta.35"
"@babel/plugin-transform-regenerator" "7.0.0-beta.35"
"@babel/plugin-transform-shorthand-properties" "7.0.0-beta.35"
"@babel/plugin-transform-spread" "7.0.0-beta.35"
"@babel/plugin-transform-sticky-regex" "7.0.0-beta.35"
"@babel/plugin-transform-template-literals" "7.0.0-beta.35"
"@babel/plugin-transform-typeof-symbol" "7.0.0-beta.35"
"@babel/plugin-transform-unicode-regex" "7.0.0-beta.35"
browserslist "^2.4.0"
invariant "^2.2.2"
semver "^5.3.0"
"@babel/template@7.0.0-beta.31": "@babel/template@7.0.0-beta.31":
version "7.0.0-beta.31" version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.31.tgz#577bb29389f6c497c3e7d014617e7d6713f68bda" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.31.tgz#577bb29389f6c497c3e7d014617e7d6713f68bda"
@ -42,6 +448,15 @@
babylon "7.0.0-beta.31" babylon "7.0.0-beta.31"
lodash "^4.2.0" lodash "^4.2.0"
"@babel/template@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.35.tgz#459230417f51c29401cf71162aeeff6cef2bcca7"
dependencies:
"@babel/code-frame" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
babylon "7.0.0-beta.35"
lodash "^4.2.0"
"@babel/traverse@7.0.0-beta.31": "@babel/traverse@7.0.0-beta.31":
version "7.0.0-beta.31" version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.31.tgz#db399499ad74aefda014f0c10321ab255134b1df" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.31.tgz#db399499ad74aefda014f0c10321ab255134b1df"
@ -55,6 +470,19 @@
invariant "^2.2.0" invariant "^2.2.0"
lodash "^4.2.0" lodash "^4.2.0"
"@babel/traverse@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.35.tgz#c91819807b7ac256d2f6dd5aaa94d4c66e06bbc5"
dependencies:
"@babel/code-frame" "7.0.0-beta.35"
"@babel/helper-function-name" "7.0.0-beta.35"
"@babel/types" "7.0.0-beta.35"
babylon "7.0.0-beta.35"
debug "^3.0.1"
globals "^10.0.0"
invariant "^2.2.0"
lodash "^4.2.0"
"@babel/types@7.0.0-beta.31": "@babel/types@7.0.0-beta.31":
version "7.0.0-beta.31" version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.31.tgz#42c9c86784f674c173fb21882ca9643334029de4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.31.tgz#42c9c86784f674c173fb21882ca9643334029de4"
@ -63,6 +491,14 @@
lodash "^4.2.0" lodash "^4.2.0"
to-fast-properties "^2.0.0" to-fast-properties "^2.0.0"
"@babel/types@7.0.0-beta.35":
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.35.tgz#cf933a9a9a38484ca724b335b88d83726d5ab960"
dependencies:
esutils "^2.0.2"
lodash "^4.2.0"
to-fast-properties "^2.0.0"
"@marsaud/smb2-promise@^0.2.0": "@marsaud/smb2-promise@^0.2.0":
version "0.2.1" version "0.2.1"
resolved "https://registry.yarnpkg.com/@marsaud/smb2-promise/-/smb2-promise-0.2.1.tgz#fee95f4baba6e4d930e8460d3377aa12560e0f0e" resolved "https://registry.yarnpkg.com/@marsaud/smb2-promise/-/smb2-promise-0.2.1.tgz#fee95f4baba6e4d930e8460d3377aa12560e0f0e"
@ -359,6 +795,13 @@ aws4@^1.2.1, aws4@^1.6.0:
version "1.6.0" version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
babel-7-jest@^21.3.2:
version "21.3.2"
resolved "https://registry.yarnpkg.com/babel-7-jest/-/babel-7-jest-21.3.2.tgz#bdc3d053094779f2c497d8f45bf2ec6d78a78bd8"
dependencies:
babel-plugin-istanbul "^4.1.5"
babel-preset-jest "^21.2.0"
babel-cli@^6.18.0, babel-cli@^6.24.1: babel-cli@^6.18.0, babel-cli@^6.24.1:
version "6.26.0" version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
@ -748,6 +1191,10 @@ babel-plugin-istanbul@^4.1.5:
istanbul-lib-instrument "^1.7.5" istanbul-lib-instrument "^1.7.5"
test-exclude "^4.1.1" test-exclude "^4.1.1"
babel-plugin-jest-hoist@^21.2.0:
version "21.2.0"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006"
babel-plugin-jest-hoist@^22.0.3: babel-plugin-jest-hoist@^22.0.3:
version "22.0.3" version "22.0.3"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.0.3.tgz#62cde5fe962fd41ae89c119f481ca5cd7dd48bb4" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.0.3.tgz#62cde5fe962fd41ae89c119f481ca5cd7dd48bb4"
@ -1344,6 +1791,13 @@ babel-preset-flow@^7.0.0-beta.3:
dependencies: dependencies:
babel-plugin-transform-flow-strip-types "7.0.0-beta.3" babel-plugin-transform-flow-strip-types "7.0.0-beta.3"
babel-preset-jest@^21.2.0:
version "21.2.0"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638"
dependencies:
babel-plugin-jest-hoist "^21.2.0"
babel-plugin-syntax-object-rest-spread "^6.13.0"
babel-preset-jest@^22.0.3: babel-preset-jest@^22.0.3:
version "22.0.3" version "22.0.3"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.0.3.tgz#e2bb6f6b4a509d3ea0931f013db78c5a84856693" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.0.3.tgz#e2bb6f6b4a509d3ea0931f013db78c5a84856693"
@ -1458,6 +1912,10 @@ babylon@7.0.0-beta.31:
version "7.0.0-beta.31" version "7.0.0-beta.31"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.31.tgz#7ec10f81e0e456fd0f855ad60fa30c2ac454283f" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.31.tgz#7ec10f81e0e456fd0f855ad60fa30c2ac454283f"
babylon@7.0.0-beta.35:
version "7.0.0-beta.35"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.35.tgz#9f9e609ed50c28d4333f545b373a381b47e9e6ed"
babylon@^6.18.0: babylon@^6.18.0:
version "6.18.0" version "6.18.0"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
@ -1911,7 +2369,7 @@ cron@^1.1.0, cron@^1.2.1:
dependencies: dependencies:
moment-timezone "^0.5.x" moment-timezone "^0.5.x"
cross-env@^5.1.3: cross-env@^5.1.1, cross-env@^5.1.3:
version "5.1.3" version "5.1.3"
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.3.tgz#f8ae18faac87692b0a8b4d2f7000d4ec3a85dfd7" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.3.tgz#f8ae18faac87692b0a8b4d2f7000d4ec3a85dfd7"
dependencies: dependencies:
@ -5108,7 +5566,7 @@ regenerator-runtime@^0.10.5:
version "0.10.5" version "0.10.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
regenerator-runtime@^0.11.0: regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1:
version "0.11.1" version "0.11.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
@ -5127,6 +5585,12 @@ regenerator-transform@^0.11.0:
babel-types "7.0.0-beta.3" babel-types "7.0.0-beta.3"
private "^0.1.6" private "^0.1.6"
regenerator-transform@^0.12.2:
version "0.12.2"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.12.2.tgz#55c038e9203086b445c67fcd77422eb53a4c406b"
dependencies:
private "^0.1.6"
regex-cache@^0.4.2: regex-cache@^0.4.2:
version "0.4.4" version "0.4.4"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"