├── .gitignore ├── pizza.js ├── lib └── db.js ├── package.json ├── digitalocean-list.js ├── digitalocean-delete.js ├── digitalocean.js ├── readme.md ├── sizes.json ├── digitalocean-create.js ├── regions.json ├── images.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | data.db 3 | -------------------------------------------------------------------------------- /pizza.js: -------------------------------------------------------------------------------- 1 | const inquirer = require('inquirer'); 2 | 3 | var questions = [ 4 | { 5 | type: 'list', 6 | name: 'droplets', 7 | message: 'What size do you need?', 8 | choices: ['Large', 'Medium', 'Small'] 9 | } 10 | ]; 11 | 12 | inquirer.prompt(questions).then(function (answers) { 13 | console.log('\nOrder receipt:'); 14 | console.log(JSON.stringify(answers, null, ' ')); 15 | }); 16 | -------------------------------------------------------------------------------- /lib/db.js: -------------------------------------------------------------------------------- 1 | const Datastore = require('nedb') 2 | const db = new Datastore({ filename: 'data.db', autoload: true }); 3 | 4 | const find = () => { 5 | return new Promise((resolve, reject) => { 6 | db.find({}, (err, docs) => { 7 | err ? reject(err) : resolve(docs[0]); 8 | }); 9 | }); 10 | } 11 | 12 | const insert = (obj) => { 13 | return new Promise((resolve, reject) => { 14 | db.insert(obj, (err, newDoc) => { 15 | err ? reject(err) : resolve(newDoc); 16 | }); 17 | }); 18 | } 19 | 20 | 21 | 22 | module.exports.find = find; 23 | module.exports.insert = insert; 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "do-cli-app", 3 | "version": "1.1.2", 4 | "description": "Digital Ocean CLI Uygulaması Eğitim Serisi İçeriği", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "digitalocean.js" 8 | }, 9 | "bin": { 10 | "digitalocean": "./digitalocean.js" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/TheLastCodeBenders/do-cli.git" 15 | }, 16 | "keywords": [ 17 | "do", 18 | "digitalocean", 19 | "cli" 20 | ], 21 | "author": "Çağatay Çalı", 22 | "license": "ISC", 23 | "bugs": { 24 | "url": "https://github.com/TheLastCodeBenders/do-cli/issues" 25 | }, 26 | "homepage": "https://github.com/TheLastCodeBenders/do-cli#readme", 27 | "dependencies": { 28 | "clipboardy": "^1.1.2", 29 | "colors": "^1.1.2", 30 | "commander": "^2.9.0", 31 | "digitalocean": "^0.10.0", 32 | "inquirer": "^3.1.0", 33 | "moment": "^2.18.1", 34 | "nedb": "^1.8.0" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /digitalocean-list.js: -------------------------------------------------------------------------------- 1 | const digitalocean = require('digitalocean'); 2 | const colors = require('colors'); 3 | const moment = require('moment'); 4 | const inquirer = require('inquirer'); 5 | const clipboardy = require('clipboardy'); 6 | const db = require('./lib/db'); 7 | 8 | (async function start() { 9 | let data = await db.find(); 10 | const { token, fingerprint } = data; 11 | const client = digitalocean.client(token); 12 | 13 | let droplets = await client.droplets.list(); 14 | 15 | const questions = [ 16 | { 17 | type: 'list', 18 | name: 'droplet', 19 | message: 'There\'s your cool droplets', 20 | choices: droplets.map(droplet => droplet.name), 21 | filter: (val) => { 22 | return (droplets.find(droplet => droplet.name == val)).networks.v4[0].ip_address 23 | } 24 | } 25 | ]; 26 | 27 | let answers = await inquirer.prompt(questions); 28 | clipboardy.writeSync(`ssh root@${answers.droplet}`); 29 | console.log(colors.bold.green('You can paste your ssh command anywhere now!')); 30 | 31 | })(); 32 | -------------------------------------------------------------------------------- /digitalocean-delete.js: -------------------------------------------------------------------------------- 1 | const digitalocean = require('digitalocean'); 2 | const colors = require('colors'); 3 | const moment = require('moment'); 4 | const inquirer = require('inquirer'); 5 | const clipboardy = require('clipboardy'); 6 | const db = require('./lib/db'); 7 | 8 | (async function start() { 9 | let data = await db.find(); 10 | const { token, fingerprint } = data; 11 | const client = digitalocean.client(token); 12 | 13 | let droplets = await client.droplets.list(); 14 | 15 | const questions = [ 16 | { 17 | type: 'list', 18 | name: 'droplet', 19 | message: 'There\'s your cool droplets', 20 | choices: droplets.map(droplet => droplet.name), 21 | filter: (val) => { 22 | return (droplets.find(droplet => droplet.name == val)).id 23 | } 24 | } 25 | ]; 26 | 27 | let answers = await inquirer.prompt(questions); 28 | let out = await client.droplets.delete(answers.droplet) 29 | let deletedDroplet = (droplets.find(droplet => droplet.id == answers.droplet)).name; 30 | console.log(colors.green('Your cool droplet has ben deleted'), colors.bold.blue(deletedDroplet)); 31 | })(); 32 | -------------------------------------------------------------------------------- /digitalocean.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const db = require('./lib/db'); 3 | const program = require('commander'); 4 | const inquirer = require('inquirer'); 5 | const colors = require('colors'); 6 | 7 | db.find() 8 | .then((doc) => { 9 | if (!doc) { 10 | const questions = [ 11 | { 12 | type: 'input', 13 | name: 'token', 14 | message: 'What\'s digital ocean API token?', 15 | validate: function (value) { 16 | if (value.trim().length > 0) { 17 | return true; 18 | } 19 | 20 | return 'Please enter a API token'; 21 | } 22 | }, 23 | { 24 | type: 'input', 25 | name: 'fingerprint', 26 | message: 'What\'s digital ocean ssh fingerprint?', 27 | validate: function (value) { 28 | if (value.trim().length > 0) { 29 | return true; 30 | } 31 | 32 | return 'Please enter a ssh fingerprint'; 33 | } 34 | }, 35 | ]; 36 | 37 | inquirer.prompt(questions) 38 | .then( async (attributes) => { 39 | let out = await db.insert(attributes); 40 | console.log(colors.bold.green('CLI APP INITIALIZED')); 41 | program 42 | .version('1.0.0') 43 | .command('create', 'create digitalocean droplet') 44 | .command('delete', 'delete digitalocean droplet') 45 | .command('list', 'list digitalocean droplets', {isDefault: true}) 46 | .parse(process.argv); 47 | }); 48 | } else { 49 | program 50 | .version('1.0.0') 51 | .command('create', 'create digitalocean droplet') 52 | .command('delete', 'delete digitalocean droplet') 53 | .command('list', 'list digitalocean droplets', {isDefault: true}) 54 | .parse(process.argv); 55 | } 56 | }) 57 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## Digital Ocean CLI Uygulaması Eğitim Serisi İçeriği 2 | 3 | ## Kullanım 4 | 5 | ```bash 6 | npm i -g do-cli-app 7 | ``` 8 | 9 | ## Npm paketi paylaşma 10 | 11 | ```bash 12 | npm publish 13 | ``` 14 | 15 | Bu eğitimde başından sonuna kadar bir terminal uygulaması hazırlayacağız. 16 | 17 | Bir sonraki canlı eğitim videosunun hangi konu ile ilgili olmasını istiyorsanız [bu depoya issue](https://github.com/TheLastCodeBenders/do-cli/issues/new) olarak açabilirsiniz. 18 | 19 | - Seri Videoları: 20 | 21 | - Giriş Videosu: [YouTube](https://youtu.be/tBXiaWpx9Pw) 22 | 23 | - Çalışma ortamının ve projenin belirlenmesi 24 | - Projenin kapsamının belirlenmesi 25 | - Yapılacak projenin demosu 26 | - Motivasyon 27 | 28 | - Kodlama [1] _canlı olarak yayınlanacaktır_ 29 | 30 | - Projenin kodlamasını içeren video 31 | - ~45 dakikalık başlangıç 32 | 33 | - Kodlama [2] _canlı olarak yayınlanacaktır_ 34 | 35 | - Projenin kodlamasının devamı 36 | - ~45 dakikalık bitiriş 37 | 38 | - Son dokunuşlar _canlı olarak yayınlanacaktır_ 39 | 40 | - Yapılabilecek diğer işler ve yaratıcı fikirler. 41 | 42 | Şeklinde dört adet videodan oluşacağını öngördüğüm bir video serisi olacaktır. Kodlama videoları canlı olarak yayınlanacaktır. 43 | 44 | **Canlı yayın linki** 45 | 46 | 47 | 48 | ### Kullanılan API'lar ve Dökümantasyonlar 49 | 50 | **How to use ssh keys with digital ocean droplets** 51 | 52 | _List all distribution images_ 53 | 54 | _List all sizes_ 55 | 56 | _List all regions_ 57 | 58 | _Digital ocean referral register link_ 59 | 60 | ### Kullanılan paketler 61 | 62 | _inquirer_ 63 | 64 | 65 | _commander_ 66 | 67 | 68 | _digitalocean_ 69 | 70 | 71 | _moment_ 72 | 73 | 74 | _colors_ 75 | 76 | 77 | _nedb_ 78 | 79 | 80 | _clipboardy_ 81 | 82 | 83 | Genel JavaScript ES6 Kullanımı (Alpcan Aydın) 84 | 85 | 86 | *Şimdiden iyi seyirler dilerim.* 87 | 88 | [YouTube](https://www.youtube.com/TheLastCodeBenders) 89 | 90 | [Çağatay Çalı](https://github.com/cagataycali) 91 | -------------------------------------------------------------------------------- /sizes.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "slug": "512mb", 3 | "memory": 512, 4 | "vcpus": 1, 5 | "disk": 20, 6 | "transfer": 1.0, 7 | "price_monthly": 5.0, 8 | "price_hourly": 0.00744, 9 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 10 | "available": true 11 | }, { 12 | "slug": "1gb", 13 | "memory": 1024, 14 | "vcpus": 1, 15 | "disk": 30, 16 | "transfer": 2.0, 17 | "price_monthly": 10.0, 18 | "price_hourly": 0.01488, 19 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 20 | "available": true 21 | }, { 22 | "slug": "2gb", 23 | "memory": 2048, 24 | "vcpus": 2, 25 | "disk": 40, 26 | "transfer": 3.0, 27 | "price_monthly": 20.0, 28 | "price_hourly": 0.02976, 29 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 30 | "available": true 31 | }, { 32 | "slug": "4gb", 33 | "memory": 4096, 34 | "vcpus": 2, 35 | "disk": 60, 36 | "transfer": 4.0, 37 | "price_monthly": 40.0, 38 | "price_hourly": 0.05952, 39 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 40 | "available": true 41 | }, { 42 | "slug": "8gb", 43 | "memory": 8192, 44 | "vcpus": 4, 45 | "disk": 80, 46 | "transfer": 5.0, 47 | "price_monthly": 80.0, 48 | "price_hourly": 0.11905, 49 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 50 | "available": true 51 | }, { 52 | "slug": "16gb", 53 | "memory": 16384, 54 | "vcpus": 8, 55 | "disk": 160, 56 | "transfer": 6.0, 57 | "price_monthly": 160.0, 58 | "price_hourly": 0.2381, 59 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 60 | "available": true 61 | }, { 62 | "slug": "32gb", 63 | "memory": 32768, 64 | "vcpus": 12, 65 | "disk": 320, 66 | "transfer": 7.0, 67 | "price_monthly": 320.0, 68 | "price_hourly": 0.47619, 69 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 70 | "available": false 71 | }, { 72 | "slug": "48gb", 73 | "memory": 49152, 74 | "vcpus": 16, 75 | "disk": 480, 76 | "transfer": 8.0, 77 | "price_monthly": 480.0, 78 | "price_hourly": 0.71429, 79 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 80 | "available": false 81 | }, { 82 | "slug": "64gb", 83 | "memory": 65536, 84 | "vcpus": 20, 85 | "disk": 640, 86 | "transfer": 9.0, 87 | "price_monthly": 640.0, 88 | "price_hourly": 0.95238, 89 | "regions": ["ams2", "ams3", "blr1", "fra1", "lon1", "nyc1", "nyc2", "nyc3", "sfo1", "sfo2", "sgp1", "tor1"], 90 | "available": false 91 | }] 92 | -------------------------------------------------------------------------------- /digitalocean-create.js: -------------------------------------------------------------------------------- 1 | const digitalocean = require('digitalocean'); 2 | const colors = require('colors'); 3 | const inquirer = require('inquirer'); 4 | const clipboardy = require('clipboardy'); 5 | const regions = require('./regions.json'); 6 | const sizes = require('./sizes.json'); 7 | const images = require('./images.json'); 8 | const db = require('./lib/db'); 9 | 10 | (async function start() { 11 | let data = await db.find(); 12 | const { token, fingerprint } = data; 13 | const client = digitalocean.client(token); 14 | 15 | const questions = [ 16 | { 17 | type: 'input', 18 | name: 'name', 19 | message: 'What\'s cool droplets name?', 20 | validate: function (value) { 21 | if (value.trim().length > 0) { 22 | return true; 23 | } 24 | 25 | return 'Please enter a droplet name'; 26 | } 27 | }, 28 | { 29 | type: 'list', 30 | name: 'image', 31 | message: 'Which distrubiton do you want?', 32 | choices: images.map(image => image.slug), 33 | }, 34 | { 35 | type: 'list', 36 | name: 'region', 37 | message: 'Which region do you want?', 38 | choices: regions.map(region => region.name), 39 | filter: (val) => { 40 | return (regions.find(region => region.name == val)).slug 41 | } 42 | }, 43 | { 44 | type: 'list', 45 | name: 'size', 46 | message: 'Which size do you want?', 47 | choices: sizes.map(size => size.slug), 48 | }, 49 | ]; 50 | 51 | let answers = await inquirer.prompt(questions); 52 | answers.ssh_keys = [fingerprint]; 53 | 54 | client.droplets.create(answers, function(err, droplet) { 55 | if (err === null) { 56 | pollUntilDone(droplet.id, function() { 57 | console.log(colors.bold.green('Your droplet has ben created, you can paste anywhere.')); 58 | }); 59 | } else { 60 | console.log(colors.bold.red(err.body.message)); 61 | } 62 | }); 63 | 64 | // Poll for non-locked state every 10s 65 | function pollUntilDone(id, done) { 66 | client.droplets.get(id, function(err, droplet) { 67 | if (!err && droplet.locked === false) { 68 | // we're done! 69 | done.call(); 70 | } else if (!err && droplet.locked === true && droplet.networks.v4.length > 0) { 71 | // back off 10s more 72 | try { 73 | let ip = droplet.networks.v4[0].ip_address; 74 | clipboardy.writeSync(`ssh root@${ip}`); 75 | pollUntilDone(id, done); 76 | } catch (e) { 77 | setTimeout(function() { 78 | pollUntilDone(id, done); 79 | }, 3 * 1000); 80 | } finally { 81 | console.log(colors.grey('Wait for a few seconds..')); 82 | } 83 | 84 | } else { 85 | pollUntilDone(id, done); 86 | } 87 | }); 88 | } 89 | })(); 90 | -------------------------------------------------------------------------------- /regions.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "name": "New York 1", 3 | "slug": "nyc1", 4 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 5 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent", "storage"], 6 | "available": true 7 | }, { 8 | "name": "San Francisco 1", 9 | "slug": "sfo1", 10 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 11 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent"], 12 | "available": true 13 | }, { 14 | "name": "New York 2", 15 | "slug": "nyc2", 16 | "sizes": [], 17 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent"], 18 | "available": false 19 | }, { 20 | "name": "Amsterdam 2", 21 | "slug": "ams2", 22 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 23 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent"], 24 | "available": true 25 | }, { 26 | "name": "Singapore 1", 27 | "slug": "sgp1", 28 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 29 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent", "storage"], 30 | "available": true 31 | }, { 32 | "name": "London 1", 33 | "slug": "lon1", 34 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 35 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent"], 36 | "available": true 37 | }, { 38 | "name": "New York 3", 39 | "slug": "nyc3", 40 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 41 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent"], 42 | "available": true 43 | }, { 44 | "name": "Amsterdam 3", 45 | "slug": "ams3", 46 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 47 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent"], 48 | "available": true 49 | }, { 50 | "name": "Frankfurt 1", 51 | "slug": "fra1", 52 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 53 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent", "storage"], 54 | "available": true 55 | }, { 56 | "name": "Toronto 1", 57 | "slug": "tor1", 58 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 59 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent", "storage"], 60 | "available": true 61 | }, { 62 | "name": "San Francisco 2", 63 | "slug": "sfo2", 64 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 65 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent", "storage"], 66 | "available": true 67 | }, { 68 | "name": "Bangalore 1", 69 | "slug": "blr1", 70 | "sizes": ["512mb", "1gb", "2gb", "4gb", "8gb", "16gb"], 71 | "features": ["private_networking", "backups", "ipv6", "metadata", "install_agent"], 72 | "available": true 73 | }] 74 | -------------------------------------------------------------------------------- /images.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 25092162, 4 | "name": "1409.1.0 (beta)", 5 | "distribution": "CoreOS", 6 | "slug": "coreos-beta", 7 | "public": true, 8 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 9 | "created_at": "2017-05-24T18:46:34Z", 10 | "min_disk_size": 20, 11 | "type": "snapshot", 12 | "size_gigabytes": 0.33 13 | }, { 14 | "id": 18027532, 15 | "name": "24 x64", 16 | "distribution": "Fedora", 17 | "slug": "fedora-24-x64", 18 | "public": true, 19 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 20 | "created_at": "2016-06-21T22:36:10Z", 21 | "min_disk_size": 20, 22 | "type": "snapshot", 23 | "size_gigabytes": 3.22 24 | }, { 25 | "id": 21190386, 26 | "name": "25 x64", 27 | "distribution": "Fedora", 28 | "slug": "fedora-25-x64", 29 | "public": true, 30 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 31 | "created_at": "2016-11-28T14:06:44Z", 32 | "min_disk_size": 20, 33 | "type": "snapshot", 34 | "size_gigabytes": 0.19 35 | }, { 36 | "id": 21419458, 37 | "name": "7.11 x64", 38 | "distribution": "Debian", 39 | "slug": "debian-7-x64", 40 | "public": true, 41 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 42 | "created_at": "2016-12-09T15:22:42Z", 43 | "min_disk_size": 20, 44 | "type": "snapshot", 45 | "size_gigabytes": 0.36 46 | }, { 47 | "id": 21419789, 48 | "name": "7.11 x32", 49 | "distribution": "Debian", 50 | "slug": "debian-7-x32", 51 | "public": true, 52 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 53 | "created_at": "2016-12-09T16:19:04Z", 54 | "min_disk_size": 20, 55 | "type": "snapshot", 56 | "size_gigabytes": 0.36 57 | }, { 58 | "id": 24081356, 59 | "name": "10.3 x64 zfs", 60 | "distribution": "FreeBSD", 61 | "slug": "freebsd-10-3-x64-zfs", 62 | "public": true, 63 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 64 | "created_at": "2017-04-10T23:57:15Z", 65 | "min_disk_size": 20, 66 | "type": "snapshot", 67 | "size_gigabytes": 1.0 68 | }, { 69 | "id": 24081552, 70 | "name": "10.3 x64", 71 | "distribution": "FreeBSD", 72 | "slug": "freebsd-10-3-x64", 73 | "public": true, 74 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 75 | "created_at": "2017-04-11T00:03:44Z", 76 | "min_disk_size": 20, 77 | "type": "snapshot", 78 | "size_gigabytes": 0.95 79 | }, { 80 | "id": 24627331, 81 | "name": "6.9 x32", 82 | "distribution": "CentOS", 83 | "slug": "centos-6-x32", 84 | "public": true, 85 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 86 | "created_at": "2017-05-04T18:02:20Z", 87 | "min_disk_size": 20, 88 | "type": "snapshot", 89 | "size_gigabytes": 0.32 90 | }, { 91 | "id": 24627332, 92 | "name": "6.9 x64", 93 | "distribution": "CentOS", 94 | "slug": "centos-6-x64", 95 | "public": true, 96 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 97 | "created_at": "2017-05-04T18:02:38Z", 98 | "min_disk_size": 20, 99 | "type": "snapshot", 100 | "size_gigabytes": 0.32 101 | }, { 102 | "id": 24725754, 103 | "name": "8.8 x32", 104 | "distribution": "Debian", 105 | "slug": "debian-8-x32", 106 | "public": true, 107 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 108 | "created_at": "2017-05-08T22:56:08Z", 109 | "min_disk_size": 20, 110 | "type": "snapshot", 111 | "size_gigabytes": 0.38 112 | }, { 113 | "id": 24725963, 114 | "name": "8.8 x64", 115 | "distribution": "Debian", 116 | "slug": "debian-8-x64", 117 | "public": true, 118 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 119 | "created_at": "2017-05-08T23:05:12Z", 120 | "min_disk_size": 20, 121 | "type": "snapshot", 122 | "size_gigabytes": 0.38 123 | }, { 124 | "id": 24936566, 125 | "name": "16.10 x64", 126 | "distribution": "Ubuntu", 127 | "slug": "ubuntu-16-10-x64", 128 | "public": true, 129 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 130 | "created_at": "2017-05-18T00:11:01Z", 131 | "min_disk_size": 20, 132 | "type": "snapshot", 133 | "size_gigabytes": 0.35 134 | }, { 135 | "id": 24937916, 136 | "name": "16.10 x32", 137 | "distribution": "Ubuntu", 138 | "slug": "ubuntu-16-10-x32", 139 | "public": true, 140 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 141 | "created_at": "2017-05-18T00:47:55Z", 142 | "min_disk_size": 20, 143 | "type": "snapshot", 144 | "size_gigabytes": 0.3 145 | }, { 146 | "id": 24960719, 147 | "name": "17.04 x32", 148 | "distribution": "Ubuntu", 149 | "slug": "ubuntu-17-04-x32", 150 | "public": true, 151 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 152 | "created_at": "2017-05-19T00:42:05Z", 153 | "min_disk_size": 20, 154 | "type": "snapshot", 155 | "size_gigabytes": 0.3 156 | }, { 157 | "id": 24960723, 158 | "name": "17.04 x64", 159 | "distribution": "Ubuntu", 160 | "slug": "ubuntu-17-04-x64", 161 | "public": true, 162 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 163 | "created_at": "2017-05-19T00:42:13Z", 164 | "min_disk_size": 20, 165 | "type": "snapshot", 166 | "size_gigabytes": 0.35 167 | }, { 168 | "id": 25045709, 169 | "name": "7.3.1611 x64", 170 | "distribution": "CentOS", 171 | "slug": "centos-7-x64", 172 | "public": true, 173 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 174 | "created_at": "2017-05-22T19:04:53Z", 175 | "min_disk_size": 20, 176 | "type": "snapshot", 177 | "size_gigabytes": 0.5 178 | }, { 179 | "id": 25244525, 180 | "name": "1353.8.0 (stable)", 181 | "distribution": "CoreOS", 182 | "slug": "coreos-stable", 183 | "public": true, 184 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 185 | "created_at": "2017-05-31T01:56:28Z", 186 | "min_disk_size": 20, 187 | "type": "snapshot", 188 | "size_gigabytes": 0.33 189 | }, { 190 | "id": 25256988, 191 | "name": "14.04.5 x64", 192 | "distribution": "Ubuntu", 193 | "slug": "ubuntu-14-04-x64", 194 | "public": true, 195 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 196 | "created_at": "2017-05-31T19:21:59Z", 197 | "min_disk_size": 20, 198 | "type": "snapshot", 199 | "size_gigabytes": 0.46 200 | }, { 201 | "id": 25256991, 202 | "name": "14.04.5 x32", 203 | "distribution": "Ubuntu", 204 | "slug": "ubuntu-14-04-x32", 205 | "public": true, 206 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 207 | "created_at": "2017-05-31T19:23:18Z", 208 | "min_disk_size": 20, 209 | "type": "snapshot", 210 | "size_gigabytes": 0.43 211 | }, { 212 | "id": 25376089, 213 | "name": "25 x64 [Atomic Host]", 214 | "distribution": "Fedora", 215 | "slug": "fedora-25-x64-atomic", 216 | "public": true, 217 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 218 | "created_at": "2017-06-05T19:12:44Z", 219 | "min_disk_size": 20, 220 | "type": "snapshot", 221 | "size_gigabytes": 0.68 222 | }, { 223 | "id": 25450505, 224 | "name": "1437.0.0 (alpha)", 225 | "distribution": "CoreOS", 226 | "slug": "coreos-alpha", 227 | "public": true, 228 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 229 | "created_at": "2017-06-08T18:06:30Z", 230 | "min_disk_size": 20, 231 | "type": "snapshot", 232 | "size_gigabytes": 0.34 233 | }, { 234 | "id": 25599638, 235 | "name": "16.04.2 x32", 236 | "distribution": "Ubuntu", 237 | "slug": "ubuntu-16-04-x32", 238 | "public": true, 239 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 240 | "created_at": "2017-06-14T23:29:07Z", 241 | "min_disk_size": 20, 242 | "type": "snapshot", 243 | "size_gigabytes": 0.29 244 | }, { 245 | "id": 25599663, 246 | "name": "16.04.2 x64", 247 | "distribution": "Ubuntu", 248 | "slug": "ubuntu-16-04-x64", 249 | "public": true, 250 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 251 | "created_at": "2017-06-14T23:29:57Z", 252 | "min_disk_size": 20, 253 | "type": "snapshot", 254 | "size_gigabytes": 0.29 255 | }, { 256 | "id": 25640707, 257 | "name": "11.0 x64 ZFS", 258 | "distribution": "FreeBSD", 259 | "slug": "freebsd-11-0-x64-zfs", 260 | "public": true, 261 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 262 | "created_at": "2017-06-16T15:44:49Z", 263 | "min_disk_size": 20, 264 | "type": "snapshot", 265 | "size_gigabytes": 0.84 266 | }, { 267 | "id": 25640715, 268 | "name": "11.0 x64", 269 | "distribution": "FreeBSD", 270 | "slug": "freebsd-11-0-x64", 271 | "public": true, 272 | "regions": ["nyc1", "sfo1", "nyc2", "ams2", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1"], 273 | "created_at": "2017-06-16T15:46:35Z", 274 | "min_disk_size": 20, 275 | "type": "snapshot", 276 | "size_gigabytes": 0.82 277 | } 278 | ] 279 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | acorn@^1.0.3: 6 | version "1.2.2" 7 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" 8 | 9 | ajv@^4.9.1: 10 | version "4.11.8" 11 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 12 | dependencies: 13 | co "^4.6.0" 14 | json-stable-stringify "^1.0.1" 15 | 16 | amdefine@>=0.0.4: 17 | version "1.0.1" 18 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 19 | 20 | ansi-escapes@^2.0.0: 21 | version "2.0.0" 22 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" 23 | 24 | ansi-regex@^2.0.0: 25 | version "2.1.1" 26 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 27 | 28 | ansi-styles@^2.2.1: 29 | version "2.2.1" 30 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 31 | 32 | asn1@~0.2.3: 33 | version "0.2.3" 34 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 35 | 36 | assert-plus@1.0.0, assert-plus@^1.0.0: 37 | version "1.0.0" 38 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 39 | 40 | assert-plus@^0.2.0: 41 | version "0.2.0" 42 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 43 | 44 | ast-types@0.8.15: 45 | version "0.8.15" 46 | resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52" 47 | 48 | async@0.2.10: 49 | version "0.2.10" 50 | resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" 51 | 52 | asynckit@^0.4.0: 53 | version "0.4.0" 54 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 55 | 56 | aws-sign2@~0.6.0: 57 | version "0.6.0" 58 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 59 | 60 | aws4@^1.2.1: 61 | version "1.6.0" 62 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 63 | 64 | base62@0.1.1: 65 | version "0.1.1" 66 | resolved "https://registry.yarnpkg.com/base62/-/base62-0.1.1.tgz#7b4174c2f94449753b11c2651c083da841a7b084" 67 | 68 | bcrypt-pbkdf@^1.0.0: 69 | version "1.0.1" 70 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 71 | dependencies: 72 | tweetnacl "^0.14.3" 73 | 74 | binary-search-tree@0.2.5: 75 | version "0.2.5" 76 | resolved "https://registry.yarnpkg.com/binary-search-tree/-/binary-search-tree-0.2.5.tgz#7dbb3b210fdca082450dad2334c304af39bdc784" 77 | dependencies: 78 | underscore "~1.4.4" 79 | 80 | bluebird@^3.0: 81 | version "3.5.0" 82 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" 83 | 84 | boom@2.x.x: 85 | version "2.10.1" 86 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 87 | dependencies: 88 | hoek "2.x.x" 89 | 90 | caseless@~0.12.0: 91 | version "0.12.0" 92 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 93 | 94 | chalk@^1.0.0: 95 | version "1.1.3" 96 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 97 | dependencies: 98 | ansi-styles "^2.2.1" 99 | escape-string-regexp "^1.0.2" 100 | has-ansi "^2.0.0" 101 | strip-ansi "^3.0.0" 102 | supports-color "^2.0.0" 103 | 104 | cli-cursor@^2.1.0: 105 | version "2.1.0" 106 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 107 | dependencies: 108 | restore-cursor "^2.0.0" 109 | 110 | cli-width@^2.0.0: 111 | version "2.1.0" 112 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 113 | 114 | clipboardy@^1.1.2: 115 | version "1.1.2" 116 | resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.1.2.tgz#a26d075ff779b8f82721c0affebc543208a09116" 117 | dependencies: 118 | execa "^0.6.0" 119 | 120 | co@^4.6.0: 121 | version "4.6.0" 122 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 123 | 124 | colors@^1.1.2: 125 | version "1.1.2" 126 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 127 | 128 | combined-stream@^1.0.5, combined-stream@~1.0.5: 129 | version "1.0.5" 130 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 131 | dependencies: 132 | delayed-stream "~1.0.0" 133 | 134 | commander@^2.9.0: 135 | version "2.9.0" 136 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 137 | dependencies: 138 | graceful-readlink ">= 1.0.0" 139 | 140 | core-util-is@~1.0.0: 141 | version "1.0.2" 142 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 143 | 144 | cross-spawn@^5.0.1: 145 | version "5.1.0" 146 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 147 | dependencies: 148 | lru-cache "^4.0.1" 149 | shebang-command "^1.2.0" 150 | which "^1.2.9" 151 | 152 | cryptiles@2.x.x: 153 | version "2.0.5" 154 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 155 | dependencies: 156 | boom "2.x.x" 157 | 158 | dashdash@^1.12.0: 159 | version "1.14.1" 160 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 161 | dependencies: 162 | assert-plus "^1.0.0" 163 | 164 | deep-extend@0.x.x: 165 | version "0.5.0" 166 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.0.tgz#6ef4a09b05f98b0e358d6d93d4ca3caec6672803" 167 | 168 | delayed-stream@~1.0.0: 169 | version "1.0.0" 170 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 171 | 172 | digitalocean@^0.10.0: 173 | version "0.10.0" 174 | resolved "https://registry.yarnpkg.com/digitalocean/-/digitalocean-0.10.0.tgz#d5521220640ababcd275df87a8c7165a3c977de1" 175 | dependencies: 176 | bluebird "^3.0" 177 | deep-extend "0.x.x" 178 | request "^2.50" 179 | 180 | ecc-jsbn@~0.1.1: 181 | version "0.1.1" 182 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 183 | dependencies: 184 | jsbn "~0.1.0" 185 | 186 | es3ify@^0.1.3: 187 | version "0.1.4" 188 | resolved "https://registry.yarnpkg.com/es3ify/-/es3ify-0.1.4.tgz#ad9fa5df1ae34f3f31e1211b5818b2d51078dfd1" 189 | dependencies: 190 | esprima-fb "~3001.0001.0000-dev-harmony-fb" 191 | jstransform "~3.0.0" 192 | through "~2.3.4" 193 | 194 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 195 | version "1.0.5" 196 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 197 | 198 | esmangle-evaluator@^1.0.0: 199 | version "1.0.1" 200 | resolved "https://registry.yarnpkg.com/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz#620d866ef4861b3311f75766d52a8572bb3c6336" 201 | 202 | esprima-fb@~15001.1001.0-dev-harmony-fb: 203 | version "15001.1001.0-dev-harmony-fb" 204 | resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659" 205 | 206 | esprima-fb@~3001.0001.0000-dev-harmony-fb, esprima-fb@~3001.1.0-dev-harmony-fb: 207 | version "3001.1.0-dev-harmony-fb" 208 | resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" 209 | 210 | execa@^0.6.0: 211 | version "0.6.3" 212 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.6.3.tgz#57b69a594f081759c69e5370f0d17b9cb11658fe" 213 | dependencies: 214 | cross-spawn "^5.0.1" 215 | get-stream "^3.0.0" 216 | is-stream "^1.1.0" 217 | npm-run-path "^2.0.0" 218 | p-finally "^1.0.0" 219 | signal-exit "^3.0.0" 220 | strip-eof "^1.0.0" 221 | 222 | extend@~3.0.0: 223 | version "3.0.1" 224 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 225 | 226 | external-editor@^2.0.4: 227 | version "2.0.4" 228 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" 229 | dependencies: 230 | iconv-lite "^0.4.17" 231 | jschardet "^1.4.2" 232 | tmp "^0.0.31" 233 | 234 | extsprintf@1.0.2: 235 | version "1.0.2" 236 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" 237 | 238 | falafel@^1.0.1: 239 | version "1.2.0" 240 | resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4" 241 | dependencies: 242 | acorn "^1.0.3" 243 | foreach "^2.0.5" 244 | isarray "0.0.1" 245 | object-keys "^1.0.6" 246 | 247 | figures@^2.0.0: 248 | version "2.0.0" 249 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 250 | dependencies: 251 | escape-string-regexp "^1.0.5" 252 | 253 | foreach@^2.0.5: 254 | version "2.0.5" 255 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 256 | 257 | forever-agent@~0.6.1: 258 | version "0.6.1" 259 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 260 | 261 | form-data@~2.1.1: 262 | version "2.1.4" 263 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 264 | dependencies: 265 | asynckit "^0.4.0" 266 | combined-stream "^1.0.5" 267 | mime-types "^2.1.12" 268 | 269 | get-stream@^3.0.0: 270 | version "3.0.0" 271 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 272 | 273 | getpass@^0.1.1: 274 | version "0.1.7" 275 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 276 | dependencies: 277 | assert-plus "^1.0.0" 278 | 279 | "graceful-readlink@>= 1.0.0": 280 | version "1.0.1" 281 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 282 | 283 | har-schema@^1.0.5: 284 | version "1.0.5" 285 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 286 | 287 | har-validator@~4.2.1: 288 | version "4.2.1" 289 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 290 | dependencies: 291 | ajv "^4.9.1" 292 | har-schema "^1.0.5" 293 | 294 | has-ansi@^2.0.0: 295 | version "2.0.0" 296 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 297 | dependencies: 298 | ansi-regex "^2.0.0" 299 | 300 | hawk@~3.1.3: 301 | version "3.1.3" 302 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 303 | dependencies: 304 | boom "2.x.x" 305 | cryptiles "2.x.x" 306 | hoek "2.x.x" 307 | sntp "1.x.x" 308 | 309 | hoek@2.x.x: 310 | version "2.16.3" 311 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 312 | 313 | http-signature@~1.1.0: 314 | version "1.1.1" 315 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 316 | dependencies: 317 | assert-plus "^0.2.0" 318 | jsprim "^1.2.2" 319 | sshpk "^1.7.0" 320 | 321 | iconv-lite@^0.4.17: 322 | version "0.4.18" 323 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" 324 | 325 | immediate@~3.0.5: 326 | version "3.0.6" 327 | resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" 328 | 329 | inherits@~2.0.1: 330 | version "2.0.3" 331 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 332 | 333 | inline-process-browser@^1.0.0: 334 | version "1.0.0" 335 | resolved "https://registry.yarnpkg.com/inline-process-browser/-/inline-process-browser-1.0.0.tgz#46a61b153dd3c9b1624b1a00626edb4f7f414f22" 336 | dependencies: 337 | falafel "^1.0.1" 338 | through2 "^0.6.5" 339 | 340 | inquirer@^3.1.0: 341 | version "3.1.0" 342 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.1.0.tgz#e05400d48b94937c2d3caa7038663ba9189aab01" 343 | dependencies: 344 | ansi-escapes "^2.0.0" 345 | chalk "^1.0.0" 346 | cli-cursor "^2.1.0" 347 | cli-width "^2.0.0" 348 | external-editor "^2.0.4" 349 | figures "^2.0.0" 350 | lodash "^4.3.0" 351 | mute-stream "0.0.7" 352 | run-async "^2.2.0" 353 | rx-lite "^4.0.8" 354 | rx-lite-aggregates "^4.0.8" 355 | string-width "^2.0.0" 356 | strip-ansi "^3.0.0" 357 | through "^2.3.6" 358 | 359 | is-fullwidth-code-point@^2.0.0: 360 | version "2.0.0" 361 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 362 | 363 | is-promise@^2.1.0: 364 | version "2.1.0" 365 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 366 | 367 | is-stream@^1.1.0: 368 | version "1.1.0" 369 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 370 | 371 | is-typedarray@~1.0.0: 372 | version "1.0.0" 373 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 374 | 375 | isarray@0.0.1: 376 | version "0.0.1" 377 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 378 | 379 | isexe@^2.0.0: 380 | version "2.0.0" 381 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 382 | 383 | isstream@~0.1.2: 384 | version "0.1.2" 385 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 386 | 387 | jsbn@~0.1.0: 388 | version "0.1.1" 389 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 390 | 391 | jschardet@^1.4.2: 392 | version "1.4.2" 393 | resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.4.2.tgz#2aa107f142af4121d145659d44f50830961e699a" 394 | 395 | json-schema@0.2.3: 396 | version "0.2.3" 397 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 398 | 399 | json-stable-stringify@^1.0.1: 400 | version "1.0.1" 401 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 402 | dependencies: 403 | jsonify "~0.0.0" 404 | 405 | json-stringify-safe@~5.0.1: 406 | version "5.0.1" 407 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 408 | 409 | jsonify@~0.0.0: 410 | version "0.0.0" 411 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 412 | 413 | jsprim@^1.2.2: 414 | version "1.4.0" 415 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" 416 | dependencies: 417 | assert-plus "1.0.0" 418 | extsprintf "1.0.2" 419 | json-schema "0.2.3" 420 | verror "1.3.6" 421 | 422 | jstransform@~3.0.0: 423 | version "3.0.0" 424 | resolved "https://registry.yarnpkg.com/jstransform/-/jstransform-3.0.0.tgz#a2591ab6cee8d97bf3be830dbfa2313b87cd640b" 425 | dependencies: 426 | base62 "0.1.1" 427 | esprima-fb "~3001.1.0-dev-harmony-fb" 428 | source-map "0.1.31" 429 | 430 | lie@3.0.2: 431 | version "3.0.2" 432 | resolved "https://registry.yarnpkg.com/lie/-/lie-3.0.2.tgz#ffda21d7bba26f377cad865d3649b2fc8ce39fea" 433 | dependencies: 434 | es3ify "^0.1.3" 435 | immediate "~3.0.5" 436 | inline-process-browser "^1.0.0" 437 | unreachable-branch-transform "^0.3.0" 438 | 439 | localforage@^1.3.0: 440 | version "1.5.0" 441 | resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.5.0.tgz#6b994e19b56611fa85df3992df397ac4ab66e815" 442 | dependencies: 443 | lie "3.0.2" 444 | 445 | lodash@^4.3.0: 446 | version "4.17.4" 447 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 448 | 449 | lru-cache@^4.0.1: 450 | version "4.1.1" 451 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" 452 | dependencies: 453 | pseudomap "^1.0.2" 454 | yallist "^2.1.2" 455 | 456 | mime-db@~1.27.0: 457 | version "1.27.0" 458 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" 459 | 460 | mime-types@^2.1.12, mime-types@~2.1.7: 461 | version "2.1.15" 462 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" 463 | dependencies: 464 | mime-db "~1.27.0" 465 | 466 | mimic-fn@^1.0.0: 467 | version "1.1.0" 468 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" 469 | 470 | minimist@0.0.8: 471 | version "0.0.8" 472 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 473 | 474 | mkdirp@~0.5.1: 475 | version "0.5.1" 476 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 477 | dependencies: 478 | minimist "0.0.8" 479 | 480 | moment@^2.18.1: 481 | version "2.18.1" 482 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" 483 | 484 | mute-stream@0.0.7: 485 | version "0.0.7" 486 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 487 | 488 | nedb@^1.8.0: 489 | version "1.8.0" 490 | resolved "https://registry.yarnpkg.com/nedb/-/nedb-1.8.0.tgz#0e3502cd82c004d5355a43c9e55577bd7bd91d88" 491 | dependencies: 492 | async "0.2.10" 493 | binary-search-tree "0.2.5" 494 | localforage "^1.3.0" 495 | mkdirp "~0.5.1" 496 | underscore "~1.4.4" 497 | 498 | npm-run-path@^2.0.0: 499 | version "2.0.2" 500 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 501 | dependencies: 502 | path-key "^2.0.0" 503 | 504 | oauth-sign@~0.8.1: 505 | version "0.8.2" 506 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 507 | 508 | object-keys@^1.0.6: 509 | version "1.0.11" 510 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" 511 | 512 | onetime@^2.0.0: 513 | version "2.0.1" 514 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 515 | dependencies: 516 | mimic-fn "^1.0.0" 517 | 518 | os-tmpdir@~1.0.1: 519 | version "1.0.2" 520 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 521 | 522 | p-finally@^1.0.0: 523 | version "1.0.0" 524 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 525 | 526 | path-key@^2.0.0: 527 | version "2.0.1" 528 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 529 | 530 | performance-now@^0.2.0: 531 | version "0.2.0" 532 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 533 | 534 | private@~0.1.5: 535 | version "0.1.7" 536 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" 537 | 538 | pseudomap@^1.0.2: 539 | version "1.0.2" 540 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 541 | 542 | punycode@^1.4.1: 543 | version "1.4.1" 544 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 545 | 546 | qs@~6.4.0: 547 | version "6.4.0" 548 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 549 | 550 | "readable-stream@>=1.0.33-1 <1.1.0-0": 551 | version "1.0.34" 552 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" 553 | dependencies: 554 | core-util-is "~1.0.0" 555 | inherits "~2.0.1" 556 | isarray "0.0.1" 557 | string_decoder "~0.10.x" 558 | 559 | recast@^0.10.1: 560 | version "0.10.43" 561 | resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f" 562 | dependencies: 563 | ast-types "0.8.15" 564 | esprima-fb "~15001.1001.0-dev-harmony-fb" 565 | private "~0.1.5" 566 | source-map "~0.5.0" 567 | 568 | request@^2.50: 569 | version "2.81.0" 570 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 571 | dependencies: 572 | aws-sign2 "~0.6.0" 573 | aws4 "^1.2.1" 574 | caseless "~0.12.0" 575 | combined-stream "~1.0.5" 576 | extend "~3.0.0" 577 | forever-agent "~0.6.1" 578 | form-data "~2.1.1" 579 | har-validator "~4.2.1" 580 | hawk "~3.1.3" 581 | http-signature "~1.1.0" 582 | is-typedarray "~1.0.0" 583 | isstream "~0.1.2" 584 | json-stringify-safe "~5.0.1" 585 | mime-types "~2.1.7" 586 | oauth-sign "~0.8.1" 587 | performance-now "^0.2.0" 588 | qs "~6.4.0" 589 | safe-buffer "^5.0.1" 590 | stringstream "~0.0.4" 591 | tough-cookie "~2.3.0" 592 | tunnel-agent "^0.6.0" 593 | uuid "^3.0.0" 594 | 595 | restore-cursor@^2.0.0: 596 | version "2.0.0" 597 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 598 | dependencies: 599 | onetime "^2.0.0" 600 | signal-exit "^3.0.2" 601 | 602 | run-async@^2.2.0: 603 | version "2.3.0" 604 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 605 | dependencies: 606 | is-promise "^2.1.0" 607 | 608 | rx-lite-aggregates@^4.0.8: 609 | version "4.0.8" 610 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 611 | dependencies: 612 | rx-lite "*" 613 | 614 | rx-lite@*, rx-lite@^4.0.8: 615 | version "4.0.8" 616 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 617 | 618 | safe-buffer@^5.0.1: 619 | version "5.1.0" 620 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" 621 | 622 | shebang-command@^1.2.0: 623 | version "1.2.0" 624 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 625 | dependencies: 626 | shebang-regex "^1.0.0" 627 | 628 | shebang-regex@^1.0.0: 629 | version "1.0.0" 630 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 631 | 632 | signal-exit@^3.0.0, signal-exit@^3.0.2: 633 | version "3.0.2" 634 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 635 | 636 | sntp@1.x.x: 637 | version "1.0.9" 638 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 639 | dependencies: 640 | hoek "2.x.x" 641 | 642 | source-map@0.1.31: 643 | version "0.1.31" 644 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.31.tgz#9f704d0d69d9e138a81badf6ebb4fde33d151c61" 645 | dependencies: 646 | amdefine ">=0.0.4" 647 | 648 | source-map@~0.5.0: 649 | version "0.5.6" 650 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 651 | 652 | sshpk@^1.7.0: 653 | version "1.13.1" 654 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 655 | dependencies: 656 | asn1 "~0.2.3" 657 | assert-plus "^1.0.0" 658 | dashdash "^1.12.0" 659 | getpass "^0.1.1" 660 | optionalDependencies: 661 | bcrypt-pbkdf "^1.0.0" 662 | ecc-jsbn "~0.1.1" 663 | jsbn "~0.1.0" 664 | tweetnacl "~0.14.0" 665 | 666 | string-width@^2.0.0: 667 | version "2.0.0" 668 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" 669 | dependencies: 670 | is-fullwidth-code-point "^2.0.0" 671 | strip-ansi "^3.0.0" 672 | 673 | string_decoder@~0.10.x: 674 | version "0.10.31" 675 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 676 | 677 | stringstream@~0.0.4: 678 | version "0.0.5" 679 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 680 | 681 | strip-ansi@^3.0.0: 682 | version "3.0.1" 683 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 684 | dependencies: 685 | ansi-regex "^2.0.0" 686 | 687 | strip-eof@^1.0.0: 688 | version "1.0.0" 689 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 690 | 691 | supports-color@^2.0.0: 692 | version "2.0.0" 693 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 694 | 695 | through2@^0.6.2, through2@^0.6.5: 696 | version "0.6.5" 697 | resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" 698 | dependencies: 699 | readable-stream ">=1.0.33-1 <1.1.0-0" 700 | xtend ">=4.0.0 <4.1.0-0" 701 | 702 | through@^2.3.6, through@~2.3.4: 703 | version "2.3.8" 704 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 705 | 706 | tmp@^0.0.31: 707 | version "0.0.31" 708 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" 709 | dependencies: 710 | os-tmpdir "~1.0.1" 711 | 712 | tough-cookie@~2.3.0: 713 | version "2.3.2" 714 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 715 | dependencies: 716 | punycode "^1.4.1" 717 | 718 | tunnel-agent@^0.6.0: 719 | version "0.6.0" 720 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 721 | dependencies: 722 | safe-buffer "^5.0.1" 723 | 724 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 725 | version "0.14.5" 726 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 727 | 728 | underscore@~1.4.4: 729 | version "1.4.4" 730 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" 731 | 732 | unreachable-branch-transform@^0.3.0: 733 | version "0.3.0" 734 | resolved "https://registry.yarnpkg.com/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz#d99cc4c6e746d264928845b611db54b0f3474caa" 735 | dependencies: 736 | esmangle-evaluator "^1.0.0" 737 | recast "^0.10.1" 738 | through2 "^0.6.2" 739 | 740 | uuid@^3.0.0: 741 | version "3.1.0" 742 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 743 | 744 | verror@1.3.6: 745 | version "1.3.6" 746 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" 747 | dependencies: 748 | extsprintf "1.0.2" 749 | 750 | which@^1.2.9: 751 | version "1.2.14" 752 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" 753 | dependencies: 754 | isexe "^2.0.0" 755 | 756 | "xtend@>=4.0.0 <4.1.0-0": 757 | version "4.0.1" 758 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 759 | 760 | yallist@^2.1.2: 761 | version "2.1.2" 762 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 763 | --------------------------------------------------------------------------------