Browse Source

Merge branch 'development'

Kieran Gibb 2 years ago
parent
commit
26c7d9e1fa
No known key found for this signature in database
5 changed files with 115 additions and 958 deletions
  1. 28
    66
      index.js
  2. 4
    3
      package.json
  3. 83
    22
      test/index.test.js
  4. 0
    21
      test/mocks.js
  5. 0
    846
      yarn.lock

+ 28
- 66
index.js View File

@@ -1,30 +1,27 @@
1
-const Config = require('cobox-config')
2
-const crypto = require('cobox-crypto')
1
+const crypto = require('hypercore-crypto')
3 2
 const path = require('path')
4 3
 const thunky = require('thunky')
5 4
 const debug = require('debug')('cobox-group-store')
6
-const constants = require('cobox-constants')
7 5
 const maybe = require('call-me-maybe')
8 6
 
9 7
 const { uniq, isString } = require('./util')
10 8
 
11
-module.exports = (createGroup, storage, opts) => new GroupStore(createGroup, storage, opts)
9
+module.exports = (storage, factory, collection, opts) => new GroupStore(storage, factory, collection, opts)
12 10
 
13 11
 class GroupStore {
14
-  constructor (createGroup, storage, opts = {}) {
12
+  constructor (storage, factory, opts = {}) {
15 13
     this._id = crypto.randomBytes(16).toString('hex')
16
-    this.root = storage || constants.storage
17
-    this.storage = path.join(this.root, 'groups')
18
-    this.config = opts.config
14
+    this.storage = storage
19 15
     this.opts = opts
20
-    this.createGroup = createGroup
16
+    this.factory = factory
17
+    this.collection = {}
18
+    this._readyCallback = thunky(this._ready.bind(this))
19
+  }
21 20
 
22
-    this.groups = {}
23
-    this.config.groups.list().forEach((groupOpts, i) => {
24
-      this._cacheGroup(this._buildGroup(groupOpts))
21
+  seed (collection = []) {
22
+    collection.forEach((_opts, i) => {
23
+      this._cache(this._build(_opts))
25 24
     })
26
-
27
-    this._readyCallback = thunky(this._ready.bind(this))
28 25
   }
29 26
 
30 27
   ready (callback) {
@@ -38,7 +35,7 @@ class GroupStore {
38 35
 
39 36
   async all () {
40 37
     await this.ready()
41
-    return uniq(Object.values(this.groups))
38
+    return uniq(Object.values(this.collection))
42 39
   }
43 40
 
44 41
   async where (params = {}) {
@@ -63,34 +60,15 @@ class GroupStore {
63 60
   }
64 61
 
65 62
   async create (params = {}) {
66
-    var group = await this.findBy(params)
67
-    if (group) throw new Error('group already exists')
68
-
69
-    var group = this._buildGroup(params)
70
-
71
-    await group.ready()
72
-
73
-    this._cacheGroup(group)
74
-    this._saveGroup(group)
75
-
76
-    return group
77
-  }
78
-
79
-  // TODO: this doesn't work currently, throws a level db error
80
-  async destroy (params = {}) {
81
-    var group = await this.findBy(params)
82
-    if (!group) throw new Error('no group exists')
63
+    var entry = await this.findBy(params)
64
+    if (entry) throw new Error('entry already exists')
65
+    var entry = this._build(params)
83 66
 
84
-    this.config.groups.delete(group.address)
85
-    // TODO: delete group data
67
+    await entry.ready()
86 68
 
87
-    if (this.config.save()) {
88
-      delete this.groups[group.address.toString('hex')]
89
-      return true
90
-    } else {
91
-      this.config.groups.set(group.address, group)
92
-      throw new Error('failed to save config file')
93
-    }
69
+    this._cache(entry)
70
+    entry.save()
71
+    return entry
94 72
   }
95 73
 
96 74
   // ------------------------------------------------------------------
@@ -98,14 +76,14 @@ class GroupStore {
98 76
   _ready (callback) {
99 77
     var pending = 1
100 78
     var self = this
101
-    var groups = Object.values(self.groups)
79
+    var collection = Object.values(self.collection)
102 80
 
103 81
     function next (n) {
104
-      var group = groups[n]
105
-      if (!group) return done()
82
+      var entry = collection[n]
83
+      if (!entry) return done()
106 84
       ++pending
107 85
       process.nextTick(next, n + 1)
108
-      group.ready(done)
86
+      entry.ready(done)
109 87
     }
110 88
 
111 89
     function done (err) {
@@ -121,33 +99,17 @@ class GroupStore {
121 99
     next(0)
122 100
   }
123 101
 
124
-  _buildGroup (params = {}) {
125
-    return this.createGroup(
102
+  _build (params = {}) {
103
+    return this.factory(
126 104
       this.storage,
127 105
       params.address,
128 106
       Object.assign(this.opts, params)
129 107
     )
130 108
   }
131 109
 
132
-  _cacheGroup (group) {
133
-    this.groups[group.address.toString('hex')] = group
134
-    if (group.name) this.groups[group.name] = group
135
-    return true
136
-  }
137
-
138
-  _saveGroup (group) {
139
-    this.config.groups.set(group.address, group.toConfig())
140
-    var success = this.config.save()
141
-    if (!success) return false
110
+  _cache (entry) {
111
+    this.collection[entry.address.toString('hex')] = entry
112
+    if (entry.name) this.collection[entry.name] = entry
142 113
     return true
143 114
   }
144 115
 }
145
-
146
-// _validate (id) {
147
-//   if (crypto.isKey(id)) key = id
148
-//   if (!crypto.isKey(id) && isString(id)) name = id
149
-//   // Ensure we either have no key, or the key is a valid key
150
-//   if (!(!key || crypto.isKey(key))) throw new Error('invalid: key format')
151
-//   return { key, name }
152
-// }
153
-

+ 4
- 3
package.json View File

@@ -13,13 +13,14 @@
13 13
   "license": "AGPL-3.0-or-later",
14 14
   "dependencies": {
15 15
     "call-me-maybe": "^1.0.1",
16
-    "cobox-config": "git+https://ledger-git.dyne.org/cobox/cobox-config",
17
-    "cobox-constants": "^1.0.0",
18
-    "cobox-crypto": "git+https://ledger-git.dyne.org/cobox/cobox-crypto",
19 16
     "debug": "^4.1.1",
17
+    "hypercore-crypto": "^1.0.0",
20 18
     "thunky": "^1.1.0"
21 19
   },
22 20
   "devDependencies": {
21
+    "cobox-blind-replicator": "git+https://ledger-git.dyne.org/cobox/cobox-blind-replicator",
22
+    "cobox-crypto": "git+https://ledger-git.dyne.org/cobox/cobox-crypto",
23
+    "cobox-group": "git+https://ledger-git.dyne.org/cobox/cobox-group",
23 24
     "mkdirp": "^0.5.1",
24 25
     "rimraf": "^3.0.0",
25 26
     "tap-spec": "^5.0.0",

+ 83
- 22
test/index.test.js View File

@@ -4,7 +4,8 @@ const crypto = require('cobox-crypto')
4 4
 const Store = require('../')
5 5
 
6 6
 const { tmp, cleanup } = require('./util')
7
-const { createGroup } = require('./mocks')
7
+const Group = require('cobox-group/test/mock')
8
+const BlindReplicator = require('cobox-blind-replicator/test/mock')
8 9
 
9 10
 describe('group store: basic', (context) => {
10 11
   context('ready()', async function (assert, next) {
@@ -14,12 +15,14 @@ describe('group store: basic', (context) => {
14 15
 
15 16
     config.groups.set(params.address, params)
16 17
 
17
-    const store = Store(createGroup, storage, { config })
18
+    const collection = config.groups.list()
19
+    const store = Store(storage, Group, { config })
20
+    store.seed(collection)
18 21
 
19 22
     try {
20 23
       await store.ready()
21
-      assert.same(Object.values(store.groups).length, 1, 'builds then caches groups from the config')
22
-      assert.ok(store.groups[params.address.toString('hex')], 'accessible using address hex string')
24
+      assert.same(Object.values(store.collection).length, 1, 'builds then caches groups from the config')
25
+      assert.ok(store.collection[params.address.toString('hex')], 'accessible using address hex string')
23 26
     } catch (err) {
24 27
       assert.error(err, 'no error')
25 28
     }
@@ -34,7 +37,9 @@ describe('group store: basic', (context) => {
34 37
 
35 38
     config.groups.set(params.address, params)
36 39
 
37
-    const store = Store(createGroup, storage, { config })
40
+    const collection = config.groups.list()
41
+    const store = Store(storage, Group, { config })
42
+    store.seed(collection)
38 43
 
39 44
     try {
40 45
       await store.ready()
@@ -56,7 +61,9 @@ describe('group store: basic', (context) => {
56 61
     seedConfig()
57 62
     config.groups.set(params.address, params)
58 63
 
59
-    const store = Store(createGroup, storage, { config })
64
+    const collection = config.groups.list()
65
+    const store = Store(storage, Group, { config })
66
+    store.seed(collection)
60 67
 
61 68
     try {
62 69
       await store.ready()
@@ -66,9 +73,9 @@ describe('group store: basic', (context) => {
66 73
       })
67 74
 
68 75
       assert.ok(Array.isArray(response), 'returns an array')
69
-      var group = response[0]
70
-      assert.ok(group, 'finds a group')
71
-      assert.same(group && group.address, params.address, 'finds the correct group')
76
+      var entry = response[0]
77
+      assert.ok(entry, 'finds a entry')
78
+      assert.same(entry && entry.address, params.address, 'finds the correct entry')
72 79
     } catch (err) {
73 80
       assert.error(err, 'no error')
74 81
     }
@@ -93,7 +100,9 @@ describe('group store: basic', (context) => {
93 100
 
94 101
     config.groups.set(params.address, params)
95 102
 
96
-    const store = Store(createGroup, storage, { config })
103
+    const collection = config.groups.list()
104
+    const store = Store(storage, Group, { config })
105
+    store.seed(collection)
97 106
 
98 107
     try {
99 108
       await store.ready()
@@ -103,7 +112,7 @@ describe('group store: basic', (context) => {
103 112
         address: null
104 113
       })
105 114
 
106
-      assert.same(response.length, 0, 'fails to find a group')
115
+      assert.same(response.length, 0, 'fails to find an entry')
107 116
     } catch (err) {
108 117
       assert.error(err, 'no error')
109 118
     }
@@ -118,7 +127,9 @@ describe('group store: basic', (context) => {
118 127
 
119 128
     config.groups.set(params.address, params)
120 129
 
121
-    const store = Store(createGroup, storage, { config })
130
+    const collection = config.groups.list()
131
+    const store = Store(storage, Group, { config })
132
+    store.seed(collection)
122 133
 
123 134
     try {
124 135
       await store.ready()
@@ -128,7 +139,7 @@ describe('group store: basic', (context) => {
128 139
         address: params.address
129 140
       })
130 141
 
131
-      assert.same(response.length, 0, 'fails to find a group')
142
+      assert.same(response.length, 0, 'fails to find an entry')
132 143
     } catch (err) {
133 144
       assert.error(err, 'no error')
134 145
     }
@@ -143,7 +154,9 @@ describe('group store: basic', (context) => {
143 154
 
144 155
     config.groups.set(params.address, params)
145 156
 
146
-    const store = Store(createGroup, storage, { config })
157
+    const collection = config.groups.list()
158
+    const store = Store(storage, Group, { config })
159
+    store.seed(collection)
147 160
 
148 161
     try {
149 162
       await store.ready()
@@ -153,7 +166,7 @@ describe('group store: basic', (context) => {
153 166
         address: crypto.randomBytes(32).toString('hex')
154 167
       })
155 168
 
156
-      assert.same(response.length, 0, 'fails to find a group')
169
+      assert.same(response.length, 0, 'fails to find an entry')
157 170
     } catch (err) {
158 171
       assert.error(err, 'no error')
159 172
     }
@@ -168,7 +181,9 @@ describe('group store: basic', (context) => {
168 181
 
169 182
     config.groups.set(params.address, params)
170 183
 
171
-    const store = Store(createGroup, storage, { config })
184
+    const collection = config.groups.list()
185
+    const store = Store(storage, Group, { config })
186
+    store.seed(collection)
172 187
 
173 188
     try {
174 189
       await store.ready()
@@ -178,7 +193,7 @@ describe('group store: basic', (context) => {
178 193
         address: params.address
179 194
       })
180 195
 
181
-      assert.same(response.length, 0, 'fails to find a group')
196
+      assert.same(response.length, 0, 'fails to find an entry')
182 197
     } catch (err) {
183 198
       assert.error(err, 'no error')
184 199
     }
@@ -193,7 +208,9 @@ describe('group store: basic', (context) => {
193 208
 
194 209
     config.groups.set(params.address, params)
195 210
 
196
-    const store = Store(createGroup, storage, { config })
211
+    const collection = config.groups.list()
212
+    const store = Store(storage, Group, { config })
213
+    store.seed(collection)
197 214
 
198 215
     try {
199 216
       await store.ready()
@@ -217,7 +234,9 @@ describe('group store: basic', (context) => {
217 234
 
218 235
     config.groups.set(params.address, params)
219 236
 
220
-    const store = Store(createGroup, storage, { config })
237
+    const collection = config.groups.list()
238
+    const store = Store(storage, Group, { config })
239
+    store.seed(collection)
221 240
 
222 241
     try {
223 242
       await store.ready()
@@ -241,7 +260,9 @@ describe('group store: basic', (context) => {
241 260
 
242 261
     config.groups.set(params.address, params)
243 262
 
244
-    const store = Store(createGroup, storage, { config })
263
+    const collection = config.groups.list()
264
+    const store = Store(storage, Group, { config })
265
+    store.seed(collection)
245 266
 
246 267
     try {
247 268
       await store.ready()
@@ -261,7 +282,9 @@ describe('group store: basic', (context) => {
261 282
       config = Config(storage),
262 283
       params = Object.assign(crypto.keySet(), { name: 'magma' })
263 284
 
264
-    const store = Store(createGroup, storage, { config })
285
+    const collection = config.groups.list()
286
+    const store = Store(storage, Group, { config })
287
+    store.seed(collection)
265 288
 
266 289
     try {
267 290
       var group = await store.create(params)
@@ -278,7 +301,7 @@ describe('group store: basic', (context) => {
278 301
   //     params = crypto.keySet()
279 302
 
280 303
   //   config.groups.set(params.address, params)
281
-  //   const store = Store(createGroup, storage, { config })
304
+  //   const store = Store(Group, storage, { config })
282 305
 
283 306
   //   var groups = await store.all()
284 307
   //   console.log(groups.map((group) => group.address.toString('hex')))
@@ -288,3 +311,41 @@ describe('group store: basic', (context) => {
288 311
   //   cleanup(storage, next)
289 312
   // })
290 313
 })
314
+
315
+describe('multiple', (context) => {
316
+  context('factory', async (assert, next) => {
317
+    let storage = tmp(),
318
+      config = Config(storage),
319
+      group = crypto.keySet(),
320
+      replicator = { address: crypto.address() }
321
+
322
+    config.groups.set(group.address, group)
323
+    config.replicators.set(replicator.address, replicator)
324
+
325
+    const groups = config.groups.list()
326
+    const replicators = config.replicators.list()
327
+
328
+    const api = {
329
+      groups: {
330
+        store: Store(storage, Group, { config })
331
+      },
332
+      replicators: {
333
+        store: Store(storage, BlindReplicator, { config })
334
+      }
335
+    }
336
+
337
+    api.groups.store.seed(groups)
338
+    api.replicators.store.seed(replicators)
339
+
340
+    await api.groups.store.ready()
341
+    await api.replicators.store.ready()
342
+
343
+    assert.same(Object.values(api.groups.store.collection).length, 1, 'builds then caches groups')
344
+    assert.same(Object.values(api.replicators.store.collection).length, 1, 'builds then caches replicators')
345
+
346
+    assert.ok(api.groups.store.collection[group.address.toString('hex')], 'accessible using address hex string')
347
+    assert.ok(api.replicators.store.collection[replicator.address.toString('hex')], 'accessible using address hex string')
348
+
349
+    cleanup(storage, next)
350
+  })
351
+})

+ 0
- 21
test/mocks.js View File

@@ -1,21 +0,0 @@
1
-const maybe = require('call-me-maybe')
2
-
3
-function createGroup (storage, address, opts = {}) {
4
-  this.storage = storage
5
-  this.address = Buffer.from(address, 'hex')
6
-  this.encryptionKey = Buffer.from(opts.encryptionKey, 'hex')
7
-  this.name = opts.name
8
-}
9
-
10
-createGroup.prototype.ready = (callback) => maybe(callback, new Promise((resolve, reject) => resolve(true)))
11
-createGroup.prototype.toConfig = function () {
12
-  return {
13
-    name: this.name,
14
-    address: this.address,
15
-    encryptionKey: this.encryptionKey
16
-  }
17
-}
18
-
19
-module.exports = {
20
-  createGroup: (storage, address, opts) => new createGroup(storage, address, opts)
21
-}

+ 0
- 846
yarn.lock View File

@@ -1,846 +0,0 @@
1
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
-# yarn lockfile v1
3
-
4
-
5
-ansi-regex@^2.0.0:
6
-  version "2.1.1"
7
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
8
-  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
9
-
10
-ansi-styles@^2.2.1:
11
-  version "2.2.1"
12
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
13
-  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
14
-
15
-argparse@^1.0.7:
16
-  version "1.0.10"
17
-  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
18
-  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
19
-  dependencies:
20
-    sprintf-js "~1.0.2"
21
-
22
-assert@^2.0.0:
23
-  version "2.0.0"
24
-  resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32"
25
-  integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==
26
-  dependencies:
27
-    es6-object-assign "^1.1.0"
28
-    is-nan "^1.2.1"
29
-    object-is "^1.0.1"
30
-    util "^0.12.0"
31
-
32
-balanced-match@^1.0.0:
33
-  version "1.0.0"
34
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
35
-  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
36
-
37
-blake2b-wasm@^1.1.0:
38
-  version "1.1.7"
39
-  resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-1.1.7.tgz#e4d075da10068e5d4c3ec1fb9accc4d186c55d81"
40
-  integrity sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA==
41
-  dependencies:
42
-    nanoassert "^1.0.0"
43
-
44
-blake2b@^2.1.1:
45
-  version "2.1.3"
46
-  resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.3.tgz#f5388be424768e7c6327025dad0c3c6d83351bca"
47
-  integrity sha512-pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg==
48
-  dependencies:
49
-    blake2b-wasm "^1.1.0"
50
-    nanoassert "^1.0.0"
51
-
52
-brace-expansion@^1.1.7:
53
-  version "1.1.11"
54
-  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
55
-  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
56
-  dependencies:
57
-    balanced-match "^1.0.0"
58
-    concat-map "0.0.1"
59
-
60
-buffer-alloc-unsafe@^1.1.0:
61
-  version "1.1.0"
62
-  resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
63
-  integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
64
-
65
-buffer-alloc@^1.1.0:
66
-  version "1.2.0"
67
-  resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
68
-  integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
69
-  dependencies:
70
-    buffer-alloc-unsafe "^1.1.0"
71
-    buffer-fill "^1.0.0"
72
-
73
-buffer-fill@^1.0.0:
74
-  version "1.0.0"
75
-  resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
76
-  integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
77
-
78
-buffer-from@^1.1.0:
79
-  version "1.1.1"
80
-  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
81
-  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
82
-
83
-buffer-shims@~1.0.0:
84
-  version "1.0.0"
85
-  resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
86
-  integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=
87
-
88
-call-me-maybe@^1.0.1:
89
-  version "1.0.1"
90
-  resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
91
-  integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
92
-
93
-chalk@^1.0.0:
94
-  version "1.1.3"
95
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
96
-  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
97
-  dependencies:
98
-    ansi-styles "^2.2.1"
99
-    escape-string-regexp "^1.0.2"
100
-    has-ansi "^2.0.0"
101
-    strip-ansi "^3.0.0"
102
-    supports-color "^2.0.0"
103
-
104
-"cobox-config@git+https://ledger-git.dyne.org/cobox/cobox-config":
105
-  version "2.0.0"
106
-  resolved "git+https://ledger-git.dyne.org/cobox/cobox-config#90a8809c93175ff3d160988cbdfadb9756e8f444"
107
-  dependencies:
108
-    cobox-crypto "git+ssh://git@ledger-git.dyne.org:2240/CoBox/cobox-crypto.git"
109
-    debug "^4.1.1"
110
-    js-yaml "^3.13.1"
111
-    mkdirp "^0.5.1"
112
-    os "^0.1.1"
113
-    pino "^5.13.2"
114
-    urlsafe-base64 "^1.0.0"
115
-
116
-cobox-constants@^1.0.0:
117
-  version "1.0.0"
118
-  resolved "https://registry.yarnpkg.com/cobox-constants/-/cobox-constants-1.0.0.tgz#e8e5cdc2407658ed0950ce3de092c8bfa4654110"
119
-  integrity sha512-npUyD3yEFkURL2g01rBpt01xQn4aNROah7sK4BTuabVE06BC/28Vd6O80HUar73+VpBYk69gs0QP8T+NOnKF7w==
120
-  dependencies:
121
-    os "^0.1.1"
122
-
123
-"cobox-crypto@git+https://ledger-git.dyne.org/cobox/cobox-crypto":
124
-  version "1.1.0"
125
-  uid "5a64d8b1ee3746f729cd0c69165d4417988903ab"
126
-  resolved "git+https://ledger-git.dyne.org/cobox/cobox-crypto#5a64d8b1ee3746f729cd0c69165d4417988903ab"
127
-  dependencies:
128
-    assert "^2.0.0"
129
-    hypercore-crypto "^1.0.0"
130
-    sodium-native "^2.4.2"
131
-
132
-"cobox-crypto@git+ssh://git@ledger-git.dyne.org:2240/CoBox/cobox-crypto.git":
133
-  version "1.1.0"
134
-  resolved "git+ssh://git@ledger-git.dyne.org:2240/CoBox/cobox-crypto.git#5a64d8b1ee3746f729cd0c69165d4417988903ab"
135
-  dependencies:
136
-    assert "^2.0.0"
137
-    hypercore-crypto "^1.0.0"
138
-    sodium-native "^2.4.2"
139
-
140
-concat-map@0.0.1:
141
-  version "0.0.1"
142
-  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
143
-  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
144
-
145
-core-util-is@~1.0.0:
146
-  version "1.0.2"
147
-  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
148
-  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
149
-
150
-debug@^4.1.1:
151
-  version "4.1.1"
152
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
153
-  integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
154
-  dependencies:
155
-    ms "^2.1.1"
156
-
157
-deep-equal@~1.0.1:
158
-  version "1.0.1"
159
-  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
160
-  integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
161
-
162
-define-properties@^1.1.1, define-properties@^1.1.2, define-properties@^1.1.3:
163
-  version "1.1.3"
164
-  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
165
-  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
166
-  dependencies:
167
-    object-keys "^1.0.12"
168
-
169
-defined@~1.0.0:
170
-  version "1.0.0"
171
-  resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
172
-  integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
173
-
174
-duplexer@^0.1.1:
175
-  version "0.1.1"
176
-  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
177
-  integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
178
-
179
-es-abstract@^1.12.0, es-abstract@^1.5.0:
180
-  version "1.16.2"
181
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34"
182
-  integrity sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==
183
-  dependencies:
184
-    es-to-primitive "^1.2.1"
185
-    function-bind "^1.1.1"
186
-    has "^1.0.3"
187
-    has-symbols "^1.0.1"
188
-    is-callable "^1.1.4"
189
-    is-regex "^1.0.4"
190
-    object-inspect "^1.7.0"
191
-    object-keys "^1.1.1"
192
-    string.prototype.trimleft "^2.1.0"
193
-    string.prototype.trimright "^2.1.0"
194
-
195
-es-to-primitive@^1.2.1:
196
-  version "1.2.1"
197
-  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
198
-  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
199
-  dependencies:
200
-    is-callable "^1.1.4"
201
-    is-date-object "^1.0.1"
202
-    is-symbol "^1.0.2"
203
-
204
-es6-object-assign@^1.1.0:
205
-  version "1.1.0"
206
-  resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
207
-  integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=
208
-
209
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
210
-  version "1.0.5"
211
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
212
-  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
213
-
214
-esprima@^4.0.0:
215
-  version "4.0.1"
216
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
217
-  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
218
-
219
-fast-redact@^2.0.0:
220
-  version "2.0.0"
221
-  resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-2.0.0.tgz#17bb8f5e1f56ecf4a38c8455985e5eab4c478431"
222
-  integrity sha512-zxpkULI9W9MNTK2sJ3BpPQrTEXFNESd2X6O1tXMFpK/XM0G5c5Rll2EVYZH2TqI3xRGK/VaJ+eEOt7pnENJpeA==
223
-
224
-fast-safe-stringify@^2.0.7:
225
-  version "2.0.7"
226
-  resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
227
-  integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
228
-
229
-figures@^1.4.0:
230
-  version "1.7.0"
231
-  resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
232
-  integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
233
-  dependencies:
234
-    escape-string-regexp "^1.0.5"
235
-    object-assign "^4.1.0"
236
-
237
-flatstr@^1.0.12:
238
-  version "1.0.12"
239
-  resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931"
240
-  integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==
241
-
242
-for-each@~0.3.3:
243
-  version "0.3.3"
244
-  resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
245
-  integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
246
-  dependencies:
247
-    is-callable "^1.1.3"
248
-
249
-fs.realpath@^1.0.0:
250
-  version "1.0.0"
251
-  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
252
-  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
253
-
254
-function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1:
255
-  version "1.1.1"
256
-  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
257
-  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
258
-
259
-glob@^7.1.3, glob@~7.1.4:
260
-  version "7.1.6"
261
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
262
-  integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
263
-  dependencies:
264
-    fs.realpath "^1.0.0"
265
-    inflight "^1.0.4"
266
-    inherits "2"
267
-    minimatch "^3.0.4"
268
-    once "^1.3.0"
269
-    path-is-absolute "^1.0.0"
270
-
271
-has-ansi@^2.0.0:
272
-  version "2.0.0"
273
-  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
274
-  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
275
-  dependencies:
276
-    ansi-regex "^2.0.0"
277
-
278
-has-symbols@^1.0.1:
279
-  version "1.0.1"
280
-  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
281
-  integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
282
-
283
-has@^1.0.1, has@^1.0.3, has@~1.0.3:
284
-  version "1.0.3"
285
-  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
286
-  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
287
-  dependencies:
288
-    function-bind "^1.1.1"
289
-
290
-hypercore-crypto@^1.0.0:
291
-  version "1.0.0"
292
-  resolved "https://registry.yarnpkg.com/hypercore-crypto/-/hypercore-crypto-1.0.0.tgz#90dfd2c77364483d24af204b9a99136cb6320de6"
293
-  integrity sha512-xFwOnNlOt8L+SovC7dTNchKaNYJb5l8rKZZwpWQnCme1r7CU4Hlhp1RDqPES6b0OpS7DkTo9iU0GltQGkpsjMw==
294
-  dependencies:
295
-    buffer-alloc-unsafe "^1.1.0"
296
-    buffer-from "^1.1.0"
297
-    sodium-universal "^2.0.0"
298
-    uint64be "^2.0.2"
299
-
300
-inflight@^1.0.4:
301
-  version "1.0.6"
302
-  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
303
-  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
304
-  dependencies:
305
-    once "^1.3.0"
306
-    wrappy "1"
307
-
308
-inherits@2, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4:
309
-  version "2.0.4"
310
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
311
-  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
312
-
313
-ini@^1.3.5:
314
-  version "1.3.5"
315
-  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
316
-  integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
317
-
318
-is-arguments@^1.0.4:
319
-  version "1.0.4"
320
-  resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
321
-  integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
322
-
323
-is-callable@^1.1.3, is-callable@^1.1.4:
324
-  version "1.1.4"
325
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
326
-  integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
327
-
328
-is-date-object@^1.0.1:
329
-  version "1.0.1"
330
-  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
331
-  integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
332
-
333
-is-finite@^1.0.1:
334
-  version "1.0.2"
335
-  resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
336
-  integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
337
-  dependencies:
338
-    number-is-nan "^1.0.0"
339
-
340
-is-generator-function@^1.0.7:
341
-  version "1.0.7"
342
-  resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522"
343
-  integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==
344
-
345
-is-nan@^1.2.1:
346
-  version "1.2.1"
347
-  resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz#9faf65b6fb6db24b7f5c0628475ea71f988401e2"
348
-  integrity sha1-n69ltvttskt/XAYoR16nH5iEAeI=
349
-  dependencies:
350
-    define-properties "^1.1.1"
351
-
352
-is-regex@^1.0.4:
353
-  version "1.0.4"
354
-  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
355
-  integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
356
-  dependencies:
357
-    has "^1.0.1"
358
-
359
-is-symbol@^1.0.2:
360
-  version "1.0.3"
361
-  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
362
-  integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
363
-  dependencies:
364
-    has-symbols "^1.0.1"
365
-
366
-isarray@~1.0.0:
367
-  version "1.0.0"
368
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
369
-  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
370
-
371
-js-yaml@^3.13.1:
372
-  version "3.13.1"
373
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
374
-  integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
375
-  dependencies:
376
-    argparse "^1.0.7"
377
-    esprima "^4.0.0"
378
-
379
-lodash@^4.17.10:
380
-  version "4.17.15"
381
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
382
-  integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
383
-
384
-minimatch@^3.0.4:
385
-  version "3.0.4"
386
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
387
-  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
388
-  dependencies:
389
-    brace-expansion "^1.1.7"
390
-
391
-minimist@0.0.8:
392
-  version "0.0.8"
393
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
394
-  integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
395
-
396
-minimist@~1.2.0:
397
-  version "1.2.0"
398
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
399
-  integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
400
-
401
-mkdirp@^0.5.1:
402
-  version "0.5.1"
403
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
404
-  integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
405
-  dependencies:
406
-    minimist "0.0.8"
407
-
408
-ms@^2.1.1:
409
-  version "2.1.2"
410
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
411
-  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
412
-
413
-nan@^2.14.0:
414
-  version "2.14.0"
415
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
416
-  integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
417
-
418
-nanoassert@^1.0.0:
419
-  version "1.1.0"
420
-  resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d"
421
-  integrity sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40=
422
-
423
-node-gyp-build@^4.1.0:
424
-  version "4.2.0"
425
-  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.0.tgz#2c2b05f461f4178641a6ce2d7159f04094e9376d"
426
-  integrity sha512-4oiumOLhCDU9Rronz8PZ5S4IvT39H5+JEv/hps9V8s7RSLhsac0TCP78ulnHXOo8X1wdpPiTayGlM1jr4IbnaQ==
427
-
428
-number-is-nan@^1.0.0:
429
-  version "1.0.1"
430
-  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
431
-  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
432
-
433
-object-assign@4.1.0:
434
-  version "4.1.0"
435
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
436
-  integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A=
437
-
438
-object-assign@^4.1.0:
439
-  version "4.1.1"
440
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
441
-  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
442
-
443
-object-inspect@^1.7.0:
444
-  version "1.7.0"
445
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
446
-  integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
447
-
448
-object-inspect@~1.6.0:
449
-  version "1.6.0"
450
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b"
451
-  integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==
452
-
453
-object-is@^1.0.1:
454
-  version "1.0.1"
455
-  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
456
-  integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=
457
-
458
-object-keys@^1.0.12, object-keys@^1.1.1:
459
-  version "1.1.1"
460
-  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
461
-  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
462
-
463
-object.entries@^1.1.0:
464
-  version "1.1.0"
465
-  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519"
466
-  integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==
467
-  dependencies:
468
-    define-properties "^1.1.3"
469
-    es-abstract "^1.12.0"
470
-    function-bind "^1.1.1"
471
-    has "^1.0.3"
472
-
473
-once@^1.3.0:
474
-  version "1.4.0"
475
-  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
476
-  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
477
-  dependencies:
478
-    wrappy "1"
479
-
480
-os@^0.1.1:
481
-  version "0.1.1"
482
-  resolved "https://registry.yarnpkg.com/os/-/os-0.1.1.tgz#208845e89e193ad4d971474b93947736a56d13f3"
483
-  integrity sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M=
484
-
485
-parse-ms@^1.0.0:
486
-  version "1.0.1"
487
-  resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d"
488
-  integrity sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=
489
-
490
-path-is-absolute@^1.0.0:
491
-  version "1.0.1"
492
-  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
493
-  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
494
-
495
-path-parse@^1.0.6:
496
-  version "1.0.6"
497
-  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
498
-  integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
499
-
500
-pino-std-serializers@^2.4.2:
501
-  version "2.4.2"
502
-  resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-2.4.2.tgz#cb5e3e58c358b26f88969d7e619ae54bdfcc1ae1"
503
-  integrity sha512-WaL504dO8eGs+vrK+j4BuQQq6GLKeCCcHaMB2ItygzVURcL1CycwNEUHTD/lHFHs/NL5qAz2UKrjYWXKSf4aMQ==
504
-
505
-pino@^5.13.2:
506
-  version "5.14.0"
507
-  resolved "https://registry.yarnpkg.com/pino/-/pino-5.14.0.tgz#eec56c6388797528e526f969ee022592cc538d4e"
508
-  integrity sha512-Vj1f2wAojTGesogT0hsA/ua8ALltCOBCcA1nkEoDfnTsVWpgBu5UVSY7OdjiGmrMOKHBm24nd3nKXzyPUYJ3ig==
509
-  dependencies:
510
-    fast-redact "^2.0.0"
511
-    fast-safe-stringify "^2.0.7"
512
-    flatstr "^1.0.12"
513
-    pino-std-serializers "^2.4.2"
514
-    quick-format-unescaped "^3.0.3"
515
-    sonic-boom "^0.7.5"
516
-
517
-plur@^1.0.0:
518
-  version "1.0.0"
519
-  resolved "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156"
520
-  integrity sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=
521
-
522
-pretty-ms@^2.1.0:
523
-  version "2.1.0"
524
-  resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc"
525
-  integrity sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=
526
-  dependencies:
527
-    is-finite "^1.0.1"
528
-    parse-ms "^1.0.0"
529
-    plur "^1.0.0"
530
-
531
-process-nextick-args@~1.0.6:
532
-  version "1.0.7"
533
-  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
534
-  integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
535
-
536
-process-nextick-args@~2.0.0:
537
-  version "2.0.1"
538
-  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
539
-  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
540
-
541
-quick-format-unescaped@^3.0.3:
542
-  version "3.0.3"
543
-  resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz#fb3e468ac64c01d22305806c39f121ddac0d1fb9"
544
-  integrity sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ==
545
-
546
-re-emitter@1.1.3:
547
-  version "1.1.3"
548
-  resolved "https://registry.yarnpkg.com/re-emitter/-/re-emitter-1.1.3.tgz#fa9e319ffdeeeb35b27296ef0f3d374dac2f52a7"
549
-  integrity sha1-+p4xn/3u6zWycpbvDz03TawvUqc=
550
-
551
-readable-stream@2.2.9:
552
-  version "2.2.9"
553
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
554
-  integrity sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=
555
-  dependencies:
556
-    buffer-shims "~1.0.0"
557
-    core-util-is "~1.0.0"
558
-    inherits "~2.0.1"
559
-    isarray "~1.0.0"
560
-    process-nextick-args "~1.0.6"
561
-    string_decoder "~1.0.0"
562
-    util-deprecate "~1.0.1"
563
-
564
-readable-stream@~2.3.6:
565
-  version "2.3.6"
566
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
567
-  integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
568
-  dependencies:
569
-    core-util-is "~1.0.0"
570
-    inherits "~2.0.3"
571
-    isarray "~1.0.0"
572
-    process-nextick-args "~2.0.0"
573
-    safe-buffer "~5.1.1"
574
-    string_decoder "~1.1.1"
575
-    util-deprecate "~1.0.1"
576
-
577
-repeat-string@^1.5.2:
578
-  version "1.6.1"
579
-  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
580
-  integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
581
-
582
-resolve@~1.11.1:
583
-  version "1.11.1"
584
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
585
-  integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==
586
-  dependencies:
587
-    path-parse "^1.0.6"
588
-
589
-resumer@~0.0.0:
590
-  version "0.0.0"
591
-  resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759"
592
-  integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=
593
-  dependencies:
594
-    through "~2.3.4"
595
-
596
-rimraf@^2.6.3:
597
-  version "2.7.1"
598
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
599
-  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
600
-  dependencies:
601
-    glob "^7.1.3"
602
-
603
-rimraf@^3.0.0:
604
-  version "3.0.0"
605
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b"
606
-  integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==
607
-  dependencies:
608
-    glob "^7.1.3"
609
-
610
-safe-buffer@^5.1.2:
611
-  version "5.2.0"
612
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
613
-  integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
614
-
615
-safe-buffer@~5.1.0, safe-buffer@~5.1.1:
616
-  version "5.1.2"
617
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
618
-  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
619
-
620
-siphash24@^1.0.1:
621
-  version "1.1.1"
622
-  resolved "https://registry.yarnpkg.com/siphash24/-/siphash24-1.1.1.tgz#94ad021a2b2c62de381b546ee02df0cf778acd50"
623
-  integrity sha512-dKKwjIoTOa587TARYLlBRXq2lkbu5Iz35XrEVWpelhBP1m8r2BGOy1QlaZe84GTFHG/BTucEUd2btnNc8QzIVA==
624
-  dependencies:
625
-    nanoassert "^1.0.0"
626
-
627
-sodium-javascript@~0.5.0:
628
-  version "0.5.5"
629
-  resolved "https://registry.yarnpkg.com/sodium-javascript/-/sodium-javascript-0.5.5.tgz#40b7b530390931f45164173582dca51d4e37e84d"
630
-  integrity sha512-UMmCHovws/sxIBZsIRhIl8uRPou/RFDD0vVop81T1hG106NLLgqajKKuHAOtAP6hflnZ0UrVA2VFwddTd/NQyA==
631
-  dependencies:
632
-    blake2b "^2.1.1"
633
-    nanoassert "^1.0.0"
634
-    siphash24 "^1.0.1"
635
-    xsalsa20 "^1.0.0"
636
-
637
-sodium-native@^2.0.0, sodium-native@^2.4.2:
638
-  version "2.4.6"
639
-  resolved "https://registry.yarnpkg.com/sodium-native/-/sodium-native-2.4.6.tgz#8a8173095e8cf4f997de393a2ba106c34870cac2"
640
-  integrity sha512-Ro9lhTjot8M01nwKLXiqLSmjR7B8o+Wg4HmJUjEShw/q6XPlNMzjPkA1VJKaMH8SO8fJ/sggAKVwreTaFszS2Q==
641
-  dependencies:
642
-    ini "^1.3.5"
643
-    nan "^2.14.0"
644
-    node-gyp-build "^4.1.0"
645
-
646
-sodium-universal@^2.0.0:
647
-  version "2.0.0"
648
-  resolved "https://registry.yarnpkg.com/sodium-universal/-/sodium-universal-2.0.0.tgz#cfb4e1a9c4afece4382b2c23c53439b443bd2af3"
649
-  integrity sha512-csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==
650
-  dependencies:
651
-    sodium-javascript "~0.5.0"
652
-  optionalDependencies:
653
-    sodium-native "^2.0.0"
654
-
655
-sonic-boom@^0.7.5:
656
-  version "0.7.6"
657
-  resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-0.7.6.tgz#c42df6df884a6a3d54fa7a45b11e4e2196818d45"
658
-  integrity sha512-k9E2QQ4zxuVRLDW+ZW6ISzJs3wlEorVdmM7ApDgor7wsGKSDG5YGHsGmgLY4XYh4DMlr/2ap2BWAE7yTFJtWnQ==
659
-  dependencies:
660
-    flatstr "^1.0.12"
661
-
662
-split@1.0.0:
663
-  version "1.0.0"
664
-  resolved "https://registry.yarnpkg.com/split/-/split-1.0.0.tgz#c4395ce683abcd254bc28fe1dabb6e5c27dcffae"
665
-  integrity sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=
666
-  dependencies:
667
-    through "2"
668
-
669
-sprintf-js@~1.0.2:
670
-  version "1.0.3"
671
-  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
672
-  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
673
-
674
-string.prototype.trim@~1.1.2:
675
-  version "1.1.2"
676
-  resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea"
677
-  integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=
678
-  dependencies:
679
-    define-properties "^1.1.2"
680
-    es-abstract "^1.5.0"
681
-    function-bind "^1.0.2"
682
-
683
-string.prototype.trimleft@^2.1.0:
684
-  version "2.1.0"
685
-  resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634"
686
-  integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==
687
-  dependencies:
688
-    define-properties "^1.1.3"
689
-    function-bind "^1.1.1"
690
-
691
-string.prototype.trimright@^2.1.0:
692
-  version "2.1.0"
693
-  resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58"
694
-  integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==
695
-  dependencies:
696
-    define-properties "^1.1.3"
697
-    function-bind "^1.1.1"
698
-
699
-string_decoder@~1.0.0:
700
-  version "1.0.3"
701
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
702
-  integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==
703
-  dependencies:
704
-    safe-buffer "~5.1.0"
705
-
706
-string_decoder@~1.1.1:
707
-  version "1.1.1"
708
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
709
-  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
710
-  dependencies:
711
-    safe-buffer "~5.1.0"
712
-
713
-strip-ansi@^3.0.0:
714
-  version "3.0.1"
715
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
716
-  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
717
-  dependencies:
718
-    ansi-regex "^2.0.0"
719
-
720
-supports-color@^2.0.0:
721
-  version "2.0.0"
722
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
723
-  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
724
-
725
-tap-out@^2.1.0:
726
-  version "2.1.0"
727
-  resolved "https://registry.yarnpkg.com/tap-out/-/tap-out-2.1.0.tgz#c093079a915036de8b835bfa3297f14458b15358"
728
-  integrity sha512-LJE+TBoVbOWhwdz4+FQk40nmbIuxJLqaGvj3WauQw3NYYU5TdjoV3C0x/yq37YAvVyi+oeBXmWnxWSjJ7IEyUw==
729
-  dependencies:
730
-    re-emitter "1.1.3"
731
-    readable-stream "2.2.9"
732
-    split "1.0.0"
733
-    trim "0.0.1"
734
-
735
-tap-spec@^5.0.0:
736
-  version "5.0.0"
737
-  resolved "https://registry.yarnpkg.com/tap-spec/-/tap-spec-5.0.0.tgz#7329e4e66e8aa68da2a164215abbb903a7c5d352"
738
-  integrity sha512-zMDVJiE5I6Y4XGjlueGXJIX2YIkbDN44broZlnypT38Hj/czfOXrszHNNJBF/DXR8n+x6gbfSx68x04kIEHdrw==
739
-  dependencies:
740
-    chalk "^1.0.0"
741
-    duplexer "^0.1.1"
742
-    figures "^1.4.0"
743
-    lodash "^4.17.10"
744
-    pretty-ms "^2.1.0"
745
-    repeat-string "^1.5.2"
746
-    tap-out "^2.1.0"
747
-    through2 "^2.0.0"
748
-
749
-tape-plus@^1.0.0:
750
-  version "1.0.0"
751
-  resolved "https://registry.yarnpkg.com/tape-plus/-/tape-plus-1.0.0.tgz#6aaacd1a10b6347fc7e33734c17a8af978f26bdc"
752
-  integrity sha1-aqrNGhC2NH/H4zc0wXqK+Xjya9w=
753
-  dependencies:
754
-    object-assign "4.1.0"
755
-
756
-tape@^4.11.0:
757
-  version "4.11.0"
758
-  resolved "https://registry.yarnpkg.com/tape/-/tape-4.11.0.tgz#63d41accd95e45a23a874473051c57fdbc58edc1"
759
-  integrity sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==
760
-  dependencies:
761
-    deep-equal "~1.0.1"
762
-    defined "~1.0.0"
763
-    for-each "~0.3.3"
764
-    function-bind "~1.1.1"
765
-    glob "~7.1.4"
766
-    has "~1.0.3"
767
-    inherits "~2.0.4"
768
-    minimist "~1.2.0"
769
-    object-inspect "~1.6.0"
770
-    resolve "~1.11.1"
771
-    resumer "~0.0.0"
772
-    string.prototype.trim "~1.1.2"
773
-    through "~2.3.8"
774
-
775
-through2@^2.0.0:
776
-  version "2.0.5"
777
-  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
778
-  integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
779
-  dependencies:
780
-    readable-stream "~2.3.6"
781
-    xtend "~4.0.1"
782
-
783
-through@2, through@~2.3.4, through@~2.3.8:
784
-  version "2.3.8"
785
-  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
786
-  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
787
-
788
-thunky@^1.1.0:
789
-  version "1.1.0"
790
-  resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
791
-  integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
792
-
793
-tmp@^0.1.0:
794
-  version "0.1.0"
795
-  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877"
796
-  integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==
797
-  dependencies:
798
-    rimraf "^2.6.3"
799
-
800
-trim@0.0.1:
801
-  version "0.0.1"
802
-  resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
803
-  integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0=
804
-
805
-uint64be@^2.0.2:
806
-  version "2.0.2"
807
-  resolved "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.2.tgz#ef4a179752fe8f9ddaa29544ecfc13490031e8e5"
808
-  integrity sha512-9QqdvpGQTXgxthP+lY4e/gIBy+RuqcBaC6JVwT5I3bDLgT/btL6twZMR0pI3/Fgah9G/pdwzIprE5gL6v9UvyQ==
809
-  dependencies:
810
-    buffer-alloc "^1.1.0"
811
-
812
-urlsafe-base64@^1.0.0:
813
-  version "1.0.0"
814
-  resolved "https://registry.yarnpkg.com/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz#23f89069a6c62f46cf3a1d3b00169cefb90be0c6"
815
-  integrity sha1-I/iQaabGL0bPOh07ABac77kL4MY=
816
-
817
-util-deprecate@~1.0.1:
818
-  version "1.0.2"
819
-  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
820
-  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
821
-
822
-util@^0.12.0:
823
-  version "0.12.1"
824
-  resolved "https://registry.yarnpkg.com/util/-/util-0.12.1.tgz#f908e7b633e7396c764e694dd14e716256ce8ade"
825
-  integrity sha512-MREAtYOp+GTt9/+kwf00IYoHZyjM8VU4aVrkzUlejyqaIjd2GztVl5V9hGXKlvBKE3gENn/FMfHE5v6hElXGcQ==
826
-  dependencies:
827
-    inherits "^2.0.3"
828
-    is-arguments "^1.0.4"
829
-    is-generator-function "^1.0.7"
830
-    object.entries "^1.1.0"
831
-    safe-buffer "^5.1.2"
832
-
833
-wrappy@1:
834
-  version "1.0.2"
835
-  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
836
-  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
837
-
838
-xsalsa20@^1.0.0:
839
-  version "1.1.0"
840
-  resolved "https://registry.yarnpkg.com/xsalsa20/-/xsalsa20-1.1.0.tgz#bee27174af1913aaec0fe677d8ba161ec12bf87d"
841
-  integrity sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw==
842
-
843
-xtend@~4.0.1:
844
-  version "4.0.2"
845
-  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
846
-  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==