diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 37f5b4ee..00000000 --- a/.babelrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "plugins": [ - "transform-es2015-modules-umd", - "transform-object-assign" - ], - "presets": [ - "es2015" - ] -} diff --git a/.gitignore b/.gitignore index 1fe1b00e..1768744f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .idea/ node_modules/ +build.js +.DS_Store diff --git a/.travis.yml b/.travis.yml index a00fbac5..f4fd5846 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,8 @@ language: node_js node_js: - - "0.10" - - "0.12" - "4" - "5" - "6" + - "7" + - "8" + - "node" diff --git a/changelog.md b/CHANGELOG.md similarity index 65% rename from changelog.md rename to CHANGELOG.md index 19143c66..2f03286c 100644 --- a/changelog.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## v2.0.0 +- Over-escaped identifier's value fixing (https://github.com/vtrushin/json-to-ast/issues/17) +- Changed case for node type names +- Changed option "verbose" parameter to "loc" +- Changed "rawValue" to "raw" +- Added "raw" to "Identifier" node +- Added pretty message output + ## v2.0.0-alpha1.4 - Changed error's view diff --git a/README.md b/README.md new file mode 100644 index 00000000..0af8351f --- /dev/null +++ b/README.md @@ -0,0 +1,139 @@ +[npm-icon]: https://img.shields.io/npm/v/json-to-ast.svg +[npm-downloads-icon]: https://img.shields.io/npm/dm/json-to-ast.svg +[npm-url]: https://www.npmjs.com/package/json-to-ast + +[node-versions-icon]: https://img.shields.io/node/v/json-to-ast.svg +[node-url]: https://nodejs.org + +[test-icon]: https://travis-ci.org/vtrushin/json-to-ast.svg?branch=master +[test-url]: https://travis-ci.org/vtrushin/json-to-ast + +[coverage-icon]: https://coveralls.io/repos/github/vtrushin/json-to-ast/badge.svg?branch=master +[coverage-url]: https://coveralls.io/github/vtrushin/json-to-ast?branch=master + +[astexplorer-url]: https://astexplorer.net/#/gist/6e328cf76a27ca85e552c9cb583cdd74/1077c8842337972509a29bc9063d17bf90a1a492 + +# JSON AST parser + +[![NPM][npm-icon]][npm-url] +[![NPM downloads][npm-downloads-icon]][npm-url] +[![Requirements][node-versions-icon]][node-url] +[![Travis-CI][test-icon]][test-url] + +## Install +``` +> npm install json-to-ast +``` + +## Usage + +```js +const parse = require('json-to-ast'); + +const settings = { + // Appends location information. Default is + loc: true, + // Appends source information to node’s location. Default is + source: 'data.json' +}; + +parse('{"a": 1}', settings); +``` + +Output +```js +{ + type: 'Object', + children: [ + { + type: 'Property', + key: { + type: 'Identifier', + value: 'a', + raw: '"a"', + loc: { + start: { line: 1, column: 2, offset: 1 }, + end: { line: 1, column: 5, offset: 4 }, + source: 'data.json' + } + }, + value: { + type: 'Literal', + value: 1, + raw: '1', + loc: { + start: { line: 1, column: 7, offset: 6 }, + end: { line: 1, column: 8, offset: 7 }, + source: 'data.json' + } + }, + loc: { + start: { line: 1, column: 2, offset: 1 }, + end: { line: 1, column: 8, offset: 7 }, + source: 'data.json' + } + } + ], + loc: { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 9, offset: 8 }, + source: 'data.json' + } +} +``` + +## Node types + +Object: +```js +{ + type: 'Object', + children: , + loc?: Object +} +``` + +Property: +```js +{ + type: 'Property', + key: , + value: , + loc?: Object +} +``` + +Identifier: +```js +{ + type: 'Identifier', + value: String, + raw: String, + loc?: Object +} +``` + +Array: +```js +{ + type: 'Array', + children: <(Object | Array | Literal)[]>, + loc?: Object +} +``` + +Literal: +```js +{ + type: 'Literal', + value: String | Number | Boolean | null, + raw: String, + loc?: Object +} +``` + +## AST explorer +[Try it online][astexplorer-url] on [astexplorer.net](https://astexplorer.net/) + +## License +MIT diff --git a/dist/.gitignore b/dist/.gitignore deleted file mode 100644 index 2f41fac0..00000000 --- a/dist/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!.gitignore -!.npmignore diff --git a/dist/.npmignore b/dist/.npmignore deleted file mode 100644 index 2f463383..00000000 --- a/dist/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!parse.js diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index dbf38813..00000000 --- a/gulpfile.js +++ /dev/null @@ -1,38 +0,0 @@ -var del = require('del'); -var gulp = require('gulp'); -var rollup = require('gulp-rollup'); -var babel = require('gulp-babel'); -var handleErrors = require('./utils/handleErrors'); - -var src = './src'; -var dist = './dist'; -var distJsPath = dist; - -gulp.task('default', [ - 'clean', - 'es6', - 'es6:watch' -]); - -// Delete the dist directory -gulp.task('clean', function(){ - return del([dist + '/*']); -}); - -gulp.task('es6', function(){ - gulp.src(src + '/parse.js') - .pipe( - rollup({ - format: 'cjs' - }) - .on('error', handleErrors) - ) - .pipe( - babel().on('error', handleErrors) - ) - .pipe(gulp.dest(distJsPath)) -}); - -gulp.task('es6:watch', function () { - gulp.watch(src + '/**/*.js', ['es6']); -}); diff --git a/index.js b/index.js new file mode 100644 index 00000000..86664aea --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +import parse from './lib/parse'; + +export default parse; diff --git a/lib/create-error.js b/lib/create-error.js new file mode 100644 index 00000000..b191f026 --- /dev/null +++ b/lib/create-error.js @@ -0,0 +1,19 @@ +const errorStack = (new Error()).stack; + +export default props => { + // use Object.create(), because some VMs prevent setting line/column otherwise + // (iOS Safari 10 even throws an exception) + const error = Object.create(SyntaxError.prototype); + + Object.assign(error, props, { + name: 'SyntaxError' + }); + + Object.defineProperty(error, 'stack', { + get() { + return errorStack ? errorStack.replace(/^(.+\n){1,3}/, String(error) + '\n') : ''; + } + }); + + return error; +} diff --git a/lib/error.js b/lib/error.js new file mode 100644 index 00000000..9a03b048 --- /dev/null +++ b/lib/error.js @@ -0,0 +1,14 @@ +import codeErrorFragment from 'code-error-fragment'; +import createError from './create-error'; + +export default (message, input, source, line, column) => { + throw createError({ + message: line + ? message + '\n' + codeErrorFragment(input, line, column) + : message, + rawMessage: message, + source, + line, + column + }); +} diff --git a/src/location.js b/lib/location.js similarity index 100% rename from src/location.js rename to lib/location.js diff --git a/src/parse.js b/lib/parse.js similarity index 75% rename from src/parse.js rename to lib/parse.js index 82af7225..c663ab63 100644 --- a/src/parse.js +++ b/lib/parse.js @@ -1,15 +1,7 @@ import location from './location'; import error from './error'; import parseErrorTypes from './parseErrorTypes'; -import {tokenize, tokenTypes} from './tokenize'; - -const literals = [ - tokenTypes.STRING, - tokenTypes.NUMBER, - tokenTypes.TRUE, - tokenTypes.FALSE, - tokenTypes.NULL -]; +import { tokenize, tokenTypes } from './tokenize'; const objectStates = { _START_: 0, @@ -32,12 +24,12 @@ const arrayStates = { }; const defaultSettings = { - verbose: true, + loc: true, source: null }; function errorEof(input, tokenList, settings) { - var loc = tokenList.length > 0 + const loc = tokenList.length > 0 ? tokenList[tokenList.length - 1].loc.end : { line: 1, column: 1 }; @@ -50,11 +42,60 @@ function errorEof(input, tokenList, settings) { ); } +/** @param hexCode {string} hexCode without '\u' prefix */ +function parseHexEscape(hexCode) { + let charCode = 0; + + for (let i = 0; i < 4; i ++) { + charCode = charCode * 16 + parseInt(hexCode[i], 16); + } + + return String.fromCharCode(charCode); +} + +const escapes = { + 'b': '\b', // Backspace + 'f': '\f', // Form feed + 'n': '\n', // New line + 'r': '\r', // Carriage return + 't': '\t' // Horizontal tab +}; + +const passEscapes = ['"', '\\', '/']; + +/** @param {string} string */ +function parseString(string) { + let result = ''; + + for (let i = 0; i < string.length; i ++) { + const char = string.charAt(i); + + if (char === '\\') { + i ++; + const nextChar = string.charAt(i); + if (nextChar === 'u') { + result += parseHexEscape(string.substr(i + 1, 4)); + i += 4; + } else if (passEscapes.indexOf(nextChar) !== -1) { + result += nextChar; + } else if (nextChar in escapes) { + result += escapes[nextChar]; + } else { + break; + } + } else { + result += char; + } + } + + return result; +} + function parseObject(input, tokenList, index, settings) { // object: LEFT_BRACE (property (COMMA property)*)? RIGHT_BRACE let startToken; - let object = { - type: 'object', + const object = { + type: 'Object', children: [] }; let state = objectStates._START_; @@ -76,7 +117,7 @@ function parseObject(input, tokenList, index, settings) { case objectStates.OPEN_OBJECT: { if (token.type === tokenTypes.RIGHT_BRACE) { - if (settings.verbose) { + if (settings.loc) { object.loc = location( startToken.loc.start.line, startToken.loc.start.column, @@ -102,7 +143,7 @@ function parseObject(input, tokenList, index, settings) { case objectStates.PROPERTY: { if (token.type === tokenTypes.RIGHT_BRACE) { - if (settings.verbose) { + if (settings.loc) { object.loc = location( startToken.loc.start.line, startToken.loc.start.column, @@ -168,8 +209,8 @@ function parseObject(input, tokenList, index, settings) { function parseProperty(input, tokenList, index, settings) { // property: STRING COLON value let startToken; - let property = { - type: 'property', + const property = { + type: 'Property', key: null, value: null }; @@ -182,10 +223,11 @@ function parseProperty(input, tokenList, index, settings) { case propertyStates._START_: { if (token.type === tokenTypes.STRING) { const key = { - type: 'identifier', - value: token.value + type: 'Identifier', + value: parseString(input.slice(token.loc.start.offset + 1, token.loc.end.offset - 1)), + raw: token.value }; - if (settings.verbose) { + if (settings.loc) { key.loc = token.loc; } startToken = token; @@ -222,7 +264,7 @@ function parseProperty(input, tokenList, index, settings) { case propertyStates.COLON: { const value = parseValue(input, tokenList, index, settings); property.value = value.value; - if (settings.verbose) { + if (settings.loc) { property.loc = location( startToken.loc.start.line, startToken.loc.start.column, @@ -246,8 +288,8 @@ function parseProperty(input, tokenList, index, settings) { function parseArray(input, tokenList, index, settings) { // array: LEFT_BRACKET (value (COMMA value)*)? RIGHT_BRACKET let startToken; - let array = { - type: 'array', + const array = { + type: 'Array', children: [] }; let state = arrayStates._START_; @@ -270,7 +312,7 @@ function parseArray(input, tokenList, index, settings) { case arrayStates.OPEN_ARRAY: { if (token.type === tokenTypes.RIGHT_BRACKET) { - if (settings.verbose) { + if (settings.loc) { array.loc = location( startToken.loc.start.line, startToken.loc.start.column, @@ -286,7 +328,7 @@ function parseArray(input, tokenList, index, settings) { index: index + 1 }; } else { - let value = parseValue(input, tokenList, index, settings); + const value = parseValue(input, tokenList, index, settings); index = value.index; array.children.push(value.value); state = arrayStates.VALUE; @@ -296,7 +338,7 @@ function parseArray(input, tokenList, index, settings) { case arrayStates.VALUE: { if (token.type === tokenTypes.RIGHT_BRACKET) { - if (settings.verbose) { + if (settings.loc) { array.loc = location( startToken.loc.start.line, startToken.loc.start.column, @@ -307,10 +349,9 @@ function parseArray(input, tokenList, index, settings) { settings.source ); } - index ++; return { value: array, - index + index: index + 1 }; } else if (token.type === tokenTypes.COMMA) { state = arrayStates.COMMA; @@ -333,7 +374,7 @@ function parseArray(input, tokenList, index, settings) { } case arrayStates.COMMA: { - let value = parseValue(input, tokenList, index, settings); + const value = parseValue(input, tokenList, index, settings); index = value.index; array.children.push(value.value); state = arrayStates.VALUE; @@ -348,25 +389,46 @@ function parseArray(input, tokenList, index, settings) { function parseLiteral(input, tokenList, index, settings) { // literal: STRING | NUMBER | TRUE | FALSE | NULL const token = tokenList[index]; + let value = null; - const isLiteral = literals.indexOf(token.type) !== -1; - - if (isLiteral) { - const literal = { - type: 'literal', - value: token.value, - rawValue: input.substring(token.loc.start.offset, token.loc.end.offset) - }; - if (settings.verbose) { - literal.loc = token.loc; + switch (token.type) { + case tokenTypes.STRING: { + value = parseString(input.slice(token.loc.start.offset + 1, token.loc.end.offset - 1)); + break; + } + case tokenTypes.NUMBER: { + value = Number(token.value); + break; + } + case tokenTypes.TRUE: { + value = true; + break; + } + case tokenTypes.FALSE: { + value = false; + break; + } + case tokenTypes.NULL: { + value = null; + break; } - return { - value: literal, - index: index + 1 + default: { + return null; } } - return null; + const literal = { + type: 'Literal', + value, + raw: token.value + }; + if (settings.loc) { + literal.loc = token.loc; + } + return { + value: literal, + index: index + 1 + } } function parseValue(input, tokenList, index, settings) { @@ -399,6 +461,7 @@ function parseValue(input, tokenList, index, settings) { export default (input, settings) => { settings = Object.assign({}, defaultSettings, settings); + const tokenList = tokenize(input, settings); if (tokenList.length === 0) { @@ -409,19 +472,20 @@ export default (input, settings) => { if (value.index === tokenList.length) { return value.value; - } else { - const token = tokenList[value.index]; - error( - parseErrorTypes.unexpectedToken( - input.substring(token.loc.start.offset, token.loc.end.offset), - settings.source, - token.loc.start.line, - token.loc.start.column - ), - input, + } + + const token = tokenList[value.index]; + + error( + parseErrorTypes.unexpectedToken( + input.substring(token.loc.start.offset, token.loc.end.offset), settings.source, token.loc.start.line, token.loc.start.column - ); - } + ), + input, + settings.source, + token.loc.start.line, + token.loc.start.column + ); } diff --git a/src/parseErrorTypes.js b/lib/parseErrorTypes.js similarity index 100% rename from src/parseErrorTypes.js rename to lib/parseErrorTypes.js diff --git a/src/tokenize.js b/lib/tokenize.js similarity index 94% rename from src/tokenize.js rename to lib/tokenize.js index 272fd2af..e819a18f 100644 --- a/src/tokenize.js +++ b/lib/tokenize.js @@ -25,10 +25,10 @@ const punctuatorTokensMap = { // Lexeme: Token ',': tokenTypes.COMMA }; -const keywordTokensMap = { // Lexeme: Token config - 'true': { type: tokenTypes.TRUE, value: true }, - 'false': { type: tokenTypes.FALSE, value: false }, - 'null': { type: tokenTypes.NULL, value: null } +const keywordTokensMap = { // Lexeme: Token + 'true': tokenTypes.TRUE, + 'false': tokenTypes.FALSE, + 'null': tokenTypes.NULL }; const stringStates = { @@ -131,14 +131,12 @@ function parseChar(input, index, line, column) { function parseKeyword(input, index, line, column) { for (const name in keywordTokensMap) { if (keywordTokensMap.hasOwnProperty(name) && input.substr(index, name.length) === name) { - const {type, value} = keywordTokensMap[name]; - return { - type, + type: keywordTokensMap[name], line, column: column + name.length, index: index + name.length, - value + value: name }; } } @@ -148,6 +146,7 @@ function parseKeyword(input, index, line, column) { function parseString(input, index, line, column) { const startIndex = index; + let passedValueIndex = index; let buffer = ''; let state = stringStates._START_; @@ -157,8 +156,8 @@ function parseString(input, index, line, column) { switch (state) { case stringStates._START_: { if (char === '"') { - state = stringStates.START_QUOTE_OR_CHAR; index ++; + state = stringStates.START_QUOTE_OR_CHAR; } else { return null; } @@ -167,19 +166,22 @@ function parseString(input, index, line, column) { case stringStates.START_QUOTE_OR_CHAR: { if (char === '\\') { - state = stringStates.ESCAPE; buffer += char; index ++; + passedValueIndex = index; + state = stringStates.ESCAPE; } else if (char === '"') { index ++; + passedValueIndex = index; return { type: tokenTypes.STRING, line, column: column + index - startIndex, index, - value: buffer + value: input.slice(startIndex, passedValueIndex) }; } else { + passedValueIndex = index + 1; buffer += char; index ++; } @@ -190,6 +192,7 @@ function parseString(input, index, line, column) { if (char in escapes) { buffer += char; index ++; + passedValueIndex = index; if (char === 'u') { for (let i = 0; i < 4; i ++) { const curChar = input.charAt(index); @@ -324,7 +327,7 @@ function parseNumber(input, index, line, column) { line, column: column + passedValueIndex - startIndex, index: passedValueIndex, - value: parseFloat(input.substring(startIndex, passedValueIndex)) + value: input.slice(startIndex, passedValueIndex) }; } diff --git a/src/tokenizeErrorTypes.js b/lib/tokenizeErrorTypes.js similarity index 100% rename from src/tokenizeErrorTypes.js rename to lib/tokenizeErrorTypes.js diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..de9732e4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6373 @@ +{ + "name": "json-to-ast", + "version": "2.0.0-alpha1.4", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.0", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "detect-indent": { + "version": "4.0.0", + "resolved": "http://sinopia.msk.avito.ru/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + }, + "dependencies": { + "repeating": { + "version": "2.0.1", + "resolved": "http://sinopia.msk.avito.ru/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + }, + "dependencies": { + "is-finite": { + "version": "1.0.2", + "resolved": "http://sinopia.msk.avito.ru/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "resolved": "http://sinopia.msk.avito.ru/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + } + } + } + } + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "http://sinopia.msk.avito.ru/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "http://sinopia.msk.avito.ru/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + }, + "dependencies": { + "os-homedir": { + "version": "1.0.2", + "resolved": "http://sinopia.msk.avito.ru/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "http://sinopia.msk.avito.ru/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://sinopia.msk.avito.ru/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://sinopia.msk.avito.ru/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "http://sinopia.msk.avito.ru/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "json5": { + "version": "0.5.1", + "resolved": "http://sinopia.msk.avito.ru/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "http://sinopia.msk.avito.ru/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.8", + "resolved": "http://sinopia.msk.avito.ru/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "http://sinopia.msk.avito.ru/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "http://sinopia.msk.avito.ru/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + } + } + } + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "http://sinopia.msk.avito.ru/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "http://sinopia.msk.avito.ru/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "http://sinopia.msk.avito.ru/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + } + } + }, + "babel-plugin-external-helpers": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz", + "integrity": "sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" + }, + "dependencies": { + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + } + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + }, + "dependencies": { + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + } + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + }, + "dependencies": { + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + }, + "dependencies": { + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha1-DDNtOYBVPXVcObWGrjsgqknIK38=", + "dev": true + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "http://sinopia.se.avito.ru/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "http://sinopia.se.avito.ru/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "http://sinopia.se.avito.ru/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + } + } + } + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "0.10.1" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", + "dev": true + } + } + } + } + } + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-generator-functions": "6.24.1", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-object-rest-spread": "6.26.0" + }, + "dependencies": { + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-generators": "6.13.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + }, + "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "http://sinopia.msk.avito.ru/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "http://sinopia.msk.avito.ru/globals/-/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "http://sinopia.msk.avito.ru/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.3.1", + "resolved": "http://sinopia.msk.avito.ru/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "esutils": { + "version": "2.0.2", + "resolved": "http://sinopia.msk.avito.ru/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "http://sinopia.msk.avito.ru/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + } + } + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha1-flT+W1zNXWYk6mJVw0c74JC4AuE=", + "dev": true + } + } + } + } + } + } + }, + "code-error-fragment": { + "version": "0.0.222", + "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.222.tgz", + "integrity": "sha512-2xCTj7nZ0Yd6/PwrbyhnSOeGhKjjK5cbMT84EsNvZCIlwA/6FIkXOkXopJ02rJ+DcvAQsoEKHJJ+cZbuixHAZw==", + "dev": true + }, + "coveralls": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", + "integrity": "sha1-mtfCrlJ0F/Nh6LYmSD9I7pLdK8c=", + "dev": true, + "requires": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, + "dependencies": { + "js-yaml": { + "version": "3.6.1", + "resolved": "http://sinopia.se.avito.ru/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + }, + "dependencies": { + "argparse": { + "version": "1.0.9", + "resolved": "http://sinopia.msk.avito.ru/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "http://sinopia.msk.avito.ru/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "http://sinopia.msk.avito.ru/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + } + } + }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3", + "uuid": "3.1.0" + }, + "dependencies": { + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + }, + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + }, + "dependencies": { + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + } + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.11.0", + "is-my-json-valid": "2.16.1", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "http://sinopia.msk.avito.ru/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://sinopia.msk.avito.ru/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://sinopia.msk.avito.ru/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha1-FXFS/R56bI2YpbcVzzdt+SgARWM=", + "dev": true + }, + "is-my-json-valid": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", + "integrity": "sha1-WoRnd+LCYg0eaRBOXToDsfYIjxE=", + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + }, + "dependencies": { + "generate-function": { + "version": "2.0.0", + "resolved": "http://sinopia.msk.avito.ru/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "http://sinopia.msk.avito.ru/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + }, + "dependencies": { + "is-property": { + "version": "1.0.2", + "resolved": "http://sinopia.msk.avito.ru/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + } + } + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "http://sinopia.msk.avito.ru/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "http://sinopia.msk.avito.ru/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "http://sinopia.msk.avito.ru/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + }, + "dependencies": { + "pinkie": { + "version": "2.0.4", + "resolved": "http://sinopia.msk.avito.ru/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + } + } + } + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + }, + "dependencies": { + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + }, + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "http://sinopia.msk.avito.ru/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + } + } + } + } + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + } + } + } + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "http://sinopia.se.avito.ru/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "dev": true, + "requires": { + "mime-db": "1.30.0" + }, + "dependencies": { + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "dev": true + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "dev": true, + "requires": { + "punycode": "1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=", + "dev": true + } + } + } + } + }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "dev": true, + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "dev": true + }, + "debug": { + "version": "2.2.0", + "resolved": "http://sinopia.msk.avito.ru/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + }, + "dependencies": { + "ms": { + "version": "0.7.1", + "resolved": "http://sinopia.msk.avito.ru/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "http://sinopia.msk.avito.ru/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + } + } + } + } + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://sinopia.msk.avito.ru/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://sinopia.msk.avito.ru/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true + }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", + "dev": true + } + } + }, + "rollup": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.50.0.tgz", + "integrity": "sha1-TBWPTngObLM/8Nv8GEpSzFjNXzs=", + "dev": true + }, + "rollup-plugin-babel": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-3.0.2.tgz", + "integrity": "sha1-onZd6g6qiuzjUcmDVzMA0XSXSVs=", + "dev": true, + "requires": { + "rollup-pluginutils": "1.5.2" + }, + "dependencies": { + "rollup-pluginutils": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz", + "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=", + "dev": true, + "requires": { + "estree-walker": "0.2.1", + "minimatch": "3.0.4" + }, + "dependencies": { + "estree-walker": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz", + "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "http://sinopia.msk.avito.ru/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.8", + "resolved": "http://sinopia.msk.avito.ru/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "http://sinopia.msk.avito.ru/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "http://sinopia.msk.avito.ru/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + } + } + } + } + } + } + } + } + }, + "rollup-plugin-node-resolve": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz", + "integrity": "sha1-i4l8TDAw1QASd7BRSyXSygloPuA=", + "dev": true, + "requires": { + "browser-resolve": "1.11.2", + "builtin-modules": "1.1.1", + "is-module": "1.0.0", + "resolve": "1.4.0" + }, + "dependencies": { + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "http://sinopia.msk.avito.ru/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "http://sinopia.msk.avito.ru/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "resolve": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", + "integrity": "sha1-p1vgHFPaJdk0qY69DkxKcxL5KoY=", + "dev": true, + "requires": { + "path-parse": "1.0.5" + }, + "dependencies": { + "path-parse": { + "version": "1.0.5", + "resolved": "http://sinopia.msk.avito.ru/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + } + } + } + } + } + } +} diff --git a/package.json b/package.json index 69d13016..d4c5c193 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "json-to-ast", - "version": "2.0.0-alpha1.4", - "description": "JSON parser with AST output", + "version": "2.0.0", "author": "Vlad Trushin", + "description": "JSON AST parser", "homepage": "https://github.com/vtrushin/json-to-ast", "repository": "vtrushin/json-to-ast", "maintainers": [ @@ -12,35 +12,42 @@ "github-username": "vtrushin" } ], - "license": "MIT", "keywords": [ - "json", + "json-parser", "parser", - "ast" + "ast", + "json", + "tree" ], - "main": "dist/parse.js", + "main": "build.js", "files": [ - "dist", + "build.js", "LICENSE", - "readme.md" + "README.md", + "CHANGELOG.md" ], + "engines": { + "node": ">= 4" + }, "scripts": { - "build": "gulp es6", - "watch": "gulp es6:watch", + "build": "rollup -c", + "watch": "rollup -c -w", + "pretest": "npm run build", "test": "mocha", - "prepublish": "npm run build" + "prepublishOnly": "npm run build" }, "devDependencies": { - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-object-assign": "^6.8.0", - "babel-polyfill": "^6.3.14", - "babel-preset-es2015": "^6.6.0", + "babel-core": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-plugin-external-helpers": "^6.22.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-stage-3": "^6.24.1", + "code-error-fragment": "0.0.226", "coveralls": "^2.11.9", - "del": "^2.0.2", - "gulp": "^3.9.0", - "gulp-babel": "^6.1.2", - "gulp-notify": "^2.2.0", - "gulp-rollup": "^1.7.0", - "mocha": "^2.4.5" - } + "mocha": "^2.4.5", + "rollup": "^0.50.0", + "rollup-plugin-babel": "^3.0.2", + "rollup-plugin-node-resolve": "^3.0.0" + }, + "license": "MIT" } diff --git a/readme.md b/readme.md deleted file mode 100644 index c67fa585..00000000 --- a/readme.md +++ /dev/null @@ -1,120 +0,0 @@ -# JSON AST parser - -[![NPM version](https://img.shields.io/npm/v/json-to-ast.svg)](https://www.npmjs.com/package/json-to-ast) -[![NPM Downloads](https://img.shields.io/npm/dm/json-to-ast.svg)](https://www.npmjs.com/package/json-to-ast) -[![Build Status](https://travis-ci.org/vtrushin/json-to-ast.svg?branch=master)](https://travis-ci.org/vtrushin/json-to-ast) - - -## Install -``` -> npm install json-to-ast -``` - -## Usage - -```js -var parse = require('json-to-ast'); - -var settings = { - verbose: true, // Show additional information, like node’s location. Default is - source: 'data.json' // Adds source information to node’s location. Default is -}; - -parse('{"a": 1}', settings); -``` - -Output -```js -{ - type: 'object', - children: [ - { - type: 'property', - key: { - type: 'identifier', - value: 'a', - loc: { - start: { line: 1, column: 2, offset: 1 }, - end: { line: 1, column: 5, offset: 4 }, - source: 'data.json' - } - }, - value: { - type: 'literal', - value: 1, - rawValue: '1', - loc: { - start: { line: 1, column: 7, offset: 6 }, - end: { line: 1, column: 8, offset: 7 }, - source: 'data.json' - } - }, - loc: { - start: { line: 1, column: 2, offset: 1 }, - end: { line: 1, column: 8, offset: 7 }, - source: 'data.json' - } - } - ], - loc: { - start: { line: 1, column: 1, offset: 0 }, - end: { line: 1, column: 9, offset: 8 }, - source: 'data.json' - } -} -``` - -## Node types - -object: -```js -{ - type: 'object', - children: , - loc: Object | null -} -``` - -property: -```js -{ - type: 'property', - key: , - value: any, - loc: Object | null -} -``` - -identifier: -```js -{ - type: 'identifier', - value: String, - loc: Object | null -} -``` - -array: -```js -{ - type: 'array', - children: , - loc: Object | null -} -``` - -literal: -```js -{ - type: 'literal', - value: String | Number | Boolean | null, - rawValue: String, - loc: Object | null -} -``` - -## AST explorer -[Try it online](https://astexplorer.net/#/gist/6e328cf76a27ca85e552c9cb583cdd74/1077c8842337972509a29bc9063d17bf90a1a492) on [astexplorer.net](https://astexplorer.net/) - -## License -MIT diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 00000000..0d785d91 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,33 @@ +import resolve from 'rollup-plugin-node-resolve'; +import babel from 'rollup-plugin-babel'; +import { list as babelHelpersList } from 'babel-helpers'; + +export default { + input: 'index.js', + name: 'jsonToAst', + output: { + file: 'build.js', + format: 'umd' + }, + plugins: [ + resolve(), + babel({ + exclude: 'node_modules/**', + presets: [ + ['es2015', { + modules: false + }], + 'stage-3' + ], + plugins: [ + 'external-helpers' + ], + // fixing temporary rollup's regression, remove when https://github.com/rollup/rollup/issues/1595 gets solved + externalHelpersWhitelist: babelHelpersList.filter(helperName => helperName !== 'asyncGenerator'), + }) + ], + watch: { + include: 'lib/*.js', + exclude: 'node_modules/**' + } +} diff --git a/src/error.js b/src/error.js deleted file mode 100644 index c1604623..00000000 --- a/src/error.js +++ /dev/null @@ -1,75 +0,0 @@ -const FRAGMENT_MAX_LENGTH = 20; -const OVERFLOW_SYMBOLS = '\u2026'; // … - -const EXTRA_LINES = 2; -const MAX_LINE_LENGTH = 100; -const OFFSET_CORRECTION = 60; -const TAB_REPLACEMENT = ' '; - -function sourceFragment(input, line, column) { - function printLines(start, end) { - return lines.slice(start, end).map(function(line, idx) { - let num = String(start + idx + 1); - - while (num.length < maxNumLength) { - num = ' ' + num; - } - - return num + ' |' + line; - }).join('\n'); - } - - let lines = input.split(/\r\n?|\n|\f/); - let startLine = Math.max(1, line - EXTRA_LINES) - 1; - let endLine = Math.min(line + EXTRA_LINES, lines.length + 1); - let maxNumLength = Math.max(4, String(endLine).length) + 1; - let cutLeft = 0; - - // column correction according to replaced tab before column - column += (TAB_REPLACEMENT.length - 1) * (lines[line - 1].substr(0, column - 1).match(/\t/g) || []).length; - - if (column > MAX_LINE_LENGTH) { - cutLeft = column - OFFSET_CORRECTION + 3; - column = OFFSET_CORRECTION - 2; - } - - for (let i = startLine; i <= endLine; i++) { - if (i >= 0 && i < lines.length) { - lines[i] = lines[i].replace(/\t/g, TAB_REPLACEMENT); - lines[i] = - (cutLeft > 0 && lines[i].length > cutLeft ? OVERFLOW_SYMBOLS : '') + - lines[i].substr(cutLeft, MAX_LINE_LENGTH - 2) + - (lines[i].length > cutLeft + MAX_LINE_LENGTH - 1 ? OVERFLOW_SYMBOLS : ''); - } - } - - return [ - printLines(startLine, line), - new Array(column + maxNumLength + 2).join('-') + '^', - printLines(line, endLine) - ].filter(Boolean).join('\n'); -} - -export default (message, input, source, line, column) => { - // use Object.create(), because some VMs prevent setting line/column otherwise - // (iOS Safari 10 even throws an exception) - let error = Object.create(SyntaxError.prototype); - let errorStack = new Error(); - - error.name = 'SyntaxError'; - error.message = line - ? message + '\n' + sourceFragment(input, line, column) - : message; - error.rawMessage = message; - error.source = source; - error.line = line; - error.column = column; - - Object.defineProperty(error, 'stack', { - get: function() { - return (errorStack.stack || '').replace(/^(.+\n){1,3}/, String(error) + '\n'); - } - }); - - throw error; -} diff --git a/test/cases/right/big-non-verbosed.js b/test/cases/right/big-non-verbosed.js deleted file mode 100644 index f3f750fc..00000000 --- a/test/cases/right/big-non-verbosed.js +++ /dev/null @@ -1,133 +0,0 @@ -var types = require('../../types'); -var object = types.createObject; -var key = types.createObjectKey; -var prop = types.createObjectProperty; -var array = types.createArray; -var string = types.createString; -var number = types.createNumber; -var _true = types.createTrue; -var _false = types.createFalse; - -var ast = array([ - object([ - prop(key('_id'), string('574d7238062156c6d9e6de99')), - prop(key('index'), number(0)), - prop(key('guid'), string('c99bf348-0345-49fd-be52-d0da82bdd47f')), - prop(key('isActive'), _true()), - prop(key('balance'), string('$1,087.03')), - prop(key('picture'), string('http://placehold.it/32x32')), - prop(key('age'), number(25)), - prop(key('eyeColor'), string('brown')), - prop(key('name'), object([ - prop(key('first'), string('Stacie')), - prop(key('last'), string('Sargent')) - ])), - prop(key('company'), string('DAISU')), - prop(key('email'), string('stacie.sargent@daisu.com')), - prop(key('phone'), string('+1 (830) 537-3936')), - prop(key('address'), string('547 Charles Place, Weogufka, Marshall Islands, 6627')), - prop(key('about'), string('Exercitation nisi incididunt exercitation sit Lorem nostrud commodo incididunt cillum amet. Laboris proident non nostrud dolor esse exercitation enim sit culpa Lorem qui. Laborum aliquip pariatur mollit aute. Et consequat Lorem in cillum sunt dolore aute voluptate anim commodo. Excepteur labore proident consequat nulla occaecat in consequat minim.')), - prop(key('registered'), string('Sunday, October 4, 2015 3:58 PM')), - prop(key('latitude'), string('45.437159')), - prop(key('longitude'), string('-77.052972')), - prop(key('tags'), array([ - string('veniam'), - string('et'), - string('cillum'), - string('ex'), - string('nisi') - ])), - prop(key('range'), array([ - number(0), - number(1), - number(2), - number(3), - number(4), - number(5), - number(6), - number(7), - number(8), - number(9) - ])), - prop(key('friends'), array([ - object([ - prop(key('id'), number(0)), - prop(key('name'), string('Juliana Valentine')) - ]), - object([ - prop(key('id'), number(1)), - prop(key('name'), string('Robert Eaton')) - ]), - object([ - prop(key('id'), number(2)), - prop(key('name'), string('Socorro Herrera')) - ]) - ])), - prop(key('greeting'), string('Hello, Stacie! You have 6 unread messages.')), - prop(key('favoriteFruit'), string('banana')) - ]), - object([ - prop(key('_id'), string('574d7238bd4c01db9e4a4d5b')), - prop(key('index'), number(1)), - prop(key('guid'), string('5fd3fc48-e39e-4ee4-bc3a-6eb12bed2653')), - prop(key('isActive'), _false()), - prop(key('balance'), string('$1,696.52')), - prop(key('picture'), string('http://placehold.it/32x32')), - prop(key('age'), number(32)), - prop(key('eyeColor'), string('blue')), - prop(key('name'), object([ - prop(key('first'), string('Ada')), - prop(key('last'), string('Stokes')) - ])), - prop(key('company'), string('FARMAGE')), - prop(key('email'), string('ada.stokes@farmage.biz')), - prop(key('phone'), string('+1 (875) 486-3569')), - prop(key('address'), string('361 Howard Place, Wyano, Michigan, 346')), - prop(key('about'), string('Culpa esse laboris enim occaecat voluptate non reprehenderit officia amet eu ad laboris officia. Exercitation qui occaecat veniam ea tempor. Reprehenderit laborum magna occaecat sit tempor eiusmod est quis ea. Sunt minim labore et eu ex. Pariatur do proident nisi sunt commodo. Deserunt est ad pariatur laboris officia. Pariatur anim deserunt excepteur voluptate amet.')), - prop(key('registered'), string('Wednesday, April 16, 2014 7:23 PM')), - prop(key('latitude'), string('-45.133396')), - prop(key('longitude'), string('43.593917')), - prop(key('tags'), array([ - string('qui'), - string('eiusmod'), - string('nisi'), - string('officia'), - string('in') - ])), - prop(key('range'), array([ - number(0), - number(1), - number(2), - number(3), - number(4), - number(5), - number(6), - number(7), - number(8), - number(9) - ])), - prop(key('friends'), array([ - object([ - prop(key('id'), number(0)), - prop(key('name'), string('Campos Pruitt')) - ]), - object([ - prop(key('id'), number(1)), - prop(key('name'), string('Barnett Sykes')) - ]), - object([ - prop(key('id'), number(2)), - prop(key('name'), string('Trudy Collier')) - ]) - ])), - prop(key('greeting'), string('Hello, Ada! You have 8 unread messages.')), - prop(key('favoriteFruit'), string('banana')) - ]) -]); - -module.exports = { - ast: ast, - options: { - verbose: false - } -}; diff --git a/test/cases/right/deep.js b/test/cases/right/deep.js deleted file mode 100644 index aabbe186..00000000 --- a/test/cases/right/deep.js +++ /dev/null @@ -1,30 +0,0 @@ -var types = require('../../types'); -var key = types.createObjectKey; -var location = types.location; -var object = types.createObject; -var prop = types.createObjectProperty; -var array = types.createArray; -var string = types.createString; - -var n = array([string('n')]/*, location()*/); -var m = array([string('m'), n]/*, location()*/); -var l = array([string('l'), m]/*, location()*/); -var k = array([string('k'), l]/*, location()*/); -var j = array([string('j'), k]/*, location()*/); -var i = array([string('i'), j]/*, location()*/); -var h = array([string('h'), i]/*, location()*/); -var g = object([prop(key('g'), h)]/*, location()*/); -var f = object([prop(key('f'), g)]/*, location()*/); -var e = object([prop(key('e'), f)]/*, location()*/); -var d = object([prop(key('d'), e)]/*, location()*/); -var c = object([prop(key('c'), d)]/*, location()*/); -var b = object([prop(key('b'/*, location(3, 5, 15, 3, 8, 18)*/), c)]/*, location()*/); -var a = object([prop(key('a'/*, location(2, 3, 4, 2, 6, 7)*/), b)]/*, location(1, 1, 0, 29, 2, 516)*/); - -module.exports = { - ast: a, - options: { - verbose: false - } -}; - diff --git a/test/cases/right/literals.js b/test/cases/right/literals.js deleted file mode 100644 index 946b4290..00000000 --- a/test/cases/right/literals.js +++ /dev/null @@ -1,51 +0,0 @@ -var types = require('../../types'); -var key = types.createObjectKey; -var location = types.location; -var object = types.createObject; -var prop = types.createObjectProperty; -var string = types.createString; -var _null = types.createNull; -var _true = types.createTrue; -var _false = types.createFalse; - -var ast = - object([ - prop( - key('a', location(2, 3, 4, 2, 6, 7)), - _null(location(2, 8, 9, 2, 12, 13)), - location(2, 3, 4, 2, 12, 13) - ), - prop( - key('b', location(3, 3, 17, 3, 6, 20)), - string('null', location(3, 8, 22, 3, 14, 28)), - location(3, 3, 17, 3, 14, 28) - ), - prop( - key('c', location(4, 3, 32, 4, 6, 35)), - _true(location(4, 8, 37, 4, 12, 41)), - location(4, 3, 32, 4, 12, 41) - ), - prop( - key('d', location(5, 3, 45, 5, 6, 48)), - string('true', location(5, 8, 50, 5, 14, 56)), - location(5, 3, 45, 5, 14, 56) - ), - prop( - key('e', location(6, 3, 60, 6, 6, 63)), - _false(location(6, 8, 65, 6, 13, 70)), - location(6, 3, 60, 6, 13, 70) - ), - prop( - key('f', location(7, 3, 74, 7, 6, 77)), - string('false', location(7, 8, 79, 7, 15, 86)), - location(7, 3, 74, 7, 15, 86) - ) - ], location(1, 1, 0, 8, 2, 88)); - -module.exports = { - ast: ast, - options: { - verbose: true - } -}; - diff --git a/test/cases/right/number-only.js b/test/cases/right/number-only.js deleted file mode 100644 index 152ca6c5..00000000 --- a/test/cases/right/number-only.js +++ /dev/null @@ -1,10 +0,0 @@ -var types = require('../../types'); -var location = types.location; -var number = types.createNumber; - -module.exports = { - ast: number('12345', location(1, 1, 0, 1, 6, 5)), - options: { - verbose: true - } -}; diff --git a/test/cases/right/simple-key-value-number.js b/test/cases/right/simple-key-value-number.js deleted file mode 100644 index 999842dd..00000000 --- a/test/cases/right/simple-key-value-number.js +++ /dev/null @@ -1,21 +0,0 @@ -var types = require('../../types'); -var object = types.createObject; -var key = types.createObjectKey; -var prop = types.createObjectProperty; -var literal = types.createLiteral; -var number = types.createNumber; - -var ast = - object([ - prop(key('a'), number(1)), - prop(key('b'), number(1.2)), - prop(key('c'), literal(1200, '1.2e3')), - prop(key('d'), literal(0.0012, '1.2e-3')) - ]); - -module.exports = { - ast: ast, - options: { - verbose: false - } -}; diff --git a/test/cases/right/simple-key-value-number.json b/test/cases/right/simple-key-value-number.json deleted file mode 100644 index aba142a4..00000000 --- a/test/cases/right/simple-key-value-number.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "a": 1, - "b": 1.2, - "c": 1.2e3, - "d": 1.2e-3 -} diff --git a/test/cases/right/string-escaping.js b/test/cases/right/string-escaping.js deleted file mode 100644 index 1157d41c..00000000 --- a/test/cases/right/string-escaping.js +++ /dev/null @@ -1,23 +0,0 @@ -var types = require('../../types'); -var object = types.createObject; -var key = types.createObjectKey; -var prop = types.createObjectProperty; -var string = types.createString; - -var ast = object([ - prop(key('quota\\\"tion'), string('reverse\\\\solidus')), - prop(key('soli\\/dus'), string('back\\bspace')), - prop(key('form\\ffeed'), string('new\\nline')), - prop(key('re\\rturn'), string('tab\\tsymbol')), - prop(key('hex\\u0001digit'), string('')), - prop(key('\\\"\\\"\\\"\\\"'), string('\\\\\\\\\\\\')), - prop(key('\\/'), string('\\b')), - prop(key('\\\"\\/'), string('\\\"\\\\\\/\\b\\f\\n\\r\\t\\u0001')) -]); - -module.exports = { - ast: ast, - options: { - verbose: false - } -}; diff --git a/test/cases/right/string-only.js b/test/cases/right/string-only.js deleted file mode 100644 index 0f374fda..00000000 --- a/test/cases/right/string-only.js +++ /dev/null @@ -1,10 +0,0 @@ -var types = require('../../types'); -var location = types.location; -var string = types.createString; - -module.exports = { - ast: string('Some text', location(1, 1, 0, 1, 12, 11)), - options: { - verbose: true - } -}; diff --git a/test/cases/right/symbols.js b/test/cases/right/symbols.js deleted file mode 100644 index bd168e28..00000000 --- a/test/cases/right/symbols.js +++ /dev/null @@ -1,31 +0,0 @@ -var types = require('../../types'); -var object = types.createObject; -var key = types.createObjectKey; -var prop = types.createObjectProperty; -var array = types.createArray; -var string = types.createString; -var number = types.createNumber; - -var ast = object([ - prop(key('a<'), number('2')), - prop(key('b)'), object([ - prop(key('c('), array([ - string('3!'), - string('4:'), - string('5;'), - string('6\'') - ])), - prop(key('d&'), object([ - prop(key('e!'), string('~_~')) - ])), - prop(key(':e'), string('|')), - prop(key(' f '), string('*±*∆')) - ])) -]); - -module.exports = { - ast: ast, - options: { - verbose: false - } -}; diff --git a/test/error.js b/test/error.js index 45780327..3440a30d 100644 --- a/test/error.js +++ b/test/error.js @@ -1,5 +1,5 @@ var assert = require('assert'); -var parse = require('../dist/parse.js'); +var parse = require('../build.js'); describe('Error messages', function() { it('unexpected symbol', function() { @@ -12,20 +12,6 @@ describe('Error messages', function() { assert.equal(e.source, 'path/to/file.json'); assert.equal(e.line, 2); assert.equal(e.column, 12); - assert.equal(e.message, [ - 'Unexpected symbol at path/to/file.json:2:12', - ' 1 |{', - ' 2 | "foo": incorrect', - '------------------^', - ' 3 |}' - ].join('\n')); - assert.equal(String(e), [ - 'SyntaxError: Unexpected symbol at path/to/file.json:2:12', - ' 1 |{', - ' 2 | "foo": incorrect', - '------------------^', - ' 3 |}' - ].join('\n')); return true; }); @@ -41,18 +27,6 @@ describe('Error messages', function() { assert.equal(e.source, 'path/to/file.json'); assert.equal(e.line, 2); assert.equal(e.column, 15); - assert.equal(e.message, [ - 'Unexpected end of input', - ' 1 |{', - ' 2 | "foo": 123', - '---------------------^' - ].join('\n')); - assert.equal(String(e), [ - 'SyntaxError: Unexpected end of input', - ' 1 |{', - ' 2 | "foo": 123', - '---------------------^' - ].join('\n')); return true; }); @@ -68,20 +42,6 @@ describe('Error messages', function() { assert.equal(e.source, 'path/to/file.json'); assert.equal(e.line, 3); assert.equal(e.column, 2); - assert.equal(e.message, [ - 'Unexpected token <}> at path/to/file.json:3:2', - ' 1 |{', - ' 2 | "foo": 123', - ' 3 |}}', - '--------^' - ].join('\n')); - assert.equal(String(e), [ - 'SyntaxError: Unexpected token <}> at path/to/file.json:3:2', - ' 1 |{', - ' 2 | "foo": 123', - ' 3 |}}', - '--------^' - ].join('\n')); return true; }); diff --git a/test/cases/wrong/_n_structure_100000_opening_arrays.json b/test/fixtures/invalid/_n_structure_100000_opening_arrays.json similarity index 100% rename from test/cases/wrong/_n_structure_100000_opening_arrays.json rename to test/fixtures/invalid/_n_structure_100000_opening_arrays.json diff --git a/test/cases/wrong/_n_structure_open_array_object.json b/test/fixtures/invalid/_n_structure_open_array_object.json similarity index 100% rename from test/cases/wrong/_n_structure_open_array_object.json rename to test/fixtures/invalid/_n_structure_open_array_object.json diff --git a/test/cases/wrong/array-trailing-comma.js b/test/fixtures/invalid/array-trailing-comma.js similarity index 100% rename from test/cases/wrong/array-trailing-comma.js rename to test/fixtures/invalid/array-trailing-comma.js diff --git a/test/cases/wrong/array-trailing-comma.json b/test/fixtures/invalid/array-trailing-comma.json similarity index 100% rename from test/cases/wrong/array-trailing-comma.json rename to test/fixtures/invalid/array-trailing-comma.json diff --git a/test/cases/wrong/array-unclosed.js b/test/fixtures/invalid/array-unclosed.js similarity index 100% rename from test/cases/wrong/array-unclosed.js rename to test/fixtures/invalid/array-unclosed.js diff --git a/test/cases/wrong/array-unclosed.json b/test/fixtures/invalid/array-unclosed.json similarity index 100% rename from test/cases/wrong/array-unclosed.json rename to test/fixtures/invalid/array-unclosed.json diff --git a/test/cases/wrong/empty.js b/test/fixtures/invalid/empty.js similarity index 100% rename from test/cases/wrong/empty.js rename to test/fixtures/invalid/empty.js diff --git a/test/cases/wrong/empty.json b/test/fixtures/invalid/empty.json similarity index 100% rename from test/cases/wrong/empty.json rename to test/fixtures/invalid/empty.json diff --git a/test/cases/wrong/n_array_1_true_without_comma.json b/test/fixtures/invalid/n_array_1_true_without_comma.json similarity index 100% rename from test/cases/wrong/n_array_1_true_without_comma.json rename to test/fixtures/invalid/n_array_1_true_without_comma.json diff --git a/test/cases/wrong/n_array_a_invalid_utf8.json b/test/fixtures/invalid/n_array_a_invalid_utf8.json similarity index 100% rename from test/cases/wrong/n_array_a_invalid_utf8.json rename to test/fixtures/invalid/n_array_a_invalid_utf8.json diff --git a/test/cases/wrong/n_array_colon_instead_of_comma.json b/test/fixtures/invalid/n_array_colon_instead_of_comma.json similarity index 100% rename from test/cases/wrong/n_array_colon_instead_of_comma.json rename to test/fixtures/invalid/n_array_colon_instead_of_comma.json diff --git a/test/cases/wrong/n_array_comma_after_close.json b/test/fixtures/invalid/n_array_comma_after_close.json similarity index 100% rename from test/cases/wrong/n_array_comma_after_close.json rename to test/fixtures/invalid/n_array_comma_after_close.json diff --git a/test/cases/wrong/n_array_comma_and_number.json b/test/fixtures/invalid/n_array_comma_and_number.json similarity index 100% rename from test/cases/wrong/n_array_comma_and_number.json rename to test/fixtures/invalid/n_array_comma_and_number.json diff --git a/test/cases/wrong/n_array_double_comma.json b/test/fixtures/invalid/n_array_double_comma.json similarity index 100% rename from test/cases/wrong/n_array_double_comma.json rename to test/fixtures/invalid/n_array_double_comma.json diff --git a/test/cases/wrong/n_array_double_extra_comma.json b/test/fixtures/invalid/n_array_double_extra_comma.json similarity index 100% rename from test/cases/wrong/n_array_double_extra_comma.json rename to test/fixtures/invalid/n_array_double_extra_comma.json diff --git a/test/cases/wrong/n_array_extra_close.json b/test/fixtures/invalid/n_array_extra_close.json similarity index 100% rename from test/cases/wrong/n_array_extra_close.json rename to test/fixtures/invalid/n_array_extra_close.json diff --git a/test/cases/wrong/n_array_extra_comma.json b/test/fixtures/invalid/n_array_extra_comma.json similarity index 100% rename from test/cases/wrong/n_array_extra_comma.json rename to test/fixtures/invalid/n_array_extra_comma.json diff --git a/test/cases/wrong/n_array_incomplete.json b/test/fixtures/invalid/n_array_incomplete.json similarity index 100% rename from test/cases/wrong/n_array_incomplete.json rename to test/fixtures/invalid/n_array_incomplete.json diff --git a/test/cases/wrong/n_array_incomplete_invalid_value.json b/test/fixtures/invalid/n_array_incomplete_invalid_value.json similarity index 100% rename from test/cases/wrong/n_array_incomplete_invalid_value.json rename to test/fixtures/invalid/n_array_incomplete_invalid_value.json diff --git a/test/cases/wrong/n_array_inner_array_no_comma.json b/test/fixtures/invalid/n_array_inner_array_no_comma.json similarity index 100% rename from test/cases/wrong/n_array_inner_array_no_comma.json rename to test/fixtures/invalid/n_array_inner_array_no_comma.json diff --git a/test/cases/wrong/n_array_invalid_utf8.json b/test/fixtures/invalid/n_array_invalid_utf8.json similarity index 100% rename from test/cases/wrong/n_array_invalid_utf8.json rename to test/fixtures/invalid/n_array_invalid_utf8.json diff --git a/test/cases/wrong/n_array_items_separated_by_semicolon.json b/test/fixtures/invalid/n_array_items_separated_by_semicolon.json similarity index 100% rename from test/cases/wrong/n_array_items_separated_by_semicolon.json rename to test/fixtures/invalid/n_array_items_separated_by_semicolon.json diff --git a/test/cases/wrong/n_array_just_comma.json b/test/fixtures/invalid/n_array_just_comma.json similarity index 100% rename from test/cases/wrong/n_array_just_comma.json rename to test/fixtures/invalid/n_array_just_comma.json diff --git a/test/cases/wrong/n_array_just_minus.json b/test/fixtures/invalid/n_array_just_minus.json similarity index 100% rename from test/cases/wrong/n_array_just_minus.json rename to test/fixtures/invalid/n_array_just_minus.json diff --git a/test/cases/wrong/n_array_missing_value.json b/test/fixtures/invalid/n_array_missing_value.json similarity index 100% rename from test/cases/wrong/n_array_missing_value.json rename to test/fixtures/invalid/n_array_missing_value.json diff --git a/test/cases/wrong/n_array_newlines_unclosed.json b/test/fixtures/invalid/n_array_newlines_unclosed.json similarity index 100% rename from test/cases/wrong/n_array_newlines_unclosed.json rename to test/fixtures/invalid/n_array_newlines_unclosed.json diff --git a/test/cases/wrong/n_array_number_and_comma.json b/test/fixtures/invalid/n_array_number_and_comma.json similarity index 100% rename from test/cases/wrong/n_array_number_and_comma.json rename to test/fixtures/invalid/n_array_number_and_comma.json diff --git a/test/cases/wrong/n_array_number_and_several_commas.json b/test/fixtures/invalid/n_array_number_and_several_commas.json similarity index 100% rename from test/cases/wrong/n_array_number_and_several_commas.json rename to test/fixtures/invalid/n_array_number_and_several_commas.json diff --git a/test/cases/wrong/n_array_spaces_vertical_tab_formfeed.json b/test/fixtures/invalid/n_array_spaces_vertical_tab_formfeed.json similarity index 100% rename from test/cases/wrong/n_array_spaces_vertical_tab_formfeed.json rename to test/fixtures/invalid/n_array_spaces_vertical_tab_formfeed.json diff --git a/test/cases/wrong/n_array_star_inside.json b/test/fixtures/invalid/n_array_star_inside.json similarity index 100% rename from test/cases/wrong/n_array_star_inside.json rename to test/fixtures/invalid/n_array_star_inside.json diff --git a/test/cases/wrong/n_array_unclosed.json b/test/fixtures/invalid/n_array_unclosed.json similarity index 100% rename from test/cases/wrong/n_array_unclosed.json rename to test/fixtures/invalid/n_array_unclosed.json diff --git a/test/cases/wrong/n_array_unclosed_trailing_comma.json b/test/fixtures/invalid/n_array_unclosed_trailing_comma.json similarity index 100% rename from test/cases/wrong/n_array_unclosed_trailing_comma.json rename to test/fixtures/invalid/n_array_unclosed_trailing_comma.json diff --git a/test/cases/wrong/n_array_unclosed_with_new_lines.json b/test/fixtures/invalid/n_array_unclosed_with_new_lines.json similarity index 100% rename from test/cases/wrong/n_array_unclosed_with_new_lines.json rename to test/fixtures/invalid/n_array_unclosed_with_new_lines.json diff --git a/test/cases/wrong/n_array_unclosed_with_object_inside.json b/test/fixtures/invalid/n_array_unclosed_with_object_inside.json similarity index 100% rename from test/cases/wrong/n_array_unclosed_with_object_inside.json rename to test/fixtures/invalid/n_array_unclosed_with_object_inside.json diff --git a/test/cases/wrong/n_incomplete_false.json b/test/fixtures/invalid/n_incomplete_false.json similarity index 100% rename from test/cases/wrong/n_incomplete_false.json rename to test/fixtures/invalid/n_incomplete_false.json diff --git a/test/cases/wrong/n_incomplete_null.json b/test/fixtures/invalid/n_incomplete_null.json similarity index 100% rename from test/cases/wrong/n_incomplete_null.json rename to test/fixtures/invalid/n_incomplete_null.json diff --git a/test/cases/wrong/n_incomplete_true.json b/test/fixtures/invalid/n_incomplete_true.json similarity index 100% rename from test/cases/wrong/n_incomplete_true.json rename to test/fixtures/invalid/n_incomplete_true.json diff --git a/test/cases/wrong/n_multidigit_number_then_00.json b/test/fixtures/invalid/n_multidigit_number_then_00.json similarity index 100% rename from test/cases/wrong/n_multidigit_number_then_00.json rename to test/fixtures/invalid/n_multidigit_number_then_00.json diff --git a/test/cases/wrong/n_number_++.json b/test/fixtures/invalid/n_number_++.json similarity index 100% rename from test/cases/wrong/n_number_++.json rename to test/fixtures/invalid/n_number_++.json diff --git a/test/cases/wrong/n_number_+1.json b/test/fixtures/invalid/n_number_+1.json similarity index 100% rename from test/cases/wrong/n_number_+1.json rename to test/fixtures/invalid/n_number_+1.json diff --git a/test/cases/wrong/n_number_+Inf.json b/test/fixtures/invalid/n_number_+Inf.json similarity index 100% rename from test/cases/wrong/n_number_+Inf.json rename to test/fixtures/invalid/n_number_+Inf.json diff --git a/test/cases/wrong/n_number_-01.json b/test/fixtures/invalid/n_number_-01.json similarity index 100% rename from test/cases/wrong/n_number_-01.json rename to test/fixtures/invalid/n_number_-01.json diff --git a/test/cases/wrong/n_number_-1.0..json b/test/fixtures/invalid/n_number_-1.0..json similarity index 100% rename from test/cases/wrong/n_number_-1.0..json rename to test/fixtures/invalid/n_number_-1.0..json diff --git a/test/cases/wrong/n_number_-2..json b/test/fixtures/invalid/n_number_-2..json similarity index 100% rename from test/cases/wrong/n_number_-2..json rename to test/fixtures/invalid/n_number_-2..json diff --git a/test/cases/wrong/n_number_-NaN.json b/test/fixtures/invalid/n_number_-NaN.json similarity index 100% rename from test/cases/wrong/n_number_-NaN.json rename to test/fixtures/invalid/n_number_-NaN.json diff --git a/test/cases/wrong/n_number_.-1.json b/test/fixtures/invalid/n_number_.-1.json similarity index 100% rename from test/cases/wrong/n_number_.-1.json rename to test/fixtures/invalid/n_number_.-1.json diff --git a/test/cases/wrong/n_number_.2e-3.json b/test/fixtures/invalid/n_number_.2e-3.json similarity index 100% rename from test/cases/wrong/n_number_.2e-3.json rename to test/fixtures/invalid/n_number_.2e-3.json diff --git a/test/cases/wrong/n_number_0.1.2.json b/test/fixtures/invalid/n_number_0.1.2.json similarity index 100% rename from test/cases/wrong/n_number_0.1.2.json rename to test/fixtures/invalid/n_number_0.1.2.json diff --git a/test/cases/wrong/n_number_0.3e+.json b/test/fixtures/invalid/n_number_0.3e+.json similarity index 100% rename from test/cases/wrong/n_number_0.3e+.json rename to test/fixtures/invalid/n_number_0.3e+.json diff --git a/test/cases/wrong/n_number_0.3e.json b/test/fixtures/invalid/n_number_0.3e.json similarity index 100% rename from test/cases/wrong/n_number_0.3e.json rename to test/fixtures/invalid/n_number_0.3e.json diff --git a/test/cases/wrong/n_number_0.e1.json b/test/fixtures/invalid/n_number_0.e1.json similarity index 100% rename from test/cases/wrong/n_number_0.e1.json rename to test/fixtures/invalid/n_number_0.e1.json diff --git a/test/cases/wrong/n_number_0_capital_E+.json b/test/fixtures/invalid/n_number_0_capital_E+.json similarity index 100% rename from test/cases/wrong/n_number_0_capital_E+.json rename to test/fixtures/invalid/n_number_0_capital_E+.json diff --git a/test/cases/wrong/n_number_0_capital_E.json b/test/fixtures/invalid/n_number_0_capital_E.json similarity index 100% rename from test/cases/wrong/n_number_0_capital_E.json rename to test/fixtures/invalid/n_number_0_capital_E.json diff --git a/test/cases/wrong/n_number_0e+.json b/test/fixtures/invalid/n_number_0e+.json similarity index 100% rename from test/cases/wrong/n_number_0e+.json rename to test/fixtures/invalid/n_number_0e+.json diff --git a/test/cases/wrong/n_number_0e.json b/test/fixtures/invalid/n_number_0e.json similarity index 100% rename from test/cases/wrong/n_number_0e.json rename to test/fixtures/invalid/n_number_0e.json diff --git a/test/cases/wrong/n_number_1.0e+.json b/test/fixtures/invalid/n_number_1.0e+.json similarity index 100% rename from test/cases/wrong/n_number_1.0e+.json rename to test/fixtures/invalid/n_number_1.0e+.json diff --git a/test/cases/wrong/n_number_1.0e-.json b/test/fixtures/invalid/n_number_1.0e-.json similarity index 100% rename from test/cases/wrong/n_number_1.0e-.json rename to test/fixtures/invalid/n_number_1.0e-.json diff --git a/test/cases/wrong/n_number_1.0e.json b/test/fixtures/invalid/n_number_1.0e.json similarity index 100% rename from test/cases/wrong/n_number_1.0e.json rename to test/fixtures/invalid/n_number_1.0e.json diff --git a/test/cases/wrong/n_number_1_000.json b/test/fixtures/invalid/n_number_1_000.json similarity index 100% rename from test/cases/wrong/n_number_1_000.json rename to test/fixtures/invalid/n_number_1_000.json diff --git a/test/cases/wrong/n_number_1eE2.json b/test/fixtures/invalid/n_number_1eE2.json similarity index 100% rename from test/cases/wrong/n_number_1eE2.json rename to test/fixtures/invalid/n_number_1eE2.json diff --git a/test/cases/wrong/n_number_2.e+3.json b/test/fixtures/invalid/n_number_2.e+3.json similarity index 100% rename from test/cases/wrong/n_number_2.e+3.json rename to test/fixtures/invalid/n_number_2.e+3.json diff --git a/test/cases/wrong/n_number_2.e-3.json b/test/fixtures/invalid/n_number_2.e-3.json similarity index 100% rename from test/cases/wrong/n_number_2.e-3.json rename to test/fixtures/invalid/n_number_2.e-3.json diff --git a/test/cases/wrong/n_number_2.e3.json b/test/fixtures/invalid/n_number_2.e3.json similarity index 100% rename from test/cases/wrong/n_number_2.e3.json rename to test/fixtures/invalid/n_number_2.e3.json diff --git a/test/cases/wrong/n_number_9.e+.json b/test/fixtures/invalid/n_number_9.e+.json similarity index 100% rename from test/cases/wrong/n_number_9.e+.json rename to test/fixtures/invalid/n_number_9.e+.json diff --git a/test/cases/wrong/n_number_Inf.json b/test/fixtures/invalid/n_number_Inf.json similarity index 100% rename from test/cases/wrong/n_number_Inf.json rename to test/fixtures/invalid/n_number_Inf.json diff --git a/test/cases/wrong/n_number_NaN.json b/test/fixtures/invalid/n_number_NaN.json similarity index 100% rename from test/cases/wrong/n_number_NaN.json rename to test/fixtures/invalid/n_number_NaN.json diff --git a/test/cases/wrong/n_number_U+FF11_fullwidth_digit_one.json b/test/fixtures/invalid/n_number_U+FF11_fullwidth_digit_one.json similarity index 100% rename from test/cases/wrong/n_number_U+FF11_fullwidth_digit_one.json rename to test/fixtures/invalid/n_number_U+FF11_fullwidth_digit_one.json diff --git a/test/cases/wrong/n_number_expression.json b/test/fixtures/invalid/n_number_expression.json similarity index 100% rename from test/cases/wrong/n_number_expression.json rename to test/fixtures/invalid/n_number_expression.json diff --git a/test/cases/wrong/n_number_hex_1_digit.json b/test/fixtures/invalid/n_number_hex_1_digit.json similarity index 100% rename from test/cases/wrong/n_number_hex_1_digit.json rename to test/fixtures/invalid/n_number_hex_1_digit.json diff --git a/test/cases/wrong/n_number_hex_2_digits.json b/test/fixtures/invalid/n_number_hex_2_digits.json similarity index 100% rename from test/cases/wrong/n_number_hex_2_digits.json rename to test/fixtures/invalid/n_number_hex_2_digits.json diff --git a/test/cases/wrong/n_number_infinity.json b/test/fixtures/invalid/n_number_infinity.json similarity index 100% rename from test/cases/wrong/n_number_infinity.json rename to test/fixtures/invalid/n_number_infinity.json diff --git a/test/cases/wrong/n_number_invalid+-.json b/test/fixtures/invalid/n_number_invalid+-.json similarity index 100% rename from test/cases/wrong/n_number_invalid+-.json rename to test/fixtures/invalid/n_number_invalid+-.json diff --git a/test/cases/wrong/n_number_invalid-negative-real.json b/test/fixtures/invalid/n_number_invalid-negative-real.json similarity index 100% rename from test/cases/wrong/n_number_invalid-negative-real.json rename to test/fixtures/invalid/n_number_invalid-negative-real.json diff --git a/test/cases/wrong/n_number_invalid-utf-8-in-bigger-int.json b/test/fixtures/invalid/n_number_invalid-utf-8-in-bigger-int.json similarity index 100% rename from test/cases/wrong/n_number_invalid-utf-8-in-bigger-int.json rename to test/fixtures/invalid/n_number_invalid-utf-8-in-bigger-int.json diff --git a/test/cases/wrong/n_number_invalid-utf-8-in-exponent.json b/test/fixtures/invalid/n_number_invalid-utf-8-in-exponent.json similarity index 100% rename from test/cases/wrong/n_number_invalid-utf-8-in-exponent.json rename to test/fixtures/invalid/n_number_invalid-utf-8-in-exponent.json diff --git a/test/cases/wrong/n_number_invalid-utf-8-in-int.json b/test/fixtures/invalid/n_number_invalid-utf-8-in-int.json similarity index 100% rename from test/cases/wrong/n_number_invalid-utf-8-in-int.json rename to test/fixtures/invalid/n_number_invalid-utf-8-in-int.json diff --git a/test/cases/wrong/n_number_minus_infinity.json b/test/fixtures/invalid/n_number_minus_infinity.json similarity index 100% rename from test/cases/wrong/n_number_minus_infinity.json rename to test/fixtures/invalid/n_number_minus_infinity.json diff --git a/test/cases/wrong/n_number_minus_sign_with_trailing_garbage.json b/test/fixtures/invalid/n_number_minus_sign_with_trailing_garbage.json similarity index 100% rename from test/cases/wrong/n_number_minus_sign_with_trailing_garbage.json rename to test/fixtures/invalid/n_number_minus_sign_with_trailing_garbage.json diff --git a/test/cases/wrong/n_number_minus_space_1.json b/test/fixtures/invalid/n_number_minus_space_1.json similarity index 100% rename from test/cases/wrong/n_number_minus_space_1.json rename to test/fixtures/invalid/n_number_minus_space_1.json diff --git a/test/cases/wrong/n_number_neg_int_starting_with_zero.json b/test/fixtures/invalid/n_number_neg_int_starting_with_zero.json similarity index 100% rename from test/cases/wrong/n_number_neg_int_starting_with_zero.json rename to test/fixtures/invalid/n_number_neg_int_starting_with_zero.json diff --git a/test/cases/wrong/n_number_neg_real_without_int_part.json b/test/fixtures/invalid/n_number_neg_real_without_int_part.json similarity index 100% rename from test/cases/wrong/n_number_neg_real_without_int_part.json rename to test/fixtures/invalid/n_number_neg_real_without_int_part.json diff --git a/test/cases/wrong/n_number_neg_with_garbage_at_end.json b/test/fixtures/invalid/n_number_neg_with_garbage_at_end.json similarity index 100% rename from test/cases/wrong/n_number_neg_with_garbage_at_end.json rename to test/fixtures/invalid/n_number_neg_with_garbage_at_end.json diff --git a/test/cases/wrong/n_number_real_garbage_after_e.json b/test/fixtures/invalid/n_number_real_garbage_after_e.json similarity index 100% rename from test/cases/wrong/n_number_real_garbage_after_e.json rename to test/fixtures/invalid/n_number_real_garbage_after_e.json diff --git a/test/cases/wrong/n_number_real_with_invalid_utf8_after_e.json b/test/fixtures/invalid/n_number_real_with_invalid_utf8_after_e.json similarity index 100% rename from test/cases/wrong/n_number_real_with_invalid_utf8_after_e.json rename to test/fixtures/invalid/n_number_real_with_invalid_utf8_after_e.json diff --git a/test/cases/wrong/n_number_real_without_fractional_part.json b/test/fixtures/invalid/n_number_real_without_fractional_part.json similarity index 100% rename from test/cases/wrong/n_number_real_without_fractional_part.json rename to test/fixtures/invalid/n_number_real_without_fractional_part.json diff --git a/test/cases/wrong/n_number_starting_with_dot.json b/test/fixtures/invalid/n_number_starting_with_dot.json similarity index 100% rename from test/cases/wrong/n_number_starting_with_dot.json rename to test/fixtures/invalid/n_number_starting_with_dot.json diff --git a/test/cases/wrong/n_number_with_alpha.json b/test/fixtures/invalid/n_number_with_alpha.json similarity index 100% rename from test/cases/wrong/n_number_with_alpha.json rename to test/fixtures/invalid/n_number_with_alpha.json diff --git a/test/cases/wrong/n_number_with_alpha_char.json b/test/fixtures/invalid/n_number_with_alpha_char.json similarity index 100% rename from test/cases/wrong/n_number_with_alpha_char.json rename to test/fixtures/invalid/n_number_with_alpha_char.json diff --git a/test/cases/wrong/n_number_with_leading_zero.json b/test/fixtures/invalid/n_number_with_leading_zero.json similarity index 100% rename from test/cases/wrong/n_number_with_leading_zero.json rename to test/fixtures/invalid/n_number_with_leading_zero.json diff --git a/test/cases/wrong/n_object_bad_value.json b/test/fixtures/invalid/n_object_bad_value.json similarity index 100% rename from test/cases/wrong/n_object_bad_value.json rename to test/fixtures/invalid/n_object_bad_value.json diff --git a/test/cases/wrong/n_object_bracket_key.json b/test/fixtures/invalid/n_object_bracket_key.json similarity index 100% rename from test/cases/wrong/n_object_bracket_key.json rename to test/fixtures/invalid/n_object_bracket_key.json diff --git a/test/cases/wrong/n_object_comma_instead_of_colon.json b/test/fixtures/invalid/n_object_comma_instead_of_colon.json similarity index 100% rename from test/cases/wrong/n_object_comma_instead_of_colon.json rename to test/fixtures/invalid/n_object_comma_instead_of_colon.json diff --git a/test/cases/wrong/n_object_double_colon.json b/test/fixtures/invalid/n_object_double_colon.json similarity index 100% rename from test/cases/wrong/n_object_double_colon.json rename to test/fixtures/invalid/n_object_double_colon.json diff --git a/test/cases/wrong/n_object_emoji.json b/test/fixtures/invalid/n_object_emoji.json similarity index 100% rename from test/cases/wrong/n_object_emoji.json rename to test/fixtures/invalid/n_object_emoji.json diff --git a/test/cases/wrong/n_object_garbage_at_end.json b/test/fixtures/invalid/n_object_garbage_at_end.json similarity index 100% rename from test/cases/wrong/n_object_garbage_at_end.json rename to test/fixtures/invalid/n_object_garbage_at_end.json diff --git a/test/cases/wrong/n_object_key_with_single_quotes.json b/test/fixtures/invalid/n_object_key_with_single_quotes.json similarity index 100% rename from test/cases/wrong/n_object_key_with_single_quotes.json rename to test/fixtures/invalid/n_object_key_with_single_quotes.json diff --git a/test/cases/wrong/n_object_missing_colon.json b/test/fixtures/invalid/n_object_missing_colon.json similarity index 100% rename from test/cases/wrong/n_object_missing_colon.json rename to test/fixtures/invalid/n_object_missing_colon.json diff --git a/test/cases/wrong/n_object_missing_key.json b/test/fixtures/invalid/n_object_missing_key.json similarity index 100% rename from test/cases/wrong/n_object_missing_key.json rename to test/fixtures/invalid/n_object_missing_key.json diff --git a/test/cases/wrong/n_object_missing_semicolon.json b/test/fixtures/invalid/n_object_missing_semicolon.json similarity index 100% rename from test/cases/wrong/n_object_missing_semicolon.json rename to test/fixtures/invalid/n_object_missing_semicolon.json diff --git a/test/cases/wrong/n_object_missing_value.json b/test/fixtures/invalid/n_object_missing_value.json similarity index 100% rename from test/cases/wrong/n_object_missing_value.json rename to test/fixtures/invalid/n_object_missing_value.json diff --git a/test/cases/wrong/n_object_no-colon.json b/test/fixtures/invalid/n_object_no-colon.json similarity index 100% rename from test/cases/wrong/n_object_no-colon.json rename to test/fixtures/invalid/n_object_no-colon.json diff --git a/test/cases/wrong/n_object_non_string_key.json b/test/fixtures/invalid/n_object_non_string_key.json similarity index 100% rename from test/cases/wrong/n_object_non_string_key.json rename to test/fixtures/invalid/n_object_non_string_key.json diff --git a/test/cases/wrong/n_object_non_string_key_but_huge_number_instead.json b/test/fixtures/invalid/n_object_non_string_key_but_huge_number_instead.json similarity index 100% rename from test/cases/wrong/n_object_non_string_key_but_huge_number_instead.json rename to test/fixtures/invalid/n_object_non_string_key_but_huge_number_instead.json diff --git a/test/cases/wrong/n_object_pi_in_key_and_trailing_comma.json b/test/fixtures/invalid/n_object_pi_in_key_and_trailing_comma.json similarity index 100% rename from test/cases/wrong/n_object_pi_in_key_and_trailing_comma.json rename to test/fixtures/invalid/n_object_pi_in_key_and_trailing_comma.json diff --git a/test/cases/wrong/n_object_repeated_null_null.json b/test/fixtures/invalid/n_object_repeated_null_null.json similarity index 100% rename from test/cases/wrong/n_object_repeated_null_null.json rename to test/fixtures/invalid/n_object_repeated_null_null.json diff --git a/test/cases/wrong/n_object_several_trailing_commas.json b/test/fixtures/invalid/n_object_several_trailing_commas.json similarity index 100% rename from test/cases/wrong/n_object_several_trailing_commas.json rename to test/fixtures/invalid/n_object_several_trailing_commas.json diff --git a/test/cases/wrong/n_object_single_quote.json b/test/fixtures/invalid/n_object_single_quote.json similarity index 100% rename from test/cases/wrong/n_object_single_quote.json rename to test/fixtures/invalid/n_object_single_quote.json diff --git a/test/cases/wrong/n_object_trailing_comma.json b/test/fixtures/invalid/n_object_trailing_comma.json similarity index 100% rename from test/cases/wrong/n_object_trailing_comma.json rename to test/fixtures/invalid/n_object_trailing_comma.json diff --git a/test/cases/wrong/n_object_trailing_comment.json b/test/fixtures/invalid/n_object_trailing_comment.json similarity index 100% rename from test/cases/wrong/n_object_trailing_comment.json rename to test/fixtures/invalid/n_object_trailing_comment.json diff --git a/test/cases/wrong/n_object_trailing_comment_open.json b/test/fixtures/invalid/n_object_trailing_comment_open.json similarity index 100% rename from test/cases/wrong/n_object_trailing_comment_open.json rename to test/fixtures/invalid/n_object_trailing_comment_open.json diff --git a/test/cases/wrong/n_object_trailing_comment_slash_open.json b/test/fixtures/invalid/n_object_trailing_comment_slash_open.json similarity index 100% rename from test/cases/wrong/n_object_trailing_comment_slash_open.json rename to test/fixtures/invalid/n_object_trailing_comment_slash_open.json diff --git a/test/cases/wrong/n_object_trailing_comment_slash_open_incomplete.json b/test/fixtures/invalid/n_object_trailing_comment_slash_open_incomplete.json similarity index 100% rename from test/cases/wrong/n_object_trailing_comment_slash_open_incomplete.json rename to test/fixtures/invalid/n_object_trailing_comment_slash_open_incomplete.json diff --git a/test/cases/wrong/n_object_two_commas_in_a_row.json b/test/fixtures/invalid/n_object_two_commas_in_a_row.json similarity index 100% rename from test/cases/wrong/n_object_two_commas_in_a_row.json rename to test/fixtures/invalid/n_object_two_commas_in_a_row.json diff --git a/test/cases/wrong/n_object_unquoted_key.json b/test/fixtures/invalid/n_object_unquoted_key.json similarity index 100% rename from test/cases/wrong/n_object_unquoted_key.json rename to test/fixtures/invalid/n_object_unquoted_key.json diff --git a/test/cases/wrong/n_object_unterminated-value.json b/test/fixtures/invalid/n_object_unterminated-value.json similarity index 100% rename from test/cases/wrong/n_object_unterminated-value.json rename to test/fixtures/invalid/n_object_unterminated-value.json diff --git a/test/cases/wrong/n_object_with_single_string.json b/test/fixtures/invalid/n_object_with_single_string.json similarity index 100% rename from test/cases/wrong/n_object_with_single_string.json rename to test/fixtures/invalid/n_object_with_single_string.json diff --git a/test/cases/wrong/n_object_with_trailing_garbage.json b/test/fixtures/invalid/n_object_with_trailing_garbage.json similarity index 100% rename from test/cases/wrong/n_object_with_trailing_garbage.json rename to test/fixtures/invalid/n_object_with_trailing_garbage.json diff --git a/test/cases/wrong/n_single_space.json b/test/fixtures/invalid/n_single_space.json similarity index 100% rename from test/cases/wrong/n_single_space.json rename to test/fixtures/invalid/n_single_space.json diff --git a/test/cases/wrong/n_string_1_surrogate_then_escape u.json b/test/fixtures/invalid/n_string_1_surrogate_then_escape u.json similarity index 100% rename from test/cases/wrong/n_string_1_surrogate_then_escape u.json rename to test/fixtures/invalid/n_string_1_surrogate_then_escape u.json diff --git a/test/cases/wrong/n_string_1_surrogate_then_escape u1.json b/test/fixtures/invalid/n_string_1_surrogate_then_escape u1.json similarity index 100% rename from test/cases/wrong/n_string_1_surrogate_then_escape u1.json rename to test/fixtures/invalid/n_string_1_surrogate_then_escape u1.json diff --git a/test/cases/wrong/n_string_1_surrogate_then_escape u1x.json b/test/fixtures/invalid/n_string_1_surrogate_then_escape u1x.json similarity index 100% rename from test/cases/wrong/n_string_1_surrogate_then_escape u1x.json rename to test/fixtures/invalid/n_string_1_surrogate_then_escape u1x.json diff --git a/test/cases/wrong/n_string_1_surrogate_then_escape.json b/test/fixtures/invalid/n_string_1_surrogate_then_escape.json similarity index 100% rename from test/cases/wrong/n_string_1_surrogate_then_escape.json rename to test/fixtures/invalid/n_string_1_surrogate_then_escape.json diff --git a/test/cases/wrong/n_string_accentuated_char_no_quotes.json b/test/fixtures/invalid/n_string_accentuated_char_no_quotes.json similarity index 100% rename from test/cases/wrong/n_string_accentuated_char_no_quotes.json rename to test/fixtures/invalid/n_string_accentuated_char_no_quotes.json diff --git a/test/cases/wrong/n_string_backslash_00.json b/test/fixtures/invalid/n_string_backslash_00.json similarity index 100% rename from test/cases/wrong/n_string_backslash_00.json rename to test/fixtures/invalid/n_string_backslash_00.json diff --git a/test/cases/wrong/n_string_escape_x.json b/test/fixtures/invalid/n_string_escape_x.json similarity index 100% rename from test/cases/wrong/n_string_escape_x.json rename to test/fixtures/invalid/n_string_escape_x.json diff --git a/test/cases/wrong/n_string_escaped_backslash_bad.json b/test/fixtures/invalid/n_string_escaped_backslash_bad.json similarity index 100% rename from test/cases/wrong/n_string_escaped_backslash_bad.json rename to test/fixtures/invalid/n_string_escaped_backslash_bad.json diff --git a/test/cases/wrong/n_string_escaped_ctrl_char_tab.json b/test/fixtures/invalid/n_string_escaped_ctrl_char_tab.json similarity index 100% rename from test/cases/wrong/n_string_escaped_ctrl_char_tab.json rename to test/fixtures/invalid/n_string_escaped_ctrl_char_tab.json diff --git a/test/cases/wrong/n_string_escaped_emoji.json b/test/fixtures/invalid/n_string_escaped_emoji.json similarity index 100% rename from test/cases/wrong/n_string_escaped_emoji.json rename to test/fixtures/invalid/n_string_escaped_emoji.json diff --git a/test/cases/wrong/n_string_incomplete_escape.json b/test/fixtures/invalid/n_string_incomplete_escape.json similarity index 100% rename from test/cases/wrong/n_string_incomplete_escape.json rename to test/fixtures/invalid/n_string_incomplete_escape.json diff --git a/test/cases/wrong/n_string_incomplete_escaped_character.json b/test/fixtures/invalid/n_string_incomplete_escaped_character.json similarity index 100% rename from test/cases/wrong/n_string_incomplete_escaped_character.json rename to test/fixtures/invalid/n_string_incomplete_escaped_character.json diff --git a/test/cases/wrong/n_string_incomplete_surrogate.json b/test/fixtures/invalid/n_string_incomplete_surrogate.json similarity index 100% rename from test/cases/wrong/n_string_incomplete_surrogate.json rename to test/fixtures/invalid/n_string_incomplete_surrogate.json diff --git a/test/cases/wrong/n_string_incomplete_surrogate_escape_invalid.json b/test/fixtures/invalid/n_string_incomplete_surrogate_escape_invalid.json similarity index 100% rename from test/cases/wrong/n_string_incomplete_surrogate_escape_invalid.json rename to test/fixtures/invalid/n_string_incomplete_surrogate_escape_invalid.json diff --git a/test/cases/wrong/n_string_invalid-utf-8-in-escape.json b/test/fixtures/invalid/n_string_invalid-utf-8-in-escape.json similarity index 100% rename from test/cases/wrong/n_string_invalid-utf-8-in-escape.json rename to test/fixtures/invalid/n_string_invalid-utf-8-in-escape.json diff --git a/test/cases/wrong/n_string_invalid_backslash_esc.json b/test/fixtures/invalid/n_string_invalid_backslash_esc.json similarity index 100% rename from test/cases/wrong/n_string_invalid_backslash_esc.json rename to test/fixtures/invalid/n_string_invalid_backslash_esc.json diff --git a/test/cases/wrong/n_string_invalid_unicode_escape.json b/test/fixtures/invalid/n_string_invalid_unicode_escape.json similarity index 100% rename from test/cases/wrong/n_string_invalid_unicode_escape.json rename to test/fixtures/invalid/n_string_invalid_unicode_escape.json diff --git a/test/cases/wrong/n_string_invalid_utf8_after_escape.json b/test/fixtures/invalid/n_string_invalid_utf8_after_escape.json similarity index 100% rename from test/cases/wrong/n_string_invalid_utf8_after_escape.json rename to test/fixtures/invalid/n_string_invalid_utf8_after_escape.json diff --git a/test/cases/wrong/n_string_leading_uescaped_thinspace.json b/test/fixtures/invalid/n_string_leading_uescaped_thinspace.json similarity index 100% rename from test/cases/wrong/n_string_leading_uescaped_thinspace.json rename to test/fixtures/invalid/n_string_leading_uescaped_thinspace.json diff --git a/test/cases/wrong/n_string_no_quotes_with_bad_escape.json b/test/fixtures/invalid/n_string_no_quotes_with_bad_escape.json similarity index 100% rename from test/cases/wrong/n_string_no_quotes_with_bad_escape.json rename to test/fixtures/invalid/n_string_no_quotes_with_bad_escape.json diff --git a/test/cases/wrong/n_string_single_doublequote.json b/test/fixtures/invalid/n_string_single_doublequote.json similarity index 100% rename from test/cases/wrong/n_string_single_doublequote.json rename to test/fixtures/invalid/n_string_single_doublequote.json diff --git a/test/cases/wrong/n_string_single_quote.json b/test/fixtures/invalid/n_string_single_quote.json similarity index 100% rename from test/cases/wrong/n_string_single_quote.json rename to test/fixtures/invalid/n_string_single_quote.json diff --git a/test/cases/wrong/n_string_single_string_no_double_quotes.json b/test/fixtures/invalid/n_string_single_string_no_double_quotes.json similarity index 100% rename from test/cases/wrong/n_string_single_string_no_double_quotes.json rename to test/fixtures/invalid/n_string_single_string_no_double_quotes.json diff --git a/test/cases/wrong/n_string_start_escape_unclosed.json b/test/fixtures/invalid/n_string_start_escape_unclosed.json similarity index 100% rename from test/cases/wrong/n_string_start_escape_unclosed.json rename to test/fixtures/invalid/n_string_start_escape_unclosed.json diff --git a/test/cases/wrong/n_string_unescaped_crtl_char.json b/test/fixtures/invalid/n_string_unescaped_crtl_char.json similarity index 100% rename from test/cases/wrong/n_string_unescaped_crtl_char.json rename to test/fixtures/invalid/n_string_unescaped_crtl_char.json diff --git a/test/cases/wrong/n_string_unescaped_newline.json b/test/fixtures/invalid/n_string_unescaped_newline.json similarity index 100% rename from test/cases/wrong/n_string_unescaped_newline.json rename to test/fixtures/invalid/n_string_unescaped_newline.json diff --git a/test/cases/wrong/n_string_unescaped_tab.json b/test/fixtures/invalid/n_string_unescaped_tab.json similarity index 100% rename from test/cases/wrong/n_string_unescaped_tab.json rename to test/fixtures/invalid/n_string_unescaped_tab.json diff --git a/test/cases/wrong/n_string_unicode_CapitalU.json b/test/fixtures/invalid/n_string_unicode_CapitalU.json similarity index 100% rename from test/cases/wrong/n_string_unicode_CapitalU.json rename to test/fixtures/invalid/n_string_unicode_CapitalU.json diff --git a/test/cases/wrong/n_string_with_trailing_garbage.json b/test/fixtures/invalid/n_string_with_trailing_garbage.json similarity index 100% rename from test/cases/wrong/n_string_with_trailing_garbage.json rename to test/fixtures/invalid/n_string_with_trailing_garbage.json diff --git a/test/cases/wrong/n_structure_<.>.json b/test/fixtures/invalid/n_structure_<.>.json similarity index 100% rename from test/cases/wrong/n_structure_<.>.json rename to test/fixtures/invalid/n_structure_<.>.json diff --git a/test/cases/wrong/n_structure_.json b/test/fixtures/invalid/n_structure_.json similarity index 100% rename from test/cases/wrong/n_structure_.json rename to test/fixtures/invalid/n_structure_.json diff --git a/test/cases/wrong/n_structure_U+2060_word_joined.json b/test/fixtures/invalid/n_structure_U+2060_word_joined.json similarity index 100% rename from test/cases/wrong/n_structure_U+2060_word_joined.json rename to test/fixtures/invalid/n_structure_U+2060_word_joined.json diff --git a/test/cases/wrong/n_structure_UTF8_BOM_no_data.json b/test/fixtures/invalid/n_structure_UTF8_BOM_no_data.json similarity index 100% rename from test/cases/wrong/n_structure_UTF8_BOM_no_data.json rename to test/fixtures/invalid/n_structure_UTF8_BOM_no_data.json diff --git a/test/cases/wrong/n_structure_array_trailing_garbage.json b/test/fixtures/invalid/n_structure_array_trailing_garbage.json similarity index 100% rename from test/cases/wrong/n_structure_array_trailing_garbage.json rename to test/fixtures/invalid/n_structure_array_trailing_garbage.json diff --git a/test/cases/wrong/n_structure_array_with_extra_array_close.json b/test/fixtures/invalid/n_structure_array_with_extra_array_close.json similarity index 100% rename from test/cases/wrong/n_structure_array_with_extra_array_close.json rename to test/fixtures/invalid/n_structure_array_with_extra_array_close.json diff --git a/test/cases/wrong/n_structure_array_with_unclosed_string.json b/test/fixtures/invalid/n_structure_array_with_unclosed_string.json similarity index 100% rename from test/cases/wrong/n_structure_array_with_unclosed_string.json rename to test/fixtures/invalid/n_structure_array_with_unclosed_string.json diff --git a/test/cases/wrong/n_structure_ascii-unicode-identifier.json b/test/fixtures/invalid/n_structure_ascii-unicode-identifier.json similarity index 100% rename from test/cases/wrong/n_structure_ascii-unicode-identifier.json rename to test/fixtures/invalid/n_structure_ascii-unicode-identifier.json diff --git a/test/cases/wrong/n_structure_capitalized_True.json b/test/fixtures/invalid/n_structure_capitalized_True.json similarity index 100% rename from test/cases/wrong/n_structure_capitalized_True.json rename to test/fixtures/invalid/n_structure_capitalized_True.json diff --git a/test/cases/wrong/n_structure_close_unopened_array.json b/test/fixtures/invalid/n_structure_close_unopened_array.json similarity index 100% rename from test/cases/wrong/n_structure_close_unopened_array.json rename to test/fixtures/invalid/n_structure_close_unopened_array.json diff --git a/test/cases/wrong/n_structure_comma_instead_of_closing_brace.json b/test/fixtures/invalid/n_structure_comma_instead_of_closing_brace.json similarity index 100% rename from test/cases/wrong/n_structure_comma_instead_of_closing_brace.json rename to test/fixtures/invalid/n_structure_comma_instead_of_closing_brace.json diff --git a/test/cases/wrong/n_structure_double_array.json b/test/fixtures/invalid/n_structure_double_array.json similarity index 100% rename from test/cases/wrong/n_structure_double_array.json rename to test/fixtures/invalid/n_structure_double_array.json diff --git a/test/cases/wrong/n_structure_end_array.json b/test/fixtures/invalid/n_structure_end_array.json similarity index 100% rename from test/cases/wrong/n_structure_end_array.json rename to test/fixtures/invalid/n_structure_end_array.json diff --git a/test/cases/wrong/n_structure_incomplete_UTF8_BOM.json b/test/fixtures/invalid/n_structure_incomplete_UTF8_BOM.json similarity index 100% rename from test/cases/wrong/n_structure_incomplete_UTF8_BOM.json rename to test/fixtures/invalid/n_structure_incomplete_UTF8_BOM.json diff --git a/test/cases/wrong/n_structure_lone-invalid-utf-8.json b/test/fixtures/invalid/n_structure_lone-invalid-utf-8.json similarity index 100% rename from test/cases/wrong/n_structure_lone-invalid-utf-8.json rename to test/fixtures/invalid/n_structure_lone-invalid-utf-8.json diff --git a/test/cases/wrong/n_structure_lone-open-bracket.json b/test/fixtures/invalid/n_structure_lone-open-bracket.json similarity index 100% rename from test/cases/wrong/n_structure_lone-open-bracket.json rename to test/fixtures/invalid/n_structure_lone-open-bracket.json diff --git a/test/cases/wrong/n_structure_no_data.json b/test/fixtures/invalid/n_structure_no_data.json similarity index 100% rename from test/cases/wrong/n_structure_no_data.json rename to test/fixtures/invalid/n_structure_no_data.json diff --git a/test/cases/wrong/n_structure_null-byte-outside-string.json b/test/fixtures/invalid/n_structure_null-byte-outside-string.json similarity index 100% rename from test/cases/wrong/n_structure_null-byte-outside-string.json rename to test/fixtures/invalid/n_structure_null-byte-outside-string.json diff --git a/test/cases/wrong/n_structure_number_with_trailing_garbage.json b/test/fixtures/invalid/n_structure_number_with_trailing_garbage.json similarity index 100% rename from test/cases/wrong/n_structure_number_with_trailing_garbage.json rename to test/fixtures/invalid/n_structure_number_with_trailing_garbage.json diff --git a/test/cases/wrong/n_structure_object_followed_by_closing_object.json b/test/fixtures/invalid/n_structure_object_followed_by_closing_object.json similarity index 100% rename from test/cases/wrong/n_structure_object_followed_by_closing_object.json rename to test/fixtures/invalid/n_structure_object_followed_by_closing_object.json diff --git a/test/cases/wrong/n_structure_object_unclosed_no_value.json b/test/fixtures/invalid/n_structure_object_unclosed_no_value.json similarity index 100% rename from test/cases/wrong/n_structure_object_unclosed_no_value.json rename to test/fixtures/invalid/n_structure_object_unclosed_no_value.json diff --git a/test/cases/wrong/n_structure_object_with_comment.json b/test/fixtures/invalid/n_structure_object_with_comment.json similarity index 100% rename from test/cases/wrong/n_structure_object_with_comment.json rename to test/fixtures/invalid/n_structure_object_with_comment.json diff --git a/test/cases/wrong/n_structure_object_with_trailing_garbage.json b/test/fixtures/invalid/n_structure_object_with_trailing_garbage.json similarity index 100% rename from test/cases/wrong/n_structure_object_with_trailing_garbage.json rename to test/fixtures/invalid/n_structure_object_with_trailing_garbage.json diff --git a/test/cases/wrong/n_structure_open_array_apostrophe.json b/test/fixtures/invalid/n_structure_open_array_apostrophe.json similarity index 100% rename from test/cases/wrong/n_structure_open_array_apostrophe.json rename to test/fixtures/invalid/n_structure_open_array_apostrophe.json diff --git a/test/cases/wrong/n_structure_open_array_comma.json b/test/fixtures/invalid/n_structure_open_array_comma.json similarity index 100% rename from test/cases/wrong/n_structure_open_array_comma.json rename to test/fixtures/invalid/n_structure_open_array_comma.json diff --git a/test/cases/wrong/n_structure_open_array_open_object.json b/test/fixtures/invalid/n_structure_open_array_open_object.json similarity index 100% rename from test/cases/wrong/n_structure_open_array_open_object.json rename to test/fixtures/invalid/n_structure_open_array_open_object.json diff --git a/test/cases/wrong/n_structure_open_array_open_string.json b/test/fixtures/invalid/n_structure_open_array_open_string.json similarity index 100% rename from test/cases/wrong/n_structure_open_array_open_string.json rename to test/fixtures/invalid/n_structure_open_array_open_string.json diff --git a/test/cases/wrong/n_structure_open_array_string.json b/test/fixtures/invalid/n_structure_open_array_string.json similarity index 100% rename from test/cases/wrong/n_structure_open_array_string.json rename to test/fixtures/invalid/n_structure_open_array_string.json diff --git a/test/cases/wrong/n_structure_open_object.json b/test/fixtures/invalid/n_structure_open_object.json similarity index 100% rename from test/cases/wrong/n_structure_open_object.json rename to test/fixtures/invalid/n_structure_open_object.json diff --git a/test/cases/wrong/n_structure_open_object_close_array.json b/test/fixtures/invalid/n_structure_open_object_close_array.json similarity index 100% rename from test/cases/wrong/n_structure_open_object_close_array.json rename to test/fixtures/invalid/n_structure_open_object_close_array.json diff --git a/test/cases/wrong/n_structure_open_object_comma.json b/test/fixtures/invalid/n_structure_open_object_comma.json similarity index 100% rename from test/cases/wrong/n_structure_open_object_comma.json rename to test/fixtures/invalid/n_structure_open_object_comma.json diff --git a/test/cases/wrong/n_structure_open_object_open_array.json b/test/fixtures/invalid/n_structure_open_object_open_array.json similarity index 100% rename from test/cases/wrong/n_structure_open_object_open_array.json rename to test/fixtures/invalid/n_structure_open_object_open_array.json diff --git a/test/cases/wrong/n_structure_open_object_open_string.json b/test/fixtures/invalid/n_structure_open_object_open_string.json similarity index 100% rename from test/cases/wrong/n_structure_open_object_open_string.json rename to test/fixtures/invalid/n_structure_open_object_open_string.json diff --git a/test/cases/wrong/n_structure_open_object_string_with_apostrophes.json b/test/fixtures/invalid/n_structure_open_object_string_with_apostrophes.json similarity index 100% rename from test/cases/wrong/n_structure_open_object_string_with_apostrophes.json rename to test/fixtures/invalid/n_structure_open_object_string_with_apostrophes.json diff --git a/test/cases/wrong/n_structure_open_open.json b/test/fixtures/invalid/n_structure_open_open.json similarity index 100% rename from test/cases/wrong/n_structure_open_open.json rename to test/fixtures/invalid/n_structure_open_open.json diff --git a/test/cases/wrong/n_structure_single_eacute.json b/test/fixtures/invalid/n_structure_single_eacute.json similarity index 100% rename from test/cases/wrong/n_structure_single_eacute.json rename to test/fixtures/invalid/n_structure_single_eacute.json diff --git a/test/cases/wrong/n_structure_single_star.json b/test/fixtures/invalid/n_structure_single_star.json similarity index 100% rename from test/cases/wrong/n_structure_single_star.json rename to test/fixtures/invalid/n_structure_single_star.json diff --git a/test/cases/wrong/n_structure_trailing_#.json b/test/fixtures/invalid/n_structure_trailing_#.json similarity index 100% rename from test/cases/wrong/n_structure_trailing_#.json rename to test/fixtures/invalid/n_structure_trailing_#.json diff --git a/test/cases/wrong/n_structure_uescaped_LF_before_string.json b/test/fixtures/invalid/n_structure_uescaped_LF_before_string.json similarity index 100% rename from test/cases/wrong/n_structure_uescaped_LF_before_string.json rename to test/fixtures/invalid/n_structure_uescaped_LF_before_string.json diff --git a/test/cases/wrong/n_structure_unclosed_array.json b/test/fixtures/invalid/n_structure_unclosed_array.json similarity index 100% rename from test/cases/wrong/n_structure_unclosed_array.json rename to test/fixtures/invalid/n_structure_unclosed_array.json diff --git a/test/cases/wrong/n_structure_unclosed_array_partial_null.json b/test/fixtures/invalid/n_structure_unclosed_array_partial_null.json similarity index 100% rename from test/cases/wrong/n_structure_unclosed_array_partial_null.json rename to test/fixtures/invalid/n_structure_unclosed_array_partial_null.json diff --git a/test/cases/wrong/n_structure_unclosed_array_unfinished_false.json b/test/fixtures/invalid/n_structure_unclosed_array_unfinished_false.json similarity index 100% rename from test/cases/wrong/n_structure_unclosed_array_unfinished_false.json rename to test/fixtures/invalid/n_structure_unclosed_array_unfinished_false.json diff --git a/test/cases/wrong/n_structure_unclosed_array_unfinished_true.json b/test/fixtures/invalid/n_structure_unclosed_array_unfinished_true.json similarity index 100% rename from test/cases/wrong/n_structure_unclosed_array_unfinished_true.json rename to test/fixtures/invalid/n_structure_unclosed_array_unfinished_true.json diff --git a/test/cases/wrong/n_structure_unclosed_object.json b/test/fixtures/invalid/n_structure_unclosed_object.json similarity index 100% rename from test/cases/wrong/n_structure_unclosed_object.json rename to test/fixtures/invalid/n_structure_unclosed_object.json diff --git a/test/cases/wrong/n_structure_unicode-identifier.json b/test/fixtures/invalid/n_structure_unicode-identifier.json similarity index 100% rename from test/cases/wrong/n_structure_unicode-identifier.json rename to test/fixtures/invalid/n_structure_unicode-identifier.json diff --git a/test/cases/wrong/n_structure_whitespace_U+2060_word_joiner.json b/test/fixtures/invalid/n_structure_whitespace_U+2060_word_joiner.json similarity index 100% rename from test/cases/wrong/n_structure_whitespace_U+2060_word_joiner.json rename to test/fixtures/invalid/n_structure_whitespace_U+2060_word_joiner.json diff --git a/test/cases/wrong/n_structure_whitespace_formfeed.json b/test/fixtures/invalid/n_structure_whitespace_formfeed.json similarity index 100% rename from test/cases/wrong/n_structure_whitespace_formfeed.json rename to test/fixtures/invalid/n_structure_whitespace_formfeed.json diff --git a/test/cases/wrong/object-trailing-comma.js b/test/fixtures/invalid/object-trailing-comma.js similarity index 100% rename from test/cases/wrong/object-trailing-comma.js rename to test/fixtures/invalid/object-trailing-comma.js diff --git a/test/cases/wrong/object-trailing-comma.json b/test/fixtures/invalid/object-trailing-comma.json similarity index 100% rename from test/cases/wrong/object-trailing-comma.json rename to test/fixtures/invalid/object-trailing-comma.json diff --git a/test/cases/wrong/redundant-symbols.js b/test/fixtures/invalid/redundant-symbols.js similarity index 100% rename from test/cases/wrong/redundant-symbols.js rename to test/fixtures/invalid/redundant-symbols.js diff --git a/test/cases/wrong/redundant-symbols.json b/test/fixtures/invalid/redundant-symbols.json similarity index 100% rename from test/cases/wrong/redundant-symbols.json rename to test/fixtures/invalid/redundant-symbols.json diff --git a/test/cases/right/array-in-arrays.js b/test/fixtures/valid/array-in-arrays.js similarity index 97% rename from test/cases/right/array-in-arrays.js rename to test/fixtures/valid/array-in-arrays.js index 221dd211..c50d3ec7 100644 --- a/test/cases/right/array-in-arrays.js +++ b/test/fixtures/valid/array-in-arrays.js @@ -22,6 +22,6 @@ var ast = module.exports = { ast: ast, options: { - verbose: true + loc: true } }; diff --git a/test/cases/right/array-in-arrays.json b/test/fixtures/valid/array-in-arrays.json similarity index 100% rename from test/cases/right/array-in-arrays.json rename to test/fixtures/valid/array-in-arrays.json diff --git a/test/cases/right/array-only.js b/test/fixtures/valid/array-only.js similarity index 91% rename from test/cases/right/array-only.js rename to test/fixtures/valid/array-only.js index dbe5ca61..d279c383 100644 --- a/test/cases/right/array-only.js +++ b/test/fixtures/valid/array-only.js @@ -5,6 +5,6 @@ var array = types.createArray; module.exports = { ast: array([], location(1, 1, 0, 1, 3, 2)), options: { - verbose: true + loc: true } }; diff --git a/test/cases/right/array-only.json b/test/fixtures/valid/array-only.json similarity index 100% rename from test/cases/right/array-only.json rename to test/fixtures/valid/array-only.json diff --git a/test/fixtures/valid/big.js b/test/fixtures/valid/big.js new file mode 100644 index 00000000..8bdc90bd --- /dev/null +++ b/test/fixtures/valid/big.js @@ -0,0 +1,130 @@ +var types = require('../../types'); +var object = types.createObject; +var id = types.createIdentifier; +var prop = types.createProperty(); +var array = types.createArray; +var literal = types.createLiteral; + +var ast = array([ + object([ + prop(id('_id', '"_id"'), literal('574d7238062156c6d9e6de99', '"574d7238062156c6d9e6de99"')), + prop(id('index', '"index"'), literal(0, '0')), + prop(id('guid', '"guid"'), literal('c99bf348-0345-49fd-be52-d0da82bdd47f', '"c99bf348-0345-49fd-be52-d0da82bdd47f"')), + prop(id('isActive', '"isActive"'), literal(true, 'true')), + prop(id('balance', '"balance"'), literal('$1,087.03', '"$1,087.03"')), + prop(id('picture', '"picture"'), literal('http://placehold.it/32x32', '"http://placehold.it/32x32"')), + prop(id('age', '"age"'), literal(25, '25')), + prop(id('eyeColor', '"eyeColor"'), literal('brown', '"brown"')), + prop(id('name', '"name"'), object([ + prop(id('first', '"first"'), literal('Stacie', '"Stacie"')), + prop(id('last', '"last"'), literal('Sargent', '"Sargent"')) + ])), + prop(id('company', '"company"'), literal('DAISU', '"DAISU"')), + prop(id('email', '"email"'), literal('stacie.sargent@daisu.com', '"stacie.sargent@daisu.com"')), + prop(id('phone', '"phone"'), literal('+1 (830) 537-3936', '"+1 (830) 537-3936"')), + prop(id('address', '"address"'), literal('547 Charles Place, Weogufka, Marshall Islands, 6627', '"547 Charles Place, Weogufka, Marshall Islands, 6627"')), + prop(id('about'), literal('Exercitation nisi incididunt exercitation sit Lorem nostrud commodo incididunt cillum amet. Laboris proident non nostrud dolor esse exercitation enim sit culpa Lorem qui. Laborum aliquip pariatur mollit aute. Et consequat Lorem in cillum sunt dolore aute voluptate anim commodo. Excepteur labore proident consequat nulla occaecat in consequat minim.', '"Exercitation nisi incididunt exercitation sit Lorem nostrud commodo incididunt cillum amet. Laboris proident non nostrud dolor esse exercitation enim sit culpa Lorem qui. Laborum aliquip pariatur mollit aute. Et consequat Lorem in cillum sunt dolore aute voluptate anim commodo. Excepteur labore proident consequat nulla occaecat in consequat minim."')), + prop(id('registered', '"registered"'), literal('Sunday, October 4, 2015 3:58 PM', '"Sunday, October 4, 2015 3:58 PM"')), + prop(id('latitude', '"latitude"'), literal('45.437159', '"45.437159"')), + prop(id('longitude', '"longitude"'), literal('-77.052972', '"-77.052972"')), + prop(id('tags', '"tags"'), array([ + literal('veniam', '"veniam"'), + literal('et', '"et"'), + literal('cillum', '"cillum"'), + literal('ex', '"ex"'), + literal('nisi', '"nisi"') + ])), + prop(id('range', '"range"'), array([ + literal(0, '0'), + literal(1, '1'), + literal(2, '2'), + literal(3, '3'), + literal(4, '4'), + literal(5, '5'), + literal(6, '6'), + literal(7, '7'), + literal(8, '8'), + literal(9, '9') + ])), + prop(id('friends', '"friends"'), array([ + object([ + prop(id('id', '"id"'), literal(0, '0')), + prop(id('name', '"name"'), literal('Juliana Valentine', '"Juliana Valentine"')) + ]), + object([ + prop(id('id', '"id"'), literal(1, '1')), + prop(id('name', '"name"'), literal('Robert Eaton', '"Robert Eaton"')) + ]), + object([ + prop(id('id', '"id"'), literal(2, '2')), + prop(id('name', '"name"'), literal('Socorro Herrera', '"Socorro Herrera"')) + ]) + ])), + prop(id('greeting', '"greeting"'), literal('Hello, Stacie! You have 6 unread messages.', '"Hello, Stacie! You have 6 unread messages."')), + prop(id('favoriteFruit', '"favoriteFruit"'), literal('banana', '"banana"')) + ]), + object([ + prop(id('_id', '"_id"'), literal('574d7238bd4c01db9e4a4d5b', '"574d7238bd4c01db9e4a4d5b"')), + prop(id('index', '"index"'), literal(1, '1')), + prop(id('guid', '"guid"'), literal('5fd3fc48-e39e-4ee4-bc3a-6eb12bed2653', '"5fd3fc48-e39e-4ee4-bc3a-6eb12bed2653"')), + prop(id('isActive', '"isActive"'), literal(false, 'false')), + prop(id('balance', '"balance"'), literal('$1,696.52', '"$1,696.52"')), + prop(id('picture', '"picture"'), literal('http://placehold.it/32x32', '"http://placehold.it/32x32"')), + prop(id('age', '"age"'), literal(32, '32')), + prop(id('eyeColor', '"eyeColor"'), literal('blue', '"blue"')), + prop(id('name', '"name"'), object([ + prop(id('first', '"first"'), literal('Ada', '"Ada"')), + prop(id('last', '"last"'), literal('Stokes', '"Stokes"')) + ])), + prop(id('company', '"company"'), literal('FARMAGE', '"FARMAGE"')), + prop(id('email', '"email"'), literal('ada.stokes@farmage.biz', '"ada.stokes@farmage.biz"')), + prop(id('phone', '"phone"'), literal('+1 (875) 486-3569', '"+1 (875) 486-3569"')), + prop(id('address', '"address"'), literal('361 Howard Place, Wyano, Michigan, 346', '"361 Howard Place, Wyano, Michigan, 346"')), + prop(id('about', '"about"'), literal('Culpa esse laboris enim occaecat voluptate non reprehenderit officia amet eu ad laboris officia. Exercitation qui occaecat veniam ea tempor. Reprehenderit laborum magna occaecat sit tempor eiusmod est quis ea. Sunt minim labore et eu ex. Pariatur do proident nisi sunt commodo. Deserunt est ad pariatur laboris officia. Pariatur anim deserunt excepteur voluptate amet.', '"Culpa esse laboris enim occaecat voluptate non reprehenderit officia amet eu ad laboris officia. Exercitation qui occaecat veniam ea tempor. Reprehenderit laborum magna occaecat sit tempor eiusmod est quis ea. Sunt minim labore et eu ex. Pariatur do proident nisi sunt commodo. Deserunt est ad pariatur laboris officia. Pariatur anim deserunt excepteur voluptate amet."')), + prop(id('registered', '"registered"'), literal('Wednesday, April 16, 2014 7:23 PM', '"Wednesday, April 16, 2014 7:23 PM"')), + prop(id('latitude', '"latitude"'), literal('-45.133396', '"-45.133396"')), + prop(id('longitude', '"longitude"'), literal('43.593917', '"43.593917"')), + prop(id('tags', '"tags"'), array([ + literal('qui', '"qui"'), + literal('eiusmod', '"eiusmod"'), + literal('nisi', '"nisi"'), + literal('officia', '"officia"'), + literal('in', '"in"') + ])), + prop(id('range', '"range"'), array([ + literal(0, '0'), + literal(1, '1'), + literal(2, '2'), + literal(3, '3'), + literal(4, '4'), + literal(5, '5'), + literal(6, '6'), + literal(7, '7'), + literal(8, '8'), + literal(9, '9') + ])), + prop(id('friends', '"friends"'), array([ + object([ + prop(id('id', '"id"'), literal(0, '0')), + prop(id('name', '"name"'), literal('Campos Pruitt', '"Campos Pruitt"')) + ]), + object([ + prop(id('id', '"id"'), literal(1, '1')), + prop(id('name', '"name"'), literal('Barnett Sykes', '"Barnett Sykes"')) + ]), + object([ + prop(id('id', '"id"'), literal(2, '2')), + prop(id('name', '"name"'), literal('Trudy Collier', '"Trudy Collier"')) + ]) + ])), + prop(id('greeting', '"greeting"'), literal('Hello, Ada! You have 8 unread messages.', '"Hello, Ada! You have 8 unread messages."')), + prop(id('favoriteFruit', '"favoriteFruit"'), literal('banana', '"banana"')) + ]) +]); + +module.exports = { + ast: ast, + options: { + loc: false + } +}; diff --git a/test/cases/right/big-non-verbosed.json b/test/fixtures/valid/big.json similarity index 100% rename from test/cases/right/big-non-verbosed.json rename to test/fixtures/valid/big.json diff --git a/test/fixtures/valid/deep.js b/test/fixtures/valid/deep.js new file mode 100644 index 00000000..dbae105a --- /dev/null +++ b/test/fixtures/valid/deep.js @@ -0,0 +1,29 @@ +var types = require('../../types'); +var id = types.createIdentifier; +var object = types.createObject; +var prop = types.createProperty; +var array = types.createArray; +var literal = types.createLiteral; + +var n = array([literal('n', '"n"')]); +var m = array([literal('m', '"m"'), n]); +var l = array([literal('l', '"l"'), m]); +var k = array([literal('k', '"k"'), l]); +var j = array([literal('j', '"j"'), k]); +var i = array([literal('i', '"i"'), j]); +var h = array([literal('h', '"h"'), i]); +var g = object([prop(id('g', '"g"'), h)]); +var f = object([prop(id('f', '"f"'), g)]); +var e = object([prop(id('e', '"e"'), f)]); +var d = object([prop(id('d', '"d"'), e)]); +var c = object([prop(id('c', '"c"'), d)]); +var b = object([prop(id('b', '"b"'), c)]); +var a = object([prop(id('a', '"a"'), b)]); + +module.exports = { + ast: a, + options: { + loc: false + } +}; + diff --git a/test/cases/right/deep.json b/test/fixtures/valid/deep.json similarity index 100% rename from test/cases/right/deep.json rename to test/fixtures/valid/deep.json diff --git a/test/fixtures/valid/exponential-numbers.js b/test/fixtures/valid/exponential-numbers.js new file mode 100644 index 00000000..a36b76ca --- /dev/null +++ b/test/fixtures/valid/exponential-numbers.js @@ -0,0 +1,17 @@ +var types = require('../../types'); +var array = types.createArray; +var literal = types.createLiteral; + +var ast = array([ + literal(1, '1'), + literal(1.2, '1.2'), + literal(1.2e3, '1.2e3'), + literal(1.2e-3, '1.2e-3') +]); + +module.exports = { + ast: ast, + options: { + loc: false + } +}; diff --git a/test/fixtures/valid/exponential-numbers.json b/test/fixtures/valid/exponential-numbers.json new file mode 100644 index 00000000..977221ce --- /dev/null +++ b/test/fixtures/valid/exponential-numbers.json @@ -0,0 +1,6 @@ +[ + 1, + 1.2, + 1.2e3, + 1.2e-3 +] diff --git a/test/fixtures/valid/literals.js b/test/fixtures/valid/literals.js new file mode 100644 index 00000000..0d700edc --- /dev/null +++ b/test/fixtures/valid/literals.js @@ -0,0 +1,48 @@ +var types = require('../../types'); +var id = types.createIdentifier; +var location = types.location; +var object = types.createObject; +var prop = types.createProperty; +var literal = types.createLiteral; + +var ast = + object([ + prop( + id('a', '"a"', location(2, 3, 4, 2, 6, 7)), + literal(null, 'null', location(2, 8, 9, 2, 12, 13)), + location(2, 3, 4, 2, 12, 13) + ), + prop( + id('b', '"b"', location(3, 3, 17, 3, 6, 20)), + literal('null', '"null"', location(3, 8, 22, 3, 14, 28)), + location(3, 3, 17, 3, 14, 28) + ), + prop( + id('c', '"c"', location(4, 3, 32, 4, 6, 35)), + literal(true, 'true', location(4, 8, 37, 4, 12, 41)), + location(4, 3, 32, 4, 12, 41) + ), + prop( + id('d', '"d"',location(5, 3, 45, 5, 6, 48)), + literal('true', '"true"', location(5, 8, 50, 5, 14, 56)), + location(5, 3, 45, 5, 14, 56) + ), + prop( + id('e', '"e"',location(6, 3, 60, 6, 6, 63)), + literal(false, 'false', location(6, 8, 65, 6, 13, 70)), + location(6, 3, 60, 6, 13, 70) + ), + prop( + id('f', '"f"', location(7, 3, 74, 7, 6, 77)), + literal('false', '"false"', location(7, 8, 79, 7, 15, 86)), + location(7, 3, 74, 7, 15, 86) + ) + ], location(1, 1, 0, 8, 2, 88)); + +module.exports = { + ast: ast, + options: { + loc: true + } +}; + diff --git a/test/cases/right/literals.json b/test/fixtures/valid/literals.json similarity index 100% rename from test/cases/right/literals.json rename to test/fixtures/valid/literals.json diff --git a/test/fixtures/valid/number-only.js b/test/fixtures/valid/number-only.js new file mode 100644 index 00000000..588c7849 --- /dev/null +++ b/test/fixtures/valid/number-only.js @@ -0,0 +1,10 @@ +var types = require('../../types'); +var location = types.location; +var literal = types.createLiteral; + +module.exports = { + ast: literal(12345, '12345', location(1, 1, 0, 1, 6, 5)), + options: { + loc: true + } +}; diff --git a/test/cases/right/number-only.json b/test/fixtures/valid/number-only.json similarity index 100% rename from test/cases/right/number-only.json rename to test/fixtures/valid/number-only.json diff --git a/test/cases/right/object-only.js b/test/fixtures/valid/object-only.js similarity index 92% rename from test/cases/right/object-only.js rename to test/fixtures/valid/object-only.js index df04f907..7cc779cd 100644 --- a/test/cases/right/object-only.js +++ b/test/fixtures/valid/object-only.js @@ -5,6 +5,6 @@ var object = types.createObject; module.exports = { ast: object([], location(1, 1, 0, 1, 3, 2)), options: { - verbose: true + loc: true } }; diff --git a/test/cases/right/object-only.json b/test/fixtures/valid/object-only.json similarity index 100% rename from test/cases/right/object-only.json rename to test/fixtures/valid/object-only.json diff --git a/test/fixtures/valid/string-escaping.js b/test/fixtures/valid/string-escaping.js new file mode 100644 index 00000000..20617364 --- /dev/null +++ b/test/fixtures/valid/string-escaping.js @@ -0,0 +1,23 @@ +var types = require('../../types'); +var object = types.createObject; +var id = types.createIdentifier; +var prop = types.createProperty; +var literal = types.createLiteral; + +var ast = object([ + prop(id('quota\"tion', '"quota\\\"tion"'), literal('reverse\\solidus', '"reverse\\\\solidus"')), + prop(id('soli\/dus', '"soli\\/dus"'), literal('back\bspace', '"back\\bspace"')), + prop(id('form\ffeed', '"form\\ffeed"'), literal('new\nline', '"new\\nline"')), + prop(id('re\rturn', '"re\\rturn"'), literal('tab\tsymbol', '"tab\\tsymbol"')), + prop(id('hex\u0001digit', '"hex\\u0001digit"'), literal('', '""')), + prop(id('\"\"\"\"', '"\\\"\\\"\\\"\\\""'), literal('\\\\\\', '"\\\\\\\\\\\\"')), + prop(id('\/', '"\\/"'), literal('\b', '"\\b"')), + prop(id('\"\/', '"\\\"\\/"'), literal('\"\\\/\b\f\n\r\t\u0001', '"\\\"\\\\\\/\\b\\f\\n\\r\\t\\u0001"')) +]); + +module.exports = { + ast: ast, + options: { + loc: false + } +}; diff --git a/test/cases/right/string-escaping.json b/test/fixtures/valid/string-escaping.json similarity index 100% rename from test/cases/right/string-escaping.json rename to test/fixtures/valid/string-escaping.json diff --git a/test/fixtures/valid/string-only.js b/test/fixtures/valid/string-only.js new file mode 100644 index 00000000..f16b9a01 --- /dev/null +++ b/test/fixtures/valid/string-only.js @@ -0,0 +1,10 @@ +var types = require('../../types'); +var location = types.location; +var literal = types.createLiteral; + +module.exports = { + ast: literal('Some text', '"Some text"', location(1, 1, 0, 1, 12, 11)), + options: { + loc: true + } +}; diff --git a/test/cases/right/string-only.json b/test/fixtures/valid/string-only.json similarity index 100% rename from test/cases/right/string-only.json rename to test/fixtures/valid/string-only.json diff --git a/test/fixtures/valid/symbols.js b/test/fixtures/valid/symbols.js new file mode 100644 index 00000000..02cdeaab --- /dev/null +++ b/test/fixtures/valid/symbols.js @@ -0,0 +1,30 @@ +var types = require('../../types'); +var object = types.createObject; +var id = types.createIdentifier; +var prop = types.createProperty; +var array = types.createArray; +var literal = types.createLiteral; + +var ast = object([ + prop(id('a<', '"a<"'), literal(2, '2')), + prop(id('b)', '"b)"'), object([ + prop(id('c(', '"c("'), array([ + literal('3!', '"3!"'), + literal('4:', '"4:"'), + literal('5;', '"5;"'), + literal('6\'', '"6\'"') + ])), + prop(id('d&', '"d&"'), object([ + prop(id('e!', '"e!"'), literal('~_~', '"~_~"')) + ])), + prop(id(':e', '":e"'), literal('𠮷', '"𠮷"')), + prop(id(' f ', '" f "'), literal('*±*∆', '"*±*∆"')) + ])) +]); + +module.exports = { + ast: ast, + options: { + loc: false + } +}; diff --git a/test/cases/right/symbols.json b/test/fixtures/valid/symbols.json similarity index 88% rename from test/cases/right/symbols.json rename to test/fixtures/valid/symbols.json index b73229a6..fcb5b043 100644 --- a/test/cases/right/symbols.json +++ b/test/fixtures/valid/symbols.json @@ -7,7 +7,7 @@ "d&": { "e!": "~_~" }, - ":e": "|", + ":e": "𠮷", " f ": "*±*∆" } } diff --git a/test/fixtures/valid/unicode.js b/test/fixtures/valid/unicode.js new file mode 100644 index 00000000..b9ecdd47 --- /dev/null +++ b/test/fixtures/valid/unicode.js @@ -0,0 +1,24 @@ +var types = require('../../types'); +var array = types.createArray; +var object = types.createObject; +var id = types.createIdentifier; +var prop = types.createProperty; +var literal = types.createLiteral; + +var ast = array([ + literal('♥', '"\\u2665"'), + object([ + prop(id('©', '"\\u00A9"'), literal('𝌆\b\n\t', '"\\uD834\\uDF06\\b\\n\\t"')) + ]), + literal('', '"\\u007f"'), + object([ + prop(id('􏿿', '"\\uDBFF\\uDFFF"'), literal('𝄞', '"\\uD834\\uDD1E"')) + ]) +]); + +module.exports = { + ast: ast, + options: { + loc: false + } +}; diff --git a/test/fixtures/valid/unicode.json b/test/fixtures/valid/unicode.json new file mode 100644 index 00000000..a815288a --- /dev/null +++ b/test/fixtures/valid/unicode.json @@ -0,0 +1,6 @@ +[ + "\u2665", + { "\u00A9": "\uD834\uDF06\b\n\t" }, + "\u007f", + { "\uDBFF\uDFFF": "\uD834\uDD1E" } +] diff --git a/test/cases/right/y_array_arraysWithSpaces.json b/test/fixtures/valid/y_array_arraysWithSpaces.json similarity index 100% rename from test/cases/right/y_array_arraysWithSpaces.json rename to test/fixtures/valid/y_array_arraysWithSpaces.json diff --git a/test/cases/right/y_array_empty-string.json b/test/fixtures/valid/y_array_empty-string.json similarity index 100% rename from test/cases/right/y_array_empty-string.json rename to test/fixtures/valid/y_array_empty-string.json diff --git a/test/cases/right/y_array_empty.json b/test/fixtures/valid/y_array_empty.json similarity index 100% rename from test/cases/right/y_array_empty.json rename to test/fixtures/valid/y_array_empty.json diff --git a/test/cases/right/y_array_ending_with_newline.json b/test/fixtures/valid/y_array_ending_with_newline.json similarity index 100% rename from test/cases/right/y_array_ending_with_newline.json rename to test/fixtures/valid/y_array_ending_with_newline.json diff --git a/test/cases/right/y_array_false.json b/test/fixtures/valid/y_array_false.json similarity index 100% rename from test/cases/right/y_array_false.json rename to test/fixtures/valid/y_array_false.json diff --git a/test/cases/right/y_array_heterogeneous.json b/test/fixtures/valid/y_array_heterogeneous.json similarity index 100% rename from test/cases/right/y_array_heterogeneous.json rename to test/fixtures/valid/y_array_heterogeneous.json diff --git a/test/cases/right/y_array_null.json b/test/fixtures/valid/y_array_null.json similarity index 100% rename from test/cases/right/y_array_null.json rename to test/fixtures/valid/y_array_null.json diff --git a/test/cases/right/y_array_with_1_and_newline.json b/test/fixtures/valid/y_array_with_1_and_newline.json similarity index 100% rename from test/cases/right/y_array_with_1_and_newline.json rename to test/fixtures/valid/y_array_with_1_and_newline.json diff --git a/test/cases/right/y_array_with_leading_space.json b/test/fixtures/valid/y_array_with_leading_space.json similarity index 100% rename from test/cases/right/y_array_with_leading_space.json rename to test/fixtures/valid/y_array_with_leading_space.json diff --git a/test/cases/right/y_array_with_several_null.json b/test/fixtures/valid/y_array_with_several_null.json similarity index 100% rename from test/cases/right/y_array_with_several_null.json rename to test/fixtures/valid/y_array_with_several_null.json diff --git a/test/cases/right/y_array_with_trailing_space.json b/test/fixtures/valid/y_array_with_trailing_space.json similarity index 100% rename from test/cases/right/y_array_with_trailing_space.json rename to test/fixtures/valid/y_array_with_trailing_space.json diff --git a/test/cases/right/y_number.json b/test/fixtures/valid/y_number.json similarity index 100% rename from test/cases/right/y_number.json rename to test/fixtures/valid/y_number.json diff --git a/test/cases/right/y_number_0e+1.json b/test/fixtures/valid/y_number_0e+1.json similarity index 100% rename from test/cases/right/y_number_0e+1.json rename to test/fixtures/valid/y_number_0e+1.json diff --git a/test/cases/right/y_number_0e1.json b/test/fixtures/valid/y_number_0e1.json similarity index 100% rename from test/cases/right/y_number_0e1.json rename to test/fixtures/valid/y_number_0e1.json diff --git a/test/cases/right/y_number_after_space.json b/test/fixtures/valid/y_number_after_space.json similarity index 100% rename from test/cases/right/y_number_after_space.json rename to test/fixtures/valid/y_number_after_space.json diff --git a/test/cases/right/y_number_double_close_to_zero.json b/test/fixtures/valid/y_number_double_close_to_zero.json similarity index 100% rename from test/cases/right/y_number_double_close_to_zero.json rename to test/fixtures/valid/y_number_double_close_to_zero.json diff --git a/test/cases/right/y_number_int_with_exp.json b/test/fixtures/valid/y_number_int_with_exp.json similarity index 100% rename from test/cases/right/y_number_int_with_exp.json rename to test/fixtures/valid/y_number_int_with_exp.json diff --git a/test/cases/right/y_number_minus_zero.json b/test/fixtures/valid/y_number_minus_zero.json similarity index 100% rename from test/cases/right/y_number_minus_zero.json rename to test/fixtures/valid/y_number_minus_zero.json diff --git a/test/cases/right/y_number_negative_int.json b/test/fixtures/valid/y_number_negative_int.json similarity index 100% rename from test/cases/right/y_number_negative_int.json rename to test/fixtures/valid/y_number_negative_int.json diff --git a/test/cases/right/y_number_negative_one.json b/test/fixtures/valid/y_number_negative_one.json similarity index 100% rename from test/cases/right/y_number_negative_one.json rename to test/fixtures/valid/y_number_negative_one.json diff --git a/test/cases/right/y_number_negative_zero.json b/test/fixtures/valid/y_number_negative_zero.json similarity index 100% rename from test/cases/right/y_number_negative_zero.json rename to test/fixtures/valid/y_number_negative_zero.json diff --git a/test/cases/right/y_number_real_capital_e.json b/test/fixtures/valid/y_number_real_capital_e.json similarity index 100% rename from test/cases/right/y_number_real_capital_e.json rename to test/fixtures/valid/y_number_real_capital_e.json diff --git a/test/cases/right/y_number_real_capital_e_neg_exp.json b/test/fixtures/valid/y_number_real_capital_e_neg_exp.json similarity index 100% rename from test/cases/right/y_number_real_capital_e_neg_exp.json rename to test/fixtures/valid/y_number_real_capital_e_neg_exp.json diff --git a/test/cases/right/y_number_real_capital_e_pos_exp.json b/test/fixtures/valid/y_number_real_capital_e_pos_exp.json similarity index 100% rename from test/cases/right/y_number_real_capital_e_pos_exp.json rename to test/fixtures/valid/y_number_real_capital_e_pos_exp.json diff --git a/test/cases/right/y_number_real_exponent.json b/test/fixtures/valid/y_number_real_exponent.json similarity index 100% rename from test/cases/right/y_number_real_exponent.json rename to test/fixtures/valid/y_number_real_exponent.json diff --git a/test/cases/right/y_number_real_fraction_exponent.json b/test/fixtures/valid/y_number_real_fraction_exponent.json similarity index 100% rename from test/cases/right/y_number_real_fraction_exponent.json rename to test/fixtures/valid/y_number_real_fraction_exponent.json diff --git a/test/cases/right/y_number_real_neg_exp.json b/test/fixtures/valid/y_number_real_neg_exp.json similarity index 100% rename from test/cases/right/y_number_real_neg_exp.json rename to test/fixtures/valid/y_number_real_neg_exp.json diff --git a/test/cases/right/y_number_real_pos_exponent.json b/test/fixtures/valid/y_number_real_pos_exponent.json similarity index 100% rename from test/cases/right/y_number_real_pos_exponent.json rename to test/fixtures/valid/y_number_real_pos_exponent.json diff --git a/test/cases/right/y_number_simple_int.json b/test/fixtures/valid/y_number_simple_int.json similarity index 100% rename from test/cases/right/y_number_simple_int.json rename to test/fixtures/valid/y_number_simple_int.json diff --git a/test/cases/right/y_number_simple_real.json b/test/fixtures/valid/y_number_simple_real.json similarity index 100% rename from test/cases/right/y_number_simple_real.json rename to test/fixtures/valid/y_number_simple_real.json diff --git a/test/cases/right/y_object.json b/test/fixtures/valid/y_object.json similarity index 100% rename from test/cases/right/y_object.json rename to test/fixtures/valid/y_object.json diff --git a/test/cases/right/y_object_basic.json b/test/fixtures/valid/y_object_basic.json similarity index 100% rename from test/cases/right/y_object_basic.json rename to test/fixtures/valid/y_object_basic.json diff --git a/test/cases/right/y_object_duplicated_key.json b/test/fixtures/valid/y_object_duplicated_key.json similarity index 100% rename from test/cases/right/y_object_duplicated_key.json rename to test/fixtures/valid/y_object_duplicated_key.json diff --git a/test/cases/right/y_object_duplicated_key_and_value.json b/test/fixtures/valid/y_object_duplicated_key_and_value.json similarity index 100% rename from test/cases/right/y_object_duplicated_key_and_value.json rename to test/fixtures/valid/y_object_duplicated_key_and_value.json diff --git a/test/cases/right/y_object_empty.json b/test/fixtures/valid/y_object_empty.json similarity index 100% rename from test/cases/right/y_object_empty.json rename to test/fixtures/valid/y_object_empty.json diff --git a/test/cases/right/y_object_empty_key.json b/test/fixtures/valid/y_object_empty_key.json similarity index 100% rename from test/cases/right/y_object_empty_key.json rename to test/fixtures/valid/y_object_empty_key.json diff --git a/test/cases/right/y_object_escaped_null_in_key.json b/test/fixtures/valid/y_object_escaped_null_in_key.json similarity index 100% rename from test/cases/right/y_object_escaped_null_in_key.json rename to test/fixtures/valid/y_object_escaped_null_in_key.json diff --git a/test/cases/right/y_object_extreme_numbers.json b/test/fixtures/valid/y_object_extreme_numbers.json similarity index 100% rename from test/cases/right/y_object_extreme_numbers.json rename to test/fixtures/valid/y_object_extreme_numbers.json diff --git a/test/cases/right/y_object_long_strings.json b/test/fixtures/valid/y_object_long_strings.json similarity index 100% rename from test/cases/right/y_object_long_strings.json rename to test/fixtures/valid/y_object_long_strings.json diff --git a/test/cases/right/y_object_simple.json b/test/fixtures/valid/y_object_simple.json similarity index 100% rename from test/cases/right/y_object_simple.json rename to test/fixtures/valid/y_object_simple.json diff --git a/test/cases/right/y_object_string_unicode.json b/test/fixtures/valid/y_object_string_unicode.json similarity index 100% rename from test/cases/right/y_object_string_unicode.json rename to test/fixtures/valid/y_object_string_unicode.json diff --git a/test/cases/right/y_object_with_newlines.json b/test/fixtures/valid/y_object_with_newlines.json similarity index 100% rename from test/cases/right/y_object_with_newlines.json rename to test/fixtures/valid/y_object_with_newlines.json diff --git a/test/cases/right/y_string_1_2_3_bytes_UTF-8_sequences.json b/test/fixtures/valid/y_string_1_2_3_bytes_UTF-8_sequences.json similarity index 100% rename from test/cases/right/y_string_1_2_3_bytes_UTF-8_sequences.json rename to test/fixtures/valid/y_string_1_2_3_bytes_UTF-8_sequences.json diff --git a/test/cases/right/y_string_accepted_surrogate_pair.json b/test/fixtures/valid/y_string_accepted_surrogate_pair.json similarity index 100% rename from test/cases/right/y_string_accepted_surrogate_pair.json rename to test/fixtures/valid/y_string_accepted_surrogate_pair.json diff --git a/test/cases/right/y_string_accepted_surrogate_pairs.json b/test/fixtures/valid/y_string_accepted_surrogate_pairs.json similarity index 100% rename from test/cases/right/y_string_accepted_surrogate_pairs.json rename to test/fixtures/valid/y_string_accepted_surrogate_pairs.json diff --git a/test/cases/right/y_string_allowed_escapes.json b/test/fixtures/valid/y_string_allowed_escapes.json similarity index 100% rename from test/cases/right/y_string_allowed_escapes.json rename to test/fixtures/valid/y_string_allowed_escapes.json diff --git a/test/cases/right/y_string_backslash_and_u_escaped_zero.json b/test/fixtures/valid/y_string_backslash_and_u_escaped_zero.json similarity index 100% rename from test/cases/right/y_string_backslash_and_u_escaped_zero.json rename to test/fixtures/valid/y_string_backslash_and_u_escaped_zero.json diff --git a/test/cases/right/y_string_backslash_doublequotes.json b/test/fixtures/valid/y_string_backslash_doublequotes.json similarity index 100% rename from test/cases/right/y_string_backslash_doublequotes.json rename to test/fixtures/valid/y_string_backslash_doublequotes.json diff --git a/test/cases/right/y_string_comments.json b/test/fixtures/valid/y_string_comments.json similarity index 100% rename from test/cases/right/y_string_comments.json rename to test/fixtures/valid/y_string_comments.json diff --git a/test/cases/right/y_string_double_escape_a.json b/test/fixtures/valid/y_string_double_escape_a.json similarity index 100% rename from test/cases/right/y_string_double_escape_a.json rename to test/fixtures/valid/y_string_double_escape_a.json diff --git a/test/cases/right/y_string_double_escape_n.json b/test/fixtures/valid/y_string_double_escape_n.json similarity index 100% rename from test/cases/right/y_string_double_escape_n.json rename to test/fixtures/valid/y_string_double_escape_n.json diff --git a/test/cases/right/y_string_escaped_control_character.json b/test/fixtures/valid/y_string_escaped_control_character.json similarity index 100% rename from test/cases/right/y_string_escaped_control_character.json rename to test/fixtures/valid/y_string_escaped_control_character.json diff --git a/test/cases/right/y_string_escaped_noncharacter.json b/test/fixtures/valid/y_string_escaped_noncharacter.json similarity index 100% rename from test/cases/right/y_string_escaped_noncharacter.json rename to test/fixtures/valid/y_string_escaped_noncharacter.json diff --git a/test/cases/right/y_string_in_array.json b/test/fixtures/valid/y_string_in_array.json similarity index 100% rename from test/cases/right/y_string_in_array.json rename to test/fixtures/valid/y_string_in_array.json diff --git a/test/cases/right/y_string_in_array_with_leading_space.json b/test/fixtures/valid/y_string_in_array_with_leading_space.json similarity index 100% rename from test/cases/right/y_string_in_array_with_leading_space.json rename to test/fixtures/valid/y_string_in_array_with_leading_space.json diff --git a/test/cases/right/y_string_last_surrogates_1_and_2.json b/test/fixtures/valid/y_string_last_surrogates_1_and_2.json similarity index 100% rename from test/cases/right/y_string_last_surrogates_1_and_2.json rename to test/fixtures/valid/y_string_last_surrogates_1_and_2.json diff --git a/test/cases/right/y_string_nbsp_uescaped.json b/test/fixtures/valid/y_string_nbsp_uescaped.json similarity index 100% rename from test/cases/right/y_string_nbsp_uescaped.json rename to test/fixtures/valid/y_string_nbsp_uescaped.json diff --git a/test/cases/right/y_string_nonCharacterInUTF-8_U+10FFFF.json b/test/fixtures/valid/y_string_nonCharacterInUTF-8_U+10FFFF.json similarity index 100% rename from test/cases/right/y_string_nonCharacterInUTF-8_U+10FFFF.json rename to test/fixtures/valid/y_string_nonCharacterInUTF-8_U+10FFFF.json diff --git a/test/cases/right/y_string_nonCharacterInUTF-8_U+1FFFF.json b/test/fixtures/valid/y_string_nonCharacterInUTF-8_U+1FFFF.json similarity index 100% rename from test/cases/right/y_string_nonCharacterInUTF-8_U+1FFFF.json rename to test/fixtures/valid/y_string_nonCharacterInUTF-8_U+1FFFF.json diff --git a/test/cases/right/y_string_nonCharacterInUTF-8_U+FFFF.json b/test/fixtures/valid/y_string_nonCharacterInUTF-8_U+FFFF.json similarity index 100% rename from test/cases/right/y_string_nonCharacterInUTF-8_U+FFFF.json rename to test/fixtures/valid/y_string_nonCharacterInUTF-8_U+FFFF.json diff --git a/test/cases/right/y_string_null_escape.json b/test/fixtures/valid/y_string_null_escape.json similarity index 100% rename from test/cases/right/y_string_null_escape.json rename to test/fixtures/valid/y_string_null_escape.json diff --git a/test/cases/right/y_string_one-byte-utf-8.json b/test/fixtures/valid/y_string_one-byte-utf-8.json similarity index 100% rename from test/cases/right/y_string_one-byte-utf-8.json rename to test/fixtures/valid/y_string_one-byte-utf-8.json diff --git a/test/cases/right/y_string_pi.json b/test/fixtures/valid/y_string_pi.json similarity index 100% rename from test/cases/right/y_string_pi.json rename to test/fixtures/valid/y_string_pi.json diff --git a/test/cases/right/y_string_simple_ascii.json b/test/fixtures/valid/y_string_simple_ascii.json similarity index 100% rename from test/cases/right/y_string_simple_ascii.json rename to test/fixtures/valid/y_string_simple_ascii.json diff --git a/test/cases/right/y_string_space.json b/test/fixtures/valid/y_string_space.json similarity index 100% rename from test/cases/right/y_string_space.json rename to test/fixtures/valid/y_string_space.json diff --git a/test/cases/right/y_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json b/test/fixtures/valid/y_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json similarity index 100% rename from test/cases/right/y_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json rename to test/fixtures/valid/y_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json diff --git a/test/cases/right/y_string_three-byte-utf-8.json b/test/fixtures/valid/y_string_three-byte-utf-8.json similarity index 100% rename from test/cases/right/y_string_three-byte-utf-8.json rename to test/fixtures/valid/y_string_three-byte-utf-8.json diff --git a/test/cases/right/y_string_two-byte-utf-8.json b/test/fixtures/valid/y_string_two-byte-utf-8.json similarity index 100% rename from test/cases/right/y_string_two-byte-utf-8.json rename to test/fixtures/valid/y_string_two-byte-utf-8.json diff --git a/test/cases/right/y_string_u+2028_line_sep.json b/test/fixtures/valid/y_string_u+2028_line_sep.json similarity index 100% rename from test/cases/right/y_string_u+2028_line_sep.json rename to test/fixtures/valid/y_string_u+2028_line_sep.json diff --git a/test/cases/right/y_string_u+2029_par_sep.json b/test/fixtures/valid/y_string_u+2029_par_sep.json similarity index 100% rename from test/cases/right/y_string_u+2029_par_sep.json rename to test/fixtures/valid/y_string_u+2029_par_sep.json diff --git a/test/cases/right/y_string_uEscape.json b/test/fixtures/valid/y_string_uEscape.json similarity index 100% rename from test/cases/right/y_string_uEscape.json rename to test/fixtures/valid/y_string_uEscape.json diff --git a/test/cases/right/y_string_uescaped_newline.json b/test/fixtures/valid/y_string_uescaped_newline.json similarity index 100% rename from test/cases/right/y_string_uescaped_newline.json rename to test/fixtures/valid/y_string_uescaped_newline.json diff --git a/test/cases/right/y_string_unescaped_char_delete.json b/test/fixtures/valid/y_string_unescaped_char_delete.json similarity index 100% rename from test/cases/right/y_string_unescaped_char_delete.json rename to test/fixtures/valid/y_string_unescaped_char_delete.json diff --git a/test/cases/right/y_string_unicode.json b/test/fixtures/valid/y_string_unicode.json similarity index 100% rename from test/cases/right/y_string_unicode.json rename to test/fixtures/valid/y_string_unicode.json diff --git a/test/cases/right/y_string_unicodeEscapedBackslash.json b/test/fixtures/valid/y_string_unicodeEscapedBackslash.json similarity index 100% rename from test/cases/right/y_string_unicodeEscapedBackslash.json rename to test/fixtures/valid/y_string_unicodeEscapedBackslash.json diff --git a/test/cases/right/y_string_unicode_2.json b/test/fixtures/valid/y_string_unicode_2.json similarity index 100% rename from test/cases/right/y_string_unicode_2.json rename to test/fixtures/valid/y_string_unicode_2.json diff --git a/test/cases/right/y_string_unicode_U+10FFFE_nonchar.json b/test/fixtures/valid/y_string_unicode_U+10FFFE_nonchar.json similarity index 100% rename from test/cases/right/y_string_unicode_U+10FFFE_nonchar.json rename to test/fixtures/valid/y_string_unicode_U+10FFFE_nonchar.json diff --git a/test/cases/right/y_string_unicode_U+1FFFE_nonchar.json b/test/fixtures/valid/y_string_unicode_U+1FFFE_nonchar.json similarity index 100% rename from test/cases/right/y_string_unicode_U+1FFFE_nonchar.json rename to test/fixtures/valid/y_string_unicode_U+1FFFE_nonchar.json diff --git a/test/cases/right/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json b/test/fixtures/valid/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json similarity index 100% rename from test/cases/right/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json rename to test/fixtures/valid/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json diff --git a/test/cases/right/y_string_unicode_U+2064_invisible_plus.json b/test/fixtures/valid/y_string_unicode_U+2064_invisible_plus.json similarity index 100% rename from test/cases/right/y_string_unicode_U+2064_invisible_plus.json rename to test/fixtures/valid/y_string_unicode_U+2064_invisible_plus.json diff --git a/test/cases/right/y_string_unicode_U+FDD0_nonchar.json b/test/fixtures/valid/y_string_unicode_U+FDD0_nonchar.json similarity index 100% rename from test/cases/right/y_string_unicode_U+FDD0_nonchar.json rename to test/fixtures/valid/y_string_unicode_U+FDD0_nonchar.json diff --git a/test/cases/right/y_string_unicode_U+FFFE_nonchar.json b/test/fixtures/valid/y_string_unicode_U+FFFE_nonchar.json similarity index 100% rename from test/cases/right/y_string_unicode_U+FFFE_nonchar.json rename to test/fixtures/valid/y_string_unicode_U+FFFE_nonchar.json diff --git a/test/cases/right/y_string_unicode_escaped_double_quote.json b/test/fixtures/valid/y_string_unicode_escaped_double_quote.json similarity index 100% rename from test/cases/right/y_string_unicode_escaped_double_quote.json rename to test/fixtures/valid/y_string_unicode_escaped_double_quote.json diff --git a/test/cases/right/y_string_utf8.json b/test/fixtures/valid/y_string_utf8.json similarity index 100% rename from test/cases/right/y_string_utf8.json rename to test/fixtures/valid/y_string_utf8.json diff --git a/test/cases/right/y_string_with_del_character.json b/test/fixtures/valid/y_string_with_del_character.json similarity index 100% rename from test/cases/right/y_string_with_del_character.json rename to test/fixtures/valid/y_string_with_del_character.json diff --git a/test/cases/right/y_structure_lonely_false.json b/test/fixtures/valid/y_structure_lonely_false.json similarity index 100% rename from test/cases/right/y_structure_lonely_false.json rename to test/fixtures/valid/y_structure_lonely_false.json diff --git a/test/cases/right/y_structure_lonely_int.json b/test/fixtures/valid/y_structure_lonely_int.json similarity index 100% rename from test/cases/right/y_structure_lonely_int.json rename to test/fixtures/valid/y_structure_lonely_int.json diff --git a/test/cases/right/y_structure_lonely_negative_real.json b/test/fixtures/valid/y_structure_lonely_negative_real.json similarity index 100% rename from test/cases/right/y_structure_lonely_negative_real.json rename to test/fixtures/valid/y_structure_lonely_negative_real.json diff --git a/test/cases/right/y_structure_lonely_null.json b/test/fixtures/valid/y_structure_lonely_null.json similarity index 100% rename from test/cases/right/y_structure_lonely_null.json rename to test/fixtures/valid/y_structure_lonely_null.json diff --git a/test/cases/right/y_structure_lonely_string.json b/test/fixtures/valid/y_structure_lonely_string.json similarity index 100% rename from test/cases/right/y_structure_lonely_string.json rename to test/fixtures/valid/y_structure_lonely_string.json diff --git a/test/cases/right/y_structure_lonely_true.json b/test/fixtures/valid/y_structure_lonely_true.json similarity index 100% rename from test/cases/right/y_structure_lonely_true.json rename to test/fixtures/valid/y_structure_lonely_true.json diff --git a/test/cases/right/y_structure_string_empty.json b/test/fixtures/valid/y_structure_string_empty.json similarity index 100% rename from test/cases/right/y_structure_string_empty.json rename to test/fixtures/valid/y_structure_string_empty.json diff --git a/test/cases/right/y_structure_trailing_newline.json b/test/fixtures/valid/y_structure_trailing_newline.json similarity index 100% rename from test/cases/right/y_structure_trailing_newline.json rename to test/fixtures/valid/y_structure_trailing_newline.json diff --git a/test/cases/right/y_structure_true_in_array.json b/test/fixtures/valid/y_structure_true_in_array.json similarity index 100% rename from test/cases/right/y_structure_true_in_array.json rename to test/fixtures/valid/y_structure_true_in_array.json diff --git a/test/cases/right/y_structure_whitespace_array.json b/test/fixtures/valid/y_structure_whitespace_array.json similarity index 100% rename from test/cases/right/y_structure_whitespace_array.json rename to test/fixtures/valid/y_structure_whitespace_array.json diff --git a/test/index.js b/test/index.js index 9738b17a..6fac103e 100644 --- a/test/index.js +++ b/test/index.js @@ -1,50 +1,40 @@ var fs = require('fs'); var path = require('path'); var assert = require('assert'); -var parse = require('../dist/parse.js'); +var parse = require('../build'); -function readFile(file) { - var src = fs.readFileSync(file, 'utf8'); - // normalize line endings - src = src.replace(/\r\n/, '\n'); - // remove trailing newline - src = src.replace(/\n$/, ''); - - return src; -} - -function getCases(dirname, callback) { +function getFixtures(dirname, callback) { var folderPath = path.join(__dirname, dirname); var folder = fs.readdirSync(folderPath); - var cases = folder - .filter(function(_case) { - return path.extname(_case) === '.json' && _case.charAt(0) !== '_'; + var fixtures = folder + .filter(function(fixture) { + return path.extname(fixture) === '.json' && fixture.charAt(0) !== '_'; }) .map(function(fileName) { return path.basename(fileName, '.json'); }); - cases.forEach(function(_case) { - var inputFile = readFile(path.join(folderPath, _case + '.json')); + fixtures.forEach(function(fixture) { + var inputFile = fs.readFileSync(path.join(folderPath, fixture + '.json'), 'utf8'); var expectedFile; try { - expectedFile = require(path.join(folderPath, _case + '.js')); + expectedFile = require(path.join(folderPath, fixture + '.js')); } catch (e) { expectedFile = null; } if (callback) { - callback(_case, inputFile, expectedFile); + callback(fixture, inputFile, expectedFile); } }); } -describe('Right test cases', function() { - getCases('cases/right', function(caseName, inputFile, expectedFile) { - it(caseName, function() { +describe('Right test fixtures', function() { + getFixtures('fixtures/valid', function(fixtureName, inputFile, expectedFile) { + it(fixtureName, function() { if (expectedFile) { var parsedFile = parse(inputFile, expectedFile.options); - assert.deepEqual(parsedFile, expectedFile.ast, 'asts are not equal'); + assert.deepEqual(expectedFile.ast, parsedFile, 'asts are not equal'); } else { /*try { parse(inputFile); @@ -57,9 +47,9 @@ describe('Right test cases', function() { }); }); -describe('Wrong test cases', function() { - getCases('cases/wrong', function(caseName, inputFile, expectedFile) { - it(caseName, function() { +describe('Wrong test fixtures', function() { + getFixtures('fixtures/invalid', function(fixtureName, inputFile, expectedFile) { + it(fixtureName, function() { if (expectedFile) { try { parse(inputFile, expectedFile.options); diff --git a/test/types.js b/test/types.js index 4bb5890d..3556d536 100644 --- a/test/types.js +++ b/test/types.js @@ -14,10 +14,11 @@ function location(startLine, startColumn, startOffset, endLine, endColumn, endOf } } -function createObjectKey(value, location) { - var node = { - type: 'identifier', - value: value +function createIdentifier(value, raw, location) { + const node = { + type: 'Identifier', + value: value, + raw: raw }; if (location) { @@ -27,9 +28,9 @@ function createObjectKey(value, location) { return node; } -function createObjectProperty(key, value, location) { - var node = { - type: 'property', +function createProperty(key, value, location) { + const node = { + type: 'Property', key: key, value: value }; @@ -42,8 +43,8 @@ function createObjectProperty(key, value, location) { } function createObject(properties, location) { - var node = { - type: 'object', + const node = { + type: 'Object', children: properties }; @@ -55,8 +56,8 @@ function createObject(properties, location) { } function createArray(items, location) { - var node = { - type: 'array', + const node = { + type: 'Array', children: items }; @@ -67,11 +68,11 @@ function createArray(items, location) { return node; } -function createLiteral(value, rawValue, location) { - var node = { - type: 'literal', +function createLiteral(value, raw, location) { + const node = { + type: 'Literal', value: value, - rawValue: rawValue + raw: raw }; if (location) { @@ -81,36 +82,11 @@ function createLiteral(value, rawValue, location) { return node; } -function createString(value, location) { - return createLiteral(value, '"' + value + '"', location); -} - -function createNumber(value, location) { - return createLiteral(value, String(value), location); -} - -function createTrue(location) { - return createLiteral(true, 'true', location); -} - -function createFalse(location) { - return createLiteral(false, 'false', location); -} - -function createNull(location) { - return createLiteral(null, 'null', location); -} - module.exports = { location: location, - createObjectKey: createObjectKey, - createObjectProperty: createObjectProperty, + createIdentifier: createIdentifier, + createProperty: createProperty, createObject: createObject, createLiteral: createLiteral, - createArray: createArray, - createString: createString, - createNumber: createNumber, - createTrue: createTrue, - createFalse: createFalse, - createNull: createNull + createArray: createArray }; diff --git a/utils/handleErrors.js b/utils/handleErrors.js deleted file mode 100644 index 67ce655b..00000000 --- a/utils/handleErrors.js +++ /dev/null @@ -1,14 +0,0 @@ -var notify = require("gulp-notify"); - -module.exports = function () { - var args = Array.prototype.slice.call(arguments); - // Send error to notification center with gulp-notify - - notify.onError({ - title: "Compile Error", - message: "<%= error %>" - }).apply(this, args); - - // Keep gulp from hanging on this task - this.emit('end'); -}; \ No newline at end of file