├── .gitignore
├── .config
└── configstore
│ ├── update-notifier-npm.json
│ └── update-notifier-pnpm.json
├── index.html
├── package.json
├── editor.js
├── githubButton.js
├── template.js
├── multicore-swarm.js
├── index.css
├── README.md
├── server.js
├── multicore.js
├── index.js
└── shrinkwrap.yaml
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | *.swp
3 |
--------------------------------------------------------------------------------
/.config/configstore/update-notifier-npm.json:
--------------------------------------------------------------------------------
1 | {
2 | "optOut": false,
3 | "lastUpdateCheck": 1519970113519
4 | }
--------------------------------------------------------------------------------
/.config/configstore/update-notifier-pnpm.json:
--------------------------------------------------------------------------------
1 | {
2 | "optOut": false,
3 | "lastUpdateCheck": 1519934471275
4 | }
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Peer-to-Peer Webpage Builder
5 |
6 |
7 |
8 | Generating bundle / loading...
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "codemirror-hypercore",
3 | "version": "0.0.1",
4 | "description": "Experiment with hypercore and websockets",
5 | "main": "server.js",
6 | "scripts": {
7 | "start": "node server.js"
8 | },
9 | "dependencies": {
10 | "brfs": "^1.5.0",
11 | "budo": "^11.1.7",
12 | "choo": "^6.8.0",
13 | "codemirror": "^5.35.0",
14 | "express": "^4.16.2",
15 | "express-ws": "^3.0.0",
16 | "hypercore": "^6.12.2",
17 | "hypercore-archiver": "^4.4.1",
18 | "hyperdiscovery": "^7.0.0",
19 | "hyperdrive": "^9.12.3",
20 | "nanocomponent": "^6.5.1",
21 | "pretty-hash": "^1.0.1",
22 | "random-access-idb": "^1.0.4",
23 | "random-access-memory": "^2.4.0",
24 | "sheetify": "^7.2.0",
25 | "sodium-javascript": "jimpick/sodium-javascript",
26 | "to-buffer": "^1.1.0",
27 | "websocket-stream": "^5.1.1"
28 | },
29 | "engines": {
30 | "node": "9.x"
31 | },
32 | "license": "MIT"
33 | }
34 |
--------------------------------------------------------------------------------
/editor.js:
--------------------------------------------------------------------------------
1 | const Nanocomponent = require('nanocomponent')
2 | const html = require('choo/html')
3 | const CodeMirror = require('codemirror')
4 | const css = require('sheetify')
5 |
6 | require('codemirror/mode/htmlmixed/htmlmixed')
7 | css('codemirror/lib/codemirror.css')
8 |
9 | class Editor extends Nanocomponent {
10 | constructor (indexHtml) {
11 | super()
12 | this.indexHtml = null
13 | }
14 |
15 | createElement (indexHtml) {
16 | this.indexHtml = indexHtml
17 | return html``
18 | }
19 |
20 | load (el) {
21 | this.codemirror = CodeMirror(el, {
22 | lineNumbers: true,
23 | mode: 'text/html',
24 | value: this.indexHtml
25 | })
26 | }
27 |
28 | // Implement conditional rendering
29 | update (indexHtml) {
30 | this.indexHtml = indexHtml
31 | this.codemirror.setValue(this.indexHtml)
32 | // FIXME: update codemirror
33 | return false
34 | }
35 | }
36 |
37 | module.exports = Editor
38 |
--------------------------------------------------------------------------------
/githubButton.js:
--------------------------------------------------------------------------------
1 | const Nanocomponent = require('nanocomponent')
2 | const html = require('choo/html')
3 |
4 | class GitHubButton extends Nanocomponent {
5 | constructor () {
6 | super()
7 | this.loaded = false
8 | }
9 |
10 | createElement () {
11 | return html`
19 | `
20 | }
21 |
22 | load () {
23 | if (this.loaded) return
24 | console.log('Jim load')
25 | setTimeout(() => {
26 | const scriptTag = html``
27 | document.querySelector('head').appendChild(scriptTag)
28 | }, 1000)
29 | }
30 |
31 | // Implement conditional rendering
32 | update () {
33 | return false
34 | }
35 | }
36 |
37 | module.exports = GitHubButton
38 |
--------------------------------------------------------------------------------
/template.js:
--------------------------------------------------------------------------------
1 | module.exports = `
2 |
3 | My Dat Page
4 |
33 |
34 |
35 |
38 |
39 |
40 | This is my page published as a Dat archive.
41 |
42 | Fun times! 🎉
43 |
44 |
45 |
50 |
51 |
52 | `
53 |
--------------------------------------------------------------------------------
/multicore-swarm.js:
--------------------------------------------------------------------------------
1 | var xtend = require('xtend')
2 | var discoverySwarm = require('discovery-swarm')
3 | var defaults = require('datland-swarm-defaults')
4 |
5 | module.exports = swarm
6 |
7 | function swarm (archiver, opts) {
8 | var port = (opts && opts.port) || 3282
9 | var swarmOpts = xtend({
10 | hash: false,
11 | stream: function (replicateOpts) {
12 | replicateOpts.userData = opts.userData
13 | return archiver.replicate(replicateOpts)
14 | }
15 | }, opts)
16 |
17 | var sw = discoverySwarm(defaults(swarmOpts))
18 |
19 | archiver.changes.ready(() => {
20 | sw.join(archiver.changes.discoveryKey)
21 | })
22 |
23 | archiver.on('changes', function (feed) {
24 | sw.join(feed.discoveryKey)
25 | })
26 |
27 | archiver.on('add', function (feed) {
28 | console.log('Adding to Swarm:', feed.key.toString('hex'))
29 | sw.join(feed.discoveryKey)
30 | })
31 |
32 | archiver.on('remove', function (feed) {
33 | sw.leave(feed.discoveryKey)
34 | })
35 |
36 | sw.listen(port)
37 | sw.once('error', function () {
38 | sw.listen()
39 | })
40 |
41 | return sw
42 | }
43 |
--------------------------------------------------------------------------------
/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | position: absolute;
3 | top: 0;
4 | bottom: 0;
5 | left: 0;
6 | right: 0;
7 | display: flex;
8 | flex-direction: column;
9 | }
10 |
11 | header {
12 | display: grid;
13 | grid: repeat(4, 1fr) / repeat(4, 1fr);
14 | flex: 0;
15 | grid-gap: 0.3em;
16 | margin-bottom: 0.3em;
17 | }
18 |
19 | header select {
20 | grid-column: 1 / span 3;
21 | }
22 |
23 |
24 | h2 {
25 | margin: 0 0 0.3em 0;
26 | }
27 |
28 | .title {
29 | grid-row: 2;
30 | grid-column: 1 / span 3;
31 | display: table;
32 | }
33 |
34 | .title span {
35 | display: table-cell;
36 | width: 1%;
37 | }
38 |
39 | .title input {
40 | margin-left: 0.3em;
41 | display: table-cell;
42 | width: 100%;
43 | }
44 |
45 | @media only screen and (min-device-width : 340px) and (max-device-width : 460px) {
46 | .link {
47 | font-size: x-small !important;
48 | }
49 | }
50 |
51 | @media only screen and (max-width : 340px) {
52 | .link {
53 | font-size: xx-small !important;
54 | }
55 | }
56 |
57 | .link {
58 | font-size: small;
59 | grid-row: 3;
60 | grid-column: 1 / span 4;
61 | }
62 |
63 | .help {
64 | color: purple;
65 | }
66 |
67 | .publishBtn {
68 | font-size: medium;
69 | margin: 0 0 1em 0;
70 | padding: 0.3em 0.6em;
71 | grid-column: 4;
72 | grid-row: 1 / span 2;
73 | width: 100%;
74 | height: 100%;
75 | }
76 |
77 | #editor {
78 | height: 100%;
79 | width: 100%;
80 | overflow: auto;
81 | flex: 1;
82 | }
83 |
84 | #editor .CodeMirror {
85 | height: 100%;
86 | width: 100%;
87 | }
88 |
89 | footer {
90 | margin-top: 0.2em;
91 | display: flex;
92 | flex-wrap: wrap;
93 | align-items: center;
94 | }
95 |
96 | footer > * {
97 | margin: 0.1em;
98 | }
99 |
100 | footer > a {
101 | margin-right: 0.2em;
102 | }
103 |
104 | footer #more {
105 | justify-self: end;
106 | width: 7em;
107 | margin-left: auto;
108 | }
109 |
110 | .github-button {
111 | opacity: 0;
112 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # codemirror-multicore
2 |
3 | An experiment to see if it's possible to create Dat web pages from the old web.
4 |
5 | This is a prototype for doing one-click publishing of Dat websites from a regular web browser.
6 |
7 | [https://codemirror-multicore.glitch.me/](https://codemirror-multicore.glitch.me/)
8 |
9 | # Overview
10 |
11 | This is a work-in-progress. This version is a technical prototype.
12 |
13 | Uses indexeddb in the browser to store the master copy. Syncs via websocket to a node.js gateway running on glitch that can talk to the swarm. Supports multiple Dat archives ... you can republish, delete and also export them.
14 |
15 | There's also a hard-coded connection to sync to a [pixelpusherd](https://github.com/automerge/pixelpusherd) instance I have running on a virtual machine on AWS, so the published Dats will stay online even when glitch puts the node.js gateway to sleep.
16 |
17 | It works really well with [Hashbase](https://hashbase.io/). Just publish a quick website with this tool, and then go to hashbase to map it to a regular https url.
18 |
19 | The UX on this version is really simple. I'm going to make another version with gentler onboard for those that are unfamiliar with Dat / Beaker / Hashbase.
20 |
21 | I think the biggest missing feature is the ability to upload attachments for images, etc.
22 |
23 | It's probably not a good idea to open the editor in multiple tabs in your browser ... the hypercores in the indexeddb might get corrupted.
24 |
25 | For this style of publishing to be successful, I think there needs to be a way for users to publish from multiple devices. Right now, the master copy is stored in a single web browser, and it is pretty easy to forget which web browser / computer / website combo you used to publish from, which can be an issue if you want to update.
26 |
27 | # Deploy to Glitch
28 |
29 | [](https://glitch.com/edit/#!/import/github/jimpick/codemirror-multicore)
30 |
31 | Note: Some of the dependencies don't work with pnpm, which glitch will use by default. To use regular
32 | npm, open up a console and type: `enable-npm`
33 |
34 | # License
35 |
36 | MIT
37 |
--------------------------------------------------------------------------------
/server.js:
--------------------------------------------------------------------------------
1 | const budo = require('budo')
2 | const express = require('express')
3 | const expressWebSocket = require('express-ws')
4 | const websocketStream = require('websocket-stream/stream')
5 | const pump = require('pump')
6 | const through2 = require('through2')
7 | const ram = require('random-access-memory')
8 | const hypercore = require('hypercore')
9 | const hyperdiscovery = require('hyperdiscovery')
10 | const sheetify = require('sheetify')
11 | const brfs = require('brfs')
12 | const prettyHash = require('pretty-hash')
13 | const Multicore = require('./multicore')
14 |
15 | require('events').prototype._maxListeners = 100
16 |
17 | // Run a cloud peer using pixelpusherd
18 | // https://github.com/automerge/pixelpusherd
19 |
20 | const defaultCloudPeers = [
21 | 'db26829a97db4a3f30b189357fab79c10c543c8e0a65a9d594eb3cb15e8aba1d'
22 | ]
23 |
24 | const router = express.Router()
25 |
26 | router.get('/page/:key', (req, res, next) => {
27 | req.url = '/index.html'
28 | next()
29 | })
30 |
31 | const multicores = {}
32 |
33 | function attachWebsocket (server) {
34 | console.log('Attaching websocket')
35 | expressWebSocket(router, server, {
36 | perMessageDeflate: false
37 | })
38 |
39 | router.ws('/archiver/:key', (ws, req) => {
40 | const archiverKey = req.params.key
41 | console.log('Websocket initiated for', archiverKey)
42 | let multicore
43 | if (multicores[archiverKey]) {
44 | multicore = multicores[archiverKey]
45 | } else {
46 | multicore = new Multicore(ram, {key: archiverKey})
47 | multicores[archiverKey] = multicore
48 | const ar = multicore.archiver
49 | ar.on('add', feed => {
50 | console.log('archive add', feed.key.toString('hex'))
51 | multicore.replicateFeed(feed)
52 | feed.on('append', () => {
53 | console.log('append', prettyHash(feed.key), feed.length)
54 | })
55 | feed.on('sync', () => {
56 | console.log('sync', prettyHash(feed.key), feed.length)
57 | })
58 | })
59 | ar.on('add-archive', (metadata, content) => {
60 | console.log(
61 | 'archive add-archive',
62 | metadata.key.toString('hex'),
63 | content.key.toString('hex')
64 | )
65 | content.on('append', () => {
66 | console.log(
67 | 'append content',
68 | prettyHash(content.key),
69 | content.length
70 | )
71 | })
72 | content.on('sync', () => {
73 | console.log(
74 | 'sync content',
75 | prettyHash(content.key),
76 | content.length
77 | )
78 | })
79 | })
80 | ar.on('sync', feed => {
81 | console.log('archive fully synced', prettyHash(feed.key))
82 | })
83 | ar.on('ready', () => {
84 | console.log('archive ready', ar.changes.length)
85 | ar.changes.on('append', () => {
86 | console.log('archive changes append', ar.changes.length)
87 | })
88 | ar.changes.on('sync', () => {
89 | console.log('archive changes sync', ar.changes.length)
90 | })
91 | // Join swarm
92 | const sw = multicore.joinSwarm()
93 | sw.on('connection', (peer, info) => {
94 | console.log('Swarm connection', info)
95 | })
96 | // Connect cloud peers
97 | connectCloudPeers(archiverKey)
98 | })
99 | }
100 | const ar = multicore.archiver
101 | ar.ready(() => {
102 | const stream = websocketStream(ws)
103 | pump(
104 | stream,
105 | through2(function (chunk, enc, cb) {
106 | // console.log('From web', chunk)
107 | this.push(chunk)
108 | cb()
109 | }),
110 | ar.replicate({encrypt: false}),
111 | through2(function (chunk, enc, cb) {
112 | // console.log('To web', chunk)
113 | this.push(chunk)
114 | cb()
115 | }),
116 | stream,
117 | err => {
118 | console.log('pipe finished', err.message)
119 | }
120 | )
121 | console.log(
122 | 'Changes feed dk:',
123 | ar.changes.discoveryKey.toString('hex')
124 | )
125 | multicore.replicateFeed(ar.changes)
126 | })
127 | })
128 | }
129 |
130 | function connectCloudPeers (archiverKey) {
131 | const cloudPeers = defaultCloudPeers.reduce((acc, key) => {
132 | acc[key] = {}
133 | return acc
134 | }, {})
135 | Object.keys(cloudPeers).forEach(key => {
136 | console.log('Cloud peer connecting...', key)
137 | const feed = hypercore(ram, key)
138 | feed.ready(() => {
139 | // FIXME: We should encrypt this
140 | const userData = JSON.stringify({key: archiverKey})
141 | const sw = hyperdiscovery(feed, {
142 | stream: () => feed.replicate({userData})
143 | })
144 | sw.on('connection', peer => {
145 | let name
146 | try {
147 | if (peer.remoteUserData) {
148 | const json = JSON.parse(peer.remoteUserData.toString())
149 | name = json.name
150 | console.log('Connected to cloud peer', key, name)
151 | }
152 | } catch (e) {
153 | console.log('Cloud peer JSON parse error')
154 | }
155 | peer.on('error', err => {
156 | console.log('Cloud peer connection error', key, err)
157 | })
158 | peer.on('close', err => {
159 | console.log('Cloud peer connection closed', key, err)
160 | })
161 | })
162 | })
163 | })
164 | }
165 |
166 | const port = process.env.PORT || 5000
167 | const devServer = budo('index.js', {
168 | port,
169 | browserify: {
170 | transform: [ brfs, sheetify ]
171 | },
172 | middleware: [
173 | router
174 | ]
175 | })
176 | devServer.on('connect', event => {
177 | console.log('Listening on', event.uri)
178 | attachWebsocket(event.server)
179 | })
180 |
--------------------------------------------------------------------------------
/multicore.js:
--------------------------------------------------------------------------------
1 | const {EventEmitter} = require('events')
2 | const Archiver = require('hypercore-archiver')
3 | var protocol = require('hypercore-protocol')
4 | const hypercore = require('hypercore')
5 | const hyperdrive = require('hyperdrive')
6 | const crypto = require('hypercore/lib/crypto')
7 | const sodium = require('sodium-universal')
8 | const thunky = require('thunky')
9 | const toBuffer = require('to-buffer')
10 | // const prettyHash = require('pretty-hash')
11 | const swarm = require('./multicore-swarm')
12 |
13 | // Monkey-patch hypercore-archiver so we can create a Hypercore
14 | // directly in the archive
15 |
16 | Archiver.prototype.createFeed = function (key, opts) {
17 | const self = this
18 | opts = opts || {}
19 | if (!key) {
20 | // create key pair
21 | const keyPair = crypto.keyPair()
22 | key = keyPair.publicKey
23 | opts.secretKey = keyPair.secretKey
24 | }
25 | const dk = hypercore.discoveryKey(key).toString('hex')
26 |
27 | if (this.feeds[dk]) {
28 | return this.feeds[dk]
29 | }
30 | if (this.archives[dk]) {
31 | return this.archives[dk]
32 | }
33 |
34 | opts.sparse = this.sparse
35 | const feed = hypercore(storage(key), key, opts)
36 | this.feeds[dk] = feed
37 |
38 | this.changes.append({type: 'add', key: key.toString('hex')})
39 |
40 | return feed
41 |
42 | // copied from hypercore-archiver.prototype._add()
43 | function storage (key) {
44 | var dk = hypercore.discoveryKey(key).toString('hex')
45 | var prefix = dk.slice(0, 2) + '/' + dk.slice(2, 4) + '/' + dk.slice(4) + '/'
46 |
47 | return function (name) {
48 | return self.storage.feeds(prefix + name)
49 | }
50 | }
51 | }
52 |
53 | Archiver.prototype.createArchive = function (key, opts) {
54 | const self = this
55 | const metadataOpts = opts || {}
56 | if (!key) {
57 | // create key pair
58 | const keyPair = crypto.keyPair()
59 | key = keyPair.publicKey
60 | metadataOpts.secretKey = keyPair.secretKey
61 | }
62 | const dk = hypercore.discoveryKey(key).toString('hex')
63 |
64 | if (this.feeds[dk]) {
65 | return this.feeds[dk]
66 | }
67 | if (this.archives[dk]) {
68 | return this.archives[dk]
69 | }
70 |
71 | // Create two hypercores for archive using hypercore-archiver
72 | // file layout
73 | const metadata = hypercore(storage(key), key, metadataOpts)
74 |
75 | /*
76 | const contentKeys = contentKeyPair(metadataOpts.secretKey)
77 | const contentOpts = {
78 | secretKey: contentKeys.secretKey,
79 | storeSecretKey: false
80 | }
81 | const content = hypercore(
82 | storage(contentKeys.publicKey),
83 | contentKeys.publicKey,
84 | contentOpts
85 | )
86 | */
87 |
88 | this.archives[dk] = {
89 | metadataSynced: true,
90 | metadata,
91 | contentSynced: false
92 | }
93 |
94 | const archive = this.getHyperdrive(dk)
95 | archive.ready(() => {
96 | this.archives[dk].contentSynced = true
97 | this.archives[dk].content = archive.content
98 | metadata.emit('_archive')
99 | this.emit('add-archive', metadata, archive.content)
100 |
101 | this.changes.append({type: 'add', key: key.toString('hex')})
102 | })
103 |
104 | return archive
105 |
106 | // copied from hypercore-archiver.prototype._add()
107 | function storage (key) {
108 | var dk = hypercore.discoveryKey(key).toString('hex')
109 | var prefix = dk.slice(0, 2) + '/' + dk.slice(2, 4) + '/' + dk.slice(4) + '/'
110 |
111 | return function (name) {
112 | return self.storage.feeds(prefix + name)
113 | }
114 | }
115 | }
116 |
117 | Archiver.prototype.getHyperdrive = function (dk) {
118 | // console.log('Jim getHyperdrive', dk)
119 | if (!this.archives[dk]) return null
120 | const self = this
121 | const {metadata, content} = this.archives[dk]
122 | const options = {
123 | metadata,
124 | sparse: true,
125 | sparseMetadata: true
126 | }
127 | const contentKeys = contentKeyPair(metadata.secretKey)
128 | if (content) {
129 | options.content = content
130 | content.secretKey = contentKeys.secretKey
131 | }
132 | const contentDk = hypercore.discoveryKey(contentKeys.publicKey)
133 | .toString('hex')
134 | const archive = hyperdrive(storage, metadata.key, options)
135 | if (content) {
136 | archive.key = archive.metadata.key
137 | archive.discoveryKey = archive.metadata.discoveryKey
138 | }
139 | archive.ready(() => {
140 | archive.content.on('append', () => {
141 | // console.log('Jim content append', archive.content.length)
142 | })
143 | archive.content.on('peer-add', peer => {
144 | // console.log('Jim content peer-add', peer)
145 | })
146 | })
147 | return archive
148 |
149 | function storage (name) {
150 | const match = name.match(/^content\/(.*)$/)
151 | let path
152 | if (match) {
153 | path = contentDk.slice(0, 2) + '/' + contentDk.slice(2, 4) + '/' +
154 | contentDk.slice(4) + '/' + match[1]
155 | } else {
156 | throw new Error('Unexpected storage key')
157 | }
158 | return self.storage.feeds(path)
159 | }
160 | }
161 |
162 | // Override so we can pass userData
163 | Archiver.prototype.replicate = function (opts) {
164 | if (!opts) opts = {}
165 |
166 | if (opts.discoveryKey) opts.discoveryKey = toBuffer(opts.discoveryKey, 'hex')
167 | if (opts.key) opts.discoveryKey = hypercore.discoveryKey(toBuffer(opts.key, 'hex'))
168 |
169 | const protocolOpts = {
170 | live: true,
171 | id: this.changes.id,
172 | encrypt: opts.encrypt
173 | }
174 | if (opts.userData) {
175 | protocolOpts.userData = opts.userData
176 | }
177 | // console.log('New replication stream')
178 | var stream = protocol(protocolOpts)
179 | var self = this
180 |
181 | // const added = new Set()
182 |
183 | stream.on('feed', dk => {
184 | // console.log('Protocol feed event:', dk.toString('hex'))
185 | add(dk)
186 | })
187 |
188 | if (opts.channel || opts.discoveryKey) {
189 | const dk = opts.channel || opts.discoveryKey
190 | // console.log('Options channel/dk:', dk.toString('hex'))
191 | add(dk)
192 | }
193 |
194 | this.on('replicateFeed', feed => {
195 | const dk = feed.discoveryKey
196 | // console.log('Replicate feed event:', prettyHash(feed.key), 'dk:', prettyHash(dk))
197 | add(dk)
198 | })
199 |
200 | function add (dk) {
201 | const hex = dk.toString('hex')
202 | // if (added.has(hex)) return
203 | // added.add(hex)
204 | self.ready(function (err) {
205 | // console.log('Add dk', dk.toString('hex'))
206 | if (err) return stream.destroy(err)
207 | if (stream.destroyed) return
208 |
209 | var changesHex = self.changes.discoveryKey.toString('hex')
210 |
211 | var archive = self.archives[hex]
212 | if (archive) return onarchive()
213 |
214 | var feed = changesHex === hex ? self.changes : self.feeds[hex]
215 | if (feed) return onfeed()
216 |
217 | function onarchive () {
218 | archive.metadata.replicate({
219 | stream: stream,
220 | live: true
221 | })
222 | // console.log('Jim replicate content',
223 | // prettyHash(archive.content.key))
224 | archive.content.replicate({
225 | stream: stream,
226 | live: true
227 | })
228 | }
229 |
230 | function onfeed () {
231 | // console.log('Jim onfeed', prettyHash(feed.key),
232 | // 'dk:', prettyHash(feed.discoveryKey))
233 | if (stream.destroyed) return
234 |
235 | stream.on('close', onclose)
236 | stream.on('end', onclose)
237 |
238 | feed.on('_archive', onarchive)
239 | feed.replicate({
240 | stream: stream,
241 | live: true
242 | })
243 | // console.log('Jim feed peers', feed.peers && feed.peers.length)
244 |
245 | function onclose () {
246 | feed.removeListener('_archive', onarchive)
247 | }
248 |
249 | function onarchive () {
250 | if (stream.destroyed) return
251 |
252 | var content = self.archives[hex].content
253 | // console.log('Jim onfeed replicate content',
254 | // prettyHash(content.key))
255 | content.replicate({
256 | stream: stream,
257 | live: true
258 | })
259 | }
260 | }
261 | })
262 | }
263 |
264 | return stream
265 | }
266 |
267 | class Multicore extends EventEmitter {
268 | constructor (storage, opts) {
269 | super()
270 | opts = opts || {}
271 | this.archiver = new Archiver(storage, opts.key)
272 | this.ready = thunky(open)
273 | const self = this
274 |
275 | function open (cb) {
276 | self.opened = true
277 | self.archiver.on('ready', () => {
278 | self.emit('ready')
279 | cb()
280 | })
281 | }
282 | }
283 |
284 | createFeed (key, opts) {
285 | if (!this.opened) {
286 | throw new Error('multicore not ready, use .ready()')
287 | }
288 | return this.archiver.createFeed(key, opts)
289 | }
290 |
291 | createArchive (key, opts) {
292 | if (!this.opened) {
293 | throw new Error('multicore not ready, use .ready()')
294 | }
295 | return this.archiver.createArchive(key, opts)
296 | }
297 |
298 | joinSwarm (opts) {
299 | opts = Object.assign({}, opts, {live: true})
300 | // this.emit('debugLog', `Swarm opts: ${JSON.stringify(opts)}`)
301 | const sw = swarm(this.archiver, opts)
302 | this.swarm = sw
303 | this.archiver.ready(() => {
304 | const feeds = this.archiver.feeds
305 | Object.keys(feeds).forEach(key => {
306 | const feed = feeds[key]
307 | sw.join(feed.discoveryKey)
308 | })
309 | })
310 | return sw
311 | }
312 |
313 | replicateFeed (feed) {
314 | this.archiver.emit('replicateFeed', feed)
315 | }
316 | }
317 |
318 | // From hyperdrive
319 | function contentKeyPair (secretKey) {
320 | var seed = Buffer.alloc(sodium.crypto_sign_SEEDBYTES)
321 | var context = Buffer.from('hyperdri') // 8 byte context
322 | var keyPair = {
323 | publicKey: Buffer.alloc(sodium.crypto_sign_PUBLICKEYBYTES),
324 | secretKey: Buffer.alloc(sodium.crypto_sign_SECRETKEYBYTES)
325 | }
326 |
327 | sodium.crypto_kdf_derive_from_key(seed, 1, context, secretKey)
328 | sodium.crypto_sign_seed_keypair(keyPair.publicKey, keyPair.secretKey, seed)
329 | if (seed.fill) seed.fill(0)
330 |
331 | return keyPair
332 | }
333 |
334 | module.exports = Multicore
335 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | const html = require('choo/html')
2 | // const devtools = require('choo-devtools')
3 | const choo = require('choo')
4 | const storage = require('random-access-idb')('codemirror-multicore')
5 | const websocket = require('websocket-stream')
6 | const pump = require('pump')
7 | const prettyHash = require('pretty-hash')
8 | const toBuffer = require('to-buffer')
9 | const hypercore = require('hypercore')
10 | const Editor = require('./editor')
11 | const GitHubButton = require('./githubButton')
12 | const Multicore = require('./multicore')
13 | const template = require('./template')
14 |
15 | require('events').prototype._maxListeners = 100
16 |
17 | const app = choo()
18 | // app.use(devtools())
19 | app.use(store)
20 | app.route('/', mainView)
21 | app.route('/page/:key', mainView)
22 | app.mount('body')
23 |
24 | const editor = new Editor()
25 | const gitHubButton = new GitHubButton()
26 |
27 | function mainView (state, emit) {
28 | let link = html`Edit the HTML below, then click on "Publish" to create a new web site!`
29 | let webPageKey
30 | let disabledNoCurrent = 'disabled'
31 | if (state.currentArchive && state.currentArchive.key) {
32 | webPageKey = state.currentArchive.key.toString('hex')
33 | const url = `dat://${webPageKey}`
34 | link = html`${url}`
35 | disabledNoCurrent = null
36 | }
37 | let found = false
38 | const optionList = Object.keys(state.archives).sort().map(key => {
39 | let label = prettyHash(key)
40 | const title = state.archives[key].title
41 | if (title) {
42 | label += ` ${title}`
43 | }
44 | const selected = webPageKey === key ? 'selected' : ''
45 | if (selected) found = true
46 | return html``
47 | })
48 | const optGroup = optionList.length > 0 ? html`
49 | ` : null
52 | const selectNew = found ? '' : 'selected'
53 | return html`
54 |
55 |
56 | Create a webpage on the Peer-to-Peer Web!
57 |
58 |
74 | ${editor.render(state.indexHtml)}
75 |
91 |
92 | `
93 |
94 | function selectPage (e) {
95 | const key = e.target.value
96 | if (key === 'new') {
97 | emit('pushState', `/`)
98 | } else {
99 | emit('pushState', `/page/${key}`)
100 | }
101 | }
102 |
103 | function selectMore (e) {
104 | console.log('Jim more', e.target.value)
105 | switch (e.target.value) {
106 | case 'Delete':
107 | const ok = confirm(
108 | 'Delete this web page?\n\n' +
109 | 'This will delete the master copy in your web browser, ' +
110 | 'but other replicas that may have been synced will ' +
111 | 'still exist.'
112 | )
113 | if (ok) {
114 | emit('delete', webPageKey)
115 | }
116 | break;
117 | case 'Export':
118 | const secretKey = state.currentArchive.metadata.secretKey.toString('hex')
119 | console.log('Export', webPageKey, secretKey)
120 | alert(
121 | 'You can export the data and the secret key to the command-line ' +
122 | 'dat tool. First, you need to clone the data:\n\n' +
123 | `dat clone dat://${webPageKey}\n\n` +
124 | 'Then change directory into the new directory, and import the ' +
125 | 'secret key:\n\n' +
126 | 'dat keys import\n\n' +
127 | `The secret key is:\n\n${secretKey}\n\n` +
128 | 'IMPORTANT: Delete your old master copy in the web browser after importing, as ' +
129 | 'there must only be one master copy.'
130 | )
131 | break;
132 | case 'Settings':
133 | alert('Settings')
134 | break;
135 | }
136 | e.target.selectedIndex = 0
137 | }
138 | }
139 |
140 | function store (state, emitter) {
141 | state.archives = {}
142 | state.currentArchive = null
143 | state.indexHtml = ''
144 | state.title = ''
145 |
146 | function debugStorage (name) {
147 | // console.log('debugStorage:', name)
148 | return storage(name)
149 | }
150 | const multicore = new Multicore(debugStorage)
151 | multicore.ready(() => {
152 | const archiverKey = multicore.archiver.changes.key.toString('hex')
153 | console.log('Archiver key:', archiverKey)
154 |
155 | emitter.on('publish', () => {
156 | const archive = state.currentArchive ? state.currentArchive
157 | : multicore.createArchive()
158 | const value = editor.codemirror.getValue()
159 | archive.ready(() => {
160 | const key = archive.key.toString('hex')
161 | const datJson = {
162 | url: `dat://${key}/`,
163 | title: document.getElementById('title').value,
164 | description: ''
165 | }
166 | archive.writeFile('/dat.json', JSON.stringify(datJson, null, 2), err => {
167 | if (err) {
168 | console.error('Error writing to Dat', err)
169 | return
170 | }
171 | archive.writeFile('/index.html', value, err => {
172 | if (err) {
173 | console.error('Error writing to Dat', err)
174 | return
175 | }
176 | console.log(
177 | `Published:\n` +
178 | `metadata ${prettyHash(archive.metadata.key)} ` +
179 | `dk: ${prettyHash(archive.metadata.discoveryKey)} ` +
180 | `length: ${archive.metadata.length}\n` +
181 | `content ${prettyHash(archive.content.key)} ` +
182 | `dk: ${prettyHash(archive.content.discoveryKey)} ` +
183 | `length: ${archive.content.length}`
184 | )
185 | state.currentArchive = archive
186 | multicore.replicateFeed(archive)
187 | emitter.emit('pushState', `/page/${key}`)
188 | })
189 | })
190 | })
191 | })
192 |
193 | emitter.on('navigate', updateDoc)
194 |
195 | emitter.on('delete', key => {
196 | console.log('Deleting', key)
197 | state.currentArchive = null
198 | state.indexHtml = ''
199 | state.title = ''
200 | multicore.archiver.remove(key, () => {
201 | delete state.archives[key]
202 | emitter.emit('pushState', '/')
203 | })
204 | })
205 |
206 | const host = document.location.host
207 | const proto = document.location.protocol === 'https:' ? 'wss' : 'ws'
208 | const url = `${proto}://${host}/archiver/${archiverKey}`
209 |
210 | function connectWebsocket () {
211 | console.log('Connecting websocket', url)
212 | const stream = websocket(url)
213 | pump(
214 | stream,
215 | multicore.archiver.replicate({encrypt: false}),
216 | stream,
217 | err => {
218 | console.log('Pipe finished', err.message)
219 | connectWebsocket()
220 | }
221 | )
222 | }
223 | connectWebsocket()
224 |
225 | multicore.archiver.on('add', feed => {
226 | multicore.replicateFeed(feed)
227 | })
228 | multicore.archiver.on('add-archive', readMetadata)
229 | Object.keys(multicore.archiver.archives).forEach(dk => {
230 | const archive = multicore.archiver.archives[dk]
231 | readMetadata(archive.metadata, archive.content)
232 | })
233 | updateDoc()
234 |
235 | function updateDoc () {
236 | if (!state.params.key) {
237 | state.title = 'My Dat Page'
238 | state.indexHtml = template
239 | state.currentArchive = null
240 | emitter.emit('render')
241 | } else {
242 | const key = state.params.key
243 | /*
244 | if (
245 | state.currentArchive &&
246 | state.currentArchive.key.toString('hex') === key
247 | ) return
248 | */
249 | let archive
250 | if (state.archives[key] && state.archives[key].archive) {
251 | archive = state.archives[key].archive
252 | console.log('Key found (cached)', key)
253 | } else {
254 | const dk = hypercore.discoveryKey(toBuffer(key, 'hex'))
255 | .toString('hex')
256 | if (multicore.archiver.archives[dk]) {
257 | archive = multicore.archiver.getHyperdrive(dk)
258 | if (!state.archives[key]) {
259 | state.archives[key] = {dk}
260 | }
261 | state.archives[key].archive = archive
262 | console.log('Key found (loaded)', key)
263 | } else {
264 | console.error('Key not found locally', key)
265 | // It might be better to display an error in the UI
266 | emitter.emit('pushState', '/')
267 | }
268 | }
269 | readMetadata(archive.metadata)
270 | archive.readFile('index.html', 'utf-8', (err, data) => {
271 | if (err) {
272 | console.error('Error reading index.html', key, err)
273 | return
274 | }
275 | try {
276 | state.indexHtml = data
277 | state.currentArchive = archive
278 | emitter.emit('render')
279 | } catch (e) {
280 | // FIXME: Throw an error to the UI
281 | }
282 | })
283 | }
284 | }
285 |
286 | function readMetadata (metadata) {
287 | const key = metadata.key.toString('hex')
288 | const dk = metadata.discoveryKey.toString('hex')
289 | if (!state.archives[key]) {
290 | state.archives[key] = {dk}
291 | }
292 | emitter.emit('render')
293 | let archive
294 | if (state.archives[key].archive) {
295 | archive = state.archives[key].archive
296 | } else {
297 | archive = multicore.archiver.getHyperdrive(dk)
298 | state.archives[key].archive = archive
299 | }
300 | archive.readFile('dat.json', 'utf-8', (err, data) => {
301 | if (err) {
302 | // console.error('Error reading dat.json', key, err)
303 | return
304 | }
305 | try {
306 | const {title} = JSON.parse(data.toString())
307 | state.archives[key].title = title
308 | if (state.params.key === key) state.title = title
309 | emitter.emit('render')
310 | } catch (e) {
311 | // Don't worry about it
312 | }
313 | })
314 | }
315 | })
316 | }
317 |
--------------------------------------------------------------------------------
/shrinkwrap.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | brfs: 1.5.0
3 | budo: 11.1.7
4 | choo: 6.8.0
5 | codemirror: 5.35.0
6 | express: 4.16.2
7 | express-ws: 3.0.0
8 | hypercore: 6.12.2
9 | hypercore-archiver: 4.4.1
10 | hyperdiscovery: 7.0.0
11 | hyperdrive: 9.12.3
12 | nanocomponent: 6.5.1
13 | pretty-hash: 1.0.1
14 | random-access-idb: 1.0.4
15 | random-access-memory: 2.4.0
16 | sheetify: 7.3.0
17 | to-buffer: 1.1.0
18 | websocket-stream: 5.1.1
19 | packages:
20 | /JSONStream/1.3.2:
21 | dependencies:
22 | jsonparse: 1.3.1
23 | through: 2.3.8
24 | dev: false
25 | resolution:
26 | integrity: sha1-wQI3G27Dp887hHygDCC7D85Mbeo=
27 | /abstract-random-access/1.1.2:
28 | dependencies:
29 | inherits: 2.0.3
30 | dev: false
31 | resolution:
32 | integrity: sha1-mo6sj/eYZvP5tLsUQ8p3jxWYrto=
33 | /accepts/1.3.5:
34 | dependencies:
35 | mime-types: 2.1.18
36 | negotiator: 0.6.1
37 | dev: false
38 | engines:
39 | node: '>= 0.6'
40 | resolution:
41 | integrity: sha1-63d99gEXI6OxTopywIBcjoZ0a9I=
42 | /acorn-node/1.3.0:
43 | dependencies:
44 | acorn: 5.5.0
45 | xtend: 4.0.1
46 | dev: false
47 | resolution:
48 | integrity: sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw==
49 | /acorn/4.0.13:
50 | dev: false
51 | engines:
52 | node: '>=0.4.0'
53 | resolution:
54 | integrity: sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=
55 | /acorn/5.5.0:
56 | dev: false
57 | engines:
58 | node: '>=0.4.0'
59 | resolution:
60 | integrity: sha512-arn53F07VXmls4o4pUhSzBa4fvaagPRe7AVZ8l7NHxFWUie2DsuFSBMMNAkgzRlOhEhzAnxeKyaWVzOH4xqp/g==
61 | /ansi-regex/0.2.1:
62 | dev: false
63 | engines:
64 | node: '>=0.10.0'
65 | resolution:
66 | integrity: sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=
67 | /ansi-regex/2.1.1:
68 | dev: false
69 | engines:
70 | node: '>=0.10.0'
71 | resolution:
72 | integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
73 | /ansi-styles/1.1.0:
74 | dev: false
75 | engines:
76 | node: '>=0.10.0'
77 | resolution:
78 | integrity: sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=
79 | /ansi-styles/2.0.1:
80 | dev: false
81 | engines:
82 | node: '>=0.10.0'
83 | resolution:
84 | integrity: sha1-sDP1f5Pi0oreuLwRE4+hPaD9IKM=
85 | /ansi-styles/2.2.1:
86 | dev: false
87 | engines:
88 | node: '>=0.10.0'
89 | resolution:
90 | integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
91 | /anymatch/1.3.2:
92 | dependencies:
93 | micromatch: 2.3.11
94 | normalize-path: 2.1.1
95 | dev: false
96 | resolution:
97 | integrity: sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==
98 | /append-tree/2.4.1:
99 | dependencies:
100 | array-lru: 1.1.1
101 | codecs: 1.2.0
102 | from2: 2.3.0
103 | inherits: 2.0.3
104 | mutexify: 1.2.0
105 | process-nextick-args: 1.0.7
106 | protocol-buffers-encodings: 1.1.0
107 | varint: 5.0.0
108 | dev: false
109 | resolution:
110 | integrity: sha512-50lPt4EpHH3zyO5/ErR+mPi9ufiS/GCpWIm09r6QZlQHBGMzuwaS3ICyPMWrWgw+00rWuOugRM8acXR31JKwvg==
111 | /arr-diff/2.0.0:
112 | dependencies:
113 | arr-flatten: 1.1.0
114 | dev: false
115 | engines:
116 | node: '>=0.10.0'
117 | resolution:
118 | integrity: sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
119 | /arr-flatten/1.1.0:
120 | dev: false
121 | engines:
122 | node: '>=0.10.0'
123 | resolution:
124 | integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
125 | /array-filter/0.0.1:
126 | dev: false
127 | resolution:
128 | integrity: sha1-fajPLiZijtcygDWB/SH2fKzS7uw=
129 | /array-flatten/1.1.1:
130 | dev: false
131 | resolution:
132 | integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
133 | /array-lru/1.1.1:
134 | dev: false
135 | resolution:
136 | integrity: sha1-DH4bTgIq4Wb/HoRIxZXzGB/NMzc=
137 | /array-map/0.0.0:
138 | dev: false
139 | resolution:
140 | integrity: sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=
141 | /array-reduce/0.0.0:
142 | dev: false
143 | resolution:
144 | integrity: sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=
145 | /array-unique/0.2.1:
146 | dev: false
147 | engines:
148 | node: '>=0.10.0'
149 | resolution:
150 | integrity: sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
151 | /asn1.js/4.10.1:
152 | dependencies:
153 | bn.js: 4.11.8
154 | inherits: 2.0.3
155 | minimalistic-assert: 1.0.0
156 | dev: false
157 | resolution:
158 | integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
159 | /assert/1.4.1:
160 | dependencies:
161 | util: 0.10.3
162 | dev: false
163 | resolution:
164 | integrity: sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=
165 | /astw/2.2.0:
166 | dependencies:
167 | acorn: 4.0.13
168 | dev: false
169 | resolution:
170 | integrity: sha1-e9QXhNMkk5h66yOba04cV6hzuRc=
171 | /async-each/1.0.1:
172 | dev: false
173 | resolution:
174 | integrity: sha1-GdOGodntxufByF04iu28xW0zYC0=
175 | /async-limiter/1.0.0:
176 | dev: false
177 | resolution:
178 | integrity: sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
179 | /atomic-batcher/1.0.2:
180 | dev: false
181 | resolution:
182 | integrity: sha1-0WkB0QzOxZUWwZe5zNiTBom4E7Q=
183 | /attempt-x/1.1.3:
184 | dev: false
185 | resolution:
186 | integrity: sha512-y/+ek8IjxVpTbj/phC87jK5YRhlP5Uu7FlQdCmYuut1DTjNruyrGqUWi5bcX1VKsQX1B0FX16A1hqHomKpHv3A==
187 | /balanced-match/1.0.0:
188 | dev: false
189 | resolution:
190 | integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
191 | /base64-js/1.2.3:
192 | dev: false
193 | resolution:
194 | integrity: sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==
195 | /bel/5.1.7:
196 | dependencies:
197 | hyperx: 2.3.3
198 | is-electron: 2.1.0
199 | pelo: 0.1.0
200 | dev: false
201 | resolution:
202 | integrity: sha512-f3aAzoq2ilK3ErDsv47uo2qK9NTKHkguI7j6sJi6ynKS9vPG180QGU8BzHas6xPnIsKj+m7YXlDSm9BmaZHNrg==
203 | /bencode/1.0.0:
204 | dependencies:
205 | safe-buffer: 5.1.1
206 | dev: false
207 | resolution:
208 | integrity: sha512-N+VOSP5MkoX+xgnp6Y056iCY5TmCZg9rgPNPQe0bIiXchxYFP4vs/Tf0dTdQ+qQhP7HM2gvfFq+sUVjQsGy5Zw==
209 | /bencode/2.0.0:
210 | dependencies:
211 | safe-buffer: 5.1.1
212 | dev: false
213 | resolution:
214 | integrity: sha512-wr2HwwrUpfB5c68zmAudOltC7rZ1G0+lQOcnuEcfIM3AWAVnB3rHI3nlgd/2CWTfQ3w3zagKt89zni/M+VLZ8g==
215 | /binary-extensions/1.11.0:
216 | dev: false
217 | engines:
218 | node: '>=0.10.0'
219 | resolution:
220 | integrity: sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=
221 | /bitfield-rle/2.1.0:
222 | dependencies:
223 | varint: 4.0.1
224 | dev: false
225 | resolution:
226 | integrity: sha1-rinpOCp7pImN6fSLsj/TOMT73Pg=
227 | /bittorrent-dht/7.10.0:
228 | dependencies:
229 | bencode: 1.0.0
230 | buffer-equals: 1.0.4
231 | debug: 3.1.0
232 | inherits: 2.0.3
233 | k-bucket: 3.3.1
234 | k-rpc: 4.2.1
235 | lru: 3.1.0
236 | randombytes: 2.0.6
237 | safe-buffer: 5.1.1
238 | simple-sha1: 2.1.0
239 | dev: false
240 | resolution:
241 | integrity: sha512-fvb6M58Ceiv/S94nu6zeaiMoJvUYOeIqRbgaClm+kJTzCAqJPtAR/31pXNYB5iEReOoKqQB5zY33gY0W6ZRWQQ==
242 | /blake2b-wasm/1.1.7:
243 | dependencies:
244 | nanoassert: 1.1.0
245 | dev: false
246 | resolution:
247 | integrity: sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA==
248 | /blake2b/2.1.2:
249 | dependencies:
250 | blake2b-wasm: 1.1.7
251 | nanoassert: 1.1.0
252 | dev: false
253 | resolution:
254 | integrity: sha1-aIDt3KNc/t6SxPsnJCITNPmJFFo=
255 | /bn.js/4.11.8:
256 | dev: false
257 | resolution:
258 | integrity: sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
259 | /body-parser/1.18.2:
260 | dependencies:
261 | bytes: 3.0.0
262 | content-type: 1.0.4
263 | debug: 2.6.9
264 | depd: 1.1.2
265 | http-errors: 1.6.2
266 | iconv-lite: 0.4.19
267 | on-finished: 2.3.0
268 | qs: 6.5.1
269 | raw-body: 2.3.2
270 | type-is: 1.6.16
271 | dev: false
272 | engines:
273 | node: '>= 0.8'
274 | resolution:
275 | integrity: sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=
276 | /bole/2.0.0:
277 | dependencies:
278 | core-util-is: 1.0.2
279 | individual: 3.0.0
280 | json-stringify-safe: 5.0.1
281 | dev: false
282 | resolution:
283 | integrity: sha1-2KocaQRnv7T+Ebh0rLLoOH44JhU=
284 | /brace-expansion/1.1.11:
285 | dependencies:
286 | balanced-match: 1.0.0
287 | concat-map: 0.0.1
288 | dev: false
289 | resolution:
290 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
291 | /braces/1.8.5:
292 | dependencies:
293 | expand-range: 1.8.2
294 | preserve: 0.2.0
295 | repeat-element: 1.1.2
296 | dev: false
297 | engines:
298 | node: '>=0.10.0'
299 | resolution:
300 | integrity: sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
301 | /brfs/1.5.0:
302 | dependencies:
303 | quote-stream: 1.0.2
304 | resolve: 1.5.0
305 | static-module: 2.2.0
306 | through2: 2.0.3
307 | dev: false
308 | resolution:
309 | integrity: sha512-PscWJn5IGjcK5g5lqEeRPYJ5efZk93YbopLu6UXZcb9dPZUfMN/UMyyT/tddpi7A9yIDM9TEdCOA3A4WGST1hg==
310 | /brorand/1.1.0:
311 | dev: false
312 | resolution:
313 | integrity: sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
314 | /browser-pack/6.0.4:
315 | dependencies:
316 | JSONStream: 1.3.2
317 | combine-source-map: 0.8.0
318 | defined: 1.0.0
319 | safe-buffer: 5.1.1
320 | through2: 2.0.3
321 | umd: 3.0.1
322 | dev: false
323 | resolution:
324 | integrity: sha512-Q4Rvn7P6ObyWfc4stqLWHtG1MJ8vVtjgT24Zbu+8UTzxYuZouqZsmNRRTFVMY/Ux0eIKv1d+JWzsInTX+fdHPQ==
325 | /browser-resolve/1.11.2:
326 | dependencies:
327 | resolve: 1.1.7
328 | dev: false
329 | resolution:
330 | integrity: sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=
331 | /browserify-aes/1.1.1:
332 | dependencies:
333 | buffer-xor: 1.0.3
334 | cipher-base: 1.0.4
335 | create-hash: 1.1.3
336 | evp_bytestokey: 1.0.3
337 | inherits: 2.0.3
338 | safe-buffer: 5.1.1
339 | dev: false
340 | resolution:
341 | integrity: sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==
342 | /browserify-cipher/1.0.0:
343 | dependencies:
344 | browserify-aes: 1.1.1
345 | browserify-des: 1.0.0
346 | evp_bytestokey: 1.0.3
347 | dev: false
348 | resolution:
349 | integrity: sha1-mYgkSHS/XtTijalWZtzWasj8Njo=
350 | /browserify-des/1.0.0:
351 | dependencies:
352 | cipher-base: 1.0.4
353 | des.js: 1.0.0
354 | inherits: 2.0.3
355 | dev: false
356 | resolution:
357 | integrity: sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=
358 | /browserify-rsa/4.0.1:
359 | dependencies:
360 | bn.js: 4.11.8
361 | randombytes: 2.0.6
362 | dev: false
363 | resolution:
364 | integrity: sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
365 | /browserify-sign/4.0.4:
366 | dependencies:
367 | bn.js: 4.11.8
368 | browserify-rsa: 4.0.1
369 | create-hash: 1.1.3
370 | create-hmac: 1.1.6
371 | elliptic: 6.4.0
372 | inherits: 2.0.3
373 | parse-asn1: 5.1.0
374 | dev: false
375 | resolution:
376 | integrity: sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
377 | /browserify-zlib/0.2.0:
378 | dependencies:
379 | pako: 1.0.6
380 | dev: false
381 | resolution:
382 | integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
383 | /browserify/15.2.0:
384 | dependencies:
385 | JSONStream: 1.3.2
386 | assert: 1.4.1
387 | browser-pack: 6.0.4
388 | browser-resolve: 1.11.2
389 | browserify-zlib: 0.2.0
390 | buffer: 5.1.0
391 | cached-path-relative: 1.0.1
392 | concat-stream: 1.5.2
393 | console-browserify: 1.1.0
394 | constants-browserify: 1.0.0
395 | crypto-browserify: 3.12.0
396 | defined: 1.0.0
397 | deps-sort: 2.0.0
398 | domain-browser: 1.1.7
399 | duplexer2: 0.1.4
400 | events: 1.1.1
401 | glob: 7.1.2
402 | has: 1.0.1
403 | htmlescape: 1.1.1
404 | https-browserify: 1.0.0
405 | inherits: 2.0.3
406 | insert-module-globals: 7.0.2
407 | labeled-stream-splicer: 2.0.0
408 | mkdirp: 0.5.1
409 | module-deps: 5.0.1
410 | os-browserify: 0.3.0
411 | parents: 1.0.1
412 | path-browserify: 0.0.0
413 | process: 0.11.10
414 | punycode: 1.4.1
415 | querystring-es3: 0.2.1
416 | read-only-stream: 2.0.0
417 | readable-stream: 2.3.4
418 | resolve: 1.5.0
419 | shasum: 1.0.2
420 | shell-quote: 1.6.1
421 | stream-browserify: 2.0.1
422 | stream-http: 2.8.0
423 | string_decoder: 1.0.3
424 | subarg: 1.0.0
425 | syntax-error: 1.4.0
426 | through2: 2.0.3
427 | timers-browserify: 1.4.2
428 | tty-browserify: 0.0.1
429 | url: 0.11.0
430 | util: 0.10.3
431 | vm-browserify: 0.0.4
432 | xtend: 4.0.1
433 | dev: false
434 | engines:
435 | node: '>= 0.8'
436 | resolution:
437 | integrity: sha512-IHYyFPm2XjJCL+VV0ZtFv8wn/sAHVOm83q3yfSn8YWbZ9jcybgPKxSDdiuMU+35jUL1914l74RnXXPD9Iyo9yg==
438 | /budo/11.1.7:
439 | dependencies:
440 | bole: 2.0.0
441 | browserify: 15.2.0
442 | chokidar: 1.7.0
443 | connect-pushstate: 1.1.0
444 | escape-html: 1.0.3
445 | events: 1.1.1
446 | garnish: 5.2.0
447 | get-ports: 1.0.3
448 | inject-lr-script: 2.1.0
449 | internal-ip: 3.0.1
450 | micromatch: 2.3.11
451 | on-finished: 2.3.0
452 | on-headers: 1.0.1
453 | once: 1.4.0
454 | opn: 3.0.3
455 | path-is-absolute: 1.0.1
456 | pem: 1.12.3
457 | reload-css: 1.0.2
458 | resolve: 1.5.0
459 | serve-static: 1.13.2
460 | simple-html-index: 1.5.0
461 | stacked: 1.1.1
462 | stdout-stream: 1.4.0
463 | strip-ansi: 3.0.1
464 | subarg: 1.0.0
465 | term-color: 1.0.1
466 | url-trim: 1.0.0
467 | watchify-middleware: 1.8.0
468 | ws: 1.1.5
469 | xtend: 4.0.1
470 | dev: false
471 | resolution:
472 | integrity: sha512-m3WzjiO/ZzPAn1TiHM4gIRc/TfOKqf6VmM4SWSCRMCHKzHVpgoYdoY4zIwSoSItEC0dcOIM78+ECRNIDTvdwcw==
473 | /buffer-alloc-unsafe/0.1.1:
474 | dev: false
475 | resolution:
476 | integrity: sha1-/+H2dVHdBVc33iUzN7/oU9+rGmo=
477 | /buffer-alloc-unsafe/1.0.0:
478 | dev: false
479 | resolution:
480 | integrity: sha1-R0qojzTnvHX6MR0uZFdAnFhGw/4=
481 | /buffer-alloc/1.1.0:
482 | dependencies:
483 | buffer-alloc-unsafe: 0.1.1
484 | buffer-fill: 0.1.0
485 | dev: false
486 | resolution:
487 | integrity: sha1-BVFNM78WVtNUDGhPZbEgLpDsowM=
488 | /buffer-equal/0.0.1:
489 | dev: false
490 | engines:
491 | node: '>=0.4.0'
492 | resolution:
493 | integrity: sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
494 | /buffer-equals/1.0.4:
495 | dev: false
496 | engines:
497 | node: '>=0.10.0'
498 | resolution:
499 | integrity: sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U=
500 | /buffer-fill/0.1.0:
501 | dev: false
502 | resolution:
503 | integrity: sha1-ypRw6NTRuXf9dUP04qtqfclRAag=
504 | /buffer-from/0.1.1:
505 | dependencies:
506 | is-array-buffer-x: 1.7.0
507 | dev: false
508 | resolution:
509 | integrity: sha1-V7GLHaChnsBvM4N6UnWiQjUb114=
510 | /buffer-indexof/1.1.1:
511 | dev: false
512 | resolution:
513 | integrity: sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
514 | /buffer-xor/1.0.3:
515 | dev: false
516 | resolution:
517 | integrity: sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
518 | /buffer/5.1.0:
519 | dependencies:
520 | base64-js: 1.2.3
521 | ieee754: 1.1.8
522 | dev: false
523 | resolution:
524 | integrity: sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==
525 | /builtin-status-codes/3.0.0:
526 | dev: false
527 | resolution:
528 | integrity: sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
529 | /bulk-write-stream/1.1.3:
530 | dependencies:
531 | inherits: 2.0.3
532 | readable-stream: 2.3.4
533 | dev: false
534 | resolution:
535 | integrity: sha1-0pyjhfvVPzV67lvT0wKHMrYq4nU=
536 | /bytes/3.0.0:
537 | dev: false
538 | engines:
539 | node: '>= 0.8'
540 | resolution:
541 | integrity: sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
542 | /cached-constructors-x/1.0.2:
543 | dev: false
544 | resolution:
545 | integrity: sha512-7lKwmwXweW6E/31RHAJemLtZPfb2xvcABXknFF4b/dNYv4DbSGTgQHckXLQkNw6BB4HKFYW6mJgsNjADAy1ehw==
546 | /cached-path-relative/1.0.1:
547 | dev: false
548 | resolution:
549 | integrity: sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=
550 | /chalk/0.5.1:
551 | dependencies:
552 | ansi-styles: 1.1.0
553 | escape-string-regexp: 1.0.5
554 | has-ansi: 0.1.0
555 | strip-ansi: 0.3.0
556 | supports-color: 0.2.0
557 | dev: false
558 | engines:
559 | node: '>=0.10.0'
560 | resolution:
561 | integrity: sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=
562 | /chalk/1.1.3:
563 | dependencies:
564 | ansi-styles: 2.2.1
565 | escape-string-regexp: 1.0.5
566 | has-ansi: 2.0.0
567 | strip-ansi: 3.0.1
568 | supports-color: 2.0.0
569 | dev: false
570 | engines:
571 | node: '>=0.10.0'
572 | resolution:
573 | integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
574 | /charenc/0.0.2:
575 | dev: false
576 | resolution:
577 | integrity: sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
578 | /chokidar/1.7.0:
579 | dependencies:
580 | anymatch: 1.3.2
581 | async-each: 1.0.1
582 | glob-parent: 2.0.0
583 | inherits: 2.0.3
584 | is-binary-path: 1.0.1
585 | is-glob: 2.0.1
586 | path-is-absolute: 1.0.1
587 | readdirp: 2.1.0
588 | dev: false
589 | optionalDependencies:
590 | fsevents: 1.1.3
591 | resolution:
592 | integrity: sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=
593 | /choo/6.8.0:
594 | dependencies:
595 | bel: 5.1.7
596 | document-ready: 2.0.1
597 | nanobus: 4.3.3
598 | nanohref: 3.0.1
599 | nanolocation: 1.0.0
600 | nanomorph: 5.1.3
601 | nanoquery: 1.2.0
602 | nanoraf: 3.0.1
603 | nanorouter: 3.0.1
604 | nanotiming: 7.3.0
605 | scroll-to-anchor: 1.1.0
606 | xtend: 4.0.1
607 | dev: false
608 | resolution:
609 | integrity: sha512-yQkUqeqNtHdSeRik4yjPYIC0JRghdvG0AXxGGkqEgLqqOTCVVK8Fnu/x5FKOQ+CEGfodxIrWLIEHpx1AotmCGg==
610 | /cipher-base/1.0.4:
611 | dependencies:
612 | inherits: 2.0.3
613 | safe-buffer: 5.1.1
614 | dev: false
615 | resolution:
616 | integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
617 | /codecs/1.2.0:
618 | dev: false
619 | resolution:
620 | integrity: sha1-UUhUnj0VbF+gU9fLtBlxWgz0PRY=
621 | /codemirror/5.35.0:
622 | dev: false
623 | resolution:
624 | integrity: sha512-8HQICjZlDfe1ai7bvU6m2uHxuZuFgsUCdDRU9OHVB+2RTRd+FftN1ezVCqbquG0Fyq+wETqyadKhUX46DswSUQ==
625 | /colors/0.6.2:
626 | dev: false
627 | engines:
628 | node: '>=0.1.90'
629 | resolution:
630 | integrity: sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=
631 | /combine-source-map/0.7.2:
632 | dependencies:
633 | convert-source-map: 1.1.3
634 | inline-source-map: 0.6.2
635 | lodash.memoize: 3.0.4
636 | source-map: 0.5.7
637 | dev: false
638 | resolution:
639 | integrity: sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=
640 | /combine-source-map/0.8.0:
641 | dependencies:
642 | convert-source-map: 1.1.3
643 | inline-source-map: 0.6.2
644 | lodash.memoize: 3.0.4
645 | source-map: 0.5.7
646 | dev: false
647 | resolution:
648 | integrity: sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=
649 | /commander/2.1.0:
650 | dev: false
651 | engines:
652 | node: '>= 0.6.x'
653 | resolution:
654 | integrity: sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=
655 | /concat-map/0.0.1:
656 | dev: false
657 | resolution:
658 | integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
659 | /concat-stream/1.5.2:
660 | dependencies:
661 | inherits: 2.0.3
662 | readable-stream: 2.0.6
663 | typedarray: 0.0.6
664 | dev: false
665 | engines:
666 | '0': node >= 0.8
667 | resolution:
668 | integrity: sha1-cIl4Yk2FavQaWnQd790mHadSwmY=
669 | /concat-stream/1.6.1:
670 | dependencies:
671 | inherits: 2.0.3
672 | readable-stream: 2.3.4
673 | typedarray: 0.0.6
674 | dev: false
675 | engines:
676 | '0': node >= 0.8
677 | resolution:
678 | integrity: sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==
679 | /connect-pushstate/1.1.0:
680 | dev: false
681 | resolution:
682 | integrity: sha1-vKsiQnHEOWBKD7D2FMCl9WPojiQ=
683 | /connections/1.4.2:
684 | dev: false
685 | resolution:
686 | integrity: sha1-eJBIK/XHGvbFyhkr4xNq7XRCiq0=
687 | /console-browserify/1.1.0:
688 | dependencies:
689 | date-now: 0.1.4
690 | dev: false
691 | resolution:
692 | integrity: sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
693 | /constants-browserify/1.0.0:
694 | dev: false
695 | resolution:
696 | integrity: sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
697 | /content-disposition/0.5.2:
698 | dev: false
699 | engines:
700 | node: '>= 0.6'
701 | resolution:
702 | integrity: sha1-DPaLud318r55YcOoUXjLhdunjLQ=
703 | /content-type/1.0.4:
704 | dev: false
705 | engines:
706 | node: '>= 0.6'
707 | resolution:
708 | integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
709 | /convert-source-map/1.1.3:
710 | dev: false
711 | resolution:
712 | integrity: sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=
713 | /convert-source-map/1.5.1:
714 | dev: false
715 | resolution:
716 | integrity: sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=
717 | /cookie-signature/1.0.6:
718 | dev: false
719 | resolution:
720 | integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
721 | /cookie/0.3.1:
722 | dev: false
723 | engines:
724 | node: '>= 0.6'
725 | resolution:
726 | integrity: sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
727 | /core-util-is/1.0.2:
728 | dev: false
729 | resolution:
730 | integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
731 | /create-ecdh/4.0.0:
732 | dependencies:
733 | bn.js: 4.11.8
734 | elliptic: 6.4.0
735 | dev: false
736 | resolution:
737 | integrity: sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=
738 | /create-hash/1.1.3:
739 | dependencies:
740 | cipher-base: 1.0.4
741 | inherits: 2.0.3
742 | ripemd160: 2.0.1
743 | sha.js: 2.4.10
744 | dev: false
745 | resolution:
746 | integrity: sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=
747 | /create-hmac/1.1.6:
748 | dependencies:
749 | cipher-base: 1.0.4
750 | create-hash: 1.1.3
751 | inherits: 2.0.3
752 | ripemd160: 2.0.1
753 | safe-buffer: 5.1.1
754 | sha.js: 2.4.10
755 | dev: false
756 | resolution:
757 | integrity: sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=
758 | /cross-spawn/5.1.0:
759 | dependencies:
760 | lru-cache: 4.1.1
761 | shebang-command: 1.2.0
762 | which: 1.3.0
763 | dev: false
764 | resolution:
765 | integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
766 | /crypt/0.0.2:
767 | dev: false
768 | resolution:
769 | integrity: sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
770 | /crypto-browserify/3.12.0:
771 | dependencies:
772 | browserify-cipher: 1.0.0
773 | browserify-sign: 4.0.4
774 | create-ecdh: 4.0.0
775 | create-hash: 1.1.3
776 | create-hmac: 1.1.6
777 | diffie-hellman: 5.0.2
778 | inherits: 2.0.3
779 | pbkdf2: 3.0.14
780 | public-encrypt: 4.0.0
781 | randombytes: 2.0.6
782 | randomfill: 1.0.4
783 | dev: false
784 | resolution:
785 | integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
786 | /date-now/0.1.4:
787 | dev: false
788 | resolution:
789 | integrity: sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
790 | /datland-swarm-defaults/1.0.2:
791 | dependencies:
792 | xtend: 4.0.1
793 | dev: false
794 | resolution:
795 | integrity: sha1-J3uJWjnxqn+WpJWgL7NmKl7Z8uA=
796 | /debounce/1.1.0:
797 | dev: false
798 | resolution:
799 | integrity: sha512-ZQVKfRVlwRfD150ndzEK8M90ABT+Y/JQKs4Y7U4MXdpuoUkkrr4DwKbVux3YjylA5bUMUj0Nc3pMxPJX6N2QQQ==
800 | /debug/2.6.9:
801 | dependencies:
802 | ms: 2.0.0
803 | dev: false
804 | resolution:
805 | integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
806 | /debug/3.1.0:
807 | dependencies:
808 | ms: 2.0.0
809 | dev: false
810 | resolution:
811 | integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
812 | /deep-is/0.1.3:
813 | dev: false
814 | resolution:
815 | integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
816 | /default-gateway/2.7.0:
817 | dependencies:
818 | execa: 0.9.0
819 | ip-regex: 2.1.0
820 | dev: false
821 | engines:
822 | node: '>=4'
823 | resolution:
824 | integrity: sha512-bDPiro+T7ZBbt6HlObvUVHv+VHw1WGvF/UI3D+ZN2mqPTPgx5JM5YDgTj06zkr/tq2N5pCgGFMetNrSBi+IjLw==
825 | /defined/1.0.0:
826 | dev: false
827 | resolution:
828 | integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
829 | /depd/1.1.1:
830 | dev: false
831 | engines:
832 | node: '>= 0.6'
833 | resolution:
834 | integrity: sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=
835 | /depd/1.1.2:
836 | dev: false
837 | engines:
838 | node: '>= 0.6'
839 | resolution:
840 | integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
841 | /deps-sort/2.0.0:
842 | dependencies:
843 | JSONStream: 1.3.2
844 | shasum: 1.0.2
845 | subarg: 1.0.0
846 | through2: 2.0.3
847 | dev: false
848 | resolution:
849 | integrity: sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=
850 | /des.js/1.0.0:
851 | dependencies:
852 | inherits: 2.0.3
853 | minimalistic-assert: 1.0.0
854 | dev: false
855 | resolution:
856 | integrity: sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=
857 | /destroy/1.0.4:
858 | dev: false
859 | resolution:
860 | integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
861 | /detective/5.1.0:
862 | dependencies:
863 | acorn-node: 1.3.0
864 | defined: 1.0.0
865 | minimist: 1.2.0
866 | dev: false
867 | engines:
868 | node: '>=0.8.0'
869 | resolution:
870 | integrity: sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ==
871 | /diffie-hellman/5.0.2:
872 | dependencies:
873 | bn.js: 4.11.8
874 | miller-rabin: 4.0.1
875 | randombytes: 2.0.6
876 | dev: false
877 | resolution:
878 | integrity: sha1-tYNXOScM/ias9jIJn97SoH8gnl4=
879 | /discovery-channel/5.4.7:
880 | dependencies:
881 | bittorrent-dht: 7.10.0
882 | debug: 2.6.9
883 | dns-discovery: 5.6.1
884 | pretty-hash: 1.0.1
885 | thunky: 0.1.0
886 | dev: false
887 | resolution:
888 | integrity: sha512-6Ohv70DEbtokwypklgHYCQFXCSeGMbMc477z4dsHPhqXKGPfXdWvWrwR38ZqFrU3qDj+F2iOnLOIY/LJbV2L2A==
889 | /discovery-swarm/4.4.2:
890 | dependencies:
891 | buffer-equals: 1.0.4
892 | connections: 1.4.2
893 | debug: 2.6.9
894 | discovery-channel: 5.4.7
895 | length-prefixed-message: 3.0.3
896 | pump: 1.0.3
897 | to-buffer: 1.1.0
898 | dev: false
899 | optionalDependencies:
900 | utp-native: 1.6.2
901 | resolution:
902 | integrity: sha1-XTFgpGAZ5Q6HQZV2XffWAe5VqBM=
903 | /dns-discovery/5.6.1:
904 | dependencies:
905 | debug: 2.6.9
906 | dns-socket: 1.6.3
907 | dns-txt: 2.0.2
908 | lru: 2.0.1
909 | minimist: 1.2.0
910 | multicast-dns: 6.2.3
911 | network-address: 1.1.2
912 | unordered-set: 1.1.0
913 | dev: false
914 | resolution:
915 | integrity: sha512-r27fv3lDuZXCqmb5b04tV2aDxVbwVJaSyPzwPlOYCUbk9F7JvsY+n7EBfY2Z952bGx5TZt3SLQ+ELFjfqyLVoA==
916 | /dns-packet/1.3.1:
917 | dependencies:
918 | ip: 1.1.5
919 | safe-buffer: 5.1.1
920 | dev: false
921 | resolution:
922 | integrity: sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==
923 | /dns-socket/1.6.3:
924 | dependencies:
925 | dns-packet: 1.3.1
926 | dev: false
927 | resolution:
928 | integrity: sha512-/mUy3VGqIP69dAZjh2xxHXcpK9wk2Len1Dxz8mWAdrIgFC8tnR/aQAyU4a+UTXzOcTvEvGBdp1zFiwnpWKaXng==
929 | /dns-txt/2.0.2:
930 | dependencies:
931 | buffer-indexof: 1.1.1
932 | dev: false
933 | resolution:
934 | integrity: sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
935 | /document-ready/2.0.1:
936 | dev: false
937 | resolution:
938 | integrity: sha1-PjvzHTI1uU4jLnssX6GmNOhzuuQ=
939 | /dom-walk/0.1.1:
940 | dev: false
941 | resolution:
942 | integrity: sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=
943 | /domain-browser/1.1.7:
944 | dev: false
945 | engines:
946 | node: '>=0.4'
947 | npm: '>=1.2'
948 | resolution:
949 | integrity: sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=
950 | /duplexer2/0.1.4:
951 | dependencies:
952 | readable-stream: 2.3.4
953 | dev: false
954 | resolution:
955 | integrity: sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=
956 | /duplexify/3.5.3:
957 | dependencies:
958 | end-of-stream: 1.4.1
959 | inherits: 2.0.3
960 | readable-stream: 2.3.4
961 | stream-shift: 1.0.0
962 | dev: false
963 | resolution:
964 | integrity: sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==
965 | /ee-first/1.1.1:
966 | dev: false
967 | resolution:
968 | integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
969 | /elliptic/6.4.0:
970 | dependencies:
971 | bn.js: 4.11.8
972 | brorand: 1.1.0
973 | hash.js: 1.1.3
974 | hmac-drbg: 1.0.1
975 | inherits: 2.0.3
976 | minimalistic-assert: 1.0.0
977 | minimalistic-crypto-utils: 1.0.1
978 | dev: false
979 | resolution:
980 | integrity: sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=
981 | /encodeurl/1.0.2:
982 | dev: false
983 | engines:
984 | node: '>= 0.8'
985 | resolution:
986 | integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
987 | /end-of-stream/1.4.1:
988 | dependencies:
989 | once: 1.4.0
990 | dev: false
991 | resolution:
992 | integrity: sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
993 | /escape-html/1.0.3:
994 | dev: false
995 | resolution:
996 | integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
997 | /escape-string-regexp/1.0.5:
998 | dev: false
999 | engines:
1000 | node: '>=0.8.0'
1001 | resolution:
1002 | integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
1003 | /escodegen/1.9.1:
1004 | dependencies:
1005 | esprima: 3.1.3
1006 | estraverse: 4.2.0
1007 | esutils: 2.0.2
1008 | optionator: 0.8.2
1009 | dev: false
1010 | engines:
1011 | node: '>=4.0'
1012 | optionalDependencies:
1013 | source-map: 0.6.1
1014 | resolution:
1015 | integrity: sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==
1016 | /esprima/3.1.3:
1017 | dev: false
1018 | engines:
1019 | node: '>=4'
1020 | resolution:
1021 | integrity: sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
1022 | /estraverse/4.2.0:
1023 | dev: false
1024 | engines:
1025 | node: '>=0.10.0'
1026 | resolution:
1027 | integrity: sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
1028 | /esutils/2.0.2:
1029 | dev: false
1030 | engines:
1031 | node: '>=0.10.0'
1032 | resolution:
1033 | integrity: sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
1034 | /etag/1.8.1:
1035 | dev: false
1036 | engines:
1037 | node: '>= 0.6'
1038 | resolution:
1039 | integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
1040 | /events/1.1.1:
1041 | dev: false
1042 | engines:
1043 | node: '>=0.4.x'
1044 | resolution:
1045 | integrity: sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
1046 | /evp_bytestokey/1.0.3:
1047 | dependencies:
1048 | md5.js: 1.3.4
1049 | safe-buffer: 5.1.1
1050 | dev: false
1051 | resolution:
1052 | integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
1053 | /execa/0.9.0:
1054 | dependencies:
1055 | cross-spawn: 5.1.0
1056 | get-stream: 3.0.0
1057 | is-stream: 1.1.0
1058 | npm-run-path: 2.0.2
1059 | p-finally: 1.0.0
1060 | signal-exit: 3.0.2
1061 | strip-eof: 1.0.0
1062 | dev: false
1063 | engines:
1064 | node: '>=4'
1065 | resolution:
1066 | integrity: sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==
1067 | /expand-brackets/0.1.5:
1068 | dependencies:
1069 | is-posix-bracket: 0.1.1
1070 | dev: false
1071 | engines:
1072 | node: '>=0.10.0'
1073 | resolution:
1074 | integrity: sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
1075 | /expand-range/1.8.2:
1076 | dependencies:
1077 | fill-range: 2.2.3
1078 | dev: false
1079 | engines:
1080 | node: '>=0.10.0'
1081 | resolution:
1082 | integrity: sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
1083 | /express-ws/3.0.0:
1084 | dependencies:
1085 | ws: 2.3.1
1086 | dev: false
1087 | engines:
1088 | node: '>=4.5.0'
1089 | peerDependencies:
1090 | express: ^4.0.0 || ^5.0.0-alpha.1
1091 | resolution:
1092 | integrity: sha1-fdqvO3x1iGXAmZBZiZEbYjRHfb0=
1093 | /express/4.16.2:
1094 | dependencies:
1095 | accepts: 1.3.5
1096 | array-flatten: 1.1.1
1097 | body-parser: 1.18.2
1098 | content-disposition: 0.5.2
1099 | content-type: 1.0.4
1100 | cookie: 0.3.1
1101 | cookie-signature: 1.0.6
1102 | debug: 2.6.9
1103 | depd: 1.1.2
1104 | encodeurl: 1.0.2
1105 | escape-html: 1.0.3
1106 | etag: 1.8.1
1107 | finalhandler: 1.1.0
1108 | fresh: 0.5.2
1109 | merge-descriptors: 1.0.1
1110 | methods: 1.1.2
1111 | on-finished: 2.3.0
1112 | parseurl: 1.3.2
1113 | path-to-regexp: 0.1.7
1114 | proxy-addr: 2.0.3
1115 | qs: 6.5.1
1116 | range-parser: 1.2.0
1117 | safe-buffer: 5.1.1
1118 | send: 0.16.1
1119 | serve-static: 1.13.1
1120 | setprototypeof: 1.1.0
1121 | statuses: 1.3.1
1122 | type-is: 1.6.16
1123 | utils-merge: 1.0.1
1124 | vary: 1.1.2
1125 | dev: false
1126 | engines:
1127 | node: '>= 0.10.0'
1128 | resolution:
1129 | integrity: sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=
1130 | /extglob/0.3.2:
1131 | dependencies:
1132 | is-extglob: 1.0.0
1133 | dev: false
1134 | engines:
1135 | node: '>=0.10.0'
1136 | resolution:
1137 | integrity: sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
1138 | /falafel/2.1.0:
1139 | dependencies:
1140 | acorn: 5.5.0
1141 | foreach: 2.0.5
1142 | isarray: 0.0.1
1143 | object-keys: 1.0.11
1144 | dev: false
1145 | engines:
1146 | node: '>=0.4.0'
1147 | resolution:
1148 | integrity: sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=
1149 | /fast-json-parse/1.0.3:
1150 | dev: false
1151 | resolution:
1152 | integrity: sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==
1153 | /fast-levenshtein/2.0.6:
1154 | dev: false
1155 | resolution:
1156 | integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
1157 | /filename-regex/2.0.1:
1158 | dev: false
1159 | engines:
1160 | node: '>=0.10.0'
1161 | resolution:
1162 | integrity: sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
1163 | /fill-range/2.2.3:
1164 | dependencies:
1165 | is-number: 2.1.0
1166 | isobject: 2.1.0
1167 | randomatic: 1.1.7
1168 | repeat-element: 1.1.2
1169 | repeat-string: 1.6.1
1170 | dev: false
1171 | engines:
1172 | node: '>=0.10.0'
1173 | resolution:
1174 | integrity: sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=
1175 | /finalhandler/1.1.0:
1176 | dependencies:
1177 | debug: 2.6.9
1178 | encodeurl: 1.0.2
1179 | escape-html: 1.0.3
1180 | on-finished: 2.3.0
1181 | parseurl: 1.3.2
1182 | statuses: 1.3.1
1183 | unpipe: 1.0.0
1184 | dev: false
1185 | engines:
1186 | node: '>= 0.8'
1187 | resolution:
1188 | integrity: sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=
1189 | /findup/0.1.5:
1190 | dependencies:
1191 | colors: 0.6.2
1192 | commander: 2.1.0
1193 | dev: false
1194 | engines:
1195 | node: '>=0.6'
1196 | resolution:
1197 | integrity: sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=
1198 | /flat-tree/1.6.0:
1199 | dev: false
1200 | resolution:
1201 | integrity: sha1-/KMM3bkAb7ZW6168ea6ydOf96e0=
1202 | /flatten/1.0.2:
1203 | dev: false
1204 | resolution:
1205 | integrity: sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=
1206 | /for-in/1.0.2:
1207 | dev: false
1208 | engines:
1209 | node: '>=0.10.0'
1210 | resolution:
1211 | integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
1212 | /for-own/0.1.5:
1213 | dependencies:
1214 | for-in: 1.0.2
1215 | dev: false
1216 | engines:
1217 | node: '>=0.10.0'
1218 | resolution:
1219 | integrity: sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
1220 | /foreach/2.0.5:
1221 | dev: false
1222 | resolution:
1223 | integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k=
1224 | /forwarded/0.1.2:
1225 | dev: false
1226 | engines:
1227 | node: '>= 0.6'
1228 | resolution:
1229 | integrity: sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
1230 | /fresh/0.5.2:
1231 | dev: false
1232 | engines:
1233 | node: '>= 0.6'
1234 | resolution:
1235 | integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
1236 | /from2-string/1.1.0:
1237 | dependencies:
1238 | from2: 2.3.0
1239 | dev: false
1240 | resolution:
1241 | integrity: sha1-GCgrJ9CKJnyzAwzSuLSw8hKvdSo=
1242 | /from2/2.3.0:
1243 | dependencies:
1244 | inherits: 2.0.3
1245 | readable-stream: 2.3.4
1246 | dev: false
1247 | resolution:
1248 | integrity: sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
1249 | /fs.realpath/1.0.0:
1250 | dev: false
1251 | resolution:
1252 | integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
1253 | /fsevents/1.1.3:
1254 | bundledDependencies:
1255 | - node-pre-gyp
1256 | dependencies:
1257 | nan: 2.9.2
1258 | dev: false
1259 | engines:
1260 | node: '>=0.8.0'
1261 | optional: true
1262 | resolution:
1263 | integrity: sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==
1264 | /function-bind/1.1.1:
1265 | dev: false
1266 | resolution:
1267 | integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1268 | /garnish/5.2.0:
1269 | dependencies:
1270 | chalk: 0.5.1
1271 | minimist: 1.2.0
1272 | pad-left: 2.1.0
1273 | pad-right: 0.2.2
1274 | prettier-bytes: 1.0.4
1275 | pretty-ms: 2.1.0
1276 | right-now: 1.0.0
1277 | split2: 0.2.1
1278 | stdout-stream: 1.4.0
1279 | url-trim: 1.0.0
1280 | dev: false
1281 | resolution:
1282 | integrity: sha1-vtQ2WTguSxmOM8eTiXvnxwHmVXc=
1283 | /get-ports/1.0.3:
1284 | dependencies:
1285 | map-limit: 0.0.1
1286 | dev: false
1287 | resolution:
1288 | integrity: sha1-9AvVgKyn7A77e5bL/L6wPviUteg=
1289 | /get-stream/3.0.0:
1290 | dev: false
1291 | engines:
1292 | node: '>=4'
1293 | resolution:
1294 | integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
1295 | /glob-base/0.3.0:
1296 | dependencies:
1297 | glob-parent: 2.0.0
1298 | is-glob: 2.0.1
1299 | dev: false
1300 | engines:
1301 | node: '>=0.10.0'
1302 | resolution:
1303 | integrity: sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
1304 | /glob-parent/2.0.0:
1305 | dependencies:
1306 | is-glob: 2.0.1
1307 | dev: false
1308 | resolution:
1309 | integrity: sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
1310 | /glob/7.1.2:
1311 | dependencies:
1312 | fs.realpath: 1.0.0
1313 | inflight: 1.0.6
1314 | inherits: 2.0.3
1315 | minimatch: 3.0.4
1316 | once: 1.4.0
1317 | path-is-absolute: 1.0.1
1318 | dev: false
1319 | resolution:
1320 | integrity: sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
1321 | /global/4.3.2:
1322 | dependencies:
1323 | min-document: 2.19.0
1324 | process: 0.5.2
1325 | dev: false
1326 | resolution:
1327 | integrity: sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=
1328 | /graceful-fs/4.1.11:
1329 | dev: false
1330 | engines:
1331 | node: '>=0.4.0'
1332 | resolution:
1333 | integrity: sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
1334 | /has-ansi/0.1.0:
1335 | dependencies:
1336 | ansi-regex: 0.2.1
1337 | dev: false
1338 | engines:
1339 | node: '>=0.10.0'
1340 | resolution:
1341 | integrity: sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=
1342 | /has-ansi/2.0.0:
1343 | dependencies:
1344 | ansi-regex: 2.1.1
1345 | dev: false
1346 | engines:
1347 | node: '>=0.10.0'
1348 | resolution:
1349 | integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
1350 | /has-flag/1.0.0:
1351 | dev: false
1352 | engines:
1353 | node: '>=0.10.0'
1354 | resolution:
1355 | integrity: sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
1356 | /has-own-property-x/3.2.0:
1357 | dependencies:
1358 | cached-constructors-x: 1.0.2
1359 | to-object-x: 1.5.0
1360 | to-property-key-x: 2.0.2
1361 | dev: false
1362 | resolution:
1363 | integrity: sha512-HtRQTYpRFz/YVaQ7jh2mU5iorMAxFcML9FNOLMI1f8VNJ2K0hpOlXoi1a+nmVl6oUcGnhd6zYOFAVe7NUFStyQ==
1364 | /has-symbol-support-x/1.4.2:
1365 | dev: false
1366 | resolution:
1367 | integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==
1368 | /has-to-string-tag-x/1.4.1:
1369 | dependencies:
1370 | has-symbol-support-x: 1.4.2
1371 | dev: false
1372 | resolution:
1373 | integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==
1374 | /has/1.0.1:
1375 | dependencies:
1376 | function-bind: 1.1.1
1377 | dev: false
1378 | engines:
1379 | node: '>= 0.8.0'
1380 | resolution:
1381 | integrity: sha1-hGFzP1OLCDfJNh45qauelwTcLyg=
1382 | /hash-base/2.0.2:
1383 | dependencies:
1384 | inherits: 2.0.3
1385 | dev: false
1386 | resolution:
1387 | integrity: sha1-ZuodhW206KVHDK32/OI65SRO8uE=
1388 | /hash-base/3.0.4:
1389 | dependencies:
1390 | inherits: 2.0.3
1391 | safe-buffer: 5.1.1
1392 | dev: false
1393 | engines:
1394 | node: '>=4'
1395 | resolution:
1396 | integrity: sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
1397 | /hash.js/1.1.3:
1398 | dependencies:
1399 | inherits: 2.0.3
1400 | minimalistic-assert: 1.0.0
1401 | dev: false
1402 | resolution:
1403 | integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==
1404 | /hmac-drbg/1.0.1:
1405 | dependencies:
1406 | hash.js: 1.1.3
1407 | minimalistic-assert: 1.0.0
1408 | minimalistic-crypto-utils: 1.0.1
1409 | dev: false
1410 | resolution:
1411 | integrity: sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
1412 | /htmlescape/1.1.1:
1413 | dev: false
1414 | engines:
1415 | node: '>=0.10'
1416 | resolution:
1417 | integrity: sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=
1418 | /http-errors/1.6.2:
1419 | dependencies:
1420 | depd: 1.1.1
1421 | inherits: 2.0.3
1422 | setprototypeof: 1.0.3
1423 | statuses: 1.4.0
1424 | dev: false
1425 | engines:
1426 | node: '>= 0.6'
1427 | resolution:
1428 | integrity: sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=
1429 | /https-browserify/1.0.0:
1430 | dev: false
1431 | resolution:
1432 | integrity: sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
1433 | /hypercore-archiver/4.4.1:
1434 | dependencies:
1435 | datland-swarm-defaults: 1.0.2
1436 | debug: 2.6.9
1437 | discovery-swarm: 4.4.2
1438 | hypercore: 6.12.2
1439 | hypercore-protocol: 6.5.2
1440 | random-access-file: 1.8.1
1441 | thunky: 1.0.2
1442 | to-buffer: 1.1.0
1443 | xtend: 4.0.1
1444 | dev: false
1445 | resolution:
1446 | integrity: sha512-+LHihQ7Bu8i4U8hLAxMjWnT/tHhxzH4sLARaIG2HzbGcaY2Zyt3JlWCGuC+CLkGcQrtywFvs4qI54scOxJY8iw==
1447 | /hypercore-protocol/6.5.2:
1448 | dependencies:
1449 | inherits: 2.0.3
1450 | protocol-buffers-encodings: 1.1.0
1451 | readable-stream: 2.3.4
1452 | sodium-universal: 2.0.0
1453 | sorted-indexof: 1.0.0
1454 | varint: 5.0.0
1455 | dev: false
1456 | resolution:
1457 | integrity: sha512-wwK00Yk/YypTqHb/D7mAeIupR72zqBzB3EzLYmBkn12M/nbCY8vdeCVtJvh4K00JR2APf5kMUdwboB5S1Z5DBw==
1458 | /hypercore/6.12.2:
1459 | dependencies:
1460 | array-lru: 1.1.1
1461 | atomic-batcher: 1.0.2
1462 | bitfield-rle: 2.1.0
1463 | buffer-equals: 1.0.4
1464 | bulk-write-stream: 1.1.3
1465 | codecs: 1.2.0
1466 | flat-tree: 1.6.0
1467 | from2: 2.3.0
1468 | hypercore-protocol: 6.5.2
1469 | inherits: 2.0.3
1470 | last-one-wins: 1.0.4
1471 | memory-pager: 1.1.0
1472 | merkle-tree-stream: 3.0.3
1473 | process-nextick-args: 1.0.7
1474 | random-access-file: 2.0.1
1475 | sodium-universal: 2.0.0
1476 | sparse-bitfield: 3.0.3
1477 | thunky: 1.0.2
1478 | uint64be: 2.0.1
1479 | unordered-array-remove: 1.0.2
1480 | unordered-set: 2.0.0
1481 | dev: false
1482 | resolution:
1483 | integrity: sha512-Ji9s1FF5IMqXjUX7vLhPVwboabZyxO+eWrE8IKaMMrJJgfV3xBqjtP45eSjowKLH7irX51keSeFTFeNdJSN6dA==
1484 | /hyperdiscovery/7.0.0:
1485 | dependencies:
1486 | datland-swarm-defaults: 1.0.2
1487 | discovery-swarm: 4.4.2
1488 | safe-buffer: 5.1.1
1489 | xtend: 4.0.1
1490 | dev: false
1491 | resolution:
1492 | integrity: sha512-cMH9Q4K1s4kwVkcrmL6Wa00wKw4fhxG6gZZb7c5189NWmHWIO0rNhft3EygjAt26A7QzedwDGSKHnN85o/OJQw==
1493 | /hyperdrive/9.12.3:
1494 | dependencies:
1495 | append-tree: 2.4.1
1496 | duplexify: 3.5.3
1497 | from2: 2.3.0
1498 | hypercore: 6.12.2
1499 | inherits: 2.0.3
1500 | mutexify: 1.2.0
1501 | protocol-buffers-encodings: 1.1.0
1502 | random-access-file: 2.0.1
1503 | sodium-universal: 2.0.0
1504 | stream-collector: 1.0.1
1505 | stream-each: 1.2.2
1506 | thunky: 1.0.2
1507 | uint64be: 2.0.1
1508 | unixify: 1.0.0
1509 | dev: false
1510 | resolution:
1511 | integrity: sha512-Y7mEgEqhfv7kvzPhylKlba6hWRQbvbipgDu6jFQvfDz1wCnGXjIbCKeb28WnOxgl27t38Qilfx/Dy9Qy5qgI+A==
1512 | /hyperscript-attribute-to-property/1.0.0:
1513 | dev: false
1514 | resolution:
1515 | integrity: sha1-glMI1Ju44pV5I/cxmBvMgRytev8=
1516 | /hyperx/2.3.3:
1517 | dependencies:
1518 | hyperscript-attribute-to-property: 1.0.0
1519 | dev: false
1520 | resolution:
1521 | integrity: sha512-EE3FCnKEv+tQSt8yZAsY9bZXknFnsOSw1TWTECrRj+kNd+gt0R/tRHNcoy5uk1F/a7tWd7bjPGQJX/2pfmJglQ==
1522 | /iconv-lite/0.4.19:
1523 | dev: false
1524 | engines:
1525 | node: '>=0.10.0'
1526 | resolution:
1527 | integrity: sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==
1528 | /ieee754/1.1.8:
1529 | dev: false
1530 | resolution:
1531 | integrity: sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=
1532 | /indexes-of/1.0.1:
1533 | dev: false
1534 | resolution:
1535 | integrity: sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
1536 | /indexof/0.0.1:
1537 | dev: false
1538 | resolution:
1539 | integrity: sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
1540 | /individual/3.0.0:
1541 | dev: false
1542 | resolution:
1543 | integrity: sha1-58pPhfiVewGHNPKFdQ3CLsL5hi0=
1544 | /infinity-x/1.0.2:
1545 | dev: false
1546 | resolution:
1547 | integrity: sha512-2Ioz+exrAwlHxFBaDHQIbvUyjKFt0YjIal34/agfzx738aT1zBQwSU5A8Zgb1IQ2r24BtXrkeZZusxE40MyZaQ==
1548 | /inflight/1.0.6:
1549 | dependencies:
1550 | once: 1.4.0
1551 | wrappy: 1.0.2
1552 | dev: false
1553 | resolution:
1554 | integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1555 | /inherits/2.0.1:
1556 | dev: false
1557 | resolution:
1558 | integrity: sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
1559 | /inherits/2.0.3:
1560 | dev: false
1561 | resolution:
1562 | integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
1563 | /ini/1.3.5:
1564 | dev: false
1565 | optional: true
1566 | resolution:
1567 | integrity: sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
1568 | /inject-lr-script/2.1.0:
1569 | dependencies:
1570 | resp-modifier: 6.0.2
1571 | dev: false
1572 | resolution:
1573 | integrity: sha1-5htehMEYczkGy+oB7D10Zpijn2U=
1574 | /inline-source-map/0.6.2:
1575 | dependencies:
1576 | source-map: 0.5.7
1577 | dev: false
1578 | resolution:
1579 | integrity: sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=
1580 | /insert-css/2.0.0:
1581 | dev: false
1582 | resolution:
1583 | integrity: sha1-610Ql7dUL0x56jBg067gfQU4gPQ=
1584 | /insert-module-globals/7.0.2:
1585 | dependencies:
1586 | JSONStream: 1.3.2
1587 | combine-source-map: 0.7.2
1588 | concat-stream: 1.5.2
1589 | is-buffer: 1.1.6
1590 | lexical-scope: 1.2.0
1591 | process: 0.11.10
1592 | through2: 2.0.3
1593 | xtend: 4.0.1
1594 | dev: false
1595 | resolution:
1596 | integrity: sha512-p3s7g96Nm62MbHRuj9ZXab0DuJNWD7qcmdUXCOQ/ZZn42DtDXfsLill7bq19lDCx3K3StypqUnuE3H2VmIJFUw==
1597 | /internal-ip/3.0.1:
1598 | dependencies:
1599 | default-gateway: 2.7.0
1600 | ipaddr.js: 1.6.0
1601 | dev: false
1602 | engines:
1603 | node: '>=4'
1604 | resolution:
1605 | integrity: sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==
1606 | /ip-regex/2.1.0:
1607 | dev: false
1608 | engines:
1609 | node: '>=4'
1610 | resolution:
1611 | integrity: sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
1612 | /ip/1.1.5:
1613 | dev: false
1614 | resolution:
1615 | integrity: sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
1616 | /ipaddr.js/1.6.0:
1617 | dev: false
1618 | engines:
1619 | node: '>= 0.10'
1620 | resolution:
1621 | integrity: sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=
1622 | /is-array-buffer-x/1.7.0:
1623 | dependencies:
1624 | attempt-x: 1.1.3
1625 | has-to-string-tag-x: 1.4.1
1626 | is-object-like-x: 1.7.1
1627 | object-get-own-property-descriptor-x: 3.2.0
1628 | to-string-tag-x: 1.4.3
1629 | dev: false
1630 | resolution:
1631 | integrity: sha512-ufSZRMY2WZX5xyNvk0NOZAG7cgi35B/sGQDGqv8w0X7MoQ2GC9vedanJhuYTPaC4PUCqLQsda1w7NF+dPZmAJw==
1632 | /is-binary-path/1.0.1:
1633 | dependencies:
1634 | binary-extensions: 1.11.0
1635 | dev: false
1636 | engines:
1637 | node: '>=0.10.0'
1638 | resolution:
1639 | integrity: sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
1640 | /is-buffer/1.1.6:
1641 | dev: false
1642 | resolution:
1643 | integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
1644 | /is-date-object/1.0.1:
1645 | dev: false
1646 | engines:
1647 | node: '>= 0.4'
1648 | resolution:
1649 | integrity: sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
1650 | /is-dotfile/1.0.3:
1651 | dev: false
1652 | engines:
1653 | node: '>=0.10.0'
1654 | resolution:
1655 | integrity: sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
1656 | /is-electron/2.1.0:
1657 | dev: false
1658 | resolution:
1659 | integrity: sha512-dkg5xT383+M6zIbbXW/z7n2nz4SFUi2OSyhntnFYkRdtV+HVEfdjEK+5AWisfYgkpe3WYjTIuh7toaKmSfFVWw==
1660 | /is-equal-shallow/0.1.3:
1661 | dependencies:
1662 | is-primitive: 2.0.0
1663 | dev: false
1664 | engines:
1665 | node: '>=0.10.0'
1666 | resolution:
1667 | integrity: sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
1668 | /is-extendable/0.1.1:
1669 | dev: false
1670 | engines:
1671 | node: '>=0.10.0'
1672 | resolution:
1673 | integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
1674 | /is-extglob/1.0.0:
1675 | dev: false
1676 | engines:
1677 | node: '>=0.10.0'
1678 | resolution:
1679 | integrity: sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
1680 | /is-falsey-x/1.0.3:
1681 | dependencies:
1682 | to-boolean-x: 1.0.3
1683 | dev: false
1684 | resolution:
1685 | integrity: sha512-RWjusR6LXAhGa0Vus7aD1rwJuJwdJsvG3daAVMDvOAgvGuGm4eilNgoSuXhpv2/2qpLDvioAKTNb3t3XYidCNg==
1686 | /is-finite-x/3.0.4:
1687 | dependencies:
1688 | infinity-x: 1.0.2
1689 | is-nan-x: 1.0.3
1690 | dev: false
1691 | resolution:
1692 | integrity: sha512-wdSI5zk/Pl21HzGcLWFoFzuDa8gsgcqhwZGAZryL2eU7RKf7+g+q4jL2gGItrBs/YtspkjOrJ4JxXNZqquoAWA==
1693 | /is-finite/1.0.2:
1694 | dependencies:
1695 | number-is-nan: 1.0.1
1696 | dev: false
1697 | engines:
1698 | node: '>=0.10.0'
1699 | resolution:
1700 | integrity: sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
1701 | /is-function-x/3.3.0:
1702 | dependencies:
1703 | attempt-x: 1.1.3
1704 | has-to-string-tag-x: 1.4.1
1705 | is-falsey-x: 1.0.3
1706 | is-primitive: 2.0.0
1707 | normalize-space-x: 3.0.0
1708 | replace-comments-x: 2.0.0
1709 | to-boolean-x: 1.0.3
1710 | to-string-tag-x: 1.4.3
1711 | dev: false
1712 | resolution:
1713 | integrity: sha512-SreSSU1dlgYaXR5c0mm4qJHKYHIiGiEY+7Cd8/aRLLoMP/VvofD2XcWgBnP833ajpU5XzXbUSpfysnfKZLJFlg==
1714 | /is-glob/2.0.1:
1715 | dependencies:
1716 | is-extglob: 1.0.0
1717 | dev: false
1718 | engines:
1719 | node: '>=0.10.0'
1720 | resolution:
1721 | integrity: sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
1722 | /is-index-x/1.1.0:
1723 | dependencies:
1724 | math-clamp-x: 1.2.0
1725 | max-safe-integer: 1.0.1
1726 | to-integer-x: 3.0.0
1727 | to-number-x: 2.0.0
1728 | to-string-symbols-supported-x: 1.0.2
1729 | dev: false
1730 | resolution:
1731 | integrity: sha512-qULKLMepQLGC8rSVdi8uF2vI4LiDrU9XSDg1D+Aa657GIB7GV1jHpga7uXgQvkt/cpQ5mVBHUFTpSehYSqT6+A==
1732 | /is-nan-x/1.0.3:
1733 | dev: false
1734 | resolution:
1735 | integrity: sha512-WenNBLVGSZID8shogsB++42vF7gvotCfneXM9KMCAKwNPXa8VfAu/RWwpqvnK7dLOP4Z7uitocb0TZ6rAiOccA==
1736 | /is-nil-x/1.4.2:
1737 | dependencies:
1738 | lodash.isnull: 3.0.0
1739 | validate.io-undefined: 1.0.3
1740 | dev: false
1741 | resolution:
1742 | integrity: sha512-9aDY7ir7IGb5HlgqL+b38v2YMxf8S7MEHHxjHGzUhijg2crq47RKdxL37bS6dU0VN87wy2IBZP4akgQtIXmyvg==
1743 | /is-number/2.1.0:
1744 | dependencies:
1745 | kind-of: 3.2.2
1746 | dev: false
1747 | engines:
1748 | node: '>=0.10.0'
1749 | resolution:
1750 | integrity: sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
1751 | /is-number/3.0.0:
1752 | dependencies:
1753 | kind-of: 3.2.2
1754 | dev: false
1755 | engines:
1756 | node: '>=0.10.0'
1757 | resolution:
1758 | integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
1759 | /is-object-like-x/1.7.1:
1760 | dependencies:
1761 | is-function-x: 3.3.0
1762 | is-primitive: 3.0.0
1763 | dev: false
1764 | resolution:
1765 | integrity: sha512-89nz+kESAW2Y7udq+PdRX/dZnRN2WP1b19Gdv4OYE1Xjoekn1xf31l0ZPzT40qdPD7I2nveNFm9rxxI0vmnGHA==
1766 | /is-posix-bracket/0.1.1:
1767 | dev: false
1768 | engines:
1769 | node: '>=0.10.0'
1770 | resolution:
1771 | integrity: sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
1772 | /is-primitive/2.0.0:
1773 | dev: false
1774 | engines:
1775 | node: '>=0.10.0'
1776 | resolution:
1777 | integrity: sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
1778 | /is-primitive/3.0.0:
1779 | dev: false
1780 | engines:
1781 | node: '>=0.10.0'
1782 | resolution:
1783 | integrity: sha512-Qch+MMfMdu7DMY6XElM7LUJKPmkbXdTqNhqyehVflzis2a8Zd9V6U8qZybb32uUSmlO/dNmg3fsA5t0Q9TC0mA==
1784 | /is-stream/1.1.0:
1785 | dev: false
1786 | engines:
1787 | node: '>=0.10.0'
1788 | resolution:
1789 | integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
1790 | /is-string/1.0.4:
1791 | dev: false
1792 | engines:
1793 | node: '>= 0.4'
1794 | resolution:
1795 | integrity: sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=
1796 | /is-symbol/1.0.1:
1797 | dev: false
1798 | engines:
1799 | node: '>= 0.4'
1800 | resolution:
1801 | integrity: sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=
1802 | /isarray/0.0.1:
1803 | dev: false
1804 | resolution:
1805 | integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
1806 | /isarray/1.0.0:
1807 | dev: false
1808 | resolution:
1809 | integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
1810 | /isexe/2.0.0:
1811 | dev: false
1812 | resolution:
1813 | integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1814 | /isobject/2.1.0:
1815 | dependencies:
1816 | isarray: 1.0.0
1817 | dev: false
1818 | engines:
1819 | node: '>=0.10.0'
1820 | resolution:
1821 | integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
1822 | /js-base64/2.4.3:
1823 | dev: false
1824 | resolution:
1825 | integrity: sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==
1826 | /json-stable-stringify/0.0.1:
1827 | dependencies:
1828 | jsonify: 0.0.0
1829 | dev: false
1830 | resolution:
1831 | integrity: sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=
1832 | /json-stringify-safe/5.0.1:
1833 | dev: false
1834 | resolution:
1835 | integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
1836 | /jsonify/0.0.0:
1837 | dev: false
1838 | resolution:
1839 | integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
1840 | /jsonparse/1.3.1:
1841 | dev: false
1842 | engines:
1843 | '0': node >= 0.2.0
1844 | resolution:
1845 | integrity: sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
1846 | /k-bucket/3.3.1:
1847 | dependencies:
1848 | buffer-equals: 1.0.4
1849 | inherits: 2.0.3
1850 | randombytes: 2.0.6
1851 | dev: false
1852 | resolution:
1853 | integrity: sha512-kgwWqYT79rAahn4maIVTP8dIe+m1KulufWW+f1bB9DlZrRFiGpZ4iJOg2HUp4xJYBWONP3+rOPIWF/RXABU6mw==
1854 | /k-rpc-socket/1.8.0:
1855 | dependencies:
1856 | bencode: 2.0.0
1857 | buffer-equals: 1.0.4
1858 | safe-buffer: 5.1.1
1859 | dev: false
1860 | resolution:
1861 | integrity: sha512-f/9TynsO8YYjZ6JjNNtSSH7CJcIHcio1buy3zqByGxb/GX8AWLdL6FZEWTrN8V3/J7W4/E0ZTQQ+Jt2rVq7ELg==
1862 | /k-rpc/4.2.1:
1863 | dependencies:
1864 | buffer-equals: 1.0.4
1865 | k-bucket: 3.3.1
1866 | k-rpc-socket: 1.8.0
1867 | randombytes: 2.0.6
1868 | safe-buffer: 5.1.1
1869 | dev: false
1870 | resolution:
1871 | integrity: sha512-Ft3Yrsobne+zqz1uEyk2Vl0n5KpKROSGI6Ar270ZBmeh7MtTgtucOVeddX5fv2uITMw7cGT6hp8EpeXp4HW5rA==
1872 | /kind-of/3.2.2:
1873 | dependencies:
1874 | is-buffer: 1.1.6
1875 | dev: false
1876 | engines:
1877 | node: '>=0.10.0'
1878 | resolution:
1879 | integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
1880 | /kind-of/4.0.0:
1881 | dependencies:
1882 | is-buffer: 1.1.6
1883 | dev: false
1884 | engines:
1885 | node: '>=0.10.0'
1886 | resolution:
1887 | integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
1888 | /labeled-stream-splicer/2.0.0:
1889 | dependencies:
1890 | inherits: 2.0.3
1891 | isarray: 0.0.1
1892 | stream-splicer: 2.0.0
1893 | dev: false
1894 | resolution:
1895 | integrity: sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=
1896 | /last-one-wins/1.0.4:
1897 | dev: false
1898 | resolution:
1899 | integrity: sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio=
1900 | /length-prefixed-message/3.0.3:
1901 | dependencies:
1902 | varint: 3.0.1
1903 | dev: false
1904 | resolution:
1905 | integrity: sha1-JFR01pq8BhTco2jcNaqAdJgqI6w=
1906 | /levn/0.3.0:
1907 | dependencies:
1908 | prelude-ls: 1.1.2
1909 | type-check: 0.3.2
1910 | dev: false
1911 | engines:
1912 | node: '>= 0.8.0'
1913 | resolution:
1914 | integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
1915 | /lexical-scope/1.2.0:
1916 | dependencies:
1917 | astw: 2.2.0
1918 | dev: false
1919 | resolution:
1920 | integrity: sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=
1921 | /lodash.isnull/3.0.0:
1922 | dev: false
1923 | resolution:
1924 | integrity: sha1-+vvlnqHcon7teGU0A53YTC4HxW4=
1925 | /lodash.memoize/3.0.4:
1926 | dev: false
1927 | resolution:
1928 | integrity: sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=
1929 | /lru-cache/4.1.1:
1930 | dependencies:
1931 | pseudomap: 1.0.2
1932 | yallist: 2.1.2
1933 | dev: false
1934 | resolution:
1935 | integrity: sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==
1936 | /lru/2.0.1:
1937 | dependencies:
1938 | inherits: 2.0.3
1939 | dev: false
1940 | engines:
1941 | node: '>= 0.4.0'
1942 | resolution:
1943 | integrity: sha1-+XmHHhYuP1yiVL5GhExT1MU2RUQ=
1944 | /lru/3.1.0:
1945 | dependencies:
1946 | inherits: 2.0.3
1947 | dev: false
1948 | engines:
1949 | node: '>= 0.4.0'
1950 | resolution:
1951 | integrity: sha1-6n+4VG2DczOWoTCR12z+tMBoN9U=
1952 | /magic-string/0.21.3:
1953 | dependencies:
1954 | vlq: 0.2.3
1955 | dev: false
1956 | resolution:
1957 | integrity: sha1-h+IBAJ6/3m9G3FdXMFpwr3HjFiQ=
1958 | /magic-string/0.22.4:
1959 | dependencies:
1960 | vlq: 0.2.3
1961 | dev: false
1962 | resolution:
1963 | integrity: sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==
1964 | /map-limit/0.0.1:
1965 | dependencies:
1966 | once: 1.3.3
1967 | dev: false
1968 | resolution:
1969 | integrity: sha1-63lhAxwPDo0AG/LVb6toXViCLzg=
1970 | /math-clamp-x/1.2.0:
1971 | dependencies:
1972 | to-number-x: 2.0.0
1973 | dev: false
1974 | resolution:
1975 | integrity: sha512-tqpjpBcIf9UulApz3EjWXqTZpMlr2vLN9PryC9ghoyCuRmqZaf3JJhPddzgQpJnKLi2QhoFnvKBFtJekAIBSYg==
1976 | /math-sign-x/3.0.0:
1977 | dependencies:
1978 | is-nan-x: 1.0.3
1979 | to-number-x: 2.0.0
1980 | dev: false
1981 | resolution:
1982 | integrity: sha512-OzPas41Pn4d16KHnaXmGxxY3/l3zK4OIXtmIwdhgZsxz4FDDcNnbrABYPg2vGfxIkaT9ezGnzDviRH7RfF44jQ==
1983 | /max-safe-integer/1.0.1:
1984 | dev: false
1985 | engines:
1986 | node: '>=0.10.0'
1987 | resolution:
1988 | integrity: sha1-84BgvixWPYwC5tSK85Ei/YO29BA=
1989 | /md5.js/1.3.4:
1990 | dependencies:
1991 | hash-base: 3.0.4
1992 | inherits: 2.0.3
1993 | dev: false
1994 | resolution:
1995 | integrity: sha1-6b296UogpawYsENA/Fdk1bCdkB0=
1996 | /md5/2.2.1:
1997 | dependencies:
1998 | charenc: 0.0.2
1999 | crypt: 0.0.2
2000 | is-buffer: 1.1.6
2001 | dev: false
2002 | resolution:
2003 | integrity: sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
2004 | /media-typer/0.3.0:
2005 | dev: false
2006 | engines:
2007 | node: '>= 0.6'
2008 | resolution:
2009 | integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
2010 | /memory-pager/1.1.0:
2011 | dev: false
2012 | resolution:
2013 | integrity: sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==
2014 | /merge-descriptors/1.0.1:
2015 | dev: false
2016 | resolution:
2017 | integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
2018 | /merge-source-map/1.0.4:
2019 | dependencies:
2020 | source-map: 0.5.7
2021 | dev: false
2022 | resolution:
2023 | integrity: sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=
2024 | /merkle-tree-stream/3.0.3:
2025 | dependencies:
2026 | flat-tree: 1.6.0
2027 | readable-stream: 2.3.4
2028 | dev: false
2029 | resolution:
2030 | integrity: sha1-+KBkdg0355eK1fn208EZpJT1cIE=
2031 | /methods/1.1.2:
2032 | dev: false
2033 | engines:
2034 | node: '>= 0.6'
2035 | resolution:
2036 | integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
2037 | /micromatch/2.3.11:
2038 | dependencies:
2039 | arr-diff: 2.0.0
2040 | array-unique: 0.2.1
2041 | braces: 1.8.5
2042 | expand-brackets: 0.1.5
2043 | extglob: 0.3.2
2044 | filename-regex: 2.0.1
2045 | is-extglob: 1.0.0
2046 | is-glob: 2.0.1
2047 | kind-of: 3.2.2
2048 | normalize-path: 2.1.1
2049 | object.omit: 2.0.1
2050 | parse-glob: 3.0.4
2051 | regex-cache: 0.4.4
2052 | dev: false
2053 | engines:
2054 | node: '>=0.10.0'
2055 | resolution:
2056 | integrity: sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
2057 | /miller-rabin/4.0.1:
2058 | dependencies:
2059 | bn.js: 4.11.8
2060 | brorand: 1.1.0
2061 | dev: false
2062 | resolution:
2063 | integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
2064 | /mime-db/1.33.0:
2065 | dev: false
2066 | engines:
2067 | node: '>= 0.6'
2068 | resolution:
2069 | integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==
2070 | /mime-types/2.1.18:
2071 | dependencies:
2072 | mime-db: 1.33.0
2073 | dev: false
2074 | engines:
2075 | node: '>= 0.6'
2076 | resolution:
2077 | integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==
2078 | /mime/1.4.1:
2079 | dev: false
2080 | resolution:
2081 | integrity: sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
2082 | /min-document/2.19.0:
2083 | dependencies:
2084 | dom-walk: 0.1.1
2085 | dev: false
2086 | resolution:
2087 | integrity: sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
2088 | /minimalistic-assert/1.0.0:
2089 | dev: false
2090 | resolution:
2091 | integrity: sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=
2092 | /minimalistic-crypto-utils/1.0.1:
2093 | dev: false
2094 | resolution:
2095 | integrity: sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
2096 | /minimatch/3.0.4:
2097 | dependencies:
2098 | brace-expansion: 1.1.11
2099 | dev: false
2100 | resolution:
2101 | integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
2102 | /minimist/0.0.8:
2103 | dev: false
2104 | resolution:
2105 | integrity: sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
2106 | /minimist/1.2.0:
2107 | dev: false
2108 | resolution:
2109 | integrity: sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
2110 | /mkdirp/0.5.1:
2111 | dependencies:
2112 | minimist: 0.0.8
2113 | dev: false
2114 | resolution:
2115 | integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
2116 | /module-deps/5.0.1:
2117 | dependencies:
2118 | JSONStream: 1.3.2
2119 | browser-resolve: 1.11.2
2120 | cached-path-relative: 1.0.1
2121 | concat-stream: 1.6.1
2122 | defined: 1.0.0
2123 | detective: 5.1.0
2124 | duplexer2: 0.1.4
2125 | inherits: 2.0.3
2126 | parents: 1.0.1
2127 | readable-stream: 2.3.4
2128 | resolve: 1.5.0
2129 | stream-combiner2: 1.1.1
2130 | subarg: 1.0.0
2131 | through2: 2.0.3
2132 | xtend: 4.0.1
2133 | dev: false
2134 | engines:
2135 | node: '>= 0.8.0'
2136 | resolution:
2137 | integrity: sha512-sigq/hm/L+Z5IGi1DDl0x2ptkw7S86aFh213QhPLD8v9Opv90IHzKIuWJrRa5bJ77DVKHco2CfIEuThcT/vDJA==
2138 | /ms/2.0.0:
2139 | dev: false
2140 | resolution:
2141 | integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
2142 | /multicast-dns/6.2.3:
2143 | dependencies:
2144 | dns-packet: 1.3.1
2145 | thunky: 1.0.2
2146 | dev: false
2147 | resolution:
2148 | integrity: sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
2149 | /mutexify/1.2.0:
2150 | dev: false
2151 | resolution:
2152 | integrity: sha512-oprzxd2zhfrJqEuB98qc1dRMMonClBQ57UPDjnbcrah4orEMTq1jq3+AcdFe5ePzdbJXI7zmdhfftIdMnhYFoQ==
2153 | /nan-x/1.0.2:
2154 | dev: false
2155 | resolution:
2156 | integrity: sha512-dndRmy03JQEN+Nh6WjQl7/OstIozeEmrtWe4TE7mEqJ8W8oMD8m2tHjsLPWt//e3hLAeRSbs4pxMyc5pk/nCkQ==
2157 | /nan/2.9.2:
2158 | dev: false
2159 | optional: true
2160 | resolution:
2161 | integrity: sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==
2162 | /nanoassert/1.1.0:
2163 | dev: false
2164 | resolution:
2165 | integrity: sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40=
2166 | /nanobus/4.3.3:
2167 | dependencies:
2168 | nanotiming: 7.3.0
2169 | remove-array-items: 1.0.0
2170 | dev: false
2171 | resolution:
2172 | integrity: sha512-4/uzl+LkMGoVv/9eMzH2QFvefmlJErT0KR7EmuYbmht2QvxSEqTjhFFOZ/KHE6chH58fKL3njrOcEwbYV0h9Yw==
2173 | /nanocomponent/6.5.1:
2174 | dependencies:
2175 | global: 4.3.2
2176 | nanoassert: 1.1.0
2177 | nanomorph: 5.1.3
2178 | nanotiming: 7.3.0
2179 | on-load: 3.4.0
2180 | dev: false
2181 | resolution:
2182 | integrity: sha512-cm3gWVTdDintnWJ2SrXnnEOgwGb61HzZXKz4olydWC+IbQzvZIj1Gj7daZA8FAc53aE/wOPWIrJhUkjUp/X0Yw==
2183 | /nanohref/3.0.1:
2184 | dev: false
2185 | resolution:
2186 | integrity: sha512-YfDhNcglFDIISfKVnXHovDaaglTauD2ThidaTZuyV6NE0lQMvGs5UfSoa1GvX6Nd9p2TfFeYzzc+TtjH+htu+Q==
2187 | /nanolocation/1.0.0:
2188 | dev: false
2189 | resolution:
2190 | integrity: sha1-FbXHrwWJXRqfIfDRNkldmURQaGs=
2191 | /nanomorph/5.1.3:
2192 | dependencies:
2193 | nanoassert: 1.1.0
2194 | dev: false
2195 | resolution:
2196 | integrity: sha512-VydkKjFWU/DAO0R10awFASRNXQKHrZUMdMIiNcdmWm+IhuifuPOw/dDtpiQ1cNROF8f3ATPrcKRVarEayQJOqA==
2197 | /nanoquery/1.2.0:
2198 | dependencies:
2199 | nanoassert: 1.1.0
2200 | dev: false
2201 | resolution:
2202 | integrity: sha512-o4JC1cLsNSu8gLMLeALBFPzILMPyc3HltXT0727vncM29N1qB802oQyza3lQRjI9iylRRK0X5jjTjiPZyCw0gg==
2203 | /nanoraf/3.0.1:
2204 | dev: false
2205 | resolution:
2206 | integrity: sha1-q5+5wle5rcxx2CmCy1jY+jUDdko=
2207 | /nanorouter/3.0.1:
2208 | dependencies:
2209 | wayfarer: 6.6.3
2210 | dev: false
2211 | resolution:
2212 | integrity: sha512-i3PLabdN+Lc7agnJ3dTgQSHy5e5xOyuAeoIvPC0hlLOlFegt95mlg9xFhFC17+PK0A1iP6ev2FCkSMMTVt6zUA==
2213 | /nanoscheduler/1.0.2:
2214 | dependencies:
2215 | nanoassert: 1.1.0
2216 | dev: false
2217 | resolution:
2218 | integrity: sha512-hYNfVK18oB14U/We4smU0XGFwnah9J60TrhiUw5GLFCMgyHb+rhFVQ/ZovIq7UH8nUnXbpfUq6IJqbdjN9JR/w==
2219 | /nanotiming/7.3.0:
2220 | dependencies:
2221 | nanoscheduler: 1.0.2
2222 | dev: false
2223 | resolution:
2224 | integrity: sha512-lNJ8Ch+fI2yIt9tlgO3G/1Md00S23FghTFVYqKnXseIegcRgHg/fEm7Abw8Imakk0fpNGiK9eSSlopnsE61uMw==
2225 | /negotiator/0.6.1:
2226 | dev: false
2227 | engines:
2228 | node: '>= 0.6'
2229 | resolution:
2230 | integrity: sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
2231 | /network-address/1.1.2:
2232 | dev: false
2233 | resolution:
2234 | integrity: sha1-Sqe/1D8D8LgclwKxPWqFjdsybz4=
2235 | /next-tick/1.0.0:
2236 | dev: false
2237 | resolution:
2238 | integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw=
2239 | /node-gyp-build/3.2.2:
2240 | dev: false
2241 | optional: true
2242 | resolution:
2243 | integrity: sha512-t8W/0UqFGl1c+5ORA3NoT3npU+PxWBL9iPhY7ZySSTszodj3RWexmu8niayWBE0v+0DLARvOXsjaAvfmSEQOyQ==
2244 | /normalize-path/2.1.1:
2245 | dependencies:
2246 | remove-trailing-separator: 1.1.0
2247 | dev: false
2248 | engines:
2249 | node: '>=0.10.0'
2250 | resolution:
2251 | integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
2252 | /normalize-space-x/3.0.0:
2253 | dependencies:
2254 | cached-constructors-x: 1.0.2
2255 | trim-x: 3.0.0
2256 | white-space-x: 3.0.1
2257 | dev: false
2258 | resolution:
2259 | integrity: sha512-tbCJerqZCCHPst4rRKgsTanLf45fjOyeAU5zE3mhDxJtFJKt66q39g2XArWhXelgTFVib8mNBUm6Wrd0LxYcfQ==
2260 | /npm-run-path/2.0.2:
2261 | dependencies:
2262 | path-key: 2.0.1
2263 | dev: false
2264 | engines:
2265 | node: '>=4'
2266 | resolution:
2267 | integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
2268 | /number-is-nan/1.0.1:
2269 | dev: false
2270 | engines:
2271 | node: '>=0.10.0'
2272 | resolution:
2273 | integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
2274 | /object-assign/4.1.1:
2275 | dev: false
2276 | engines:
2277 | node: '>=0.10.0'
2278 | resolution:
2279 | integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
2280 | /object-get-own-property-descriptor-x/3.2.0:
2281 | dependencies:
2282 | attempt-x: 1.1.3
2283 | has-own-property-x: 3.2.0
2284 | has-symbol-support-x: 1.4.2
2285 | is-falsey-x: 1.0.3
2286 | is-index-x: 1.1.0
2287 | is-primitive: 2.0.0
2288 | is-string: 1.0.4
2289 | property-is-enumerable-x: 1.1.0
2290 | to-object-x: 1.5.0
2291 | to-property-key-x: 2.0.2
2292 | dev: false
2293 | resolution:
2294 | integrity: sha512-Z/0fIrptD9YuzN+SNK/1kxAEaBcPQM4gSrtOSMSi9eplnL/AbyQcAyAlreAoAzmBon+DQ1Z+AdhxyQSvav5Fyg==
2295 | /object-inspect/1.4.1:
2296 | dev: false
2297 | resolution:
2298 | integrity: sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==
2299 | /object-keys/1.0.11:
2300 | dev: false
2301 | engines:
2302 | node: '>= 0.4'
2303 | resolution:
2304 | integrity: sha1-xUYBd4rVYPEULODgG8yotW0TQm0=
2305 | /object.omit/2.0.1:
2306 | dependencies:
2307 | for-own: 0.1.5
2308 | is-extendable: 0.1.1
2309 | dev: false
2310 | engines:
2311 | node: '>=0.10.0'
2312 | resolution:
2313 | integrity: sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
2314 | /on-finished/2.3.0:
2315 | dependencies:
2316 | ee-first: 1.1.1
2317 | dev: false
2318 | engines:
2319 | node: '>= 0.8'
2320 | resolution:
2321 | integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
2322 | /on-headers/1.0.1:
2323 | dev: false
2324 | engines:
2325 | node: '>= 0.8'
2326 | resolution:
2327 | integrity: sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=
2328 | /on-load/3.4.0:
2329 | dependencies:
2330 | global: 4.3.2
2331 | nanoassert: 1.1.0
2332 | dev: false
2333 | resolution:
2334 | integrity: sha512-p+fRMvrBSGVisUWz+2jOAO/F3oecpIcgs0m6nBjyytTnalwFQkOvRg6s8B94oPiV83ot+dq+2vZnHrnkVpom0g==
2335 | /once/1.3.3:
2336 | dependencies:
2337 | wrappy: 1.0.2
2338 | dev: false
2339 | resolution:
2340 | integrity: sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=
2341 | /once/1.4.0:
2342 | dependencies:
2343 | wrappy: 1.0.2
2344 | dev: false
2345 | resolution:
2346 | integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
2347 | /opn/3.0.3:
2348 | dependencies:
2349 | object-assign: 4.1.1
2350 | dev: false
2351 | engines:
2352 | node: '>=0.10.0'
2353 | resolution:
2354 | integrity: sha1-ttmec5n3jWXDuq/+8fsojpuFJDo=
2355 | /optionator/0.8.2:
2356 | dependencies:
2357 | deep-is: 0.1.3
2358 | fast-levenshtein: 2.0.6
2359 | levn: 0.3.0
2360 | prelude-ls: 1.1.2
2361 | type-check: 0.3.2
2362 | wordwrap: 1.0.0
2363 | dev: false
2364 | engines:
2365 | node: '>= 0.8.0'
2366 | resolution:
2367 | integrity: sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
2368 | /options/0.0.6:
2369 | dev: false
2370 | engines:
2371 | node: '>=0.4.0'
2372 | resolution:
2373 | integrity: sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
2374 | /os-browserify/0.3.0:
2375 | dev: false
2376 | resolution:
2377 | integrity: sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
2378 | /os-tmpdir/1.0.2:
2379 | dev: false
2380 | engines:
2381 | node: '>=0.10.0'
2382 | resolution:
2383 | integrity: sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
2384 | /outpipe/1.1.1:
2385 | dependencies:
2386 | shell-quote: 1.6.1
2387 | dev: false
2388 | resolution:
2389 | integrity: sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=
2390 | /p-finally/1.0.0:
2391 | dev: false
2392 | engines:
2393 | node: '>=4'
2394 | resolution:
2395 | integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
2396 | /pad-left/2.1.0:
2397 | dependencies:
2398 | repeat-string: 1.6.1
2399 | dev: false
2400 | engines:
2401 | node: '>=0.10.0'
2402 | resolution:
2403 | integrity: sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=
2404 | /pad-right/0.2.2:
2405 | dependencies:
2406 | repeat-string: 1.6.1
2407 | dev: false
2408 | engines:
2409 | node: '>=0.10.0'
2410 | resolution:
2411 | integrity: sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=
2412 | /pako/1.0.6:
2413 | dev: false
2414 | resolution:
2415 | integrity: sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==
2416 | /parents/1.0.1:
2417 | dependencies:
2418 | path-platform: 0.11.15
2419 | dev: false
2420 | resolution:
2421 | integrity: sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=
2422 | /parse-asn1/5.1.0:
2423 | dependencies:
2424 | asn1.js: 4.10.1
2425 | browserify-aes: 1.1.1
2426 | create-hash: 1.1.3
2427 | evp_bytestokey: 1.0.3
2428 | pbkdf2: 3.0.14
2429 | dev: false
2430 | resolution:
2431 | integrity: sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=
2432 | /parse-glob/3.0.4:
2433 | dependencies:
2434 | glob-base: 0.3.0
2435 | is-dotfile: 1.0.3
2436 | is-extglob: 1.0.0
2437 | is-glob: 2.0.1
2438 | dev: false
2439 | engines:
2440 | node: '>=0.10.0'
2441 | resolution:
2442 | integrity: sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
2443 | /parse-int-x/2.0.0:
2444 | dependencies:
2445 | cached-constructors-x: 1.0.2
2446 | nan-x: 1.0.2
2447 | to-string-x: 1.4.5
2448 | trim-left-x: 3.0.0
2449 | dev: false
2450 | resolution:
2451 | integrity: sha512-NIMm52gmd1+0qxJK8lV3OZ4zzWpRH1xcz9xCHXl+DNzddwUdS4NEtd7BmTeK7iCIXoaK5e6BoDMHgieH2eNIhg==
2452 | /parse-ms/1.0.1:
2453 | dev: false
2454 | engines:
2455 | node: '>=0.10.0'
2456 | resolution:
2457 | integrity: sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=
2458 | /parseurl/1.3.2:
2459 | dev: false
2460 | engines:
2461 | node: '>= 0.8'
2462 | resolution:
2463 | integrity: sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=
2464 | /path-browserify/0.0.0:
2465 | dev: false
2466 | resolution:
2467 | integrity: sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=
2468 | /path-is-absolute/1.0.1:
2469 | dev: false
2470 | engines:
2471 | node: '>=0.10.0'
2472 | resolution:
2473 | integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
2474 | /path-key/2.0.1:
2475 | dev: false
2476 | engines:
2477 | node: '>=4'
2478 | resolution:
2479 | integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
2480 | /path-parse/1.0.5:
2481 | dev: false
2482 | resolution:
2483 | integrity: sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=
2484 | /path-platform/0.11.15:
2485 | dev: false
2486 | engines:
2487 | node: '>= 0.8.0'
2488 | resolution:
2489 | integrity: sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=
2490 | /path-to-regexp/0.1.7:
2491 | dev: false
2492 | resolution:
2493 | integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
2494 | /pbkdf2/3.0.14:
2495 | dependencies:
2496 | create-hash: 1.1.3
2497 | create-hmac: 1.1.6
2498 | ripemd160: 2.0.1
2499 | safe-buffer: 5.1.1
2500 | sha.js: 2.4.10
2501 | dev: false
2502 | engines:
2503 | node: '>=0.12'
2504 | resolution:
2505 | integrity: sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==
2506 | /pelo/0.1.0:
2507 | dev: false
2508 | resolution:
2509 | integrity: sha512-+oVixa69fxS/X+3s1DaSJVQLG/ukHfjK2pHCmpIgjRChp73lnAfbqOYZ0MEo5C5yVkYeUJSoWAcRK0lx0hvOjQ==
2510 | /pem/1.12.3:
2511 | dependencies:
2512 | md5: 2.2.1
2513 | os-tmpdir: 1.0.2
2514 | safe-buffer: 5.1.1
2515 | which: 1.3.0
2516 | dev: false
2517 | engines:
2518 | node: '>=4.0.0'
2519 | resolution:
2520 | integrity: sha512-hT7GwvQL35+0iqgYUl8vn5I5pAVR0HcJas07TXL8bNaR4c5kAFRquk4ZqQk1F9YMcQOr6WjGdY5OnDC0RBnzig==
2521 | /plur/1.0.0:
2522 | dev: false
2523 | engines:
2524 | node: '>=0.10.0'
2525 | resolution:
2526 | integrity: sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=
2527 | /postcss-prefix/2.1.1:
2528 | dependencies:
2529 | postcss: 5.2.18
2530 | postcss-selector-parser: 1.3.3
2531 | dev: false
2532 | resolution:
2533 | integrity: sha512-S1G40iScgg/V/P6MPqPH0+B0KDc5LpN2zoEERQGywftZ3IbIESJDsz984n3ZPDFycT2NZ1nGJx/eC6oJX8xKTg==
2534 | /postcss-selector-parser/1.3.3:
2535 | dependencies:
2536 | flatten: 1.0.2
2537 | indexes-of: 1.0.1
2538 | uniq: 1.0.1
2539 | dev: false
2540 | resolution:
2541 | integrity: sha1-0u4Z33pk+O8hwacchvfUg1yIwoE=
2542 | /postcss/5.2.18:
2543 | dependencies:
2544 | chalk: 1.1.3
2545 | js-base64: 2.4.3
2546 | source-map: 0.5.7
2547 | supports-color: 3.2.3
2548 | dev: false
2549 | engines:
2550 | node: '>=0.12'
2551 | resolution:
2552 | integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
2553 | /prelude-ls/1.1.2:
2554 | dev: false
2555 | engines:
2556 | node: '>= 0.8.0'
2557 | resolution:
2558 | integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
2559 | /preserve/0.2.0:
2560 | dev: false
2561 | engines:
2562 | node: '>=0.10.0'
2563 | resolution:
2564 | integrity: sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
2565 | /prettier-bytes/1.0.4:
2566 | dev: false
2567 | resolution:
2568 | integrity: sha1-mUsCqkb2mcULYle1+qp/4lV+YtY=
2569 | /pretty-hash/1.0.1:
2570 | dev: false
2571 | resolution:
2572 | integrity: sha1-FuBXkYje9WvbVliSvNBaXWUySAc=
2573 | /pretty-ms/2.1.0:
2574 | dependencies:
2575 | is-finite: 1.0.2
2576 | parse-ms: 1.0.1
2577 | plur: 1.0.0
2578 | dev: false
2579 | engines:
2580 | node: '>=0.10.0'
2581 | resolution:
2582 | integrity: sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=
2583 | /process-nextick-args/1.0.7:
2584 | dev: false
2585 | resolution:
2586 | integrity: sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
2587 | /process-nextick-args/2.0.0:
2588 | dev: false
2589 | resolution:
2590 | integrity: sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
2591 | /process/0.11.10:
2592 | dev: false
2593 | engines:
2594 | node: '>= 0.6.0'
2595 | resolution:
2596 | integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
2597 | /process/0.5.2:
2598 | dev: false
2599 | engines:
2600 | node: '>= 0.6.0'
2601 | resolution:
2602 | integrity: sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=
2603 | /property-is-enumerable-x/1.1.0:
2604 | dependencies:
2605 | to-object-x: 1.5.0
2606 | to-property-key-x: 2.0.2
2607 | dev: false
2608 | resolution:
2609 | integrity: sha512-22cKy3w3OpRswU6to9iKWDDlg+F9vF2REcwGlGW23jyLjHb1U/jJEWA44sWupOnkhGfDgotU6Lw+N2oyhNi+5A==
2610 | /protocol-buffers-encodings/1.1.0:
2611 | dependencies:
2612 | signed-varint: 2.0.1
2613 | varint: 5.0.0
2614 | dev: false
2615 | resolution:
2616 | integrity: sha512-SmjEuAf3hc3h3rWZ6V1YaaQw2MNJWK848gLJgzx/sefOJdNLujKinJVXIS0q2cBQpQn2Q32TinawZyDZPzm4kQ==
2617 | /proxy-addr/2.0.3:
2618 | dependencies:
2619 | forwarded: 0.1.2
2620 | ipaddr.js: 1.6.0
2621 | dev: false
2622 | engines:
2623 | node: '>= 0.10'
2624 | resolution:
2625 | integrity: sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==
2626 | /pseudomap/1.0.2:
2627 | dev: false
2628 | resolution:
2629 | integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
2630 | /public-encrypt/4.0.0:
2631 | dependencies:
2632 | bn.js: 4.11.8
2633 | browserify-rsa: 4.0.1
2634 | create-hash: 1.1.3
2635 | parse-asn1: 5.1.0
2636 | randombytes: 2.0.6
2637 | dev: false
2638 | resolution:
2639 | integrity: sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=
2640 | /pump/1.0.3:
2641 | dependencies:
2642 | end-of-stream: 1.4.1
2643 | once: 1.4.0
2644 | dev: false
2645 | resolution:
2646 | integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==
2647 | /punycode/1.3.2:
2648 | dev: false
2649 | resolution:
2650 | integrity: sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
2651 | /punycode/1.4.1:
2652 | dev: false
2653 | resolution:
2654 | integrity: sha1-wNWmOycYgArY4esPpSachN1BhF4=
2655 | /qs/6.5.1:
2656 | dev: false
2657 | engines:
2658 | node: '>=0.6'
2659 | resolution:
2660 | integrity: sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
2661 | /query-string/4.3.4:
2662 | dependencies:
2663 | object-assign: 4.1.1
2664 | strict-uri-encode: 1.1.0
2665 | dev: false
2666 | engines:
2667 | node: '>=0.10.0'
2668 | resolution:
2669 | integrity: sha1-u7aTucqRXCMlFbIosaArYJBD2+s=
2670 | /querystring-es3/0.2.1:
2671 | dev: false
2672 | engines:
2673 | node: '>=0.4.x'
2674 | resolution:
2675 | integrity: sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
2676 | /querystring/0.2.0:
2677 | dev: false
2678 | engines:
2679 | node: '>=0.4.x'
2680 | resolution:
2681 | integrity: sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
2682 | /quote-stream/1.0.2:
2683 | dependencies:
2684 | buffer-equal: 0.0.1
2685 | minimist: 1.2.0
2686 | through2: 2.0.3
2687 | dev: false
2688 | resolution:
2689 | integrity: sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=
2690 | /random-access-file/1.8.1:
2691 | dependencies:
2692 | buffer-alloc-unsafe: 1.0.0
2693 | debug: 2.6.9
2694 | inherits: 2.0.3
2695 | mkdirp: 0.5.1
2696 | thunky: 1.0.2
2697 | dev: false
2698 | resolution:
2699 | integrity: sha512-+Uhk0Of+dWHWjpbL2hizcwSV1UomcN3S0iUGV6BTZ2Js1BP9jHx3E5CT7y0eLbqTQNkVi4iehkHmia7Mdqa47w==
2700 | /random-access-file/2.0.1:
2701 | dependencies:
2702 | mkdirp: 0.5.1
2703 | random-access-storage: 1.1.1
2704 | dev: false
2705 | resolution:
2706 | integrity: sha512-nb4fClpzoUY+v1SHrro+9yykN90eMA1rc+xM39tnZ5R3BgFY+J/NxPZ0KuUpishEsvnwou9Fvm2wa3cjeuG7vg==
2707 | /random-access-idb/1.0.4:
2708 | dependencies:
2709 | abstract-random-access: 1.1.2
2710 | buffer-alloc: 1.1.0
2711 | buffer-from: 0.1.1
2712 | inherits: 2.0.3
2713 | mutexify: 1.2.0
2714 | next-tick: 1.0.0
2715 | once: 1.4.0
2716 | dev: false
2717 | resolution:
2718 | integrity: sha1-ZzQcDfjmWt9DLuQu/99hpSjw+Ck=
2719 | /random-access-memory/2.4.0:
2720 | dependencies:
2721 | process-nextick-args: 1.0.7
2722 | dev: false
2723 | resolution:
2724 | integrity: sha1-cvPYZbS1WiWYeUc+L7LeNWnGnuI=
2725 | /random-access-storage/1.1.1:
2726 | dependencies:
2727 | inherits: 2.0.3
2728 | dev: false
2729 | resolution:
2730 | integrity: sha512-YQK8Qb2d2QSjIcrKb1W4szghj4cvWTCjRN6T8Fhp0+tXHHgY14EIHxY5HJhbeBAl5sMxhQ8+6guUgerJniyuWw==
2731 | /randomatic/1.1.7:
2732 | dependencies:
2733 | is-number: 3.0.0
2734 | kind-of: 4.0.0
2735 | dev: false
2736 | engines:
2737 | node: '>= 0.10.0'
2738 | resolution:
2739 | integrity: sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==
2740 | /randombytes/2.0.6:
2741 | dependencies:
2742 | safe-buffer: 5.1.1
2743 | dev: false
2744 | resolution:
2745 | integrity: sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==
2746 | /randomfill/1.0.4:
2747 | dependencies:
2748 | randombytes: 2.0.6
2749 | safe-buffer: 5.1.1
2750 | dev: false
2751 | resolution:
2752 | integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
2753 | /range-parser/1.2.0:
2754 | dev: false
2755 | engines:
2756 | node: '>= 0.6'
2757 | resolution:
2758 | integrity: sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
2759 | /raw-body/2.3.2:
2760 | dependencies:
2761 | bytes: 3.0.0
2762 | http-errors: 1.6.2
2763 | iconv-lite: 0.4.19
2764 | unpipe: 1.0.0
2765 | dev: false
2766 | engines:
2767 | node: '>= 0.8'
2768 | resolution:
2769 | integrity: sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=
2770 | /read-only-stream/2.0.0:
2771 | dependencies:
2772 | readable-stream: 2.3.4
2773 | dev: false
2774 | resolution:
2775 | integrity: sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=
2776 | /readable-stream/1.0.34:
2777 | dependencies:
2778 | core-util-is: 1.0.2
2779 | inherits: 2.0.3
2780 | isarray: 0.0.1
2781 | string_decoder: 0.10.31
2782 | dev: false
2783 | resolution:
2784 | integrity: sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
2785 | /readable-stream/2.0.6:
2786 | dependencies:
2787 | core-util-is: 1.0.2
2788 | inherits: 2.0.3
2789 | isarray: 1.0.0
2790 | process-nextick-args: 1.0.7
2791 | string_decoder: 0.10.31
2792 | util-deprecate: 1.0.2
2793 | dev: false
2794 | resolution:
2795 | integrity: sha1-j5A0HmilPMySh4jaz80Rs265t44=
2796 | /readable-stream/2.3.4:
2797 | dependencies:
2798 | core-util-is: 1.0.2
2799 | inherits: 2.0.3
2800 | isarray: 1.0.0
2801 | process-nextick-args: 2.0.0
2802 | safe-buffer: 5.1.1
2803 | string_decoder: 1.0.3
2804 | util-deprecate: 1.0.2
2805 | dev: false
2806 | resolution:
2807 | integrity: sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==
2808 | /readdirp/2.1.0:
2809 | dependencies:
2810 | graceful-fs: 4.1.11
2811 | minimatch: 3.0.4
2812 | readable-stream: 2.3.4
2813 | set-immediate-shim: 1.0.1
2814 | dev: false
2815 | engines:
2816 | node: '>=0.6'
2817 | resolution:
2818 | integrity: sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=
2819 | /regex-cache/0.4.4:
2820 | dependencies:
2821 | is-equal-shallow: 0.1.3
2822 | dev: false
2823 | engines:
2824 | node: '>=0.10.0'
2825 | resolution:
2826 | integrity: sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
2827 | /reload-css/1.0.2:
2828 | dependencies:
2829 | query-string: 4.3.4
2830 | dev: false
2831 | resolution:
2832 | integrity: sha1-avsRFi4jFP7M2tbcX96CH9cxgzE=
2833 | /remove-array-items/1.0.0:
2834 | dev: false
2835 | resolution:
2836 | integrity: sha1-B79CyzMvTPboXq2DteToltIyayE=
2837 | /remove-trailing-separator/1.1.0:
2838 | dev: false
2839 | resolution:
2840 | integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
2841 | /repeat-element/1.1.2:
2842 | dev: false
2843 | engines:
2844 | node: '>=0.10.0'
2845 | resolution:
2846 | integrity: sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=
2847 | /repeat-string/1.6.1:
2848 | dev: false
2849 | engines:
2850 | node: '>=0.10'
2851 | resolution:
2852 | integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=
2853 | /replace-comments-x/2.0.0:
2854 | dependencies:
2855 | require-coercible-to-string-x: 1.0.2
2856 | to-string-x: 1.4.5
2857 | dev: false
2858 | resolution:
2859 | integrity: sha512-+vMP4jqU+8HboLWms6YMNEiaZG5hh1oR6ENCnGYDF/UQ7aYiJUK/8tcl3+KZAHRCKKa3gqzrfiarlUBHQSgRlg==
2860 | /require-coercible-to-string-x/1.0.2:
2861 | dependencies:
2862 | require-object-coercible-x: 1.4.3
2863 | to-string-x: 1.4.5
2864 | dev: false
2865 | resolution:
2866 | integrity: sha512-GZ3BSCL0n/zhho8ITganW9FGPh0Kxhq71nCjck8Qau/30Wf4Po8a3XpQdzEMFiXCwZ/0m0E3lKSdSG8gkcIofQ==
2867 | /require-object-coercible-x/1.4.3:
2868 | dependencies:
2869 | is-nil-x: 1.4.2
2870 | dev: false
2871 | resolution:
2872 | integrity: sha512-5wEaS+NIiU5HLJQTqBQ+6XHtX7yplUS374j/H/nRDlc7rMWfENqp026jnUHWAOCZ+ekixkXuFHEnTF28oqqVLA==
2873 | /resolve/1.1.7:
2874 | dev: false
2875 | resolution:
2876 | integrity: sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
2877 | /resolve/1.5.0:
2878 | dependencies:
2879 | path-parse: 1.0.5
2880 | dev: false
2881 | resolution:
2882 | integrity: sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==
2883 | /resp-modifier/6.0.2:
2884 | dependencies:
2885 | debug: 2.6.9
2886 | minimatch: 3.0.4
2887 | dev: false
2888 | engines:
2889 | node: '>= 0.8.0'
2890 | resolution:
2891 | integrity: sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=
2892 | /right-now/1.0.0:
2893 | dev: false
2894 | resolution:
2895 | integrity: sha1-bolgne69fc2vja7Mmuo5z1haCRg=
2896 | /ripemd160/2.0.1:
2897 | dependencies:
2898 | hash-base: 2.0.2
2899 | inherits: 2.0.3
2900 | dev: false
2901 | resolution:
2902 | integrity: sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=
2903 | /rusha/0.8.13:
2904 | dev: false
2905 | resolution:
2906 | integrity: sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo=
2907 | /safe-buffer/5.0.1:
2908 | dev: false
2909 | resolution:
2910 | integrity: sha1-0mPKVGls2KMGtcplUekt5XkY++c=
2911 | /safe-buffer/5.1.1:
2912 | dev: false
2913 | resolution:
2914 | integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
2915 | /scroll-to-anchor/1.1.0:
2916 | dev: false
2917 | resolution:
2918 | integrity: sha1-yZuNLl2VBWdSeHyngJWrdbUgs/0=
2919 | /send/0.16.1:
2920 | dependencies:
2921 | debug: 2.6.9
2922 | depd: 1.1.2
2923 | destroy: 1.0.4
2924 | encodeurl: 1.0.2
2925 | escape-html: 1.0.3
2926 | etag: 1.8.1
2927 | fresh: 0.5.2
2928 | http-errors: 1.6.2
2929 | mime: 1.4.1
2930 | ms: 2.0.0
2931 | on-finished: 2.3.0
2932 | range-parser: 1.2.0
2933 | statuses: 1.3.1
2934 | dev: false
2935 | engines:
2936 | node: '>= 0.8.0'
2937 | resolution:
2938 | integrity: sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==
2939 | /send/0.16.2:
2940 | dependencies:
2941 | debug: 2.6.9
2942 | depd: 1.1.2
2943 | destroy: 1.0.4
2944 | encodeurl: 1.0.2
2945 | escape-html: 1.0.3
2946 | etag: 1.8.1
2947 | fresh: 0.5.2
2948 | http-errors: 1.6.2
2949 | mime: 1.4.1
2950 | ms: 2.0.0
2951 | on-finished: 2.3.0
2952 | range-parser: 1.2.0
2953 | statuses: 1.4.0
2954 | dev: false
2955 | engines:
2956 | node: '>= 0.8.0'
2957 | resolution:
2958 | integrity: sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==
2959 | /serve-static/1.13.1:
2960 | dependencies:
2961 | encodeurl: 1.0.2
2962 | escape-html: 1.0.3
2963 | parseurl: 1.3.2
2964 | send: 0.16.1
2965 | dev: false
2966 | engines:
2967 | node: '>= 0.8.0'
2968 | resolution:
2969 | integrity: sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==
2970 | /serve-static/1.13.2:
2971 | dependencies:
2972 | encodeurl: 1.0.2
2973 | escape-html: 1.0.3
2974 | parseurl: 1.3.2
2975 | send: 0.16.2
2976 | dev: false
2977 | engines:
2978 | node: '>= 0.8.0'
2979 | resolution:
2980 | integrity: sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==
2981 | /set-immediate-shim/1.0.1:
2982 | dev: false
2983 | engines:
2984 | node: '>=0.10.0'
2985 | resolution:
2986 | integrity: sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=
2987 | /setprototypeof/1.0.3:
2988 | dev: false
2989 | resolution:
2990 | integrity: sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=
2991 | /setprototypeof/1.1.0:
2992 | dev: false
2993 | resolution:
2994 | integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
2995 | /sha.js/2.4.10:
2996 | dependencies:
2997 | inherits: 2.0.3
2998 | safe-buffer: 5.1.1
2999 | dev: false
3000 | resolution:
3001 | integrity: sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==
3002 | /shallow-copy/0.0.1:
3003 | dev: false
3004 | resolution:
3005 | integrity: sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=
3006 | /shasum/1.0.2:
3007 | dependencies:
3008 | json-stable-stringify: 0.0.1
3009 | sha.js: 2.4.10
3010 | dev: false
3011 | resolution:
3012 | integrity: sha1-5wEjENj0F/TetXEhUOVni4euVl8=
3013 | /shebang-command/1.2.0:
3014 | dependencies:
3015 | shebang-regex: 1.0.0
3016 | dev: false
3017 | engines:
3018 | node: '>=0.10.0'
3019 | resolution:
3020 | integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
3021 | /shebang-regex/1.0.0:
3022 | dev: false
3023 | engines:
3024 | node: '>=0.10.0'
3025 | resolution:
3026 | integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
3027 | /sheetify/7.3.0:
3028 | dependencies:
3029 | acorn-node: 1.3.0
3030 | fast-json-parse: 1.0.3
3031 | findup: 0.1.5
3032 | insert-css: 2.0.0
3033 | map-limit: 0.0.1
3034 | postcss: 5.2.18
3035 | postcss-prefix: 2.1.1
3036 | resolve: 1.5.0
3037 | stack-trace: 0.0.9
3038 | static-eval: 1.1.1
3039 | style-resolve: 1.1.0
3040 | through2: 2.0.3
3041 | transform-ast: 2.4.0
3042 | xtend: 4.0.1
3043 | dev: false
3044 | resolution:
3045 | integrity: sha512-afIikrPdtNtZoB2RrftRj5x7gWiQ15DcQ08ovAxYwJ+GpnOm532DTKL05/1XJNQTOKQ/wZ7jyPOYxsPlaK4WOQ==
3046 | /shell-quote/1.6.1:
3047 | dependencies:
3048 | array-filter: 0.0.1
3049 | array-map: 0.0.0
3050 | array-reduce: 0.0.0
3051 | jsonify: 0.0.0
3052 | dev: false
3053 | resolution:
3054 | integrity: sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=
3055 | /signal-exit/3.0.2:
3056 | dev: false
3057 | resolution:
3058 | integrity: sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
3059 | /signed-varint/2.0.1:
3060 | dependencies:
3061 | varint: 5.0.0
3062 | dev: false
3063 | resolution:
3064 | integrity: sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=
3065 | /simple-html-index/1.5.0:
3066 | dependencies:
3067 | from2-string: 1.1.0
3068 | dev: false
3069 | resolution:
3070 | integrity: sha1-LJPurrrAAdihNfwAIr1K3o9YmW8=
3071 | /simple-sha1/2.1.0:
3072 | dependencies:
3073 | rusha: 0.8.13
3074 | dev: false
3075 | resolution:
3076 | integrity: sha1-lCe7lv8SY8wQqEFM7dUaGLkZ6LM=
3077 | /siphash24/1.1.0:
3078 | dependencies:
3079 | nanoassert: 1.1.0
3080 | dev: false
3081 | resolution:
3082 | integrity: sha512-nDCEEZKb6m7OxxG/5wwaLy2R+KpyLcOnGjTJlFXG+14FUmpDD1FCFV/MjsYATjShsqPkSkl1BVevI0TCehdsTw==
3083 | /sodium-javascript/0.5.4:
3084 | dependencies:
3085 | blake2b: 2.1.2
3086 | nanoassert: 1.1.0
3087 | siphash24: 1.1.0
3088 | xsalsa20: 1.0.2
3089 | dev: false
3090 | resolution:
3091 | integrity: sha512-YEQtgtDpDlKYGinla+F1HfZ1e3CtYCnsvJ5n2llbFFXmMDeIac4auOIkxuvt7dN9G0/ELBDAEgbzHKbEoP6GWw==
3092 | /sodium-native/2.1.4:
3093 | dependencies:
3094 | ini: 1.3.5
3095 | nan: 2.9.2
3096 | node-gyp-build: 3.2.2
3097 | dev: false
3098 | optional: true
3099 | resolution:
3100 | integrity: sha512-EiCWFVWp1useIOg+S4YZOsNv16dN+2J6RI2PKDiubhyrcP/YjK5O9XswkuEZUpgL0UMZb3S+u/J1eu9iXq412g==
3101 | /sodium-universal/2.0.0:
3102 | dependencies:
3103 | sodium-javascript: 0.5.4
3104 | dev: false
3105 | optionalDependencies:
3106 | sodium-native: 2.1.4
3107 | resolution:
3108 | integrity: sha512-csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==
3109 | /sorted-indexof/1.0.0:
3110 | dev: false
3111 | resolution:
3112 | integrity: sha1-F8dC/3zxh+L1mhXfm4HxemLOCJk=
3113 | /source-map/0.5.7:
3114 | dev: false
3115 | engines:
3116 | node: '>=0.10.0'
3117 | resolution:
3118 | integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
3119 | /source-map/0.6.1:
3120 | dev: false
3121 | engines:
3122 | node: '>=0.10.0'
3123 | optional: true
3124 | resolution:
3125 | integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
3126 | /sparse-bitfield/3.0.3:
3127 | dependencies:
3128 | memory-pager: 1.1.0
3129 | dev: false
3130 | resolution:
3131 | integrity: sha1-/0rm5oZWBWuks+eSqzM004JzyhE=
3132 | /split2/0.2.1:
3133 | dependencies:
3134 | through2: 0.6.5
3135 | dev: false
3136 | resolution:
3137 | integrity: sha1-At2smtwD7Au3jBKC7Aecpuha6QA=
3138 | /stack-trace/0.0.9:
3139 | dev: false
3140 | resolution:
3141 | integrity: sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=
3142 | /stacked/1.1.1:
3143 | dev: false
3144 | resolution:
3145 | integrity: sha1-LH+jjMfjejQRp3zY55LeRI+faXU=
3146 | /static-eval/1.1.1:
3147 | dependencies:
3148 | escodegen: 1.9.1
3149 | dev: false
3150 | resolution:
3151 | integrity: sha1-yoEwIQNUzxPZpyK8fpI3eEV7sZI=
3152 | /static-eval/2.0.0:
3153 | dependencies:
3154 | escodegen: 1.9.1
3155 | dev: false
3156 | resolution:
3157 | integrity: sha512-6flshd3F1Gwm+Ksxq463LtFd1liC77N/PX1FVVc3OzL3hAmo2fwHFbuArkcfi7s9rTNsLEhcRmXGFZhlgy40uw==
3158 | /static-module/2.2.0:
3159 | dependencies:
3160 | concat-stream: 1.6.1
3161 | convert-source-map: 1.5.1
3162 | duplexer2: 0.1.4
3163 | escodegen: 1.9.1
3164 | falafel: 2.1.0
3165 | has: 1.0.1
3166 | magic-string: 0.22.4
3167 | merge-source-map: 1.0.4
3168 | object-inspect: 1.4.1
3169 | quote-stream: 1.0.2
3170 | readable-stream: 2.3.4
3171 | shallow-copy: 0.0.1
3172 | static-eval: 2.0.0
3173 | through2: 2.0.3
3174 | dev: false
3175 | resolution:
3176 | integrity: sha512-LSwwmrb1QBl3WJa3R9J4AkqrNtp+uvA0n0m+SJMkUyCnTPX/l69gT4Xq/LFZY12VS4rB9Qf9agN/8farqpR/Rw==
3177 | /statuses/1.3.1:
3178 | dev: false
3179 | engines:
3180 | node: '>= 0.6'
3181 | resolution:
3182 | integrity: sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=
3183 | /statuses/1.4.0:
3184 | dev: false
3185 | engines:
3186 | node: '>= 0.6'
3187 | resolution:
3188 | integrity: sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
3189 | /stdout-stream/1.4.0:
3190 | dependencies:
3191 | readable-stream: 2.3.4
3192 | dev: false
3193 | resolution:
3194 | integrity: sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=
3195 | /stream-browserify/2.0.1:
3196 | dependencies:
3197 | inherits: 2.0.3
3198 | readable-stream: 2.3.4
3199 | dev: false
3200 | resolution:
3201 | integrity: sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=
3202 | /stream-collector/1.0.1:
3203 | dependencies:
3204 | once: 1.4.0
3205 | dev: false
3206 | resolution:
3207 | integrity: sha1-TU5V8XE1YSGyxfZVn5RHBaso2xU=
3208 | /stream-combiner2/1.1.1:
3209 | dependencies:
3210 | duplexer2: 0.1.4
3211 | readable-stream: 2.3.4
3212 | dev: false
3213 | resolution:
3214 | integrity: sha1-+02KFCDqNidk4hrUeAOXvry0HL4=
3215 | /stream-each/1.2.2:
3216 | dependencies:
3217 | end-of-stream: 1.4.1
3218 | stream-shift: 1.0.0
3219 | dev: false
3220 | resolution:
3221 | integrity: sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==
3222 | /stream-http/2.8.0:
3223 | dependencies:
3224 | builtin-status-codes: 3.0.0
3225 | inherits: 2.0.3
3226 | readable-stream: 2.3.4
3227 | to-arraybuffer: 1.0.1
3228 | xtend: 4.0.1
3229 | dev: false
3230 | resolution:
3231 | integrity: sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==
3232 | /stream-shift/1.0.0:
3233 | dev: false
3234 | resolution:
3235 | integrity: sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
3236 | /stream-splicer/2.0.0:
3237 | dependencies:
3238 | inherits: 2.0.3
3239 | readable-stream: 2.3.4
3240 | dev: false
3241 | resolution:
3242 | integrity: sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=
3243 | /strict-uri-encode/1.1.0:
3244 | dev: false
3245 | engines:
3246 | node: '>=0.10.0'
3247 | resolution:
3248 | integrity: sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
3249 | /string_decoder/0.10.31:
3250 | dev: false
3251 | resolution:
3252 | integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
3253 | /string_decoder/1.0.3:
3254 | dependencies:
3255 | safe-buffer: 5.1.1
3256 | dev: false
3257 | resolution:
3258 | integrity: sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==
3259 | /strip-ansi/0.3.0:
3260 | dependencies:
3261 | ansi-regex: 0.2.1
3262 | dev: false
3263 | engines:
3264 | node: '>=0.10.0'
3265 | resolution:
3266 | integrity: sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=
3267 | /strip-ansi/3.0.1:
3268 | dependencies:
3269 | ansi-regex: 2.1.1
3270 | dev: false
3271 | engines:
3272 | node: '>=0.10.0'
3273 | resolution:
3274 | integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
3275 | /strip-eof/1.0.0:
3276 | dev: false
3277 | engines:
3278 | node: '>=0.10.0'
3279 | resolution:
3280 | integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
3281 | /style-resolve/1.1.0:
3282 | dependencies:
3283 | resolve: 1.5.0
3284 | xtend: 4.0.1
3285 | dev: false
3286 | resolution:
3287 | integrity: sha512-TCt/cEeLTrnprw4uGaUyjHiQOLXPBdbr16dNEsPEI6DjEcvk408pTtYQ88M4Wv930zOTe/Q0fcvquSOTEeb5OQ==
3288 | /subarg/1.0.0:
3289 | dependencies:
3290 | minimist: 1.2.0
3291 | dev: false
3292 | resolution:
3293 | integrity: sha1-9izxdYHplrSPyWVpn1TAauJouNI=
3294 | /supports-color/0.2.0:
3295 | dev: false
3296 | engines:
3297 | node: '>=0.10.0'
3298 | resolution:
3299 | integrity: sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=
3300 | /supports-color/1.3.1:
3301 | dev: false
3302 | engines:
3303 | node: '>=0.8.0'
3304 | resolution:
3305 | integrity: sha1-FXWN8J2P87SswwdTn6vicJXhBC0=
3306 | /supports-color/2.0.0:
3307 | dev: false
3308 | engines:
3309 | node: '>=0.8.0'
3310 | resolution:
3311 | integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
3312 | /supports-color/3.2.3:
3313 | dependencies:
3314 | has-flag: 1.0.0
3315 | dev: false
3316 | engines:
3317 | node: '>=0.8.0'
3318 | resolution:
3319 | integrity: sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
3320 | /syntax-error/1.4.0:
3321 | dependencies:
3322 | acorn-node: 1.3.0
3323 | dev: false
3324 | resolution:
3325 | integrity: sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==
3326 | /term-color/1.0.1:
3327 | dependencies:
3328 | ansi-styles: 2.0.1
3329 | supports-color: 1.3.1
3330 | dev: false
3331 | resolution:
3332 | integrity: sha1-OOGSVTpHPjXkFgT/UZmEa/gRejo=
3333 | /through/2.3.8:
3334 | dev: false
3335 | resolution:
3336 | integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
3337 | /through2/0.6.5:
3338 | dependencies:
3339 | readable-stream: 1.0.34
3340 | xtend: 4.0.1
3341 | dev: false
3342 | resolution:
3343 | integrity: sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=
3344 | /through2/2.0.3:
3345 | dependencies:
3346 | readable-stream: 2.3.4
3347 | xtend: 4.0.1
3348 | dev: false
3349 | resolution:
3350 | integrity: sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=
3351 | /thunky/0.1.0:
3352 | dev: false
3353 | resolution:
3354 | integrity: sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=
3355 | /thunky/1.0.2:
3356 | dev: false
3357 | resolution:
3358 | integrity: sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=
3359 | /timers-browserify/1.4.2:
3360 | dependencies:
3361 | process: 0.11.10
3362 | dev: false
3363 | engines:
3364 | node: '>=0.6.0'
3365 | resolution:
3366 | integrity: sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=
3367 | /to-arraybuffer/1.0.1:
3368 | dev: false
3369 | resolution:
3370 | integrity: sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
3371 | /to-boolean-x/1.0.3:
3372 | dev: false
3373 | resolution:
3374 | integrity: sha512-kQiMyJUgFprL8J+0CfgJuaSFKJMs3EvFe27/6aj/hVzVZT0HY4aA1QjPldLNxzBmjhLcapp7CctYHuD8QqtS3g==
3375 | /to-buffer/1.1.0:
3376 | dev: false
3377 | resolution:
3378 | integrity: sha1-N1vAPtrlw1qPoLP+laHzmF2x3Po=
3379 | /to-integer-x/3.0.0:
3380 | dependencies:
3381 | is-finite-x: 3.0.4
3382 | is-nan-x: 1.0.3
3383 | math-sign-x: 3.0.0
3384 | to-number-x: 2.0.0
3385 | dev: false
3386 | resolution:
3387 | integrity: sha512-794L2Lpwjtynm7RxahJi2YdbRY75gTxUW27TMuN26UgwPkmJb/+HPhkFEFbz+E4vNoiP0dxq5tq5fkXoXLaK/w==
3388 | /to-number-x/2.0.0:
3389 | dependencies:
3390 | cached-constructors-x: 1.0.2
3391 | nan-x: 1.0.2
3392 | parse-int-x: 2.0.0
3393 | to-primitive-x: 1.1.0
3394 | trim-x: 3.0.0
3395 | dev: false
3396 | resolution:
3397 | integrity: sha512-lGOnCoccUoSzjZ/9Uen8TC4+VFaQcFGhTroWTv2tYWxXgyJV1zqAZ8hEIMkez/Eo790fBMOjidTnQ/OJSCvAoQ==
3398 | /to-object-x/1.5.0:
3399 | dependencies:
3400 | cached-constructors-x: 1.0.2
3401 | require-object-coercible-x: 1.4.3
3402 | dev: false
3403 | resolution:
3404 | integrity: sha512-AKn5GQcdWky+s20vjWkt+Wa6y3dxQH3yQyMBhOfBOPldUwqwhgvlqcIg5H092ntNc+TX8/Cxzs1kMHH19pyCnA==
3405 | /to-primitive-x/1.1.0:
3406 | dependencies:
3407 | has-symbol-support-x: 1.4.2
3408 | is-date-object: 1.0.1
3409 | is-function-x: 3.3.0
3410 | is-nil-x: 1.4.2
3411 | is-primitive: 2.0.0
3412 | is-symbol: 1.0.1
3413 | require-object-coercible-x: 1.4.3
3414 | validate.io-undefined: 1.0.3
3415 | dev: false
3416 | resolution:
3417 | integrity: sha512-gyMY0gi3wjK3e4MUBKqv9Zl8QGcWguIkaUr2VJmoBEsOpDcpDZSEyljR773eVG4maS48uX7muLkoQoh/BA82OQ==
3418 | /to-property-key-x/2.0.2:
3419 | dependencies:
3420 | has-symbol-support-x: 1.4.2
3421 | to-primitive-x: 1.1.0
3422 | to-string-x: 1.4.5
3423 | dev: false
3424 | resolution:
3425 | integrity: sha512-YISLpZFYIazNm0P8hLsKEEUEZ3m8U3+eDysJZqTu3+B9tQp+2TrMpaEGT8Agh4fZ5LSoums60/glNEzk5ozqrg==
3426 | /to-string-symbols-supported-x/1.0.2:
3427 | dependencies:
3428 | cached-constructors-x: 1.0.2
3429 | has-symbol-support-x: 1.4.2
3430 | is-symbol: 1.0.1
3431 | dev: false
3432 | resolution:
3433 | integrity: sha512-3MRqhIhSNVDsVAk4M6WNcuBZrAQe54W13xrXX6RzxXS+pA4nj6DQ96RegQS5z9BSNyYbFsBsPvMVDIpP+a/5RA==
3434 | /to-string-tag-x/1.4.3:
3435 | dependencies:
3436 | lodash.isnull: 3.0.0
3437 | validate.io-undefined: 1.0.3
3438 | dev: false
3439 | resolution:
3440 | integrity: sha512-5+0EZ6dOVt/XArXmkooxPzWxmOR081HM/uXitUow7h11WYg5pPo15uYqDWuqO7ZY+O3Atn/dG26wcJCK+mFevg==
3441 | /to-string-x/1.4.5:
3442 | dependencies:
3443 | cached-constructors-x: 1.0.2
3444 | is-symbol: 1.0.1
3445 | dev: false
3446 | resolution:
3447 | integrity: sha512-5xzlZDyDa9BUWNjNzZzHgKQ95PnV7qjvEhbqpFaj1ixaHgfJXOFaa3xdMJ+WLYd4hhaMJaxt8Pt5uKaWXfruXA==
3448 | /transform-ast/2.4.0:
3449 | dependencies:
3450 | acorn-node: 1.3.0
3451 | convert-source-map: 1.5.1
3452 | is-buffer: 1.1.6
3453 | magic-string: 0.21.3
3454 | merge-source-map: 1.0.4
3455 | dev: false
3456 | resolution:
3457 | integrity: sha512-vo/ALXqfvGTcyc8JJepHKAt+sYwVgLCOX2t85aB3En/YS+DgOB6rfMSSDygBDNQW7qpOg/IQm6AizXTlLWQQpA==
3458 | /trim-left-x/3.0.0:
3459 | dependencies:
3460 | cached-constructors-x: 1.0.2
3461 | require-coercible-to-string-x: 1.0.2
3462 | white-space-x: 3.0.1
3463 | dev: false
3464 | resolution:
3465 | integrity: sha512-+m6cqkppI+CxQBTwWEZliOHpOBnCArGyMnS1WCLb6IRgukhTkiQu/TNEN5Lj2eM9jk8ewJsc7WxFZfmwNpRXWQ==
3466 | /trim-right-x/3.0.0:
3467 | dependencies:
3468 | cached-constructors-x: 1.0.2
3469 | require-coercible-to-string-x: 1.0.2
3470 | white-space-x: 3.0.1
3471 | dev: false
3472 | resolution:
3473 | integrity: sha512-iIqEsWEbWVodqdixJHi4FoayJkUxhoL4AvSNGp4FF4FfQKRPGizt8++/RnyC9od75y7P/S6EfONoVqP+NddiKA==
3474 | /trim-x/3.0.0:
3475 | dependencies:
3476 | trim-left-x: 3.0.0
3477 | trim-right-x: 3.0.0
3478 | dev: false
3479 | resolution:
3480 | integrity: sha512-w8s38RAUScQ6t3XqMkS75iz5ZkIYLQpVnv2lp3IuTS36JdlVzC54oe6okOf4Wz3UH4rr3XAb2xR3kR5Xei82fw==
3481 | /tty-browserify/0.0.1:
3482 | dev: false
3483 | resolution:
3484 | integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
3485 | /type-check/0.3.2:
3486 | dependencies:
3487 | prelude-ls: 1.1.2
3488 | dev: false
3489 | engines:
3490 | node: '>= 0.8.0'
3491 | resolution:
3492 | integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
3493 | /type-is/1.6.16:
3494 | dependencies:
3495 | media-typer: 0.3.0
3496 | mime-types: 2.1.18
3497 | dev: false
3498 | engines:
3499 | node: '>= 0.6'
3500 | resolution:
3501 | integrity: sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==
3502 | /typedarray/0.0.6:
3503 | dev: false
3504 | resolution:
3505 | integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
3506 | /uint64be/2.0.1:
3507 | dev: false
3508 | resolution:
3509 | integrity: sha1-oxDZTk5eCwKpXWeOMzI/gCvchCg=
3510 | /ultron/1.0.2:
3511 | dev: false
3512 | resolution:
3513 | integrity: sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
3514 | /ultron/1.1.1:
3515 | dev: false
3516 | resolution:
3517 | integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
3518 | /umd/3.0.1:
3519 | dev: false
3520 | resolution:
3521 | integrity: sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=
3522 | /uniq/1.0.1:
3523 | dev: false
3524 | resolution:
3525 | integrity: sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
3526 | /unixify/1.0.0:
3527 | dependencies:
3528 | normalize-path: 2.1.1
3529 | dev: false
3530 | engines:
3531 | node: '>=0.10.0'
3532 | resolution:
3533 | integrity: sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=
3534 | /unordered-array-remove/1.0.2:
3535 | dev: false
3536 | resolution:
3537 | integrity: sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=
3538 | /unordered-set/1.1.0:
3539 | dev: false
3540 | resolution:
3541 | integrity: sha1-K6fvMW7dC5WQzFR8dPdqLxZP7Mo=
3542 | /unordered-set/2.0.0:
3543 | dev: false
3544 | resolution:
3545 | integrity: sha1-mFon6XW6oguCY66np5HpMAlBqew=
3546 | /unpipe/1.0.0:
3547 | dev: false
3548 | engines:
3549 | node: '>= 0.8'
3550 | resolution:
3551 | integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
3552 | /url-trim/1.0.0:
3553 | dev: false
3554 | resolution:
3555 | integrity: sha1-QAV+LxZLiOXaynJp2kfm0d2Detw=
3556 | /url/0.11.0:
3557 | dependencies:
3558 | punycode: 1.3.2
3559 | querystring: 0.2.0
3560 | dev: false
3561 | resolution:
3562 | integrity: sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
3563 | /util-deprecate/1.0.2:
3564 | dev: false
3565 | resolution:
3566 | integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
3567 | /util/0.10.3:
3568 | dependencies:
3569 | inherits: 2.0.1
3570 | dev: false
3571 | resolution:
3572 | integrity: sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
3573 | /utils-merge/1.0.1:
3574 | dev: false
3575 | engines:
3576 | node: '>= 0.4.0'
3577 | resolution:
3578 | integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
3579 | /utp-native/1.6.2:
3580 | dependencies:
3581 | nan: 2.9.2
3582 | node-gyp-build: 3.2.2
3583 | readable-stream: 2.3.4
3584 | dev: false
3585 | optional: true
3586 | resolution:
3587 | integrity: sha512-z724NhTLcRQeBBM0W9npDpwCZvsj2veD3/NKFjKfdS5AlTr4EQRIzl85JupKNAc1PjlhjOWIzObvJrQq3FjLqg==
3588 | /validate.io-undefined/1.0.3:
3589 | dev: false
3590 | resolution:
3591 | integrity: sha1-fif8uzFbhB54JDQxiXZxkp4gt/Q=
3592 | /varint/3.0.1:
3593 | dev: false
3594 | resolution:
3595 | integrity: sha1-nT9T4DbAqxIACnS8LSTL8JOlgdk=
3596 | /varint/4.0.1:
3597 | dev: false
3598 | resolution:
3599 | integrity: sha1-SQgpuULSSEY7KzUJeZXDv3NxmOk=
3600 | /varint/5.0.0:
3601 | dev: false
3602 | resolution:
3603 | integrity: sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=
3604 | /vary/1.1.2:
3605 | dev: false
3606 | engines:
3607 | node: '>= 0.8'
3608 | resolution:
3609 | integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
3610 | /vlq/0.2.3:
3611 | dev: false
3612 | resolution:
3613 | integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==
3614 | /vm-browserify/0.0.4:
3615 | dependencies:
3616 | indexof: 0.0.1
3617 | dev: false
3618 | resolution:
3619 | integrity: sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=
3620 | /watchify-middleware/1.8.0:
3621 | dependencies:
3622 | concat-stream: 1.6.1
3623 | debounce: 1.1.0
3624 | events: 1.1.1
3625 | object-assign: 4.1.1
3626 | strip-ansi: 3.0.1
3627 | watchify: 3.10.0
3628 | dev: false
3629 | resolution:
3630 | integrity: sha512-INYU5/3zTZtWQvJKPelr47j0JeLTZK4GUDF0PoMltMPzMUEh/lW6g1t+Qe/tGHxm70AUc0NQrth3k3PTfOU9Nw==
3631 | /watchify/3.10.0:
3632 | dependencies:
3633 | anymatch: 1.3.2
3634 | browserify: 15.2.0
3635 | chokidar: 1.7.0
3636 | defined: 1.0.0
3637 | outpipe: 1.1.1
3638 | through2: 2.0.3
3639 | xtend: 4.0.1
3640 | dev: false
3641 | resolution:
3642 | integrity: sha512-SRSumWalHAxciSaEtua1HFqB8L+et5ieHjJRuNssqj4qXz4pJoR6cAeFWni3reXyOY3cVE6b55sJ8WYR43abBQ==
3643 | /wayfarer/6.6.3:
3644 | dependencies:
3645 | xtend: 4.0.1
3646 | dev: false
3647 | resolution:
3648 | integrity: sha512-DiScqFrKfETMeJ0OTmSv9Cncw/Yq3+pSs2+AlqLvgINpLlbnyts8dvFEdX3ggHdpt1nmQ7YE26mfpHXBowo0yQ==
3649 | /websocket-stream/5.1.1:
3650 | dependencies:
3651 | duplexify: 3.5.3
3652 | inherits: 2.0.3
3653 | readable-stream: 2.3.4
3654 | safe-buffer: 5.1.1
3655 | ws: 3.3.3
3656 | xtend: 4.0.1
3657 | dev: false
3658 | resolution:
3659 | integrity: sha512-ypQ50zVCnikSvJcRFWaZh7xeCufSje5+mbJRq3mdvdNx+06TD98C+bQsSKc7FkI6y1PVuNbzkenGywxlFiQeUQ==
3660 | /which/1.3.0:
3661 | dependencies:
3662 | isexe: 2.0.0
3663 | dev: false
3664 | resolution:
3665 | integrity: sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==
3666 | /white-space-x/3.0.1:
3667 | dev: false
3668 | resolution:
3669 | integrity: sha512-BwMFXQNPna/4RsNPOgldVYn+FkEv+lc3wUiFzuaW6Z2DH/oSk1UrRD6SBqDgWQO4JU+aBq3PVuPD9Vz0j7mh0w==
3670 | /wordwrap/1.0.0:
3671 | dev: false
3672 | resolution:
3673 | integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
3674 | /wrappy/1.0.2:
3675 | dev: false
3676 | resolution:
3677 | integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
3678 | /ws/1.1.5:
3679 | dependencies:
3680 | options: 0.0.6
3681 | ultron: 1.0.2
3682 | dev: false
3683 | resolution:
3684 | integrity: sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
3685 | /ws/2.3.1:
3686 | dependencies:
3687 | safe-buffer: 5.0.1
3688 | ultron: 1.1.1
3689 | dev: false
3690 | resolution:
3691 | integrity: sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=
3692 | /ws/3.3.3:
3693 | dependencies:
3694 | async-limiter: 1.0.0
3695 | safe-buffer: 5.1.1
3696 | ultron: 1.1.1
3697 | dev: false
3698 | resolution:
3699 | integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
3700 | /xsalsa20/1.0.2:
3701 | dev: false
3702 | resolution:
3703 | integrity: sha512-g1DFmZ5JJ9Qzvt4dMw6m9IydqoCSP381ucU5zm46Owbk3bwmqAr8eEJirOPc7PrXRn45drzOpAyDp8jsnoyXyw==
3704 | /xtend/4.0.1:
3705 | dev: false
3706 | engines:
3707 | node: '>=0.4'
3708 | resolution:
3709 | integrity: sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
3710 | /yallist/2.1.2:
3711 | dev: false
3712 | resolution:
3713 | integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
3714 | registry: 'https://registry.npmjs.org/'
3715 | shrinkwrapMinorVersion: 4
3716 | shrinkwrapVersion: 3
3717 | specifiers:
3718 | brfs: ^1.5.0
3719 | budo: ^11.1.7
3720 | choo: ^6.8.0
3721 | codemirror: ^5.35.0
3722 | express: ^4.16.2
3723 | express-ws: ^3.0.0
3724 | hypercore: ^6.12.2
3725 | hypercore-archiver: ^4.4.1
3726 | hyperdiscovery: ^7.0.0
3727 | hyperdrive: ^9.12.3
3728 | nanocomponent: ^6.5.1
3729 | pretty-hash: ^1.0.1
3730 | random-access-idb: ^1.0.4
3731 | random-access-memory: ^2.4.0
3732 | sheetify: ^7.2.0
3733 | to-buffer: ^1.1.0
3734 | websocket-stream: ^5.1.1
3735 |
--------------------------------------------------------------------------------