git ssb

2+

mixmix / ticktack



Commit 164ee525d1634ae8922a2161019b8894c9a862f7

Merge remote-tracking branch 'origin/standalone-sbot' into app

Dominic Tarr committed on 8/15/2017, 12:25:17 AM
Parent: 1071420830e9c0d65973ba8c83523dba1402a931
Parent: 5ddb61498a69d813054a66248db01b1b2bca23eb

Files changed

README.mdchanged
app/html/thread.jschanged
blob/sync/url.jschanged
index.jschanged
main.jschanged
package.jsonchanged
assets/base.htmladded
assets/icon.pngadded
background-process.jsadded
package-lock.jsondeleted
config.jsadded
context-menu.jsadded
README.mdView
@@ -1,24 +1,34 @@
11 # Ticktack
22
3-## Planning
3+## Planning
44
55 Workplan 1 : https://hackmd.io/BwZhCYHZwNgFgLRxAU0XAhjECCcBGSDBGSfOSEDAE2oDMBWXIA==?view#
66
77 Trello : https://trello.com/b/93eXDvVP/ticktack
88
99
1010 ## Development
1111
12-### Repos
12+### Repos
1313
1414 - `git@github.com:ticktackim/ticktack-wp1.git`
1515 - `ssb://%tkJPTTaxOzfLbsewZmgC9CslSER0ntjQOcyhIk6y/cQ=.sha256`
1616
1717 ### Install
1818
1919 ```bash
20-npm install
21-npm run setup
22-npm start
20+$ npm install
21+$ npm run setup
22+$ npm start
2323 ```
2424
25+### App env
26+
27+This app starts with default `ssb_appname` of `ticktack-ssb`, so you can find it's data in `~/.ticktack-ssb`.
28+
29+To load the app with your classic ssb key, run :
30+
31+```bash
32+$ ssb_appname=ssb npm start
33+```
34+
app/html/thread.jsView
@@ -16,10 +16,9 @@
1616
1717 function thread (id) {
1818 // location here can expected to be: { page: 'home' }
1919
20- var myId = api.keys.sync.id()
21-
20+ const myId = api.keys.sync.id()
2221 const thread = api.feed.obs.thread(id)
2322 const chunkedMessages = buildChunkedMessages(thread.messages)
2423
2524 const threadView = h('Thread',
blob/sync/url.jsView
@@ -1,11 +1,18 @@
11 const nest = require('depnest')
22
33 exports.gives = nest('blob.sync.url')
44
5+exports.needs = nest({
6+ 'config.sync.load': 'first'
7+})
8+
59 exports.create = function (api) {
610 return nest('blob.sync.url', function (id) {
7- // return id
8-
9- return 'http://localhost:8989/blobs/get/' + id
11+ var config = api.config.sync.load()
12+ var prefix = config.blobsPrefix != null ? config.blobsPrefix : `http://localhost:${config.ws.port}/blobs/get`
13+ if (id && typeof id.link === 'string') {
14+ id = id.link
15+ }
16+ return `${prefix}/${encodeURIComponent(id)}`
1017 })
1118 }
index.jsView
@@ -1,10 +1,136 @@
1-const ticktack = {
2- app: require('./app'),
3- blob: require('./blob'),
4- router: require('./router'),
5- styles: require('./styles'),
6- translations: require('./translations/sync'),
7- state: require('./state/obs')
1+var defaultMenu = require('electron-default-menu')
2+var WindowState = require('electron-window-state')
3+var electron = require('electron')
4+var Menu = electron.Menu
5+var Path = require('path')
6+
7+var windows = {}
8+var quitting = false
9+
10+electron.app.on('ready', () => {
11+ var menu = defaultMenu(electron.app, electron.shell)
12+ var view = menu.find(x => x.label === 'View')
13+ view.submenu = [
14+ { role: 'reload' },
15+ { role: 'toggledevtools' },
16+ { type: 'separator' },
17+ { role: 'resetzoom' },
18+ { role: 'zoomin' },
19+ { role: 'zoomout' },
20+ { type: 'separator' },
21+ { role: 'togglefullscreen' }
22+ ]
23+ if (process.platform === 'darwin') {
24+ var win = menu.find(x => x.label === 'Window')
25+ win.submenu = [
26+ { role: 'minimize' },
27+ { role: 'zoom' },
28+ { role: 'close', label: 'Close' },
29+ { type: 'separator' },
30+ { role: 'front' }
31+ ]
32+ }
33+
34+ Menu.setApplicationMenu(Menu.buildFromTemplate(menu))
35+
36+ startBackgroundProcess()
37+
38+ // wait until server has started before opening main window
39+ electron.ipcMain.once('server-started', function (ev, config) {
40+ openMainWindow()
41+ })
42+
43+ electron.app.on('before-quit', function () {
44+ quitting = true
45+ })
46+
47+ // allow inspecting of background process
48+ electron.ipcMain.on('open-background-devtools', function (ev, config) {
49+ if (windows.background) {
50+ windows.background.webContents.openDevTools({detach: true})
51+ }
52+ })
53+})
54+
55+function startBackgroundProcess () {
56+ if (!windows.background) {
57+ windows.background = openWindow(Path.join(__dirname, 'background-process.js'), {
58+ connect: false,
59+ center: true,
60+ fullscreen: false,
61+ fullscreenable: false,
62+ height: 150,
63+ maximizable: false,
64+ minimizable: false,
65+ resizable: false,
66+ show: false,
67+ skipTaskbar: true,
68+ title: 'ticktack-server',
69+ useContentSize: true,
70+ width: 150
71+ })
72+ }
873 }
974
10-module.exports = ticktack
75+function openMainWindow () {
76+ if (!windows.main) {
77+ var windowState = WindowState({
78+ defaultWidth: 1024,
79+ defaultHeight: 768
80+ })
81+ windows.main = openWindow(Path.join(__dirname, 'main.js'), {
82+ minWidth: 800,
83+ x: windowState.x,
84+ y: windowState.y,
85+ width: windowState.width,
86+ height: windowState.height,
87+ autoHideMenuBar: true,
88+ title: 'Ticktack',
89+ show: true,
90+ backgroundColor: '#EEE',
91+ icon: './assets/icon.png'
92+ })
93+ windowState.manage(windows.main)
94+ windows.main.setSheetOffset(40)
95+ windows.main.on('close', function (e) {
96+ if (!quitting && process.platform === 'darwin') {
97+ e.preventDefault()
98+ windows.main.hide()
99+ }
100+ })
101+ windows.main.on('closed', function () {
102+ windows.main = null
103+ if (process.platform !== 'darwin') electron.app.quit()
104+ })
105+ }
106+}
107+
108+function openWindow (path, opts) {
109+ var window = new electron.BrowserWindow(opts)
110+ window.webContents.on('dom-ready', function () {
111+ window.webContents.executeJavaScript(`
112+ var electron = require('electron')
113+ var h = require('mutant/h')
114+ electron.webFrame.setZoomLevelLimits(1, 1)
115+ var title = ${JSON.stringify(opts.title || 'Ticktack')}
116+ document.documentElement.querySelector('head').appendChild(
117+ h('title', title)
118+ )
119+ require(${JSON.stringify(path)})
120+ `)
121+ })
122+
123+ window.webContents.on('will-navigate', function (e, url) {
124+ e.preventDefault()
125+ electron.shell.openExternal(url)
126+ })
127+
128+ window.webContents.on('new-window', function (e, url) {
129+ e.preventDefault()
130+ electron.shell.openExternal(url)
131+ })
132+
133+ window.loadURL('file://' + Path.join(__dirname, 'assets', 'base.html'))
134+ return window
135+}
136+
main.jsView
@@ -4,11 +4,23 @@
44
55 // polyfills
66 require('setimmediate')
77
8+// add inspect right click menu
9+require('./context-menu')
10+
811 // from more specialized to more general
912 const sockets = combine(
10- require('./'),
13+ {
14+ app: require('./app'),
15+ blob: require('./blob'),
16+ //config: require('./ssb-config'),
17+ config: require('./config'),
18+ router: require('./router'),
19+ styles: require('./styles'),
20+ translations: require('./translations/sync'),
21+ state: require('./state/obs'),
22+ },
1123 require('patch-history'),
1224 require('patchcore')
1325 )
1426
@@ -17,4 +29,6 @@
1729 const app = api.app.html.app()
1830
1931 // TODO (mix) : once app has swapping pages, attach the app to the page here
2032 // document.body.appendChild(app)
33+
34+
package.jsonView
@@ -3,11 +3,11 @@
33 "version": "1.0.0",
44 "description": "",
55 "main": "index.js",
66 "scripts": {
7- "setup": "npm install electron electro -g",
8- "rebuild": "npm rebuild --runtime=electron --target=$(electron -v) --abi=$(electron --abi) --disturl=https://atom.io/download/atom-shell",
9- "start": "electro main.js",
7+ "rebuild": "cross-script npm rebuild --runtime=electron \"--target=$(electron -v)\" \"--abi=$(electron --abi)\" --disturl=https://atom.io/download/atom-shell",
8+ "start": "electron .",
9+ "postinstall": "npm run rebuild",
1010 "test": "echo \"Error: no test specified\" && exit 1"
1111 },
1212 "repository": {
1313 "type": "git",
@@ -15,11 +15,14 @@
1515 },
1616 "author": "",
1717 "license": "GPL-3.0",
1818 "dependencies": {
19+ "cross-script": "^1.0.5",
1920 "depject": "^4.1.0",
2021 "depnest": "^1.3.0",
2122 "hypermore": "^2.0.0",
23+ "electron-default-menu": "^1.0.1",
24+ "electron-window-state": "^4.1.1",
2225 "insert-css": "^2.0.0",
2326 "libnested": "^1.2.1",
2427 "lodash": "^4.17.4",
2528 "micro-css": "^2.0.1",
@@ -32,10 +35,24 @@
3235 "pull-next": "^1.0.1",
3336 "pull-obv": "^1.3.0",
3437 "pull-stream": "^3.6.0",
3538 "read-directory": "^2.1.0",
39+ "scuttlebot": "^10.4.4",
3640 "setimmediate": "^1.0.5",
3741 "ssb-reduce-stream": "^1.0.1",
42+ "ssb-about": "^0.1.0",
43+ "ssb-backlinks": "^0.4.0",
44+ "ssb-blobs": "^1.1.3",
45+ "ssb-contacts": "0.0.2",
46+ "ssb-friends": "^2.2.1",
47+ "ssb-keys": "^7.0.10",
48+ "ssb-private": "^0.1.2",
49+ "ssb-query": "^0.1.2",
3850 "ssb-ref": "^2.7.1",
51+ "ssb-ws": "^1.0.3",
3952 "url": "^0.11.0"
53+ },
54+ "devDependencies": {
55+ "electron": "~1.7.5"
4056 }
4157 }
58+
assets/base.htmlView
@@ -1,0 +1,31 @@
1+<!DOCTYPE html>
2+<html>
3+ <head></head>
4+ <body>
5+ <script>
6+ // redirect console to main process
7+ var electron = require('electron')
8+ var localLog = console.log
9+ var localError = console.error
10+ var remoteLog = electron.remote.getGlobal('console').log
11+ var remoteError = electron.remote.getGlobal('console').error
12+
13+ console.log = function (...args) {
14+ localLog.apply(console, args)
15+ remoteLog(...args)
16+ }
17+
18+ console.error = function (...args) {
19+ localError.apply(console, args)
20+ remoteError(...args)
21+ }
22+
23+ process.exit = electron.remote.app.quit
24+ // redirect errors to stderr
25+ window.addEventListener('error', function (e) {
26+ e.preventDefault()
27+ console.error(e.error.stack || 'Uncaught ' + e.error)
28+ })
29+ </script>
30+ </body>
31+</html>
assets/icon.png
assets/icon.png
background-process.jsView
@@ -1,0 +1,28 @@
1+var fs = require('fs')
2+var Path = require('path')
3+var electron = require('electron')
4+
5+var createSbot = require('scuttlebot')
6+ .use(require('scuttlebot/plugins/master'))
7+ .use(require('scuttlebot/plugins/gossip'))
8+ .use(require('scuttlebot/plugins/replicate'))
9+ .use(require('ssb-friends'))
10+ .use(require('ssb-blobs'))
11+ .use(require('ssb-backlinks'))
12+ .use(require('ssb-private'))
13+ .use(require('scuttlebot/plugins/invite'))
14+ .use(require('scuttlebot/plugins/local'))
15+ .use(require('scuttlebot/plugins/logging'))
16+ .use(require('ssb-query'))
17+ .use(require('ssb-about'))
18+ .use(require('ssb-contacts'))
19+ // .use(require('ssb-ebt'))
20+ .use(require('ssb-ws'))
21+
22+// pull config options out of depject
23+var config = require('./config').create().config.sync.load()
24+
25+var sbot = createSbot(config)
26+var manifest = sbot.getManifest()
27+fs.writeFileSync(Path.join(config.path, 'manifest.json'), JSON.stringify(manifest))
28+electron.ipcRenderer.send('server-started')
package-lock.jsonView
@@ -1,1812 +1,0 @@
1-{
2- "name": "ticktack",
3- "version": "1.0.0",
4- "lockfileVersion": 1,
5- "requires": true,
6- "dependencies": {
7- "acorn": {
8- "version": "5.1.1",
9- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz",
10- "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw=="
11- },
12- "amdefine": {
13- "version": "1.0.1",
14- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
15- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
16- "optional": true
17- },
18- "ansi-regex": {
19- "version": "2.1.1",
20- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
21- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
22- },
23- "ansi-styles": {
24- "version": "2.2.1",
25- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
26- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
27- },
28- "babel-code-frame": {
29- "version": "6.22.0",
30- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
31- "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=",
32- "requires": {
33- "chalk": "1.1.3",
34- "esutils": "2.0.2",
35- "js-tokens": "3.0.2"
36- },
37- "dependencies": {
38- "esutils": {
39- "version": "2.0.2",
40- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
41- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
42- }
43- }
44- },
45- "babel-core": {
46- "version": "6.25.0",
47- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz",
48- "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=",
49- "requires": {
50- "babel-code-frame": "6.22.0",
51- "babel-generator": "6.25.0",
52- "babel-helpers": "6.24.1",
53- "babel-messages": "6.23.0",
54- "babel-register": "6.24.1",
55- "babel-runtime": "6.25.0",
56- "babel-template": "6.25.0",
57- "babel-traverse": "6.25.0",
58- "babel-types": "6.25.0",
59- "babylon": "6.17.4",
60- "convert-source-map": "1.5.0",
61- "debug": "2.6.8",
62- "json5": "0.5.1",
63- "lodash": "4.17.4",
64- "minimatch": "3.0.4",
65- "path-is-absolute": "1.0.1",
66- "private": "0.1.7",
67- "slash": "1.0.0",
68- "source-map": "0.5.6"
69- },
70- "dependencies": {
71- "source-map": {
72- "version": "0.5.6",
73- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
74- "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI="
75- }
76- }
77- },
78- "babel-generator": {
79- "version": "6.25.0",
80- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz",
81- "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=",
82- "requires": {
83- "babel-messages": "6.23.0",
84- "babel-runtime": "6.25.0",
85- "babel-types": "6.25.0",
86- "detect-indent": "4.0.0",
87- "jsesc": "1.3.0",
88- "lodash": "4.17.4",
89- "source-map": "0.5.6",
90- "trim-right": "1.0.1"
91- },
92- "dependencies": {
93- "source-map": {
94- "version": "0.5.6",
95- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
96- "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI="
97- }
98- }
99- },
100- "babel-helper-call-delegate": {
101- "version": "6.24.1",
102- "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
103- "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
104- "requires": {
105- "babel-helper-hoist-variables": "6.24.1",
106- "babel-runtime": "6.25.0",
107- "babel-traverse": "6.25.0",
108- "babel-types": "6.25.0"
109- }
110- },
111- "babel-helper-get-function-arity": {
112- "version": "6.24.1",
113- "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
114- "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
115- "requires": {
116- "babel-runtime": "6.25.0",
117- "babel-types": "6.25.0"
118- }
119- },
120- "babel-helper-hoist-variables": {
121- "version": "6.24.1",
122- "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
123- "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
124- "requires": {
125- "babel-runtime": "6.25.0",
126- "babel-types": "6.25.0"
127- }
128- },
129- "babel-helpers": {
130- "version": "6.24.1",
131- "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
132- "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
133- "requires": {
134- "babel-runtime": "6.25.0",
135- "babel-template": "6.25.0"
136- }
137- },
138- "babel-messages": {
139- "version": "6.23.0",
140- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
141- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
142- "requires": {
143- "babel-runtime": "6.25.0"
144- }
145- },
146- "babel-plugin-check-es2015-constants": {
147- "version": "6.22.0",
148- "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
149- "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
150- "requires": {
151- "babel-runtime": "6.25.0"
152- }
153- },
154- "babel-plugin-transform-es2015-arrow-functions": {
155- "version": "6.22.0",
156- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
157- "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
158- "requires": {
159- "babel-runtime": "6.25.0"
160- }
161- },
162- "babel-plugin-transform-es2015-block-scoping": {
163- "version": "6.24.1",
164- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz",
165- "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=",
166- "requires": {
167- "babel-runtime": "6.25.0",
168- "babel-template": "6.25.0",
169- "babel-traverse": "6.25.0",
170- "babel-types": "6.25.0",
171- "lodash": "4.17.4"
172- }
173- },
174- "babel-plugin-transform-es2015-computed-properties": {
175- "version": "6.24.1",
176- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
177- "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
178- "requires": {
179- "babel-runtime": "6.25.0",
180- "babel-template": "6.25.0"
181- }
182- },
183- "babel-plugin-transform-es2015-destructuring": {
184- "version": "6.23.0",
185- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
186- "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
187- "requires": {
188- "babel-runtime": "6.25.0"
189- }
190- },
191- "babel-plugin-transform-es2015-parameters": {
192- "version": "6.24.1",
193- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
194- "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
195- "requires": {
196- "babel-helper-call-delegate": "6.24.1",
197- "babel-helper-get-function-arity": "6.24.1",
198- "babel-runtime": "6.25.0",
199- "babel-template": "6.25.0",
200- "babel-traverse": "6.25.0",
201- "babel-types": "6.25.0"
202- }
203- },
204- "babel-plugin-transform-es2015-shorthand-properties": {
205- "version": "6.24.1",
206- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
207- "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
208- "requires": {
209- "babel-runtime": "6.25.0",
210- "babel-types": "6.25.0"
211- }
212- },
213- "babel-plugin-transform-es2015-spread": {
214- "version": "6.22.0",
215- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
216- "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
217- "requires": {
218- "babel-runtime": "6.25.0"
219- }
220- },
221- "babel-plugin-transform-es2015-template-literals": {
222- "version": "6.22.0",
223- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
224- "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
225- "requires": {
226- "babel-runtime": "6.25.0"
227- }
228- },
229- "babel-preset-es2040": {
230- "version": "1.1.1",
231- "resolved": "https://registry.npmjs.org/babel-preset-es2040/-/babel-preset-es2040-1.1.1.tgz",
232- "integrity": "sha1-QIzDNyRwggXHgGZ7kw+njfW8j5Q=",
233- "requires": {
234- "babel-plugin-check-es2015-constants": "6.22.0",
235- "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
236- "babel-plugin-transform-es2015-block-scoping": "6.24.1",
237- "babel-plugin-transform-es2015-computed-properties": "6.24.1",
238- "babel-plugin-transform-es2015-destructuring": "6.23.0",
239- "babel-plugin-transform-es2015-parameters": "6.24.1",
240- "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
241- "babel-plugin-transform-es2015-spread": "6.22.0",
242- "babel-plugin-transform-es2015-template-literals": "6.22.0"
243- }
244- },
245- "babel-register": {
246- "version": "6.24.1",
247- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz",
248- "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=",
249- "requires": {
250- "babel-core": "6.25.0",
251- "babel-runtime": "6.25.0",
252- "core-js": "2.5.0",
253- "home-or-tmp": "2.0.0",
254- "lodash": "4.17.4",
255- "mkdirp": "0.5.1",
256- "source-map-support": "0.4.15"
257- }
258- },
259- "babel-runtime": {
260- "version": "6.25.0",
261- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz",
262- "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=",
263- "requires": {
264- "core-js": "2.5.0",
265- "regenerator-runtime": "0.10.5"
266- }
267- },
268- "babel-template": {
269- "version": "6.25.0",
270- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz",
271- "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=",
272- "requires": {
273- "babel-runtime": "6.25.0",
274- "babel-traverse": "6.25.0",
275- "babel-types": "6.25.0",
276- "babylon": "6.17.4",
277- "lodash": "4.17.4"
278- }
279- },
280- "babel-traverse": {
281- "version": "6.25.0",
282- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz",
283- "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=",
284- "requires": {
285- "babel-code-frame": "6.22.0",
286- "babel-messages": "6.23.0",
287- "babel-runtime": "6.25.0",
288- "babel-types": "6.25.0",
289- "babylon": "6.17.4",
290- "debug": "2.6.8",
291- "globals": "9.18.0",
292- "invariant": "2.2.2",
293- "lodash": "4.17.4"
294- }
295- },
296- "babel-types": {
297- "version": "6.25.0",
298- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz",
299- "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=",
300- "requires": {
301- "babel-runtime": "6.25.0",
302- "esutils": "2.0.2",
303- "lodash": "4.17.4",
304- "to-fast-properties": "1.0.3"
305- },
306- "dependencies": {
307- "esutils": {
308- "version": "2.0.2",
309- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
310- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
311- }
312- }
313- },
314- "babylon": {
315- "version": "6.17.4",
316- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz",
317- "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw=="
318- },
319- "balanced-match": {
320- "version": "1.0.0",
321- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
322- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
323- },
324- "brace-expansion": {
325- "version": "1.1.8",
326- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
327- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
328- "requires": {
329- "balanced-match": "1.0.0",
330- "concat-map": "0.0.1"
331- }
332- },
333- "browser-split": {
334- "version": "0.0.1",
335- "resolved": "https://registry.npmjs.org/browser-split/-/browser-split-0.0.1.tgz",
336- "integrity": "sha1-ewl1dPjj6tYG+0Zk5krf3aKYGpM="
337- },
338- "bulk-require": {
339- "version": "1.0.1",
340- "resolved": "https://registry.npmjs.org/bulk-require/-/bulk-require-1.0.1.tgz",
341- "integrity": "sha1-yz0DnmmBOaRE/FdLJh1rOyz0TIk=",
342- "requires": {
343- "glob": "7.1.2"
344- }
345- },
346- "bulkify": {
347- "version": "1.4.2",
348- "resolved": "https://registry.npmjs.org/bulkify/-/bulkify-1.4.2.tgz",
349- "integrity": "sha1-eEjw86uX8SpBuSO/kOU+Ceqvukw=",
350- "requires": {
351- "bulk-require": "1.0.1",
352- "concat-stream": "1.6.0",
353- "static-module": "1.5.0",
354- "through2": "0.4.2"
355- }
356- },
357- "chalk": {
358- "version": "1.1.3",
359- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
360- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
361- "requires": {
362- "ansi-styles": "2.2.1",
363- "escape-string-regexp": "1.0.5",
364- "has-ansi": "2.0.0",
365- "strip-ansi": "3.0.1",
366- "supports-color": "2.0.0"
367- }
368- },
369- "chloride": {
370- "version": "2.2.7",
371- "resolved": "https://registry.npmjs.org/chloride/-/chloride-2.2.7.tgz",
372- "integrity": "sha1-DmqdEYlKvkpEkR05iNoZLiIIt4Y=",
373- "requires": {
374- "is-electron": "2.1.0",
375- "sodium-browserify": "1.2.1",
376- "sodium-browserify-tweetnacl": "0.2.3",
377- "sodium-chloride": "1.1.0",
378- "sodium-native": "1.10.3"
379- }
380- },
381- "chloride-test": {
382- "version": "1.2.2",
383- "resolved": "https://registry.npmjs.org/chloride-test/-/chloride-test-1.2.2.tgz",
384- "integrity": "sha1-F4aGqF6SeARREulujHkXk/mhCuo=",
385- "requires": {
386- "json-buffer": "2.0.11"
387- }
388- },
389- "clone": {
390- "version": "1.0.2",
391- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
392- "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk="
393- },
394- "color-hash": {
395- "version": "1.0.3",
396- "resolved": "https://registry.npmjs.org/color-hash/-/color-hash-1.0.3.tgz",
397- "integrity": "sha1-wOeVLwbQIuVI5l2iOVEr1n04Ce4="
398- },
399- "concat-map": {
400- "version": "0.0.1",
401- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
402- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
403- },
404- "concat-stream": {
405- "version": "1.6.0",
406- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
407- "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
408- "requires": {
409- "inherits": "2.0.3",
410- "readable-stream": "2.3.3",
411- "typedarray": "0.0.6"
412- }
413- },
414- "cont": {
415- "version": "1.0.3",
416- "resolved": "https://registry.npmjs.org/cont/-/cont-1.0.3.tgz",
417- "integrity": "sha1-aHTx6TX8qZ0EjK6qrZoK6wILzOA=",
418- "requires": {
419- "continuable": "1.2.0",
420- "continuable-para": "1.2.0",
421- "continuable-series": "1.2.0"
422- }
423- },
424- "continuable": {
425- "version": "1.2.0",
426- "resolved": "https://registry.npmjs.org/continuable/-/continuable-1.2.0.tgz",
427- "integrity": "sha1-CCd0aNQRNiAAdMz4cpQwjRafJbY="
428- },
429- "continuable-hash": {
430- "version": "0.1.4",
431- "resolved": "https://registry.npmjs.org/continuable-hash/-/continuable-hash-0.1.4.tgz",
432- "integrity": "sha1-gcdNQXcdjJJ4Ph4A5fEbNNbfx4w=",
433- "requires": {
434- "continuable": "1.1.8"
435- },
436- "dependencies": {
437- "continuable": {
438- "version": "1.1.8",
439- "resolved": "https://registry.npmjs.org/continuable/-/continuable-1.1.8.tgz",
440- "integrity": "sha1-3Id7R0FghwrjvN6HM2Jo6+UFl9U="
441- }
442- }
443- },
444- "continuable-list": {
445- "version": "0.1.6",
446- "resolved": "https://registry.npmjs.org/continuable-list/-/continuable-list-0.1.6.tgz",
447- "integrity": "sha1-h88G7FgHFuEN/5X7C4TF8OisrF8=",
448- "requires": {
449- "continuable": "1.1.8"
450- },
451- "dependencies": {
452- "continuable": {
453- "version": "1.1.8",
454- "resolved": "https://registry.npmjs.org/continuable/-/continuable-1.1.8.tgz",
455- "integrity": "sha1-3Id7R0FghwrjvN6HM2Jo6+UFl9U="
456- }
457- }
458- },
459- "continuable-para": {
460- "version": "1.2.0",
461- "resolved": "https://registry.npmjs.org/continuable-para/-/continuable-para-1.2.0.tgz",
462- "integrity": "sha1-RFUQ9klFndD8NchyAVFGEicxxYM=",
463- "requires": {
464- "continuable-hash": "0.1.4",
465- "continuable-list": "0.1.6"
466- }
467- },
468- "continuable-series": {
469- "version": "1.2.0",
470- "resolved": "https://registry.npmjs.org/continuable-series/-/continuable-series-1.2.0.tgz",
471- "integrity": "sha1-MkM5euk6cdZVswJoNKUVkLlYueg="
472- },
473- "convert-source-map": {
474- "version": "1.5.0",
475- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
476- "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU="
477- },
478- "core-js": {
479- "version": "2.5.0",
480- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz",
481- "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY="
482- },
483- "core-util-is": {
484- "version": "1.0.2",
485- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
486- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
487- },
488- "debug": {
489- "version": "2.6.8",
490- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
491- "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
492- "requires": {
493- "ms": "2.0.0"
494- }
495- },
496- "deep-equal": {
497- "version": "1.0.1",
498- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
499- "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
500- },
501- "deep-extend": {
502- "version": "0.4.2",
503- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
504- "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8="
505- },
506- "defaults": {
507- "version": "1.0.3",
508- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
509- "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
510- "requires": {
511- "clone": "1.0.2"
512- }
513- },
514- "depject": {
515- "version": "4.1.0",
516- "resolved": "https://registry.npmjs.org/depject/-/depject-4.1.0.tgz",
517- "integrity": "sha1-nJbqrazRaLrbQIeUv1+GeJg84YM=",
518- "requires": {
519- "libnested": "1.2.1"
520- }
521- },
522- "depnest": {
523- "version": "1.3.0",
524- "resolved": "https://registry.npmjs.org/depnest/-/depnest-1.3.0.tgz",
525- "integrity": "sha1-FL2KNh30RdLTT37LNi1sdFcoiVk=",
526- "requires": {
527- "es2040": "1.2.6",
528- "libnested": "1.2.1"
529- }
530- },
531- "detect-indent": {
532- "version": "4.0.0",
533- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
534- "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
535- "requires": {
536- "repeating": "2.0.1"
537- }
538- },
539- "duplexer2": {
540- "version": "0.0.2",
541- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
542- "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
543- "requires": {
544- "readable-stream": "1.1.14"
545- },
546- "dependencies": {
547- "isarray": {
548- "version": "0.0.1",
549- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
550- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
551- },
552- "readable-stream": {
553- "version": "1.1.14",
554- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
555- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
556- "requires": {
557- "core-util-is": "1.0.2",
558- "inherits": "2.0.3",
559- "isarray": "0.0.1",
560- "string_decoder": "0.10.31"
561- }
562- },
563- "string_decoder": {
564- "version": "0.10.31",
565- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
566- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
567- }
568- }
569- },
570- "each-async": {
571- "version": "1.1.1",
572- "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
573- "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=",
574- "requires": {
575- "onetime": "1.1.0",
576- "set-immediate-shim": "1.0.1"
577- }
578- },
579- "ed2curve": {
580- "version": "0.1.4",
581- "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.1.4.tgz",
582- "integrity": "sha1-lKRCSLuH2jXbDv968KpXYWgRf1k=",
583- "requires": {
584- "tweetnacl": "0.14.5"
585- }
586- },
587- "emoji-named-characters": {
588- "version": "1.0.2",
589- "resolved": "https://registry.npmjs.org/emoji-named-characters/-/emoji-named-characters-1.0.2.tgz",
590- "integrity": "sha1-zes20OZgAsS5178d+8Ohmft9QJs="
591- },
592- "es2040": {
593- "version": "1.2.6",
594- "resolved": "https://registry.npmjs.org/es2040/-/es2040-1.2.6.tgz",
595- "integrity": "sha512-+sAm7CSGH2+0NMZqm63huevZVoyk8OwF8lVIdwPcNtvZxX3YIITGiui8bfLYS8oNcgCgHNYO+QsgMafwo1OWwg==",
596- "requires": {
597- "babel-core": "6.25.0",
598- "babel-preset-es2040": "1.1.1",
599- "through2": "2.0.3"
600- },
601- "dependencies": {
602- "through2": {
603- "version": "2.0.3",
604- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
605- "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
606- "requires": {
607- "readable-stream": "2.3.3",
608- "xtend": "4.0.1"
609- }
610- }
611- }
612- },
613- "escape-string-regexp": {
614- "version": "1.0.5",
615- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
616- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
617- },
618- "escodegen": {
619- "version": "1.3.3",
620- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz",
621- "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=",
622- "requires": {
623- "esprima": "1.1.1",
624- "estraverse": "1.5.1",
625- "esutils": "1.0.0",
626- "source-map": "0.1.43"
627- }
628- },
629- "esprima": {
630- "version": "1.1.1",
631- "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz",
632- "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk="
633- },
634- "estraverse": {
635- "version": "1.5.1",
636- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz",
637- "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E="
638- },
639- "esutils": {
640- "version": "1.0.0",
641- "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz",
642- "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA="
643- },
644- "explain-error": {
645- "version": "1.0.4",
646- "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz",
647- "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk="
648- },
649- "falafel": {
650- "version": "2.1.0",
651- "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz",
652- "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=",
653- "requires": {
654- "acorn": "5.1.1",
655- "foreach": "2.0.5",
656- "isarray": "0.0.1",
657- "object-keys": "1.0.11"
658- },
659- "dependencies": {
660- "isarray": {
661- "version": "0.0.1",
662- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
663- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
664- }
665- }
666- },
667- "foreach": {
668- "version": "2.0.5",
669- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
670- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
671- },
672- "fs.realpath": {
673- "version": "1.0.0",
674- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
675- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
676- },
677- "function-bind": {
678- "version": "1.1.0",
679- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
680- "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E="
681- },
682- "glob": {
683- "version": "7.1.2",
684- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
685- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
686- "requires": {
687- "fs.realpath": "1.0.0",
688- "inflight": "1.0.6",
689- "inherits": "2.0.3",
690- "minimatch": "3.0.4",
691- "once": "1.4.0",
692- "path-is-absolute": "1.0.1"
693- }
694- },
695- "globals": {
696- "version": "9.18.0",
697- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
698- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
699- },
700- "has": {
701- "version": "1.0.1",
702- "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
703- "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
704- "requires": {
705- "function-bind": "1.1.0"
706- }
707- },
708- "has-ansi": {
709- "version": "2.0.0",
710- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
711- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
712- "requires": {
713- "ansi-regex": "2.1.1"
714- }
715- },
716- "hashlru": {
717- "version": "2.2.0",
718- "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.2.0.tgz",
719- "integrity": "sha1-eTpYlD+QKupXgXfXsDNfE/JpS3E="
720- },
721- "home-or-tmp": {
722- "version": "2.0.0",
723- "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
724- "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
725- "requires": {
726- "os-homedir": "1.0.2",
727- "os-tmpdir": "1.0.2"
728- }
729- },
730- "html-escape": {
731- "version": "2.0.0",
732- "resolved": "https://registry.npmjs.org/html-escape/-/html-escape-2.0.0.tgz",
733- "integrity": "sha1-YMjd1GXt8MrgKvnpn99fiDsJvkk="
734- },
735- "human-time": {
736- "version": "0.0.1",
737- "resolved": "https://registry.npmjs.org/human-time/-/human-time-0.0.1.tgz",
738- "integrity": "sha1-KA0DNjeRmTBrLhUY49X2OBy4UH0="
739- },
740- "hypermore": {
741- "version": "2.0.0",
742- "resolved": "https://registry.npmjs.org/hypermore/-/hypermore-2.0.0.tgz",
743- "integrity": "sha512-aNkOCuYOeLbCFmNIjlZY5edhpcuS96Q46YnLwAg2WfPWcj6qUycb7JQO+PPOI4eqJuBUCQADqAPYNBzm/9O6Kg==",
744- "requires": {
745- "mutant": "3.21.2"
746- }
747- },
748- "increment-buffer": {
749- "version": "1.0.1",
750- "resolved": "https://registry.npmjs.org/increment-buffer/-/increment-buffer-1.0.1.tgz",
751- "integrity": "sha1-ZQdtdRidgIs5rROrW5WOBSFvng0="
752- },
753- "inflight": {
754- "version": "1.0.6",
755- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
756- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
757- "requires": {
758- "once": "1.4.0",
759- "wrappy": "1.0.2"
760- }
761- },
762- "inherits": {
763- "version": "2.0.3",
764- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
765- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
766- },
767- "ini": {
768- "version": "1.3.4",
769- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
770- "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4="
771- },
772- "insert-css": {
773- "version": "2.0.0",
774- "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz",
775- "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ="
776- },
777- "invariant": {
778- "version": "2.2.2",
779- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
780- "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
781- "requires": {
782- "loose-envify": "1.3.1"
783- }
784- },
785- "ip": {
786- "version": "1.1.5",
787- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
788- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
789- },
790- "is-electron": {
791- "version": "2.1.0",
792- "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.1.0.tgz",
793- "integrity": "sha512-dkg5xT383+M6zIbbXW/z7n2nz4SFUi2OSyhntnFYkRdtV+HVEfdjEK+5AWisfYgkpe3WYjTIuh7toaKmSfFVWw=="
794- },
795- "is-finite": {
796- "version": "1.0.2",
797- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
798- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
799- "requires": {
800- "number-is-nan": "1.0.1"
801- }
802- },
803- "is-valid-domain": {
804- "version": "0.0.2",
805- "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.0.2.tgz",
806- "integrity": "sha1-PnqUI/98Oy/hFmOvvW04N6JR+3c="
807- },
808- "isarray": {
809- "version": "1.0.0",
810- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
811- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
812- },
813- "js-tokens": {
814- "version": "3.0.2",
815- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
816- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
817- },
818- "jsesc": {
819- "version": "1.3.0",
820- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
821- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
822- },
823- "json-buffer": {
824- "version": "2.0.11",
825- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-2.0.11.tgz",
826- "integrity": "sha1-PkQf2jCYvo0eMXGtWRvGKjPi1V8="
827- },
828- "json5": {
829- "version": "0.5.1",
830- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
831- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
832- },
833- "libnested": {
834- "version": "1.2.1",
835- "resolved": "https://registry.npmjs.org/libnested/-/libnested-1.2.1.tgz",
836- "integrity": "sha1-pwo2mxsPqQd0I0TwRfOhHzSv9R8="
837- },
838- "libsodium": {
839- "version": "0.2.12",
840- "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.2.12.tgz",
841- "integrity": "sha1-gwg1ZNzwicuCpQNb6Sul0iSizN4="
842- },
843- "libsodium-wrappers": {
844- "version": "0.2.12",
845- "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.2.12.tgz",
846- "integrity": "sha1-UftQd0uO3FF5J7MHuBKkbDpGfh4=",
847- "requires": {
848- "libsodium": "0.2.12"
849- }
850- },
851- "lodash": {
852- "version": "4.17.4",
853- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
854- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
855- },
856- "looper": {
857- "version": "3.0.0",
858- "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz",
859- "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k="
860- },
861- "loose-envify": {
862- "version": "1.3.1",
863- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
864- "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
865- "requires": {
866- "js-tokens": "3.0.2"
867- }
868- },
869- "micro-css": {
870- "version": "2.0.1",
871- "resolved": "https://registry.npmjs.org/micro-css/-/micro-css-2.0.1.tgz",
872- "integrity": "sha1-qE1+KmpKtzRpbYWDa52DrHnGj7g=",
873- "requires": {
874- "optimist": "0.6.1"
875- }
876- },
877- "minimatch": {
878- "version": "3.0.4",
879- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
880- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
881- "requires": {
882- "brace-expansion": "1.1.8"
883- }
884- },
885- "minimist": {
886- "version": "0.0.8",
887- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
888- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
889- },
890- "mkdirp": {
891- "version": "0.5.1",
892- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
893- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
894- "requires": {
895- "minimist": "0.0.8"
896- }
897- },
898- "monotonic-timestamp": {
899- "version": "0.0.9",
900- "resolved": "https://registry.npmjs.org/monotonic-timestamp/-/monotonic-timestamp-0.0.9.tgz",
901- "integrity": "sha1-W6Wtx6rIXh1853voRxYe0kazlgM="
902- },
903- "morphdom": {
904- "version": "2.3.3",
905- "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.3.3.tgz",
906- "integrity": "sha512-z+/GEulEfhrSFPOJSum8o5lZNv63cAGBPeFHO2WgpGo636Ln67ZuVydp2q0iTaZIXdf5FDNP2ZY6uhtg+LjlsA=="
907- },
908- "ms": {
909- "version": "2.0.0",
910- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
911- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
912- },
913- "multicb": {
914- "version": "1.2.2",
915- "resolved": "https://registry.npmjs.org/multicb/-/multicb-1.2.2.tgz",
916- "integrity": "sha512-PZM4dhYFmCF6uZGWpEmoPMUqJBywS9IcAgybT2GmSpYI1BvGvoWSdbio+ik+q/YD2vodhvslESWIS3NnkKYdqQ=="
917- },
918- "multiserver": {
919- "version": "1.10.0",
920- "resolved": "https://registry.npmjs.org/multiserver/-/multiserver-1.10.0.tgz",
921- "integrity": "sha1-0pig0AKOClhvkLufyURoTUI5D4g=",
922- "requires": {
923- "pull-cat": "1.1.11",
924- "pull-stream": "3.6.0",
925- "pull-ws": "3.2.9",
926- "secret-handshake": "1.1.11",
927- "separator-escape": "0.0.0",
928- "socks": "1.1.9",
929- "stream-to-pull-stream": "1.7.2"
930- }
931- },
932- "mutant": {
933- "version": "3.21.2",
934- "resolved": "https://registry.npmjs.org/mutant/-/mutant-3.21.2.tgz",
935- "integrity": "sha1-Ez3McBQG5vHQJZHiOjVc+ufIy1M=",
936- "requires": {
937- "browser-split": "0.0.1",
938- "xtend": "4.0.1"
939- }
940- },
941- "mutant-pull-reduce": {
942- "version": "1.1.0",
943- "resolved": "https://registry.npmjs.org/mutant-pull-reduce/-/mutant-pull-reduce-1.1.0.tgz",
944- "integrity": "sha1-lvdwJ7QABhNkrL8mM74ugtVEDmo=",
945- "requires": {
946- "mutant": "3.21.2",
947- "pull-pause": "0.0.0",
948- "pull-stream": "3.6.0"
949- }
950- },
951- "muxrpc": {
952- "version": "6.3.3",
953- "resolved": "https://registry.npmjs.org/muxrpc/-/muxrpc-6.3.3.tgz",
954- "integrity": "sha1-aK2UDvf2Ad+dqe8iEbChc9Uob50=",
955- "requires": {
956- "explain-error": "1.0.4",
957- "packet-stream": "2.0.2",
958- "packet-stream-codec": "1.1.2",
959- "pull-goodbye": "0.0.2",
960- "pull-stream": "3.6.0"
961- }
962- },
963- "nan": {
964- "version": "2.6.2",
965- "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
966- "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=",
967- "optional": true
968- },
969- "node-gyp-build": {
970- "version": "3.2.2",
971- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.2.2.tgz",
972- "integrity": "sha512-t8W/0UqFGl1c+5ORA3NoT3npU+PxWBL9iPhY7ZySSTszodj3RWexmu8niayWBE0v+0DLARvOXsjaAvfmSEQOyQ==",
973- "optional": true
974- },
975- "non-private-ip": {
976- "version": "1.4.2",
977- "resolved": "https://registry.npmjs.org/non-private-ip/-/non-private-ip-1.4.2.tgz",
978- "integrity": "sha1-7VH6e/fpGpxjI5TxBUe2o5Xovq0=",
979- "requires": {
980- "ip": "0.3.3"
981- },
982- "dependencies": {
983- "ip": {
984- "version": "0.3.3",
985- "resolved": "https://registry.npmjs.org/ip/-/ip-0.3.3.tgz",
986- "integrity": "sha1-jugwnpLwsEDSh/cu+soaIXAtP7Q="
987- }
988- }
989- },
990- "number-is-nan": {
991- "version": "1.0.1",
992- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
993- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
994- },
995- "object-inspect": {
996- "version": "0.4.0",
997- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz",
998- "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w="
999- },
1000- "object-keys": {
1001- "version": "1.0.11",
1002- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
1003- "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
1004- },
1005- "obv-debounce": {
1006- "version": "1.0.2",
1007- "resolved": "https://registry.npmjs.org/obv-debounce/-/obv-debounce-1.0.2.tgz",
1008- "integrity": "sha1-AAJjSTfQfYlsGNZr7crvh2h2Sp8="
1009- },
1010- "once": {
1011- "version": "1.4.0",
1012- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1013- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1014- "requires": {
1015- "wrappy": "1.0.2"
1016- }
1017- },
1018- "onetime": {
1019- "version": "1.1.0",
1020- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
1021- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
1022- },
1023- "open-external": {
1024- "version": "0.1.1",
1025- "resolved": "https://registry.npmjs.org/open-external/-/open-external-0.1.1.tgz",
1026- "integrity": "sha1-GfrTVRhBp3TwY8Nxs5+ycXXKjS4="
1027- },
1028- "optimist": {
1029- "version": "0.6.1",
1030- "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
1031- "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
1032- "requires": {
1033- "minimist": "0.0.8",
1034- "wordwrap": "0.0.3"
1035- }
1036- },
1037- "options": {
1038- "version": "0.0.6",
1039- "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
1040- "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="
1041- },
1042- "os-homedir": {
1043- "version": "1.0.2",
1044- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1045- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
1046- },
1047- "os-tmpdir": {
1048- "version": "1.0.2",
1049- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1050- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
1051- },
1052- "packet-stream": {
1053- "version": "2.0.2",
1054- "resolved": "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.2.tgz",
1055- "integrity": "sha1-uQt/m6tKliQiy8nLJHGcNT5JMmc="
1056- },
1057- "packet-stream-codec": {
1058- "version": "1.1.2",
1059- "resolved": "https://registry.npmjs.org/packet-stream-codec/-/packet-stream-codec-1.1.2.tgz",
1060- "integrity": "sha1-ebMC/BRM37tKtv66cEDmpdmcecc=",
1061- "requires": {
1062- "pull-reader": "1.2.9",
1063- "pull-through": "1.0.18"
1064- }
1065- },
1066- "patch-history": {
1067- "version": "1.0.0",
1068- "resolved": "https://registry.npmjs.org/patch-history/-/patch-history-1.0.0.tgz",
1069- "integrity": "sha512-lWc3U5awYkuZIBLiRcDgagtilCEQwb2IN3UAorVrIzdp4+MkyrVH3MQmVazx4YLV4w9AkVUy5Fdyz3yn8v32iw==",
1070- "requires": {
1071- "depject": "4.1.0",
1072- "depnest": "1.3.0",
1073- "lodash": "4.17.4",
1074- "mutant": "3.21.2"
1075- }
1076- },
1077- "patchcore": {
1078- "version": "1.9.1",
1079- "resolved": "https://registry.npmjs.org/patchcore/-/patchcore-1.9.1.tgz",
1080- "integrity": "sha512-TLm96QXRvutu0nvYkpkpCqmlpAxHlVex6rbz6pXdTnne5AYkM1k/VaKX+30vYRQimWtqIpl1zuKb8Q34g2B3iw==",
1081- "requires": {
1082- "bulk-require": "1.0.1",
1083- "bulkify": "1.4.2",
1084- "color-hash": "1.0.3",
1085- "depnest": "1.3.0",
1086- "emoji-named-characters": "1.0.2",
1087- "es2040": "1.2.6",
1088- "hashlru": "2.2.0",
1089- "html-escape": "2.0.0",
1090- "human-time": "0.0.1",
1091- "mutant": "3.21.2",
1092- "mutant-pull-reduce": "1.1.0",
1093- "pull-abortable": "4.1.1",
1094- "pull-cat": "1.1.11",
1095- "pull-reconnect": "0.0.3",
1096- "pull-stream": "3.6.0",
1097- "simple-mime": "0.1.0",
1098- "sorted-array-functions": "1.0.0",
1099- "split-buffer": "1.0.0",
1100- "ssb-client": "4.5.1",
1101- "ssb-config": "2.2.0",
1102- "ssb-feed": "2.3.0",
1103- "ssb-keys": "7.0.10",
1104- "ssb-markdown": "3.3.0",
1105- "ssb-marked": "0.7.2",
1106- "ssb-ref": "2.7.1",
1107- "ssb-sort": "1.0.0",
1108- "xtend": "4.0.1"
1109- }
1110- },
1111- "path-is-absolute": {
1112- "version": "1.0.1",
1113- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1114- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1115- },
1116- "private": {
1117- "version": "0.1.7",
1118- "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
1119- "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE="
1120- },
1121- "private-box": {
1122- "version": "0.2.1",
1123- "resolved": "https://registry.npmjs.org/private-box/-/private-box-0.2.1.tgz",
1124- "integrity": "sha1-HfBhr8pbMDnH/qrdDa8PVvB+PsA=",
1125- "requires": {
1126- "chloride": "2.2.7"
1127- }
1128- },
1129- "process-nextick-args": {
1130- "version": "1.0.7",
1131- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
1132- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
1133- },
1134- "pull-abortable": {
1135- "version": "4.1.1",
1136- "resolved": "https://registry.npmjs.org/pull-abortable/-/pull-abortable-4.1.1.tgz",
1137- "integrity": "sha1-s61a77QRayWRbSbbiTk6yY0NzqE="
1138- },
1139- "pull-box-stream": {
1140- "version": "1.0.13",
1141- "resolved": "https://registry.npmjs.org/pull-box-stream/-/pull-box-stream-1.0.13.tgz",
1142- "integrity": "sha1-w+JAOY6rP1lRsu0QeMWYi/egork=",
1143- "requires": {
1144- "chloride": "2.2.7",
1145- "increment-buffer": "1.0.1",
1146- "pull-reader": "1.2.9",
1147- "pull-stream": "3.6.0",
1148- "pull-through": "1.0.18",
1149- "split-buffer": "1.0.0"
1150- }
1151- },
1152- "pull-cat": {
1153- "version": "1.1.11",
1154- "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz",
1155- "integrity": "sha1-tkLdElXaN2pwa220+pYvX9t0wxs="
1156- },
1157- "pull-defer": {
1158- "version": "0.2.2",
1159- "resolved": "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.2.tgz",
1160- "integrity": "sha1-CIew/7MK8ypW2+z6csFnInHwexM="
1161- },
1162- "pull-goodbye": {
1163- "version": "0.0.2",
1164- "resolved": "https://registry.npmjs.org/pull-goodbye/-/pull-goodbye-0.0.2.tgz",
1165- "integrity": "sha1-jYNX21XiKnEN//DxaoyQtF7+QXE=",
1166- "requires": {
1167- "pull-stream": "3.5.0"
1168- },
1169- "dependencies": {
1170- "pull-stream": {
1171- "version": "3.5.0",
1172- "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.5.0.tgz",
1173- "integrity": "sha1-HuW292/Ts6SaWvtt7VwDIKyzz8c="
1174- }
1175- }
1176- },
1177- "pull-handshake": {
1178- "version": "1.1.4",
1179- "resolved": "https://registry.npmjs.org/pull-handshake/-/pull-handshake-1.1.4.tgz",
1180- "integrity": "sha1-YACg/QGIhM39c3JU+Mxgqypjd5E=",
1181- "requires": {
1182- "pull-cat": "1.1.11",
1183- "pull-pair": "1.1.0",
1184- "pull-pushable": "2.1.1",
1185- "pull-reader": "1.2.9"
1186- }
1187- },
1188- "pull-hash": {
1189- "version": "1.0.0",
1190- "resolved": "https://registry.npmjs.org/pull-hash/-/pull-hash-1.0.0.tgz",
1191- "integrity": "sha1-/K1NJQe/LCsyMfZT3Jv7LbTw2Iw="
1192- },
1193- "pull-next": {
1194- "version": "1.0.1",
1195- "resolved": "https://registry.npmjs.org/pull-next/-/pull-next-1.0.1.tgz",
1196- "integrity": "sha1-A/TX0Zhy/BEUFh6I227PTGXmHlY="
1197- },
1198- "pull-obv": {
1199- "version": "1.3.1",
1200- "resolved": "https://registry.npmjs.org/pull-obv/-/pull-obv-1.3.1.tgz",
1201- "integrity": "sha1-UjNnAxWbMwi7vQvAe/zhgwd4L3A="
1202- },
1203- "pull-pair": {
1204- "version": "1.1.0",
1205- "resolved": "https://registry.npmjs.org/pull-pair/-/pull-pair-1.1.0.tgz",
1206- "integrity": "sha1-fuQnJj/fTaglOXrAoF4atLdL120="
1207- },
1208- "pull-pause": {
1209- "version": "0.0.0",
1210- "resolved": "https://registry.npmjs.org/pull-pause/-/pull-pause-0.0.0.tgz",
1211- "integrity": "sha1-EBpijXF+Gd+/mADp3sjyXTBGGWk="
1212- },
1213- "pull-pushable": {
1214- "version": "2.1.1",
1215- "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.1.1.tgz",
1216- "integrity": "sha1-hmZqu+P1QC8ffq0D7v1pt4Xspbg="
1217- },
1218- "pull-reader": {
1219- "version": "1.2.9",
1220- "resolved": "https://registry.npmjs.org/pull-reader/-/pull-reader-1.2.9.tgz",
1221- "integrity": "sha1-0umtALz7VOYqpm1Cwtu8tetoQ7A="
1222- },
1223- "pull-reconnect": {
1224- "version": "0.0.3",
1225- "resolved": "https://registry.npmjs.org/pull-reconnect/-/pull-reconnect-0.0.3.tgz",
1226- "integrity": "sha1-U9zpzS8rmyEOiIleGfL/xnYh3J4=",
1227- "requires": {
1228- "pull-defer": "0.2.2"
1229- }
1230- },
1231- "pull-stream": {
1232- "version": "3.6.0",
1233- "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.0.tgz",
1234- "integrity": "sha1-WdAzpoFdTjCX1Hw9KxiTqeWKI1E="
1235- },
1236- "pull-through": {
1237- "version": "1.0.18",
1238- "resolved": "https://registry.npmjs.org/pull-through/-/pull-through-1.0.18.tgz",
1239- "integrity": "sha1-jdYjFCY+Wc9Qlur7sSeitu8xBzU=",
1240- "requires": {
1241- "looper": "3.0.0"
1242- }
1243- },
1244- "pull-ws": {
1245- "version": "3.2.9",
1246- "resolved": "https://registry.npmjs.org/pull-ws/-/pull-ws-3.2.9.tgz",
1247- "integrity": "sha1-ipBQKkHZBY/LMJatSCOg8YnWE7o=",
1248- "requires": {
1249- "relative-url": "1.0.2",
1250- "ws": "1.1.4"
1251- }
1252- },
1253- "punycode": {
1254- "version": "1.3.2",
1255- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
1256- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
1257- },
1258- "querystring": {
1259- "version": "0.2.0",
1260- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
1261- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
1262- },
1263- "quote-stream": {
1264- "version": "0.0.0",
1265- "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz",
1266- "integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=",
1267- "requires": {
1268- "minimist": "0.0.8",
1269- "through2": "0.4.2"
1270- }
1271- },
1272- "rc": {
1273- "version": "1.2.1",
1274- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
1275- "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
1276- "requires": {
1277- "deep-extend": "0.4.2",
1278- "ini": "1.3.4",
1279- "minimist": "1.2.0",
1280- "strip-json-comments": "2.0.1"
1281- },
1282- "dependencies": {
1283- "minimist": {
1284- "version": "1.2.0",
1285- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1286- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
1287- }
1288- }
1289- },
1290- "read-directory": {
1291- "version": "2.1.0",
1292- "resolved": "https://registry.npmjs.org/read-directory/-/read-directory-2.1.0.tgz",
1293- "integrity": "sha512-RD9AvPCvlPKI3cKJUT0pAQ/jdJfWYlelF0nm/K8lmS6yMV/Nku8tz72ocD6ThSqkuvxCAPMkIsSLgjkRwNTYDQ==",
1294- "requires": {
1295- "defaults": "1.0.3",
1296- "each-async": "1.1.1",
1297- "glob": "7.1.2",
1298- "static-module": "1.5.0",
1299- "through2": "2.0.3"
1300- },
1301- "dependencies": {
1302- "through2": {
1303- "version": "2.0.3",
1304- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
1305- "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
1306- "requires": {
1307- "readable-stream": "2.3.3",
1308- "xtend": "4.0.1"
1309- }
1310- }
1311- }
1312- },
1313- "readable-stream": {
1314- "version": "2.3.3",
1315- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
1316- "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
1317- "requires": {
1318- "core-util-is": "1.0.2",
1319- "inherits": "2.0.3",
1320- "isarray": "1.0.0",
1321- "process-nextick-args": "1.0.7",
1322- "safe-buffer": "5.1.1",
1323- "string_decoder": "1.0.3",
1324- "util-deprecate": "1.0.2"
1325- }
1326- },
1327- "regenerator-runtime": {
1328- "version": "0.10.5",
1329- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
1330- "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
1331- },
1332- "relative-url": {
1333- "version": "1.0.2",
1334- "resolved": "https://registry.npmjs.org/relative-url/-/relative-url-1.0.2.tgz",
1335- "integrity": "sha1-0hxSpy1gYQGLzun5yfwQa/fWUoc="
1336- },
1337- "repeating": {
1338- "version": "2.0.1",
1339- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
1340- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
1341- "requires": {
1342- "is-finite": "1.0.2"
1343- }
1344- },
1345- "safe-buffer": {
1346- "version": "5.1.1",
1347- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
1348- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
1349- },
1350- "secret-handshake": {
1351- "version": "1.1.11",
1352- "resolved": "https://registry.npmjs.org/secret-handshake/-/secret-handshake-1.1.11.tgz",
1353- "integrity": "sha1-I51hNnjx5cUPIj8mBfNkdc79Zl4=",
1354- "requires": {
1355- "chloride": "2.2.7",
1356- "deep-equal": "1.0.1",
1357- "pull-box-stream": "1.0.13",
1358- "pull-handshake": "1.1.4",
1359- "pull-stream": "3.6.0"
1360- }
1361- },
1362- "separator-escape": {
1363- "version": "0.0.0",
1364- "resolved": "https://registry.npmjs.org/separator-escape/-/separator-escape-0.0.0.tgz",
1365- "integrity": "sha1-5DNnaTICBFTjwUhwxRfqHeVsL6Q="
1366- },
1367- "set-immediate-shim": {
1368- "version": "1.0.1",
1369- "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
1370- "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
1371- },
1372- "setimmediate": {
1373- "version": "1.0.5",
1374- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
1375- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
1376- },
1377- "sha.js": {
1378- "version": "2.4.5",
1379- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.5.tgz",
1380- "integrity": "sha1-J9Fx78yCoRi5ljn/WBZgJCtQbnw=",
1381- "requires": {
1382- "inherits": "2.0.3"
1383- }
1384- },
1385- "shallow-copy": {
1386- "version": "0.0.1",
1387- "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
1388- "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA="
1389- },
1390- "simple-mime": {
1391- "version": "0.1.0",
1392- "resolved": "https://registry.npmjs.org/simple-mime/-/simple-mime-0.1.0.tgz",
1393- "integrity": "sha1-lfUXxPRm18/1YacfydqyWW6p7y4="
1394- },
1395- "slash": {
1396- "version": "1.0.0",
1397- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
1398- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
1399- },
1400- "smart-buffer": {
1401- "version": "1.1.15",
1402- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz",
1403- "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY="
1404- },
1405- "socks": {
1406- "version": "1.1.9",
1407- "resolved": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz",
1408- "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=",
1409- "requires": {
1410- "ip": "1.1.5",
1411- "smart-buffer": "1.1.15"
1412- }
1413- },
1414- "sodium-browserify": {
1415- "version": "1.2.1",
1416- "resolved": "https://registry.npmjs.org/sodium-browserify/-/sodium-browserify-1.2.1.tgz",
1417- "integrity": "sha1-sLVZyjaYFnkIUhSFXiZkXfZ6rxw=",
1418- "requires": {
1419- "libsodium-wrappers": "0.2.12",
1420- "sha.js": "2.4.5",
1421- "tweetnacl": "0.14.5"
1422- }
1423- },
1424- "sodium-browserify-tweetnacl": {
1425- "version": "0.2.3",
1426- "resolved": "https://registry.npmjs.org/sodium-browserify-tweetnacl/-/sodium-browserify-tweetnacl-0.2.3.tgz",
1427- "integrity": "sha1-tVN//LufdOvEQ7i2ohGykej8vI4=",
1428- "requires": {
1429- "chloride-test": "1.2.2",
1430- "ed2curve": "0.1.4",
1431- "sha.js": "2.4.8",
1432- "tweetnacl": "0.14.5",
1433- "tweetnacl-auth": "0.3.1"
1434- },
1435- "dependencies": {
1436- "sha.js": {
1437- "version": "2.4.8",
1438- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
1439- "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
1440- "requires": {
1441- "inherits": "2.0.3"
1442- }
1443- }
1444- }
1445- },
1446- "sodium-chloride": {
1447- "version": "1.1.0",
1448- "resolved": "https://registry.npmjs.org/sodium-chloride/-/sodium-chloride-1.1.0.tgz",
1449- "integrity": "sha1-JHojS4iGf23/UTMrYF8ZOmW/aDk="
1450- },
1451- "sodium-native": {
1452- "version": "1.10.3",
1453- "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-1.10.3.tgz",
1454- "integrity": "sha512-FIeYaG5cc0YZjsAaWP/BCXDNO2xusbtDJbCbEvXrf6/6+dRo/8XCiEG0kwlRcR0wr56sgsZ327BId3ifFe2WYw==",
1455- "optional": true,
1456- "requires": {
1457- "nan": "2.6.2",
1458- "node-gyp-build": "3.2.2"
1459- }
1460- },
1461- "sorted-array-functions": {
1462- "version": "1.0.0",
1463- "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.0.0.tgz",
1464- "integrity": "sha1-wLVU2ecJr/y+VtNMGyUUGX/Tgnk="
1465- },
1466- "source-map": {
1467- "version": "0.1.43",
1468- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
1469- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
1470- "optional": true,
1471- "requires": {
1472- "amdefine": "1.0.1"
1473- }
1474- },
1475- "source-map-support": {
1476- "version": "0.4.15",
1477- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz",
1478- "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=",
1479- "requires": {
1480- "source-map": "0.5.6"
1481- },
1482- "dependencies": {
1483- "source-map": {
1484- "version": "0.5.6",
1485- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
1486- "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI="
1487- }
1488- }
1489- },
1490- "split-buffer": {
1491- "version": "1.0.0",
1492- "resolved": "https://registry.npmjs.org/split-buffer/-/split-buffer-1.0.0.tgz",
1493- "integrity": "sha1-t+jgq1E0UVi3LB9tvvJAbVHx0Cc="
1494- },
1495- "ssb-client": {
1496- "version": "4.5.1",
1497- "resolved": "https://registry.npmjs.org/ssb-client/-/ssb-client-4.5.1.tgz",
1498- "integrity": "sha512-Kn4eoSl3ZuS4BteQAtRIFM52jsGJPar4NJHLjis5OFxV22pNub/JfZHC2FdJBTtkPWJIJZi0ullCsm/EQ1Xs7Q==",
1499- "requires": {
1500- "explain-error": "1.0.4",
1501- "multicb": "1.2.2",
1502- "multiserver": "1.10.0",
1503- "muxrpc": "6.3.3",
1504- "pull-hash": "1.0.0",
1505- "pull-stream": "3.6.0",
1506- "ssb-config": "2.2.0",
1507- "ssb-keys": "7.0.10"
1508- }
1509- },
1510- "ssb-config": {
1511- "version": "2.2.0",
1512- "resolved": "https://registry.npmjs.org/ssb-config/-/ssb-config-2.2.0.tgz",
1513- "integrity": "sha1-QcrQOKhXWvQGLT/VfTsWe+hbA7w=",
1514- "requires": {
1515- "deep-extend": "0.4.2",
1516- "non-private-ip": "1.4.2",
1517- "os-homedir": "1.0.2",
1518- "rc": "1.2.1"
1519- }
1520- },
1521- "ssb-feed": {
1522- "version": "2.3.0",
1523- "resolved": "https://registry.npmjs.org/ssb-feed/-/ssb-feed-2.3.0.tgz",
1524- "integrity": "sha1-uE6OApeg9ZBMTPWiAvdroeB40Ec=",
1525- "requires": {
1526- "cont": "1.0.3",
1527- "monotonic-timestamp": "0.0.9",
1528- "pull-stream": "3.6.0",
1529- "ssb-keys": "7.0.10",
1530- "ssb-ref": "2.7.1"
1531- }
1532- },
1533- "ssb-keys": {
1534- "version": "7.0.10",
1535- "resolved": "https://registry.npmjs.org/ssb-keys/-/ssb-keys-7.0.10.tgz",
1536- "integrity": "sha1-VbelmRXy4CzzN7shnl/Uc2w15ho=",
1537- "requires": {
1538- "chloride": "2.2.7",
1539- "mkdirp": "0.5.1",
1540- "private-box": "0.2.1"
1541- }
1542- },
1543- "ssb-markdown": {
1544- "version": "3.3.0",
1545- "resolved": "https://registry.npmjs.org/ssb-markdown/-/ssb-markdown-3.3.0.tgz",
1546- "integrity": "sha1-kJN3zPmHWotJf2VWBowWxlCWVWI=",
1547- "requires": {
1548- "emoji-named-characters": "1.0.2",
1549- "ssb-marked": "0.7.2",
1550- "ssb-msgs": "5.2.0",
1551- "ssb-ref": "2.7.1"
1552- }
1553- },
1554- "ssb-marked": {
1555- "version": "0.7.2",
1556- "resolved": "https://registry.npmjs.org/ssb-marked/-/ssb-marked-0.7.2.tgz",
1557- "integrity": "sha1-Fg4kETeCqcpegGByqnpl58hl2/I="
1558- },
1559- "ssb-msgs": {
1560- "version": "5.2.0",
1561- "resolved": "https://registry.npmjs.org/ssb-msgs/-/ssb-msgs-5.2.0.tgz",
1562- "integrity": "sha1-xoHaXNcMV0ySLcpPA8UhU4E1wkM=",
1563- "requires": {
1564- "ssb-ref": "2.7.1"
1565- }
1566- },
1567- "ssb-reduce-stream": {
1568- "version": "0.0.0",
1569- "resolved": "https://registry.npmjs.org/ssb-reduce-stream/-/ssb-reduce-stream-0.0.0.tgz",
1570- "integrity": "sha512-YwmRL14bqicMQGQvCuMNa21OwxTmedX1mHDG1O9Ml+O3kXgw9PMx4LNBD2gKH2iw281YPu1yWsfxNsAxcPb1fg=="
1571- },
1572- "ssb-ref": {
1573- "version": "2.7.1",
1574- "resolved": "https://registry.npmjs.org/ssb-ref/-/ssb-ref-2.7.1.tgz",
1575- "integrity": "sha1-XU7/xUXsD/1/wVuieCmmQLiir7o=",
1576- "requires": {
1577- "ip": "1.1.5",
1578- "is-valid-domain": "0.0.2"
1579- }
1580- },
1581- "ssb-sort": {
1582- "version": "1.0.0",
1583- "resolved": "https://registry.npmjs.org/ssb-sort/-/ssb-sort-1.0.0.tgz",
1584- "integrity": "sha1-jplW9QdS0rFYJHsG5Jw/SRwc0ns=",
1585- "requires": {
1586- "ssb-ref": "2.7.1"
1587- }
1588- },
1589- "static-eval": {
1590- "version": "0.2.4",
1591- "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz",
1592- "integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=",
1593- "requires": {
1594- "escodegen": "0.0.28"
1595- },
1596- "dependencies": {
1597- "escodegen": {
1598- "version": "0.0.28",
1599- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz",
1600- "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=",
1601- "requires": {
1602- "esprima": "1.0.4",
1603- "estraverse": "1.3.2",
1604- "source-map": "0.1.43"
1605- }
1606- },
1607- "esprima": {
1608- "version": "1.0.4",
1609- "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
1610- "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0="
1611- },
1612- "estraverse": {
1613- "version": "1.3.2",
1614- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz",
1615- "integrity": "sha1-N8K4k+8T1yPydth41g2FNRUqbEI="
1616- }
1617- }
1618- },
1619- "static-module": {
1620- "version": "1.5.0",
1621- "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.5.0.tgz",
1622- "integrity": "sha1-J9qYg8QajNCSNvhC8MHrxu32PYY=",
1623- "requires": {
1624- "concat-stream": "1.6.0",
1625- "duplexer2": "0.0.2",
1626- "escodegen": "1.3.3",
1627- "falafel": "2.1.0",
1628- "has": "1.0.1",
1629- "object-inspect": "0.4.0",
1630- "quote-stream": "0.0.0",
1631- "readable-stream": "1.0.34",
1632- "shallow-copy": "0.0.1",
1633- "static-eval": "0.2.4",
1634- "through2": "0.4.2"
1635- },
1636- "dependencies": {
1637- "isarray": {
1638- "version": "0.0.1",
1639- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
1640- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
1641- },
1642- "readable-stream": {
1643- "version": "1.0.34",
1644- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
1645- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
1646- "requires": {
1647- "core-util-is": "1.0.2",
1648- "inherits": "2.0.3",
1649- "isarray": "0.0.1",
1650- "string_decoder": "0.10.31"
1651- }
1652- },
1653- "string_decoder": {
1654- "version": "0.10.31",
1655- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
1656- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
1657- }
1658- }
1659- },
1660- "stream-to-pull-stream": {
1661- "version": "1.7.2",
1662- "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.2.tgz",
1663- "integrity": "sha1-dXYJrhzr0zx0MtSvvjH/eGULnd4=",
1664- "requires": {
1665- "looper": "3.0.0",
1666- "pull-stream": "3.6.0"
1667- }
1668- },
1669- "string_decoder": {
1670- "version": "1.0.3",
1671- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
1672- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
1673- "requires": {
1674- "safe-buffer": "5.1.1"
1675- }
1676- },
1677- "strip-ansi": {
1678- "version": "3.0.1",
1679- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1680- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1681- "requires": {
1682- "ansi-regex": "2.1.1"
1683- }
1684- },
1685- "strip-json-comments": {
1686- "version": "2.0.1",
1687- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1688- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
1689- },
1690- "supports-color": {
1691- "version": "2.0.0",
1692- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1693- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
1694- },
1695- "through2": {
1696- "version": "0.4.2",
1697- "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz",
1698- "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=",
1699- "requires": {
1700- "readable-stream": "1.0.34",
1701- "xtend": "2.1.2"
1702- },
1703- "dependencies": {
1704- "isarray": {
1705- "version": "0.0.1",
1706- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
1707- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
1708- },
1709- "object-keys": {
1710- "version": "0.4.0",
1711- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
1712- "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY="
1713- },
1714- "readable-stream": {
1715- "version": "1.0.34",
1716- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
1717- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
1718- "requires": {
1719- "core-util-is": "1.0.2",
1720- "inherits": "2.0.3",
1721- "isarray": "0.0.1",
1722- "string_decoder": "0.10.31"
1723- }
1724- },
1725- "string_decoder": {
1726- "version": "0.10.31",
1727- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
1728- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
1729- },
1730- "xtend": {
1731- "version": "2.1.2",
1732- "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
1733- "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
1734- "requires": {
1735- "object-keys": "0.4.0"
1736- }
1737- }
1738- }
1739- },
1740- "to-fast-properties": {
1741- "version": "1.0.3",
1742- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
1743- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
1744- },
1745- "trim-right": {
1746- "version": "1.0.1",
1747- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
1748- "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
1749- },
1750- "tweetnacl": {
1751- "version": "0.14.5",
1752- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1753- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
1754- },
1755- "tweetnacl-auth": {
1756- "version": "0.3.1",
1757- "resolved": "https://registry.npmjs.org/tweetnacl-auth/-/tweetnacl-auth-0.3.1.tgz",
1758- "integrity": "sha1-t1vC3xVkm7hOi5qjwGacbEvODSU=",
1759- "requires": {
1760- "tweetnacl": "0.14.5"
1761- }
1762- },
1763- "typedarray": {
1764- "version": "0.0.6",
1765- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
1766- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
1767- },
1768- "ultron": {
1769- "version": "1.0.2",
1770- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
1771- "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
1772- },
1773- "url": {
1774- "version": "0.11.0",
1775- "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
1776- "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
1777- "requires": {
1778- "punycode": "1.3.2",
1779- "querystring": "0.2.0"
1780- }
1781- },
1782- "util-deprecate": {
1783- "version": "1.0.2",
1784- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1785- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1786- },
1787- "wordwrap": {
1788- "version": "0.0.3",
1789- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
1790- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
1791- },
1792- "wrappy": {
1793- "version": "1.0.2",
1794- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1795- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1796- },
1797- "ws": {
1798- "version": "1.1.4",
1799- "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.4.tgz",
1800- "integrity": "sha1-V/QNA2gy5fUFVmKjl8Tedu1mv2E=",
1801- "requires": {
1802- "options": "0.0.6",
1803- "ultron": "1.0.2"
1804- }
1805- },
1806- "xtend": {
1807- "version": "4.0.1",
1808- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
1809- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
1810- }
1811- }
1812-}
config.jsView
@@ -1,0 +1,28 @@
1+const Config = require('ssb-config/inject')
2+const nest = require('depnest')
3+const ssbKeys = require('ssb-keys')
4+const Path = require('path')
5+
6+const appName = 'ssb' //'ticktack-ssb'
7+const opts = process.env.ssb_appname== 'ssb' ? {} :{
8+ port: 43750,
9+ blobsPort: 43751,
10+ ws: {
11+ port: 43751
12+ }
13+}
14+
15+exports.gives = nest('config.sync.load')
16+exports.create = (api) => {
17+ var config
18+ return nest('config.sync.load', () => {
19+ if (!config) {
20+ config = Config(process.env.ssb_appname || appName, opts)
21+ config.keys = ssbKeys.loadOrCreateSync(Path.join(config.path, 'secret'))
22+
23+ // HACK: fix offline on windows by specifying 127.0.0.1 instead of localhost (default)
24+ config.remote = `net:127.0.0.1:${config.port}~shs:${config.keys.id.slice(1).replace('.ed25519', '')}`
25+ }
26+ return config
27+ })
28+}
context-menu.jsView
@@ -1,0 +1,24 @@
1+const electron = require('electron')
2+const remote = electron.remote
3+const Menu = remote.Menu
4+
5+var rightClickPosition = null
6+
7+const menu = Menu.buildFromTemplate([
8+ { label: 'Inspect Element',
9+ click: () => {
10+ remote.getCurrentWindow().inspectElement(rightClickPosition.x, rightClickPosition.y)
11+ }
12+ },
13+ { label: 'Inspect Background Process',
14+ click: () => {
15+ electron.ipcRenderer.send('open-background-devtools')
16+ }
17+ }
18+])
19+
20+window.addEventListener('contextmenu', (e) => {
21+ e.preventDefault()
22+ rightClickPosition = {x: e.x, y: e.y}
23+ menu.popup(remote.getCurrentWindow(), {async: true})
24+}, false)

Built with git-ssb-web