├── .gitignore ├── index.js ├── package.json ├── readme.md ├── test.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const { isNull, isBoolean, isNumber, isString, isArray, isObject, isEmpty, fromPairs, keys, map, repeat } = require('lodash') 2 | const { parse: parseLua } = require('luaparse') 3 | 4 | const formatLuaString = (string, singleQuote) => (singleQuote ? `'${string.replace(/'/g, "\\'")}'` : `"${string.replace(/"/g, '\\"')}"`) 5 | 6 | const valueKeys = { false: 'false', true: 'true', null: 'nil' } 7 | 8 | const formatLuaKey = (string, singleQuote) => 9 | valueKeys[string] ? `[${valueKeys[string]}]` : string.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/) ? string : `[${formatLuaString(string, singleQuote)}]` 10 | 11 | const format = (value, options = { eol: '\n', singleQuote: true, spaces: 2 }) => { 12 | options = options || {} 13 | const eol = (options.eol = isString(options.eol) ? options.eol : '\n') 14 | options.singleQuote = isBoolean(options.singleQuote) ? options.singleQuote : true 15 | options.spaces = isNull(options.spaces) || isNumber(options.spaces) || isString(options.spaces) ? options.spaces : 2 16 | 17 | const rec = (value, i = 0) => { 18 | if (isNull(value)) { 19 | return 'nil' 20 | } 21 | if (isBoolean(value) || isNumber(value)) { 22 | return value.toString() 23 | } 24 | if (isString(value)) { 25 | return formatLuaString(value, options.singleQuote) 26 | } 27 | if (isArray(value)) { 28 | if (isEmpty(value)) { 29 | return '{}' 30 | } 31 | if (options.spaces) { 32 | const spaces = isNumber(options.spaces) ? repeat(' ', options.spaces * (i + 1)) : repeat(options.spaces, i + 1) 33 | const spacesEnd = isNumber(options.spaces) ? repeat(' ', options.spaces * i) : repeat(options.spaces, i) 34 | return `{${eol}${value.map(e => `${spaces}${rec(e, i + 1)},`).join(eol)}${eol}${spacesEnd}}` 35 | } 36 | return `{${value.map(e => `${rec(e, i + 1)},`).join('')}}` 37 | } 38 | if (isObject(value)) { 39 | if (isEmpty(value)) { 40 | return '{}' 41 | } 42 | if (options.spaces) { 43 | const spaces = isNumber(options.spaces) ? repeat(' ', options.spaces * (i + 1)) : repeat(options.spaces, i + 1) 44 | const spacesEnd = isNumber(options.spaces) ? repeat(' ', options.spaces * i) : repeat(options.spaces, i) 45 | return `{${eol}${keys(value) 46 | .map(key => `${spaces}${formatLuaKey(key, options.singleQuote)} = ${rec(value[key], i + 1)},`) 47 | .join(eol)}${eol}${spacesEnd}}` 48 | } 49 | return `{${keys(value) 50 | .map(key => `${formatLuaKey(key, options.singleQuote)}=${rec(value[key], i + 1)},`) 51 | .join('')}}` 52 | } 53 | throw new Error(`can't format ${typeof value}`) 54 | } 55 | 56 | return `return${options.spaces ? ' ' : ''}${rec(value)}` 57 | } 58 | 59 | const luaAstToJson = ast => { 60 | // literals 61 | if (['NilLiteral', 'BooleanLiteral', 'NumericLiteral', 'StringLiteral'].includes(ast.type)) { 62 | return ast.value 63 | } 64 | // basic expressions 65 | if (ast.type === 'UnaryExpression' && ast.operator === '-') { 66 | return -luaAstToJson(ast.argument) 67 | } 68 | if (ast.type === 'Identifier') { 69 | return ast.name 70 | } 71 | // tables 72 | if (['TableKey', 'TableKeyString'].includes(ast.type)) { 73 | return { __internal_table_key: true, key: luaAstToJson(ast.key), value: luaAstToJson(ast.value) } 74 | } 75 | if (ast.type === 'TableValue') { 76 | return luaAstToJson(ast.value) 77 | } 78 | if (ast.type === 'TableConstructorExpression') { 79 | if (ast.fields[0] && ast.fields[0].key) { 80 | const object = fromPairs( 81 | map(ast.fields, field => { 82 | const { key, value } = luaAstToJson(field) 83 | return [key, value] 84 | }), 85 | ) 86 | return isEmpty(object) ? [] : object 87 | } 88 | return map(ast.fields, field => { 89 | const value = luaAstToJson(field) 90 | return value.__internal_table_key ? [value.key, value.value] : value 91 | }) 92 | } 93 | // top-level statements, only looking at the first statement, either return or local 94 | // todo: filter until return or local? 95 | if (ast.type === 'LocalStatement') { 96 | const values = ast.init.map(luaAstToJson) 97 | return values.length === 1 ? values[0] : values 98 | } 99 | if (ast.type === 'ReturnStatement') { 100 | const values = ast.arguments.map(luaAstToJson) 101 | return values.length === 1 ? values[0] : values 102 | } 103 | if (ast.type === 'Chunk') { 104 | return luaAstToJson(ast.body[0]) 105 | } 106 | throw new Error(`can't parse ${ast.type}`) 107 | } 108 | 109 | const parse = value => luaAstToJson(parseLua(value, { comments: false })) 110 | 111 | module.exports = { 112 | format, 113 | parse, 114 | } 115 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lua-json", 3 | "version": "1.0.1", 4 | "description": "Convert Lua tables to and from JSON", 5 | "keywords": [ 6 | "json", 7 | "lua", 8 | "table", 9 | "format", 10 | "parse" 11 | ], 12 | "license": "MIT", 13 | "author": "gakada (https://github.com/gakada)", 14 | "contributors": [], 15 | "homepage": "https://github.com/kcwiki/lua-json#readme", 16 | "bugs": "https://github.com/kcwiki/lua-json/issues", 17 | "repository": "kcwiki/lua-json", 18 | "main": "index.js", 19 | "files": [ 20 | "index.js" 21 | ], 22 | "bin": {}, 23 | "scripts": { 24 | "format": "prettier --loglevel warn --write '**/*.{js,json,md,ts,yaml,yml}'", 25 | "lint": "eslint --fix .", 26 | "test": "yarn format && yarn lint && node test.js", 27 | "up": "yarn upgrade --latest" 28 | }, 29 | "dependencies": { 30 | "lodash": "^4.17.11", 31 | "luaparse": "^0.2.1" 32 | }, 33 | "devDependencies": { 34 | "babel-eslint": "^10.0.1", 35 | "eslint": "^5.16.0", 36 | "eslint-config-prettier": "^5.0.0", 37 | "eslint-plugin-prettier": "^3.1.0", 38 | "prettier": "^1.18.2" 39 | }, 40 | "eslintConfig": { 41 | "env": { 42 | "es6": true, 43 | "node": true 44 | }, 45 | "extends": [ 46 | "eslint:recommended", 47 | "plugin:prettier/recommended" 48 | ], 49 | "parser": "babel-eslint" 50 | }, 51 | "prettier": { 52 | "printWidth": 150, 53 | "semi": false, 54 | "singleQuote": true, 55 | "trailingComma": "all" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # `lua-json` 2 | 3 | [![Version](https://img.shields.io/npm/v/lua-json.svg)](https://www.npmjs.com/package/lua-json) 4 | 5 | Convert Lua tables to and from JSON. 6 | 7 | ## Install 8 | 9 | ```sh 10 | yarn add lua-json 11 | ``` 12 | 13 | ## Usage 14 | 15 | ```js 16 | const { format, parse } = require('lua-json') 17 | 18 | format({ x: 1 }) // 'return { x = 1 }' 19 | parse('return { x = 1 }') // { x: 1 } 20 | ``` 21 | 22 | ## API 23 | 24 | ```ts 25 | type Json = null | boolean | number | string | Json[] | { [_: string]: Json } 26 | 27 | format( 28 | value: Json, 29 | options?: { 30 | eol: string = '\n', 31 | singleQuote: boolean = true, 32 | spaces: null | number | string = 2, 33 | } 34 | ): string 35 | 36 | parse(value: string): Json 37 | ``` 38 | 39 | ## TODO 40 | 41 | - More formatting options à la [prettier](https://prettier.io/docs/en/options.html): `printWidth` (!), `trailingComma`, `bracketSpacing`. 42 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | const { clone, mapKeys } = require('lodash') 2 | const { equal, deepEqual } = require('assert') 3 | 4 | const { format, parse } = require('.') 5 | 6 | const json = { 7 | _null: null, 8 | _false: false, 9 | _true: true, 10 | _zero: 0, 11 | _one: 1, 12 | _negative: -1, 13 | _float: 3.14, 14 | _big: 1e123, 15 | _string: "...'...'...", 16 | _array0: [], 17 | _array1: [1], 18 | _array2: [1, 2], 19 | _object0: [], 20 | _object1: { 21 | _nested: { 22 | _value: 1, 23 | }, 24 | }, 25 | _object2: { 26 | 'a b': 1, 27 | "...'...'...": 2, 28 | null: 3, 29 | false: 4, 30 | true: 5, 31 | }, 32 | } 33 | 34 | const lua = `return { 35 | _null = nil, 36 | _false = false, 37 | _true = true, 38 | _zero = 0, 39 | _one = 1, 40 | _negative = -1, 41 | _float = 3.14, 42 | _big = 1e+123, 43 | _string = '...\\'...\\'...', 44 | _array0 = {}, 45 | _array1 = { 46 | 1, 47 | }, 48 | _array2 = { 49 | 1, 50 | 2, 51 | }, 52 | _object0 = {}, 53 | _object1 = { 54 | _nested = { 55 | _value = 1, 56 | }, 57 | }, 58 | _object2 = { 59 | ['a b'] = 1, 60 | ['...\\'...\\'...'] = 2, 61 | [nil] = 3, 62 | [false] = 4, 63 | [true] = 5, 64 | }, 65 | }` 66 | 67 | const luaMinified = `return{_null=nil,_false=false,_true=true,_zero=0,_one=1,_negative=-1,_float=3.14,_big=1e+123,_string='...\\'...\\'...',_array0={},_array1={1,},_array2={1,2,},_object0={},_object1={_nested={_value=1,},},_object2={['a b']=1,['...\\'...\\'...']=2,[nil]=3,[false]=4,[true]=5,},}` 68 | 69 | equal(format(json), lua) 70 | deepEqual(parse(lua), json) 71 | equal(format(json, { spaces: null }), luaMinified) 72 | deepEqual(parse(luaMinified), json) 73 | 74 | const jsonDoubleQuote = clone(json) 75 | jsonDoubleQuote._string = jsonDoubleQuote._string.replace(/'/g, '"') 76 | jsonDoubleQuote._object2 = mapKeys(jsonDoubleQuote._object2, (_, key) => key.replace(/'/g, '"')) 77 | const luaDoubleQuote = lua.replace(/'/g, '"') 78 | equal(format(jsonDoubleQuote, { singleQuote: false }), luaDoubleQuote) 79 | deepEqual(parse(luaDoubleQuote), jsonDoubleQuote) 80 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": 6 | version "7.18.6" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 8 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 9 | dependencies: 10 | "@babel/highlight" "^7.18.6" 11 | 12 | "@babel/generator@^7.19.0": 13 | version "7.19.0" 14 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" 15 | integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== 16 | dependencies: 17 | "@babel/types" "^7.19.0" 18 | "@jridgewell/gen-mapping" "^0.3.2" 19 | jsesc "^2.5.1" 20 | 21 | "@babel/helper-environment-visitor@^7.18.9": 22 | version "7.18.9" 23 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 24 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 25 | 26 | "@babel/helper-function-name@^7.19.0": 27 | version "7.19.0" 28 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" 29 | integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== 30 | dependencies: 31 | "@babel/template" "^7.18.10" 32 | "@babel/types" "^7.19.0" 33 | 34 | "@babel/helper-hoist-variables@^7.18.6": 35 | version "7.18.6" 36 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 37 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 38 | dependencies: 39 | "@babel/types" "^7.18.6" 40 | 41 | "@babel/helper-split-export-declaration@^7.18.6": 42 | version "7.18.6" 43 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 44 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 45 | dependencies: 46 | "@babel/types" "^7.18.6" 47 | 48 | "@babel/helper-string-parser@^7.18.10": 49 | version "7.18.10" 50 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" 51 | integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== 52 | 53 | "@babel/helper-validator-identifier@^7.18.6": 54 | version "7.18.6" 55 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" 56 | integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== 57 | 58 | "@babel/highlight@^7.18.6": 59 | version "7.18.6" 60 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 61 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 62 | dependencies: 63 | "@babel/helper-validator-identifier" "^7.18.6" 64 | chalk "^2.0.0" 65 | js-tokens "^4.0.0" 66 | 67 | "@babel/parser@^7.18.10", "@babel/parser@^7.19.0", "@babel/parser@^7.7.0": 68 | version "7.19.0" 69 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.0.tgz#497fcafb1d5b61376959c1c338745ef0577aa02c" 70 | integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw== 71 | 72 | "@babel/template@^7.18.10": 73 | version "7.18.10" 74 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" 75 | integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== 76 | dependencies: 77 | "@babel/code-frame" "^7.18.6" 78 | "@babel/parser" "^7.18.10" 79 | "@babel/types" "^7.18.10" 80 | 81 | "@babel/traverse@^7.7.0": 82 | version "7.19.0" 83 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.0.tgz#eb9c561c7360005c592cc645abafe0c3c4548eed" 84 | integrity sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA== 85 | dependencies: 86 | "@babel/code-frame" "^7.18.6" 87 | "@babel/generator" "^7.19.0" 88 | "@babel/helper-environment-visitor" "^7.18.9" 89 | "@babel/helper-function-name" "^7.19.0" 90 | "@babel/helper-hoist-variables" "^7.18.6" 91 | "@babel/helper-split-export-declaration" "^7.18.6" 92 | "@babel/parser" "^7.19.0" 93 | "@babel/types" "^7.19.0" 94 | debug "^4.1.0" 95 | globals "^11.1.0" 96 | 97 | "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.7.0": 98 | version "7.19.0" 99 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" 100 | integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== 101 | dependencies: 102 | "@babel/helper-string-parser" "^7.18.10" 103 | "@babel/helper-validator-identifier" "^7.18.6" 104 | to-fast-properties "^2.0.0" 105 | 106 | "@jridgewell/gen-mapping@^0.3.2": 107 | version "0.3.2" 108 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 109 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 110 | dependencies: 111 | "@jridgewell/set-array" "^1.0.1" 112 | "@jridgewell/sourcemap-codec" "^1.4.10" 113 | "@jridgewell/trace-mapping" "^0.3.9" 114 | 115 | "@jridgewell/resolve-uri@^3.0.3": 116 | version "3.1.0" 117 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 118 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 119 | 120 | "@jridgewell/set-array@^1.0.1": 121 | version "1.1.2" 122 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 123 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 124 | 125 | "@jridgewell/sourcemap-codec@^1.4.10": 126 | version "1.4.14" 127 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 128 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 129 | 130 | "@jridgewell/trace-mapping@^0.3.9": 131 | version "0.3.15" 132 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" 133 | integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== 134 | dependencies: 135 | "@jridgewell/resolve-uri" "^3.0.3" 136 | "@jridgewell/sourcemap-codec" "^1.4.10" 137 | 138 | acorn-jsx@^5.0.0: 139 | version "5.3.2" 140 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 141 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 142 | 143 | acorn@^6.0.7: 144 | version "6.4.2" 145 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" 146 | integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== 147 | 148 | ajv@^6.10.2, ajv@^6.9.1: 149 | version "6.12.6" 150 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 151 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 152 | dependencies: 153 | fast-deep-equal "^3.1.1" 154 | fast-json-stable-stringify "^2.0.0" 155 | json-schema-traverse "^0.4.1" 156 | uri-js "^4.2.2" 157 | 158 | ansi-escapes@^3.2.0: 159 | version "3.2.0" 160 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 161 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 162 | 163 | ansi-regex@^3.0.0: 164 | version "3.0.1" 165 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" 166 | integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== 167 | 168 | ansi-regex@^4.1.0: 169 | version "4.1.1" 170 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" 171 | integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== 172 | 173 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 174 | version "3.2.1" 175 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 176 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 177 | dependencies: 178 | color-convert "^1.9.0" 179 | 180 | argparse@^1.0.7: 181 | version "1.0.10" 182 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 183 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 184 | dependencies: 185 | sprintf-js "~1.0.2" 186 | 187 | astral-regex@^1.0.0: 188 | version "1.0.0" 189 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 190 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 191 | 192 | babel-eslint@^10.0.1: 193 | version "10.1.0" 194 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" 195 | integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== 196 | dependencies: 197 | "@babel/code-frame" "^7.0.0" 198 | "@babel/parser" "^7.7.0" 199 | "@babel/traverse" "^7.7.0" 200 | "@babel/types" "^7.7.0" 201 | eslint-visitor-keys "^1.0.0" 202 | resolve "^1.12.0" 203 | 204 | balanced-match@^1.0.0: 205 | version "1.0.2" 206 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 207 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 208 | 209 | brace-expansion@^1.1.7: 210 | version "1.1.11" 211 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 212 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 213 | dependencies: 214 | balanced-match "^1.0.0" 215 | concat-map "0.0.1" 216 | 217 | callsites@^3.0.0: 218 | version "3.1.0" 219 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 220 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 221 | 222 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: 223 | version "2.4.2" 224 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 225 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 226 | dependencies: 227 | ansi-styles "^3.2.1" 228 | escape-string-regexp "^1.0.5" 229 | supports-color "^5.3.0" 230 | 231 | chardet@^0.7.0: 232 | version "0.7.0" 233 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 234 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 235 | 236 | cli-cursor@^2.1.0: 237 | version "2.1.0" 238 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 239 | integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== 240 | dependencies: 241 | restore-cursor "^2.0.0" 242 | 243 | cli-width@^2.0.0: 244 | version "2.2.1" 245 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" 246 | integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== 247 | 248 | color-convert@^1.9.0: 249 | version "1.9.3" 250 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 251 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 252 | dependencies: 253 | color-name "1.1.3" 254 | 255 | color-name@1.1.3: 256 | version "1.1.3" 257 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 258 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 259 | 260 | concat-map@0.0.1: 261 | version "0.0.1" 262 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 263 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 264 | 265 | cross-spawn@^6.0.5: 266 | version "6.0.5" 267 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 268 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 269 | dependencies: 270 | nice-try "^1.0.4" 271 | path-key "^2.0.1" 272 | semver "^5.5.0" 273 | shebang-command "^1.2.0" 274 | which "^1.2.9" 275 | 276 | debug@^4.0.1, debug@^4.1.0: 277 | version "4.3.4" 278 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 279 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 280 | dependencies: 281 | ms "2.1.2" 282 | 283 | deep-is@~0.1.3: 284 | version "0.1.4" 285 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 286 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 287 | 288 | doctrine@^3.0.0: 289 | version "3.0.0" 290 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 291 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 292 | dependencies: 293 | esutils "^2.0.2" 294 | 295 | emoji-regex@^7.0.1: 296 | version "7.0.3" 297 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 298 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 299 | 300 | escape-string-regexp@^1.0.5: 301 | version "1.0.5" 302 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 303 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 304 | 305 | eslint-config-prettier@^5.0.0: 306 | version "5.1.0" 307 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-5.1.0.tgz#bf29442e7c818236a77acfe2241ec991299f9bf1" 308 | integrity sha512-+tpiaLm3wl6fPW5nq0dDyVowQM0FT61lAdWZ+sDWgk6kKzgbOnCDwlcbwI38cyCBhq+Z3ret5Iofp6/gZpO0zw== 309 | dependencies: 310 | get-stdin "^6.0.0" 311 | 312 | eslint-plugin-prettier@^3.1.0: 313 | version "3.4.1" 314 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" 315 | integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== 316 | dependencies: 317 | prettier-linter-helpers "^1.0.0" 318 | 319 | eslint-scope@^4.0.3: 320 | version "4.0.3" 321 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" 322 | integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== 323 | dependencies: 324 | esrecurse "^4.1.0" 325 | estraverse "^4.1.1" 326 | 327 | eslint-utils@^1.3.1: 328 | version "1.4.3" 329 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" 330 | integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== 331 | dependencies: 332 | eslint-visitor-keys "^1.1.0" 333 | 334 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: 335 | version "1.3.0" 336 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 337 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 338 | 339 | eslint@^5.16.0: 340 | version "5.16.0" 341 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" 342 | integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== 343 | dependencies: 344 | "@babel/code-frame" "^7.0.0" 345 | ajv "^6.9.1" 346 | chalk "^2.1.0" 347 | cross-spawn "^6.0.5" 348 | debug "^4.0.1" 349 | doctrine "^3.0.0" 350 | eslint-scope "^4.0.3" 351 | eslint-utils "^1.3.1" 352 | eslint-visitor-keys "^1.0.0" 353 | espree "^5.0.1" 354 | esquery "^1.0.1" 355 | esutils "^2.0.2" 356 | file-entry-cache "^5.0.1" 357 | functional-red-black-tree "^1.0.1" 358 | glob "^7.1.2" 359 | globals "^11.7.0" 360 | ignore "^4.0.6" 361 | import-fresh "^3.0.0" 362 | imurmurhash "^0.1.4" 363 | inquirer "^6.2.2" 364 | js-yaml "^3.13.0" 365 | json-stable-stringify-without-jsonify "^1.0.1" 366 | levn "^0.3.0" 367 | lodash "^4.17.11" 368 | minimatch "^3.0.4" 369 | mkdirp "^0.5.1" 370 | natural-compare "^1.4.0" 371 | optionator "^0.8.2" 372 | path-is-inside "^1.0.2" 373 | progress "^2.0.0" 374 | regexpp "^2.0.1" 375 | semver "^5.5.1" 376 | strip-ansi "^4.0.0" 377 | strip-json-comments "^2.0.1" 378 | table "^5.2.3" 379 | text-table "^0.2.0" 380 | 381 | espree@^5.0.1: 382 | version "5.0.1" 383 | resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" 384 | integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== 385 | dependencies: 386 | acorn "^6.0.7" 387 | acorn-jsx "^5.0.0" 388 | eslint-visitor-keys "^1.0.0" 389 | 390 | esprima@^4.0.0: 391 | version "4.0.1" 392 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 393 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 394 | 395 | esquery@^1.0.1: 396 | version "1.4.0" 397 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 398 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 399 | dependencies: 400 | estraverse "^5.1.0" 401 | 402 | esrecurse@^4.1.0: 403 | version "4.3.0" 404 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 405 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 406 | dependencies: 407 | estraverse "^5.2.0" 408 | 409 | estraverse@^4.1.1: 410 | version "4.3.0" 411 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 412 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 413 | 414 | estraverse@^5.1.0, estraverse@^5.2.0: 415 | version "5.3.0" 416 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 417 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 418 | 419 | esutils@^2.0.2: 420 | version "2.0.3" 421 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 422 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 423 | 424 | external-editor@^3.0.3: 425 | version "3.1.0" 426 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 427 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 428 | dependencies: 429 | chardet "^0.7.0" 430 | iconv-lite "^0.4.24" 431 | tmp "^0.0.33" 432 | 433 | fast-deep-equal@^3.1.1: 434 | version "3.1.3" 435 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 436 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 437 | 438 | fast-diff@^1.1.2: 439 | version "1.2.0" 440 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 441 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 442 | 443 | fast-json-stable-stringify@^2.0.0: 444 | version "2.1.0" 445 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 446 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 447 | 448 | fast-levenshtein@~2.0.6: 449 | version "2.0.6" 450 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 451 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 452 | 453 | figures@^2.0.0: 454 | version "2.0.0" 455 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 456 | integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== 457 | dependencies: 458 | escape-string-regexp "^1.0.5" 459 | 460 | file-entry-cache@^5.0.1: 461 | version "5.0.1" 462 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 463 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 464 | dependencies: 465 | flat-cache "^2.0.1" 466 | 467 | flat-cache@^2.0.1: 468 | version "2.0.1" 469 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 470 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 471 | dependencies: 472 | flatted "^2.0.0" 473 | rimraf "2.6.3" 474 | write "1.0.3" 475 | 476 | flatted@^2.0.0: 477 | version "2.0.2" 478 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 479 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== 480 | 481 | fs.realpath@^1.0.0: 482 | version "1.0.0" 483 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 484 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 485 | 486 | function-bind@^1.1.1: 487 | version "1.1.1" 488 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 489 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 490 | 491 | functional-red-black-tree@^1.0.1: 492 | version "1.0.1" 493 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 494 | integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== 495 | 496 | get-stdin@^6.0.0: 497 | version "6.0.0" 498 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" 499 | integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== 500 | 501 | glob@^7.1.2, glob@^7.1.3: 502 | version "7.2.3" 503 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 504 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 505 | dependencies: 506 | fs.realpath "^1.0.0" 507 | inflight "^1.0.4" 508 | inherits "2" 509 | minimatch "^3.1.1" 510 | once "^1.3.0" 511 | path-is-absolute "^1.0.0" 512 | 513 | globals@^11.1.0, globals@^11.7.0: 514 | version "11.12.0" 515 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 516 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 517 | 518 | has-flag@^3.0.0: 519 | version "3.0.0" 520 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 521 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 522 | 523 | has@^1.0.3: 524 | version "1.0.3" 525 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 526 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 527 | dependencies: 528 | function-bind "^1.1.1" 529 | 530 | iconv-lite@^0.4.24: 531 | version "0.4.24" 532 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 533 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 534 | dependencies: 535 | safer-buffer ">= 2.1.2 < 3" 536 | 537 | ignore@^4.0.6: 538 | version "4.0.6" 539 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 540 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 541 | 542 | import-fresh@^3.0.0: 543 | version "3.3.0" 544 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 545 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 546 | dependencies: 547 | parent-module "^1.0.0" 548 | resolve-from "^4.0.0" 549 | 550 | imurmurhash@^0.1.4: 551 | version "0.1.4" 552 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 553 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 554 | 555 | inflight@^1.0.4: 556 | version "1.0.6" 557 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 558 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 559 | dependencies: 560 | once "^1.3.0" 561 | wrappy "1" 562 | 563 | inherits@2: 564 | version "2.0.4" 565 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 566 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 567 | 568 | inquirer@^6.2.2: 569 | version "6.5.2" 570 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" 571 | integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== 572 | dependencies: 573 | ansi-escapes "^3.2.0" 574 | chalk "^2.4.2" 575 | cli-cursor "^2.1.0" 576 | cli-width "^2.0.0" 577 | external-editor "^3.0.3" 578 | figures "^2.0.0" 579 | lodash "^4.17.12" 580 | mute-stream "0.0.7" 581 | run-async "^2.2.0" 582 | rxjs "^6.4.0" 583 | string-width "^2.1.0" 584 | strip-ansi "^5.1.0" 585 | through "^2.3.6" 586 | 587 | is-core-module@^2.9.0: 588 | version "2.10.0" 589 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" 590 | integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== 591 | dependencies: 592 | has "^1.0.3" 593 | 594 | is-fullwidth-code-point@^2.0.0: 595 | version "2.0.0" 596 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 597 | integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== 598 | 599 | isexe@^2.0.0: 600 | version "2.0.0" 601 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 602 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 603 | 604 | js-tokens@^4.0.0: 605 | version "4.0.0" 606 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 607 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 608 | 609 | js-yaml@^3.13.0: 610 | version "3.14.1" 611 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 612 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 613 | dependencies: 614 | argparse "^1.0.7" 615 | esprima "^4.0.0" 616 | 617 | jsesc@^2.5.1: 618 | version "2.5.2" 619 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 620 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 621 | 622 | json-schema-traverse@^0.4.1: 623 | version "0.4.1" 624 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 625 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 626 | 627 | json-stable-stringify-without-jsonify@^1.0.1: 628 | version "1.0.1" 629 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 630 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 631 | 632 | levn@^0.3.0, levn@~0.3.0: 633 | version "0.3.0" 634 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 635 | integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== 636 | dependencies: 637 | prelude-ls "~1.1.2" 638 | type-check "~0.3.2" 639 | 640 | lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14: 641 | version "4.17.21" 642 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 643 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 644 | 645 | luaparse@^0.2.1: 646 | version "0.2.1" 647 | resolved "https://registry.yarnpkg.com/luaparse/-/luaparse-0.2.1.tgz#aa8f56132b0de97d37f3c991a9df42e0e17f656c" 648 | integrity sha512-VKBcryd5nJte4ZNR29NOk8F/UkMipjeb4yoxcSS51z6QAzg9DXUC2WsfLniS0J1eh3pr/ZL3e9ha6V8fhoLbBQ== 649 | 650 | mimic-fn@^1.0.0: 651 | version "1.2.0" 652 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 653 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== 654 | 655 | minimatch@^3.0.4, minimatch@^3.1.1: 656 | version "3.1.2" 657 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 658 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 659 | dependencies: 660 | brace-expansion "^1.1.7" 661 | 662 | minimist@^1.2.6: 663 | version "1.2.6" 664 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" 665 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== 666 | 667 | mkdirp@^0.5.1: 668 | version "0.5.6" 669 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" 670 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== 671 | dependencies: 672 | minimist "^1.2.6" 673 | 674 | ms@2.1.2: 675 | version "2.1.2" 676 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 677 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 678 | 679 | mute-stream@0.0.7: 680 | version "0.0.7" 681 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 682 | integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== 683 | 684 | natural-compare@^1.4.0: 685 | version "1.4.0" 686 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 687 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 688 | 689 | nice-try@^1.0.4: 690 | version "1.0.5" 691 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 692 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 693 | 694 | once@^1.3.0: 695 | version "1.4.0" 696 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 697 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 698 | dependencies: 699 | wrappy "1" 700 | 701 | onetime@^2.0.0: 702 | version "2.0.1" 703 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 704 | integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== 705 | dependencies: 706 | mimic-fn "^1.0.0" 707 | 708 | optionator@^0.8.2: 709 | version "0.8.3" 710 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 711 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 712 | dependencies: 713 | deep-is "~0.1.3" 714 | fast-levenshtein "~2.0.6" 715 | levn "~0.3.0" 716 | prelude-ls "~1.1.2" 717 | type-check "~0.3.2" 718 | word-wrap "~1.2.3" 719 | 720 | os-tmpdir@~1.0.2: 721 | version "1.0.2" 722 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 723 | integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== 724 | 725 | parent-module@^1.0.0: 726 | version "1.0.1" 727 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 728 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 729 | dependencies: 730 | callsites "^3.0.0" 731 | 732 | path-is-absolute@^1.0.0: 733 | version "1.0.1" 734 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 735 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 736 | 737 | path-is-inside@^1.0.2: 738 | version "1.0.2" 739 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 740 | integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== 741 | 742 | path-key@^2.0.1: 743 | version "2.0.1" 744 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 745 | integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== 746 | 747 | path-parse@^1.0.7: 748 | version "1.0.7" 749 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 750 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 751 | 752 | prelude-ls@~1.1.2: 753 | version "1.1.2" 754 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 755 | integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== 756 | 757 | prettier-linter-helpers@^1.0.0: 758 | version "1.0.0" 759 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" 760 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== 761 | dependencies: 762 | fast-diff "^1.1.2" 763 | 764 | prettier@^1.18.2: 765 | version "1.19.1" 766 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" 767 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== 768 | 769 | progress@^2.0.0: 770 | version "2.0.3" 771 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 772 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 773 | 774 | punycode@^2.1.0: 775 | version "2.1.1" 776 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 777 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 778 | 779 | regexpp@^2.0.1: 780 | version "2.0.1" 781 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 782 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== 783 | 784 | resolve-from@^4.0.0: 785 | version "4.0.0" 786 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 787 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 788 | 789 | resolve@^1.12.0: 790 | version "1.22.1" 791 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 792 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 793 | dependencies: 794 | is-core-module "^2.9.0" 795 | path-parse "^1.0.7" 796 | supports-preserve-symlinks-flag "^1.0.0" 797 | 798 | restore-cursor@^2.0.0: 799 | version "2.0.0" 800 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 801 | integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== 802 | dependencies: 803 | onetime "^2.0.0" 804 | signal-exit "^3.0.2" 805 | 806 | rimraf@2.6.3: 807 | version "2.6.3" 808 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 809 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 810 | dependencies: 811 | glob "^7.1.3" 812 | 813 | run-async@^2.2.0: 814 | version "2.4.1" 815 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" 816 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 817 | 818 | rxjs@^6.4.0: 819 | version "6.6.7" 820 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" 821 | integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== 822 | dependencies: 823 | tslib "^1.9.0" 824 | 825 | "safer-buffer@>= 2.1.2 < 3": 826 | version "2.1.2" 827 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 828 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 829 | 830 | semver@^5.5.0, semver@^5.5.1: 831 | version "5.7.1" 832 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 833 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 834 | 835 | shebang-command@^1.2.0: 836 | version "1.2.0" 837 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 838 | integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== 839 | dependencies: 840 | shebang-regex "^1.0.0" 841 | 842 | shebang-regex@^1.0.0: 843 | version "1.0.0" 844 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 845 | integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== 846 | 847 | signal-exit@^3.0.2: 848 | version "3.0.7" 849 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" 850 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 851 | 852 | slice-ansi@^2.1.0: 853 | version "2.1.0" 854 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 855 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 856 | dependencies: 857 | ansi-styles "^3.2.0" 858 | astral-regex "^1.0.0" 859 | is-fullwidth-code-point "^2.0.0" 860 | 861 | sprintf-js@~1.0.2: 862 | version "1.0.3" 863 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 864 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== 865 | 866 | string-width@^2.1.0: 867 | version "2.1.1" 868 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 869 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 870 | dependencies: 871 | is-fullwidth-code-point "^2.0.0" 872 | strip-ansi "^4.0.0" 873 | 874 | string-width@^3.0.0: 875 | version "3.1.0" 876 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 877 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 878 | dependencies: 879 | emoji-regex "^7.0.1" 880 | is-fullwidth-code-point "^2.0.0" 881 | strip-ansi "^5.1.0" 882 | 883 | strip-ansi@^4.0.0: 884 | version "4.0.0" 885 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 886 | integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== 887 | dependencies: 888 | ansi-regex "^3.0.0" 889 | 890 | strip-ansi@^5.1.0: 891 | version "5.2.0" 892 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 893 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 894 | dependencies: 895 | ansi-regex "^4.1.0" 896 | 897 | strip-json-comments@^2.0.1: 898 | version "2.0.1" 899 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 900 | integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== 901 | 902 | supports-color@^5.3.0: 903 | version "5.5.0" 904 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 905 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 906 | dependencies: 907 | has-flag "^3.0.0" 908 | 909 | supports-preserve-symlinks-flag@^1.0.0: 910 | version "1.0.0" 911 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 912 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 913 | 914 | table@^5.2.3: 915 | version "5.4.6" 916 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 917 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 918 | dependencies: 919 | ajv "^6.10.2" 920 | lodash "^4.17.14" 921 | slice-ansi "^2.1.0" 922 | string-width "^3.0.0" 923 | 924 | text-table@^0.2.0: 925 | version "0.2.0" 926 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 927 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 928 | 929 | through@^2.3.6: 930 | version "2.3.8" 931 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 932 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 933 | 934 | tmp@^0.0.33: 935 | version "0.0.33" 936 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 937 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 938 | dependencies: 939 | os-tmpdir "~1.0.2" 940 | 941 | to-fast-properties@^2.0.0: 942 | version "2.0.0" 943 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 944 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 945 | 946 | tslib@^1.9.0: 947 | version "1.14.1" 948 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 949 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 950 | 951 | type-check@~0.3.2: 952 | version "0.3.2" 953 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 954 | integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== 955 | dependencies: 956 | prelude-ls "~1.1.2" 957 | 958 | uri-js@^4.2.2: 959 | version "4.4.1" 960 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 961 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 962 | dependencies: 963 | punycode "^2.1.0" 964 | 965 | which@^1.2.9: 966 | version "1.3.1" 967 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 968 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 969 | dependencies: 970 | isexe "^2.0.0" 971 | 972 | word-wrap@~1.2.3: 973 | version "1.2.3" 974 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 975 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 976 | 977 | wrappy@1: 978 | version "1.0.2" 979 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 980 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 981 | 982 | write@1.0.3: 983 | version "1.0.3" 984 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 985 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 986 | dependencies: 987 | mkdirp "^0.5.1" 988 | --------------------------------------------------------------------------------