From d6bf8d1ae6f7c3f8926f3c67c96776684667c443 Mon Sep 17 00:00:00 2001 From: Jesse Andrews Date: Tue, 14 Jan 2020 13:38:52 -0800 Subject: [PATCH] Update chat example to work with latest hypermerge - switch to yarn from npm (conformity with repo) - switch from JS to typescript - small tweaks to message datastructure (making it closer to pushpin) --- examples/chat/channel.js | 93 -- examples/chat/package-lock.json | 824 ------------ examples/chat/package.json | 27 +- examples/chat/src/channel.ts | 84 ++ examples/chat/{chat.js => src/chat.ts} | 14 +- examples/chat/src/diffy.d.ts | 22 + examples/chat/src/ui.ts | 66 + examples/chat/ui.js | 56 - examples/chat/yarn.lock | 1599 +++++++++++++++++++----- 9 files changed, 1466 insertions(+), 1319 deletions(-) delete mode 100755 examples/chat/channel.js delete mode 100644 examples/chat/package-lock.json create mode 100755 examples/chat/src/channel.ts rename examples/chat/{chat.js => src/chat.ts} (62%) create mode 100644 examples/chat/src/diffy.d.ts create mode 100755 examples/chat/src/ui.ts delete mode 100755 examples/chat/ui.js diff --git a/examples/chat/channel.js b/examples/chat/channel.js deleted file mode 100755 index 39c09e7..0000000 --- a/examples/chat/channel.js +++ /dev/null @@ -1,93 +0,0 @@ -const ram = require('random-access-memory') -const Hypermerge = require('hypermerge') -const {EventEmitter} = require('events') - -// It's normal for a chat channel with a lot of participants -// to have a lot of connections, so increase the limit to -// avoid warnings about emitter leaks -EventEmitter.prototype._maxListeners = 100 - -module.exports = class Channel extends EventEmitter { - constructor ({channelKey, nick}) { - super() - this.channelKey = channelKey - this.nick = nick - this.hm = new Hypermerge({path: ram}) - this.hm.once('ready', this.setup.bind(this)) - } - - /** - * Either create a new channel or join an existing one - */ - setup (hm) { - hm.joinSwarm() // Fire up the network - - if (!this.channelKey) { - // We're starting a new channel here, so first - // initialize the new channel document data structure. - hm.create() - hm.once('document:ready', (docId, doc) => { - this.channelKey = docId - this.doc = hm.change(doc, changeDoc => { - changeDoc.messages = {} - }) - this.ready(this.doc) - }) - } else { - console.log('Searching for chat channel on network...') - hm.open(this.channelKey) - hm.once('document:ready', (docId, doc) => { this.ready(doc) }) - } - } - - /** - * Everything is setup, send an event to signal the UI to - * start, and setup listeners to watch for remote document updates. - */ - ready (doc) { - this.doc = doc - this.joinChannel() - this.emit('ready', this) - - // We merge any new documents that arrive due to events, - // but we don't update our hypercores - this.hm.on('document:updated', (docId, doc) => { - this.doc = doc - this.emit('updated', this) - }) - } - - /** - * Post a chat message announcing someone has joined - */ - joinChannel () { - this.doc = this.hm.change(this.doc, changeDoc => { - changeDoc.messages[Date.now()] = { - nick: this.nick, - joined: true - } - }) - } - - /** - * Called from the UI whenever somebody posts a message - */ - addMessageToDoc (line) { - const message = line.trim() - if (message.length === 0) return this.doc - this.doc = this.hm.change(this.doc, changeDoc => { - changeDoc.messages[Date.now()] = { - nick: this.nick, - message: line - } - }) - return this.doc - } - - /** - * Getter to return the number of connections for the UI - */ - getNumConnections () { - return this.hm.swarm.connections.length - } -} diff --git a/examples/chat/package-lock.json b/examples/chat/package-lock.json deleted file mode 100644 index ca167de..0000000 --- a/examples/chat/package-lock.json +++ /dev/null @@ -1,824 +0,0 @@ -{ - "name": "hm-chat", - "version": "1.0.6", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "ansi-diff": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ansi-diff/-/ansi-diff-1.0.10.tgz", - "integrity": "sha512-pgsU9HUWzN2JqNBcuhn5vIDtSwfKetdjy6EQl3UsTRluyIL3S2tINgFZO8SERS13uB0/5/stxf5pVCNLcSW99w==", - "requires": { - "ansi-split": "1.0.1" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ansi-split/-/ansi-split-1.0.1.tgz", - "integrity": "sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==", - "requires": { - "ansi-regex": "3.0.0" - } - }, - "array-lru": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-lru/-/array-lru-1.1.1.tgz", - "integrity": "sha1-DH4bTgIq4Wb/HoRIxZXzGB/NMzc=" - }, - "atomic-batcher": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/atomic-batcher/-/atomic-batcher-1.0.2.tgz", - "integrity": "sha1-0WkB0QzOxZUWwZe5zNiTBom4E7Q=" - }, - "automerge": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/automerge/-/automerge-0.7.0.tgz", - "integrity": "sha512-rz69c6c9wIb4GsMHHUliBv/E7aqqkKDqN8urIkYI+T2/Aaql6cBfzdl2iO7mhNAfW/TKRgvkCrSnG+4WrqcpJA==", - "requires": { - "immutable": "3.8.2", - "transit-immutable-js": "0.7.0", - "transit-js": "0.8.846", - "uuid": "3.2.1" - } - }, - "bencode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bencode/-/bencode-1.0.0.tgz", - "integrity": "sha512-N+VOSP5MkoX+xgnp6Y056iCY5TmCZg9rgPNPQe0bIiXchxYFP4vs/Tf0dTdQ+qQhP7HM2gvfFq+sUVjQsGy5Zw==", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "bitfield-rle": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bitfield-rle/-/bitfield-rle-2.1.0.tgz", - "integrity": "sha1-rinpOCp7pImN6fSLsj/TOMT73Pg=", - "requires": { - "varint": "4.0.1" - } - }, - "bittorrent-dht": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-7.10.0.tgz", - "integrity": "sha512-fvb6M58Ceiv/S94nu6zeaiMoJvUYOeIqRbgaClm+kJTzCAqJPtAR/31pXNYB5iEReOoKqQB5zY33gY0W6ZRWQQ==", - "requires": { - "bencode": "1.0.0", - "buffer-equals": "1.0.4", - "debug": "3.1.0", - "inherits": "2.0.3", - "k-bucket": "3.3.1", - "k-rpc": "4.2.1", - "lru": "3.1.0", - "randombytes": "2.0.6", - "safe-buffer": "5.1.1", - "simple-sha1": "2.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "blake2b": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.2.tgz", - "integrity": "sha1-aIDt3KNc/t6SxPsnJCITNPmJFFo=", - "requires": { - "blake2b-wasm": "1.1.7", - "nanoassert": "1.1.0" - } - }, - "blake2b-wasm": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-1.1.7.tgz", - "integrity": "sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA==", - "requires": { - "nanoassert": "1.1.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.0.0.tgz", - "integrity": "sha1-R0qojzTnvHX6MR0uZFdAnFhGw/4=" - }, - "buffer-equals": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", - "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "bulk-write-stream": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bulk-write-stream/-/bulk-write-stream-1.1.3.tgz", - "integrity": "sha1-0pyjhfvVPzV67lvT0wKHMrYq4nU=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.4" - } - }, - "codecs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/codecs/-/codecs-1.2.0.tgz", - "integrity": "sha1-UUhUnj0VbF+gU9fLtBlxWgz0PRY=" - }, - "connections": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/connections/-/connections-1.4.2.tgz", - "integrity": "sha1-eJBIK/XHGvbFyhkr4xNq7XRCiq0=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "datland-swarm-defaults": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/datland-swarm-defaults/-/datland-swarm-defaults-1.0.2.tgz", - "integrity": "sha1-J3uJWjnxqn+WpJWgL7NmKl7Z8uA=", - "requires": { - "xtend": "4.0.1" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "diffy": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/diffy/-/diffy-1.3.1.tgz", - "integrity": "sha512-+hxizoBu7feA5SKrZRftzJXJi7ZtM04BFSL01TinlS3jcxCbrE1yWTGEzzbUjxtS6SJTsvvMUmFk6lAP8rk56A==", - "requires": { - "ansi-diff": "1.0.10", - "neat-input": "1.6.0" - } - }, - "discovery-channel": { - "version": "5.4.7", - "resolved": "https://registry.npmjs.org/discovery-channel/-/discovery-channel-5.4.7.tgz", - "integrity": "sha512-6Ohv70DEbtokwypklgHYCQFXCSeGMbMc477z4dsHPhqXKGPfXdWvWrwR38ZqFrU3qDj+F2iOnLOIY/LJbV2L2A==", - "requires": { - "bittorrent-dht": "7.10.0", - "debug": "2.6.9", - "dns-discovery": "5.6.1", - "pretty-hash": "1.0.1", - "thunky": "0.1.0" - }, - "dependencies": { - "thunky": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", - "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=" - } - } - }, - "discovery-swarm": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/discovery-swarm/-/discovery-swarm-4.4.2.tgz", - "integrity": "sha1-XTFgpGAZ5Q6HQZV2XffWAe5VqBM=", - "requires": { - "buffer-equals": "1.0.4", - "connections": "1.4.2", - "debug": "2.6.9", - "discovery-channel": "5.4.7", - "length-prefixed-message": "3.0.3", - "pump": "1.0.3", - "to-buffer": "1.1.0", - "utp-native": "1.6.2" - } - }, - "dns-discovery": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-discovery/-/dns-discovery-5.6.1.tgz", - "integrity": "sha512-r27fv3lDuZXCqmb5b04tV2aDxVbwVJaSyPzwPlOYCUbk9F7JvsY+n7EBfY2Z952bGx5TZt3SLQ+ELFjfqyLVoA==", - "requires": { - "debug": "2.6.9", - "dns-socket": "1.6.3", - "dns-txt": "2.0.2", - "lru": "2.0.1", - "minimist": "1.2.0", - "multicast-dns": "6.2.3", - "network-address": "1.1.2", - "unordered-set": "1.1.0" - }, - "dependencies": { - "lru": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lru/-/lru-2.0.1.tgz", - "integrity": "sha1-+XmHHhYuP1yiVL5GhExT1MU2RUQ=", - "requires": { - "inherits": "2.0.3" - } - }, - "unordered-set": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unordered-set/-/unordered-set-1.1.0.tgz", - "integrity": "sha1-K6fvMW7dC5WQzFR8dPdqLxZP7Mo=" - } - } - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" - } - }, - "dns-socket": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-1.6.3.tgz", - "integrity": "sha512-/mUy3VGqIP69dAZjh2xxHXcpK9wk2Len1Dxz8mWAdrIgFC8tnR/aQAyU4a+UTXzOcTvEvGBdp1zFiwnpWKaXng==", - "requires": { - "dns-packet": "1.3.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "1.1.1" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "flat-tree": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/flat-tree/-/flat-tree-1.6.0.tgz", - "integrity": "sha1-/KMM3bkAb7ZW6168ea6ydOf96e0=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.4" - } - }, - "hypercore": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/hypercore/-/hypercore-6.12.2.tgz", - "integrity": "sha512-Ji9s1FF5IMqXjUX7vLhPVwboabZyxO+eWrE8IKaMMrJJgfV3xBqjtP45eSjowKLH7irX51keSeFTFeNdJSN6dA==", - "requires": { - "array-lru": "1.1.1", - "atomic-batcher": "1.0.2", - "bitfield-rle": "2.1.0", - "buffer-equals": "1.0.4", - "bulk-write-stream": "1.1.3", - "codecs": "1.2.0", - "flat-tree": "1.6.0", - "from2": "2.3.0", - "hypercore-protocol": "6.5.2", - "inherits": "2.0.3", - "last-one-wins": "1.0.4", - "memory-pager": "1.1.0", - "merkle-tree-stream": "3.0.3", - "process-nextick-args": "1.0.7", - "random-access-file": "2.0.1", - "sodium-universal": "2.0.0", - "sparse-bitfield": "3.0.3", - "thunky": "1.0.2", - "uint64be": "2.0.1", - "unordered-array-remove": "1.0.2", - "unordered-set": "2.0.0" - } - }, - "hypercore-archiver": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/hypercore-archiver/-/hypercore-archiver-4.4.1.tgz", - "integrity": "sha512-+LHihQ7Bu8i4U8hLAxMjWnT/tHhxzH4sLARaIG2HzbGcaY2Zyt3JlWCGuC+CLkGcQrtywFvs4qI54scOxJY8iw==", - "requires": { - "datland-swarm-defaults": "1.0.2", - "debug": "2.6.9", - "discovery-swarm": "4.4.2", - "hypercore": "6.12.2", - "hypercore-protocol": "6.5.2", - "random-access-file": "1.8.1", - "thunky": "1.0.2", - "to-buffer": "1.1.0", - "xtend": "4.0.1" - }, - "dependencies": { - "random-access-file": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-1.8.1.tgz", - "integrity": "sha512-+Uhk0Of+dWHWjpbL2hizcwSV1UomcN3S0iUGV6BTZ2Js1BP9jHx3E5CT7y0eLbqTQNkVi4iehkHmia7Mdqa47w==", - "requires": { - "buffer-alloc-unsafe": "1.0.0", - "debug": "2.6.9", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "thunky": "1.0.2" - } - } - } - }, - "hypercore-protocol": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/hypercore-protocol/-/hypercore-protocol-6.5.2.tgz", - "integrity": "sha512-wwK00Yk/YypTqHb/D7mAeIupR72zqBzB3EzLYmBkn12M/nbCY8vdeCVtJvh4K00JR2APf5kMUdwboB5S1Z5DBw==", - "requires": { - "inherits": "2.0.3", - "protocol-buffers-encodings": "1.1.0", - "readable-stream": "2.3.4", - "sodium-universal": "2.0.0", - "sorted-indexof": "1.0.0", - "varint": "5.0.0" - }, - "dependencies": { - "varint": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", - "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=" - } - } - }, - "hypermerge": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/hypermerge/-/hypermerge-0.3.1.tgz", - "integrity": "sha512-bKDnPzPg+Cfh214NPowotoW7aPT+a6WUusF2xrf3137ZQ2z2wq3QzdevR5MaJ5VoJbzZlIo4bQXzFkv0lQdnAA==", - "requires": { - "automerge": "0.7.0", - "hypercore": "6.12.2", - "hypercore-archiver": "4.4.1", - "hypercore-protocol": "6.5.2", - "thunky": "1.0.2", - "to-buffer": "1.1.0" - } - }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "optional": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "k-bucket": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-3.3.1.tgz", - "integrity": "sha512-kgwWqYT79rAahn4maIVTP8dIe+m1KulufWW+f1bB9DlZrRFiGpZ4iJOg2HUp4xJYBWONP3+rOPIWF/RXABU6mw==", - "requires": { - "buffer-equals": "1.0.4", - "inherits": "2.0.3", - "randombytes": "2.0.6" - } - }, - "k-rpc": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/k-rpc/-/k-rpc-4.2.1.tgz", - "integrity": "sha512-Ft3Yrsobne+zqz1uEyk2Vl0n5KpKROSGI6Ar270ZBmeh7MtTgtucOVeddX5fv2uITMw7cGT6hp8EpeXp4HW5rA==", - "requires": { - "buffer-equals": "1.0.4", - "k-bucket": "3.3.1", - "k-rpc-socket": "1.7.2", - "randombytes": "2.0.6", - "safe-buffer": "5.1.1" - } - }, - "k-rpc-socket": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.7.2.tgz", - "integrity": "sha512-g1FH/9Ahiy9iAfH/fwqpoaD6KgpgKRdzG++1hEuH6Lg9epAgYwG2ca37CMDgIIegyju0Ct8GO1eVaBCkAcbABQ==", - "requires": { - "bencode": "1.0.0", - "buffer-equals": "1.0.4", - "safe-buffer": "5.1.1" - } - }, - "keypress": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", - "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" - }, - "last-one-wins": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/last-one-wins/-/last-one-wins-1.0.4.tgz", - "integrity": "sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio=" - }, - "length-prefixed-message": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/length-prefixed-message/-/length-prefixed-message-3.0.3.tgz", - "integrity": "sha1-JFR01pq8BhTco2jcNaqAdJgqI6w=", - "requires": { - "varint": "3.0.1" - }, - "dependencies": { - "varint": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/varint/-/varint-3.0.1.tgz", - "integrity": "sha1-nT9T4DbAqxIACnS8LSTL8JOlgdk=" - } - } - }, - "lru": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lru/-/lru-3.1.0.tgz", - "integrity": "sha1-6n+4VG2DczOWoTCR12z+tMBoN9U=", - "requires": { - "inherits": "2.0.3" - } - }, - "memory-pager": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz", - "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==" - }, - "merkle-tree-stream": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/merkle-tree-stream/-/merkle-tree-stream-3.0.3.tgz", - "integrity": "sha1-+KBkdg0355eK1fn208EZpJT1cIE=", - "requires": { - "flat-tree": "1.6.0", - "readable-stream": "2.3.4" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" - } - }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "optional": true - }, - "nanoassert": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz", - "integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40=" - }, - "neat-input": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/neat-input/-/neat-input-1.6.0.tgz", - "integrity": "sha512-dJaltkLgdicolTE7mJbhQXg2EqKvX3howrrlrOBrlEOmkvj1RqkRkRV5iVEQhNVDzLYSfRF59B5pWLl0SFWdJg==", - "requires": { - "keypress": "0.2.1" - } - }, - "network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha1-Sqe/1D8D8LgclwKxPWqFjdsybz4=" - }, - "node-gyp-build": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.2.2.tgz", - "integrity": "sha512-t8W/0UqFGl1c+5ORA3NoT3npU+PxWBL9iPhY7ZySSTszodj3RWexmu8niayWBE0v+0DLARvOXsjaAvfmSEQOyQ==", - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "pretty-hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pretty-hash/-/pretty-hash-1.0.1.tgz", - "integrity": "sha1-FuBXkYje9WvbVliSvNBaXWUySAc=" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "prompt-sync": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/prompt-sync/-/prompt-sync-4.1.5.tgz", - "integrity": "sha1-cJrBgjiLDppKRbVoPtBEntGfPrg=" - }, - "protocol-buffers-encodings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-encodings/-/protocol-buffers-encodings-1.1.0.tgz", - "integrity": "sha512-SmjEuAf3hc3h3rWZ6V1YaaQw2MNJWK848gLJgzx/sefOJdNLujKinJVXIS0q2cBQpQn2Q32TinawZyDZPzm4kQ==", - "requires": { - "signed-varint": "2.0.1", - "varint": "5.0.0" - }, - "dependencies": { - "varint": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", - "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=" - } - } - }, - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "random-access-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-2.0.1.tgz", - "integrity": "sha512-nb4fClpzoUY+v1SHrro+9yykN90eMA1rc+xM39tnZ5R3BgFY+J/NxPZ0KuUpishEsvnwou9Fvm2wa3cjeuG7vg==", - "requires": { - "mkdirp": "0.5.1", - "random-access-storage": "1.1.1" - } - }, - "random-access-memory": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/random-access-memory/-/random-access-memory-2.4.0.tgz", - "integrity": "sha1-cvPYZbS1WiWYeUc+L7LeNWnGnuI=", - "requires": { - "process-nextick-args": "1.0.7" - } - }, - "random-access-storage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/random-access-storage/-/random-access-storage-1.1.1.tgz", - "integrity": "sha512-YQK8Qb2d2QSjIcrKb1W4szghj4cvWTCjRN6T8Fhp0+tXHHgY14EIHxY5HJhbeBAl5sMxhQ8+6guUgerJniyuWw==", - "requires": { - "inherits": "2.0.3" - } - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - } - } - }, - "rusha": { - "version": "0.8.12", - "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.12.tgz", - "integrity": "sha1-XYOM4fzosUVnTudx6q1byyV15ks=" - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "signed-varint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", - "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", - "requires": { - "varint": "5.0.0" - }, - "dependencies": { - "varint": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", - "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=" - } - } - }, - "simple-sha1": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/simple-sha1/-/simple-sha1-2.1.0.tgz", - "integrity": "sha1-lCe7lv8SY8wQqEFM7dUaGLkZ6LM=", - "requires": { - "rusha": "0.8.12" - } - }, - "siphash24": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/siphash24/-/siphash24-1.1.0.tgz", - "integrity": "sha512-nDCEEZKb6m7OxxG/5wwaLy2R+KpyLcOnGjTJlFXG+14FUmpDD1FCFV/MjsYATjShsqPkSkl1BVevI0TCehdsTw==", - "requires": { - "nanoassert": "1.1.0" - } - }, - "sodium-javascript": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/sodium-javascript/-/sodium-javascript-0.5.4.tgz", - "integrity": "sha512-YEQtgtDpDlKYGinla+F1HfZ1e3CtYCnsvJ5n2llbFFXmMDeIac4auOIkxuvt7dN9G0/ELBDAEgbzHKbEoP6GWw==", - "requires": { - "blake2b": "2.1.2", - "nanoassert": "1.1.0", - "siphash24": "1.1.0", - "xsalsa20": "1.0.2" - } - }, - "sodium-native": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-2.1.4.tgz", - "integrity": "sha512-EiCWFVWp1useIOg+S4YZOsNv16dN+2J6RI2PKDiubhyrcP/YjK5O9XswkuEZUpgL0UMZb3S+u/J1eu9iXq412g==", - "optional": true, - "requires": { - "ini": "1.3.5", - "nan": "2.8.0", - "node-gyp-build": "3.2.2" - } - }, - "sodium-universal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sodium-universal/-/sodium-universal-2.0.0.tgz", - "integrity": "sha512-csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==", - "requires": { - "sodium-javascript": "0.5.4", - "sodium-native": "2.1.4" - } - }, - "sorted-indexof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sorted-indexof/-/sorted-indexof-1.0.0.tgz", - "integrity": "sha1-F8dC/3zxh+L1mhXfm4HxemLOCJk=" - }, - "sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "requires": { - "memory-pager": "1.1.0" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - }, - "thunky": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", - "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=" - }, - "to-buffer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.0.tgz", - "integrity": "sha1-N1vAPtrlw1qPoLP+laHzmF2x3Po=" - }, - "transit-immutable-js": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/transit-immutable-js/-/transit-immutable-js-0.7.0.tgz", - "integrity": "sha1-mT4lCJtjEf9AIUD1VidtbSUwBdk=" - }, - "transit-js": { - "version": "0.8.846", - "resolved": "https://registry.npmjs.org/transit-js/-/transit-js-0.8.846.tgz", - "integrity": "sha1-duBujw5r4nZ140QhEvXJu3U0NGQ=" - }, - "uint64be": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uint64be/-/uint64be-2.0.1.tgz", - "integrity": "sha1-oxDZTk5eCwKpXWeOMzI/gCvchCg=" - }, - "unordered-array-remove": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", - "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" - }, - "unordered-set": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unordered-set/-/unordered-set-2.0.0.tgz", - "integrity": "sha1-mFon6XW6oguCY66np5HpMAlBqew=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utp-native": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/utp-native/-/utp-native-1.6.2.tgz", - "integrity": "sha512-z724NhTLcRQeBBM0W9npDpwCZvsj2veD3/NKFjKfdS5AlTr4EQRIzl85JupKNAc1PjlhjOWIzObvJrQq3FjLqg==", - "optional": true, - "requires": { - "nan": "2.8.0", - "node-gyp-build": "3.2.2", - "readable-stream": "2.3.4" - } - }, - "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" - }, - "varint": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/varint/-/varint-4.0.1.tgz", - "integrity": "sha1-SQgpuULSSEY7KzUJeZXDv3NxmOk=" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xsalsa20": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.0.2.tgz", - "integrity": "sha512-g1DFmZ5JJ9Qzvt4dMw6m9IydqoCSP381ucU5zm46Owbk3bwmqAr8eEJirOPc7PrXRn45drzOpAyDp8jsnoyXyw==" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } -} diff --git a/examples/chat/package.json b/examples/chat/package.json index 1eea327..c75fce0 100644 --- a/examples/chat/package.json +++ b/examples/chat/package.json @@ -2,17 +2,30 @@ "name": "hm-chat", "version": "1.0.8", "description": "Simple chat client using hypermerge", - "main": "./chat.js", - "bin": { - "hm-chat": "./chat.js" + "main": "dist/index.js", + "scripts": { + "chat": "ts-node src/chat.ts" }, "license": "MIT", "dependencies": { - "diffy": "^1.3.1", - "hypermerge": "^0.3.1", + "diffy": "^2.1.0", + "hypermerge": "github:automerge/hypermerge", "minimist": "^1.2.0", "prompt-sync": "^4.1.5", - "random-access-memory": "^2.4.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "5.2.0" + }, + "devDependencies": { + "@types/bs58": "^4.0.1", + "@types/node": "^12.12.6", + "@types/proper-lockfile": "^4.1.1", + "@types/tape": "^4.2.32", + "@types/uuid": "^3.4.5", + "@types/minimist": "^1.2.0", + "@types/strip-ansi": "^5.2.1", + "hyperswarm": "^2.3.1", + "prettier": "^1.19.1", + "tape": "^4.11.0", + "ts-node": "^8.3.0", + "typescript": "^3.7.2" } } diff --git a/examples/chat/src/channel.ts b/examples/chat/src/channel.ts new file mode 100755 index 0000000..e32847d --- /dev/null +++ b/examples/chat/src/channel.ts @@ -0,0 +1,84 @@ +/// + +import { Repo, DocUrl } from 'hypermerge' +import { Doc } from 'automerge' +import Hyperswarm from 'hyperswarm' +import { EventEmitter } from 'events' + +interface MyChannel { + messages: { + [time: string]: Message + } +} + +interface Message { + nick: string + joined?: boolean + content?: string +} + +class Channel extends EventEmitter { + nick: string + url: DocUrl + swarm?: any + doc?: Doc + repo: Repo + + constructor(nick: string, channelKey?: string) { + super() + + // It's normal for a chat channel with a lot of participants + // to have a lot of connections, so increase the limit to + // avoid warnings about emitter leaks + this.setMaxListeners(100) + this.nick = nick + this.swarm = Hyperswarm({ queue: { multiplex: true } }) + this.repo = new Repo({ path: this.nick, memory: true }) + this.repo.addSwarm(this.swarm, { announce: true }) + + if (!channelKey) { + this.url = this.repo.create({ messages: {} }) + } else { + console.log(`Searching for chat channel ${channelKey} on network...`) + this.url = channelKey as DocUrl + } + } + + ready() { + this.repo.watch(this.url, (state: any) => { + this.doc = state + this.emit('updated', this) + }) + + this.joinChannel() + } + + joinChannel() { + this.repo.change(this.url, (state) => { + state.messages[Date.now()] = { + nick: this.nick, + joined: true, + } + }) + + this.emit('ready') + } + + addMessageToDoc(line: string) { + const message = line.trim() + if (message.length > 0 && this.url) { + this.repo.change(this.url, (state) => { + state.messages[Date.now()] = { + nick: this.nick, + content: line, + } + }) + } + } + + getNumConnections() { + return this.swarm.peers + } +} + +export default Channel diff --git a/examples/chat/chat.js b/examples/chat/src/chat.ts similarity index 62% rename from examples/chat/chat.js rename to examples/chat/src/chat.ts index 81c6444..06e457b 100644 --- a/examples/chat/chat.js +++ b/examples/chat/src/chat.ts @@ -1,8 +1,4 @@ -#!/usr/bin/env node - -const minimist = require('minimist') -const Channel = require('./channel') -const initUI = require('./ui') +import minimist from 'minimist' const argv = minimist(process.argv.slice(2)) if (argv.help || argv._.length > 1) { @@ -18,7 +14,11 @@ if (!argv.nick) { const channelKey = argv._[0] -const channel = new Channel({channelKey, nick}) -channel.once('ready', (channel) => { +import Channel from './channel' +import initUI from './ui' + +const channel = new Channel(nick, channelKey) +channel.once('ready', () => { initUI(channel) }) +channel.ready() diff --git a/examples/chat/src/diffy.d.ts b/examples/chat/src/diffy.d.ts new file mode 100644 index 0000000..3ee6a90 --- /dev/null +++ b/examples/chat/src/diffy.d.ts @@ -0,0 +1,22 @@ +declare module 'diffy' { + export default (options?: Options) => Diffy + export interface Options { + fullscreen?: boolean + } + + export interface Diffy { + render(cb: () => string[]) + } +} + +declare module 'diffy/input' { + export default (options?: InputOptions) => DiffyInput + + export interface InputOptions { + showCursor?: boolean + } + export interface DiffyInput { + on(event: string, cb: any): void + line(): string + } +} diff --git a/examples/chat/src/ui.ts b/examples/chat/src/ui.ts new file mode 100755 index 0000000..936f8a2 --- /dev/null +++ b/examples/chat/src/ui.ts @@ -0,0 +1,66 @@ +/// + +import Channel from './channel' +import Diffy from 'diffy' +import DiffyInput from 'diffy/input' +import stripAnsi from 'strip-ansi' + +const diffy = Diffy({ fullscreen: true }) +const input = DiffyInput({ showCursor: true }) + +function initUI(channel: Channel) { + render(channel) + + input.on('enter', (line: string) => channel.addMessageToDoc(line)) + input.on('update', () => render(channel)) + channel.on('updated', (channel) => render(channel)) + + // For network connection display + setInterval(() => { + render(channel) + }, 3000) +} + +function render(channel: Channel) { + const nick = channel.nick + const url = channel.url + const doc = channel.doc + + if (doc) { + diffy.render(() => { + let output = '' + output += `Join: npx hm-chat ${url}\n` + output += `${channel.getNumConnections()} connections. ` + output += `Use Ctrl-C to exit.\n\n` + const displayMessages: string[] = [] + let { messages } = doc + Object.keys(messages) + .sort() + .forEach((key) => { + if (key === '_objectId') return + if (key === '_conflicts') return + const { nick, content, joined } = messages[key] + if (joined) { + displayMessages.push(`${nick} has joined.`) + } else { + if (content) { + displayMessages.push(`${nick}: ${content}`) + } + } + }) + // Delete old messages + const maxMessages = diffy.height - output.split('\n').length - 2 + displayMessages.splice(0, displayMessages.length - maxMessages) + displayMessages.forEach((line) => { + output += stripAnsi(line).substr(0, diffy.width - 2) + '\n' + }) + for (let i = displayMessages.length; i < maxMessages; i++) { + output += '\n' + } + output += `\n[${nick}] ${input.line()}` + return output + }) + } +} + +export default initUI diff --git a/examples/chat/ui.js b/examples/chat/ui.js deleted file mode 100755 index 44dbd5b..0000000 --- a/examples/chat/ui.js +++ /dev/null @@ -1,56 +0,0 @@ -const diffy = require('diffy')({fullscreen: true}) -const input = require('diffy/input')({showCursor: true}) -const stripAnsi = require('strip-ansi') - -function initUI (channel) { - render(channel) - input.on('update', () => { render(channel) }) - input.on('enter', line => { - channel.addMessageToDoc(line) - render(channel) - }) - channel.on('updated', channel => render(channel)) - - // For network connection display - setInterval(() => { render(channel) }, 3000) -} - -function render (channel) { - let nick = channel.nick - let channelKey = channel.channelKey - let doc = channel.doc - - diffy.render(() => { - let output = '' - output += `Join: npx hm-chat ${channelKey}\n` - output += `${channel.getNumConnections()} connections. ` - output += `Use Ctrl-C to exit.\n\n` - let displayMessages = [] - let {messages} = doc - Object.keys(messages).sort().forEach(key => { - if (key === '_objectId') return - if (key === '_conflicts') return - const {nick, message, joined} = messages[key] - if (joined) { - displayMessages.push(`${nick} has joined.`) - } else { - if (message) { - displayMessages.push(`${nick}: ${message}`) - } - } - }) - // Delete old messages - const maxMessages = diffy.height - output.split('\n').length - 2 - displayMessages.splice(0, displayMessages.length - maxMessages) - displayMessages.forEach(line => { - output += stripAnsi(line).substr(0, diffy.width - 2) + '\n' - }) - for (let i = displayMessages.length; i < maxMessages; i++) { - output += '\n' - } - output += `\n[${nick}] ${input.line()}` - return output - }) -} - -module.exports = initUI diff --git a/examples/chat/yarn.lock b/examples/chat/yarn.lock index 3187069..ee31f3e 100644 --- a/examples/chat/yarn.lock +++ b/examples/chat/yarn.lock @@ -2,628 +2,1563 @@ # yarn lockfile v1 +"@hyperswarm/dht@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@hyperswarm/dht/-/dht-3.1.1.tgz#e8fbdd188c63dd6001b68b8b894a0cc04c28dc6d" + integrity sha512-Hk4N6W6uM6lCj/38cYydfGVAu0YsJ5kCr1/FTH6e4BoMvXs8F03HKGYBNXKaTEU+dhH2sF/mCBDGPICUdpOcpw== + dependencies: + "@hyperswarm/hypersign" "^2.0.0" + dht-rpc "^4.2.0" + end-of-stream "^1.4.1" + hashlru "^2.3.0" + ipv4-peers "^2.0.0" + protocol-buffers-encodings "^1.1.0" + record-cache "^1.1.0" + sodium-universal "^2.0.0" + +"@hyperswarm/discovery@^1.1.0", "@hyperswarm/discovery@^1.6.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@hyperswarm/discovery/-/discovery-1.7.0.tgz#72492f040a7b1caa1e212070229755b972b92bc0" + integrity sha512-eXMOh+Sb7P+SdfoZxLOeRiy5SlJHOODLrfQIePfrV+mUp6LRfaG07R9osjeXq2tA7LEKATJK9TXFB56erYA1zw== + dependencies: + "@hyperswarm/dht" "^3.0.0" + multicast-dns "^7.2.0" + +"@hyperswarm/hypersign@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@hyperswarm/hypersign/-/hypersign-2.1.0.tgz#b242d2327cc82620497940a61d163fcefec477d4" + integrity sha512-iHVUYUVo8zyzysXbWQsn6Yq0jRCKj5hkeY9qNJUq7xyps2npE8oc+Yzeq3qHQ6JD+IVbT/SOzIpE6wx0DWQ2IQ== + dependencies: + sodium-universal "^2.0.0" + +"@hyperswarm/network@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hyperswarm/network/-/network-1.1.2.tgz#dfcb7ef7f3392bbf667ebeef130ea4c451d98e97" + integrity sha512-LMb29j0Hn/1tOr+u+HhgHaKAkbxeb2WRPSrJ3ZhdbxbkKLb+O9b+ewKpFMBDczk79gb0GwgfSkxhFDb5w0Hp0Q== + dependencies: + "@hyperswarm/discovery" "^1.6.0" + nanoresource "^1.0.0" + utp-native "^2.1.3" + +"@types/bs58@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/bs58/-/bs58-4.0.1.tgz#3d51222aab067786d3bc3740a84a7f5a0effaa37" + integrity sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA== + dependencies: + base-x "^3.0.6" + +"@types/minimist@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + +"@types/node@*": + version "13.1.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.1.6.tgz#076028d0b0400be8105b89a0a55550c86684ffec" + integrity sha512-Jg1F+bmxcpENHP23sVKkNuU3uaxPnsBMW0cLjleiikFKomJQbsn0Cqk2yDvQArqzZN6ABfBkZ0To7pQ8sLdWDg== + +"@types/node@^12.12.6": + version "12.12.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.24.tgz#d4606afd8cf6c609036b854360367d1b2c78931f" + integrity sha512-1Ciqv9pqwVtW6FsIUKSZNB82E5Cu1I2bBTj1xuIHXLe/1zYLl3956Nbhg2MzSYHVfl9/rmanjbQIb7LibfCnug== + +"@types/proper-lockfile@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@types/proper-lockfile/-/proper-lockfile-4.1.1.tgz#99f026cbfdbe6305bdd454ffd5fefc1bd064beb1" + integrity sha512-HAjVfDa73pFgivViHyDu8HHHcds+W4MgOuZZAdyFJrHS8ngtCXmhl4hc2YXqSOwO6Bsa+iF2Sgxb2+gv874VOQ== + dependencies: + "@types/retry" "*" + +"@types/retry@*": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/strip-ansi@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@types/strip-ansi/-/strip-ansi-5.2.1.tgz#acd97f1f091e332bb7ce697c4609eb2370fa2a92" + integrity sha512-1l5iM0LBkVU8JXxnIoBqNvg+yyOXxPeN6DNoD+7A9AN1B8FhYPSeIXgyNqwIqg1uzipTgVC2hmuDzB0u9qw/PA== + dependencies: + strip-ansi "*" + +"@types/tape@^4.2.32": + version "4.2.33" + resolved "https://registry.yarnpkg.com/@types/tape/-/tape-4.2.33.tgz#3583953eaff5f8a77e65ad6ff197741457aaaab9" + integrity sha512-ltfyuY5BIkYlGuQfwqzTDT8f0q8Z5DGppvUnWGs39oqDmMd6/UWhNpX3ZMh/VYvfxs3rFGHMrLC/eGRdLiDGuw== + dependencies: + "@types/node" "*" + +"@types/uuid@^3.4.5": + version "3.4.6" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.6.tgz#d2c4c48eb85a757bf2927f75f939942d521e3016" + integrity sha512-cCdlC/1kGEZdEglzOieLDYBxHsvEOIg7kp/2FYyVR9Pxakq+Qf/inL3RKQ+PA8gOlI/NnL+fXmQH12nwcGzsHw== + dependencies: + "@types/node" "*" + +abstract-extension@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/abstract-extension/-/abstract-extension-3.1.0.tgz#104da6e40765216d60688e31ee17fed6f4ed2196" + integrity sha512-IhhwBFoP2l4xm0gp/YGzOfkie28OCT0X3OG4k9Zari/cM92QUU1tluUIBdhVrGXF8KrFGd8x9snuz152j6yi6A== + dependencies: + codecs "^2.0.0" + ansi-diff@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/ansi-diff/-/ansi-diff-1.0.10.tgz#cdb1143bcf779fe8649138f01a7ce66b349e0d4f" + version "1.1.1" + resolved "https://registry.yarnpkg.com/ansi-diff/-/ansi-diff-1.1.1.tgz#67feeb6a24b4e5aa7f270d33d6a1b40e943bb080" + integrity sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw== dependencies: ansi-split "^1.0.1" ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== ansi-split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ansi-split/-/ansi-split-1.0.1.tgz#3cab03754ab6f1d64d4ad13cd10f22fc36db4a45" + integrity sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg== dependencies: ansi-regex "^3.0.0" +ansi-styles@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +arg@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.2.tgz#e70c90579e02c63d80e3ad4e31d8bfdb8bd50064" + integrity sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg== + array-lru@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/array-lru/-/array-lru-1.1.1.tgz#0c7e1b4e022ae166ff1e8448c595f3181fcd3337" + integrity sha1-DH4bTgIq4Wb/HoRIxZXzGB/NMzc= atomic-batcher@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/atomic-batcher/-/atomic-batcher-1.0.2.tgz#d16901d10ccec59516c197b9ccd8930689b813b4" + integrity sha1-0WkB0QzOxZUWwZe5zNiTBom4E7Q= -automerge@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/automerge/-/automerge-0.7.0.tgz#2d348102543a25bc95829f56dd70845d165134f7" +"automerge@github:automerge/automerge#opaque-strings": + version "0.12.2-beta.0" + resolved "https://codeload.github.com/automerge/automerge/tar.gz/340ca073b716f28426175e221766352e52d84daf" dependencies: - immutable "^3.8.1" + immutable "^3.8.2" transit-immutable-js "^0.7.0" - transit-js "^0.8.846" - uuid "^3.1.0" + transit-js "^0.8.861" + uuid "3.3.2" -bencode@^1.0.0: +balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/bencode/-/bencode-1.0.0.tgz#0b83aea885b3547b579ada0c6a5e7739fe4d073e" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base-x@^3.0.2, base-x@^3.0.6: + version "3.0.7" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.7.tgz#1c5a7fafe8f66b4114063e8da102799d4e7c408f" + integrity sha512-zAKJGuQPihXW22fkrfOclUUZXM2g92z5GzlSMHxhO6r6Qj+Nm0ccaGNBzDZojzwOMkpjAv4J0fOv1U4go+a4iw== dependencies: - safe-buffer "^5.1.1" + safe-buffer "^5.0.1" -bitfield-rle@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/bitfield-rle/-/bitfield-rle-2.1.0.tgz#ae29e9382a7ba4898de9f48bb23fd338c4fbdcf8" +better-sqlite3@^5.4.3: + version "5.4.3" + resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-5.4.3.tgz#2cb843ce14c56de9e9c0ca6b89844b7d4b5794b8" + integrity sha512-fPp+8f363qQIhuhLyjI4bu657J/FfMtgiiHKfaTsj3RWDkHlWC1yT7c6kHZDnBxzQVoAINuzg553qKmZ4F1rEw== dependencies: - varint "^4.0.0" + integer "^2.1.0" + tar "^4.4.10" -bittorrent-dht@^7.2.1: - version "7.10.0" - resolved "https://registry.yarnpkg.com/bittorrent-dht/-/bittorrent-dht-7.10.0.tgz#c5d47ddb21b0003a4ce22b11202a505b350ac0ff" +bitfield-rle@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/bitfield-rle/-/bitfield-rle-2.2.1.tgz#07c910f7e650c005c46d18ee5ca6e62c4baf8310" + integrity sha512-wrDhHe7LUkqaytxgbsFXoemzHRv6e8FrVNWWsQCgUfmuVYW6ke44hoGc9VdpjgfIsJ/ejmCFA8wDtDqACNAvyw== dependencies: - bencode "^1.0.0" - buffer-equals "^1.0.3" - debug "^3.1.0" - inherits "^2.0.1" - k-bucket "^3.3.0" - k-rpc "^4.2.1" - lru "^3.1.0" - randombytes "^2.0.5" - safe-buffer "^5.0.1" - simple-sha1 "^2.1.0" + buffer-alloc-unsafe "^1.1.0" + varint "^4.0.0" blake2b-wasm@^1.1.0: version "1.1.7" resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-1.1.7.tgz#e4d075da10068e5d4c3ec1fb9accc4d186c55d81" + integrity sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA== dependencies: nanoassert "^1.0.0" blake2b@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.2.tgz#6880eddca35cfede92c4fb2724221334f989145a" + version "2.1.3" + resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.3.tgz#f5388be424768e7c6327025dad0c3c6d83351bca" + integrity sha512-pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg== dependencies: blake2b-wasm "^1.1.0" nanoassert "^1.0.0" -buffer-alloc-unsafe@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.0.0.tgz#474aa88f34e7bc75fa311d2e6457409c5846c3fe" +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" -buffer-equals@^1.0.3, buffer-equals@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz#0353b54fd07fd9564170671ae6f66b9cf10d27f5" +bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== -buffer-indexof@^1.0.0: +buffer-alloc@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0, buffer-from@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== bulk-write-stream@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/bulk-write-stream/-/bulk-write-stream-1.1.3.tgz#d29ca385fbd53f357aee5bd3d3028732b62ae275" + version "1.1.4" + resolved "https://registry.yarnpkg.com/bulk-write-stream/-/bulk-write-stream-1.1.4.tgz#04b4bdaad61f5a813d8323547383020efffa7d7e" + integrity sha512-GtKwd/4etuk1hNeprXoESBO1RSeRYJMXKf+O0qHmWdUomLT8ysNEfX/4bZFXr3BK6eukpHiEnhY2uMtEHDM2ng== dependencies: + buffer-from "^1.0.0" inherits "^2.0.1" readable-stream "^2.1.4" -codecs@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/codecs/-/codecs-1.2.0.tgz#5148549e3d156c5fa053d7cbb419715a0cf43d16" +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +chownr@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +codecs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/codecs/-/codecs-2.0.0.tgz#680d1d4ac8ac3c8adbaa625c7ce06c6ee5792b50" + integrity sha512-WXvpJRAgc693oqYvZte9uYEiL5YHtfrxyEq12uVny9oBJ1k37zSva5vVz7trsnt6R9Y15hEgOSC7VFZT2pfYnA== -connections@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/connections/-/connections-1.4.2.tgz#7890482bf5c71af6c5ca192be3136aed74428aad" +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +copyfiles@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.1.1.tgz#d430e122d7880f92c45d372208b0af03b0c39db6" + integrity sha512-y6DZHve80whydXzBal7r70TBgKMPKesVRR1Sn/raUu7Jh/i7iSLSyGvYaq0eMJ/3Y/CKghwzjY32q1WzEnpp3Q== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^0.5.1" + noms "0.0.0" + through2 "^2.0.1" + yargs "^13.2.4" core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -datland-swarm-defaults@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/datland-swarm-defaults/-/datland-swarm-defaults-1.0.2.tgz#277b895a39f1aa7f96a495a02fb3662a5ed9f2e0" +count-trailing-zeros@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/count-trailing-zeros/-/count-trailing-zeros-1.0.1.tgz#aba6c5833be410d45b1eca3e6d583844ce682c77" + integrity sha1-q6bFgzvkENRbHso+bVg4RM5oLHc= + +debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: - xtend "^4.0.1" + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -debug@^2.3.2, debug@^2.4.5, debug@^2.5.2, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" +deep-equal@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: - ms "2.0.0" + object-keys "^1.0.12" -debug@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" +defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +dht-rpc@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/dht-rpc/-/dht-rpc-4.3.0.tgz#53ba196c1119cb54a8a975a175aeeefa32fc13c4" + integrity sha512-FYdyqwQ15SQcgsdJnkct4CxZ0h7oyeBqgoL/U5BwR3mn1qmb5wSKGo82bhgq864tLSa41oPefTyVRJH/4SO8TA== dependencies: - ms "2.0.0" + codecs "^2.0.0" + ipv4-peers "^2.0.0" + k-bucket "^5.0.0" + protocol-buffers-encodings "^1.1.0" + sodium-universal "^2.0.0" + stream-collector "^1.0.1" + time-ordered-set "^1.0.1" + xor-distance "^2.0.0" -diffy@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/diffy/-/diffy-1.3.1.tgz#c1a1d8de785699a34e48bc488b5caa13b54ff9ba" +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/diffy/-/diffy-2.1.0.tgz#bd60140c6fe2e67ab65b5d6b09bf2655db5b41b5" + integrity sha512-BIo2fEAv3U0YmyuM1XTijwZ/OJjmXnlSvsguQy3LOaz5C2R/vrMy8SCRdQn1iz3KhBJYJzy+918xS/PKY/47lw== dependencies: ansi-diff "^1.0.10" - neat-input "^1.5.0" - -discovery-channel@^5.3.0: - version "5.4.7" - resolved "https://registry.yarnpkg.com/discovery-channel/-/discovery-channel-5.4.7.tgz#8139652dcd5935423f7aaa68d8dc6030ae354d91" - dependencies: - bittorrent-dht "^7.2.1" - debug "^2.3.2" - dns-discovery "^5.3.4" - pretty-hash "^1.0.0" - thunky "^0.1.0" - -discovery-swarm@^4.3.7: - version "4.4.2" - resolved "https://registry.yarnpkg.com/discovery-swarm/-/discovery-swarm-4.4.2.tgz#5d3160a46019e50e874195765df7d601ee55a813" - dependencies: - buffer-equals "^1.0.3" - connections "^1.4.2" - debug "^2.4.5" - discovery-channel "^5.3.0" - length-prefixed-message "^3.0.3" - pump "^1.0.1" - to-buffer "^1.0.1" - optionalDependencies: - utp-native "^1.2.2" - -dns-discovery@^5.3.4: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-discovery/-/dns-discovery-5.6.1.tgz#514aed6a76c6b73c821fbd1006a08723ad67c74e" - dependencies: - debug "^2.3.2" - dns-socket "^1.4.2" - dns-txt "^2.0.1" - lru "^2.0.0" - minimist "^1.2.0" - multicast-dns "^6.0.0" - network-address "^1.1.0" - unordered-set "^1.1.0" - -dns-packet@^1.1.0, dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" + neat-input "^1.9.0" -dns-socket@^1.4.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/dns-socket/-/dns-socket-1.6.3.tgz#5268724fad4aa46ad9c5ca4ffcd16e1de5342aab" +dns-packet@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-4.2.0.tgz#3fd6f5ff5a4ec3194ed0b15312693ffe8776b343" + integrity sha512-bn1AKpfkFbm0MIioOMHZ5qJzl2uypdBwI4nYNsqvhjsegBhcKJUlCrMPWLx6JEezRjxZmxhtIz/FkBEur2l8Cw== dependencies: - dns-packet "^1.1.0" + ip "^1.1.5" + safe-buffer "^5.1.1" -dns-txt@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" +dotignore@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== dependencies: - buffer-indexof "^1.0.0" + minimatch "^3.0.4" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== -end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" +es-abstract@^1.17.0-next.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" + integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +fast-bitfield@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/fast-bitfield/-/fast-bitfield-1.2.2.tgz#7f08cdb46a6384b887a64127b56aa4d59bc8fa25" + integrity sha512-t8HYqkuE3YEqNcyWlAfh55479aTxO+GpYwvQvJppYqyBfSmRdNIhzY2m09FKN/MENTzq4wH6heHOIvsPyMAwvQ== + dependencies: + count-trailing-zeros "^1.0.1" + +fast-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.0.0.tgz#9bc72e6860347bb045a876d1c5c0af11e9b984e7" + integrity sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ== + +fd-lock@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fd-lock/-/fd-lock-1.0.2.tgz#fb68e9f40830f96a098e090b79ab6ee9363ea89d" + integrity sha512-8O4zSv6rlNNghVfzVkj/p7LUIeBm7Xxk6QnhfmR1WJm/W4kwS8IyShy4X1peRnFUYZUYLlcwEMKXF8QWxJCMvg== + dependencies: + napi-macros "^1.8.2" + node-gyp-build "^3.8.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + flat-tree@^1.3.0, flat-tree@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/flat-tree/-/flat-tree-1.6.0.tgz#fca30cddb9006fb656eb5ebc79aeb274e7fde9ed" + integrity sha1-/KMM3bkAb7ZW6168ea6ydOf96e0= + +for-each@~0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" from2@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" -hypercore-archiver@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/hypercore-archiver/-/hypercore-archiver-4.4.1.tgz#0e85d3a68e2a9df9817fe7a7cc68fcbed28235ef" +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: - datland-swarm-defaults "^1.0.2" - debug "^2.6.8" - discovery-swarm "^4.3.7" - hypercore "^6.6.3" - hypercore-protocol "^6.4.0" - random-access-file "^1.8.1" - thunky "^1.0.2" - to-buffer "^1.1.0" - xtend "^4.0.1" + minipass "^2.6.0" -hypercore-protocol@^6.4.0, hypercore-protocol@^6.4.1, hypercore-protocol@^6.5.1: - version "6.5.2" - resolved "https://registry.yarnpkg.com/hypercore-protocol/-/hypercore-protocol-6.5.2.tgz#18a6701852e02a008c7bb0bfd8888aa764d912c5" +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1, function-bind@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +glob@^7.0.5, glob@~7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: - inherits "^2.0.3" - protocol-buffers-encodings "^1.1.0" - readable-stream "^2.2.6" + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.11: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has@^1.0.3, has@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hashlru@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/hashlru/-/hashlru-2.3.0.tgz#5dc15928b3f6961a2056416bb3a4910216fdfb51" + integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A== + +hmac-blake2b@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/hmac-blake2b/-/hmac-blake2b-0.2.0.tgz#f8c71699dc834ce8066a512ba0592eda572bff4c" + integrity sha512-cJpnWOYMtaLr+3O32OII7DSTmQh+BKoeLXw49UAIc2QU68UwD2iBjItwxRVHmu1GBTuHeqME+rq7GpW2rBncCQ== + dependencies: + nanoassert "^1.1.0" sodium-universal "^2.0.0" - sorted-indexof "^1.0.0" - varint "^5.0.0" -hypercore@^6.12.0, hypercore@^6.6.3: - version "6.12.2" - resolved "https://registry.yarnpkg.com/hypercore/-/hypercore-6.12.2.tgz#646d71bebbbad4e38dd00e4e4a9f6cb471b97321" +hypercore-crypto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hypercore-crypto/-/hypercore-crypto-1.0.0.tgz#90dfd2c77364483d24af204b9a99136cb6320de6" + integrity sha512-xFwOnNlOt8L+SovC7dTNchKaNYJb5l8rKZZwpWQnCme1r7CU4Hlhp1RDqPES6b0OpS7DkTo9iU0GltQGkpsjMw== dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-from "^1.1.0" + sodium-universal "^2.0.0" + uint64be "^2.0.2" + +hypercore-protocol@^7.1.0, hypercore-protocol@^7.6.0: + version "7.7.1" + resolved "https://registry.yarnpkg.com/hypercore-protocol/-/hypercore-protocol-7.7.1.tgz#6ed232aaa88cf77978a55537cf97ce94aaed294c" + integrity sha512-Yt8FgKtjDLFGaAjtzJNSyxnKpWJvhC+UGCE2UXPDcE4KlH/R21qaMpEeBl8ng2ztCyfpneKp+IruOdC165BjrQ== + dependencies: + abstract-extension "^3.0.1" + debug "^4.1.1" + hypercore-crypto "^1.0.0" + inspect-custom-symbol "^1.1.0" + nanoguard "^1.2.1" + pretty-hash "^1.0.1" + simple-hypercore-protocol "^1.4.0" + streamx "^2.1.0" + timeout-refresh "^1.0.0" + +hypercore@^8.2.5: + version "8.4.1" + resolved "https://registry.yarnpkg.com/hypercore/-/hypercore-8.4.1.tgz#9f22457af7b570e942c1bd6a1ea8d64c1d74e3b5" + integrity sha512-rsKnTIh+vklOByWZ+V9Rs5i0be7NwmxPQcUa8drRWEPQrRpl7i6WJJKwhDgNWk6M75d4ltt7Flryfp+76zMAzA== + dependencies: + abstract-extension "^3.0.1" array-lru "^1.1.0" atomic-batcher "^1.0.2" - bitfield-rle "^2.0.0" - buffer-equals "^1.0.4" + bitfield-rle "^2.2.1" bulk-write-stream "^1.1.3" - codecs "^1.2.0" + codecs "^2.0.0" + fast-bitfield "^1.2.2" flat-tree "^1.6.0" from2 "^2.3.0" - hypercore-protocol "^6.4.1" + hypercore-crypto "^1.0.0" + hypercore-protocol "^7.1.0" inherits "^2.0.3" + inspect-custom-symbol "^1.1.0" last-one-wins "^1.0.4" memory-pager "^1.0.2" merkle-tree-stream "^3.0.3" - process-nextick-args "^1.0.7" - random-access-file "^2.0.1" + nanoguard "^1.2.0" + nanoresource "^1.3.0" + pretty-hash "^1.0.1" + random-access-file "^2.1.0" sodium-universal "^2.0.0" sparse-bitfield "^3.0.0" - thunky "^1.0.1" + timeout-refresh "^1.0.1" uint64be "^2.0.1" unordered-array-remove "^1.0.2" unordered-set "^2.0.0" + optionalDependencies: + fd-lock "^1.0.2" -hypermerge@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/hypermerge/-/hypermerge-0.3.1.tgz#3d8ed1c2e87bad32bbe452a3a75c174139c3f843" +"hypermerge@github:automerge/hypermerge": + version "2.0.0-beta.25" + resolved "https://codeload.github.com/automerge/hypermerge/tar.gz/53a289413cf894b1c1cc5c7781bc1642bbc48036" dependencies: - automerge "^0.7.0" - hypercore "^6.12.0" - hypercore-archiver "^4.4.1" - hypercore-protocol "^6.5.1" - thunky "^1.0.2" - to-buffer "^1.1.0" + automerge "github:automerge/automerge#opaque-strings" + better-sqlite3 "^5.4.3" + bs58 "^4.0.1" + copyfiles "^2.1.1" + debug "^4.1.1" + hypercore "^8.2.5" + hypercore-crypto "^1.0.0" + hypercore-protocol "^7.6.0" + js-sha1 "^0.6.0" + mime-types "^2.1.24" + noise-peer "^1.1.0" + proper-lockfile "^4.1.1" + pump "^3.0.0" + random-access-file "^2.1.3" + random-access-memory "^3.0.0" + simple-message-channels "^1.2.1" + sodium-native "^2.4.6" + streamx "^2.5.0" + uuid "^3.3.3" + +hyperswarm@^2.3.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/hyperswarm/-/hyperswarm-2.4.0.tgz#efbed6611f7812e5b5e80fd1d4d7b357c56dcd7a" + integrity sha512-24D/zFCbhTh6Ld3zu9dgZzHwoJgnGu7e1eAZmCWKVs3x9rM0keIokmszV8NHYV9WQ3HFQJUKwF6+pGebNugzhA== + dependencies: + "@hyperswarm/discovery" "^1.1.0" + "@hyperswarm/network" "^1.1.2" + shuffled-priority-queue "^2.1.0" + utp-native "^2.1.3" -immutable@^3.8.1: +immutable@^3.8.2: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -ip@^1.1.0: +inspect-custom-symbol@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/inspect-custom-symbol/-/inspect-custom-symbol-1.1.1.tgz#18dae2ed4537f3d8e1708626d3756c10d7edf782" + integrity sha512-GOucsp9EcdlLdhPUyOTvQDnbFJtp2WBWZV1Jqe+mVnkJQBL3w96+fB84C+JL+EKXOspMdB0eMDQPDp5w9fkfZA== + +integer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/integer/-/integer-2.1.0.tgz#29134ea2f7ba3362ed4dbe6bcca992b1f18ff276" + integrity sha512-vBtiSgrEiNocWvvZX1RVfeOKa2mCHLZQ2p9nkQkQZ/BvEiY+6CcUz0eyjvIiewjJoeNidzg2I+tpPJvpyspL1w== + +ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +ipv4-peers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ipv4-peers/-/ipv4-peers-2.0.0.tgz#56db3a04c1bbde4b9035d19757821d7b66b3fbb7" + integrity sha512-6ZMWB3JnCWT0gISUkzChcUEkJS6+LpGRU3h10f9Mfc0usVmyIcbcTN9+QPMg29gLOY8WtaKFbM5ME8qNySoh8g== + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== -k-bucket@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-3.3.1.tgz#de219f00b310ca17fdd7e2790a077d78b70d92c8" +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-options/-/is-options-1.0.1.tgz#25b13036030fafca858918124c24048f788be04f" + integrity sha512-2Xj8sA0zDrAcaoWfBiNmc6VPWAgKDpim0T3J9Djq7vbm1UjwbUWzeuLu/FwC46g3cBbAn0E5R0xwVtOobM6Xxg== + +is-regex@^1.0.4, is-regex@^1.0.5, is-regex@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== dependencies: - buffer-equals "^1.0.3" - inherits "^2.0.1" - randombytes "^2.0.3" + has "^1.0.3" -k-rpc-socket@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/k-rpc-socket/-/k-rpc-socket-1.7.2.tgz#f36425d000748758e266558eba297a6d4c293193" +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: - bencode "^1.0.0" - buffer-equals "^1.0.4" - safe-buffer "^5.1.1" + has-symbols "^1.0.1" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +js-sha1@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/js-sha1/-/js-sha1-0.6.0.tgz#adbee10f0e8e18aa07cdea807cf08e9183dbc7f9" + integrity sha512-01gwBFreYydzmU9BmZxpVk6svJJHrVxEN3IOiGl6VO93bVKYETJ0sIth6DASI6mIFdt7NmfX9UiByRzsYHGU9w== -k-rpc@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/k-rpc/-/k-rpc-4.2.1.tgz#f9d8220a1788ee3dbffa43f8506ea81808bb798a" +k-bucket@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.0.0.tgz#ef7a401fcd4c37cd31dceaa6ae4440ca91055e01" + integrity sha512-r/q+wV/Kde62/tk+rqyttEJn6h0jR7x+incdMVSYTqK73zVxVrzJa70kJL49cIKen8XjIgUZKSvk8ktnrQbK4w== dependencies: - buffer-equals "^1.0.3" - k-bucket "^3.3.0" - k-rpc-socket "^1.7.2" - randombytes "^2.0.5" - safe-buffer "^5.1.1" + randombytes "^2.0.3" keypress@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.2.1.tgz#1e80454250018dbad4c3fe94497d6e67b6269c77" + integrity sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc= last-one-wins@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/last-one-wins/-/last-one-wins-1.0.4.tgz#c1bfd0cbcb46790ec9156b8d1aee8fcb86cda22a" + integrity sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio= -length-prefixed-message@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/length-prefixed-message/-/length-prefixed-message-3.0.3.tgz#245474d69abc0614dca368dc35aa8074982a23ac" - dependencies: - varint "^3.0.1" - -lru@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/lru/-/lru-2.0.1.tgz#f979871e162e3f5ca254be46844c53d4c5364544" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: - inherits "^2.0.1" + p-locate "^3.0.0" + path-exists "^3.0.0" -lru@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz#ea7fb8546d83733396a13091d76cfeb4c06837d5" - dependencies: - inherits "^2.0.1" +make-error@^1.1.1: + version "1.3.5" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== memory-pager@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.1.0.tgz#9308915e0e972849fefbae6f8bc95d6b350e7344" + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== merkle-tree-stream@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/merkle-tree-stream/-/merkle-tree-stream-3.0.3.tgz#f8a064760d37e7978ad5f9f6d3c119a494f57081" + integrity sha1-+KBkdg0355eK1fn208EZpJT1cIE= dependencies: flat-tree "^1.3.0" readable-stream "^2.0.5" +mime-db@1.43.0: + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== + +mime-types@^2.1.24: + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + dependencies: + mime-db "1.43.0" + +minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.2.0: +minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -mkdirp@^0.5.1: +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multicast-dns@^6.0.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" +multicast-dns@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.0.tgz#7aa49a7efba931a346011aa02e7d1c314a65ac77" + integrity sha512-Tu2QORGOFANB124NWQ/JTRhMf/ODouVLEuvu5Dz8YWEU55zQgRgFGnBHfIh5PbfNDAuaRl7yLB+pgWhSqVxi2Q== dependencies: - dns-packet "^1.3.1" + dns-packet "^4.0.0" thunky "^1.0.2" -nan@^2.4.0, nan@^2.5.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" +nan@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== -nanoassert@^1.0.0: +nanoassert@^1.0.0, nanoassert@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" + integrity sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40= -neat-input@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/neat-input/-/neat-input-1.6.0.tgz#8377cc7334f738d107f1f48e69b9265feba0556d" +nanoassert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" + integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== + +nanoguard@^1.2.0, nanoguard@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/nanoguard/-/nanoguard-1.2.2.tgz#a2069c563600a1853fd3ec31ed11e9681aa3dd80" + integrity sha512-IMVIZkHP7Ep01foXurcJR59Hj/0yyApNK3JWpVHq2QVdLgo8wGU/ZsodlpL7jJ/m24+lxT0eyavrLCEuYQK2fg== + +nanoresource@^1.0.0, nanoresource@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/nanoresource/-/nanoresource-1.3.0.tgz#823945d9667ab3e81a8b2591ab8d734552878cd0" + integrity sha512-OI5dswqipmlYfyL3k/YMm7mbERlh4Bd1KuKdMHpeoVD1iVxqxaTMKleB4qaA2mbQZ6/zMNSxCXv9M9P/YbqTuQ== + dependencies: + inherits "^2.0.4" + +napi-macros@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-1.8.2.tgz#299265c1d8aa401351ad0675107d751228c03eda" + integrity sha512-Tr0DNY4RzTaBG2W2m3l7ZtFuJChTH6VZhXVhkGGjF/4cZTt+i8GcM9ozD+30Lmr4mDoZ5Xx34t2o4GJqYWDGcg== + +napi-macros@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== + +neat-input@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/neat-input/-/neat-input-1.10.0.tgz#6927001758ff7ffe6c389ef2188b441181213125" + integrity sha512-02JoPLCBocjslsujmMjNb12Fz2Ap4oCmCYWBSUmea4YN2EG7siBMZSQtpBjijpw65l3uR5NoSn/w7iumCjAONg== dependencies: keypress "^0.2.1" -network-address@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/network-address/-/network-address-1.1.2.tgz#4aa7bfd43f03f0b81c9702b13d6a858ddb326f3e" +node-gyp-build@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.9.0.tgz#53a350187dd4d5276750da21605d1cb681d09e25" + integrity sha512-zLcTg6P4AbcHPq465ZMFNXx7XpKKJh+7kkN699NiQWisR2uWYOWNWqRHAmbnmKiL4e9aLSlmy5U7rEMUXV59+A== -node-gyp-build@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.2.2.tgz#f78a9f84834b1dbd293b0719fee48635d2789c27" +node-gyp-build@^4.1.0, node-gyp-build@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.0.tgz#2c2b05f461f4178641a6ce2d7159f04094e9376d" + integrity sha512-4oiumOLhCDU9Rronz8PZ5S4IvT39H5+JEv/hps9V8s7RSLhsac0TCP78ulnHXOo8X1wdpPiTayGlM1jr4IbnaQ== -once@^1.3.1, once@^1.4.0: +noise-peer@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/noise-peer/-/noise-peer-1.1.0.tgz#4ef5807a466112e9f89f2f395082ecf9129107dd" + integrity sha512-dzsc5/WxArnPK46aFx9OstdTDKPr7HkfPKQFsI5hL17hfLgblZsP1sZFxxr9tna1Debq4+HxK/17bXLUow+hxw== + dependencies: + readable-stream "^3.0.6" + secretstream-stream "^1.2.1" + simple-handshake "^1.2.0" + sodium-universal "^2.0.0" + +noise-protocol@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/noise-protocol/-/noise-protocol-1.0.0.tgz#260e0447ddabc6f1d40f4c5829a64aba38c08768" + integrity sha512-MEseV3jGZGkPPlhJMHrjFHs9XCEcnoYg72hI89GMz/JfDjWEHzhTaTGqHM5gTGtLA9Z04XoGvEI5aCEAqplQrQ== + dependencies: + clone "^2.1.2" + hmac-blake2b "^0.2.0" + nanoassert "^1.1.0" + sodium-native "^2.2.1" + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha1-2o69nzr51nYJGbJ9nNyAkqczKFk= + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +object-inspect@^1.7.0, object-inspect@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-is@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" -pretty-hash@^1.0.0: +p-limit@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/pretty-hash/-/pretty-hash-1.0.1.tgz#16e0579188def56bdb565892bcd05a5d65324807" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +prettier@^1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -process-nextick-args@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +pretty-hash@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pretty-hash/-/pretty-hash-1.0.1.tgz#16e0579188def56bdb565892bcd05a5d65324807" + integrity sha1-FuBXkYje9WvbVliSvNBaXWUySAc= process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== prompt-sync@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/prompt-sync/-/prompt-sync-4.1.5.tgz#709ac182388b0e9a4a45b5683ed0449ed19f3eb8" + version "4.2.0" + resolved "https://registry.yarnpkg.com/prompt-sync/-/prompt-sync-4.2.0.tgz#0198f73c5b70e3b03e4b9033a50540a7c9a1d7f4" + integrity sha512-BuEzzc5zptP5LsgV5MZETjDaKSWfchl5U9Luiu8SKp7iZWD5tZalOxvNcZRwv+d2phNFr8xlbxmFNcRKfJOzJw== + dependencies: + strip-ansi "^5.0.0" + +proper-lockfile@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.1.tgz#284cf9db9e30a90e647afad69deb7cb06881262c" + integrity sha512-1w6rxXodisVpn7QYvLk706mzprPTAPCYAqxMvctmPN3ekuRk/kuGkGc82pangZiAt4R3lwSuUzheTTn0/Yb7Zg== + dependencies: + graceful-fs "^4.1.11" + retry "^0.12.0" + signal-exit "^3.0.2" protocol-buffers-encodings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/protocol-buffers-encodings/-/protocol-buffers-encodings-1.1.0.tgz#f3905631106669b85381bad47a336add7d206873" + integrity sha512-SmjEuAf3hc3h3rWZ6V1YaaQw2MNJWK848gLJgzx/sefOJdNLujKinJVXIS0q2cBQpQn2Q32TinawZyDZPzm4kQ== dependencies: signed-varint "^2.0.1" varint "^5.0.0" -pump@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" -random-access-file@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/random-access-file/-/random-access-file-1.8.1.tgz#b1a54a0f924fbd4d45731a5771aea36be2166532" - dependencies: - buffer-alloc-unsafe "^1.0.0" - debug "^2.5.2" - inherits "^2.0.1" - mkdirp "^0.5.1" - thunky "^1.0.1" - -random-access-file@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/random-access-file/-/random-access-file-2.0.1.tgz#dc22de79270e9a84cb36a2419b759725930dcaeb" +random-access-file@^2.1.0, random-access-file@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/random-access-file/-/random-access-file-2.1.3.tgz#642c4b29e39c7dd91609a2e912f174d70fd4f82a" + integrity sha512-AE0Z1ywR5gIkzACMC1lCsR6LP8g4ynNm7oYWYdKPSSU6Y3H+mGDJxBqfcV9B9KstfHNemhfX3nYmx99ZC9f/yg== dependencies: mkdirp "^0.5.1" random-access-storage "^1.1.1" -random-access-memory@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/random-access-memory/-/random-access-memory-2.4.0.tgz#72f3d865b4b55a259879473e2fb2de3569c69ee2" +random-access-memory@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/random-access-memory/-/random-access-memory-3.1.1.tgz#cb8516663a8a294b719c8363a6517c1dcb3e8392" + integrity sha512-Qy1MliJDozZ1A6Hx3UbEnm8PPCfkiG/8CArbnhrxXMx1YRJPWipgPTB9qyhn4Z7WlLvCEqPb6Bd98OayyVuwrA== dependencies: - process-nextick-args "^1.0.7" + inherits "^2.0.3" + is-options "^1.0.1" + random-access-storage "^1.1.1" random-access-storage@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/random-access-storage/-/random-access-storage-1.1.1.tgz#e3364013887367d54e2ad0a134c7bf68eb9229e5" + version "1.4.0" + resolved "https://registry.yarnpkg.com/random-access-storage/-/random-access-storage-1.4.0.tgz#cbe5b5ccfb38680aac7b78a050d9f0a5ef36841f" + integrity sha512-7oszloM/+PdqWp/oFGyL6SeI14liqo8AAisHAZQGkWdHISyAnngKjNPL0JYIazeLxbHPY6oed2yUffowdq/o6A== dependencies: inherits "^2.0.3" -randombytes@^2.0.3, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" +randombytes@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6: - version "2.3.4" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" +readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" process-nextick-args "~2.0.0" safe-buffer "~5.1.1" - string_decoder "~1.0.3" + string_decoder "~1.1.1" util-deprecate "~1.0.1" -rusha@^0.8.1: - version "0.8.12" - resolved "https://registry.yarnpkg.com/rusha/-/rusha-0.8.12.tgz#5d838ce1fce8b145674ee771eaad5bcb2575e64b" +readable-stream@^3.0.2, readable-stream@^3.0.6: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +record-cache@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/record-cache/-/record-cache-1.1.0.tgz#f8a467a691a469584b26e88d36b18afdb3932037" + integrity sha512-u8rbtLEJV7HRacl/ZYwSBFD8NFyB3PfTTfGLP37IW3hftQCwu6z4Q2RLyxo1YJUNRTEzJfpLpGwVuEYdaIkG9Q== + +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve@~1.14.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2" + integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ== + dependencies: + path-parse "^1.0.6" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= + dependencies: + through "~2.3.4" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +secretstream-stream@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/secretstream-stream/-/secretstream-stream-1.2.1.tgz#34a5d7111f5c9a4658a0868c3679408690031f94" + integrity sha512-mAfqXrNMRQZ60xkj3O32buVUVSgg/S2hEeMpDsIN8vZwG1BXOL+Z0NlAyLad4YNkLlEXiiLOzxDNi17rOiSwKg== + dependencies: + nanoassert "^1.1.0" + sodium-native "^2.1.4" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -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: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +shuffled-priority-queue@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/shuffled-priority-queue/-/shuffled-priority-queue-2.1.0.tgz#432bf14dd90f7c4dd1705752d81aadf454fd3af6" + integrity sha512-xhdh7fHyMsr0m/w2kDfRJuBFRS96b9l8ZPNWGaQ+PMvnUnZ/Eh+gJJ9NsHBd7P9k0399WYlCLzsy18EaMfyadA== + dependencies: + unordered-set "^2.0.1" + +signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= signed-varint@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" + integrity sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk= dependencies: varint "~5.0.0" -simple-sha1@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/simple-sha1/-/simple-sha1-2.1.0.tgz#9427bb96ff1263cc10a8414cedd51a18b919e8b3" +simple-handshake@^1.2.0, simple-handshake@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/simple-handshake/-/simple-handshake-1.3.1.tgz#3f3d3ef103cb59e25f85c6b5952a631659e53411" + integrity sha512-3Q6FjXdVFCa5JiLsWFl9s/Wp9hfBI9OqGfnlA/fUqIgR8M6zykFMxgGmV7M3YFbBkXYXQYayj6D6aFDejQcPjA== dependencies: - rusha "^0.8.1" + nanoassert "^1.1.0" + noise-protocol "^1.0.0" + +simple-hypercore-protocol@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/simple-hypercore-protocol/-/simple-hypercore-protocol-1.4.0.tgz#43957d7b1b0a045a346f1f566845d2a79d4e4d0c" + integrity sha512-an2jCnYD4e/saLb4vqD8FnIus2wP6wa+C+rI2uC8DBDFok7h41wz0DOOol7h+6+9VXu7Rb2cmkyXaqvkuJDFaA== + dependencies: + protocol-buffers-encodings "^1.1.0" + simple-handshake "^1.3.1" + simple-message-channels "^1.2.1" + sodium-universal "^2.0.0" + varint "^5.0.0" + +simple-message-channels@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/simple-message-channels/-/simple-message-channels-1.2.1.tgz#d827d3da0df1f862fd09b748457a01f9a0eb7ac3" + integrity sha512-knSr69GKW9sCjzpoy817xQelpOASUQ53TXCBcSLDKLE7GTGpUAhZzOZYrdbX2Ig//m+8AIrNp7sM7HDNHBRzXw== + dependencies: + varint "^5.0.0" siphash24@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/siphash24/-/siphash24-1.1.0.tgz#24d3c812d164f1b34689ddcd333b6920f1efb256" + version "1.1.1" + resolved "https://registry.yarnpkg.com/siphash24/-/siphash24-1.1.1.tgz#94ad021a2b2c62de381b546ee02df0cf778acd50" + integrity sha512-dKKwjIoTOa587TARYLlBRXq2lkbu5Iz35XrEVWpelhBP1m8r2BGOy1QlaZe84GTFHG/BTucEUd2btnNc8QzIVA== dependencies: nanoassert "^1.0.0" sodium-javascript@~0.5.0: - version "0.5.4" - resolved "https://registry.yarnpkg.com/sodium-javascript/-/sodium-javascript-0.5.4.tgz#6cf4cb95fe7d9303b80397e6ef83c6847183acce" + version "0.5.5" + resolved "https://registry.yarnpkg.com/sodium-javascript/-/sodium-javascript-0.5.5.tgz#40b7b530390931f45164173582dca51d4e37e84d" + integrity sha512-UMmCHovws/sxIBZsIRhIl8uRPou/RFDD0vVop81T1hG106NLLgqajKKuHAOtAP6hflnZ0UrVA2VFwddTd/NQyA== dependencies: blake2b "^2.1.1" nanoassert "^1.0.0" siphash24 "^1.0.1" xsalsa20 "^1.0.0" -sodium-native@^2.0.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/sodium-native/-/sodium-native-2.1.4.tgz#f31e20992695ce4295a4324e08f64ee203baf0c6" +sodium-native@^2.0.0, sodium-native@^2.1.4, sodium-native@^2.2.1, sodium-native@^2.4.6: + version "2.4.6" + resolved "https://registry.yarnpkg.com/sodium-native/-/sodium-native-2.4.6.tgz#8a8173095e8cf4f997de393a2ba106c34870cac2" + integrity sha512-Ro9lhTjot8M01nwKLXiqLSmjR7B8o+Wg4HmJUjEShw/q6XPlNMzjPkA1VJKaMH8SO8fJ/sggAKVwreTaFszS2Q== dependencies: ini "^1.3.5" - nan "^2.4.0" - node-gyp-build "^3.0.0" + nan "^2.14.0" + node-gyp-build "^4.1.0" sodium-universal@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sodium-universal/-/sodium-universal-2.0.0.tgz#cfb4e1a9c4afece4382b2c23c53439b443bd2af3" + integrity sha512-csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg== dependencies: sodium-javascript "~0.5.0" optionalDependencies: sodium-native "^2.0.0" -sorted-indexof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sorted-indexof/-/sorted-indexof-1.0.0.tgz#17c742ff7cf187e2f59a15df9b81f17a62ce0899" +source-map-support@^0.5.6: + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sparse-bitfield@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha1-/0rm5oZWBWuks+eSqzM004JzyhE= dependencies: memory-pager "^1.0.2" -string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" +stream-collector@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-collector/-/stream-collector-1.0.1.tgz#4d4e55f171356121b2c5f6559f944705ab28db15" + integrity sha1-TU5V8XE1YSGyxfZVn5RHBaso2xU= + dependencies: + once "^1.3.1" + +streamx@^2.1.0, streamx@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.5.0.tgz#4163d152f594cd386c4fd5ef116b8d8063f73db4" + integrity sha512-3HbwdI3Wnjj4dyi9Pk+rkEuQzfiUIUuCT9ayYa2Aohnxvod01TNwnC2e8KWlpjNqrlctNhgctogssukMebeFmg== + dependencies: + fast-fifo "^1.0.0" + nanoassert "^2.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.trim@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" + integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" +strip-ansi@*: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: - ansi-regex "^3.0.0" + ansi-regex "^5.0.0" -thunky@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" +strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" -thunky@^1.0.1, thunky@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" +tape@^4.11.0: + version "4.13.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.0.tgz#e2f581ff5f12a7cbd787e9f83c76c2851782fce2" + integrity sha512-J/hvA+GJnuWJ0Sj8Z0dmu3JgMNU+MmusvkCT7+SN4/2TklW18FNCp/UuHIEhPZwHfy4sXfKYgC7kypKg4umbOw== + dependencies: + deep-equal "~1.1.1" + defined "~1.0.0" + dotignore "~0.1.2" + for-each "~0.3.3" + function-bind "~1.1.1" + glob "~7.1.6" + has "~1.0.3" + inherits "~2.0.4" + is-regex "~1.0.5" + minimist "~1.2.0" + object-inspect "~1.7.0" + resolve "~1.14.2" + resumer "~0.0.0" + string.prototype.trim "~1.2.1" + through "~2.3.8" + +tar@^4.4.10: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -to-buffer@^1.0.1, to-buffer@^1.1.0: +thunky@^1.0.2: version "1.1.0" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.0.tgz#375bc03edae5c35a8fa0b3fe95a1f3985db1dcfa" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +time-ordered-set@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/time-ordered-set/-/time-ordered-set-1.0.2.tgz#3bd931fc048234147f8c2b8b1ebbebb0a3ecb96f" + integrity sha512-vGO99JkxvgX+u+LtOKQEpYf31Kj3i/GNwVstfnh4dyINakMgeZCpew1e3Aj+06hEslhtHEd52g7m5IV+o1K8Mw== + +timeout-refresh@^1.0.0, timeout-refresh@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/timeout-refresh/-/timeout-refresh-1.0.1.tgz#182b23c7cacd1420fa9c0eff2c6b31c3db7ce959" + integrity sha512-bW5oSShdwFCN9K7RpB5dkq5bqNlGt8Lwbfxr8vprysk8hDiK5yy7Mgf2Qlz2ssE0gfQfoYhk4VLY9Hhsnr9Ulw== transit-immutable-js@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/transit-immutable-js/-/transit-immutable-js-0.7.0.tgz#993e25089b6311ff402140f556276d6d253005d9" + integrity sha1-mT4lCJtjEf9AIUD1VidtbSUwBdk= -transit-js@^0.8.846: - version "0.8.846" - resolved "https://registry.yarnpkg.com/transit-js/-/transit-js-0.8.846.tgz#76e06e8f0e6be27675e3442112f5c9bb75343464" +transit-js@^0.8.861: + version "0.8.861" + resolved "https://registry.yarnpkg.com/transit-js/-/transit-js-0.8.861.tgz#829e516b80349a41fff5d59f5e6993b5473f72c9" + integrity sha512-4O9OrYPZw6C0M5gMTvaeOp+xYz6EF79JsyxIvqXHlt+pisSrioJWFOE80N8aCPoJLcNaXF442RZrVtdmd4wkDQ== -uint64be@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.1.tgz#a310d94e4e5e0b02a95d678e33323f802bdc8428" +ts-node@^8.3.0: + version "8.6.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.6.2.tgz#7419a01391a818fbafa6f826a33c1a13e9464e35" + integrity sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.6" + yn "3.1.1" + +typescript@^3.7.2: + version "3.7.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.4.tgz#1743a5ec5fef6a1fa9f3e4708e33c81c73876c19" + integrity sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw== + +uint64be@^2.0.1, uint64be@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.2.tgz#ef4a179752fe8f9ddaa29544ecfc13490031e8e5" + integrity sha512-9QqdvpGQTXgxthP+lY4e/gIBy+RuqcBaC6JVwT5I3bDLgT/btL6twZMR0pI3/Fgah9G/pdwzIprE5gL6v9UvyQ== + dependencies: + buffer-alloc "^1.1.0" unordered-array-remove@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz#c546e8f88e317a0cf2644c97ecb57dba66d250ef" + integrity sha1-xUbo+I4xegzyZEyX7LV9umbSUO8= -unordered-set@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unordered-set/-/unordered-set-1.1.0.tgz#2ba7ef316edd0b9590cc547c74f76a2f164fecca" - -unordered-set@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unordered-set/-/unordered-set-2.0.0.tgz#985a27e975baa20b8263aea7a791e9300941a9ec" +unordered-set@^2.0.0, unordered-set@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unordered-set/-/unordered-set-2.0.1.tgz#4cd0fe27b8814bcf5d6073e5f0966ec7a50841e6" + integrity sha512-eUmNTPzdx+q/WvOHW0bgGYLWvWHNT3PTKEQLg0MAQhc0AHASHVHoP/9YytYd4RBVariqno/mEUhVZN98CmD7bg== -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -utp-native@^1.2.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/utp-native/-/utp-native-1.6.2.tgz#ab3c58fd6bd5522ef2d85aabd3924166942b634d" +utp-native@^2.1.3: + version "2.1.6" + resolved "https://registry.yarnpkg.com/utp-native/-/utp-native-2.1.6.tgz#c515b3f094fcb7809a408fd77d8b8af636867432" + integrity sha512-5I26dyWbRNR7ZLcMaNOxURSAnlJvMMr2FCPrVEQHOJdIXYnOyfQdv2pyZvFxyTDmZxcl5P+kVsISKk5e69agtw== dependencies: - nan "^2.5.1" - node-gyp-build "^3.0.0" - readable-stream "^2.2.2" - -uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -varint@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/varint/-/varint-3.0.1.tgz#9d3f53e036c0ab12000a74bc2d24cbf093a581d9" + napi-macros "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.0.2" + timeout-refresh "^1.0.0" + unordered-set "^2.0.1" + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== varint@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/varint/-/varint-4.0.1.tgz#490829b942d248463b2b35097995c3bf737198e9" + integrity sha1-SQgpuULSSEY7KzUJeZXDv3NxmOk= varint@^5.0.0, varint@~5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.0.tgz#d826b89f7490732fabc0c0ed693ed475dcb29ebf" + integrity sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8= + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xor-distance@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xor-distance/-/xor-distance-2.0.0.tgz#cad3920d3a1e3d73eeedc61a554e51972dae0798" + integrity sha512-AsAqZfPAuWx7qB/0kyRDUEvoU3QKsHWzHU9smFlkaiprEpGfJ/NBbLze2Uq0rdkxCxkNM9uOLvz/KoNBCbZiLQ== xsalsa20@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/xsalsa20/-/xsalsa20-1.0.2.tgz#46cc53439d543d88782e42dfada5c5a69ab6314d" + version "1.1.0" + resolved "https://registry.yarnpkg.com/xsalsa20/-/xsalsa20-1.1.0.tgz#bee27174af1913aaec0fe677d8ba161ec12bf87d" + integrity sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw== -xtend@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.2.4: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==