├── .gitignore ├── packages ├── muninn-lib │ ├── test │ │ ├── data │ │ │ ├── test.md │ │ │ ├── some thing.md │ │ │ ├── somefolder │ │ │ │ └── test.md │ │ │ ├── journal.md │ │ │ └── front.md │ │ ├── data2 │ │ │ ├── done.md │ │ │ └── todo.md │ │ └── index.js │ ├── src │ │ ├── consts.js │ │ ├── markdown │ │ │ ├── remark-tags.js │ │ │ └── index.js │ │ ├── db.js │ │ └── cache.js │ ├── index.js │ ├── package.json │ └── package-lock.json └── muninn-cli │ ├── package.json │ ├── src │ ├── search.js │ ├── backlinks.js │ └── tasks.js │ ├── cli.js │ └── package-lock.json ├── lerna.json ├── package.json ├── LICENSE.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /packages/muninn-lib/test/data/test.md: -------------------------------------------------------------------------------- 1 | - link to journal 2 | -------------------------------------------------------------------------------- /packages/muninn-lib/test/data2/done.md: -------------------------------------------------------------------------------- 1 | # Done 2 | 3 | Todo tasks I've done 4 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | "packages/*" 4 | ], 5 | "version": "independent" 6 | } 7 | -------------------------------------------------------------------------------- /packages/muninn-lib/test/data/some thing.md: -------------------------------------------------------------------------------- 1 | - quite empty 2 | - writing about Journal 3 | - and some thing 4 | -------------------------------------------------------------------------------- /packages/muninn-lib/test/data/somefolder/test.md: -------------------------------------------------------------------------------- 1 | # Test 2 | 3 | Test file in a folder 4 | maybe links to journal or to Journal 5 | -------------------------------------------------------------------------------- /packages/muninn-lib/test/data/journal.md: -------------------------------------------------------------------------------- 1 | # Journal 2 | 3 | - 2020-05-25 4 | - entry! 5 | - links to [front](./front.md) 6 | - also to Journal 7 | -------------------------------------------------------------------------------- /packages/muninn-lib/src/consts.js: -------------------------------------------------------------------------------- 1 | const envPaths = require("env-paths"); 2 | const CACHE_PATH = envPaths("muninn").cache; 3 | 4 | module.exports = { CACHE_PATH }; 5 | -------------------------------------------------------------------------------- /packages/muninn-lib/test/data2/todo.md: -------------------------------------------------------------------------------- 1 | # Todo 2 | 3 | ## Tasks: 4 | 5 | - [ ] first thing @due(2020-06-15) @waiting(John) 6 | - [ ] second thing @tagged(a, b, c) @for(Karol, Tomek) @due(2020-06-16) 7 | 8 | -------------------------------------------------------------------------------- /packages/muninn-lib/index.js: -------------------------------------------------------------------------------- 1 | const cache = require("./src/cache"); 2 | const markdown = require("./src/markdown"); 3 | const createDB = require("./src/db"); 4 | 5 | module.exports = { cache, createDB, markdown }; 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "root", 3 | "private": true, 4 | "scripts": { 5 | "bootstrap": "lerna bootstrap", 6 | "publish": "lerna publish" 7 | }, 8 | "devDependencies": { 9 | "lerna": "^3.22.1" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/muninn-lib/test/data/front.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Frontmatter 3 | --- 4 | 5 | I have different title than filename 6 | 7 | Linking to [journal](./journal.md) and [test](./somefolder/test.md) 8 | 9 | - test: 10 | - journaling should link 11 | - `esojournal` shouldn't 12 | - entry tagged with @due(2020-06-06) 13 | - another one @waiting 14 | -------------------------------------------------------------------------------- /packages/muninn-cli/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "muninn-cli", 3 | "version": "2.3.0", 4 | "description": "", 5 | "main": "index.js", 6 | "bin": { 7 | "muninn": "./cli.js" 8 | }, 9 | "keywords": [], 10 | "author": "Szymon Kaliski (http://szymonkaliski.com)", 11 | "license": "MIT", 12 | "dependencies": { 13 | "chalk": "^4.1.0", 14 | "date-fns": "^2.16.1", 15 | "muninn-lib": "^1.2.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/muninn-lib/test/index.js: -------------------------------------------------------------------------------- 1 | const muninn = require("../"); 2 | const path = require("path"); 3 | const rimraf = require("rimraf"); 4 | const { CACHE_PATH } = require("../src/consts"); 5 | 6 | // const REPO = path.join(__dirname, "/data/"); 7 | const REPO = path.join(__dirname, "/data2/"); 8 | // const REPO = "/Users/szymon/Documents/Dropbox/Wiki/"; 9 | 10 | rimraf.sync(`${CACHE_PATH}/*.db`); 11 | 12 | console.time("run"); 13 | 14 | const db = muninn.createDB(REPO); 15 | 16 | muninn.cache(db, REPO, () => { 17 | console.timeEnd("run"); 18 | }); 19 | -------------------------------------------------------------------------------- /packages/muninn-lib/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "muninn-lib", 3 | "version": "1.2.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": {}, 7 | "keywords": [], 8 | "author": "Szymon Kaliski (http://szymonkaliski.com)", 9 | "license": "MIT", 10 | "dependencies": { 11 | "better-sqlite3": "^7.1.1", 12 | "env-paths": "^2.2.0", 13 | "frontmatter": "0.0.3", 14 | "glob": "^7.1.6", 15 | "md5": "^2.3.0", 16 | "mkdirp": "^1.0.4", 17 | "remark-parse": "^8.0.0", 18 | "remark-stringify": "^8.0.0", 19 | "unified": "^8.0.0", 20 | "unist-util-map": "^2.0.1", 21 | "unist-util-visit-parents": "^3.1.1", 22 | "yargs": "^16.1.0" 23 | }, 24 | "devDependencies": { 25 | "rimraf": "^3.0.2" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Szymon Kaliski 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /packages/muninn-lib/src/markdown/remark-tags.js: -------------------------------------------------------------------------------- 1 | const TAG_REGEX = /^@(\w+)(\((.+?)\))?/; 2 | 3 | function tokenizeTags(eat, value, silent) { 4 | const match = TAG_REGEX.exec(value); 5 | 6 | if (match) { 7 | if (silent) { 8 | return true; 9 | } 10 | 11 | return eat(match[0])({ 12 | type: "tag", 13 | value: match[0], 14 | tagName: match[1], 15 | tagValue: match[3], 16 | children: [{ type: "text", value: match[0] }], 17 | }); 18 | } 19 | } 20 | 21 | function locateTag(value, fromIndex) { 22 | return value.indexOf("@", fromIndex); 23 | } 24 | 25 | tokenizeTags.notInLink = true; 26 | tokenizeTags.locator = locateTag; 27 | 28 | function remarkTags() { 29 | if (this.Compiler) { 30 | const Compiler = this.Compiler; 31 | const visitors = Compiler.prototype.visitors; 32 | 33 | visitors.tag = (node) => node.value; 34 | } 35 | 36 | if (this.Parser) { 37 | const Parser = this.Parser; 38 | 39 | const tokenizers = Parser.prototype.inlineTokenizers; 40 | const methods = Parser.prototype.inlineMethods; 41 | 42 | tokenizers.tag = tokenizeTags; 43 | 44 | methods.splice(methods.indexOf("text"), 0, "tag"); 45 | } 46 | } 47 | 48 | module.exports = remarkTags; 49 | -------------------------------------------------------------------------------- /packages/muninn-lib/src/db.js: -------------------------------------------------------------------------------- 1 | const Database = require("better-sqlite3"); 2 | const md5 = require("md5"); 3 | const mkdirp = require("mkdirp"); 4 | const path = require("path"); 5 | 6 | const { CACHE_PATH } = require("./consts"); 7 | 8 | const createDB = (root) => { 9 | mkdirp(CACHE_PATH); 10 | 11 | const dbName = md5(root); 12 | const db = new Database(path.join(CACHE_PATH, `${dbName}.db`)); 13 | 14 | db.prepare( 15 | ` 16 | CREATE TABLE IF NOT EXISTS notes ( 17 | id TEXT PRIMARY KEY, 18 | mtime REAL NOT NULL, 19 | path TEXT NOT NULL, 20 | text TEXT NOT NULL, 21 | mdast TEXT NOT NULL, 22 | title TEXT NOT NULL 23 | ) 24 | ` 25 | ).run(); 26 | 27 | db.prepare( 28 | ` 29 | CREATE TABLE IF NOT EXISTS links ( 30 | fromid TEXT NOT NULL, 31 | toid TEXT NOT NULL, 32 | mdast TEXT NOT NULL, 33 | backlink NUMBER NOT NULL, 34 | 35 | FOREIGN KEY (fromid) REFERENCES notes (id) ON DELETE CASCADE 36 | FOREIGN KEY (toid) REFERENCES notes (id) ON DELETE CASCADE 37 | ) 38 | ` 39 | ).run(); 40 | 41 | db.prepare( 42 | ` 43 | CREATE TABLE IF NOT EXISTS tags ( 44 | id TEXT NOT NULL, 45 | name TEXT NOT NULL, 46 | value TEXT, 47 | mdast TEXT NOT NULL, 48 | 49 | FOREIGN KEY (id) REFERENCES notes (id) ON DELETE CASCADE 50 | ) 51 | ` 52 | ).run(); 53 | 54 | return db; 55 | }; 56 | 57 | module.exports = createDB; 58 | -------------------------------------------------------------------------------- /packages/muninn-cli/src/search.js: -------------------------------------------------------------------------------- 1 | const chalk = require("chalk"); 2 | const { chain } = require("lodash"); 3 | const { stringifyMdast } = require("muninn-lib/src/markdown"); 4 | 5 | const search = (db, args) => { 6 | const results = db 7 | .prepare( 8 | ` 9 | SELECT * FROM notes 10 | WHERE text LIKE :text 11 | ${args.limit !== undefined && args.limit > 0 ? `LIMIT ${args.limit}` : ""} 12 | ` 13 | ) 14 | .all({ text: `%${args.text}%` }); 15 | 16 | return chain(results) 17 | .uniqBy("path") 18 | .map((d) => { 19 | const mdast = JSON.parse(d.mdast); 20 | const text = stringifyMdast(mdast); 21 | 22 | return { ...d, mdast, text }; 23 | }) 24 | .sortBy([ 25 | "path", 26 | "mdast.position.start.line", 27 | "mdast.position.start.column", 28 | ]) 29 | .value(); 30 | }; 31 | 32 | const render = (db, args) => { 33 | const results = search(db, args); 34 | 35 | if (args.vim) { 36 | results.forEach(({ path, mdast, text }) => { 37 | const { line, column } = mdast.position.start; 38 | const firstLine = text.split("\n")[0]; 39 | 40 | console.log([path, line, column, firstLine].join(":")); 41 | }); 42 | } else { 43 | chain(results) 44 | .groupBy("path") 45 | .entries() 46 | .forEach(([path, d]) => { 47 | console.log(`${chalk.blue(path)}:`); 48 | d.forEach(({ mdast, text }) => console.log(text)); 49 | console.log(); 50 | }) 51 | .value(); 52 | } 53 | }; 54 | 55 | module.exports = { search, render }; 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # muninn 2 | 3 | `muninn` is a set of utilities helping me build and navigate my personal flat-file markdown wiki. 4 | 5 | This is personal software project, shared mainly as a reference point. I wont be fixing bugs that don't happen to me, or add functionalities I don't want/need. 6 | 7 | I'm using it in combination with [`muninn-vim`](https://github.com/szymonkaliski/muninn-vim). 8 | 9 | ## Assumptions 10 | 11 | - wiki is markdown based 12 | - links between notes are made using standard markdown linking: `linking to [this note](./this-note.md)` (spaces in filename should be escaped with `\`) 13 | - todos are create with [`gfm`](https://github.github.com/gfm/): `- [ ] a todo`, `- [x] done todo` 14 | - additional support for `@tags`: `- [ ] a todo with scheduled date @due(2020-02-17) @important` 15 | - `@due()` tag value is formatted `YYYY-MM-DD` 16 | - `@due()` tags matching todays date are highlighted in green in the UI 17 | - `muninn tasks` depends on `@due()` tags 18 | 19 | ## Installation 20 | 21 | `npm install -g muninn-cli` 22 | 23 | ## Usage 24 | 25 | - `muninn --root WIKI_DIR tasks` - lists tasks (using `- [ ] some task @due(YYYY-MM-DD)` format) `n` days into the future: 26 | - `--days 2` displays tasks for today and tomorrow 27 | - `--vim` displays vim-formatted list 28 | 29 | - `muninn --root WIKI_DIR backlinks` - [roam](https://roamresearch.com/)-like backlinks (both markdown-links and text search) 30 | - `--file Notes/Zettels/memex.md` displays all backlinks linking to this file, assuming first line starting with `# title` is the title 31 | - `--file Notes/Zettels/memex.md --vim` same as above but vim-formatted 32 | 33 | -------------------------------------------------------------------------------- /packages/muninn-cli/src/backlinks.js: -------------------------------------------------------------------------------- 1 | const chalk = require("chalk"); 2 | const { chain } = require("lodash"); 3 | const { stringifyMdast } = require("muninn-lib/src/markdown"); 4 | 5 | const search = (db, args) => { 6 | const target = args.target.replace(args.root, ""); 7 | 8 | const targetInDB = db 9 | .prepare( 10 | ` 11 | SELECT id FROM notes WHERE path = :path OR title LIKE :title 12 | ` 13 | ) 14 | .get({ path: target, title: target }); 15 | 16 | if (!targetInDB) { 17 | return []; 18 | } 19 | 20 | const targetId = targetInDB.id; 21 | 22 | const query = db 23 | .prepare( 24 | ` 25 | SELECT links.fromid, links.mdast, notes.path 26 | FROM notes JOIN links ON links.fromid = notes.id 27 | WHERE links.toid = ? 28 | ` 29 | ) 30 | .all(targetId); 31 | 32 | const backlinks = chain(query) 33 | .uniqBy((d) => { 34 | return d.fromid + "-" + d.mdast; 35 | }) 36 | .map((d) => { 37 | const mdast = JSON.parse(d.mdast); 38 | const text = stringifyMdast(mdast); 39 | 40 | return { ...d, mdast, text }; 41 | }) 42 | .sortBy([ 43 | "path", 44 | "mdast.position.start.line", 45 | "mdast.position.start.column", 46 | ]) 47 | .value(); 48 | 49 | return backlinks; 50 | }; 51 | 52 | const render = (db, args) => { 53 | const backlinks = search(db, args); 54 | 55 | if (args.vim) { 56 | backlinks.forEach(({ path, mdast, text }) => { 57 | const { line, column } = mdast.position.start; 58 | const firstLine = text.split("\n")[0]; 59 | 60 | console.log([path, line, column, firstLine].join(":")); 61 | }); 62 | } else { 63 | chain(backlinks) 64 | .groupBy("path") 65 | .entries() 66 | .forEach(([path, linked]) => { 67 | console.log(`${chalk.blue(path)}:`); 68 | linked.forEach(({ mdast, text }) => console.log(text)); 69 | console.log(); 70 | }) 71 | .value(); 72 | } 73 | }; 74 | 75 | module.exports = { search, render }; 76 | -------------------------------------------------------------------------------- /packages/muninn-cli/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const yargs = require("yargs"); 4 | const { createDB, cache } = require("muninn-lib"); 5 | const { isArray, last } = require("lodash"); 6 | 7 | const backlinks = require("./src/backlinks"); 8 | const search = require("./src/search"); 9 | const tasks = require("./src/tasks"); 10 | 11 | const args = yargs 12 | .demandOption("root") 13 | .command("cache", "update cache") 14 | .command("backlinks", "find all notes related to given file", (yargs) => { 15 | // TODO: seperate options for matching --file and --text 16 | yargs.option("target", { 17 | demandOption: true, 18 | describe: "file or phrase to search for backlinks", 19 | }); 20 | 21 | yargs.option("vim", { 22 | default: false, 23 | type: "boolean", 24 | describe: "format output for vim", 25 | }); 26 | }) 27 | .command("search", "find all notes matching given text search", (yargs) => { 28 | yargs.option("text", { 29 | demandOption: true, 30 | describe: "text to search for", 31 | }); 32 | 33 | yargs.option("vim", { 34 | default: false, 35 | type: "boolean", 36 | describe: "format output for vim", 37 | }); 38 | }) 39 | .command("tasks", "find tasks for specified timespan", (yargs) => { 40 | yargs.option("show-done", { 41 | default: false, 42 | type: "boolean", 43 | describe: "show done tasks", 44 | }); 45 | 46 | yargs.option("overdue", { 47 | default: true, 48 | type: "boolean", 49 | describe: "query overdue tasks", 50 | }); 51 | 52 | yargs.option("days", { 53 | default: undefined, 54 | type: "number", 55 | describe: "how many days in the future to look for", 56 | }); 57 | 58 | yargs.option("vim", { 59 | default: false, 60 | type: "boolean", 61 | describe: "format output for vim", 62 | }); 63 | }) 64 | .demandCommand(1, "you need to provide a command") 65 | .help().argv; 66 | 67 | const [command] = args._; 68 | 69 | let root = isArray(args.root) ? last(args.root) : args.root; 70 | root = root.endsWith("/") ? root : root + "/"; 71 | 72 | const db = createDB(root); 73 | 74 | if (command === "cache") { 75 | console.time("cache"); 76 | 77 | cache(db, root, () => { 78 | console.timeEnd("cache"); 79 | process.exit(0); 80 | }); 81 | } else if (command === "backlinks") { 82 | backlinks.render(db, { ...args, root }); 83 | } else if (command === "search") { 84 | search.render(db, args); 85 | } else if (command === "tasks") { 86 | tasks.render(db, args); 87 | } 88 | -------------------------------------------------------------------------------- /packages/muninn-lib/src/markdown/index.js: -------------------------------------------------------------------------------- 1 | const markdown = require("remark-parse"); 2 | const path = require("path"); 3 | const stringify = require("remark-stringify"); 4 | const unified = require("unified"); 5 | const visit = require("unist-util-visit-parents"); 6 | const { chain, get, last, findLastIndex, identity, omit } = require("lodash"); 7 | 8 | const remarkTags = require("./remark-tags"); 9 | 10 | const isAbsoluteUrl = (url) => { 11 | if (/^[a-zA-Z]:\\/.test(url)) { 12 | return false; 13 | } 14 | 15 | return /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(url); 16 | }; 17 | 18 | const parse = (text) => { 19 | return unified().use(markdown).use(remarkTags).parse(text); 20 | }; 21 | 22 | const findMeaningfulParent = (parents) => { 23 | const parentTypes = ["heading", "blockquote", "paragraph", "listItem"]; 24 | 25 | return parents[ 26 | chain(parentTypes) 27 | .map((type) => findLastIndex(parents, (node) => node.type === type)) 28 | .filter((idx) => idx >= 0) 29 | .min() 30 | .value() 31 | ]; 32 | }; 33 | 34 | const unescapePath = (path) => path.replace(/\\\ /g, " "); 35 | 36 | // const cleanMdast = (mdast) => map(mdast, (node) => omit(node, ["position"])); 37 | 38 | const findLinks = ({ mdast, path: filePath, root }) => { 39 | const links = []; 40 | 41 | const containingFolder = path.join(root, path.dirname(filePath)); 42 | 43 | visit(mdast, (node, parents) => { 44 | if (node.type === "link") { 45 | if (!isAbsoluteUrl(node.url)) { 46 | const linkedFile = path.join(containingFolder, unescapePath(node.url)); 47 | 48 | links.push({ 49 | path: linkedFile.replace(root, ""), 50 | mdast: findMeaningfulParent(parents), 51 | }); 52 | } 53 | } 54 | }); 55 | 56 | return links; 57 | }; 58 | 59 | const findTags = ({ mdast }) => { 60 | const tags = []; 61 | 62 | visit(mdast, (node, parents) => { 63 | if (node.type === "tag") { 64 | tags.push({ 65 | name: node.tagName, 66 | value: node.tagValue, 67 | mdast: findMeaningfulParent(parents), 68 | }); 69 | } 70 | }); 71 | 72 | return tags; 73 | }; 74 | 75 | const findText = ({ mdast, text }) => { 76 | const matches = []; 77 | 78 | const regex = new RegExp(text, "ig"); 79 | 80 | visit(mdast, (node, parents) => { 81 | const valueMatches = node.value && node.value.match(regex); 82 | 83 | if (node.type !== "code" && valueMatches) { 84 | matches.push({ 85 | mdast: findMeaningfulParent(parents), 86 | }); 87 | } 88 | }); 89 | 90 | return matches; 91 | }; 92 | 93 | const stringifyMdast = (mdast) => { 94 | return unified() 95 | .use(stringify, { listItemIndent: 1, fences: true }) 96 | .use(remarkTags) 97 | .stringify(mdast); 98 | }; 99 | 100 | module.exports = { parse, findLinks, findTags, findText, stringifyMdast }; 101 | -------------------------------------------------------------------------------- /packages/muninn-cli/src/tasks.js: -------------------------------------------------------------------------------- 1 | const chalk = require("chalk"); 2 | const { chain } = require("lodash"); 3 | const { format, parse, addDays } = require("date-fns"); 4 | const { stringifyMdast } = require("muninn-lib/src/markdown"); 5 | 6 | const DATE_FORMAT = "yyyy-MM-dd"; 7 | const TODAY_DATE = Date.now(); 8 | const TODAY = format(TODAY_DATE, DATE_FORMAT); 9 | 10 | const createSelect = (whereClause) => ` 11 | SELECT notes.path, tags.value, tags.mdast 12 | FROM tags JOIN notes ON tags.id = notes.id 13 | WHERE ${whereClause} 14 | ORDER BY tags.value, notes.path; 15 | `; 16 | 17 | const search = (db, args) => { 18 | const selectAll = db.prepare( 19 | createSelect(`tags.name = 'due' AND tags.value >= ?`) 20 | ); 21 | 22 | const selectBetween = db.prepare( 23 | createSelect(`tags.name = 'due' AND tags.value >= ? AND tags.value <= ?`) 24 | ); 25 | 26 | const selectOverdue = db.prepare( 27 | createSelect( 28 | `tags.name = 'due' AND tags.value < ? AND json_extract(tags.mdast, '$.checked') = 0` 29 | ) 30 | ); 31 | 32 | const result = 33 | args.days === undefined 34 | ? selectAll.all(TODAY) 35 | : selectBetween.all( 36 | TODAY, 37 | format(addDays(TODAY_DATE, args.days), DATE_FORMAT) 38 | ); 39 | 40 | const overdue = args.overdue 41 | ? selectOverdue.all(TODAY).map((d) => ({ ...d, isOverdue: true })) 42 | : []; 43 | 44 | const todos = chain(overdue) 45 | .concat(result) 46 | .map((d) => { 47 | const mdast = JSON.parse(d.mdast); 48 | const text = stringifyMdast(mdast); 49 | 50 | return { ...d, mdast, text }; 51 | }) 52 | .filter(({ mdast }) => args.showDone || !mdast.checked) 53 | .value(); 54 | 55 | return todos; 56 | }; 57 | 58 | const render = (db, args) => { 59 | const todos = search(db, args); 60 | 61 | if (args.vim) { 62 | todos.forEach(({ mdast, text, path }) => { 63 | const { line, column } = mdast.position.start; 64 | const firstLine = text.split("\n")[0]; 65 | 66 | console.log([path, line, column, firstLine].join(":")); 67 | }); 68 | } else { 69 | chain(todos) 70 | .groupBy((task) => task.value) 71 | .forEach((todos, date) => { 72 | let weekday; 73 | 74 | try { 75 | weekday = format(parse(date, DATE_FORMAT, Date.now()), "EEEE"); 76 | } catch (e) { 77 | console.log("Parsing error at: ", todos, date); 78 | console.log(e); 79 | process.exit(1); 80 | } 81 | 82 | const dateStr = date === TODAY ? "Today" : date; 83 | const isOverdue = todos.some((d) => d.isOverdue); 84 | const color = isOverdue ? "red" : "green"; 85 | 86 | console.log(`${chalk[color](dateStr)} ${chalk.grey(weekday)}`); 87 | 88 | chain(todos) 89 | .groupBy((task) => task.path) 90 | .forEach((todos, path) => { 91 | console.log(`- ${chalk.blue(path)}:`); 92 | 93 | todos.forEach(({ text, mdast }) => { 94 | const isDone = mdast.checked; 95 | const indendentText = text 96 | .split("\n") 97 | .map((line) => ` ${line}`) 98 | .join("\n"); 99 | 100 | if (isDone) { 101 | console.log(chalk.gray(indendentText)); 102 | } else { 103 | console.log(indendentText); 104 | } 105 | }); 106 | }) 107 | .value(); 108 | 109 | console.log(); 110 | }) 111 | .value(); 112 | } 113 | }; 114 | 115 | module.exports = { search, render }; 116 | -------------------------------------------------------------------------------- /packages/muninn-lib/src/cache.js: -------------------------------------------------------------------------------- 1 | const frontmatter = require("frontmatter"); 2 | const fs = require("fs"); 3 | const glob = require("glob"); 4 | const md5 = require("md5"); 5 | const path = require("path"); 6 | const { get, chain, identity, flatten, difference } = require("lodash"); 7 | 8 | const { 9 | findLinks, 10 | findTags, 11 | findText, 12 | parse: parseMarkdown, 13 | } = require("./markdown"); 14 | 15 | const upsertNotes = ({ db, root }, files) => { 16 | const parseNote = ({ mtime, filePath, fullPath }) => { 17 | const content = fs.readFileSync(fullPath, "utf-8"); 18 | 19 | const id = md5(fullPath); // id is hash of fullPath, as theoretically the same note can exist in multiple places 20 | const front = frontmatter(content); 21 | const mdast = parseMarkdown(front.content); 22 | 23 | let title = get(front, ["data", "title"]); 24 | 25 | if (!title) { 26 | if (front.content.startsWith("# ")) { 27 | title = front.content.split("\n")[0].replace(/^# /, ""); 28 | } else { 29 | title = path.basename(filePath).replace(/.md$/, ""); 30 | } 31 | } 32 | 33 | return { id, mtime, path: filePath, text: content, title, mdast }; 34 | }; 35 | 36 | const searchNoteByPath = db.prepare(`SELECT * FROM notes WHERE path = ?`); 37 | 38 | const searchNoteByPathMtime = db.prepare( 39 | `SELECT * FROM notes WHERE path = ? AND mtime = ?` 40 | ); 41 | 42 | const insertNote = db.prepare(` 43 | INSERT OR REPLACE INTO notes ( id, mtime, path, text, mdast, title) 44 | VALUES (:id, :mtime, :path, :text, :mdast, :title) 45 | `); 46 | 47 | const batchInsertNotes = db.transaction((data) => { 48 | data.forEach((d) => insertNote.run(d)); 49 | }); 50 | 51 | const newNotes = []; 52 | 53 | for (const filePath of files) { 54 | const fullPath = path.join(root, filePath); 55 | const mtime = fs.statSync(fullPath).mtimeMs; 56 | 57 | const match = searchNoteByPathMtime.get(filePath, mtime); 58 | 59 | if (!match) { 60 | newNotes.push(parseNote({ mtime, filePath, fullPath })); 61 | } 62 | } 63 | 64 | batchInsertNotes( 65 | newNotes.map((d) => ({ 66 | ...d, 67 | mdast: JSON.stringify(d.mdast), 68 | })) 69 | ); 70 | 71 | return newNotes; 72 | }; 73 | 74 | const upsertLinks = ({ db, root }, newNotes) => { 75 | const searchNoteByPath = db.prepare(`SELECT * FROM notes WHERE path = ?`); 76 | 77 | const deleteLink = db.prepare(`DELETE FROM links WHERE fromid = ?`); 78 | 79 | const batchDeleteLinks = db.transaction((data) => { 80 | data.forEach((d) => deleteLink.run(d.fromid)); 81 | }); 82 | 83 | const insertLink = db.prepare(` 84 | INSERT INTO links ( fromid, toid, mdast, backlink) 85 | VALUES (:fromid, :toid, :mdast, :backlink) 86 | `); 87 | 88 | const batchInsertLinks = db.transaction((data) => { 89 | data.forEach((d) => insertLink.run({ ...d, backlink: 0 })); 90 | }); 91 | 92 | const linksToInsert = chain(newNotes) 93 | .flatMap((d) => 94 | findLinks({ mdast: d.mdast, path: d.path, root }).map((l) => [d.id, l]) 95 | ) 96 | .map(([fromid, { path, mdast }]) => { 97 | const toid = get(searchNoteByPath.get(path), "id"); 98 | 99 | if (!toid) { 100 | console.log(`[link] issue getting id for ${path}`); 101 | return null; 102 | } 103 | 104 | return { 105 | fromid, 106 | toid, 107 | mdast: JSON.stringify(mdast), 108 | }; 109 | }) 110 | .filter(identity) 111 | .value(); 112 | 113 | batchDeleteLinks(linksToInsert); 114 | batchInsertLinks(linksToInsert); 115 | }; 116 | 117 | const upsertBacklinks = ({ db, root }, newNotes) => { 118 | const allNoteTitles = db.prepare(`SELECT id, title FROM notes`).all(); 119 | 120 | const searchNotesByText = db.prepare( 121 | `SELECT * FROM notes WHERE text LIKE ? COLLATE NOCASE` 122 | ); 123 | 124 | const insertBacklink = db.prepare(` 125 | INSERT OR REPLACE INTO links ( fromid, toid, mdast, backlink) 126 | VALUES (:fromid, :toid, :mdast, :backlink) 127 | `); 128 | 129 | const batchInsertBacklinks = db.transaction((data) => { 130 | data.forEach((d) => insertBacklink.run({ ...d, backlink: 1 })); 131 | }); 132 | 133 | const backlinksToNewNotes = chain(newNotes) 134 | .flatMap(({ title, id: toid }) => { 135 | return flatten( 136 | searchNotesByText.all(`%${title}%`).map(({ mdast, id: fromid }) => { 137 | const backlinks = findText({ mdast: JSON.parse(mdast), text: title }); 138 | 139 | return backlinks.map(({ mdast }) => ({ 140 | toid, 141 | fromid, 142 | mdast: JSON.stringify(mdast), 143 | })); 144 | }) 145 | ); 146 | }) 147 | .value(); 148 | 149 | const backlinksFromNewNotes = chain(allNoteTitles) 150 | .flatMap(({ title, id: toid }) => { 151 | return flatten( 152 | newNotes.map(({ mdast, id: fromid }) => { 153 | const backlinks = findText({ mdast, text: title }); 154 | 155 | return backlinks.map(({ mdast }) => ({ 156 | toid, 157 | fromid, 158 | mdast: JSON.stringify(mdast), 159 | })); 160 | }) 161 | ); 162 | }) 163 | .value(); 164 | 165 | const backlinksToInsert = chain( 166 | backlinksToNewNotes.concat(backlinksFromNewNotes) 167 | ) 168 | .filter((d) => d.toid !== d.fromid && !!d.mdast) 169 | .uniqBy((d) => d.toid + "-" + d.fromid + "-" + d.mdast) 170 | .value(); 171 | 172 | batchInsertBacklinks(backlinksToInsert); 173 | }; 174 | 175 | const upsertTags = ({ db }, newNotes) => { 176 | const searchNoteByPath = db.prepare(`SELECT * FROM notes WHERE path = ?`); 177 | 178 | const deleteTag = db.prepare(`DELETE FROM tags WHERE id = ?`); 179 | 180 | const batchDeleteTags = db.transaction((data) => { 181 | data.forEach((d) => deleteTag.run(d.id)); 182 | }); 183 | 184 | const insertTag = db.prepare(` 185 | INSERT INTO tags ( id, name, value, mdast) 186 | VALUES (:id, :name, :value, :mdast) 187 | `); 188 | 189 | const batchInsertTags = db.transaction((data) => { 190 | data.forEach((d) => insertTag.run(d)); 191 | }); 192 | 193 | const tagsToInsert = chain(newNotes) 194 | .flatMap((d) => 195 | findTags({ mdast: d.mdast }).map(({ name, value, mdast }) => ({ 196 | id: d.id, 197 | name, 198 | value, 199 | mdast: JSON.stringify(mdast), 200 | })) 201 | ) 202 | .value(); 203 | 204 | batchDeleteTags(tagsToInsert); 205 | batchInsertTags(tagsToInsert); 206 | }; 207 | 208 | const clearStaleData = ({ db, files }) => { 209 | const dbFiles = db.prepare(`SELECT path, id FROM notes`).all(); 210 | 211 | const removedFiles = difference( 212 | dbFiles.map((d) => d.path), 213 | files 214 | ); 215 | 216 | const removedIds = removedFiles.map( 217 | (file) => dbFiles.find((d) => d.path === file).id 218 | ); 219 | 220 | const deleteFile = db.prepare(`DELETE FROM notes WHERE id = ?`); 221 | 222 | const batchDeleteFiles = db.transaction((data) => { 223 | data.forEach((d) => deleteFile.run(d)); 224 | }); 225 | 226 | batchDeleteFiles(removedIds); 227 | }; 228 | 229 | const cache = (db, root, callback) => { 230 | glob("**/*.md", { cwd: root }, (error, files) => { 231 | const params = { db, root }; 232 | 233 | if (error) { 234 | throw error; 235 | } 236 | 237 | const newNotes = upsertNotes(params, files); 238 | 239 | if (newNotes.length === 0) { 240 | callback(); 241 | return; 242 | } 243 | 244 | upsertLinks(params, newNotes); 245 | upsertBacklinks(params, newNotes); 246 | upsertTags(params, newNotes); 247 | 248 | clearStaleData({ db, files }); 249 | 250 | callback(); 251 | }); 252 | }; 253 | 254 | module.exports = cache; 255 | -------------------------------------------------------------------------------- /packages/muninn-lib/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "muninn-lib", 3 | "version": "1.2.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/mdast": { 8 | "version": "3.0.3", 9 | "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", 10 | "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", 11 | "requires": { 12 | "@types/unist": "*" 13 | } 14 | }, 15 | "@types/unist": { 16 | "version": "2.0.3", 17 | "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", 18 | "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" 19 | }, 20 | "ansi-regex": { 21 | "version": "2.1.1", 22 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 23 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 24 | }, 25 | "ansi-styles": { 26 | "version": "4.3.0", 27 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 28 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 29 | "requires": { 30 | "color-convert": "^2.0.1" 31 | } 32 | }, 33 | "aproba": { 34 | "version": "1.2.0", 35 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 36 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 37 | }, 38 | "are-we-there-yet": { 39 | "version": "1.1.5", 40 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 41 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 42 | "requires": { 43 | "delegates": "^1.0.0", 44 | "readable-stream": "^2.0.6" 45 | } 46 | }, 47 | "argparse": { 48 | "version": "1.0.10", 49 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 50 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 51 | "requires": { 52 | "sprintf-js": "~1.0.2" 53 | } 54 | }, 55 | "bail": { 56 | "version": "1.0.5", 57 | "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", 58 | "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" 59 | }, 60 | "balanced-match": { 61 | "version": "1.0.0", 62 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 63 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 64 | }, 65 | "base64-js": { 66 | "version": "1.3.1", 67 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", 68 | "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" 69 | }, 70 | "better-sqlite3": { 71 | "version": "7.1.1", 72 | "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.1.1.tgz", 73 | "integrity": "sha512-AkvGGyhAVZhRBOul2WT+5CB2EuveM3ZkebEKe1wxMqDZUy1XB/1RBgM66t0ybHC4DIni8+pr7NaLqEX87NUTwg==", 74 | "requires": { 75 | "bindings": "^1.5.0", 76 | "prebuild-install": "^5.3.3", 77 | "tar": "4.4.10" 78 | } 79 | }, 80 | "bindings": { 81 | "version": "1.5.0", 82 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 83 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 84 | "requires": { 85 | "file-uri-to-path": "1.0.0" 86 | } 87 | }, 88 | "bl": { 89 | "version": "4.0.3", 90 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", 91 | "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", 92 | "requires": { 93 | "buffer": "^5.5.0", 94 | "inherits": "^2.0.4", 95 | "readable-stream": "^3.4.0" 96 | }, 97 | "dependencies": { 98 | "readable-stream": { 99 | "version": "3.6.0", 100 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 101 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 102 | "requires": { 103 | "inherits": "^2.0.3", 104 | "string_decoder": "^1.1.1", 105 | "util-deprecate": "^1.0.1" 106 | } 107 | } 108 | } 109 | }, 110 | "brace-expansion": { 111 | "version": "1.1.11", 112 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 113 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 114 | "requires": { 115 | "balanced-match": "^1.0.0", 116 | "concat-map": "0.0.1" 117 | } 118 | }, 119 | "buffer": { 120 | "version": "5.6.0", 121 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", 122 | "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", 123 | "requires": { 124 | "base64-js": "^1.0.2", 125 | "ieee754": "^1.1.4" 126 | } 127 | }, 128 | "ccount": { 129 | "version": "1.1.0", 130 | "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", 131 | "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" 132 | }, 133 | "character-entities": { 134 | "version": "1.2.4", 135 | "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", 136 | "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" 137 | }, 138 | "character-entities-html4": { 139 | "version": "1.1.4", 140 | "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", 141 | "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==" 142 | }, 143 | "character-entities-legacy": { 144 | "version": "1.1.4", 145 | "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", 146 | "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" 147 | }, 148 | "character-reference-invalid": { 149 | "version": "1.1.4", 150 | "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", 151 | "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" 152 | }, 153 | "charenc": { 154 | "version": "0.0.2", 155 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 156 | "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" 157 | }, 158 | "chownr": { 159 | "version": "1.1.4", 160 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 161 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 162 | }, 163 | "cliui": { 164 | "version": "7.0.3", 165 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.3.tgz", 166 | "integrity": "sha512-Gj3QHTkVMPKqwP3f7B4KPkBZRMR9r4rfi5bXFpg1a+Svvj8l7q5CnkBkVQzfxT5DFSsGk2+PascOgL0JYkL2kw==", 167 | "requires": { 168 | "string-width": "^4.2.0", 169 | "strip-ansi": "^6.0.0", 170 | "wrap-ansi": "^7.0.0" 171 | }, 172 | "dependencies": { 173 | "ansi-regex": { 174 | "version": "5.0.0", 175 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 176 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 177 | }, 178 | "is-fullwidth-code-point": { 179 | "version": "3.0.0", 180 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 181 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 182 | }, 183 | "string-width": { 184 | "version": "4.2.0", 185 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 186 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 187 | "requires": { 188 | "emoji-regex": "^8.0.0", 189 | "is-fullwidth-code-point": "^3.0.0", 190 | "strip-ansi": "^6.0.0" 191 | } 192 | }, 193 | "strip-ansi": { 194 | "version": "6.0.0", 195 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 196 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 197 | "requires": { 198 | "ansi-regex": "^5.0.0" 199 | } 200 | } 201 | } 202 | }, 203 | "code-point-at": { 204 | "version": "1.1.0", 205 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 206 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 207 | }, 208 | "collapse-white-space": { 209 | "version": "1.0.6", 210 | "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", 211 | "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" 212 | }, 213 | "color-convert": { 214 | "version": "2.0.1", 215 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 216 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 217 | "requires": { 218 | "color-name": "~1.1.4" 219 | } 220 | }, 221 | "color-name": { 222 | "version": "1.1.4", 223 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 224 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 225 | }, 226 | "concat-map": { 227 | "version": "0.0.1", 228 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 229 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 230 | }, 231 | "console-control-strings": { 232 | "version": "1.1.0", 233 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 234 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 235 | }, 236 | "core-util-is": { 237 | "version": "1.0.2", 238 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 239 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 240 | }, 241 | "crypt": { 242 | "version": "0.0.2", 243 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 244 | "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" 245 | }, 246 | "decompress-response": { 247 | "version": "4.2.1", 248 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 249 | "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 250 | "requires": { 251 | "mimic-response": "^2.0.0" 252 | } 253 | }, 254 | "deep-extend": { 255 | "version": "0.6.0", 256 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 257 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 258 | }, 259 | "delegates": { 260 | "version": "1.0.0", 261 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 262 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 263 | }, 264 | "detect-libc": { 265 | "version": "1.0.3", 266 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 267 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" 268 | }, 269 | "emoji-regex": { 270 | "version": "8.0.0", 271 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 272 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 273 | }, 274 | "end-of-stream": { 275 | "version": "1.4.4", 276 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 277 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 278 | "requires": { 279 | "once": "^1.4.0" 280 | } 281 | }, 282 | "env-paths": { 283 | "version": "2.2.0", 284 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", 285 | "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" 286 | }, 287 | "escalade": { 288 | "version": "3.1.1", 289 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 290 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" 291 | }, 292 | "esprima": { 293 | "version": "4.0.1", 294 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 295 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 296 | }, 297 | "expand-template": { 298 | "version": "2.0.3", 299 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 300 | "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" 301 | }, 302 | "extend": { 303 | "version": "3.0.2", 304 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 305 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 306 | }, 307 | "file-uri-to-path": { 308 | "version": "1.0.0", 309 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 310 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 311 | }, 312 | "frontmatter": { 313 | "version": "0.0.3", 314 | "resolved": "https://registry.npmjs.org/frontmatter/-/frontmatter-0.0.3.tgz", 315 | "integrity": "sha1-Fg51M+BUD8nA7cxICD39eqHmxuw=", 316 | "requires": { 317 | "js-yaml": "^3.4.6" 318 | } 319 | }, 320 | "fs-constants": { 321 | "version": "1.0.0", 322 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 323 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 324 | }, 325 | "fs-minipass": { 326 | "version": "1.2.7", 327 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", 328 | "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", 329 | "requires": { 330 | "minipass": "^2.6.0" 331 | } 332 | }, 333 | "fs.realpath": { 334 | "version": "1.0.0", 335 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 336 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 337 | }, 338 | "gauge": { 339 | "version": "2.7.4", 340 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 341 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 342 | "requires": { 343 | "aproba": "^1.0.3", 344 | "console-control-strings": "^1.0.0", 345 | "has-unicode": "^2.0.0", 346 | "object-assign": "^4.1.0", 347 | "signal-exit": "^3.0.0", 348 | "string-width": "^1.0.1", 349 | "strip-ansi": "^3.0.1", 350 | "wide-align": "^1.1.0" 351 | } 352 | }, 353 | "get-caller-file": { 354 | "version": "2.0.5", 355 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 356 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 357 | }, 358 | "github-from-package": { 359 | "version": "0.0.0", 360 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 361 | "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" 362 | }, 363 | "glob": { 364 | "version": "7.1.6", 365 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 366 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 367 | "requires": { 368 | "fs.realpath": "^1.0.0", 369 | "inflight": "^1.0.4", 370 | "inherits": "2", 371 | "minimatch": "^3.0.4", 372 | "once": "^1.3.0", 373 | "path-is-absolute": "^1.0.0" 374 | } 375 | }, 376 | "has-unicode": { 377 | "version": "2.0.1", 378 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 379 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 380 | }, 381 | "ieee754": { 382 | "version": "1.1.13", 383 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", 384 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" 385 | }, 386 | "inflight": { 387 | "version": "1.0.6", 388 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 389 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 390 | "requires": { 391 | "once": "^1.3.0", 392 | "wrappy": "1" 393 | } 394 | }, 395 | "inherits": { 396 | "version": "2.0.4", 397 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 398 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 399 | }, 400 | "ini": { 401 | "version": "1.3.5", 402 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 403 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" 404 | }, 405 | "is-alphabetical": { 406 | "version": "1.0.4", 407 | "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", 408 | "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" 409 | }, 410 | "is-alphanumeric": { 411 | "version": "1.0.0", 412 | "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", 413 | "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=" 414 | }, 415 | "is-alphanumerical": { 416 | "version": "1.0.4", 417 | "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", 418 | "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", 419 | "requires": { 420 | "is-alphabetical": "^1.0.0", 421 | "is-decimal": "^1.0.0" 422 | } 423 | }, 424 | "is-buffer": { 425 | "version": "1.1.6", 426 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 427 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 428 | }, 429 | "is-decimal": { 430 | "version": "1.0.4", 431 | "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", 432 | "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" 433 | }, 434 | "is-fullwidth-code-point": { 435 | "version": "1.0.0", 436 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 437 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 438 | "requires": { 439 | "number-is-nan": "^1.0.0" 440 | } 441 | }, 442 | "is-hexadecimal": { 443 | "version": "1.0.4", 444 | "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", 445 | "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" 446 | }, 447 | "is-plain-obj": { 448 | "version": "2.1.0", 449 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 450 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" 451 | }, 452 | "is-whitespace-character": { 453 | "version": "1.0.4", 454 | "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", 455 | "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" 456 | }, 457 | "is-word-character": { 458 | "version": "1.0.4", 459 | "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", 460 | "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" 461 | }, 462 | "isarray": { 463 | "version": "1.0.0", 464 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 465 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 466 | }, 467 | "js-yaml": { 468 | "version": "3.14.0", 469 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 470 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 471 | "requires": { 472 | "argparse": "^1.0.7", 473 | "esprima": "^4.0.0" 474 | } 475 | }, 476 | "longest-streak": { 477 | "version": "2.0.4", 478 | "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", 479 | "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" 480 | }, 481 | "markdown-escapes": { 482 | "version": "1.0.4", 483 | "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", 484 | "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" 485 | }, 486 | "markdown-table": { 487 | "version": "2.0.0", 488 | "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", 489 | "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", 490 | "requires": { 491 | "repeat-string": "^1.0.0" 492 | } 493 | }, 494 | "md5": { 495 | "version": "2.3.0", 496 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", 497 | "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", 498 | "requires": { 499 | "charenc": "0.0.2", 500 | "crypt": "0.0.2", 501 | "is-buffer": "~1.1.6" 502 | } 503 | }, 504 | "mdast-util-compact": { 505 | "version": "2.0.1", 506 | "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", 507 | "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", 508 | "requires": { 509 | "unist-util-visit": "^2.0.0" 510 | } 511 | }, 512 | "mimic-response": { 513 | "version": "2.1.0", 514 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", 515 | "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" 516 | }, 517 | "minimatch": { 518 | "version": "3.0.4", 519 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 520 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 521 | "requires": { 522 | "brace-expansion": "^1.1.7" 523 | } 524 | }, 525 | "minimist": { 526 | "version": "1.2.5", 527 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 528 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 529 | }, 530 | "minipass": { 531 | "version": "2.9.0", 532 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", 533 | "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", 534 | "requires": { 535 | "safe-buffer": "^5.1.2", 536 | "yallist": "^3.0.0" 537 | } 538 | }, 539 | "minizlib": { 540 | "version": "1.3.3", 541 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", 542 | "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", 543 | "requires": { 544 | "minipass": "^2.9.0" 545 | } 546 | }, 547 | "mkdirp": { 548 | "version": "1.0.4", 549 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 550 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" 551 | }, 552 | "mkdirp-classic": { 553 | "version": "0.5.3", 554 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 555 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 556 | }, 557 | "napi-build-utils": { 558 | "version": "1.0.2", 559 | "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", 560 | "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" 561 | }, 562 | "node-abi": { 563 | "version": "2.19.1", 564 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz", 565 | "integrity": "sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==", 566 | "requires": { 567 | "semver": "^5.4.1" 568 | } 569 | }, 570 | "noop-logger": { 571 | "version": "0.1.1", 572 | "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", 573 | "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" 574 | }, 575 | "npmlog": { 576 | "version": "4.1.2", 577 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 578 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 579 | "requires": { 580 | "are-we-there-yet": "~1.1.2", 581 | "console-control-strings": "~1.1.0", 582 | "gauge": "~2.7.3", 583 | "set-blocking": "~2.0.0" 584 | } 585 | }, 586 | "number-is-nan": { 587 | "version": "1.0.1", 588 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 589 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 590 | }, 591 | "object-assign": { 592 | "version": "4.1.1", 593 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 594 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 595 | }, 596 | "once": { 597 | "version": "1.4.0", 598 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 599 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 600 | "requires": { 601 | "wrappy": "1" 602 | } 603 | }, 604 | "parse-entities": { 605 | "version": "2.0.0", 606 | "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", 607 | "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", 608 | "requires": { 609 | "character-entities": "^1.0.0", 610 | "character-entities-legacy": "^1.0.0", 611 | "character-reference-invalid": "^1.0.0", 612 | "is-alphanumerical": "^1.0.0", 613 | "is-decimal": "^1.0.0", 614 | "is-hexadecimal": "^1.0.0" 615 | } 616 | }, 617 | "path-is-absolute": { 618 | "version": "1.0.1", 619 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 620 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 621 | }, 622 | "prebuild-install": { 623 | "version": "5.3.6", 624 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", 625 | "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", 626 | "requires": { 627 | "detect-libc": "^1.0.3", 628 | "expand-template": "^2.0.3", 629 | "github-from-package": "0.0.0", 630 | "minimist": "^1.2.3", 631 | "mkdirp-classic": "^0.5.3", 632 | "napi-build-utils": "^1.0.1", 633 | "node-abi": "^2.7.0", 634 | "noop-logger": "^0.1.1", 635 | "npmlog": "^4.0.1", 636 | "pump": "^3.0.0", 637 | "rc": "^1.2.7", 638 | "simple-get": "^3.0.3", 639 | "tar-fs": "^2.0.0", 640 | "tunnel-agent": "^0.6.0", 641 | "which-pm-runs": "^1.0.0" 642 | } 643 | }, 644 | "process-nextick-args": { 645 | "version": "2.0.1", 646 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 647 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 648 | }, 649 | "pump": { 650 | "version": "3.0.0", 651 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 652 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 653 | "requires": { 654 | "end-of-stream": "^1.1.0", 655 | "once": "^1.3.1" 656 | } 657 | }, 658 | "rc": { 659 | "version": "1.2.8", 660 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 661 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 662 | "requires": { 663 | "deep-extend": "^0.6.0", 664 | "ini": "~1.3.0", 665 | "minimist": "^1.2.0", 666 | "strip-json-comments": "~2.0.1" 667 | } 668 | }, 669 | "readable-stream": { 670 | "version": "2.3.7", 671 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 672 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 673 | "requires": { 674 | "core-util-is": "~1.0.0", 675 | "inherits": "~2.0.3", 676 | "isarray": "~1.0.0", 677 | "process-nextick-args": "~2.0.0", 678 | "safe-buffer": "~5.1.1", 679 | "string_decoder": "~1.1.1", 680 | "util-deprecate": "~1.0.1" 681 | } 682 | }, 683 | "remark-parse": { 684 | "version": "8.0.3", 685 | "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", 686 | "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", 687 | "requires": { 688 | "ccount": "^1.0.0", 689 | "collapse-white-space": "^1.0.2", 690 | "is-alphabetical": "^1.0.0", 691 | "is-decimal": "^1.0.0", 692 | "is-whitespace-character": "^1.0.0", 693 | "is-word-character": "^1.0.0", 694 | "markdown-escapes": "^1.0.0", 695 | "parse-entities": "^2.0.0", 696 | "repeat-string": "^1.5.4", 697 | "state-toggle": "^1.0.0", 698 | "trim": "0.0.1", 699 | "trim-trailing-lines": "^1.0.0", 700 | "unherit": "^1.0.4", 701 | "unist-util-remove-position": "^2.0.0", 702 | "vfile-location": "^3.0.0", 703 | "xtend": "^4.0.1" 704 | } 705 | }, 706 | "remark-stringify": { 707 | "version": "8.1.1", 708 | "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz", 709 | "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==", 710 | "requires": { 711 | "ccount": "^1.0.0", 712 | "is-alphanumeric": "^1.0.0", 713 | "is-decimal": "^1.0.0", 714 | "is-whitespace-character": "^1.0.0", 715 | "longest-streak": "^2.0.1", 716 | "markdown-escapes": "^1.0.0", 717 | "markdown-table": "^2.0.0", 718 | "mdast-util-compact": "^2.0.0", 719 | "parse-entities": "^2.0.0", 720 | "repeat-string": "^1.5.4", 721 | "state-toggle": "^1.0.0", 722 | "stringify-entities": "^3.0.0", 723 | "unherit": "^1.0.4", 724 | "xtend": "^4.0.1" 725 | } 726 | }, 727 | "repeat-string": { 728 | "version": "1.6.1", 729 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 730 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" 731 | }, 732 | "require-directory": { 733 | "version": "2.1.1", 734 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 735 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 736 | }, 737 | "rimraf": { 738 | "version": "3.0.2", 739 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 740 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 741 | "dev": true, 742 | "requires": { 743 | "glob": "^7.1.3" 744 | } 745 | }, 746 | "safe-buffer": { 747 | "version": "5.1.2", 748 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 749 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 750 | }, 751 | "semver": { 752 | "version": "5.7.1", 753 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 754 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 755 | }, 756 | "set-blocking": { 757 | "version": "2.0.0", 758 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 759 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 760 | }, 761 | "signal-exit": { 762 | "version": "3.0.3", 763 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 764 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 765 | }, 766 | "simple-concat": { 767 | "version": "1.0.1", 768 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 769 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" 770 | }, 771 | "simple-get": { 772 | "version": "3.1.0", 773 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", 774 | "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", 775 | "requires": { 776 | "decompress-response": "^4.2.0", 777 | "once": "^1.3.1", 778 | "simple-concat": "^1.0.0" 779 | } 780 | }, 781 | "sprintf-js": { 782 | "version": "1.0.3", 783 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 784 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" 785 | }, 786 | "state-toggle": { 787 | "version": "1.0.3", 788 | "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", 789 | "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" 790 | }, 791 | "string-width": { 792 | "version": "1.0.2", 793 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 794 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 795 | "requires": { 796 | "code-point-at": "^1.0.0", 797 | "is-fullwidth-code-point": "^1.0.0", 798 | "strip-ansi": "^3.0.0" 799 | } 800 | }, 801 | "string_decoder": { 802 | "version": "1.1.1", 803 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 804 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 805 | "requires": { 806 | "safe-buffer": "~5.1.0" 807 | } 808 | }, 809 | "stringify-entities": { 810 | "version": "3.1.0", 811 | "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", 812 | "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", 813 | "requires": { 814 | "character-entities-html4": "^1.0.0", 815 | "character-entities-legacy": "^1.0.0", 816 | "xtend": "^4.0.0" 817 | } 818 | }, 819 | "strip-ansi": { 820 | "version": "3.0.1", 821 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 822 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 823 | "requires": { 824 | "ansi-regex": "^2.0.0" 825 | } 826 | }, 827 | "strip-json-comments": { 828 | "version": "2.0.1", 829 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 830 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" 831 | }, 832 | "tar": { 833 | "version": "4.4.10", 834 | "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", 835 | "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", 836 | "requires": { 837 | "chownr": "^1.1.1", 838 | "fs-minipass": "^1.2.5", 839 | "minipass": "^2.3.5", 840 | "minizlib": "^1.2.1", 841 | "mkdirp": "^0.5.0", 842 | "safe-buffer": "^5.1.2", 843 | "yallist": "^3.0.3" 844 | }, 845 | "dependencies": { 846 | "mkdirp": { 847 | "version": "0.5.5", 848 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 849 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 850 | "requires": { 851 | "minimist": "^1.2.5" 852 | } 853 | } 854 | } 855 | }, 856 | "tar-fs": { 857 | "version": "2.1.0", 858 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", 859 | "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", 860 | "requires": { 861 | "chownr": "^1.1.1", 862 | "mkdirp-classic": "^0.5.2", 863 | "pump": "^3.0.0", 864 | "tar-stream": "^2.0.0" 865 | } 866 | }, 867 | "tar-stream": { 868 | "version": "2.1.4", 869 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", 870 | "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", 871 | "requires": { 872 | "bl": "^4.0.3", 873 | "end-of-stream": "^1.4.1", 874 | "fs-constants": "^1.0.0", 875 | "inherits": "^2.0.3", 876 | "readable-stream": "^3.1.1" 877 | }, 878 | "dependencies": { 879 | "readable-stream": { 880 | "version": "3.6.0", 881 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 882 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 883 | "requires": { 884 | "inherits": "^2.0.3", 885 | "string_decoder": "^1.1.1", 886 | "util-deprecate": "^1.0.1" 887 | } 888 | } 889 | } 890 | }, 891 | "trim": { 892 | "version": "0.0.1", 893 | "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", 894 | "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" 895 | }, 896 | "trim-trailing-lines": { 897 | "version": "1.1.4", 898 | "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", 899 | "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==" 900 | }, 901 | "trough": { 902 | "version": "1.0.5", 903 | "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", 904 | "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" 905 | }, 906 | "tunnel-agent": { 907 | "version": "0.6.0", 908 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 909 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 910 | "requires": { 911 | "safe-buffer": "^5.0.1" 912 | } 913 | }, 914 | "unherit": { 915 | "version": "1.1.3", 916 | "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", 917 | "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", 918 | "requires": { 919 | "inherits": "^2.0.0", 920 | "xtend": "^4.0.0" 921 | } 922 | }, 923 | "unified": { 924 | "version": "8.4.2", 925 | "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", 926 | "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", 927 | "requires": { 928 | "bail": "^1.0.0", 929 | "extend": "^3.0.0", 930 | "is-plain-obj": "^2.0.0", 931 | "trough": "^1.0.0", 932 | "vfile": "^4.0.0" 933 | } 934 | }, 935 | "unist-util-is": { 936 | "version": "4.0.2", 937 | "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", 938 | "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" 939 | }, 940 | "unist-util-map": { 941 | "version": "2.0.1", 942 | "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-2.0.1.tgz", 943 | "integrity": "sha512-VdNvk4BQUUU9Rgr8iUOvclHa/iN9O+6Dt66FKij8l9OVezGG37gGWCPU5KSax1R2degqXFvl3kWTkvzL79e9tQ==", 944 | "requires": { 945 | "@types/mdast": "^3.0.0", 946 | "object-assign": "^4.0.0" 947 | } 948 | }, 949 | "unist-util-remove-position": { 950 | "version": "2.0.1", 951 | "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", 952 | "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", 953 | "requires": { 954 | "unist-util-visit": "^2.0.0" 955 | } 956 | }, 957 | "unist-util-stringify-position": { 958 | "version": "2.0.3", 959 | "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", 960 | "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", 961 | "requires": { 962 | "@types/unist": "^2.0.2" 963 | } 964 | }, 965 | "unist-util-visit": { 966 | "version": "2.0.3", 967 | "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", 968 | "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", 969 | "requires": { 970 | "@types/unist": "^2.0.0", 971 | "unist-util-is": "^4.0.0", 972 | "unist-util-visit-parents": "^3.0.0" 973 | } 974 | }, 975 | "unist-util-visit-parents": { 976 | "version": "3.1.1", 977 | "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", 978 | "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", 979 | "requires": { 980 | "@types/unist": "^2.0.0", 981 | "unist-util-is": "^4.0.0" 982 | } 983 | }, 984 | "util-deprecate": { 985 | "version": "1.0.2", 986 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 987 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 988 | }, 989 | "vfile": { 990 | "version": "4.2.1", 991 | "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", 992 | "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", 993 | "requires": { 994 | "@types/unist": "^2.0.0", 995 | "is-buffer": "^2.0.0", 996 | "unist-util-stringify-position": "^2.0.0", 997 | "vfile-message": "^2.0.0" 998 | }, 999 | "dependencies": { 1000 | "is-buffer": { 1001 | "version": "2.0.5", 1002 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", 1003 | "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" 1004 | } 1005 | } 1006 | }, 1007 | "vfile-location": { 1008 | "version": "3.2.0", 1009 | "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", 1010 | "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" 1011 | }, 1012 | "vfile-message": { 1013 | "version": "2.0.4", 1014 | "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", 1015 | "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", 1016 | "requires": { 1017 | "@types/unist": "^2.0.0", 1018 | "unist-util-stringify-position": "^2.0.0" 1019 | } 1020 | }, 1021 | "which-pm-runs": { 1022 | "version": "1.0.0", 1023 | "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", 1024 | "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" 1025 | }, 1026 | "wide-align": { 1027 | "version": "1.1.3", 1028 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 1029 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 1030 | "requires": { 1031 | "string-width": "^1.0.2 || 2" 1032 | } 1033 | }, 1034 | "wrap-ansi": { 1035 | "version": "7.0.0", 1036 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1037 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1038 | "requires": { 1039 | "ansi-styles": "^4.0.0", 1040 | "string-width": "^4.1.0", 1041 | "strip-ansi": "^6.0.0" 1042 | }, 1043 | "dependencies": { 1044 | "ansi-regex": { 1045 | "version": "5.0.0", 1046 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1047 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 1048 | }, 1049 | "is-fullwidth-code-point": { 1050 | "version": "3.0.0", 1051 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1052 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1053 | }, 1054 | "string-width": { 1055 | "version": "4.2.0", 1056 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 1057 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 1058 | "requires": { 1059 | "emoji-regex": "^8.0.0", 1060 | "is-fullwidth-code-point": "^3.0.0", 1061 | "strip-ansi": "^6.0.0" 1062 | } 1063 | }, 1064 | "strip-ansi": { 1065 | "version": "6.0.0", 1066 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1067 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1068 | "requires": { 1069 | "ansi-regex": "^5.0.0" 1070 | } 1071 | } 1072 | } 1073 | }, 1074 | "wrappy": { 1075 | "version": "1.0.2", 1076 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1077 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1078 | }, 1079 | "xtend": { 1080 | "version": "4.0.2", 1081 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1082 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" 1083 | }, 1084 | "y18n": { 1085 | "version": "5.0.4", 1086 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.4.tgz", 1087 | "integrity": "sha512-deLOfD+RvFgrpAmSZgfGdWYE+OKyHcVHaRQ7NphG/63scpRvTHHeQMAxGGvaLVGJ+HYVcCXlzcTK0ZehFf+eHQ==" 1088 | }, 1089 | "yallist": { 1090 | "version": "3.1.1", 1091 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 1092 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 1093 | }, 1094 | "yargs": { 1095 | "version": "16.1.0", 1096 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.1.0.tgz", 1097 | "integrity": "sha512-upWFJOmDdHN0syLuESuvXDmrRcWd1QafJolHskzaw79uZa7/x53gxQKiR07W59GWY1tFhhU/Th9DrtSfpS782g==", 1098 | "requires": { 1099 | "cliui": "^7.0.2", 1100 | "escalade": "^3.1.1", 1101 | "get-caller-file": "^2.0.5", 1102 | "require-directory": "^2.1.1", 1103 | "string-width": "^4.2.0", 1104 | "y18n": "^5.0.2", 1105 | "yargs-parser": "^20.2.2" 1106 | }, 1107 | "dependencies": { 1108 | "ansi-regex": { 1109 | "version": "5.0.0", 1110 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1111 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 1112 | }, 1113 | "is-fullwidth-code-point": { 1114 | "version": "3.0.0", 1115 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1116 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1117 | }, 1118 | "string-width": { 1119 | "version": "4.2.0", 1120 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 1121 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 1122 | "requires": { 1123 | "emoji-regex": "^8.0.0", 1124 | "is-fullwidth-code-point": "^3.0.0", 1125 | "strip-ansi": "^6.0.0" 1126 | } 1127 | }, 1128 | "strip-ansi": { 1129 | "version": "6.0.0", 1130 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1131 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1132 | "requires": { 1133 | "ansi-regex": "^5.0.0" 1134 | } 1135 | } 1136 | } 1137 | }, 1138 | "yargs-parser": { 1139 | "version": "20.2.3", 1140 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.3.tgz", 1141 | "integrity": "sha512-emOFRT9WVHw03QSvN5qor9QQT9+sw5vwxfYweivSMHTcAXPefwVae2FjO7JJjj8hCE4CzPOPeFM83VwT29HCww==" 1142 | } 1143 | } 1144 | } 1145 | -------------------------------------------------------------------------------- /packages/muninn-cli/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "muninn-cli", 3 | "version": "2.3.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/color-name": { 8 | "version": "1.1.1", 9 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 10 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" 11 | }, 12 | "@types/mdast": { 13 | "version": "3.0.3", 14 | "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", 15 | "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", 16 | "requires": { 17 | "@types/unist": "*" 18 | } 19 | }, 20 | "@types/unist": { 21 | "version": "2.0.3", 22 | "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", 23 | "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" 24 | }, 25 | "ansi-regex": { 26 | "version": "2.1.1", 27 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 28 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 29 | }, 30 | "ansi-styles": { 31 | "version": "4.2.1", 32 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 33 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 34 | "requires": { 35 | "@types/color-name": "^1.1.1", 36 | "color-convert": "^2.0.1" 37 | } 38 | }, 39 | "aproba": { 40 | "version": "1.2.0", 41 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 42 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 43 | }, 44 | "are-we-there-yet": { 45 | "version": "1.1.5", 46 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 47 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 48 | "requires": { 49 | "delegates": "^1.0.0", 50 | "readable-stream": "^2.0.6" 51 | } 52 | }, 53 | "argparse": { 54 | "version": "1.0.10", 55 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 56 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 57 | "requires": { 58 | "sprintf-js": "~1.0.2" 59 | } 60 | }, 61 | "bail": { 62 | "version": "1.0.5", 63 | "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", 64 | "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" 65 | }, 66 | "balanced-match": { 67 | "version": "1.0.0", 68 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 69 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 70 | }, 71 | "base64-js": { 72 | "version": "1.3.1", 73 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", 74 | "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" 75 | }, 76 | "better-sqlite3": { 77 | "version": "7.1.1", 78 | "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.1.1.tgz", 79 | "integrity": "sha512-AkvGGyhAVZhRBOul2WT+5CB2EuveM3ZkebEKe1wxMqDZUy1XB/1RBgM66t0ybHC4DIni8+pr7NaLqEX87NUTwg==", 80 | "requires": { 81 | "bindings": "^1.5.0", 82 | "prebuild-install": "^5.3.3", 83 | "tar": "4.4.10" 84 | } 85 | }, 86 | "bindings": { 87 | "version": "1.5.0", 88 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 89 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 90 | "requires": { 91 | "file-uri-to-path": "1.0.0" 92 | } 93 | }, 94 | "bl": { 95 | "version": "4.0.3", 96 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", 97 | "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", 98 | "requires": { 99 | "buffer": "^5.5.0", 100 | "inherits": "^2.0.4", 101 | "readable-stream": "^3.4.0" 102 | }, 103 | "dependencies": { 104 | "readable-stream": { 105 | "version": "3.6.0", 106 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 107 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 108 | "requires": { 109 | "inherits": "^2.0.3", 110 | "string_decoder": "^1.1.1", 111 | "util-deprecate": "^1.0.1" 112 | } 113 | } 114 | } 115 | }, 116 | "brace-expansion": { 117 | "version": "1.1.11", 118 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 119 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 120 | "requires": { 121 | "balanced-match": "^1.0.0", 122 | "concat-map": "0.0.1" 123 | } 124 | }, 125 | "buffer": { 126 | "version": "5.6.0", 127 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", 128 | "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", 129 | "requires": { 130 | "base64-js": "^1.0.2", 131 | "ieee754": "^1.1.4" 132 | } 133 | }, 134 | "camelcase": { 135 | "version": "5.3.1", 136 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 137 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 138 | }, 139 | "ccount": { 140 | "version": "1.0.5", 141 | "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", 142 | "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==" 143 | }, 144 | "chalk": { 145 | "version": "4.1.0", 146 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 147 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 148 | "requires": { 149 | "ansi-styles": "^4.1.0", 150 | "supports-color": "^7.1.0" 151 | } 152 | }, 153 | "character-entities": { 154 | "version": "1.2.4", 155 | "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", 156 | "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" 157 | }, 158 | "character-entities-html4": { 159 | "version": "1.1.4", 160 | "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", 161 | "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==" 162 | }, 163 | "character-entities-legacy": { 164 | "version": "1.1.4", 165 | "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", 166 | "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" 167 | }, 168 | "character-reference-invalid": { 169 | "version": "1.1.4", 170 | "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", 171 | "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" 172 | }, 173 | "charenc": { 174 | "version": "0.0.2", 175 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 176 | "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" 177 | }, 178 | "chownr": { 179 | "version": "1.1.4", 180 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 181 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 182 | }, 183 | "cliui": { 184 | "version": "6.0.0", 185 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", 186 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", 187 | "requires": { 188 | "string-width": "^4.2.0", 189 | "strip-ansi": "^6.0.0", 190 | "wrap-ansi": "^6.2.0" 191 | }, 192 | "dependencies": { 193 | "ansi-regex": { 194 | "version": "5.0.0", 195 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 196 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 197 | }, 198 | "is-fullwidth-code-point": { 199 | "version": "3.0.0", 200 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 201 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 202 | }, 203 | "string-width": { 204 | "version": "4.2.0", 205 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 206 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 207 | "requires": { 208 | "emoji-regex": "^8.0.0", 209 | "is-fullwidth-code-point": "^3.0.0", 210 | "strip-ansi": "^6.0.0" 211 | } 212 | }, 213 | "strip-ansi": { 214 | "version": "6.0.0", 215 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 216 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 217 | "requires": { 218 | "ansi-regex": "^5.0.0" 219 | } 220 | } 221 | } 222 | }, 223 | "code-point-at": { 224 | "version": "1.1.0", 225 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 226 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 227 | }, 228 | "collapse-white-space": { 229 | "version": "1.0.6", 230 | "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", 231 | "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" 232 | }, 233 | "color-convert": { 234 | "version": "2.0.1", 235 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 236 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 237 | "requires": { 238 | "color-name": "~1.1.4" 239 | } 240 | }, 241 | "color-name": { 242 | "version": "1.1.4", 243 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 244 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 245 | }, 246 | "concat-map": { 247 | "version": "0.0.1", 248 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 249 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 250 | }, 251 | "console-control-strings": { 252 | "version": "1.1.0", 253 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 254 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 255 | }, 256 | "core-util-is": { 257 | "version": "1.0.2", 258 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 259 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 260 | }, 261 | "crypt": { 262 | "version": "0.0.2", 263 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 264 | "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" 265 | }, 266 | "date-fns": { 267 | "version": "2.16.1", 268 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.16.1.tgz", 269 | "integrity": "sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==" 270 | }, 271 | "decamelize": { 272 | "version": "1.2.0", 273 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 274 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 275 | }, 276 | "decompress-response": { 277 | "version": "4.2.1", 278 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", 279 | "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", 280 | "requires": { 281 | "mimic-response": "^2.0.0" 282 | } 283 | }, 284 | "deep-extend": { 285 | "version": "0.6.0", 286 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 287 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 288 | }, 289 | "delegates": { 290 | "version": "1.0.0", 291 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 292 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 293 | }, 294 | "detect-libc": { 295 | "version": "1.0.3", 296 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", 297 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" 298 | }, 299 | "emoji-regex": { 300 | "version": "8.0.0", 301 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 302 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 303 | }, 304 | "end-of-stream": { 305 | "version": "1.4.4", 306 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 307 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 308 | "requires": { 309 | "once": "^1.4.0" 310 | } 311 | }, 312 | "env-paths": { 313 | "version": "2.2.0", 314 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", 315 | "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" 316 | }, 317 | "esprima": { 318 | "version": "4.0.1", 319 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 320 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 321 | }, 322 | "expand-template": { 323 | "version": "2.0.3", 324 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", 325 | "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" 326 | }, 327 | "extend": { 328 | "version": "3.0.2", 329 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 330 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 331 | }, 332 | "file-uri-to-path": { 333 | "version": "1.0.0", 334 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 335 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" 336 | }, 337 | "find-up": { 338 | "version": "4.1.0", 339 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 340 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 341 | "requires": { 342 | "locate-path": "^5.0.0", 343 | "path-exists": "^4.0.0" 344 | } 345 | }, 346 | "frontmatter": { 347 | "version": "0.0.3", 348 | "resolved": "https://registry.npmjs.org/frontmatter/-/frontmatter-0.0.3.tgz", 349 | "integrity": "sha1-Fg51M+BUD8nA7cxICD39eqHmxuw=", 350 | "requires": { 351 | "js-yaml": "^3.4.6" 352 | } 353 | }, 354 | "fs-constants": { 355 | "version": "1.0.0", 356 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 357 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 358 | }, 359 | "fs-minipass": { 360 | "version": "1.2.7", 361 | "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", 362 | "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", 363 | "requires": { 364 | "minipass": "^2.6.0" 365 | } 366 | }, 367 | "fs.realpath": { 368 | "version": "1.0.0", 369 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 370 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 371 | }, 372 | "gauge": { 373 | "version": "2.7.4", 374 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 375 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 376 | "requires": { 377 | "aproba": "^1.0.3", 378 | "console-control-strings": "^1.0.0", 379 | "has-unicode": "^2.0.0", 380 | "object-assign": "^4.1.0", 381 | "signal-exit": "^3.0.0", 382 | "string-width": "^1.0.1", 383 | "strip-ansi": "^3.0.1", 384 | "wide-align": "^1.1.0" 385 | } 386 | }, 387 | "get-caller-file": { 388 | "version": "2.0.5", 389 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 390 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 391 | }, 392 | "github-from-package": { 393 | "version": "0.0.0", 394 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 395 | "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" 396 | }, 397 | "glob": { 398 | "version": "7.1.6", 399 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 400 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 401 | "requires": { 402 | "fs.realpath": "^1.0.0", 403 | "inflight": "^1.0.4", 404 | "inherits": "2", 405 | "minimatch": "^3.0.4", 406 | "once": "^1.3.0", 407 | "path-is-absolute": "^1.0.0" 408 | } 409 | }, 410 | "has-flag": { 411 | "version": "4.0.0", 412 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 413 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 414 | }, 415 | "has-unicode": { 416 | "version": "2.0.1", 417 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 418 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 419 | }, 420 | "ieee754": { 421 | "version": "1.1.13", 422 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", 423 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" 424 | }, 425 | "inflight": { 426 | "version": "1.0.6", 427 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 428 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 429 | "requires": { 430 | "once": "^1.3.0", 431 | "wrappy": "1" 432 | } 433 | }, 434 | "inherits": { 435 | "version": "2.0.4", 436 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 437 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 438 | }, 439 | "ini": { 440 | "version": "1.3.5", 441 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 442 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" 443 | }, 444 | "is-alphabetical": { 445 | "version": "1.0.4", 446 | "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", 447 | "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" 448 | }, 449 | "is-alphanumeric": { 450 | "version": "1.0.0", 451 | "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", 452 | "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=" 453 | }, 454 | "is-alphanumerical": { 455 | "version": "1.0.4", 456 | "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", 457 | "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", 458 | "requires": { 459 | "is-alphabetical": "^1.0.0", 460 | "is-decimal": "^1.0.0" 461 | } 462 | }, 463 | "is-buffer": { 464 | "version": "1.1.6", 465 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 466 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 467 | }, 468 | "is-decimal": { 469 | "version": "1.0.4", 470 | "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", 471 | "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" 472 | }, 473 | "is-fullwidth-code-point": { 474 | "version": "1.0.0", 475 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 476 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 477 | "requires": { 478 | "number-is-nan": "^1.0.0" 479 | } 480 | }, 481 | "is-hexadecimal": { 482 | "version": "1.0.4", 483 | "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", 484 | "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" 485 | }, 486 | "is-plain-obj": { 487 | "version": "2.1.0", 488 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 489 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" 490 | }, 491 | "is-whitespace-character": { 492 | "version": "1.0.4", 493 | "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", 494 | "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" 495 | }, 496 | "is-word-character": { 497 | "version": "1.0.4", 498 | "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", 499 | "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" 500 | }, 501 | "isarray": { 502 | "version": "1.0.0", 503 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 504 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 505 | }, 506 | "js-yaml": { 507 | "version": "3.14.0", 508 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 509 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 510 | "requires": { 511 | "argparse": "^1.0.7", 512 | "esprima": "^4.0.0" 513 | } 514 | }, 515 | "locate-path": { 516 | "version": "5.0.0", 517 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 518 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 519 | "requires": { 520 | "p-locate": "^4.1.0" 521 | } 522 | }, 523 | "longest-streak": { 524 | "version": "2.0.4", 525 | "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", 526 | "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" 527 | }, 528 | "markdown-escapes": { 529 | "version": "1.0.4", 530 | "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", 531 | "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" 532 | }, 533 | "markdown-table": { 534 | "version": "2.0.0", 535 | "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", 536 | "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", 537 | "requires": { 538 | "repeat-string": "^1.0.0" 539 | } 540 | }, 541 | "md5": { 542 | "version": "2.3.0", 543 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", 544 | "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", 545 | "requires": { 546 | "charenc": "0.0.2", 547 | "crypt": "0.0.2", 548 | "is-buffer": "~1.1.6" 549 | } 550 | }, 551 | "mdast-util-compact": { 552 | "version": "2.0.1", 553 | "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", 554 | "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", 555 | "requires": { 556 | "unist-util-visit": "^2.0.0" 557 | } 558 | }, 559 | "mimic-response": { 560 | "version": "2.1.0", 561 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", 562 | "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" 563 | }, 564 | "minimatch": { 565 | "version": "3.0.4", 566 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 567 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 568 | "requires": { 569 | "brace-expansion": "^1.1.7" 570 | } 571 | }, 572 | "minimist": { 573 | "version": "1.2.5", 574 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 575 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 576 | }, 577 | "minipass": { 578 | "version": "2.9.0", 579 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", 580 | "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", 581 | "requires": { 582 | "safe-buffer": "^5.1.2", 583 | "yallist": "^3.0.0" 584 | } 585 | }, 586 | "minizlib": { 587 | "version": "1.3.3", 588 | "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", 589 | "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", 590 | "requires": { 591 | "minipass": "^2.9.0" 592 | } 593 | }, 594 | "mkdirp": { 595 | "version": "1.0.4", 596 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 597 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" 598 | }, 599 | "mkdirp-classic": { 600 | "version": "0.5.3", 601 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 602 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 603 | }, 604 | "muninn-lib": { 605 | "version": "1.0.2", 606 | "resolved": "https://registry.npmjs.org/muninn-lib/-/muninn-lib-1.0.2.tgz", 607 | "integrity": "sha512-KGok7fUr6JcXO5dYpmqk/ZKJdsGtEmlmkxZJ4u5+H+1Kuwp62Mv4U8mxK2m3Lt7nvNzLgNDLhhJwly9I/y5Wmg==", 608 | "requires": { 609 | "better-sqlite3": "^7.0.1", 610 | "env-paths": "^2.2.0", 611 | "frontmatter": "0.0.3", 612 | "glob": "^7.1.6", 613 | "md5": "^2.2.1", 614 | "mkdirp": "^1.0.4", 615 | "remark-parse": "^8.0.2", 616 | "remark-stringify": "^8.0.0", 617 | "unified": "^9.0.0", 618 | "unist-util-map": "^2.0.1", 619 | "unist-util-visit-parents": "^3.0.2", 620 | "yargs": "^15.3.1" 621 | } 622 | }, 623 | "napi-build-utils": { 624 | "version": "1.0.2", 625 | "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", 626 | "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" 627 | }, 628 | "node-abi": { 629 | "version": "2.19.1", 630 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz", 631 | "integrity": "sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==", 632 | "requires": { 633 | "semver": "^5.4.1" 634 | } 635 | }, 636 | "noop-logger": { 637 | "version": "0.1.1", 638 | "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", 639 | "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" 640 | }, 641 | "npmlog": { 642 | "version": "4.1.2", 643 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 644 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 645 | "requires": { 646 | "are-we-there-yet": "~1.1.2", 647 | "console-control-strings": "~1.1.0", 648 | "gauge": "~2.7.3", 649 | "set-blocking": "~2.0.0" 650 | } 651 | }, 652 | "number-is-nan": { 653 | "version": "1.0.1", 654 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 655 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 656 | }, 657 | "object-assign": { 658 | "version": "4.1.1", 659 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 660 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 661 | }, 662 | "once": { 663 | "version": "1.4.0", 664 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 665 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 666 | "requires": { 667 | "wrappy": "1" 668 | } 669 | }, 670 | "p-limit": { 671 | "version": "2.3.0", 672 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 673 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 674 | "requires": { 675 | "p-try": "^2.0.0" 676 | } 677 | }, 678 | "p-locate": { 679 | "version": "4.1.0", 680 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 681 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 682 | "requires": { 683 | "p-limit": "^2.2.0" 684 | } 685 | }, 686 | "p-try": { 687 | "version": "2.2.0", 688 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 689 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 690 | }, 691 | "parse-entities": { 692 | "version": "2.0.0", 693 | "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", 694 | "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", 695 | "requires": { 696 | "character-entities": "^1.0.0", 697 | "character-entities-legacy": "^1.0.0", 698 | "character-reference-invalid": "^1.0.0", 699 | "is-alphanumerical": "^1.0.0", 700 | "is-decimal": "^1.0.0", 701 | "is-hexadecimal": "^1.0.0" 702 | } 703 | }, 704 | "path-exists": { 705 | "version": "4.0.0", 706 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 707 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 708 | }, 709 | "path-is-absolute": { 710 | "version": "1.0.1", 711 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 712 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 713 | }, 714 | "prebuild-install": { 715 | "version": "5.3.5", 716 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", 717 | "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==", 718 | "requires": { 719 | "detect-libc": "^1.0.3", 720 | "expand-template": "^2.0.3", 721 | "github-from-package": "0.0.0", 722 | "minimist": "^1.2.3", 723 | "mkdirp": "^0.5.1", 724 | "napi-build-utils": "^1.0.1", 725 | "node-abi": "^2.7.0", 726 | "noop-logger": "^0.1.1", 727 | "npmlog": "^4.0.1", 728 | "pump": "^3.0.0", 729 | "rc": "^1.2.7", 730 | "simple-get": "^3.0.3", 731 | "tar-fs": "^2.0.0", 732 | "tunnel-agent": "^0.6.0", 733 | "which-pm-runs": "^1.0.0" 734 | }, 735 | "dependencies": { 736 | "mkdirp": { 737 | "version": "0.5.5", 738 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 739 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 740 | "requires": { 741 | "minimist": "^1.2.5" 742 | } 743 | } 744 | } 745 | }, 746 | "process-nextick-args": { 747 | "version": "2.0.1", 748 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 749 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 750 | }, 751 | "pump": { 752 | "version": "3.0.0", 753 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 754 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 755 | "requires": { 756 | "end-of-stream": "^1.1.0", 757 | "once": "^1.3.1" 758 | } 759 | }, 760 | "rc": { 761 | "version": "1.2.8", 762 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 763 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 764 | "requires": { 765 | "deep-extend": "^0.6.0", 766 | "ini": "~1.3.0", 767 | "minimist": "^1.2.0", 768 | "strip-json-comments": "~2.0.1" 769 | } 770 | }, 771 | "readable-stream": { 772 | "version": "2.3.7", 773 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 774 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 775 | "requires": { 776 | "core-util-is": "~1.0.0", 777 | "inherits": "~2.0.3", 778 | "isarray": "~1.0.0", 779 | "process-nextick-args": "~2.0.0", 780 | "safe-buffer": "~5.1.1", 781 | "string_decoder": "~1.1.1", 782 | "util-deprecate": "~1.0.1" 783 | } 784 | }, 785 | "remark-parse": { 786 | "version": "8.0.3", 787 | "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", 788 | "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", 789 | "requires": { 790 | "ccount": "^1.0.0", 791 | "collapse-white-space": "^1.0.2", 792 | "is-alphabetical": "^1.0.0", 793 | "is-decimal": "^1.0.0", 794 | "is-whitespace-character": "^1.0.0", 795 | "is-word-character": "^1.0.0", 796 | "markdown-escapes": "^1.0.0", 797 | "parse-entities": "^2.0.0", 798 | "repeat-string": "^1.5.4", 799 | "state-toggle": "^1.0.0", 800 | "trim": "0.0.1", 801 | "trim-trailing-lines": "^1.0.0", 802 | "unherit": "^1.0.4", 803 | "unist-util-remove-position": "^2.0.0", 804 | "vfile-location": "^3.0.0", 805 | "xtend": "^4.0.1" 806 | } 807 | }, 808 | "remark-stringify": { 809 | "version": "8.1.1", 810 | "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz", 811 | "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==", 812 | "requires": { 813 | "ccount": "^1.0.0", 814 | "is-alphanumeric": "^1.0.0", 815 | "is-decimal": "^1.0.0", 816 | "is-whitespace-character": "^1.0.0", 817 | "longest-streak": "^2.0.1", 818 | "markdown-escapes": "^1.0.0", 819 | "markdown-table": "^2.0.0", 820 | "mdast-util-compact": "^2.0.0", 821 | "parse-entities": "^2.0.0", 822 | "repeat-string": "^1.5.4", 823 | "state-toggle": "^1.0.0", 824 | "stringify-entities": "^3.0.0", 825 | "unherit": "^1.0.4", 826 | "xtend": "^4.0.1" 827 | } 828 | }, 829 | "repeat-string": { 830 | "version": "1.6.1", 831 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 832 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" 833 | }, 834 | "replace-ext": { 835 | "version": "1.0.0", 836 | "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", 837 | "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" 838 | }, 839 | "require-directory": { 840 | "version": "2.1.1", 841 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 842 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 843 | }, 844 | "require-main-filename": { 845 | "version": "2.0.0", 846 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 847 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" 848 | }, 849 | "safe-buffer": { 850 | "version": "5.1.2", 851 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 852 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 853 | }, 854 | "semver": { 855 | "version": "5.7.1", 856 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 857 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 858 | }, 859 | "set-blocking": { 860 | "version": "2.0.0", 861 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 862 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 863 | }, 864 | "signal-exit": { 865 | "version": "3.0.3", 866 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 867 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 868 | }, 869 | "simple-concat": { 870 | "version": "1.0.1", 871 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", 872 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" 873 | }, 874 | "simple-get": { 875 | "version": "3.1.0", 876 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", 877 | "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", 878 | "requires": { 879 | "decompress-response": "^4.2.0", 880 | "once": "^1.3.1", 881 | "simple-concat": "^1.0.0" 882 | } 883 | }, 884 | "sprintf-js": { 885 | "version": "1.0.3", 886 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 887 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" 888 | }, 889 | "state-toggle": { 890 | "version": "1.0.3", 891 | "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", 892 | "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" 893 | }, 894 | "string-width": { 895 | "version": "1.0.2", 896 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 897 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 898 | "requires": { 899 | "code-point-at": "^1.0.0", 900 | "is-fullwidth-code-point": "^1.0.0", 901 | "strip-ansi": "^3.0.0" 902 | } 903 | }, 904 | "string_decoder": { 905 | "version": "1.1.1", 906 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 907 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 908 | "requires": { 909 | "safe-buffer": "~5.1.0" 910 | } 911 | }, 912 | "stringify-entities": { 913 | "version": "3.0.1", 914 | "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.1.tgz", 915 | "integrity": "sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ==", 916 | "requires": { 917 | "character-entities-html4": "^1.0.0", 918 | "character-entities-legacy": "^1.0.0", 919 | "is-alphanumerical": "^1.0.0", 920 | "is-decimal": "^1.0.2", 921 | "is-hexadecimal": "^1.0.0" 922 | } 923 | }, 924 | "strip-ansi": { 925 | "version": "3.0.1", 926 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 927 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 928 | "requires": { 929 | "ansi-regex": "^2.0.0" 930 | } 931 | }, 932 | "strip-json-comments": { 933 | "version": "2.0.1", 934 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 935 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" 936 | }, 937 | "supports-color": { 938 | "version": "7.1.0", 939 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 940 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 941 | "requires": { 942 | "has-flag": "^4.0.0" 943 | } 944 | }, 945 | "tar": { 946 | "version": "4.4.10", 947 | "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", 948 | "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", 949 | "requires": { 950 | "chownr": "^1.1.1", 951 | "fs-minipass": "^1.2.5", 952 | "minipass": "^2.3.5", 953 | "minizlib": "^1.2.1", 954 | "mkdirp": "^0.5.0", 955 | "safe-buffer": "^5.1.2", 956 | "yallist": "^3.0.3" 957 | }, 958 | "dependencies": { 959 | "mkdirp": { 960 | "version": "0.5.5", 961 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 962 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 963 | "requires": { 964 | "minimist": "^1.2.5" 965 | } 966 | } 967 | } 968 | }, 969 | "tar-fs": { 970 | "version": "2.1.0", 971 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", 972 | "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", 973 | "requires": { 974 | "chownr": "^1.1.1", 975 | "mkdirp-classic": "^0.5.2", 976 | "pump": "^3.0.0", 977 | "tar-stream": "^2.0.0" 978 | } 979 | }, 980 | "tar-stream": { 981 | "version": "2.1.4", 982 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", 983 | "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", 984 | "requires": { 985 | "bl": "^4.0.3", 986 | "end-of-stream": "^1.4.1", 987 | "fs-constants": "^1.0.0", 988 | "inherits": "^2.0.3", 989 | "readable-stream": "^3.1.1" 990 | }, 991 | "dependencies": { 992 | "readable-stream": { 993 | "version": "3.6.0", 994 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 995 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 996 | "requires": { 997 | "inherits": "^2.0.3", 998 | "string_decoder": "^1.1.1", 999 | "util-deprecate": "^1.0.1" 1000 | } 1001 | } 1002 | } 1003 | }, 1004 | "trim": { 1005 | "version": "0.0.1", 1006 | "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", 1007 | "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" 1008 | }, 1009 | "trim-trailing-lines": { 1010 | "version": "1.1.3", 1011 | "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", 1012 | "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==" 1013 | }, 1014 | "trough": { 1015 | "version": "1.0.5", 1016 | "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", 1017 | "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" 1018 | }, 1019 | "tunnel-agent": { 1020 | "version": "0.6.0", 1021 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1022 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1023 | "requires": { 1024 | "safe-buffer": "^5.0.1" 1025 | } 1026 | }, 1027 | "unherit": { 1028 | "version": "1.1.3", 1029 | "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", 1030 | "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", 1031 | "requires": { 1032 | "inherits": "^2.0.0", 1033 | "xtend": "^4.0.0" 1034 | } 1035 | }, 1036 | "unified": { 1037 | "version": "9.2.0", 1038 | "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", 1039 | "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", 1040 | "requires": { 1041 | "bail": "^1.0.0", 1042 | "extend": "^3.0.0", 1043 | "is-buffer": "^2.0.0", 1044 | "is-plain-obj": "^2.0.0", 1045 | "trough": "^1.0.0", 1046 | "vfile": "^4.0.0" 1047 | }, 1048 | "dependencies": { 1049 | "is-buffer": { 1050 | "version": "2.0.4", 1051 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", 1052 | "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" 1053 | } 1054 | } 1055 | }, 1056 | "unist-util-is": { 1057 | "version": "4.0.2", 1058 | "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", 1059 | "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" 1060 | }, 1061 | "unist-util-map": { 1062 | "version": "2.0.1", 1063 | "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-2.0.1.tgz", 1064 | "integrity": "sha512-VdNvk4BQUUU9Rgr8iUOvclHa/iN9O+6Dt66FKij8l9OVezGG37gGWCPU5KSax1R2degqXFvl3kWTkvzL79e9tQ==", 1065 | "requires": { 1066 | "@types/mdast": "^3.0.0", 1067 | "object-assign": "^4.0.0" 1068 | } 1069 | }, 1070 | "unist-util-remove-position": { 1071 | "version": "2.0.1", 1072 | "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", 1073 | "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", 1074 | "requires": { 1075 | "unist-util-visit": "^2.0.0" 1076 | } 1077 | }, 1078 | "unist-util-stringify-position": { 1079 | "version": "2.0.3", 1080 | "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", 1081 | "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", 1082 | "requires": { 1083 | "@types/unist": "^2.0.2" 1084 | } 1085 | }, 1086 | "unist-util-visit": { 1087 | "version": "2.0.3", 1088 | "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", 1089 | "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", 1090 | "requires": { 1091 | "@types/unist": "^2.0.0", 1092 | "unist-util-is": "^4.0.0", 1093 | "unist-util-visit-parents": "^3.0.0" 1094 | } 1095 | }, 1096 | "unist-util-visit-parents": { 1097 | "version": "3.1.0", 1098 | "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz", 1099 | "integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==", 1100 | "requires": { 1101 | "@types/unist": "^2.0.0", 1102 | "unist-util-is": "^4.0.0" 1103 | } 1104 | }, 1105 | "util-deprecate": { 1106 | "version": "1.0.2", 1107 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1108 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1109 | }, 1110 | "vfile": { 1111 | "version": "4.2.0", 1112 | "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz", 1113 | "integrity": "sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==", 1114 | "requires": { 1115 | "@types/unist": "^2.0.0", 1116 | "is-buffer": "^2.0.0", 1117 | "replace-ext": "1.0.0", 1118 | "unist-util-stringify-position": "^2.0.0", 1119 | "vfile-message": "^2.0.0" 1120 | }, 1121 | "dependencies": { 1122 | "is-buffer": { 1123 | "version": "2.0.4", 1124 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", 1125 | "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" 1126 | } 1127 | } 1128 | }, 1129 | "vfile-location": { 1130 | "version": "3.1.0", 1131 | "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz", 1132 | "integrity": "sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==" 1133 | }, 1134 | "vfile-message": { 1135 | "version": "2.0.4", 1136 | "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", 1137 | "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", 1138 | "requires": { 1139 | "@types/unist": "^2.0.0", 1140 | "unist-util-stringify-position": "^2.0.0" 1141 | } 1142 | }, 1143 | "which-module": { 1144 | "version": "2.0.0", 1145 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 1146 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 1147 | }, 1148 | "which-pm-runs": { 1149 | "version": "1.0.0", 1150 | "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", 1151 | "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" 1152 | }, 1153 | "wide-align": { 1154 | "version": "1.1.3", 1155 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 1156 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 1157 | "requires": { 1158 | "string-width": "^1.0.2 || 2" 1159 | } 1160 | }, 1161 | "wrap-ansi": { 1162 | "version": "6.2.0", 1163 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 1164 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 1165 | "requires": { 1166 | "ansi-styles": "^4.0.0", 1167 | "string-width": "^4.1.0", 1168 | "strip-ansi": "^6.0.0" 1169 | }, 1170 | "dependencies": { 1171 | "ansi-regex": { 1172 | "version": "5.0.0", 1173 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1174 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 1175 | }, 1176 | "is-fullwidth-code-point": { 1177 | "version": "3.0.0", 1178 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1179 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1180 | }, 1181 | "string-width": { 1182 | "version": "4.2.0", 1183 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 1184 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 1185 | "requires": { 1186 | "emoji-regex": "^8.0.0", 1187 | "is-fullwidth-code-point": "^3.0.0", 1188 | "strip-ansi": "^6.0.0" 1189 | } 1190 | }, 1191 | "strip-ansi": { 1192 | "version": "6.0.0", 1193 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1194 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1195 | "requires": { 1196 | "ansi-regex": "^5.0.0" 1197 | } 1198 | } 1199 | } 1200 | }, 1201 | "wrappy": { 1202 | "version": "1.0.2", 1203 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1204 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1205 | }, 1206 | "xtend": { 1207 | "version": "4.0.2", 1208 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1209 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" 1210 | }, 1211 | "y18n": { 1212 | "version": "4.0.0", 1213 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 1214 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" 1215 | }, 1216 | "yallist": { 1217 | "version": "3.1.1", 1218 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 1219 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 1220 | }, 1221 | "yargs": { 1222 | "version": "15.4.1", 1223 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", 1224 | "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", 1225 | "requires": { 1226 | "cliui": "^6.0.0", 1227 | "decamelize": "^1.2.0", 1228 | "find-up": "^4.1.0", 1229 | "get-caller-file": "^2.0.1", 1230 | "require-directory": "^2.1.1", 1231 | "require-main-filename": "^2.0.0", 1232 | "set-blocking": "^2.0.0", 1233 | "string-width": "^4.2.0", 1234 | "which-module": "^2.0.0", 1235 | "y18n": "^4.0.0", 1236 | "yargs-parser": "^18.1.2" 1237 | }, 1238 | "dependencies": { 1239 | "ansi-regex": { 1240 | "version": "5.0.0", 1241 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1242 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 1243 | }, 1244 | "is-fullwidth-code-point": { 1245 | "version": "3.0.0", 1246 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1247 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1248 | }, 1249 | "string-width": { 1250 | "version": "4.2.0", 1251 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 1252 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 1253 | "requires": { 1254 | "emoji-regex": "^8.0.0", 1255 | "is-fullwidth-code-point": "^3.0.0", 1256 | "strip-ansi": "^6.0.0" 1257 | } 1258 | }, 1259 | "strip-ansi": { 1260 | "version": "6.0.0", 1261 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1262 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1263 | "requires": { 1264 | "ansi-regex": "^5.0.0" 1265 | } 1266 | } 1267 | } 1268 | }, 1269 | "yargs-parser": { 1270 | "version": "18.1.3", 1271 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 1272 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 1273 | "requires": { 1274 | "camelcase": "^5.0.0", 1275 | "decamelize": "^1.2.0" 1276 | } 1277 | } 1278 | } 1279 | } 1280 | --------------------------------------------------------------------------------