├── .gitignore ├── README.md ├── bin └── vue-i18n-service.js ├── creatingExample.gif ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # parcel-bundler cache (https://parceljs.org/) 61 | .cache 62 | 63 | # next.js build output 64 | .next 65 | 66 | # nuxt.js build output 67 | .nuxt 68 | 69 | # vuepress build output 70 | .vuepress/dist 71 | 72 | # Serverless directories 73 | .serverless -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-i18n-service 2 | 3 | The translation team (not developers) wants **a** file with all the keys to translate. But I love to use translations in **Single File Components**. 4 | 5 | And I found a solution to make everyone happy: `vue-i18n-service export|import` 6 | 7 | Vue I18n Service makes to manage SFC translations easier in a file. It collects all the `` definitions in Single File Components and collects them into a file. 8 | 9 | ## What's the flow: 10 | `Hello.vue` 11 | ```vue 12 | 15 | 16 | 17 | { 18 | "en": { 19 | "hello": "Hi 🙁" 20 | }, 21 | "tr": { 22 | "hello": "Selam" 23 | } 24 | } 25 | 26 | ``` 27 | 28 | ⬇️`npx vue-i18n-service export > translations.json` 29 | ```json 30 | { 31 | "src/components/Hello.vue": { 32 | "en": { 33 | "hello": "Hi 🙁" 34 | }, 35 | "tr": { 36 | "hello": "Selam" 37 | } 38 | } 39 | } 40 | ``` 41 | 42 | ✏️`translations.edited.json` 43 | 44 | ```json 45 | { 46 | "src/components/Hello.vue": { 47 | "en": { 48 | "hello": "Hello 🙂" 49 | }, 50 | "tr": { 51 | "hello": "Merhaba" 52 | } 53 | } 54 | } 55 | ``` 56 | 57 | ### Editing `translations.json` using Web UI 58 | 59 | Open [https://edisdev.github.io/vue-i18n-translator/](https://edisdev.github.io/vue-i18n-translator/) and drop `translations.json` file which you've just generated. It will parse it and generate an useful interface to translate. 60 | 61 | ![vue-i18n-translator](https://pbs.twimg.com/media/DnDZ5yYX0AAzJyN.png) 62 | 63 | ⬇️`npx vue-i18n-service import < translations.edited.json` 64 | ``` 65 | updating file src/components/Hello.vue 66 | ``` 67 | ```vue 68 | 71 | 72 | 73 | { 74 | "en": { 75 | "hello": "Hello 🙂" 76 | }, 77 | "tr": { 78 | "hello": "Merhaba" 79 | } 80 | } 81 | 82 | ``` 83 | 84 | And all is OK. Doesn't matter how many files you have, it simply distributes without any problem and any conflict. 85 | 86 | ## Exporting i18n's in SFCs 87 | 88 | This will generate a `translations.json` file (or whatever you named). 89 | 90 | ```bash 91 | npx vue-i18n-service export > translations.json 92 | ``` 93 | 94 | It has a simple format: 95 | 96 | ```json 97 | { 98 | "": { 99 | "": { 100 | "": "" 101 | } 102 | } 103 | } 104 | ``` 105 | 106 | Here is an example: 107 | 108 | ```json 109 | { 110 | "src/components/Hello.vue": { 111 | "en": { 112 | "hello": "Hello" 113 | }, 114 | "tr": { 115 | "hello": "Merhaba" 116 | } 117 | }, 118 | "src/views/World.vue": { 119 | "en": { 120 | "world": "World" 121 | }, 122 | "tr": { 123 | "world": "Dünya" 124 | } 125 | } 126 | } 127 | ``` 128 | 129 | ### --dir 130 | 131 | By default, `vue-i18n-service` looks for SFCs in the `src/` directory, if your components are in another directory, specify it by passing the `--dir` flag: 132 | 133 | ```bash 134 | npx vue-i18n-service export --dir=client/ > translations.json 135 | ``` 136 | 137 | ## Importing `translations.json` file to the SFCs 138 | 139 | After bulk changing files, you can distribute import all the files calling `import` command. 140 | 141 | ```bash 142 | npx vue-i18n-service import < translations.json 143 | ``` 144 | 145 | This will update `.vue` files and replace them with changes. 146 | 147 | ## Creating new locale from other locale 148 | You can creating a new locale by copying another locale `create` command 149 | 150 | ```bash 151 | npx vue-i18n-service create 'newlocale' 'extendedLocale' 152 | ``` 153 | 154 | 155 | 156 | 157 | ## Contributors 158 | 159 | 160 | 161 | 169 | 178 | 186 | 187 |
162 | 163 | Fatih Kadir Akın 165 | 166 |
167 | Fatih Kadir Akın 168 |
170 | 171 | Hatice Edis 174 | 175 |
176 | Hatice Edis 177 |
179 | 180 | Paul Gascou-Vaillancourt 182 | 183 |
184 | Paul Gascou-Vaillancourt 185 |
188 | 189 | ## License 190 | 191 | MIT. 192 | -------------------------------------------------------------------------------- /bin/vue-i18n-service.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const glob = require('glob') 3 | const fs = require('fs') 4 | const myjson = require('myjson-api') 5 | const compiler = require('vue-template-compiler') 6 | const argv = require('yargs').argv 7 | 8 | function replaceBetween (str, start, end, what) { 9 | return str.substring(0, start) + what + str.substring(end) 10 | } 11 | 12 | function readData (imported) { 13 | const data = JSON.parse(imported) 14 | Object.keys(data).forEach(file => { 15 | const sfcContent = fs.readFileSync(file).toString() 16 | const componentAst = compiler.parseComponent(sfcContent) 17 | componentAst.customBlocks.forEach(i18n => { 18 | console.log(`updating file ${file}`) 19 | fs.writeFileSync( 20 | file, 21 | replaceBetween(sfcContent, i18n.start, i18n.end, `\n${JSON.stringify(data[file], null, 2)}\n`) 22 | ) 23 | }) 24 | }) 25 | } 26 | 27 | function createLocale (newLocale, extendedLocale) { 28 | glob('src/**/*.vue', (_, files) => { 29 | const out = {} 30 | files.forEach(file => { 31 | const componentAst = compiler.parseComponent(fs.readFileSync(file).toString()) 32 | componentAst.customBlocks 33 | .filter(block => block.type === 'i18n') 34 | .forEach(block => { 35 | let content = JSON.parse(block.content) 36 | content[newLocale] = content[extendedLocale] 37 | out[file] = content 38 | }) 39 | }) 40 | readData(JSON.stringify(out)) 41 | console.log(`Creating ${newLocale} language keys from ${extendedLocale}`) 42 | }) 43 | } 44 | 45 | function runCreate() { 46 | process.stdin.setEncoding('utf8') 47 | 48 | let argv = process.argv 49 | switch (argv.length) { 50 | case 3: 51 | console.log('Please enter the new locale code') 52 | break 53 | case 4: 54 | console.log('Please enter the extended locale code') 55 | break 56 | default: 57 | let newLocale = argv[3] 58 | let extendedLocale = argv[4] 59 | createLocale(newLocale, extendedLocale) 60 | } 61 | } 62 | 63 | function runImport () { 64 | process.stdin.setEncoding('utf8') 65 | 66 | let importData = '' 67 | process.stdin.on('readable', () => { 68 | const chunk = process.stdin.read() 69 | if (chunk !== null) { 70 | importData += chunk 71 | } 72 | }) 73 | 74 | process.stdin.on('end', () => { 75 | readData(importData) 76 | }) 77 | } 78 | 79 | function runExport (fn) { 80 | const dir = argv.dir || 'src/' 81 | glob(`${dir}**/*.vue`, (_, files) => { 82 | const out = {} 83 | files.forEach(file => { 84 | const componentAst = compiler.parseComponent(fs.readFileSync(file).toString()) 85 | componentAst.customBlocks 86 | .filter(block => block.type === 'i18n') 87 | .forEach(block => { 88 | out[file] = JSON.parse(block.content) 89 | }) 90 | }) 91 | fn ? fn(out) : console.log(JSON.stringify(out, null, 2)) 92 | }) 93 | } 94 | 95 | switch (process.argv[2]) { 96 | case 'import': 97 | runImport() 98 | break 99 | case 'export': 100 | runExport() 101 | break 102 | case 'create': 103 | runCreate() 104 | break 105 | case 'translate': 106 | runExport((out) => { 107 | myjson.create(out) 108 | .then((response) => { 109 | console.log(`Open the following URL to start translation:`) 110 | console.log('') 111 | console.log(` https://f.github.io/vue-i18n-translator/#${response.id}`) 112 | }) 113 | }) 114 | break 115 | default: 116 | console.log('vue-i18n-services v' + require('../package.json').version) 117 | console.log('commands:') 118 | console.log(' vue-i18n-services export > translations.json') 119 | console.log(' Collects all the tags in SCF .vue files and exports them in a file\n') 120 | console.log(' Flags:') 121 | console.log(' --dir=src/ Specify the directory where SFCs are located, defaults to src/\n') 122 | console.log(' vue-i18n-services import < translations.json') 123 | console.log(' Distributes all the changes on translations.json file to the related components\n') 124 | console.log(' vue-i18n-services translate') 125 | console.log(' Opens translation page to translate your UI.\n') 126 | } 127 | -------------------------------------------------------------------------------- /creatingExample.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/edisdev/vue-i18n-service/671c243429d2397899302c642889675a57744e04/creatingExample.gif -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-i18n-service", 3 | "version": "0.1.0", 4 | "description": "Collects SFC i18n's and makes them translatable with one file", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "bin": { 10 | "vue-i18n-service": "bin/vue-i18n-service.js" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/edisdev/vue-i18n-service.git" 15 | }, 16 | "keywords": [ 17 | "vue", 18 | "i18n", 19 | "export", 20 | "import" 21 | ], 22 | "author": "Fatih Kadir Akin ", 23 | "contributors": [ 24 | "Fatih Kadir Akin ", 25 | "Hatice Edis ", 26 | "Paul Gascou-Vaillancourt " 27 | ], 28 | "license": "MIT", 29 | "bugs": { 30 | "url": "https://github.com/edisdev/vue-i18n-service/issues" 31 | }, 32 | "homepage": "https://github.com/edisdev/vue-i18n-service#readme", 33 | "dependencies": { 34 | "glob": "^7.1.3", 35 | "myjson-api": "^1.0.1", 36 | "vue-template-compiler": "^2.5.17", 37 | "yargs": "^12.0.2" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | ajv@^5.3.0: 6 | version "5.5.2" 7 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 8 | integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= 9 | dependencies: 10 | co "^4.6.0" 11 | fast-deep-equal "^1.0.0" 12 | fast-json-stable-stringify "^2.0.0" 13 | json-schema-traverse "^0.3.0" 14 | 15 | ansi-regex@^2.0.0: 16 | version "2.1.1" 17 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 18 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 19 | 20 | ansi-regex@^3.0.0: 21 | version "3.0.0" 22 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 23 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 24 | 25 | asn1@~0.2.3: 26 | version "0.2.4" 27 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" 28 | integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== 29 | dependencies: 30 | safer-buffer "~2.1.0" 31 | 32 | assert-plus@1.0.0, assert-plus@^1.0.0: 33 | version "1.0.0" 34 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 35 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 36 | 37 | asynckit@^0.4.0: 38 | version "0.4.0" 39 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 40 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 41 | 42 | aws-sign2@~0.7.0: 43 | version "0.7.0" 44 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 45 | integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= 46 | 47 | aws4@^1.8.0: 48 | version "1.8.0" 49 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" 50 | integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== 51 | 52 | balanced-match@^1.0.0: 53 | version "1.0.0" 54 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 55 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 56 | 57 | bcrypt-pbkdf@^1.0.0: 58 | version "1.0.2" 59 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" 60 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= 61 | dependencies: 62 | tweetnacl "^0.14.3" 63 | 64 | brace-expansion@^1.1.7: 65 | version "1.1.11" 66 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 67 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 68 | dependencies: 69 | balanced-match "^1.0.0" 70 | concat-map "0.0.1" 71 | 72 | camelcase@^4.1.0: 73 | version "4.1.0" 74 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 75 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= 76 | 77 | caseless@~0.12.0: 78 | version "0.12.0" 79 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 80 | integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= 81 | 82 | cliui@^4.0.0: 83 | version "4.1.0" 84 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 85 | integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== 86 | dependencies: 87 | string-width "^2.1.1" 88 | strip-ansi "^4.0.0" 89 | wrap-ansi "^2.0.0" 90 | 91 | co@^4.6.0: 92 | version "4.6.0" 93 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 94 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 95 | 96 | code-point-at@^1.0.0: 97 | version "1.1.0" 98 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 99 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 100 | 101 | combined-stream@1.0.6, combined-stream@~1.0.6: 102 | version "1.0.6" 103 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 104 | integrity sha1-cj599ugBrFYTETp+RFqbactjKBg= 105 | dependencies: 106 | delayed-stream "~1.0.0" 107 | 108 | concat-map@0.0.1: 109 | version "0.0.1" 110 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 111 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 112 | 113 | core-util-is@1.0.2: 114 | version "1.0.2" 115 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 116 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 117 | 118 | cross-spawn@^6.0.0: 119 | version "6.0.5" 120 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 121 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 122 | dependencies: 123 | nice-try "^1.0.4" 124 | path-key "^2.0.1" 125 | semver "^5.5.0" 126 | shebang-command "^1.2.0" 127 | which "^1.2.9" 128 | 129 | dashdash@^1.12.0: 130 | version "1.14.1" 131 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 132 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 133 | dependencies: 134 | assert-plus "^1.0.0" 135 | 136 | de-indent@^1.0.2: 137 | version "1.0.2" 138 | resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" 139 | integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= 140 | 141 | decamelize@^2.0.0: 142 | version "2.0.0" 143 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" 144 | integrity sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg== 145 | dependencies: 146 | xregexp "4.0.0" 147 | 148 | delayed-stream@~1.0.0: 149 | version "1.0.0" 150 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 151 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 152 | 153 | ecc-jsbn@~0.1.1: 154 | version "0.1.2" 155 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" 156 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= 157 | dependencies: 158 | jsbn "~0.1.0" 159 | safer-buffer "^2.1.0" 160 | 161 | execa@^0.10.0: 162 | version "0.10.0" 163 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" 164 | integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== 165 | dependencies: 166 | cross-spawn "^6.0.0" 167 | get-stream "^3.0.0" 168 | is-stream "^1.1.0" 169 | npm-run-path "^2.0.0" 170 | p-finally "^1.0.0" 171 | signal-exit "^3.0.0" 172 | strip-eof "^1.0.0" 173 | 174 | extend@~3.0.2: 175 | version "3.0.2" 176 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 177 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 178 | 179 | extsprintf@1.3.0: 180 | version "1.3.0" 181 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 182 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= 183 | 184 | extsprintf@^1.2.0: 185 | version "1.4.0" 186 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 187 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= 188 | 189 | fast-deep-equal@^1.0.0: 190 | version "1.1.0" 191 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 192 | integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= 193 | 194 | fast-json-stable-stringify@^2.0.0: 195 | version "2.0.0" 196 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 197 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= 198 | 199 | find-up@^3.0.0: 200 | version "3.0.0" 201 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 202 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 203 | dependencies: 204 | locate-path "^3.0.0" 205 | 206 | forever-agent@~0.6.1: 207 | version "0.6.1" 208 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 209 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= 210 | 211 | form-data@~2.3.2: 212 | version "2.3.2" 213 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 214 | integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk= 215 | dependencies: 216 | asynckit "^0.4.0" 217 | combined-stream "1.0.6" 218 | mime-types "^2.1.12" 219 | 220 | fs.realpath@^1.0.0: 221 | version "1.0.0" 222 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 223 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 224 | 225 | get-caller-file@^1.0.1: 226 | version "1.0.3" 227 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 228 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== 229 | 230 | get-stream@^3.0.0: 231 | version "3.0.0" 232 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 233 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 234 | 235 | getpass@^0.1.1: 236 | version "0.1.7" 237 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 238 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= 239 | dependencies: 240 | assert-plus "^1.0.0" 241 | 242 | glob@^7.1.3: 243 | version "7.1.3" 244 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 245 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 246 | dependencies: 247 | fs.realpath "^1.0.0" 248 | inflight "^1.0.4" 249 | inherits "2" 250 | minimatch "^3.0.4" 251 | once "^1.3.0" 252 | path-is-absolute "^1.0.0" 253 | 254 | har-schema@^2.0.0: 255 | version "2.0.0" 256 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 257 | integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= 258 | 259 | har-validator@~5.1.0: 260 | version "5.1.0" 261 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" 262 | integrity sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA== 263 | dependencies: 264 | ajv "^5.3.0" 265 | har-schema "^2.0.0" 266 | 267 | he@^1.1.0: 268 | version "1.1.1" 269 | resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" 270 | integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= 271 | 272 | http-signature@~1.2.0: 273 | version "1.2.0" 274 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 275 | integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= 276 | dependencies: 277 | assert-plus "^1.0.0" 278 | jsprim "^1.2.2" 279 | sshpk "^1.7.0" 280 | 281 | inflight@^1.0.4: 282 | version "1.0.6" 283 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 284 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 285 | dependencies: 286 | once "^1.3.0" 287 | wrappy "1" 288 | 289 | inherits@2: 290 | version "2.0.3" 291 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 292 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 293 | 294 | invert-kv@^2.0.0: 295 | version "2.0.0" 296 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" 297 | integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== 298 | 299 | is-fullwidth-code-point@^1.0.0: 300 | version "1.0.0" 301 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 302 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 303 | dependencies: 304 | number-is-nan "^1.0.0" 305 | 306 | is-fullwidth-code-point@^2.0.0: 307 | version "2.0.0" 308 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 309 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 310 | 311 | is-stream@^1.1.0: 312 | version "1.1.0" 313 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 314 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 315 | 316 | is-typedarray@~1.0.0: 317 | version "1.0.0" 318 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 319 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 320 | 321 | isexe@^2.0.0: 322 | version "2.0.0" 323 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 324 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 325 | 326 | isstream@~0.1.2: 327 | version "0.1.2" 328 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 329 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= 330 | 331 | jsbn@~0.1.0: 332 | version "0.1.1" 333 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 334 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 335 | 336 | json-schema-traverse@^0.3.0: 337 | version "0.3.1" 338 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 339 | integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= 340 | 341 | json-schema@0.2.3: 342 | version "0.2.3" 343 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 344 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 345 | 346 | json-stringify-safe@~5.0.1: 347 | version "5.0.1" 348 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 349 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 350 | 351 | jsprim@^1.2.2: 352 | version "1.4.1" 353 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 354 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= 355 | dependencies: 356 | assert-plus "1.0.0" 357 | extsprintf "1.3.0" 358 | json-schema "0.2.3" 359 | verror "1.10.0" 360 | 361 | lcid@^2.0.0: 362 | version "2.0.0" 363 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" 364 | integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== 365 | dependencies: 366 | invert-kv "^2.0.0" 367 | 368 | locate-path@^3.0.0: 369 | version "3.0.0" 370 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 371 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 372 | dependencies: 373 | p-locate "^3.0.0" 374 | path-exists "^3.0.0" 375 | 376 | map-age-cleaner@^0.1.1: 377 | version "0.1.2" 378 | resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74" 379 | integrity sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ== 380 | dependencies: 381 | p-defer "^1.0.0" 382 | 383 | mem@^4.0.0: 384 | version "4.0.0" 385 | resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" 386 | integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA== 387 | dependencies: 388 | map-age-cleaner "^0.1.1" 389 | mimic-fn "^1.0.0" 390 | p-is-promise "^1.1.0" 391 | 392 | mime-db@~1.36.0: 393 | version "1.36.0" 394 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" 395 | integrity sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw== 396 | 397 | mime-types@^2.1.12, mime-types@~2.1.19: 398 | version "2.1.20" 399 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" 400 | integrity sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A== 401 | dependencies: 402 | mime-db "~1.36.0" 403 | 404 | mimic-fn@^1.0.0: 405 | version "1.2.0" 406 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 407 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== 408 | 409 | minimatch@^3.0.4: 410 | version "3.0.4" 411 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 412 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 413 | dependencies: 414 | brace-expansion "^1.1.7" 415 | 416 | myjson-api@^1.0.1: 417 | version "1.0.1" 418 | resolved "https://registry.yarnpkg.com/myjson-api/-/myjson-api-1.0.1.tgz#2a0a08210d660b3d45b91f815c2dcce23dd14607" 419 | integrity sha1-KgoIIQ1mCz1FuR+BXC3M4j3RRgc= 420 | dependencies: 421 | request "^2.83.0" 422 | 423 | nice-try@^1.0.4: 424 | version "1.0.5" 425 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 426 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 427 | 428 | npm-run-path@^2.0.0: 429 | version "2.0.2" 430 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 431 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 432 | dependencies: 433 | path-key "^2.0.0" 434 | 435 | number-is-nan@^1.0.0: 436 | version "1.0.1" 437 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 438 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 439 | 440 | oauth-sign@~0.9.0: 441 | version "0.9.0" 442 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" 443 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== 444 | 445 | once@^1.3.0: 446 | version "1.4.0" 447 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 448 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 449 | dependencies: 450 | wrappy "1" 451 | 452 | os-locale@^3.0.0: 453 | version "3.0.1" 454 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" 455 | integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw== 456 | dependencies: 457 | execa "^0.10.0" 458 | lcid "^2.0.0" 459 | mem "^4.0.0" 460 | 461 | p-defer@^1.0.0: 462 | version "1.0.0" 463 | resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" 464 | integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= 465 | 466 | p-finally@^1.0.0: 467 | version "1.0.0" 468 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 469 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 470 | 471 | p-is-promise@^1.1.0: 472 | version "1.1.0" 473 | resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" 474 | integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= 475 | 476 | p-limit@^2.0.0: 477 | version "2.0.0" 478 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" 479 | integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A== 480 | dependencies: 481 | p-try "^2.0.0" 482 | 483 | p-locate@^3.0.0: 484 | version "3.0.0" 485 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 486 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 487 | dependencies: 488 | p-limit "^2.0.0" 489 | 490 | p-try@^2.0.0: 491 | version "2.0.0" 492 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" 493 | integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== 494 | 495 | path-exists@^3.0.0: 496 | version "3.0.0" 497 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 498 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 499 | 500 | path-is-absolute@^1.0.0: 501 | version "1.0.1" 502 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 503 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 504 | 505 | path-key@^2.0.0, path-key@^2.0.1: 506 | version "2.0.1" 507 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 508 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 509 | 510 | performance-now@^2.1.0: 511 | version "2.1.0" 512 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 513 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= 514 | 515 | psl@^1.1.24: 516 | version "1.1.29" 517 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" 518 | integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ== 519 | 520 | punycode@^1.4.1: 521 | version "1.4.1" 522 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 523 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 524 | 525 | qs@~6.5.2: 526 | version "6.5.2" 527 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 528 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 529 | 530 | request@^2.83.0: 531 | version "2.88.0" 532 | resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" 533 | integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== 534 | dependencies: 535 | aws-sign2 "~0.7.0" 536 | aws4 "^1.8.0" 537 | caseless "~0.12.0" 538 | combined-stream "~1.0.6" 539 | extend "~3.0.2" 540 | forever-agent "~0.6.1" 541 | form-data "~2.3.2" 542 | har-validator "~5.1.0" 543 | http-signature "~1.2.0" 544 | is-typedarray "~1.0.0" 545 | isstream "~0.1.2" 546 | json-stringify-safe "~5.0.1" 547 | mime-types "~2.1.19" 548 | oauth-sign "~0.9.0" 549 | performance-now "^2.1.0" 550 | qs "~6.5.2" 551 | safe-buffer "^5.1.2" 552 | tough-cookie "~2.4.3" 553 | tunnel-agent "^0.6.0" 554 | uuid "^3.3.2" 555 | 556 | require-directory@^2.1.1: 557 | version "2.1.1" 558 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 559 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 560 | 561 | require-main-filename@^1.0.1: 562 | version "1.0.1" 563 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 564 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= 565 | 566 | safe-buffer@^5.0.1, safe-buffer@^5.1.2: 567 | version "5.1.2" 568 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 569 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 570 | 571 | safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 572 | version "2.1.2" 573 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 574 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 575 | 576 | semver@^5.5.0: 577 | version "5.5.1" 578 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" 579 | integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw== 580 | 581 | set-blocking@^2.0.0: 582 | version "2.0.0" 583 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 584 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 585 | 586 | shebang-command@^1.2.0: 587 | version "1.2.0" 588 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 589 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 590 | dependencies: 591 | shebang-regex "^1.0.0" 592 | 593 | shebang-regex@^1.0.0: 594 | version "1.0.0" 595 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 596 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 597 | 598 | signal-exit@^3.0.0: 599 | version "3.0.2" 600 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 601 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 602 | 603 | sshpk@^1.7.0: 604 | version "1.14.2" 605 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" 606 | integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg= 607 | dependencies: 608 | asn1 "~0.2.3" 609 | assert-plus "^1.0.0" 610 | dashdash "^1.12.0" 611 | getpass "^0.1.1" 612 | safer-buffer "^2.0.2" 613 | optionalDependencies: 614 | bcrypt-pbkdf "^1.0.0" 615 | ecc-jsbn "~0.1.1" 616 | jsbn "~0.1.0" 617 | tweetnacl "~0.14.0" 618 | 619 | string-width@^1.0.1: 620 | version "1.0.2" 621 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 622 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 623 | dependencies: 624 | code-point-at "^1.0.0" 625 | is-fullwidth-code-point "^1.0.0" 626 | strip-ansi "^3.0.0" 627 | 628 | string-width@^2.0.0, string-width@^2.1.1: 629 | version "2.1.1" 630 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 631 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 632 | dependencies: 633 | is-fullwidth-code-point "^2.0.0" 634 | strip-ansi "^4.0.0" 635 | 636 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 637 | version "3.0.1" 638 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 639 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 640 | dependencies: 641 | ansi-regex "^2.0.0" 642 | 643 | strip-ansi@^4.0.0: 644 | version "4.0.0" 645 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 646 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 647 | dependencies: 648 | ansi-regex "^3.0.0" 649 | 650 | strip-eof@^1.0.0: 651 | version "1.0.0" 652 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 653 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 654 | 655 | tough-cookie@~2.4.3: 656 | version "2.4.3" 657 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" 658 | integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== 659 | dependencies: 660 | psl "^1.1.24" 661 | punycode "^1.4.1" 662 | 663 | tunnel-agent@^0.6.0: 664 | version "0.6.0" 665 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 666 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 667 | dependencies: 668 | safe-buffer "^5.0.1" 669 | 670 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 671 | version "0.14.5" 672 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 673 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 674 | 675 | uuid@^3.3.2: 676 | version "3.3.2" 677 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 678 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== 679 | 680 | verror@1.10.0: 681 | version "1.10.0" 682 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 683 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 684 | dependencies: 685 | assert-plus "^1.0.0" 686 | core-util-is "1.0.2" 687 | extsprintf "^1.2.0" 688 | 689 | vue-template-compiler@^2.5.17: 690 | version "2.5.17" 691 | resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.17.tgz#52a4a078c327deb937482a509ae85c06f346c3cb" 692 | integrity sha512-63uI4syCwtGR5IJvZM0LN5tVsahrelomHtCxvRkZPJ/Tf3ADm1U1wG6KWycK3qCfqR+ygM5vewUvmJ0REAYksg== 693 | dependencies: 694 | de-indent "^1.0.2" 695 | he "^1.1.0" 696 | 697 | which-module@^2.0.0: 698 | version "2.0.0" 699 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 700 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 701 | 702 | which@^1.2.9: 703 | version "1.3.1" 704 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 705 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 706 | dependencies: 707 | isexe "^2.0.0" 708 | 709 | wrap-ansi@^2.0.0: 710 | version "2.1.0" 711 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 712 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= 713 | dependencies: 714 | string-width "^1.0.1" 715 | strip-ansi "^3.0.1" 716 | 717 | wrappy@1: 718 | version "1.0.2" 719 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 720 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 721 | 722 | xregexp@4.0.0: 723 | version "4.0.0" 724 | resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" 725 | integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg== 726 | 727 | "y18n@^3.2.1 || ^4.0.0": 728 | version "4.0.0" 729 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 730 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== 731 | 732 | yargs-parser@^10.1.0: 733 | version "10.1.0" 734 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" 735 | integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== 736 | dependencies: 737 | camelcase "^4.1.0" 738 | 739 | yargs@^12.0.2: 740 | version "12.0.2" 741 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" 742 | integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ== 743 | dependencies: 744 | cliui "^4.0.0" 745 | decamelize "^2.0.0" 746 | find-up "^3.0.0" 747 | get-caller-file "^1.0.1" 748 | os-locale "^3.0.0" 749 | require-directory "^2.1.1" 750 | require-main-filename "^1.0.1" 751 | set-blocking "^2.0.0" 752 | string-width "^2.0.0" 753 | which-module "^2.0.0" 754 | y18n "^3.2.1 || ^4.0.0" 755 | yargs-parser "^10.1.0" 756 | --------------------------------------------------------------------------------