git ssb

0+

mixmix / ssb-client-basic-tutorial



Commit 20f85b8d98278bf1dd978dcd5e2d2ce0ceed922b

v04 - push those posts into the DOM!

mixmix committed on 10/17/2018, 12:47:47 PM
Parent: cf524354e56763eb8ba2d0ab07b1fe49066baec6

Files changed

README.mdchanged
package-lock.jsonchanged
package.jsonchanged
v03.jschanged
async/get-name.jsadded
v04.jsadded
README.mdView
@@ -149,4 +149,20 @@
149149 }
150150 ]
151151 }
152152 ```
153 +
154 +Extras : all the special query things like `$is` are part of a module called `map-filter-reduce`, and are currently poorly documented. You can read the source for them fairly easily here though : https://github.com/dominictarr/map-filter-reduce/blob/master/simple/maps.js
155 +
156 +
157 +## `v04` - push it into the DOM!
158 +
159 +This one you run differently in the terminal:
160 +```
161 +npx electro v04.js
162 +```
163 +
164 +This says "hey use the module electro to run this file instead of node". [**electro**](https://github.com/dominictarr/electro) is a wrapper around [electron](https://electronjs.org/) which makes is super easy to run code like this from the command line.
165 +
166 +We're also introducing [**yo-yo**](https://www.npmjs.com/package/yo-yo) which gives you pretty simple templating which looks a lot like html.
167 +It also doesn't do any fancy auto-updating - if you want to update something you literally call an update method and tell it what you're swapping in.
168 +
package-lock.jsonView
@@ -3,8 +3,13 @@
33 "version": "1.0.0",
44 "lockfileVersion": 1,
55 "requires": true,
66 "dependencies": {
7 + "@types/node": {
8 + "version": "8.10.36",
9 + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.36.tgz",
10 + "integrity": "sha512-SL6KhfM7PTqiFmbCW3eVNwVBZ+88Mrzbuvn9olPsfv43mbiWaFY+nRcz/TGGku0/lc2FepdMbImdMY1JrQ+zbw=="
11 + },
712 "acorn": {
813 "version": "5.7.3",
914 "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
1015 "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
@@ -45,10 +50,9 @@
4550 },
4651 "ansi-regex": {
4752 "version": "2.1.1",
4853 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
49- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
50- "dev": true
54 + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
5155 },
5256 "ansi-styles": {
5357 "version": "2.2.1",
5458 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
@@ -63,8 +67,13 @@
6367 "requires": {
6468 "sprintf-js": "~1.0.2"
6569 }
6670 },
71 + "array-find-index": {
72 + "version": "1.0.2",
73 + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
74 + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
75 + },
6776 "array-includes": {
6877 "version": "3.0.3",
6978 "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
7079 "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
@@ -94,8 +103,36 @@
94103 "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
95104 "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
96105 "dev": true
97106 },
107 + "asn1": {
108 + "version": "0.2.4",
109 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
110 + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
111 + "requires": {
112 + "safer-buffer": "~2.1.0"
113 + }
114 + },
115 + "assert-plus": {
116 + "version": "1.0.0",
117 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
118 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
119 + },
120 + "asynckit": {
121 + "version": "0.4.0",
122 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
123 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
124 + },
125 + "aws-sign2": {
126 + "version": "0.7.0",
127 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
128 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
129 + },
130 + "aws4": {
131 + "version": "1.8.0",
132 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
133 + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
134 + },
98135 "babel-code-frame": {
99136 "version": "6.26.0",
100137 "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
101138 "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
@@ -135,8 +172,26 @@
135172 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
136173 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
137174 "dev": true
138175 },
176 + "bcrypt-pbkdf": {
177 + "version": "1.0.2",
178 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
179 + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
180 + "requires": {
181 + "tweetnacl": "^0.14.3"
182 + }
183 + },
184 + "bel": {
185 + "version": "4.6.0",
186 + "resolved": "https://registry.npmjs.org/bel/-/bel-4.6.0.tgz",
187 + "integrity": "sha1-Ot4W4jarIgTY0cZurEvVc3k6yZk=",
188 + "requires": {
189 + "global": "^4.3.0",
190 + "hyperx": "^2.3.0",
191 + "on-load": "^3.2.0"
192 + }
193 + },
139194 "brace-expansion": {
140195 "version": "1.1.11",
141196 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
142197 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
@@ -145,13 +200,17 @@
145200 "balanced-match": "^1.0.0",
146201 "concat-map": "0.0.1"
147202 }
148203 },
204 + "buffer-from": {
205 + "version": "1.1.1",
206 + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
207 + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
208 + },
149209 "builtin-modules": {
150210 "version": "1.1.1",
151211 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
152- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
153- "dev": true
212 + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
154213 },
155214 "caller-path": {
156215 "version": "0.1.0",
157216 "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
@@ -166,8 +225,27 @@
166225 "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
167226 "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
168227 "dev": true
169228 },
229 + "camelcase": {
230 + "version": "2.1.1",
231 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
232 + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
233 + },
234 + "camelcase-keys": {
235 + "version": "2.1.0",
236 + "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
237 + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
238 + "requires": {
239 + "camelcase": "^2.0.0",
240 + "map-obj": "^1.0.0"
241 + }
242 + },
243 + "caseless": {
244 + "version": "0.12.0",
245 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
246 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
247 + },
170248 "chalk": {
171249 "version": "2.4.1",
172250 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
173251 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
@@ -244,8 +322,18 @@
244322 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
245323 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
246324 "dev": true
247325 },
326 + "co": {
327 + "version": "4.6.0",
328 + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
329 + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
330 + },
331 + "code-point-at": {
332 + "version": "1.1.0",
333 + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
334 + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
335 + },
248336 "color-convert": {
249337 "version": "1.9.3",
250338 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
251339 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
@@ -259,20 +347,68 @@
259347 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
260348 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
261349 "dev": true
262350 },
351 + "combined-stream": {
352 + "version": "1.0.7",
353 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
354 + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
355 + "requires": {
356 + "delayed-stream": "~1.0.0"
357 + }
358 + },
263359 "concat-map": {
264360 "version": "0.0.1",
265361 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
266362 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
267363 "dev": true
268364 },
365 + "concat-stream": {
366 + "version": "1.6.2",
367 + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
368 + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
369 + "requires": {
370 + "buffer-from": "^1.0.0",
371 + "inherits": "^2.0.3",
372 + "readable-stream": "^2.2.2",
373 + "typedarray": "^0.0.6"
374 + },
375 + "dependencies": {
376 + "readable-stream": {
377 + "version": "2.3.6",
378 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
379 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
380 + "requires": {
381 + "core-util-is": "~1.0.0",
382 + "inherits": "~2.0.3",
383 + "isarray": "~1.0.0",
384 + "process-nextick-args": "~2.0.0",
385 + "safe-buffer": "~5.1.1",
386 + "string_decoder": "~1.1.1",
387 + "util-deprecate": "~1.0.1"
388 + }
389 + },
390 + "string_decoder": {
391 + "version": "1.1.1",
392 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
393 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
394 + "requires": {
395 + "safe-buffer": "~5.1.0"
396 + }
397 + }
398 + }
399 + },
269400 "contains-path": {
270401 "version": "0.1.0",
271402 "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
272403 "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
273404 "dev": true
274405 },
406 + "core-util-is": {
407 + "version": "1.0.2",
408 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
409 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
410 + },
275411 "cross-spawn": {
276412 "version": "6.0.5",
277413 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
278414 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
@@ -284,13 +420,28 @@
284420 "shebang-command": "^1.2.0",
285421 "which": "^1.2.9"
286422 }
287423 },
424 + "currently-unhandled": {
425 + "version": "0.4.1",
426 + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
427 + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
428 + "requires": {
429 + "array-find-index": "^1.0.1"
430 + }
431 + },
432 + "dashdash": {
433 + "version": "1.14.1",
434 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
435 + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
436 + "requires": {
437 + "assert-plus": "^1.0.0"
438 + }
439 + },
288440 "debug": {
289441 "version": "3.2.6",
290442 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
291443 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
292- "dev": true,
293444 "requires": {
294445 "ms": "^2.1.1"
295446 }
296447 },
@@ -299,8 +450,13 @@
299450 "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz",
300451 "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=",
301452 "dev": true
302453 },
454 + "decamelize": {
455 + "version": "1.2.0",
456 + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
457 + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
458 + },
303459 "deep-equal": {
304460 "version": "1.0.1",
305461 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
306462 "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
@@ -361,8 +517,13 @@
361517 "pinkie-promise": "^2.0.0",
362518 "rimraf": "^2.2.8"
363519 }
364520 },
521 + "delayed-stream": {
522 + "version": "1.0.0",
523 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
524 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
525 + },
365526 "doctrine": {
366527 "version": "2.1.0",
367528 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
368529 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
@@ -370,21 +531,81 @@
370531 "requires": {
371532 "esutils": "^2.0.2"
372533 }
373534 },
535 + "dom-walk": {
536 + "version": "0.1.1",
537 + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
538 + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg="
539 + },
540 + "ecc-jsbn": {
541 + "version": "0.1.2",
542 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
543 + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
544 + "requires": {
545 + "jsbn": "~0.1.0",
546 + "safer-buffer": "^2.1.0"
547 + }
548 + },
374549 "ed2curve": {
375550 "version": "0.1.4",
376551 "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.1.4.tgz",
377552 "integrity": "sha1-lKRCSLuH2jXbDv968KpXYWgRf1k=",
378553 "requires": {
379554 "tweetnacl": "0.x.x"
380555 }
381556 },
557 + "electro": {
558 + "version": "2.1.1",
559 + "resolved": "https://registry.npmjs.org/electro/-/electro-2.1.1.tgz",
560 + "integrity": "sha512-FJ24HKE/GGjvD14lBMcMerS3uIGag1SzOLD03L779bAaTi8uzcM8la06yqCO0vHG7gH0hufF9mL0K69+5a625w==",
561 + "requires": {
562 + "minimist": "~1.2.0",
563 + "subarg": "^1.0.0"
564 + }
565 + },
566 + "electron": {
567 + "version": "3.0.4",
568 + "resolved": "https://registry.npmjs.org/electron/-/electron-3.0.4.tgz",
569 + "integrity": "sha512-GuZ4xCmV8wNNfkUAOdmOmgkYYaTQj5LATzc2i/b3MGhoXghnjECCgxo5yW+G2BeKM+R30cg69KA03tRzmIFxxQ==",
570 + "requires": {
571 + "@types/node": "^8.0.24",
572 + "electron-download": "^4.1.0",
573 + "extract-zip": "^1.0.3"
574 + }
575 + },
576 + "electron-download": {
577 + "version": "4.1.1",
578 + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz",
579 + "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==",
580 + "requires": {
581 + "debug": "^3.0.0",
582 + "env-paths": "^1.0.0",
583 + "fs-extra": "^4.0.1",
584 + "minimist": "^1.2.0",
585 + "nugget": "^2.0.1",
586 + "path-exists": "^3.0.0",
587 + "rc": "^1.2.1",
588 + "semver": "^5.4.1",
589 + "sumchecker": "^2.0.2"
590 + },
591 + "dependencies": {
592 + "path-exists": {
593 + "version": "3.0.0",
594 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
595 + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
596 + }
597 + }
598 + },
599 + "env-paths": {
600 + "version": "1.0.0",
601 + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
602 + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA="
603 + },
382604 "error-ex": {
383605 "version": "1.3.2",
384606 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
385607 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
386- "dev": true,
387608 "requires": {
388609 "is-arrayish": "^0.2.1"
389610 }
390611 },
@@ -696,8 +917,13 @@
696917 "version": "1.0.4",
697918 "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz",
698919 "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk="
699920 },
921 + "extend": {
922 + "version": "3.0.2",
923 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
924 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
925 + },
700926 "external-editor": {
701927 "version": "2.2.0",
702928 "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
703929 "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
@@ -707,8 +933,39 @@
707933 "iconv-lite": "^0.4.17",
708934 "tmp": "^0.0.33"
709935 }
710936 },
937 + "extract-zip": {
938 + "version": "1.6.7",
939 + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
940 + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
941 + "requires": {
942 + "concat-stream": "1.6.2",
943 + "debug": "2.6.9",
944 + "mkdirp": "0.5.1",
945 + "yauzl": "2.4.1"
946 + },
947 + "dependencies": {
948 + "debug": {
949 + "version": "2.6.9",
950 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
951 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
952 + "requires": {
953 + "ms": "2.0.0"
954 + }
955 + },
956 + "ms": {
957 + "version": "2.0.0",
958 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
959 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
960 + }
961 + }
962 + },
963 + "extsprintf": {
964 + "version": "1.3.0",
965 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
966 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
967 + },
711968 "fast-deep-equal": {
712969 "version": "2.0.1",
713970 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
714971 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
@@ -716,17 +973,24 @@
716973 },
717974 "fast-json-stable-stringify": {
718975 "version": "2.0.0",
719976 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
720- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
721- "dev": true
977 + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
722978 },
723979 "fast-levenshtein": {
724980 "version": "2.0.6",
725981 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
726982 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
727983 "dev": true
728984 },
985 + "fd-slicer": {
986 + "version": "1.0.1",
987 + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
988 + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
989 + "requires": {
990 + "pend": "~1.2.0"
991 + }
992 + },
729993 "figures": {
730994 "version": "2.0.0",
731995 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
732996 "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
@@ -754,9 +1018,8 @@
7541018 "find-up": {
7551019 "version": "1.1.2",
7561020 "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
7571021 "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
758- "dev": true,
7591022 "requires": {
7601023 "path-exists": "^2.0.0",
7611024 "pinkie-promise": "^2.0.0"
7621025 }
@@ -772,8 +1035,33 @@
7721035 "graceful-fs": "^4.1.2",
7731036 "write": "^0.2.1"
7741037 }
7751038 },
1039 + "forever-agent": {
1040 + "version": "0.6.1",
1041 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
1042 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
1043 + },
1044 + "form-data": {
1045 + "version": "2.3.3",
1046 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
1047 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
1048 + "requires": {
1049 + "asynckit": "^0.4.0",
1050 + "combined-stream": "^1.0.6",
1051 + "mime-types": "^2.1.12"
1052 + }
1053 + },
1054 + "fs-extra": {
1055 + "version": "4.0.3",
1056 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
1057 + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
1058 + "requires": {
1059 + "graceful-fs": "^4.1.2",
1060 + "jsonfile": "^4.0.0",
1061 + "universalify": "^0.1.0"
1062 + }
1063 + },
7761064 "fs.realpath": {
7771065 "version": "1.0.0",
7781066 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
7791067 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
@@ -796,8 +1084,16 @@
7961084 "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
7971085 "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
7981086 "dev": true
7991087 },
1088 + "getpass": {
1089 + "version": "0.1.7",
1090 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
1091 + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
1092 + "requires": {
1093 + "assert-plus": "^1.0.0"
1094 + }
1095 + },
8001096 "glob": {
8011097 "version": "7.1.3",
8021098 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
8031099 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
@@ -810,8 +1106,17 @@
8101106 "once": "^1.3.0",
8111107 "path-is-absolute": "^1.0.0"
8121108 }
8131109 },
1110 + "global": {
1111 + "version": "4.3.2",
1112 + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
1113 + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
1114 + "requires": {
1115 + "min-document": "^2.19.0",
1116 + "process": "~0.5.1"
1117 + }
1118 + },
8141119 "globals": {
8151120 "version": "11.8.0",
8161121 "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
8171122 "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
@@ -833,11 +1138,47 @@
8331138 },
8341139 "graceful-fs": {
8351140 "version": "4.1.11",
8361141 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
837- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
838- "dev": true
1142 + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
8391143 },
1144 + "har-schema": {
1145 + "version": "2.0.0",
1146 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1147 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
1148 + },
1149 + "har-validator": {
1150 + "version": "5.1.0",
1151 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
1152 + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
1153 + "requires": {
1154 + "ajv": "^5.3.0",
1155 + "har-schema": "^2.0.0"
1156 + },
1157 + "dependencies": {
1158 + "ajv": {
1159 + "version": "5.5.2",
1160 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
1161 + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
1162 + "requires": {
1163 + "co": "^4.6.0",
1164 + "fast-deep-equal": "^1.0.0",
1165 + "fast-json-stable-stringify": "^2.0.0",
1166 + "json-schema-traverse": "^0.3.0"
1167 + }
1168 + },
1169 + "fast-deep-equal": {
1170 + "version": "1.1.0",
1171 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
1172 + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
1173 + },
1174 + "json-schema-traverse": {
1175 + "version": "0.3.1",
1176 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
1177 + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
1178 + }
1179 + }
1180 + },
8401181 "has": {
8411182 "version": "1.0.3",
8421183 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
8431184 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
@@ -869,11 +1210,33 @@
8691210 },
8701211 "hosted-git-info": {
8711212 "version": "2.7.1",
8721213 "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
873- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
874- "dev": true
1214 + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
8751215 },
1216 + "http-signature": {
1217 + "version": "1.2.0",
1218 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1219 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1220 + "requires": {
1221 + "assert-plus": "^1.0.0",
1222 + "jsprim": "^1.2.2",
1223 + "sshpk": "^1.7.0"
1224 + }
1225 + },
1226 + "hyperscript-attribute-to-property": {
1227 + "version": "1.0.2",
1228 + "resolved": "https://registry.npmjs.org/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.2.tgz",
1229 + "integrity": "sha512-oerMul16jZCmrbNsUw8QgrtDzF8lKgFri1bKQjReLw1IhiiNkI59CWuzZjJDGT79UQ1YiWqXhJMv/tRMVqgtkA=="
1230 + },
1231 + "hyperx": {
1232 + "version": "2.4.0",
1233 + "resolved": "https://registry.npmjs.org/hyperx/-/hyperx-2.4.0.tgz",
1234 + "integrity": "sha512-43jbOQfVkm9U0oAyBZ4Vt2eB0hZWS5EyrOhR3ZbgUrcprutGu9s/C476OVFL3QU1iynKO5s9kZsWrZm19gJKjg==",
1235 + "requires": {
1236 + "hyperscript-attribute-to-property": "^1.0.0"
1237 + }
1238 + },
8761239 "iconv-lite": {
8771240 "version": "0.4.24",
8781241 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
8791242 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
@@ -898,8 +1261,16 @@
8981261 "version": "1.0.1",
8991262 "resolved": "https://registry.npmjs.org/increment-buffer/-/increment-buffer-1.0.1.tgz",
9001263 "integrity": "sha1-ZQdtdRidgIs5rROrW5WOBSFvng0="
9011264 },
1265 + "indent-string": {
1266 + "version": "2.1.0",
1267 + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
1268 + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
1269 + "requires": {
1270 + "repeating": "^2.0.0"
1271 + }
1272 + },
9021273 "inflight": {
9031274 "version": "1.0.6",
9041275 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
9051276 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
@@ -947,16 +1318,14 @@
9471318 },
9481319 "is-arrayish": {
9491320 "version": "0.2.1",
9501321 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
951- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
952- "dev": true
1322 + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
9531323 },
9541324 "is-builtin-module": {
9551325 "version": "1.0.0",
9561326 "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
9571327 "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
958- "dev": true,
9591328 "requires": {
9601329 "builtin-modules": "^1.0.0"
9611330 }
9621331 },
@@ -976,8 +1345,16 @@
9761345 "version": "2.1.0",
9771346 "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.1.0.tgz",
9781347 "integrity": "sha512-dkg5xT383+M6zIbbXW/z7n2nz4SFUi2OSyhntnFYkRdtV+HVEfdjEK+5AWisfYgkpe3WYjTIuh7toaKmSfFVWw=="
9791348 },
1349 + "is-finite": {
1350 + "version": "1.0.2",
1351 + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
1352 + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
1353 + "requires": {
1354 + "number-is-nan": "^1.0.0"
1355 + }
1356 + },
9801357 "is-fullwidth-code-point": {
9811358 "version": "2.0.0",
9821359 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
9831360 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
@@ -1036,20 +1413,34 @@
10361413 "requires": {
10371414 "has-symbols": "^1.0.0"
10381415 }
10391416 },
1417 + "is-typedarray": {
1418 + "version": "1.0.0",
1419 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1420 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
1421 + },
1422 + "is-utf8": {
1423 + "version": "0.2.1",
1424 + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1425 + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
1426 + },
10401427 "isarray": {
10411428 "version": "1.0.0",
10421429 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1043- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1044- "dev": true
1430 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
10451431 },
10461432 "isexe": {
10471433 "version": "2.0.0",
10481434 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
10491435 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
10501436 "dev": true
10511437 },
1438 + "isstream": {
1439 + "version": "0.1.2",
1440 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1441 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1442 + },
10521443 "js-tokens": {
10531444 "version": "3.0.2",
10541445 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
10551446 "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
@@ -1064,8 +1455,13 @@
10641455 "argparse": "^1.0.7",
10651456 "esprima": "^4.0.0"
10661457 }
10671458 },
1459 + "jsbn": {
1460 + "version": "0.1.1",
1461 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1462 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
1463 + },
10681464 "json-buffer": {
10691465 "version": "2.0.11",
10701466 "resolved": "http://registry.npmjs.org/json-buffer/-/json-buffer-2.0.11.tgz",
10711467 "integrity": "sha1-PkQf2jCYvo0eMXGtWRvGKjPi1V8="
@@ -1075,8 +1471,13 @@
10751471 "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
10761472 "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
10771473 "dev": true
10781474 },
1475 + "json-schema": {
1476 + "version": "0.2.3",
1477 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1478 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
1479 + },
10791480 "json-schema-traverse": {
10801481 "version": "0.4.1",
10811482 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
10821483 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
@@ -1087,8 +1488,32 @@
10871488 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
10881489 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
10891490 "dev": true
10901491 },
1492 + "json-stringify-safe": {
1493 + "version": "5.0.1",
1494 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1495 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
1496 + },
1497 + "jsonfile": {
1498 + "version": "4.0.0",
1499 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
1500 + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
1501 + "requires": {
1502 + "graceful-fs": "^4.1.6"
1503 + }
1504 + },
1505 + "jsprim": {
1506 + "version": "1.4.1",
1507 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1508 + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1509 + "requires": {
1510 + "assert-plus": "1.0.0",
1511 + "extsprintf": "1.3.0",
1512 + "json-schema": "0.2.3",
1513 + "verror": "1.10.0"
1514 + }
1515 + },
10911516 "jsx-ast-utils": {
10921517 "version": "2.0.1",
10931518 "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz",
10941519 "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=",
@@ -1169,14 +1594,117 @@
11691594 "requires": {
11701595 "js-tokens": "^3.0.0 || ^4.0.0"
11711596 }
11721597 },
1598 + "loud-rejection": {
1599 + "version": "1.6.0",
1600 + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
1601 + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
1602 + "requires": {
1603 + "currently-unhandled": "^0.4.1",
1604 + "signal-exit": "^3.0.0"
1605 + }
1606 + },
1607 + "map-obj": {
1608 + "version": "1.0.1",
1609 + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
1610 + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
1611 + },
1612 + "meow": {
1613 + "version": "3.7.0",
1614 + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
1615 + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
1616 + "requires": {
1617 + "camelcase-keys": "^2.0.0",
1618 + "decamelize": "^1.1.2",
1619 + "loud-rejection": "^1.0.0",
1620 + "map-obj": "^1.0.1",
1621 + "minimist": "^1.1.3",
1622 + "normalize-package-data": "^2.3.4",
1623 + "object-assign": "^4.0.1",
1624 + "read-pkg-up": "^1.0.1",
1625 + "redent": "^1.0.0",
1626 + "trim-newlines": "^1.0.0"
1627 + },
1628 + "dependencies": {
1629 + "load-json-file": {
1630 + "version": "1.1.0",
1631 + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
1632 + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
1633 + "requires": {
1634 + "graceful-fs": "^4.1.2",
1635 + "parse-json": "^2.2.0",
1636 + "pify": "^2.0.0",
1637 + "pinkie-promise": "^2.0.0",
1638 + "strip-bom": "^2.0.0"
1639 + }
1640 + },
1641 + "path-type": {
1642 + "version": "1.1.0",
1643 + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
1644 + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
1645 + "requires": {
1646 + "graceful-fs": "^4.1.2",
1647 + "pify": "^2.0.0",
1648 + "pinkie-promise": "^2.0.0"
1649 + }
1650 + },
1651 + "read-pkg": {
1652 + "version": "1.1.0",
1653 + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
1654 + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
1655 + "requires": {
1656 + "load-json-file": "^1.0.0",
1657 + "normalize-package-data": "^2.3.2",
1658 + "path-type": "^1.0.0"
1659 + }
1660 + },
1661 + "read-pkg-up": {
1662 + "version": "1.0.1",
1663 + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
1664 + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
1665 + "requires": {
1666 + "find-up": "^1.0.0",
1667 + "read-pkg": "^1.0.0"
1668 + }
1669 + },
1670 + "strip-bom": {
1671 + "version": "2.0.0",
1672 + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
1673 + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
1674 + "requires": {
1675 + "is-utf8": "^0.2.0"
1676 + }
1677 + }
1678 + }
1679 + },
1680 + "mime-db": {
1681 + "version": "1.36.0",
1682 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
1683 + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw=="
1684 + },
1685 + "mime-types": {
1686 + "version": "2.1.20",
1687 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
1688 + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
1689 + "requires": {
1690 + "mime-db": "~1.36.0"
1691 + }
1692 + },
11731693 "mimic-fn": {
11741694 "version": "1.2.0",
11751695 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
11761696 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
11771697 "dev": true
11781698 },
1699 + "min-document": {
1700 + "version": "2.19.0",
1701 + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
1702 + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
1703 + "requires": {
1704 + "dom-walk": "^0.1.0"
1705 + }
1706 + },
11791707 "minimatch": {
11801708 "version": "3.0.4",
11811709 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
11821710 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
@@ -1204,13 +1732,17 @@
12041732 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
12051733 }
12061734 }
12071735 },
1736 + "morphdom": {
1737 + "version": "2.3.3",
1738 + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.3.3.tgz",
1739 + "integrity": "sha512-z+/GEulEfhrSFPOJSum8o5lZNv63cAGBPeFHO2WgpGo636Ln67ZuVydp2q0iTaZIXdf5FDNP2ZY6uhtg+LjlsA=="
1740 + },
12081741 "ms": {
12091742 "version": "2.1.1",
12101743 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1211- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
1212- "dev": true
1744 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
12131745 },
12141746 "multicb": {
12151747 "version": "1.2.2",
12161748 "resolved": "https://registry.npmjs.org/multicb/-/multicb-1.2.2.tgz",
@@ -1253,8 +1785,13 @@
12531785 "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
12541786 "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==",
12551787 "optional": true
12561788 },
1789 + "nanoassert": {
1790 + "version": "1.1.0",
1791 + "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz",
1792 + "integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40="
1793 + },
12571794 "natural-compare": {
12581795 "version": "1.4.0",
12591796 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
12601797 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
@@ -1283,28 +1820,74 @@
12831820 "normalize-package-data": {
12841821 "version": "2.4.0",
12851822 "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
12861823 "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
1287- "dev": true,
12881824 "requires": {
12891825 "hosted-git-info": "^2.1.4",
12901826 "is-builtin-module": "^1.0.0",
12911827 "semver": "2 || 3 || 4 || 5",
12921828 "validate-npm-package-license": "^3.0.1"
12931829 }
12941830 },
1831 + "nugget": {
1832 + "version": "2.0.1",
1833 + "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz",
1834 + "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=",
1835 + "requires": {
1836 + "debug": "^2.1.3",
1837 + "minimist": "^1.1.0",
1838 + "pretty-bytes": "^1.0.2",
1839 + "progress-stream": "^1.1.0",
1840 + "request": "^2.45.0",
1841 + "single-line-log": "^1.1.2",
1842 + "throttleit": "0.0.2"
1843 + },
1844 + "dependencies": {
1845 + "debug": {
1846 + "version": "2.6.9",
1847 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1848 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1849 + "requires": {
1850 + "ms": "2.0.0"
1851 + }
1852 + },
1853 + "ms": {
1854 + "version": "2.0.0",
1855 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1856 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1857 + }
1858 + }
1859 + },
1860 + "number-is-nan": {
1861 + "version": "1.0.1",
1862 + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
1863 + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
1864 + },
1865 + "oauth-sign": {
1866 + "version": "0.9.0",
1867 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1868 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
1869 + },
12951870 "object-assign": {
12961871 "version": "4.1.1",
12971872 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1298- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1299- "dev": true
1873 + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
13001874 },
13011875 "object-keys": {
13021876 "version": "1.0.12",
13031877 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
13041878 "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
13051879 "dev": true
13061880 },
1881 + "on-load": {
1882 + "version": "3.4.1",
1883 + "resolved": "https://registry.npmjs.org/on-load/-/on-load-3.4.1.tgz",
1884 + "integrity": "sha512-Q3v6aurn5Pif4Rk1QZhnH/azZiKZqiroCcRkPlEccwTl4UFomAGFAqZz8XRCGN/KtuX4DwXCn9SB/edSSoV+Hg==",
1885 + "requires": {
1886 + "global": "^4.3.2",
1887 + "nanoassert": "^1.1.0"
1888 + }
1889 + },
13071890 "once": {
13081891 "version": "1.4.0",
13091892 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
13101893 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
@@ -1393,18 +1976,16 @@
13931976 "parse-json": {
13941977 "version": "2.2.0",
13951978 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
13961979 "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
1397- "dev": true,
13981980 "requires": {
13991981 "error-ex": "^1.2.0"
14001982 }
14011983 },
14021984 "path-exists": {
14031985 "version": "2.1.0",
14041986 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
14051987 "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
1406- "dev": true,
14071988 "requires": {
14081989 "pinkie-promise": "^2.0.0"
14091990 }
14101991 },
@@ -1440,25 +2021,32 @@
14402021 "requires": {
14412022 "pify": "^2.0.0"
14422023 }
14432024 },
2025 + "pend": {
2026 + "version": "1.2.0",
2027 + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
2028 + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
2029 + },
2030 + "performance-now": {
2031 + "version": "2.1.0",
2032 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
2033 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
2034 + },
14442035 "pify": {
14452036 "version": "2.3.0",
14462037 "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1447- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
1448- "dev": true
2038 + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
14492039 },
14502040 "pinkie": {
14512041 "version": "2.0.4",
14522042 "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1453- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
1454- "dev": true
2043 + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
14552044 },
14562045 "pinkie-promise": {
14572046 "version": "2.0.1",
14582047 "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
14592048 "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
1460- "dev": true,
14612049 "requires": {
14622050 "pinkie": "^2.0.0"
14632051 }
14642052 },
@@ -1542,22 +2130,57 @@
15422130 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
15432131 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
15442132 "dev": true
15452133 },
2134 + "pretty-bytes": {
2135 + "version": "1.0.4",
2136 + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
2137 + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
2138 + "requires": {
2139 + "get-stdin": "^4.0.1",
2140 + "meow": "^3.1.0"
2141 + },
2142 + "dependencies": {
2143 + "get-stdin": {
2144 + "version": "4.0.1",
2145 + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
2146 + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
2147 + }
2148 + }
2149 + },
15462150 "private-box": {
15472151 "version": "0.3.0",
15482152 "resolved": "https://registry.npmjs.org/private-box/-/private-box-0.3.0.tgz",
15492153 "integrity": "sha512-zsK6DDEC+cnNiunYamcVbx4ZCLbKnzTOZa09K4Pj3/tH3nQFPUO9K2QoYy4kfxLqmoyw6RPDtACN9OYviMQZ2Q==",
15502154 "requires": {
15512155 "chloride": "^2.2.9"
15522156 }
15532157 },
2158 + "process": {
2159 + "version": "0.5.2",
2160 + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
2161 + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
2162 + },
2163 + "process-nextick-args": {
2164 + "version": "2.0.0",
2165 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
2166 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
2167 + },
15542168 "progress": {
15552169 "version": "2.0.0",
15562170 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
15572171 "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
15582172 "dev": true
15592173 },
2174 + "progress-stream": {
2175 + "version": "1.2.0",
2176 + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz",
2177 + "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=",
2178 + "requires": {
2179 + "speedometer": "~0.1.2",
2180 + "through2": "~0.2.3"
2181 + }
2182 + },
15602183 "prop-types": {
15612184 "version": "15.6.2",
15622185 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
15632186 "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
@@ -1566,8 +2189,13 @@
15662189 "loose-envify": "^1.3.1",
15672190 "object-assign": "^4.1.1"
15682191 }
15692192 },
2193 + "psl": {
2194 + "version": "1.1.29",
2195 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
2196 + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ=="
2197 + },
15702198 "pull-box-stream": {
15712199 "version": "1.0.13",
15722200 "resolved": "https://registry.npmjs.org/pull-box-stream/-/pull-box-stream-1.0.13.tgz",
15732201 "integrity": "sha1-w+JAOY6rP1lRsu0QeMWYi/egork=",
@@ -1674,8 +2302,13 @@
16742302 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
16752303 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
16762304 "dev": true
16772305 },
2306 + "qs": {
2307 + "version": "6.5.2",
2308 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
2309 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
2310 + },
16782311 "rc": {
16792312 "version": "1.2.8",
16802313 "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
16812314 "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
@@ -1717,8 +2350,35 @@
17172350 }
17182351 }
17192352 }
17202353 },
2354 + "readable-stream": {
2355 + "version": "1.1.14",
2356 + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
2357 + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
2358 + "requires": {
2359 + "core-util-is": "~1.0.0",
2360 + "inherits": "~2.0.1",
2361 + "isarray": "0.0.1",
2362 + "string_decoder": "~0.10.x"
2363 + },
2364 + "dependencies": {
2365 + "isarray": {
2366 + "version": "0.0.1",
2367 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
2368 + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
2369 + }
2370 + }
2371 + },
2372 + "redent": {
2373 + "version": "1.0.0",
2374 + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
2375 + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
2376 + "requires": {
2377 + "indent-string": "^2.1.0",
2378 + "strip-indent": "^1.0.1"
2379 + }
2380 + },
17212381 "regexpp": {
17222382 "version": "2.0.1",
17232383 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
17242384 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
@@ -1728,8 +2388,43 @@
17282388 "version": "1.0.2",
17292389 "resolved": "http://registry.npmjs.org/relative-url/-/relative-url-1.0.2.tgz",
17302390 "integrity": "sha1-0hxSpy1gYQGLzun5yfwQa/fWUoc="
17312391 },
2392 + "repeating": {
2393 + "version": "2.0.1",
2394 + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
2395 + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
2396 + "requires": {
2397 + "is-finite": "^1.0.0"
2398 + }
2399 + },
2400 + "request": {
2401 + "version": "2.88.0",
2402 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
2403 + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
2404 + "requires": {
2405 + "aws-sign2": "~0.7.0",
2406 + "aws4": "^1.8.0",
2407 + "caseless": "~0.12.0",
2408 + "combined-stream": "~1.0.6",
2409 + "extend": "~3.0.2",
2410 + "forever-agent": "~0.6.1",
2411 + "form-data": "~2.3.2",
2412 + "har-validator": "~5.1.0",
2413 + "http-signature": "~1.2.0",
2414 + "is-typedarray": "~1.0.0",
2415 + "isstream": "~0.1.2",
2416 + "json-stringify-safe": "~5.0.1",
2417 + "mime-types": "~2.1.19",
2418 + "oauth-sign": "~0.9.0",
2419 + "performance-now": "^2.1.0",
2420 + "qs": "~6.5.2",
2421 + "safe-buffer": "^5.1.2",
2422 + "tough-cookie": "~2.4.3",
2423 + "tunnel-agent": "^0.6.0",
2424 + "uuid": "^3.3.2"
2425 + }
2426 + },
17322427 "require-uncached": {
17332428 "version": "1.0.3",
17342429 "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
17352430 "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
@@ -1804,10 +2499,9 @@
18042499 },
18052500 "safer-buffer": {
18062501 "version": "2.1.2",
18072502 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1808- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1809- "dev": true
2503 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
18102504 },
18112505 "secret-handshake": {
18122506 "version": "1.1.14",
18132507 "resolved": "https://registry.npmjs.org/secret-handshake/-/secret-handshake-1.1.14.tgz",
@@ -1822,10 +2516,9 @@
18222516 },
18232517 "semver": {
18242518 "version": "5.6.0",
18252519 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
1826- "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
1827- "dev": true
2520 + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
18282521 },
18292522 "separator-escape": {
18302523 "version": "0.0.0",
18312524 "resolved": "https://registry.npmjs.org/separator-escape/-/separator-escape-0.0.0.tgz",
@@ -1856,11 +2549,46 @@
18562549 },
18572550 "signal-exit": {
18582551 "version": "3.0.2",
18592552 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1860- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1861- "dev": true
2553 + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
18622554 },
2555 + "single-line-log": {
2556 + "version": "1.1.2",
2557 + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz",
2558 + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=",
2559 + "requires": {
2560 + "string-width": "^1.0.1"
2561 + },
2562 + "dependencies": {
2563 + "is-fullwidth-code-point": {
2564 + "version": "1.0.0",
2565 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
2566 + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
2567 + "requires": {
2568 + "number-is-nan": "^1.0.0"
2569 + }
2570 + },
2571 + "string-width": {
2572 + "version": "1.0.2",
2573 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
2574 + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
2575 + "requires": {
2576 + "code-point-at": "^1.0.0",
2577 + "is-fullwidth-code-point": "^1.0.0",
2578 + "strip-ansi": "^3.0.0"
2579 + }
2580 + },
2581 + "strip-ansi": {
2582 + "version": "3.0.1",
2583 + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2584 + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2585 + "requires": {
2586 + "ansi-regex": "^2.0.0"
2587 + }
2588 + }
2589 + }
2590 + },
18632591 "slice-ansi": {
18642592 "version": "1.0.0",
18652593 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
18662594 "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
@@ -1936,36 +2664,37 @@
19362664 "spdx-correct": {
19372665 "version": "3.0.2",
19382666 "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
19392667 "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
1940- "dev": true,
19412668 "requires": {
19422669 "spdx-expression-parse": "^3.0.0",
19432670 "spdx-license-ids": "^3.0.0"
19442671 }
19452672 },
19462673 "spdx-exceptions": {
19472674 "version": "2.2.0",
19482675 "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
1949- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
1950- "dev": true
2676 + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
19512677 },
19522678 "spdx-expression-parse": {
19532679 "version": "3.0.0",
19542680 "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
19552681 "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
1956- "dev": true,
19572682 "requires": {
19582683 "spdx-exceptions": "^2.1.0",
19592684 "spdx-license-ids": "^3.0.0"
19602685 }
19612686 },
19622687 "spdx-license-ids": {
19632688 "version": "3.0.1",
19642689 "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
1965- "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==",
1966- "dev": true
2690 + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w=="
19672691 },
2692 + "speedometer": {
2693 + "version": "0.1.4",
2694 + "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz",
2695 + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0="
2696 + },
19682697 "split-buffer": {
19692698 "version": "1.0.0",
19702699 "resolved": "http://registry.npmjs.org/split-buffer/-/split-buffer-1.0.0.tgz",
19712700 "integrity": "sha1-t+jgq1E0UVi3LB9tvvJAbVHx0Cc="
@@ -2011,8 +2740,24 @@
20112740 "mkdirp": "~0.5.0",
20122741 "private-box": "^0.3.0"
20132742 }
20142743 },
2744 + "sshpk": {
2745 + "version": "1.15.1",
2746 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz",
2747 + "integrity": "sha512-mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA==",
2748 + "requires": {
2749 + "asn1": "~0.2.3",
2750 + "assert-plus": "^1.0.0",
2751 + "bcrypt-pbkdf": "^1.0.0",
2752 + "dashdash": "^1.12.0",
2753 + "ecc-jsbn": "~0.1.1",
2754 + "getpass": "^0.1.1",
2755 + "jsbn": "~0.1.0",
2756 + "safer-buffer": "^2.0.2",
2757 + "tweetnacl": "~0.14.0"
2758 + }
2759 + },
20152760 "standard": {
20162761 "version": "12.0.1",
20172762 "resolved": "https://registry.npmjs.org/standard/-/standard-12.0.1.tgz",
20182763 "integrity": "sha512-UqdHjh87OG2gUrNCSM4QRLF5n9h3TFPwrCNyVlkqu31Hej0L/rc8hzKqVvkb2W3x0WMq7PzZdkLfEcBhVOR6lg==",
@@ -2059,8 +2804,13 @@
20592804 "is-fullwidth-code-point": "^2.0.0",
20602805 "strip-ansi": "^4.0.0"
20612806 }
20622807 },
2808 + "string_decoder": {
2809 + "version": "0.10.31",
2810 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
2811 + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
2812 + },
20632813 "strip-ansi": {
20642814 "version": "4.0.0",
20652815 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
20662816 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
@@ -2082,13 +2832,59 @@
20822832 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
20832833 "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
20842834 "dev": true
20852835 },
2836 + "strip-indent": {
2837 + "version": "1.0.1",
2838 + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
2839 + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
2840 + "requires": {
2841 + "get-stdin": "^4.0.1"
2842 + },
2843 + "dependencies": {
2844 + "get-stdin": {
2845 + "version": "4.0.1",
2846 + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
2847 + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
2848 + }
2849 + }
2850 + },
20862851 "strip-json-comments": {
20872852 "version": "2.0.1",
20882853 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
20892854 "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
20902855 },
2856 + "subarg": {
2857 + "version": "1.0.0",
2858 + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
2859 + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
2860 + "requires": {
2861 + "minimist": "^1.1.0"
2862 + }
2863 + },
2864 + "sumchecker": {
2865 + "version": "2.0.2",
2866 + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz",
2867 + "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=",
2868 + "requires": {
2869 + "debug": "^2.2.0"
2870 + },
2871 + "dependencies": {
2872 + "debug": {
2873 + "version": "2.6.9",
2874 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2875 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2876 + "requires": {
2877 + "ms": "2.0.0"
2878 + }
2879 + },
2880 + "ms": {
2881 + "version": "2.0.0",
2882 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2883 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
2884 + }
2885 + }
2886 + },
20912887 "supports-color": {
20922888 "version": "2.0.0",
20932889 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
20942890 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
@@ -2119,14 +2915,43 @@
21192915 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
21202916 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
21212917 "dev": true
21222918 },
2919 + "throttleit": {
2920 + "version": "0.0.2",
2921 + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
2922 + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8="
2923 + },
21232924 "through": {
21242925 "version": "2.3.8",
21252926 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
21262927 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
21272928 "dev": true
21282929 },
2930 + "through2": {
2931 + "version": "0.2.3",
2932 + "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
2933 + "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
2934 + "requires": {
2935 + "readable-stream": "~1.1.9",
2936 + "xtend": "~2.1.1"
2937 + },
2938 + "dependencies": {
2939 + "object-keys": {
2940 + "version": "0.4.0",
2941 + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
2942 + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY="
2943 + },
2944 + "xtend": {
2945 + "version": "2.1.2",
2946 + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
2947 + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
2948 + "requires": {
2949 + "object-keys": "~0.4.0"
2950 + }
2951 + }
2952 + }
2953 + },
21292954 "tmp": {
21302955 "version": "0.0.33",
21312956 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
21322957 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
@@ -2134,8 +2959,37 @@
21342959 "requires": {
21352960 "os-tmpdir": "~1.0.2"
21362961 }
21372962 },
2963 + "tough-cookie": {
2964 + "version": "2.4.3",
2965 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
2966 + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
2967 + "requires": {
2968 + "psl": "^1.1.24",
2969 + "punycode": "^1.4.1"
2970 + },
2971 + "dependencies": {
2972 + "punycode": {
2973 + "version": "1.4.1",
2974 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
2975 + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
2976 + }
2977 + }
2978 + },
2979 + "trim-newlines": {
2980 + "version": "1.0.0",
2981 + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
2982 + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
2983 + },
2984 + "tunnel-agent": {
2985 + "version": "0.6.0",
2986 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2987 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2988 + "requires": {
2989 + "safe-buffer": "^5.0.1"
2990 + }
2991 + },
21382992 "tweetnacl": {
21392993 "version": "0.14.5",
21402994 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
21412995 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
@@ -2156,8 +3010,13 @@
21563010 "requires": {
21573011 "prelude-ls": "~1.1.2"
21583012 }
21593013 },
3014 + "typedarray": {
3015 + "version": "0.0.6",
3016 + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
3017 + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
3018 + },
21603019 "ultron": {
21613020 "version": "1.0.2",
21623021 "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
21633022 "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
@@ -2167,8 +3026,13 @@
21673026 "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
21683027 "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
21693028 "dev": true
21703029 },
3030 + "universalify": {
3031 + "version": "0.1.2",
3032 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
3033 + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
3034 + },
21713035 "uri-js": {
21723036 "version": "4.2.2",
21733037 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
21743038 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
@@ -2176,18 +3040,37 @@
21763040 "requires": {
21773041 "punycode": "^2.1.0"
21783042 }
21793043 },
3044 + "util-deprecate": {
3045 + "version": "1.0.2",
3046 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3047 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
3048 + },
3049 + "uuid": {
3050 + "version": "3.3.2",
3051 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
3052 + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
3053 + },
21803054 "validate-npm-package-license": {
21813055 "version": "3.0.4",
21823056 "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
21833057 "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2184- "dev": true,
21853058 "requires": {
21863059 "spdx-correct": "^3.0.0",
21873060 "spdx-expression-parse": "^3.0.0"
21883061 }
21893062 },
3063 + "verror": {
3064 + "version": "1.10.0",
3065 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
3066 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
3067 + "requires": {
3068 + "assert-plus": "^1.0.0",
3069 + "core-util-is": "1.0.2",
3070 + "extsprintf": "^1.2.0"
3071 + }
3072 + },
21903073 "which": {
21913074 "version": "1.3.1",
21923075 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
21933076 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
@@ -2230,7 +3113,24 @@
22303113 "version": "4.0.1",
22313114 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
22323115 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
22333116 "dev": true
3117 + },
3118 + "yauzl": {
3119 + "version": "2.4.1",
3120 + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
3121 + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
3122 + "requires": {
3123 + "fd-slicer": "~1.0.1"
3124 + }
3125 + },
3126 + "yo-yo": {
3127 + "version": "1.4.1",
3128 + "resolved": "https://registry.npmjs.org/yo-yo/-/yo-yo-1.4.1.tgz",
3129 + "integrity": "sha1-nOSwD9iA5VM7Xn9GqT1o2RStb2Q=",
3130 + "requires": {
3131 + "bel": "^4.0.0",
3132 + "morphdom": "^2.1.0"
3133 + }
22343134 }
22353135 }
22363136 }
package.jsonView
@@ -16,10 +16,13 @@
1616 "url": "https://github.com/mixmix/ssb-client-basic/issues"
1717 },
1818 "homepage": "https://github.com/mixmix/ssb-client-basic#readme",
1919 "dependencies": {
20 + "electro": "^2.1.1",
21 + "electron": "^3.0.4",
2022 "pull-paramap": "^1.2.2",
21- "ssb-client": "^4.6.0"
23 + "ssb-client": "^4.6.0",
24 + "yo-yo": "^1.4.1"
2225 },
2326 "devDependencies": {
2427 "standard": "^12.0.1"
2528 }
v03.jsView
@@ -72,21 +72,21 @@
7272 })
7373 )
7474 }
7575
76- function onDone (err, msgs) {
76 + function onDone (err, data) {
7777 if (err) {
7878 console.error('oh noes', err)
7979 server.close()
8080 return
8181 }
8282
83- msgs.forEach(msg => {
83 + data.forEach(msg => {
8484 prettyPrint(msg)
8585 console.log('------')
8686 })
8787
88- console.log(`${msgs.length} messages`)
88 + console.log(`${data.length} messages`)
8989 console.timeEnd('get posts')
9090 server.close()
9191 }
9292 })
async/get-name.jsView
@@ -1,0 +1,50 @@
1 +const pull = require('pull-stream')
2 +
3 +module.exports = function (server) {
4 + if (!server) throw new Error('day-posts helper requires a server!')
5 + if (!server.query) throw new Error('day-posts helper requires a server with the ssb-query installed!')
6 +
7 + return function getAuthorName (feedId, cb) {
8 + // NOTE the data is coming in from the dayPosts source and has been mapped into the form { author, timestamp, text, root }
9 +
10 + // cb is a function provided to us by pull-paramap which we use to pass results out once we're done and to pass things on to the next part of the stream (the collect here)
11 +
12 + const opts = {
13 + limit: 1,
14 + reverse: true,
15 + query: [
16 + {
17 + $filter: {
18 + value: {
19 + author: feedId,
20 + content: {
21 + type: 'about',
22 + about: feedId,
23 + name: { $is: 'string' } // there's a name string present
24 + }
25 + },
26 + timestamp: { $gt: 0 } // a hack that forces ordering by timestamp
27 + }
28 + },
29 + {
30 + $map: {
31 + name: ['value', 'content', 'name']
32 + }
33 + }
34 + ]
35 + }
36 +
37 + pull(
38 + server.query.read(opts),
39 + pull.collect((err, results) => {
40 + if (err) {
41 + cb(err)
42 + return
43 + }
44 +
45 + if (!results || !results.length) cb(null, feedId)
46 + else cb(null, results[0].name)
47 + })
48 + )
49 + }
50 +}
v04.jsView
@@ -1,0 +1,77 @@
1 +const Connection = require('ssb-client')
2 +const pull = require('pull-stream')
3 +pull.paraMap = require('pull-paramap')
4 +const html = require('yo-yo')
5 +const daysPosts = require('./source/days-posts')
6 +const getName = require('./async/get-name')
7 +
8 +const App = html`
9 + <div style="margin: 2rem;">Loading...</div>
10 +`
11 +document.body.appendChild(App)
12 +
13 +Connection((err, server) => {
14 + if (err) throw err
15 +
16 + const today = new Date(2018, 9, 17)
17 +
18 + pull(
19 + daysPosts(server)(today),
20 + pull.paraMap(addName, 50), // run up to 50 asyncrhonous maps in parallel
21 + pull.collect(onDone)
22 + )
23 +
24 + function addName (data, cb) {
25 + // getName is a much less opinionated method which just takes a feedId and asynchronously calls back with a name
26 + // addName is then a function which knows about the shape of the data coming through the stream and how to handle the results
27 + getName(server)(data.author, (err, name) => {
28 + if (err) cb(err)
29 + else {
30 + data.authorName = name
31 + cb(null, data)
32 + }
33 + })
34 + }
35 +
36 + function onDone (err, data) {
37 + if (err) {
38 + console.error('oh noes', err)
39 + server.close()
40 + return
41 + }
42 +
43 + const newView = Messages(data)
44 + html.update(App, newView)
45 +
46 + console.log(`${data.length} messages`)
47 + console.timeEnd('get posts')
48 + server.close()
49 + }
50 +})
51 +
52 +function Messages (data) {
53 + return html`
54 + <div style="font-family: arial;">
55 + ${data.map(Message)}
56 + </div>
57 + `
58 +}
59 +
60 +function Message (msgData) {
61 + const { authorName, timestamp, text, root } = msgData
62 + // this is called 'destructuring' and is equivalent to `const authorName = msgData.authorName` etc
63 +
64 + const thread = root
65 + ? html`
66 + <p style="font-size: .8rem; margin: 0">thread: ${root}</p>
67 + `
68 + : null
69 +
70 + return html`
71 + <div style="margin: 2rem;">
72 + <strong>${authorName}</strong> - ${new Date(timestamp).toLocaleString()}
73 + ${thread}
74 + <p>${text}</p>
75 + </div>
76 + `
77 +}

Built with git-ssb-web