From 762cc50f9a2a36059d4138183054ae81c7d8fa61 Mon Sep 17 00:00:00 2001 From: Christian Bundy Date: Thu, 27 Jun 2019 14:54:32 -0700 Subject: [PATCH] Add cspell and use real English words --- .cspell.json | 9 + package.json | 5 +- src/app.js | 6 +- src/routes/author.js | 4 +- src/routes/hashtag.js | 4 +- src/routes/home.js | 4 +- src/routes/models/lib/markdown.js | 4 +- src/routes/models/post.js | 28 +- src/routes/profile.js | 4 +- src/routes/thread.js | 4 +- src/routes/views/author.js | 4 +- src/routes/views/components/template.js | 6 +- src/routes/views/list.js | 4 +- test/script.sh | 10 + yarn.lock | 370 +++++++++++++++++++++++- 15 files changed, 420 insertions(+), 46 deletions(-) create mode 100644 .cspell.json create mode 100755 test/script.sh diff --git a/.cspell.json b/.cspell.json new file mode 100644 index 0000000..23493c5 --- /dev/null +++ b/.cspell.json @@ -0,0 +1,9 @@ +{ + "version": "0.1", + "language": "en", + "words": [ + "backlinks", + "hyperaxe", + "whoami" + ] +} diff --git a/package.json b/package.json index 1f6a9c0..98fa1d3 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "pull-stream": "^3.6.12", "ssb-client": "^4.7.7", "ssb-markdown": "^5.0.1", - "ssb-msgs": "^5.2.0", + "ssb-messages": "^5.2.0", "ssb-ref": "^2.13.9" }, "bin": { @@ -27,11 +27,12 @@ "description": "friendly neighborhood scuttlebutt interface", "repository": "git@github.com:fraction/oasis.git", "devDependencies": { + "cspell": "^4.0.23", "dependency-check": "^3.3.0", "standard": "^12.0.1" }, "scripts": { "start": "node index.js", - "test": "standard && dependency-check ./package.json --unused --no-dev --ignore-module highlight.js" + "test": "test/script.sh" } } diff --git a/src/app.js b/src/app.js index 5df9f50..da3bc58 100644 --- a/src/app.js +++ b/src/app.js @@ -18,13 +18,13 @@ module.exports = (options) => { const assets = new Koa() assets.use(koaStatic(path.join(__dirname, 'assets'))) - const hljs = new Koa() - hljs.use(koaStatic(path.join(__dirname, '..', 'node_modules', 'highlight.js', 'styles'))) + const highlightJs = new Koa() + highlightJs.use(koaStatic(path.join(__dirname, '..', 'node_modules', 'highlight.js', 'styles'))) const app = module.exports = new Koa() app.use(mount('/static/assets', assets)) - app.use(mount('/static/hljs', hljs)) + app.use(mount('/static/highlight.js', highlightJs)) router .get('/', home) diff --git a/src/routes/author.js b/src/routes/author.js index 242169c..9637ef9 100644 --- a/src/routes/author.js +++ b/src/routes/author.js @@ -15,12 +15,12 @@ module.exports = async function (ctx) { const name = await about.name(feedId) const image = await about.image(feedId) - const msgs = await post.fromFeed(feedId) + const messages = await post.fromFeed(feedId) const avatarUrl = `http://localhost:8989/blobs/get/${image}` ctx.body = authorView({ - msgs, + messages, name, description, avatarUrl diff --git a/src/routes/hashtag.js b/src/routes/hashtag.js index f9db577..945061f 100644 --- a/src/routes/hashtag.js +++ b/src/routes/hashtag.js @@ -4,7 +4,7 @@ const listView = require('./views/list') module.exports = async function hashtag (ctx) { const hashtag = ctx.params.id - const msgs = await post.fromHashtag(hashtag) + const messages = await post.fromHashtag(hashtag) - ctx.body = listView({ msgs }) + ctx.body = listView({ messages }) } diff --git a/src/routes/home.js b/src/routes/home.js index af8bcc9..53289be 100644 --- a/src/routes/home.js +++ b/src/routes/home.js @@ -2,7 +2,7 @@ const listView = require('./views/list') const post = require('./models/post') module.exports = async function home (ctx) { - const msgs = await post.latest() + const messages = await post.latest() - ctx.body = listView({ msgs }) + ctx.body = listView({ messages }) } diff --git a/src/routes/models/lib/markdown.js b/src/routes/models/lib/markdown.js index 45ab760..d2ff40b 100644 --- a/src/routes/models/lib/markdown.js +++ b/src/routes/models/lib/markdown.js @@ -1,11 +1,11 @@ const md = require('ssb-markdown') -const ssbMsgs = require('ssb-msgs') +const ssbMessages = require('ssb-messages') const ssbRef = require('ssb-ref') const toUrl = (mentions = []) => { var mentionNames = {} - ssbMsgs.links(mentions, 'feed').forEach(function (link) { + ssbMessages.links(mentions, 'feed').forEach(function (link) { if (link.name && typeof link.name === 'string') { var name = (link.name.charAt(0) === '@') ? link.name : '@' + link.name mentionNames[name] = link.link diff --git a/src/routes/models/post.js b/src/routes/models/post.js index 6e87ecd..1c46218 100644 --- a/src/routes/models/post.js +++ b/src/routes/models/post.js @@ -19,7 +19,7 @@ const transform = (ssb, messages) => Promise.all(messages.map(async (msg) => { const whoami = await cooler.get(ssb.whoami) - const backlinkStream = await cooler.read(ssb.backlinks.read, { + const referenceStream = await cooler.read(ssb.backlinks.read, { query: [ filterQuery ], index: 'DTA', // use asserted timestamps private: true, @@ -28,7 +28,7 @@ const transform = (ssb, messages) => Promise.all(messages.map(async (msg) => { const rawVotes = await new Promise((resolve, reject) => { pull( - backlinkStream, + referenceStream, pull.filter(ref => typeof ref.value.content !== 'string' && ref.value.content.type === 'vote' && @@ -37,9 +37,9 @@ const transform = (ssb, messages) => Promise.all(messages.map(async (msg) => { ref.value.content.vote.value >= 0 && ref.value.content.vote.link === msg.key ), - pull.collect((err, msgs) => { + pull.collect((err, messages) => { if (err) return reject(err) - resolve(msgs) + resolve(messages) }) ) }) @@ -109,9 +109,9 @@ module.exports = { msg.value.content.type === 'post' ), pull.take(32), - pull.collect((err, msgs) => { + pull.collect((err, messages) => { if (err) return reject(err) - resolve(transform(ssb, msgs)) + resolve(transform(ssb, messages)) }) ) }) @@ -140,9 +140,9 @@ module.exports = { msg.value.content.type === 'post' ), pull.take(32), - pull.collect((err, msgs) => { + pull.collect((err, messages) => { if (err) return reject(err) - resolve(transform(ssb, msgs)) + resolve(transform(ssb, messages)) }) ) }) @@ -164,9 +164,9 @@ module.exports = { const messages = await new Promise((resolve, reject) => { pull( source, - pull.collect((err, msgs) => { + pull.collect((err, messages) => { if (err) return reject(err) - resolve(transform(ssb, msgs)) + resolve(transform(ssb, messages)) }) ) }) @@ -218,14 +218,14 @@ module.exports = { } } - const backlinkStream = await cooler.read(ssb.backlinks.read, { + const referenceStream = await cooler.read(ssb.backlinks.read, { query: [filterQuery], index: 'DTA' // use asserted timestamps }) const replies = await new Promise((resolve, reject) => pull( - backlinkStream, + referenceStream, pull.filter(msg => { const isPost = lodash.get(msg, 'value.content.type') === 'post' if (isPost === false) { @@ -243,9 +243,9 @@ module.exports = { return true } ), - pull.collect((err, msgs) => { + pull.collect((err, messages) => { if (err) return reject(err) - resolve(msgs) + resolve(messages) }) ) ) diff --git a/src/routes/profile.js b/src/routes/profile.js index ba1fd4b..50cc834 100644 --- a/src/routes/profile.js +++ b/src/routes/profile.js @@ -17,12 +17,12 @@ module.exports = async function (ctx) { const name = await about.name(feedId) const image = await about.image(feedId) - const msgs = await post.fromFeed(feedId) + const messages = await post.fromFeed(feedId) const avatarUrl = `http://localhost:8989/blobs/get/${image}` ctx.body = authorView({ - msgs, + messages, name, description, avatarUrl diff --git a/src/routes/thread.js b/src/routes/thread.js index 23c6ac5..1316988 100644 --- a/src/routes/thread.js +++ b/src/routes/thread.js @@ -3,7 +3,7 @@ const post = require('./models/post') module.exports = async function thread (ctx) { const msgId = ctx.params.id - const msgs = await post.fromThread(msgId) + const messages = await post.fromThread(msgId) - ctx.body = listView({ msgs }) + ctx.body = listView({ messages }) } diff --git a/src/routes/views/author.js b/src/routes/views/author.js index 95f7747..54c8e01 100644 --- a/src/routes/views/author.js +++ b/src/routes/views/author.js @@ -8,7 +8,7 @@ const { section } = require('hyperaxe') -module.exports = ({ avatarUrl, name, description, msgs }) => { +module.exports = ({ avatarUrl, name, description, messages }) => { const authorHeader = header({ class: 'profile' }, img({ class: 'avatar', src: avatarUrl }), @@ -23,7 +23,7 @@ module.exports = ({ avatarUrl, name, description, msgs }) => { return template( authorHeader, authorDescription, - msgs.map(msg => + messages.map(msg => post({ msg }) ) ) diff --git a/src/routes/views/components/template.js b/src/routes/views/components/template.js index ebef2cb..ed1c86d 100644 --- a/src/routes/views/components/template.js +++ b/src/routes/views/components/template.js @@ -11,14 +11,12 @@ const { var doctypeString = '' -const desertIslandEmoji = '\ud83c' + '\udfdd' + '\ufe0f' - module.exports = (...elements) => { const nodes = html( head( - title(`${desertIslandEmoji} Oasis`), + title(`🏝️ Oasis`), link({ rel: 'stylesheet', href: '/static/assets/style.css' }), - link({ rel: 'stylesheet', href: '/static/hljs/github.css' }) + link({ rel: 'stylesheet', href: '/static/highlight.js/github.css' }) ), body( nav( diff --git a/src/routes/views/list.js b/src/routes/views/list.js index bcb0dc4..b42f887 100644 --- a/src/routes/views/list.js +++ b/src/routes/views/list.js @@ -1,9 +1,9 @@ const template = require('./components/template') const post = require('./components/post') -module.exports = ({ msgs }) => { +module.exports = ({ messages }) => { return template( - msgs.map(msg => + messages.map(msg => post({ msg }) ) ) diff --git a/test/script.sh b/test/script.sh new file mode 100755 index 0000000..692c7ad --- /dev/null +++ b/test/script.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env sh + + +# http://redsymbol.net/articles/unofficial-bash-strict-mode/ +set -euo pipefail +IFS=$'\n\t' + +standard +dependency-check ./package.json --unused --no-dev --ignore-module highlight.js +cspell "src/**/*.js" diff --git a/yarn.lock b/yarn.lock index 15f5c33..36eac2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -231,6 +231,13 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + browser-split@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/browser-split/-/browser-split-0.0.0.tgz#41419caef769755929dd518967d3eec0a6262771" @@ -299,7 +306,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.1.0: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -401,11 +408,18 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -commander@^2.19.0: +commander@^2.19.0, commander@^2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +comment-json@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-1.1.3.tgz#6986c3330fee0c4c9e00c2398cd61afa5d8f239e" + integrity sha1-aYbDMw/uDEyeAMI5jNYa+l2PI54= + dependencies: + json-parser "^1.0.0" + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -416,6 +430,18 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +configstore@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" + integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" @@ -457,6 +483,206 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +cspell-dict-companies@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/cspell-dict-companies/-/cspell-dict-companies-1.0.10.tgz#694fd485d3fef077971f4b517d8f7e97b9d42563" + integrity sha512-mLJnxxtkQt4nX2uWwz1BfAmq03Q0YyM5Gjh4uf4EFhT/8v7KJ/gGWBvjPZuUlOnyqNFG1FdKFNyH23WP3SI6uA== + dependencies: + configstore "^4.0.0" + +cspell-dict-cpp@^1.1.19: + version "1.1.19" + resolved "https://registry.yarnpkg.com/cspell-dict-cpp/-/cspell-dict-cpp-1.1.19.tgz#913e5a5e100ba7f1a6371fde0610b2d30e543527" + integrity sha512-KaKDc4H7FwjZnGL2kjn7fa6SXbymETKVyDWwq/XmoI2q16ZOrs0pYz/aOVjBwBbFy3QNmDIKODswYe0FSQhDNA== + dependencies: + configstore "^4.0.0" + +cspell-dict-django@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/cspell-dict-django/-/cspell-dict-django-1.0.11.tgz#d368ecd7d95a362855584a58df847fec1412e162" + integrity sha512-cCVDgYTxHjNGsXOkOXFlIFFYyD/+QKa4P5gjAO+ftVe5YkYLgR/ToIqBjLkeMpd5XLcUp9I2+4qAW4bXUGXvhA== + dependencies: + configstore "^4.0.0" + +cspell-dict-elixir@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/cspell-dict-elixir/-/cspell-dict-elixir-1.0.9.tgz#2ae775684f1a5004eb841d68f3697257f0e1e89b" + integrity sha512-gez2DdKiiR0z51kGR8YI61qW5ARKDgoOxlwz9w84biCWDeN0m3th/xqFDf7D6IaA9PosNhSk1uD/OgoIWLH3mA== + dependencies: + configstore "^4.0.0" + +cspell-dict-en-gb@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/cspell-dict-en-gb/-/cspell-dict-en-gb-1.1.10.tgz#4baa5cc39661f017b226ba27bc7cefa3f54bcd89" + integrity sha512-Gx6vcaHBnNzYs9W9LlSjomYq1XCw9+aGVsU+Ayl3oMG5zuJGi3I7G5xPyWcTTkWqb6/z6F5LXnW/vFtkTGE5fg== + dependencies: + configstore "^4.0.0" + +cspell-dict-en_us@^1.2.16: + version "1.2.16" + resolved "https://registry.yarnpkg.com/cspell-dict-en_us/-/cspell-dict-en_us-1.2.16.tgz#30f7f1c2f3ae6fb2248e1514dbfbac4f3dc84481" + integrity sha512-qrc5Mh2hWT53jlcDo3hFFvAgC+hpekQnNN5seHohz6yWr2XeAsATZP/2ftnrKadZ1iAkeJU2LABymhzK+ZAIHg== + dependencies: + configstore "^4.0.0" + +cspell-dict-fullstack@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/cspell-dict-fullstack/-/cspell-dict-fullstack-1.0.13.tgz#9cdcc829cba4eebc99b725e8a71c2bcdc84398a2" + integrity sha512-2173pXRCNzC6v5ACFlbFAfp5HNcoX5ANYcAHtNa/cBIjP4G0ASdLJY1SRSPBojNh3qxAulwIASck4fX3DgGe1A== + dependencies: + configstore "^4.0.0" + +cspell-dict-golang@^1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/cspell-dict-golang/-/cspell-dict-golang-1.1.11.tgz#fd84f77cc2dff0a0f404c2d0d489e895c2d5e327" + integrity sha512-dInmq72nAtTBV4B1kX+6STIpKzMNfFTrzC1YBE3x3AKMdyCvKpuoIQHHpm/PFsfIeW2hiu+ZZrTYv1xc+diGlw== + dependencies: + configstore "^4.0.0" + +cspell-dict-html-symbol-entities@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/cspell-dict-html-symbol-entities/-/cspell-dict-html-symbol-entities-1.0.10.tgz#08e79b8c38cc23702f26f2c2c615cea2b9145122" + integrity sha512-8467CM6fUGnw9biN1OSJ2vXNe/I3UQrOv+rWhOJ79YiYz2rlNMZzIKmizIIvH03OqVHnzKtnHdP+udmyqHOMvQ== + dependencies: + configstore "^4.0.0" + +cspell-dict-java@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/cspell-dict-java/-/cspell-dict-java-1.0.9.tgz#61a527c6bb37a00880bbc23885594575e288ff4f" + integrity sha512-z3u1SZ9IpwhmQ9wps1qj0BTtkNNz6piMcDxzMOQDkTM+hkK/BSLEJ/+DMsnKr1Kiob1mde8LxHr/MvB9qcWXtQ== + dependencies: + configstore "^4.0.0" + +cspell-dict-latex@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/cspell-dict-latex/-/cspell-dict-latex-1.0.10.tgz#30da58a5605534dfeab3a6ea5e09f4d696540202" + integrity sha512-H2Kdu/7N5rcPpjr/5qBPdWluu2+0SdQaFrqZPWyn8XYXpYAs9YLqvsl+0MgyV3VTUJPAbz1B34UvByLfZy7FWg== + dependencies: + configstore "^4.0.0" + +cspell-dict-lorem-ipsum@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/cspell-dict-lorem-ipsum/-/cspell-dict-lorem-ipsum-1.0.9.tgz#544706b25a21ebffd115f9f064ab6984c9666cce" + integrity sha512-cGZ8vkt6dfZGZm/pMtnvYZ4coPHA/FyYL0cuA8fy30wNTdW00CnWWilQvdh0JH53eSTDDWNO9x8Uz+OFIgOeLA== + dependencies: + configstore "^4.0.0" + +cspell-dict-php@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/cspell-dict-php/-/cspell-dict-php-1.0.10.tgz#edde59bbe4d0f481886e1139a354ecaeda0c1221" + integrity sha512-9efe0p3eL8gPtjanYdMqXSj6G7SdIZaz2kiDH3vWP4qc9j4oa67rq/F+WxsLcZuye7Scm9Tw1nZWetvs/u0M8w== + dependencies: + configstore "^4.0.0" + +cspell-dict-powershell@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cspell-dict-powershell/-/cspell-dict-powershell-1.0.1.tgz#59a65426674dbd5805c84142ab616fc7deca70dc" + integrity sha512-uNmnu2wn+Yw6JDnt4jdu08HvEmZjbxbndtkStfDqIdhg/iBFRdm4VUZIY7vL5Z5xPwAgC9QwT6h86mqT8ZnCag== + dependencies: + configstore "^4.0.0" + +cspell-dict-python@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/cspell-dict-python/-/cspell-dict-python-1.0.12.tgz#c3a1b76f4eaf11ed4b3d2e8ef1c748e8a6cda461" + integrity sha512-h82By/vlnZvaag0mn+Qoj4yURZ0s/5/hpNwmIWiQWSHK61b9GMcZSmFLoJ7Nc8wi8NkxYJdL3ot5mmjBzHVPiA== + dependencies: + configstore "^4.0.0" + +cspell-dict-rust@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/cspell-dict-rust/-/cspell-dict-rust-1.0.9.tgz#cc804152537db0b812b8d2ca22bd987758f14103" + integrity sha512-8KiEawwcixyVw8EuTTQIcxHc3GTxQ3PFW+T9D8r+Y4crw5JcJeyOQlRHZcyG2+2qAhamS+tlAh/puaKwANuWWg== + dependencies: + configstore "^4.0.0" + +cspell-dict-scala@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/cspell-dict-scala/-/cspell-dict-scala-1.0.8.tgz#b7ed4df50e7c97a674d196a5953675db3ef88bfc" + integrity sha512-/t2SyLnl/zaOBilTWlBNsD2X/Sd6+WyUi5REKQhopQ1MoJc9AFUavI17ZIFHq/vCyu1ziO7xslFWYRTwfQ8yBA== + dependencies: + configstore "^4.0.0" + +cspell-glob@^0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-0.1.10.tgz#86c5af07dd46c2c2827a7378ffeee1c212349fba" + integrity sha512-zE8dnd5c3HA5J6mFgdKJY7cC9CUOQBCPUvRn88VRJbz1UOqezCYs2oaWZwzaZq3t2aQaR3LPsHx6022t8M5ufg== + dependencies: + micromatch "^4.0.2" + +cspell-io@^4.0.16: + version "4.0.16" + resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-4.0.16.tgz#0cadeace4320ac78a1d219d9a5974c6d24260e81" + integrity sha512-DDCsWbMMn2lPBASYddAt1tXpR+F5W9LnsGHz+z2uJe34ByilBEslnChyl35B5Kz46oecZM7re08qYjLEF47omw== + dependencies: + iconv-lite "^0.4.24" + iterable-to-stream "^1.0.1" + +cspell-lib@^4.0.20: + version "4.0.20" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-4.0.20.tgz#9f3c82b4c061c8715450865bf1ad8e362c52a307" + integrity sha512-Y6fxoe+dKL/VUjyBOaVvwIMR98Kq04C451H/qDEQHt5sDP5+TEo9AgvyWee+QhA1KV4fOGfOrLwOaSf0HPRDZQ== + dependencies: + comment-json "^1.1.3" + configstore "^4.0.0" + cspell-dict-companies "^1.0.10" + cspell-dict-cpp "^1.1.19" + cspell-dict-django "^1.0.11" + cspell-dict-elixir "^1.0.9" + cspell-dict-en-gb "^1.1.10" + cspell-dict-en_us "^1.2.16" + cspell-dict-fullstack "^1.0.13" + cspell-dict-golang "^1.1.11" + cspell-dict-html-symbol-entities "^1.0.10" + cspell-dict-java "^1.0.9" + cspell-dict-latex "^1.0.10" + cspell-dict-lorem-ipsum "^1.0.9" + cspell-dict-php "^1.0.10" + cspell-dict-powershell "^1.0.1" + cspell-dict-python "^1.0.12" + cspell-dict-rust "^1.0.9" + cspell-dict-scala "^1.0.8" + cspell-io "^4.0.16" + cspell-trie-lib "^4.0.14" + cspell-util-bundle "^4.0.4" + fs-extra "^7.0.1" + gensequence "^2.1.2" + vscode-uri "^2.0.1" + +cspell-trie-lib@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-4.0.14.tgz#614e538eee59847057af5cb540b776c6a6724d0e" + integrity sha512-wQWZg0ppmYobH1I8fEX7nBW4L/gAhHpG0hx9ywwLDBfrUSkNccyey6ttm4fovkTbHxw6y7G8FYFCu8oqxQWkTw== + dependencies: + gensequence "^2.1.2" + js-xxhash "^1.0.1" + +cspell-util-bundle@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/cspell-util-bundle/-/cspell-util-bundle-4.0.4.tgz#fb563d2003c3362c8dba20c9509b535e6a666c26" + integrity sha512-rJ5lz9j5TglN1WfaFTiA5eoEQwWixGMIL9dTNTbZe2XU+Owz3KhCmHUJO5xnYPNF88AnT6x/oo2qnve3/WUJ0g== + +cspell@^4.0.23: + version "4.0.23" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-4.0.23.tgz#0b33349c984cc85203f6702d52065738324b435b" + integrity sha512-RQEPn+e0hTO1zaX9ci9MHOhnZYLquKQYzbnhM3BYe/0QBwnCWP5NyUl/eMAjxxI46LePsyAxC1g4PiLdxtQwag== + dependencies: + chalk "^2.4.2" + commander "^2.20.0" + comment-json "^1.1.3" + configstore "^4.0.0" + cspell-glob "^0.1.10" + cspell-lib "^4.0.20" + fs-extra "^7.0.1" + gensequence "^2.1.2" + get-stdin "^7.0.0" + glob "^7.1.4" + minimatch "^3.0.4" + debug-log@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" @@ -622,6 +848,13 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + ed2curve@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.1.4.tgz#94a44248bb87da35db0eff7af0aa576168117f59" @@ -841,6 +1074,11 @@ espree@^4.0.0: acorn-jsx "^5.0.0" eslint-visitor-keys "^1.0.0" +esprima@^2.7.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= + esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -978,6 +1216,13 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + find-root@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -1022,6 +1267,15 @@ fresh@~0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1037,11 +1291,21 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +gensequence@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-2.1.2.tgz#ab213a705bf88699a1ab1f6b9a1b4ed487423488" + integrity sha512-TH0HcxnR7gpvpdMbiQ7+mL10Vf+9zekenuaSmUl7dHWzzeiiaCelk3Xv3V2ebrsVMLfi1KJ8Q0CpGthaxiM9zQ== + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== +get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -1060,7 +1324,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: +glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -1090,7 +1354,7 @@ globby@^8.0.1: pify "^3.0.0" slash "^1.0.0" -graceful-fs@^4.1.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.2.0" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== @@ -1218,7 +1482,7 @@ hyperscript@^2.0.2: class-list "~0.1.0" html-element "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.17: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -1426,6 +1690,16 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -1513,6 +1787,11 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +iterable-to-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/iterable-to-stream/-/iterable-to-stream-1.0.1.tgz#37e86baacf6b1a0e9233dad4eb526d0423d08bf3" + integrity sha512-O62gD5ADMUGtJoOoM9U6LQ7i4byPXUNoHJ6mqsmkQJcom331ZJGDApWgDESWyBMEHEJRjtHozgIiTzYo9RU4UA== + "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -1523,6 +1802,11 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= +js-xxhash@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/js-xxhash/-/js-xxhash-1.0.1.tgz#8ef97ff13576abac8539e91512a4033f0e9d69c5" + integrity sha512-ociwKjHkCPjqNMmZtD7uUoL+AVhcSZX3WPmirRwXg+PzKD0v5x9K2yLpvkSglbThvbGN/TVA+3XFjPVolQwDpQ== + js-yaml@^3.11.0: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -1541,6 +1825,13 @@ json-parse-better-errors@^1.0.1: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-parser@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/json-parser/-/json-parser-1.1.5.tgz#e62ec5261d1a6a5fc20e812a320740c6d9005677" + integrity sha1-5i7FJh0aal/CDoEqMgdAxtkAVnc= + dependencies: + esprima "^2.7.0" + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -1551,6 +1842,13 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + jsx-ast-utils@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.0.tgz#e2bade6d09c8ef9d5f6b9ff2ace67b2cdbc7e370" @@ -1772,6 +2070,13 @@ loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -1844,6 +2149,14 @@ micromatch@^3.1.10: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + mime-db@1.40.0: version "1.40.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" @@ -2261,6 +2574,11 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +picomatch@^2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -2897,9 +3215,9 @@ ssb-markdown@^5.0.1: markdown-it-hashtag "^0.4.0" node-emoji "^1.10.0" -ssb-msgs@^5.2.0: +ssb-messages@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/ssb-msgs/-/ssb-msgs-5.2.0.tgz#c681da5cd70c574c922dca4f03c521538135c243" + resolved "https://registry.yarnpkg.com/ssb-messages/-/ssb-messages-5.2.0.tgz#c681da5cd70c574c922dca4f03c521538135c243" integrity sha1-xoHaXNcMV0ySLcpPA8UhU4E1wkM= dependencies: ssb-ref "^2.0.0" @@ -3067,6 +3385,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -3144,6 +3469,18 @@ uniq@^1.0.1: resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + unpipe@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -3192,6 +3529,11 @@ vary@^1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +vscode-uri@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.0.2.tgz#cbc7982525e1cd102d2da6515e6f103650cb507c" + integrity sha512-VebpIxm9tG0fG2sBOhnsSPzDYuNUPP1UQW4K3mwthlca4e4f3d6HKq3HkITC2OPFomOaB7pHTSjcpdFWjfYTzg== + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -3209,6 +3551,15 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^2.0.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" @@ -3224,6 +3575,11 @@ ws@^1.1.0: options ">=0.0.5" ultron "1.0.x" +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + xtend@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"