├── .gitignore ├── LICENSE ├── README.md └── quickstart ├── helloworld.proto ├── helloworld_pb.js ├── index.js ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /quickstart/node_modules/ 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2018, Loom Network 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # loom-js-samples 2 | Sample code demonstrating usage of https://github.com/loomnetwork/loom-js 3 | 4 | # Samples 5 | 6 | ## quickstart 7 | 8 | Sample code from https://loomx.io/developers/docs/en/loom-js-quickstart.html 9 | 10 | ``` 11 | cd quickstart 12 | yarn install 13 | yarn proto 14 | yarn start 15 | ``` 16 | 17 | # License 18 | 19 | `BSD-3`, see `LICENSE` for details. 20 | -------------------------------------------------------------------------------- /quickstart/helloworld.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | message MapEntry { 4 | string key = 1; 5 | string value = 2; 6 | } 7 | -------------------------------------------------------------------------------- /quickstart/helloworld_pb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @fileoverview 3 | * @enhanceable 4 | * @suppress {messageConventions} JS Compiler reports an error if a variable or 5 | * field starts with 'MSG_' and isn't a translatable message. 6 | * @public 7 | */ 8 | // GENERATED CODE -- DO NOT EDIT! 9 | 10 | var jspb = require('google-protobuf'); 11 | var goog = jspb; 12 | var global = Function('return this')(); 13 | 14 | goog.exportSymbol('proto.MapEntry', null, global); 15 | 16 | /** 17 | * Generated by JsPbCodeGenerator. 18 | * @param {Array=} opt_data Optional initial data array, typically from a 19 | * server response, or constructed directly in Javascript. The array is used 20 | * in place and becomes part of the constructed object. It is not cloned. 21 | * If no data is provided, the constructed object will be empty, but still 22 | * valid. 23 | * @extends {jspb.Message} 24 | * @constructor 25 | */ 26 | proto.MapEntry = function(opt_data) { 27 | jspb.Message.initialize(this, opt_data, 0, -1, null, null); 28 | }; 29 | goog.inherits(proto.MapEntry, jspb.Message); 30 | if (goog.DEBUG && !COMPILED) { 31 | proto.MapEntry.displayName = 'proto.MapEntry'; 32 | } 33 | 34 | 35 | if (jspb.Message.GENERATE_TO_OBJECT) { 36 | /** 37 | * Creates an object representation of this proto suitable for use in Soy templates. 38 | * Field names that are reserved in JavaScript and will be renamed to pb_name. 39 | * To access a reserved field use, foo.pb_, eg, foo.pb_default. 40 | * For the list of reserved names please see: 41 | * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. 42 | * @param {boolean=} opt_includeInstance Whether to include the JSPB instance 43 | * for transitional soy proto support: http://goto/soy-param-migration 44 | * @return {!Object} 45 | */ 46 | proto.MapEntry.prototype.toObject = function(opt_includeInstance) { 47 | return proto.MapEntry.toObject(opt_includeInstance, this); 48 | }; 49 | 50 | 51 | /** 52 | * Static version of the {@see toObject} method. 53 | * @param {boolean|undefined} includeInstance Whether to include the JSPB 54 | * instance for transitional soy proto support: 55 | * http://goto/soy-param-migration 56 | * @param {!proto.MapEntry} msg The msg instance to transform. 57 | * @return {!Object} 58 | * @suppress {unusedLocalVariables} f is only used for nested messages 59 | */ 60 | proto.MapEntry.toObject = function(includeInstance, msg) { 61 | var f, obj = { 62 | key: jspb.Message.getFieldWithDefault(msg, 1, ""), 63 | value: jspb.Message.getFieldWithDefault(msg, 2, "") 64 | }; 65 | 66 | if (includeInstance) { 67 | obj.$jspbMessageInstance = msg; 68 | } 69 | return obj; 70 | }; 71 | } 72 | 73 | 74 | /** 75 | * Deserializes binary data (in protobuf wire format). 76 | * @param {jspb.ByteSource} bytes The bytes to deserialize. 77 | * @return {!proto.MapEntry} 78 | */ 79 | proto.MapEntry.deserializeBinary = function(bytes) { 80 | var reader = new jspb.BinaryReader(bytes); 81 | var msg = new proto.MapEntry; 82 | return proto.MapEntry.deserializeBinaryFromReader(msg, reader); 83 | }; 84 | 85 | 86 | /** 87 | * Deserializes binary data (in protobuf wire format) from the 88 | * given reader into the given message object. 89 | * @param {!proto.MapEntry} msg The message object to deserialize into. 90 | * @param {!jspb.BinaryReader} reader The BinaryReader to use. 91 | * @return {!proto.MapEntry} 92 | */ 93 | proto.MapEntry.deserializeBinaryFromReader = function(msg, reader) { 94 | while (reader.nextField()) { 95 | if (reader.isEndGroup()) { 96 | break; 97 | } 98 | var field = reader.getFieldNumber(); 99 | switch (field) { 100 | case 1: 101 | var value = /** @type {string} */ (reader.readString()); 102 | msg.setKey(value); 103 | break; 104 | case 2: 105 | var value = /** @type {string} */ (reader.readString()); 106 | msg.setValue(value); 107 | break; 108 | default: 109 | reader.skipField(); 110 | break; 111 | } 112 | } 113 | return msg; 114 | }; 115 | 116 | 117 | /** 118 | * Serializes the message to binary data (in protobuf wire format). 119 | * @return {!Uint8Array} 120 | */ 121 | proto.MapEntry.prototype.serializeBinary = function() { 122 | var writer = new jspb.BinaryWriter(); 123 | proto.MapEntry.serializeBinaryToWriter(this, writer); 124 | return writer.getResultBuffer(); 125 | }; 126 | 127 | 128 | /** 129 | * Serializes the given message to binary data (in protobuf wire 130 | * format), writing to the given BinaryWriter. 131 | * @param {!proto.MapEntry} message 132 | * @param {!jspb.BinaryWriter} writer 133 | * @suppress {unusedLocalVariables} f is only used for nested messages 134 | */ 135 | proto.MapEntry.serializeBinaryToWriter = function(message, writer) { 136 | var f = undefined; 137 | f = message.getKey(); 138 | if (f.length > 0) { 139 | writer.writeString( 140 | 1, 141 | f 142 | ); 143 | } 144 | f = message.getValue(); 145 | if (f.length > 0) { 146 | writer.writeString( 147 | 2, 148 | f 149 | ); 150 | } 151 | }; 152 | 153 | 154 | /** 155 | * optional string key = 1; 156 | * @return {string} 157 | */ 158 | proto.MapEntry.prototype.getKey = function() { 159 | return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); 160 | }; 161 | 162 | 163 | /** @param {string} value */ 164 | proto.MapEntry.prototype.setKey = function(value) { 165 | jspb.Message.setProto3StringField(this, 1, value); 166 | }; 167 | 168 | 169 | /** 170 | * optional string value = 2; 171 | * @return {string} 172 | */ 173 | proto.MapEntry.prototype.getValue = function() { 174 | return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); 175 | }; 176 | 177 | 178 | /** @param {string} value */ 179 | proto.MapEntry.prototype.setValue = function(value) { 180 | jspb.Message.setProto3StringField(this, 2, value); 181 | }; 182 | 183 | 184 | goog.object.extend(exports, proto); 185 | -------------------------------------------------------------------------------- /quickstart/index.js: -------------------------------------------------------------------------------- 1 | const { 2 | NonceTxMiddleware, SignedTxMiddleware, Client, ClientEvent, 3 | Contract, Address, LocalAddress, CryptoUtils 4 | } = require('loom-js') 5 | 6 | const { MapEntry } = require('./helloworld_pb') 7 | 8 | /** 9 | * Creates a new `Contract` instance that can be used to interact with a smart contract. 10 | * @param privateKey Private key that will be used to sign transactions sent to the contract. 11 | * @param publicKey Public key that corresponds to the private key. 12 | * @returns `Contract` instance. 13 | */ 14 | async function getContract(privateKey, publicKey) { 15 | const client = new Client( 16 | 'default', 17 | 'ws://127.0.0.1:46657/websocket', 18 | 'ws://127.0.0.1:9999/queryws' 19 | ) 20 | 21 | client.on(ClientEvent.Error, err => console.log(err || 'Unexpected Client Error')) 22 | 23 | // required middleware 24 | client.txMiddleware = [ 25 | new NonceTxMiddleware(publicKey, client), 26 | new SignedTxMiddleware(privateKey) 27 | ] 28 | 29 | const contractAddr = await client.getContractAddressAsync('BluePrint') 30 | if (!contractAddr) { 31 | throw new Error('Failed to resolve contract address') 32 | } 33 | const callerAddr = new Address(client.chainId, LocalAddress.fromPublicKey(publicKey)) 34 | return new Contract({ 35 | contractAddr, 36 | callerAddr, 37 | client 38 | }) 39 | } 40 | 41 | /** 42 | * Stores an association between a key and a value in a smart contract. 43 | * @param contract Contract instance returned from `getContract()`. 44 | */ 45 | async function store(contract, key, value) { 46 | const params = new MapEntry() 47 | params.setKey(key) 48 | params.setValue(value) 49 | await contract.callAsync('SetMsg', params) 50 | } 51 | 52 | /** 53 | * Loads the value associated with a key in a smart contract. 54 | * @param contract Contract instance returned from `getContract()`. 55 | */ 56 | async function load(contract, key) { 57 | const params = new MapEntry() 58 | // The smart contract will look up the value stored under this key. 59 | params.setKey(key) 60 | const result = await contract.staticCallAsync('GetMsg', params, new MapEntry()) 61 | return result.getValue() 62 | } 63 | 64 | (async function () { 65 | const privateKey = CryptoUtils.generatePrivateKey() 66 | const publicKey = CryptoUtils.publicKeyFromPrivateKey(privateKey) 67 | 68 | const contract = await getContract(privateKey, publicKey) 69 | await store(contract, '123', 'hello!') 70 | const value = await load(contract, '123') 71 | console.log('Value: ' + value) 72 | })() -------------------------------------------------------------------------------- /quickstart/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "loom-js-samples", 3 | "version": "1.0.0", 4 | "description": "Sample code from loom-js QuickStart", 5 | "main": "index.js", 6 | "repository": "https://github.com/loomnetwork/loom-js-samples.git", 7 | "author": "Loom Network ", 8 | "license": "BSD-3-Clause", 9 | "private": false, 10 | "scripts": { 11 | "start": "node index.js", 12 | "proto": "protoc --js_out=\"import_style=commonjs,binary:.\" helloworld.proto" 13 | }, 14 | "dependencies": { 15 | "loom-js": "^1.4.3" 16 | }, 17 | "devDependencies": { 18 | "protoc": "^1.0.3" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /quickstart/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "101@^1.0.0", "101@^1.2.0": 6 | version "1.6.3" 7 | resolved "https://registry.yarnpkg.com/101/-/101-1.6.3.tgz#9071196e60c47e4ce327075cf49c0ad79bd822fd" 8 | dependencies: 9 | clone "^1.0.2" 10 | deep-eql "^0.1.3" 11 | keypather "^1.10.2" 12 | 13 | ajv@^5.1.0: 14 | version "5.5.2" 15 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 16 | dependencies: 17 | co "^4.6.0" 18 | fast-deep-equal "^1.0.0" 19 | fast-json-stable-stringify "^2.0.0" 20 | json-schema-traverse "^0.3.0" 21 | 22 | asn1.js@^4.0.0: 23 | version "4.10.1" 24 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" 25 | dependencies: 26 | bn.js "^4.0.0" 27 | inherits "^2.0.1" 28 | minimalistic-assert "^1.0.0" 29 | 30 | asn1@~0.2.3: 31 | version "0.2.3" 32 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 33 | 34 | assert-args@^1.2.1: 35 | version "1.2.1" 36 | resolved "https://registry.yarnpkg.com/assert-args/-/assert-args-1.2.1.tgz#404103a1452a32fe77898811e54e590a8a9373bd" 37 | dependencies: 38 | "101" "^1.2.0" 39 | compound-subject "0.0.1" 40 | debug "^2.2.0" 41 | get-prototype-of "0.0.0" 42 | is-capitalized "^1.0.0" 43 | is-class "0.0.4" 44 | 45 | assert-plus@1.0.0, assert-plus@^1.0.0: 46 | version "1.0.0" 47 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 48 | 49 | async-limiter@~1.0.0: 50 | version "1.0.0" 51 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 52 | 53 | asynckit@^0.4.0: 54 | version "0.4.0" 55 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 56 | 57 | aws-sign2@~0.7.0: 58 | version "0.7.0" 59 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 60 | 61 | aws4@^1.6.0: 62 | version "1.7.0" 63 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" 64 | 65 | babel-runtime@^6.26.0: 66 | version "6.26.0" 67 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 68 | dependencies: 69 | core-js "^2.4.0" 70 | regenerator-runtime "^0.11.0" 71 | 72 | balanced-match@^1.0.0: 73 | version "1.0.0" 74 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 75 | 76 | bcrypt-pbkdf@^1.0.0: 77 | version "1.0.1" 78 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 79 | dependencies: 80 | tweetnacl "^0.14.3" 81 | 82 | "binary@>= 0.3.0 < 1": 83 | version "0.3.0" 84 | resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" 85 | dependencies: 86 | buffers "~0.1.1" 87 | chainsaw "~0.1.0" 88 | 89 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: 90 | version "4.11.8" 91 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 92 | 93 | boom@4.x.x: 94 | version "4.3.1" 95 | resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" 96 | dependencies: 97 | hoek "4.x.x" 98 | 99 | boom@5.x.x: 100 | version "5.2.0" 101 | resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" 102 | dependencies: 103 | hoek "4.x.x" 104 | 105 | brace-expansion@^1.1.7: 106 | version "1.1.11" 107 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 108 | dependencies: 109 | balanced-match "^1.0.0" 110 | concat-map "0.0.1" 111 | 112 | brorand@^1.0.1: 113 | version "1.1.0" 114 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 115 | 116 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 117 | version "1.2.0" 118 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 119 | dependencies: 120 | buffer-xor "^1.0.3" 121 | cipher-base "^1.0.0" 122 | create-hash "^1.1.0" 123 | evp_bytestokey "^1.0.3" 124 | inherits "^2.0.1" 125 | safe-buffer "^5.0.1" 126 | 127 | browserify-cipher@^1.0.0: 128 | version "1.0.1" 129 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 130 | dependencies: 131 | browserify-aes "^1.0.4" 132 | browserify-des "^1.0.0" 133 | evp_bytestokey "^1.0.0" 134 | 135 | browserify-des@^1.0.0: 136 | version "1.0.1" 137 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" 138 | dependencies: 139 | cipher-base "^1.0.1" 140 | des.js "^1.0.0" 141 | inherits "^2.0.1" 142 | 143 | browserify-rsa@^4.0.0: 144 | version "4.0.1" 145 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 146 | dependencies: 147 | bn.js "^4.1.0" 148 | randombytes "^2.0.1" 149 | 150 | browserify-sign@^4.0.0: 151 | version "4.0.4" 152 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" 153 | dependencies: 154 | bn.js "^4.1.1" 155 | browserify-rsa "^4.0.0" 156 | create-hash "^1.1.0" 157 | create-hmac "^1.1.2" 158 | elliptic "^6.0.0" 159 | inherits "^2.0.1" 160 | parse-asn1 "^5.0.0" 161 | 162 | buffer-xor@^1.0.3: 163 | version "1.0.3" 164 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 165 | 166 | buffers@~0.1.1: 167 | version "0.1.1" 168 | resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" 169 | 170 | caseless@~0.12.0: 171 | version "0.12.0" 172 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 173 | 174 | chainsaw@~0.1.0: 175 | version "0.1.0" 176 | resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" 177 | dependencies: 178 | traverse ">=0.3.0 <0.4" 179 | 180 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 181 | version "1.0.4" 182 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 183 | dependencies: 184 | inherits "^2.0.1" 185 | safe-buffer "^5.0.1" 186 | 187 | circular-json@^0.5.4: 188 | version "0.5.4" 189 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.4.tgz#ff1ad2f2e392eeb8a5172d4d985fa846ed8ad656" 190 | 191 | clone-buffer@^1.0.0: 192 | version "1.0.0" 193 | resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" 194 | 195 | clone-stats@^1.0.0: 196 | version "1.0.0" 197 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" 198 | 199 | clone@^1.0.2: 200 | version "1.0.4" 201 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 202 | 203 | clone@^2.1.1: 204 | version "2.1.1" 205 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" 206 | 207 | cloneable-readable@^1.0.0: 208 | version "1.1.2" 209 | resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" 210 | dependencies: 211 | inherits "^2.0.1" 212 | process-nextick-args "^2.0.0" 213 | readable-stream "^2.3.5" 214 | 215 | co@^4.6.0: 216 | version "4.6.0" 217 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 218 | 219 | combined-stream@1.0.6, combined-stream@~1.0.5: 220 | version "1.0.6" 221 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 222 | dependencies: 223 | delayed-stream "~1.0.0" 224 | 225 | compound-subject@0.0.1: 226 | version "0.0.1" 227 | resolved "https://registry.yarnpkg.com/compound-subject/-/compound-subject-0.0.1.tgz#271554698a15ae608b1dfcafd30b7ba1ea892c4b" 228 | 229 | concat-map@0.0.1: 230 | version "0.0.1" 231 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 232 | 233 | core-js@^2.4.0: 234 | version "2.5.6" 235 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d" 236 | 237 | core-util-is@1.0.2, core-util-is@~1.0.0: 238 | version "1.0.2" 239 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 240 | 241 | create-ecdh@^4.0.0: 242 | version "4.0.3" 243 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" 244 | dependencies: 245 | bn.js "^4.1.0" 246 | elliptic "^6.0.0" 247 | 248 | create-hash@^1.1.0, create-hash@^1.1.2: 249 | version "1.2.0" 250 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 251 | dependencies: 252 | cipher-base "^1.0.1" 253 | inherits "^2.0.1" 254 | md5.js "^1.3.4" 255 | ripemd160 "^2.0.1" 256 | sha.js "^2.4.0" 257 | 258 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: 259 | version "1.1.7" 260 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 261 | dependencies: 262 | cipher-base "^1.0.3" 263 | create-hash "^1.1.0" 264 | inherits "^2.0.1" 265 | ripemd160 "^2.0.0" 266 | safe-buffer "^5.0.1" 267 | sha.js "^2.4.8" 268 | 269 | cryptiles@3.x.x: 270 | version "3.1.2" 271 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" 272 | dependencies: 273 | boom "5.x.x" 274 | 275 | crypto-browserify@^3.12.0: 276 | version "3.12.0" 277 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 278 | dependencies: 279 | browserify-cipher "^1.0.0" 280 | browserify-sign "^4.0.0" 281 | create-ecdh "^4.0.0" 282 | create-hash "^1.1.0" 283 | create-hmac "^1.1.0" 284 | diffie-hellman "^5.0.0" 285 | inherits "^2.0.1" 286 | pbkdf2 "^3.0.3" 287 | public-encrypt "^4.0.0" 288 | randombytes "^2.0.0" 289 | randomfill "^1.0.3" 290 | 291 | dashdash@^1.12.0: 292 | version "1.14.1" 293 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 294 | dependencies: 295 | assert-plus "^1.0.0" 296 | 297 | debug@^2.2.0: 298 | version "2.6.9" 299 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 300 | dependencies: 301 | ms "2.0.0" 302 | 303 | deep-eql@^0.1.3: 304 | version "0.1.3" 305 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" 306 | dependencies: 307 | type-detect "0.1.1" 308 | 309 | delayed-stream@~1.0.0: 310 | version "1.0.0" 311 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 312 | 313 | des.js@^1.0.0: 314 | version "1.0.0" 315 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" 316 | dependencies: 317 | inherits "^2.0.1" 318 | minimalistic-assert "^1.0.0" 319 | 320 | diffie-hellman@^5.0.0: 321 | version "5.0.3" 322 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 323 | dependencies: 324 | bn.js "^4.1.0" 325 | miller-rabin "^4.0.0" 326 | randombytes "^2.0.0" 327 | 328 | ecc-jsbn@~0.1.1: 329 | version "0.1.1" 330 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 331 | dependencies: 332 | jsbn "~0.1.0" 333 | 334 | elliptic@^6.0.0: 335 | version "6.4.0" 336 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" 337 | dependencies: 338 | bn.js "^4.4.0" 339 | brorand "^1.0.1" 340 | hash.js "^1.0.0" 341 | hmac-drbg "^1.0.0" 342 | inherits "^2.0.1" 343 | minimalistic-assert "^1.0.0" 344 | minimalistic-crypto-utils "^1.0.0" 345 | 346 | eventemitter3@^3.1.0: 347 | version "3.1.0" 348 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" 349 | 350 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 351 | version "1.0.3" 352 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 353 | dependencies: 354 | md5.js "^1.3.4" 355 | safe-buffer "^5.1.1" 356 | 357 | extend@~3.0.1: 358 | version "3.0.1" 359 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 360 | 361 | extsprintf@1.3.0: 362 | version "1.3.0" 363 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 364 | 365 | extsprintf@^1.2.0: 366 | version "1.4.0" 367 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 368 | 369 | fast-deep-equal@^1.0.0: 370 | version "1.1.0" 371 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 372 | 373 | fast-json-stable-stringify@^2.0.0: 374 | version "2.0.0" 375 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 376 | 377 | forever-agent@~0.6.1: 378 | version "0.6.1" 379 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 380 | 381 | form-data@~2.3.1: 382 | version "2.3.2" 383 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 384 | dependencies: 385 | asynckit "^0.4.0" 386 | combined-stream "1.0.6" 387 | mime-types "^2.1.12" 388 | 389 | fs.realpath@^1.0.0: 390 | version "1.0.0" 391 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 392 | 393 | "fstream@>= 0.1.30 < 1": 394 | version "0.1.31" 395 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988" 396 | dependencies: 397 | graceful-fs "~3.0.2" 398 | inherits "~2.0.0" 399 | mkdirp "0.5" 400 | rimraf "2" 401 | 402 | get-prototype-of@0.0.0: 403 | version "0.0.0" 404 | resolved "https://registry.yarnpkg.com/get-prototype-of/-/get-prototype-of-0.0.0.tgz#98772bd10716d16deb4b322516c469efca28ac44" 405 | 406 | getpass@^0.1.1: 407 | version "0.1.7" 408 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 409 | dependencies: 410 | assert-plus "^1.0.0" 411 | 412 | glob@^7.0.5, glob@^7.1.1: 413 | version "7.1.2" 414 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 415 | dependencies: 416 | fs.realpath "^1.0.0" 417 | inflight "^1.0.4" 418 | inherits "2" 419 | minimatch "^3.0.4" 420 | once "^1.3.0" 421 | path-is-absolute "^1.0.0" 422 | 423 | google-protobuf@^3.5.0: 424 | version "3.5.0" 425 | resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.5.0.tgz#b8cc63c74d83457bd8a9a904503c8efb26bca339" 426 | 427 | graceful-fs@~3.0.2: 428 | version "3.0.11" 429 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" 430 | dependencies: 431 | natives "^1.1.0" 432 | 433 | har-schema@^2.0.0: 434 | version "2.0.0" 435 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 436 | 437 | har-validator@~5.0.3: 438 | version "5.0.3" 439 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 440 | dependencies: 441 | ajv "^5.1.0" 442 | har-schema "^2.0.0" 443 | 444 | hash-base@^3.0.0: 445 | version "3.0.4" 446 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" 447 | dependencies: 448 | inherits "^2.0.1" 449 | safe-buffer "^5.0.1" 450 | 451 | hash.js@^1.0.0, hash.js@^1.0.3: 452 | version "1.1.3" 453 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" 454 | dependencies: 455 | inherits "^2.0.3" 456 | minimalistic-assert "^1.0.0" 457 | 458 | hawk@~6.0.2: 459 | version "6.0.2" 460 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" 461 | dependencies: 462 | boom "4.x.x" 463 | cryptiles "3.x.x" 464 | hoek "4.x.x" 465 | sntp "2.x.x" 466 | 467 | hmac-drbg@^1.0.0: 468 | version "1.0.1" 469 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 470 | dependencies: 471 | hash.js "^1.0.3" 472 | minimalistic-assert "^1.0.0" 473 | minimalistic-crypto-utils "^1.0.1" 474 | 475 | hoek@4.x.x: 476 | version "4.2.1" 477 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" 478 | 479 | http-signature@~1.2.0: 480 | version "1.2.0" 481 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 482 | dependencies: 483 | assert-plus "^1.0.0" 484 | jsprim "^1.2.2" 485 | sshpk "^1.7.0" 486 | 487 | inflight@^1.0.4: 488 | version "1.0.6" 489 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 490 | dependencies: 491 | once "^1.3.0" 492 | wrappy "1" 493 | 494 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: 495 | version "2.0.3" 496 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 497 | 498 | is-capitalized@^1.0.0: 499 | version "1.0.0" 500 | resolved "https://registry.yarnpkg.com/is-capitalized/-/is-capitalized-1.0.0.tgz#4c8464b4d91d3e4eeb44889dd2cd8f1b0ac4c136" 501 | 502 | is-class@0.0.4: 503 | version "0.0.4" 504 | resolved "https://registry.yarnpkg.com/is-class/-/is-class-0.0.4.tgz#e057451705bb34e39e3e33598c93a9837296b736" 505 | 506 | is-typedarray@~1.0.0: 507 | version "1.0.0" 508 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 509 | 510 | isarray@0.0.1: 511 | version "0.0.1" 512 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 513 | 514 | isarray@~1.0.0: 515 | version "1.0.0" 516 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 517 | 518 | isstream@~0.1.2: 519 | version "0.1.2" 520 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 521 | 522 | jsbn@~0.1.0: 523 | version "0.1.1" 524 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 525 | 526 | json-schema-traverse@^0.3.0: 527 | version "0.3.1" 528 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 529 | 530 | json-schema@0.2.3: 531 | version "0.2.3" 532 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 533 | 534 | json-stringify-safe@~5.0.1: 535 | version "5.0.1" 536 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 537 | 538 | jsprim@^1.2.2: 539 | version "1.4.1" 540 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 541 | dependencies: 542 | assert-plus "1.0.0" 543 | extsprintf "1.3.0" 544 | json-schema "0.2.3" 545 | verror "1.10.0" 546 | 547 | keypather@^1.10.2: 548 | version "1.10.2" 549 | resolved "https://registry.yarnpkg.com/keypather/-/keypather-1.10.2.tgz#e0449632d4b3e516f21cc014ce7c5644fddce614" 550 | dependencies: 551 | "101" "^1.0.0" 552 | 553 | loom-js@^1.4.3: 554 | version "1.4.3" 555 | resolved "https://registry.yarnpkg.com/loom-js/-/loom-js-1.4.3.tgz#80c6cdbc15861a87414e3575e79066bced121702" 556 | dependencies: 557 | crypto-browserify "^3.12.0" 558 | google-protobuf "^3.5.0" 559 | retry "^0.12.0" 560 | ripemd160 "^2.0.1" 561 | rpc-websockets "^4.1.1" 562 | tweetnacl "^1.0.0" 563 | 564 | "match-stream@>= 0.0.2 < 1": 565 | version "0.0.2" 566 | resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf" 567 | dependencies: 568 | buffers "~0.1.1" 569 | readable-stream "~1.0.0" 570 | 571 | md5.js@^1.3.4: 572 | version "1.3.4" 573 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" 574 | dependencies: 575 | hash-base "^3.0.0" 576 | inherits "^2.0.1" 577 | 578 | miller-rabin@^4.0.0: 579 | version "4.0.1" 580 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 581 | dependencies: 582 | bn.js "^4.0.0" 583 | brorand "^1.0.1" 584 | 585 | mime-db@~1.33.0: 586 | version "1.33.0" 587 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 588 | 589 | mime-types@^2.1.12, mime-types@~2.1.17: 590 | version "2.1.18" 591 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 592 | dependencies: 593 | mime-db "~1.33.0" 594 | 595 | minimalistic-assert@^1.0.0: 596 | version "1.0.1" 597 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 598 | 599 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: 600 | version "1.0.1" 601 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 602 | 603 | minimatch@^3.0.4: 604 | version "3.0.4" 605 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 606 | dependencies: 607 | brace-expansion "^1.1.7" 608 | 609 | minimist@0.0.8: 610 | version "0.0.8" 611 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 612 | 613 | mkdirp@0.5, mkdirp@^0.5.1: 614 | version "0.5.1" 615 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 616 | dependencies: 617 | minimist "0.0.8" 618 | 619 | ms@2.0.0: 620 | version "2.0.0" 621 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 622 | 623 | natives@^1.1.0: 624 | version "1.1.3" 625 | resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.3.tgz#44a579be64507ea2d6ed1ca04a9415915cf75558" 626 | 627 | node-uuid@^1.4.7: 628 | version "1.4.8" 629 | resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" 630 | 631 | oauth-sign@~0.8.2: 632 | version "0.8.2" 633 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 634 | 635 | once@^1.3.0: 636 | version "1.4.0" 637 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 638 | dependencies: 639 | wrappy "1" 640 | 641 | "over@>= 0.0.5 < 1": 642 | version "0.0.5" 643 | resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708" 644 | 645 | parse-asn1@^5.0.0: 646 | version "5.1.1" 647 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" 648 | dependencies: 649 | asn1.js "^4.0.0" 650 | browserify-aes "^1.0.0" 651 | create-hash "^1.1.0" 652 | evp_bytestokey "^1.0.0" 653 | pbkdf2 "^3.0.3" 654 | 655 | path-is-absolute@^1.0.0: 656 | version "1.0.1" 657 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 658 | 659 | pbkdf2@^3.0.3: 660 | version "3.0.16" 661 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" 662 | dependencies: 663 | create-hash "^1.1.2" 664 | create-hmac "^1.1.4" 665 | ripemd160 "^2.0.1" 666 | safe-buffer "^5.0.1" 667 | sha.js "^2.4.8" 668 | 669 | performance-now@^2.1.0: 670 | version "2.1.0" 671 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 672 | 673 | process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: 674 | version "2.0.0" 675 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 676 | 677 | protoc@^1.0.3: 678 | version "1.0.3" 679 | resolved "https://registry.yarnpkg.com/protoc/-/protoc-1.0.3.tgz#56ff9e7898f534e4031f3d686865c36d5ab5d499" 680 | dependencies: 681 | glob "^7.1.1" 682 | mkdirp "^0.5.1" 683 | node-uuid "^1.4.7" 684 | request "^2.79.0" 685 | rimraf "^2.5.4" 686 | unzip "^0.1.11" 687 | vinyl "^2.0.1" 688 | 689 | public-encrypt@^4.0.0: 690 | version "4.0.2" 691 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" 692 | dependencies: 693 | bn.js "^4.1.0" 694 | browserify-rsa "^4.0.0" 695 | create-hash "^1.1.0" 696 | parse-asn1 "^5.0.0" 697 | randombytes "^2.0.1" 698 | 699 | "pullstream@>= 0.4.1 < 1": 700 | version "0.4.1" 701 | resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314" 702 | dependencies: 703 | over ">= 0.0.5 < 1" 704 | readable-stream "~1.0.31" 705 | setimmediate ">= 1.0.2 < 2" 706 | slice-stream ">= 1.0.0 < 2" 707 | 708 | punycode@^1.4.1: 709 | version "1.4.1" 710 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 711 | 712 | qs@~6.5.1: 713 | version "6.5.2" 714 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 715 | 716 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 717 | version "2.0.6" 718 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" 719 | dependencies: 720 | safe-buffer "^5.1.0" 721 | 722 | randomfill@^1.0.3: 723 | version "1.0.4" 724 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 725 | dependencies: 726 | randombytes "^2.0.5" 727 | safe-buffer "^5.1.0" 728 | 729 | readable-stream@^2.3.5: 730 | version "2.3.6" 731 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 732 | dependencies: 733 | core-util-is "~1.0.0" 734 | inherits "~2.0.3" 735 | isarray "~1.0.0" 736 | process-nextick-args "~2.0.0" 737 | safe-buffer "~5.1.1" 738 | string_decoder "~1.1.1" 739 | util-deprecate "~1.0.1" 740 | 741 | readable-stream@~1.0.0, readable-stream@~1.0.31: 742 | version "1.0.34" 743 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" 744 | dependencies: 745 | core-util-is "~1.0.0" 746 | inherits "~2.0.1" 747 | isarray "0.0.1" 748 | string_decoder "~0.10.x" 749 | 750 | regenerator-runtime@^0.11.0: 751 | version "0.11.1" 752 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 753 | 754 | remove-trailing-separator@^1.0.1: 755 | version "1.1.0" 756 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 757 | 758 | replace-ext@^1.0.0: 759 | version "1.0.0" 760 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" 761 | 762 | request@^2.79.0: 763 | version "2.86.0" 764 | resolved "https://registry.yarnpkg.com/request/-/request-2.86.0.tgz#2b9497f449b0a32654c081a5cf426bbfb5bf5b69" 765 | dependencies: 766 | aws-sign2 "~0.7.0" 767 | aws4 "^1.6.0" 768 | caseless "~0.12.0" 769 | combined-stream "~1.0.5" 770 | extend "~3.0.1" 771 | forever-agent "~0.6.1" 772 | form-data "~2.3.1" 773 | har-validator "~5.0.3" 774 | hawk "~6.0.2" 775 | http-signature "~1.2.0" 776 | is-typedarray "~1.0.0" 777 | isstream "~0.1.2" 778 | json-stringify-safe "~5.0.1" 779 | mime-types "~2.1.17" 780 | oauth-sign "~0.8.2" 781 | performance-now "^2.1.0" 782 | qs "~6.5.1" 783 | safe-buffer "^5.1.1" 784 | tough-cookie "~2.3.3" 785 | tunnel-agent "^0.6.0" 786 | uuid "^3.1.0" 787 | 788 | retry@^0.12.0: 789 | version "0.12.0" 790 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" 791 | 792 | rimraf@2, rimraf@^2.5.4: 793 | version "2.6.2" 794 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 795 | dependencies: 796 | glob "^7.0.5" 797 | 798 | ripemd160@^2.0.0, ripemd160@^2.0.1: 799 | version "2.0.2" 800 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 801 | dependencies: 802 | hash-base "^3.0.0" 803 | inherits "^2.0.1" 804 | 805 | rpc-websockets@^4.1.1: 806 | version "4.1.1" 807 | resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-4.1.1.tgz#e20228658ba792848957ee4aa1b57ef2828b4165" 808 | dependencies: 809 | assert-args "^1.2.1" 810 | babel-runtime "^6.26.0" 811 | circular-json "^0.5.4" 812 | eventemitter3 "^3.1.0" 813 | uuid "^3.2.1" 814 | ws "^5.1.1" 815 | 816 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 817 | version "5.1.2" 818 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 819 | 820 | "setimmediate@>= 1.0.1 < 2", "setimmediate@>= 1.0.2 < 2": 821 | version "1.0.5" 822 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 823 | 824 | sha.js@^2.4.0, sha.js@^2.4.8: 825 | version "2.4.11" 826 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 827 | dependencies: 828 | inherits "^2.0.1" 829 | safe-buffer "^5.0.1" 830 | 831 | "slice-stream@>= 1.0.0 < 2": 832 | version "1.0.0" 833 | resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0" 834 | dependencies: 835 | readable-stream "~1.0.31" 836 | 837 | sntp@2.x.x: 838 | version "2.1.0" 839 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" 840 | dependencies: 841 | hoek "4.x.x" 842 | 843 | sshpk@^1.7.0: 844 | version "1.14.1" 845 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" 846 | dependencies: 847 | asn1 "~0.2.3" 848 | assert-plus "^1.0.0" 849 | dashdash "^1.12.0" 850 | getpass "^0.1.1" 851 | optionalDependencies: 852 | bcrypt-pbkdf "^1.0.0" 853 | ecc-jsbn "~0.1.1" 854 | jsbn "~0.1.0" 855 | tweetnacl "~0.14.0" 856 | 857 | string_decoder@~0.10.x: 858 | version "0.10.31" 859 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 860 | 861 | string_decoder@~1.1.1: 862 | version "1.1.1" 863 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 864 | dependencies: 865 | safe-buffer "~5.1.0" 866 | 867 | tough-cookie@~2.3.3: 868 | version "2.3.4" 869 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" 870 | dependencies: 871 | punycode "^1.4.1" 872 | 873 | "traverse@>=0.3.0 <0.4": 874 | version "0.3.9" 875 | resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" 876 | 877 | tunnel-agent@^0.6.0: 878 | version "0.6.0" 879 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 880 | dependencies: 881 | safe-buffer "^5.0.1" 882 | 883 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 884 | version "0.14.5" 885 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 886 | 887 | tweetnacl@^1.0.0: 888 | version "1.0.0" 889 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.0.tgz#713d8b818da42068740bf68386d0479e66fc8a7b" 890 | 891 | type-detect@0.1.1: 892 | version "0.1.1" 893 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" 894 | 895 | unzip@^0.1.11: 896 | version "0.1.11" 897 | resolved "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz#89749c63b058d7d90d619f86b98aa1535d3b97f0" 898 | dependencies: 899 | binary ">= 0.3.0 < 1" 900 | fstream ">= 0.1.30 < 1" 901 | match-stream ">= 0.0.2 < 1" 902 | pullstream ">= 0.4.1 < 1" 903 | readable-stream "~1.0.31" 904 | setimmediate ">= 1.0.1 < 2" 905 | 906 | util-deprecate@~1.0.1: 907 | version "1.0.2" 908 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 909 | 910 | uuid@^3.1.0, uuid@^3.2.1: 911 | version "3.2.1" 912 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 913 | 914 | verror@1.10.0: 915 | version "1.10.0" 916 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 917 | dependencies: 918 | assert-plus "^1.0.0" 919 | core-util-is "1.0.2" 920 | extsprintf "^1.2.0" 921 | 922 | vinyl@^2.0.1: 923 | version "2.1.0" 924 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" 925 | dependencies: 926 | clone "^2.1.1" 927 | clone-buffer "^1.0.0" 928 | clone-stats "^1.0.0" 929 | cloneable-readable "^1.0.0" 930 | remove-trailing-separator "^1.0.1" 931 | replace-ext "^1.0.0" 932 | 933 | wrappy@1: 934 | version "1.0.2" 935 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 936 | 937 | ws@^5.1.1: 938 | version "5.2.0" 939 | resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.0.tgz#9fd95e3ac7c76f6ae8bcc868a0e3f11f1290c33e" 940 | dependencies: 941 | async-limiter "~1.0.0" 942 | --------------------------------------------------------------------------------