diff --git a/extension.js b/extension.js
index 23978ef..9f219eb 100644
--- a/extension.js
+++ b/extension.js
@@ -1,878 +1,884 @@
-'use strict';
-var vscode = require('vscode');
-var path = require('path');
-var fs = require('fs');
-var url = require('url');
-var os = require('os');
-var INSTALL_CHECK = false;
-
-function activate(context) {
- init();
-
- var commands = [
- vscode.commands.registerCommand('extension.markdown-pdf.settings', async function () { await markdownPdf('settings'); }),
- vscode.commands.registerCommand('extension.markdown-pdf.pdf', async function () { await markdownPdf('pdf'); }),
- vscode.commands.registerCommand('extension.markdown-pdf.html', async function () { await markdownPdf('html'); }),
- vscode.commands.registerCommand('extension.markdown-pdf.png', async function () { await markdownPdf('png'); }),
- vscode.commands.registerCommand('extension.markdown-pdf.jpeg', async function () { await markdownPdf('jpeg'); }),
- vscode.commands.registerCommand('extension.markdown-pdf.all', async function () { await markdownPdf('all'); })
- ];
- commands.forEach(function (command) {
- context.subscriptions.push(command);
- });
-
- var isConvertOnSave = vscode.workspace.getConfiguration('markdown-pdf')['convertOnSave'];
- if (isConvertOnSave) {
- var disposable_onsave = vscode.workspace.onDidSaveTextDocument(function () { markdownPdfOnSave(); });
- context.subscriptions.push(disposable_onsave);
- }
-}
-exports.activate = activate;
-
-// this method is called when your extension is deactivated
-function deactivate() {
-}
-exports.deactivate = deactivate;
-
-async function markdownPdf(option_type) {
-
- try {
-
- // check active window
- var editor = vscode.window.activeTextEditor;
- if (!editor) {
- vscode.window.showWarningMessage('No active Editor!');
- return;
- }
-
- // check markdown mode
- var mode = editor.document.languageId;
- if (mode != 'markdown') {
- vscode.window.showWarningMessage('It is not a markdown mode!');
- return;
- }
-
- var uri = editor.document.uri;
- var mdfilename = uri.fsPath;
- var ext = path.extname(mdfilename);
- if (!isExistsPath(mdfilename)) {
- if (editor.document.isUntitled) {
- vscode.window.showWarningMessage('Please save the file!');
- return;
- }
- vscode.window.showWarningMessage('File name does not get!');
- return;
- }
-
- var types_format = ['html', 'pdf', 'png', 'jpeg'];
- var filename = '';
- var types = [];
- if (types_format.indexOf(option_type) >= 0) {
- types[0] = option_type;
- } else if (option_type === 'settings') {
- var types_tmp = vscode.workspace.getConfiguration('markdown-pdf')['type'] || 'pdf';
- if (types_tmp && !Array.isArray(types_tmp)) {
- types[0] = types_tmp;
- } else {
- types = vscode.workspace.getConfiguration('markdown-pdf')['type'] || 'pdf';
- }
- } else if (option_type === 'all') {
- types = types_format;
- } else {
- showErrorMessage('markdownPdf().1 Supported formats: html, pdf, png, jpeg.');
- return;
- }
-
- // convert and export markdown to pdf, html, png, jpeg
- if (types && Array.isArray(types) && types.length > 0) {
- for (var i = 0; i < types.length; i++) {
- var type = types[i];
- if (types_format.indexOf(type) >= 0) {
- filename = mdfilename.replace(ext, '.' + type);
- var text = editor.document.getText();
- var content = convertMarkdownToHtml(mdfilename, type, text);
- var html = makeHtml(content, uri);
- await exportPdf(html, filename, type, uri);
- } else {
- showErrorMessage('markdownPdf().2 Supported formats: html, pdf, png, jpeg.');
- return;
- }
- }
- } else {
- showErrorMessage('markdownPdf().3 Supported formats: html, pdf, png, jpeg.');
- return;
- }
- } catch (error) {
- showErrorMessage('markdownPdf()', error);
- }
-}
-
-function markdownPdfOnSave() {
- try {
- var editor = vscode.window.activeTextEditor;
- var mode = editor.document.languageId;
- if (mode != 'markdown') {
- return;
- }
- if (!isMarkdownPdfOnSaveExclude()) {
- markdownPdf('settings');
- }
- } catch (error) {
- showErrorMessage('markdownPdfOnSave()', error);
- }
-}
-
-function isMarkdownPdfOnSaveExclude() {
- try{
- var editor = vscode.window.activeTextEditor;
- var filename = path.basename(editor.document.fileName);
- var patterns = vscode.workspace.getConfiguration('markdown-pdf')['convertOnSaveExclude'] || '';
- var pattern;
- var i;
- if (patterns && Array.isArray(patterns) && patterns.length > 0) {
- for (i = 0; i < patterns.length; i++) {
- pattern = patterns[i];
- var re = new RegExp(pattern);
- if (re.test(filename)) {
- return true;
- }
- }
- }
- return false;
- } catch (error) {
- showErrorMessage('isMarkdownPdfOnSaveExclude()', error);
- }
-}
-
-/*
- * convert markdown to html (markdown-it)
- */
-function convertMarkdownToHtml(filename, type, text) {
- var grayMatter = require("gray-matter");
- var matterParts = grayMatter(text);
-
- try {
- try {
- var statusbarmessage = vscode.window.setStatusBarMessage('$(markdown) Converting (convertMarkdownToHtml) ...');
- var hljs = require('highlight.js');
- var breaks = setBooleanValue(matterParts.data.breaks, vscode.workspace.getConfiguration('markdown-pdf')['breaks']);
- var md = require('markdown-it')({
- html: true,
- breaks: breaks,
- highlight: function (str, lang) {
-
- if (lang && lang.match(/\bmermaid\b/i)) {
- return `
${str}
`;
- }
-
- if (lang && hljs.getLanguage(lang)) {
- try {
- str = hljs.highlight(lang, str, true).value;
- } catch (error) {
- str = md.utils.escapeHtml(str);
-
- showErrorMessage('markdown-it:highlight', error);
- }
- } else {
- str = md.utils.escapeHtml(str);
- }
- return '' + str + '
';
- }
- });
- } catch (error) {
- statusbarmessage.dispose();
- showErrorMessage('require(\'markdown-it\')', error);
- }
-
- // convert the img src of the markdown
- var cheerio = require('cheerio');
- var defaultRender = md.renderer.rules.image;
- md.renderer.rules.image = function (tokens, idx, options, env, self) {
- var token = tokens[idx];
- var href = token.attrs[token.attrIndex('src')][1];
- // console.log("original href: " + href);
- if (type === 'html') {
- href = decodeURIComponent(href).replace(/("|')/g, '');
- } else {
- href = convertImgPath(href, filename);
- }
- // console.log("converted href: " + href);
- token.attrs[token.attrIndex('src')][1] = href;
- // // pass token to default renderer.
- return defaultRender(tokens, idx, options, env, self);
- };
-
- if (type !== 'html') {
- // convert the img src of the html
- md.renderer.rules.html_block = function (tokens, idx) {
- var html = tokens[idx].content;
- var $ = cheerio.load(html);
- $('img').each(function () {
- var src = $(this).attr('src');
- var href = convertImgPath(src, filename);
- $(this).attr('src', href);
- });
- return $.html();
- };
- }
-
- // checkbox
- md.use(require('markdown-it-checkbox'));
-
- // emoji
- var emoji_f = setBooleanValue(matterParts.data.emoji, vscode.workspace.getConfiguration('markdown-pdf')['emoji']);
- if (emoji_f) {
- var emojies_defs = require(path.join(__dirname, 'data', 'emoji.json'));
- try {
- var options = {
- defs: emojies_defs
- };
- } catch (error) {
- statusbarmessage.dispose();
- showErrorMessage('markdown-it-emoji:options', error);
- }
- md.use(require('markdown-it-emoji'), options);
- md.renderer.rules.emoji = function (token, idx) {
- var emoji = token[idx].markup;
- var emojipath = path.join(__dirname, 'node_modules', 'emoji-images', 'pngs', emoji + '.png');
- var emojidata = readFile(emojipath, null).toString('base64');
- if (emojidata) {
- return '
';
- } else {
- return ':' + emoji + ':';
- }
- };
- }
-
- // toc
- // https://github.com/leff/markdown-it-named-headers
- var options = {
- slugify: Slug
- }
- md.use(require('markdown-it-named-headers'), options);
-
- // markdown-it-container
- // https://github.com/markdown-it/markdown-it-container
- md.use(require('markdown-it-container'), '', {
- validate: function (name) {
- return name.trim().length;
- },
- render: function (tokens, idx) {
- if (tokens[idx].info.trim() !== '') {
- return `\n`;
- } else {
- return `
\n`;
- }
- }
- });
-
- // PlantUML
- // https://github.com/gmunguia/markdown-it-plantuml
- var plantumlOptions = {
- openMarker: matterParts.data.plantumlOpenMarker || vscode.workspace.getConfiguration('markdown-pdf')['plantumlOpenMarker'] || '@startuml',
- closeMarker: matterParts.data.plantumlCloseMarker || vscode.workspace.getConfiguration('markdown-pdf')['plantumlCloseMarker'] || '@enduml',
- server: vscode.workspace.getConfiguration('markdown-pdf')['plantumlServer'] || ''
- }
- md.use(require('markdown-it-plantuml'), plantumlOptions);
-
- // markdown-it-include
- // https://github.com/camelaissani/markdown-it-include
- // the syntax is :[alt-text](relative-path-to-file.md)
- // https://talk.commonmark.org/t/transclusion-or-including-sub-documents-for-reuse/270/13
- if (vscode.workspace.getConfiguration('markdown-pdf')['markdown-it-include']['enable']) {
- md.use(require("markdown-it-include"), {
- root: path.dirname(filename),
- includeRe: /:\[.+\]\((.+\..+)\)/i
- });
- }
-
- statusbarmessage.dispose();
- return md.render(matterParts.content);
-
- } catch (error) {
- statusbarmessage.dispose();
- showErrorMessage('convertMarkdownToHtml()', error);
- }
-}
-
-/*
- * https://github.com/microsoft/vscode/blob/ca4ceeb87d4ff935c52a7af0671ed9779657e7bd/extensions/markdown-language-features/src/slugify.ts#L26
- */
-function Slug(string) {
- try {
- var stg = encodeURI(
- string.trim()
- .toLowerCase()
- .replace(/\s+/g, '-') // Replace whitespace with -
- .replace(/[\]\[\!\'\#\$\%\&\(\)\*\+\,\.\/\:\;\<\=\>\?\@\\\^\_\{\|\}\~\`。,、;:?!…—·ˉ¨‘’“”々~‖∶"'`|〃〔〕〈〉《》「」『』.〖〗【】()[]{}]/g, '') // Remove known punctuators
- .replace(/^\-+/, '') // Remove leading -
- .replace(/\-+$/, '') // Remove trailing -
- );
- return stg;
- } catch (error) {
- showErrorMessage('Slug()', error);
- }
-}
-
-/*
- * make html
- */
-function makeHtml(data, uri) {
- try {
- // read styles
- var style = '';
- style += readStyles(uri);
-
- // get title
- var title = path.basename(uri.fsPath);
-
- // read template
- var filename = path.join(__dirname, 'template', 'template.html');
- var template = readFile(filename);
-
- // read mermaid javascripts
- var mermaidServer = vscode.workspace.getConfiguration('markdown-pdf')['mermaidServer'] || '';
- var mermaid = '';
-
- // compile template
- var mustache = require('mustache');
-
- var view = {
- title: title,
- style: style,
- content: data,
- mermaid: mermaid
- };
- return mustache.render(template, view);
- } catch (error) {
- showErrorMessage('makeHtml()', error);
- }
-}
-
-/*
- * export a html to a html file
- */
-function exportHtml(data, filename) {
- fs.writeFile(filename, data, 'utf-8', function (error) {
- if (error) {
- showErrorMessage('exportHtml()', error);
- return;
- }
- });
-}
-
-/*
- * export a html to a pdf file (html-pdf)
- */
-function exportPdf(data, filename, type, uri) {
-
- if (!INSTALL_CHECK) {
- return;
- }
- if (!checkPuppeteerBinary()) {
- showErrorMessage('Chromium or Chrome does not exist! \
- See https://github.com/yzane/vscode-markdown-pdf#install');
- return;
- }
-
- var StatusbarMessageTimeout = vscode.workspace.getConfiguration('markdown-pdf')['StatusbarMessageTimeout'];
- vscode.window.setStatusBarMessage('');
- var exportFilename = getOutputDir(filename, uri);
-
- return vscode.window.withProgress({
- location: vscode.ProgressLocation.Notification,
- title: '[Markdown PDF]: Exporting (' + type + ') ...'
- }, async () => {
- try {
- // export html
- if (type == 'html') {
- exportHtml(data, exportFilename);
- vscode.window.setStatusBarMessage('$(markdown) ' + exportFilename, StatusbarMessageTimeout);
- return;
- }
-
- const puppeteer = require('puppeteer-core');
- // create temporary file
- var f = path.parse(filename);
- var tmpfilename = path.join(f.dir, f.name + '_tmp.html');
- exportHtml(data, tmpfilename);
- var options = {
- executablePath: vscode.workspace.getConfiguration('markdown-pdf')['executablePath'] || puppeteer.executablePath(),
- args: ['--lang='+vscode.env.language, '--no-sandbox', '--disable-setuid-sandbox']
- // Setting Up Chrome Linux Sandbox
- // https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md#setting-up-chrome-linux-sandbox
- };
- const browser = await puppeteer.launch(options);
- const page = await browser.newPage();
- await page.goto(vscode.Uri.file(tmpfilename).toString(), { waitUntil: 'networkidle0' });
- // generate pdf
- // https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepdfoptions
- if (type == 'pdf') {
- // If width or height option is set, it overrides the format option.
- // In order to set the default value of page size to A4, we changed it from the specification of puppeteer.
- var width_option = vscode.workspace.getConfiguration('markdown-pdf', uri)['width'] || '';
- var height_option = vscode.workspace.getConfiguration('markdown-pdf', uri)['height'] || '';
- var format_option = '';
- if (!width_option && !height_option) {
- format_option = vscode.workspace.getConfiguration('markdown-pdf', uri)['format'] || 'A4';
- }
- var landscape_option;
- if (vscode.workspace.getConfiguration('markdown-pdf', uri)['orientation'] == 'landscape') {
- landscape_option = true;
- } else {
- landscape_option = false;
- }
- var options = {
- path: exportFilename,
- scale: vscode.workspace.getConfiguration('markdown-pdf', uri)['scale'],
- displayHeaderFooter: vscode.workspace.getConfiguration('markdown-pdf', uri)['displayHeaderFooter'],
- headerTemplate: vscode.workspace.getConfiguration('markdown-pdf', uri)['headerTemplate'] || '',
- footerTemplate: vscode.workspace.getConfiguration('markdown-pdf', uri)['footerTemplate'] || '',
- printBackground: vscode.workspace.getConfiguration('markdown-pdf', uri)['printBackground'],
- landscape: landscape_option,
- pageRanges: vscode.workspace.getConfiguration('markdown-pdf', uri)['pageRanges'] || '',
- format: format_option,
- width: vscode.workspace.getConfiguration('markdown-pdf', uri)['width'] || '',
- height: vscode.workspace.getConfiguration('markdown-pdf', uri)['height'] || '',
- margin: {
- top: vscode.workspace.getConfiguration('markdown-pdf', uri)['margin']['top'] || '',
- right: vscode.workspace.getConfiguration('markdown-pdf', uri)['margin']['right'] || '',
- bottom: vscode.workspace.getConfiguration('markdown-pdf', uri)['margin']['bottom'] || '',
- left: vscode.workspace.getConfiguration('markdown-pdf', uri)['margin']['left'] || ''
- }
- }
- await page.pdf(options);
- }
-
- // generate png and jpeg
- // https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagescreenshotoptions
- if (type == 'png' || type == 'jpeg') {
- // Quality options do not apply to PNG images.
- var quality_option;
- if (type == 'png') {
- quality_option = undefined;
- }
- if (type == 'jpeg') {
- quality_option = vscode.workspace.getConfiguration('markdown-pdf')['quality'] || 100;
- }
-
- // screenshot size
- var clip_x_option = vscode.workspace.getConfiguration('markdown-pdf')['clip']['x'] || null;
- var clip_y_option = vscode.workspace.getConfiguration('markdown-pdf')['clip']['y'] || null;
- var clip_width_option = vscode.workspace.getConfiguration('markdown-pdf')['clip']['width'] || null;
- var clip_height_option = vscode.workspace.getConfiguration('markdown-pdf')['clip']['height'] || null;
- var options;
- if (clip_x_option !== null && clip_y_option !== null && clip_width_option !== null && clip_height_option !== null) {
- options = {
- path: exportFilename,
- quality: quality_option,
- fullPage: false,
- clip: {
- x: clip_x_option,
- y: clip_y_option,
- width: clip_width_option,
- height: clip_height_option,
- },
- omitBackground: vscode.workspace.getConfiguration('markdown-pdf')['omitBackground'],
- }
- } else {
- options = {
- path: exportFilename,
- quality: quality_option,
- fullPage: true,
- omitBackground: vscode.workspace.getConfiguration('markdown-pdf')['omitBackground'],
- }
- }
- await page.screenshot(options);
- }
-
- await browser.close();
-
- // delete temporary file
- var debug = vscode.workspace.getConfiguration('markdown-pdf')['debug'] || false;
- if (!debug) {
- if (isExistsPath(tmpfilename)) {
- deleteFile(tmpfilename);
- }
- }
-
- vscode.window.setStatusBarMessage('$(markdown) ' + exportFilename, StatusbarMessageTimeout);
- } catch (error) {
- showErrorMessage('exportPdf()', error);
- }
- } // async
- ); // vscode.window.withProgress
-}
-
-function isExistsPath(path) {
- if (path.length === 0) {
- return false;
- }
- try {
- fs.accessSync(path);
- return true;
- } catch (error) {
- console.warn(error.message);
- return false;
- }
-}
-
-function isExistsDir(dirname) {
- if (dirname.length === 0) {
- return false;
- }
- try {
- if (fs.statSync(dirname).isDirectory()) {
- return true;
- } else {
- console.warn('Directory does not exist!') ;
- return false;
- }
- } catch (error) {
- console.warn(error.message);
- return false;
- }
-}
-
-function deleteFile (path) {
- var rimraf = require('rimraf')
- rimraf.sync(path);
-}
-
-function getOutputDir(filename, resource) {
- try {
- var outputDir;
- if (resource === undefined) {
- return filename;
- }
- var outputDirectory = vscode.workspace.getConfiguration('markdown-pdf')['outputDirectory'] || '';
- if (outputDirectory.length === 0) {
- return filename;
- }
-
- // Use a home directory relative path If it starts with ~.
- if (outputDirectory.indexOf('~') === 0) {
- outputDir = outputDirectory.replace(/^~/, os.homedir());
- mkdir(outputDir);
- return path.join(outputDir, path.basename(filename));
- }
-
- // Use path if it is absolute
- if (path.isAbsolute(outputDirectory)) {
- if (!isExistsDir(outputDirectory)) {
- showErrorMessage(`The output directory specified by the markdown-pdf.outputDirectory option does not exist.\
- Check the markdown-pdf.outputDirectory option. ` + outputDirectory);
- return;
- }
- return path.join(outputDirectory, path.basename(filename));
- }
-
- // Use a workspace relative path if there is a workspace and markdown-pdf.outputDirectoryRootPath = workspace
- var outputDirectoryRelativePathFile = vscode.workspace.getConfiguration('markdown-pdf')['outputDirectoryRelativePathFile'];
- let root = vscode.workspace.getWorkspaceFolder(resource);
- if (outputDirectoryRelativePathFile === false && root) {
- outputDir = path.join(root.uri.fsPath, outputDirectory);
- mkdir(outputDir);
- return path.join(outputDir, path.basename(filename));
- }
-
- // Otherwise look relative to the markdown file
- outputDir = path.join(path.dirname(resource.fsPath), outputDirectory);
- mkdir(outputDir);
- return path.join(outputDir, path.basename(filename));
- } catch (error) {
- showErrorMessage('getOutputDir()', error);
- }
-}
-
-function mkdir(path) {
- if (isExistsDir(path)) {
- return;
- }
- var mkdirp = require('mkdirp');
- return mkdirp.sync(path);
-}
-
-function readFile(filename, encode) {
- if (filename.length === 0) {
- return '';
- }
- if (!encode && encode !== null) {
- encode = 'utf-8';
- }
- if (filename.indexOf('file://') === 0) {
- if (process.platform === 'win32') {
- filename = filename.replace(/^file:\/\/\//, '')
- .replace(/^file:\/\//, '');
- } else {
- filename = filename.replace(/^file:\/\//, '');
- }
- }
- if (isExistsPath(filename)) {
- return fs.readFileSync(filename, encode);
- } else {
- return '';
- }
-}
-
-function convertImgPath(src, filename) {
- try {
- var href = decodeURIComponent(src);
- href = href.replace(/("|')/g, '')
- .replace(/\\/g, '/')
- .replace(/#/g, '%23');
- var protocol = url.parse(href).protocol;
- if (protocol === 'file:' && href.indexOf('file:///') !==0) {
- return href.replace(/^file:\/\//, 'file:///');
- } else if (protocol === 'file:') {
- return href;
- } else if (!protocol || path.isAbsolute(href)) {
- href = path.resolve(path.dirname(filename), href).replace(/\\/g, '/')
- .replace(/#/g, '%23');
- if (href.indexOf('//') === 0) {
- return 'file:' + href;
- } else if (href.indexOf('/') === 0) {
- return 'file://' + href;
- } else {
- return 'file:///' + href;
- }
- } else {
- return src;
- }
- } catch (error) {
- showErrorMessage('convertImgPath()', error);
- }
-}
-
-function makeCss(filename) {
- try {
- var css = readFile(filename);
- if (css) {
- return '\n\n';
- } else {
- return '';
- }
- } catch (error) {
- showErrorMessage('makeCss()', error);
- }
-}
-
-function readStyles(uri) {
- try {
- var includeDefaultStyles;
- var style = '';
- var styles = '';
- var filename = '';
- var i;
-
- includeDefaultStyles = vscode.workspace.getConfiguration('markdown-pdf')['includeDefaultStyles'];
-
- // 1. read the style of the vscode.
- if (includeDefaultStyles) {
- filename = path.join(__dirname, 'styles', 'markdown.css');
- style += makeCss(filename);
- }
-
- // 2. read the style of the markdown.styles setting.
- if (includeDefaultStyles) {
- styles = vscode.workspace.getConfiguration('markdown')['styles'];
- if (styles && Array.isArray(styles) && styles.length > 0) {
- for (i = 0; i < styles.length; i++) {
- var href = fixHref(uri, styles[i]);
- style += '';
- }
- }
- }
-
- // 3. read the style of the highlight.js.
- var highlightStyle = vscode.workspace.getConfiguration('markdown-pdf')['highlightStyle'] || '';
- var ishighlight = vscode.workspace.getConfiguration('markdown-pdf')['highlight'];
- if (ishighlight) {
- if (highlightStyle) {
- var css = vscode.workspace.getConfiguration('markdown-pdf')['highlightStyle'] || 'github.css';
- filename = path.join(__dirname, 'node_modules', 'highlight.js', 'styles', css);
- style += makeCss(filename);
- } else {
- filename = path.join(__dirname, 'styles', 'tomorrow.css');
- style += makeCss(filename);
- }
- }
-
- // 4. read the style of the markdown-pdf.
- if (includeDefaultStyles) {
- filename = path.join(__dirname, 'styles', 'markdown-pdf.css');
- style += makeCss(filename);
- }
-
- // 5. read the style of the markdown-pdf.styles settings.
- styles = vscode.workspace.getConfiguration('markdown-pdf')['styles'] || '';
- if (styles && Array.isArray(styles) && styles.length > 0) {
- for (i = 0; i < styles.length; i++) {
- var href = fixHref(uri, styles[i]);
- style += '';
- }
- }
-
- return style;
- } catch (error) {
- showErrorMessage('readStyles()', error);
- }
-}
-
-/*
- * vscode/extensions/markdown-language-features/src/features/previewContentProvider.ts fixHref()
- * https://github.com/Microsoft/vscode/blob/0c47c04e85bc604288a288422f0a7db69302a323/extensions/markdown-language-features/src/features/previewContentProvider.ts#L95
- *
- * Extension Authoring: Adopting Multi Root Workspace APIs ?E Microsoft/vscode Wiki
- * https://github.com/Microsoft/vscode/wiki/Extension-Authoring:-Adopting-Multi-Root-Workspace-APIs
- */
-function fixHref(resource, href) {
- try {
- if (!href) {
- return href;
- }
-
- // Use href if it is already an URL
- const hrefUri = vscode.Uri.parse(href);
- if (['http', 'https'].indexOf(hrefUri.scheme) >= 0) {
- return hrefUri.toString();
- }
-
- // Use a home directory relative path If it starts with ^.
- if (href.indexOf('~') === 0) {
- return vscode.Uri.file(href.replace(/^~/, os.homedir())).toString();
- }
-
- // Use href as file URI if it is absolute
- if (path.isAbsolute(href)) {
- return vscode.Uri.file(href).toString();
- }
-
- // Use a workspace relative path if there is a workspace and markdown-pdf.stylesRelativePathFile is false
- var stylesRelativePathFile = vscode.workspace.getConfiguration('markdown-pdf')['stylesRelativePathFile'];
- let root = vscode.workspace.getWorkspaceFolder(resource);
- if (stylesRelativePathFile === false && root) {
- return vscode.Uri.file(path.join(root.uri.fsPath, href)).toString();
- }
-
- // Otherwise look relative to the markdown file
- return vscode.Uri.file(path.join(path.dirname(resource.fsPath), href)).toString();
- } catch (error) {
- showErrorMessage('fixHref()', error);
- }
-}
-
-function checkPuppeteerBinary() {
- try {
- // settings.json
- var executablePath = vscode.workspace.getConfiguration('markdown-pdf')['executablePath'] || ''
- if (isExistsPath(executablePath)) {
- INSTALL_CHECK = true;
- return true;
- }
-
- // bundled Chromium
- const puppeteer = require('puppeteer-core');
- executablePath = puppeteer.executablePath();
- if (isExistsPath(executablePath)) {
- return true;
- } else {
- return false;
- }
- } catch (error) {
- showErrorMessage('checkPuppeteerBinary()', error);
- }
-}
-
-/*
- * puppeteer install.js
- * https://github.com/GoogleChrome/puppeteer/blob/master/install.js
- */
-function installChromium() {
- try {
- vscode.window.showInformationMessage('[Markdown PDF] Installing Chromium ...');
- var statusbarmessage = vscode.window.setStatusBarMessage('$(markdown) Installing Chromium ...');
-
- // proxy setting
- setProxy();
-
- var StatusbarMessageTimeout = vscode.workspace.getConfiguration('markdown-pdf')['StatusbarMessageTimeout'];
- const puppeteer = require('puppeteer-core');
- const browserFetcher = puppeteer.createBrowserFetcher();
- const revision = require(path.join(__dirname, 'node_modules', 'puppeteer-core', 'package.json')).puppeteer.chromium_revision;
- const revisionInfo = browserFetcher.revisionInfo(revision);
-
- // download Chromium
- browserFetcher.download(revisionInfo.revision, onProgress)
- .then(() => browserFetcher.localRevisions())
- .then(onSuccess)
- .catch(onError);
-
- function onSuccess(localRevisions) {
- console.log('Chromium downloaded to ' + revisionInfo.folderPath);
- localRevisions = localRevisions.filter(revision => revision !== revisionInfo.revision);
- // Remove previous chromium revisions.
- const cleanupOldVersions = localRevisions.map(revision => browserFetcher.remove(revision));
-
- if (checkPuppeteerBinary()) {
- INSTALL_CHECK = true;
- statusbarmessage.dispose();
- vscode.window.setStatusBarMessage('$(markdown) Chromium installation succeeded!', StatusbarMessageTimeout);
- vscode.window.showInformationMessage('[Markdown PDF] Chromium installation succeeded.');
- return Promise.all(cleanupOldVersions);
- }
- }
-
- function onError(error) {
- statusbarmessage.dispose();
- vscode.window.setStatusBarMessage('$(markdown) ERROR: Failed to download Chromium!', StatusbarMessageTimeout);
- showErrorMessage('Failed to download Chromium! \
- If you are behind a proxy, set the http.proxy option to settings.json and restart Visual Studio Code. \
- See https://github.com/yzane/vscode-markdown-pdf#install', error);
- }
-
- function onProgress(downloadedBytes, totalBytes) {
- var progress = parseInt(downloadedBytes / totalBytes * 100);
- vscode.window.setStatusBarMessage('$(markdown) Installing Chromium ' + progress + '%' , StatusbarMessageTimeout);
- }
- } catch (error) {
- showErrorMessage('installChromium()', error);
- }
-}
-
-function showErrorMessage(msg, error) {
- vscode.window.showErrorMessage('ERROR: ' + msg);
- console.log('ERROR: ' + msg);
- if (error) {
- vscode.window.showErrorMessage(error.toString());
- console.log(error);
- }
-}
-
-function setProxy() {
- var https_proxy = vscode.workspace.getConfiguration('http')['proxy'] || '';
- if (https_proxy) {
- process.env.HTTPS_PROXY = https_proxy;
- process.env.HTTP_PROXY = https_proxy;
- }
-}
-
-function setBooleanValue(a, b) {
- if (a === false) {
- return false
- } else {
- return a || b
- }
-}
-
-function init() {
- try {
- if (checkPuppeteerBinary()) {
- INSTALL_CHECK = true;
- } else {
- installChromium();
- }
- } catch (error) {
- showErrorMessage('init()', error);
- }
-}
+'use strict';
+var vscode = require('vscode');
+var path = require('path');
+var fs = require('fs');
+var url = require('url');
+var os = require('os');
+var INSTALL_CHECK = false;
+
+function activate(context) {
+ init();
+
+ var commands = [
+ vscode.commands.registerCommand('extension.markdown-pdf.settings', async function () { await markdownPdf('settings'); }),
+ vscode.commands.registerCommand('extension.markdown-pdf.pdf', async function () { await markdownPdf('pdf'); }),
+ vscode.commands.registerCommand('extension.markdown-pdf.html', async function () { await markdownPdf('html'); }),
+ vscode.commands.registerCommand('extension.markdown-pdf.png', async function () { await markdownPdf('png'); }),
+ vscode.commands.registerCommand('extension.markdown-pdf.jpeg', async function () { await markdownPdf('jpeg'); }),
+ vscode.commands.registerCommand('extension.markdown-pdf.all', async function () { await markdownPdf('all'); })
+ ];
+ commands.forEach(function (command) {
+ context.subscriptions.push(command);
+ });
+
+ var isConvertOnSave = vscode.workspace.getConfiguration('markdown-pdf')['convertOnSave'];
+ if (isConvertOnSave) {
+ var disposable_onsave = vscode.workspace.onDidSaveTextDocument(function () { markdownPdfOnSave(); });
+ context.subscriptions.push(disposable_onsave);
+ }
+}
+exports.activate = activate;
+
+// this method is called when your extension is deactivated
+function deactivate() {
+}
+exports.deactivate = deactivate;
+
+async function markdownPdf(option_type) {
+
+ try {
+
+ // check active window
+ var editor = vscode.window.activeTextEditor;
+ if (!editor) {
+ vscode.window.showWarningMessage('No active Editor!');
+ return;
+ }
+
+ // check markdown mode
+ var mode = editor.document.languageId;
+ if (mode != 'markdown') {
+ vscode.window.showWarningMessage('It is not a markdown mode!');
+ return;
+ }
+
+ var uri = editor.document.uri;
+ var mdfilename = uri.fsPath;
+ var ext = path.extname(mdfilename);
+ if (!isExistsPath(mdfilename)) {
+ if (editor.document.isUntitled) {
+ vscode.window.showWarningMessage('Please save the file!');
+ return;
+ }
+ vscode.window.showWarningMessage('File name does not get!');
+ return;
+ }
+
+ var types_format = ['html', 'pdf', 'png', 'jpeg'];
+ var filename = '';
+ var types = [];
+ if (types_format.indexOf(option_type) >= 0) {
+ types[0] = option_type;
+ } else if (option_type === 'settings') {
+ var types_tmp = vscode.workspace.getConfiguration('markdown-pdf')['type'] || 'pdf';
+ if (types_tmp && !Array.isArray(types_tmp)) {
+ types[0] = types_tmp;
+ } else {
+ types = vscode.workspace.getConfiguration('markdown-pdf')['type'] || 'pdf';
+ }
+ } else if (option_type === 'all') {
+ types = types_format;
+ } else {
+ showErrorMessage('markdownPdf().1 Supported formats: html, pdf, png, jpeg.');
+ return;
+ }
+
+ // convert and export markdown to pdf, html, png, jpeg
+ if (types && Array.isArray(types) && types.length > 0) {
+ for (var i = 0; i < types.length; i++) {
+ var type = types[i];
+ if (types_format.indexOf(type) >= 0) {
+ filename = mdfilename.replace(ext, '.' + type);
+ var text = editor.document.getText();
+ var content = convertMarkdownToHtml(mdfilename, type, text);
+ var html = makeHtml(content, uri);
+ await exportPdf(html, filename, type, uri);
+ } else {
+ showErrorMessage('markdownPdf().2 Supported formats: html, pdf, png, jpeg.');
+ return;
+ }
+ }
+ } else {
+ showErrorMessage('markdownPdf().3 Supported formats: html, pdf, png, jpeg.');
+ return;
+ }
+ } catch (error) {
+ showErrorMessage('markdownPdf()', error);
+ }
+}
+
+function markdownPdfOnSave() {
+ try {
+ var editor = vscode.window.activeTextEditor;
+ var mode = editor.document.languageId;
+ if (mode != 'markdown') {
+ return;
+ }
+ if (!isMarkdownPdfOnSaveExclude()) {
+ markdownPdf('settings');
+ }
+ } catch (error) {
+ showErrorMessage('markdownPdfOnSave()', error);
+ }
+}
+
+function isMarkdownPdfOnSaveExclude() {
+ try{
+ var editor = vscode.window.activeTextEditor;
+ var filename = path.basename(editor.document.fileName);
+ var patterns = vscode.workspace.getConfiguration('markdown-pdf')['convertOnSaveExclude'] || '';
+ var pattern;
+ var i;
+ if (patterns && Array.isArray(patterns) && patterns.length > 0) {
+ for (i = 0; i < patterns.length; i++) {
+ pattern = patterns[i];
+ var re = new RegExp(pattern);
+ if (re.test(filename)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ } catch (error) {
+ showErrorMessage('isMarkdownPdfOnSaveExclude()', error);
+ }
+}
+
+/*
+ * convert markdown to html (markdown-it)
+ */
+function convertMarkdownToHtml(filename, type, text) {
+ var grayMatter = require("gray-matter");
+ var matterParts = grayMatter(text);
+
+ try {
+ try {
+ var statusbarmessage = vscode.window.setStatusBarMessage('$(markdown) Converting (convertMarkdownToHtml) ...');
+ var hljs = require('highlight.js');
+ var breaks = setBooleanValue(matterParts.data.breaks, vscode.workspace.getConfiguration('markdown-pdf')['breaks']);
+ var md = require('markdown-it')({
+ html: true,
+ breaks: breaks,
+ highlight: function (str, lang) {
+
+ if (lang && lang.match(/\bmermaid\b/i)) {
+ return `${str}
`;
+ }
+
+ if (lang && hljs.getLanguage(lang)) {
+ try {
+ str = hljs.highlight(lang, str, true).value;
+ } catch (error) {
+ str = md.utils.escapeHtml(str);
+
+ showErrorMessage('markdown-it:highlight', error);
+ }
+ } else {
+ str = md.utils.escapeHtml(str);
+ }
+ return '' + str + '
';
+ }
+ });
+ } catch (error) {
+ statusbarmessage.dispose();
+ showErrorMessage('require(\'markdown-it\')', error);
+ }
+
+ // convert the img src of the markdown
+ var cheerio = require('cheerio');
+ var defaultRender = md.renderer.rules.image;
+ md.renderer.rules.image = function (tokens, idx, options, env, self) {
+ var token = tokens[idx];
+ var href = token.attrs[token.attrIndex('src')][1];
+ // console.log("original href: " + href);
+ if (type === 'html') {
+ href = decodeURIComponent(href).replace(/("|')/g, '');
+ } else {
+ href = convertImgPath(href, filename);
+ }
+ // console.log("converted href: " + href);
+ token.attrs[token.attrIndex('src')][1] = href;
+ // // pass token to default renderer.
+ return defaultRender(tokens, idx, options, env, self);
+ };
+
+ if (type !== 'html') {
+ // convert the img src of the html
+ md.renderer.rules.html_block = function (tokens, idx) {
+ var html = tokens[idx].content;
+ var $ = cheerio.load(html);
+ $('img').each(function () {
+ var src = $(this).attr('src');
+ var href = convertImgPath(src, filename);
+ $(this).attr('src', href);
+ });
+ return $.html();
+ };
+ }
+
+ // checkbox
+ md.use(require('markdown-it-checkbox'));
+
+ // emoji
+ var emoji_f = setBooleanValue(matterParts.data.emoji, vscode.workspace.getConfiguration('markdown-pdf')['emoji']);
+ if (emoji_f) {
+ var emojies_defs = require(path.join(__dirname, 'data', 'emoji.json'));
+ try {
+ var options = {
+ defs: emojies_defs
+ };
+ } catch (error) {
+ statusbarmessage.dispose();
+ showErrorMessage('markdown-it-emoji:options', error);
+ }
+ md.use(require('markdown-it-emoji'), options);
+ md.renderer.rules.emoji = function (token, idx) {
+ var emoji = token[idx].markup;
+ var emojipath = path.join(__dirname, 'node_modules', 'emoji-images', 'pngs', emoji + '.png');
+ var emojidata = readFile(emojipath, null).toString('base64');
+ if (emojidata) {
+ return '
';
+ } else {
+ return ':' + emoji + ':';
+ }
+ };
+ }
+
+ // toc
+ // https://github.com/leff/markdown-it-named-headers
+ var options = {
+ slugify: Slug
+ }
+ md.use(require('markdown-it-named-headers'), options);
+
+ // markdown-it-container
+ // https://github.com/markdown-it/markdown-it-container
+ md.use(require('markdown-it-container'), '', {
+ validate: function (name) {
+ return name.trim().length;
+ },
+ render: function (tokens, idx) {
+ if (tokens[idx].info.trim() !== '') {
+ return `\n`;
+ } else {
+ return `
\n`;
+ }
+ }
+ });
+
+ // PlantUML
+ // https://github.com/gmunguia/markdown-it-plantuml
+ var plantumlOptions = {
+ openMarker: matterParts.data.plantumlOpenMarker || vscode.workspace.getConfiguration('markdown-pdf')['plantumlOpenMarker'] || '@startuml',
+ closeMarker: matterParts.data.plantumlCloseMarker || vscode.workspace.getConfiguration('markdown-pdf')['plantumlCloseMarker'] || '@enduml',
+ server: vscode.workspace.getConfiguration('markdown-pdf')['plantumlServer'] || ''
+ }
+ md.use(require('markdown-it-plantuml'), plantumlOptions);
+
+ // markdown-it-include
+ // https://github.com/camelaissani/markdown-it-include
+ // the syntax is :[alt-text](relative-path-to-file.md)
+ // https://talk.commonmark.org/t/transclusion-or-including-sub-documents-for-reuse/270/13
+ if (vscode.workspace.getConfiguration('markdown-pdf')['markdown-it-include']['enable']) {
+ md.use(require("markdown-it-include"), {
+ root: path.dirname(filename),
+ includeRe: /:\[.+\]\((.+\..+)\)/i
+ });
+ }
+
+ statusbarmessage.dispose();
+ return md.render(matterParts.content);
+
+ } catch (error) {
+ statusbarmessage.dispose();
+ showErrorMessage('convertMarkdownToHtml()', error);
+ }
+}
+
+/*
+ * https://github.com/microsoft/vscode/blob/ca4ceeb87d4ff935c52a7af0671ed9779657e7bd/extensions/markdown-language-features/src/slugify.ts#L26
+ */
+function Slug(string) {
+ try {
+ var stg = encodeURI(
+ string.trim()
+ .toLowerCase()
+ .replace(/\s+/g, '-') // Replace whitespace with -
+ .replace(/[\]\[\!\'\#\$\%\&\(\)\*\+\,\.\/\:\;\<\=\>\?\@\\\^\_\{\|\}\~\`。,、;:?!…—·ˉ¨‘’“”々~‖∶"'`|〃〔〕〈〉《》「」『』.〖〗【】()[]{}]/g, '') // Remove known punctuators
+ .replace(/^\-+/, '') // Remove leading -
+ .replace(/\-+$/, '') // Remove trailing -
+ );
+ return stg;
+ } catch (error) {
+ showErrorMessage('Slug()', error);
+ }
+}
+
+/*
+ * make html
+ */
+function makeHtml(data, uri) {
+ try {
+ // read styles
+ var style = '';
+ style += readStyles(uri);
+
+ // get title
+ var title = path.basename(uri.fsPath);
+
+ // read template
+ var filename = path.join(__dirname, 'template', 'template.html');
+ var template = readFile(filename);
+
+ // read mermaid javascripts
+ var mermaidServer = vscode.workspace.getConfiguration('markdown-pdf')['mermaidServer'] || '';
+ var mermaid = '';
+
+ // compile template
+ var mustache = require('mustache');
+
+ var view = {
+ title: title,
+ style: style,
+ content: data,
+ mermaid: mermaid
+ };
+ return mustache.render(template, view);
+ } catch (error) {
+ showErrorMessage('makeHtml()', error);
+ }
+}
+
+/*
+ * export a html to a html file
+ */
+function exportHtml(data, filename) {
+ fs.writeFile(filename, data, 'utf-8', function (error) {
+ if (error) {
+ showErrorMessage('exportHtml()', error);
+ return;
+ }
+ });
+}
+
+/*
+ * export a html to a pdf file (html-pdf)
+ */
+function exportPdf(data, filename, type, uri) {
+
+ if (!INSTALL_CHECK) {
+ return;
+ }
+ if (!checkPuppeteerBinary()) {
+ showErrorMessage('Chromium or Chrome does not exist! \
+ See https://github.com/yzane/vscode-markdown-pdf#install');
+ return;
+ }
+
+ var StatusbarMessageTimeout = vscode.workspace.getConfiguration('markdown-pdf')['StatusbarMessageTimeout'];
+ vscode.window.setStatusBarMessage('');
+ var exportFilename = getOutputDir(filename, uri);
+
+ return vscode.window.withProgress({
+ location: vscode.ProgressLocation.Notification,
+ title: '[Markdown PDF]: Exporting (' + type + ') ...'
+ }, async () => {
+ try {
+ // export html
+ if (type == 'html') {
+ exportHtml(data, exportFilename);
+ vscode.window.setStatusBarMessage('$(markdown) ' + exportFilename, StatusbarMessageTimeout);
+ return;
+ }
+
+ const puppeteer = require('puppeteer-core');
+ // create temporary file
+ var f = path.parse(filename);
+ var tmpfilename = path.join(f.dir, f.name + '_tmp.html');
+ exportHtml(data, tmpfilename);
+ var options = {
+ executablePath: vscode.workspace.getConfiguration('markdown-pdf')['executablePath'] || puppeteer.executablePath(),
+ args: ['--lang='+vscode.env.language, '--no-sandbox', '--disable-setuid-sandbox']
+ // Setting Up Chrome Linux Sandbox
+ // https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md#setting-up-chrome-linux-sandbox
+ };
+ const browser = await puppeteer.launch(options);
+ const page = await browser.newPage();
+ await page.goto(vscode.Uri.file(tmpfilename).toString(), { waitUntil: 'networkidle0' });
+ // generate pdf
+ // https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepdfoptions
+ if (type == 'pdf') {
+ // If width or height option is set, it overrides the format option.
+ // In order to set the default value of page size to A4, we changed it from the specification of puppeteer.
+ var width_option = vscode.workspace.getConfiguration('markdown-pdf', uri)['width'] || '';
+ var height_option = vscode.workspace.getConfiguration('markdown-pdf', uri)['height'] || '';
+ var format_option = '';
+ if (!width_option && !height_option) {
+ format_option = vscode.workspace.getConfiguration('markdown-pdf', uri)['format'] || 'A4';
+ }
+ var landscape_option;
+ if (vscode.workspace.getConfiguration('markdown-pdf', uri)['orientation'] == 'landscape') {
+ landscape_option = true;
+ } else {
+ landscape_option = false;
+ }
+ var options = {
+ path: exportFilename,
+ scale: vscode.workspace.getConfiguration('markdown-pdf', uri)['scale'],
+ displayHeaderFooter: vscode.workspace.getConfiguration('markdown-pdf', uri)['displayHeaderFooter'],
+ headerTemplate: vscode.workspace.getConfiguration('markdown-pdf', uri)['headerTemplate'] || '',
+ footerTemplate: vscode.workspace.getConfiguration('markdown-pdf', uri)['footerTemplate'] || '',
+ printBackground: vscode.workspace.getConfiguration('markdown-pdf', uri)['printBackground'],
+ landscape: landscape_option,
+ pageRanges: vscode.workspace.getConfiguration('markdown-pdf', uri)['pageRanges'] || '',
+ format: format_option,
+ width: vscode.workspace.getConfiguration('markdown-pdf', uri)['width'] || '',
+ height: vscode.workspace.getConfiguration('markdown-pdf', uri)['height'] || '',
+ margin: {
+ top: vscode.workspace.getConfiguration('markdown-pdf', uri)['margin']['top'] || '',
+ right: vscode.workspace.getConfiguration('markdown-pdf', uri)['margin']['right'] || '',
+ bottom: vscode.workspace.getConfiguration('markdown-pdf', uri)['margin']['bottom'] || '',
+ left: vscode.workspace.getConfiguration('markdown-pdf', uri)['margin']['left'] || ''
+ }
+ }
+ await page.pdf(options);
+ }
+
+ // generate png and jpeg
+ // https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagescreenshotoptions
+ if (type == 'png' || type == 'jpeg') {
+ // Quality options do not apply to PNG images.
+ var quality_option;
+ if (type == 'png') {
+ quality_option = undefined;
+ }
+ if (type == 'jpeg') {
+ quality_option = vscode.workspace.getConfiguration('markdown-pdf')['quality'] || 100;
+ }
+
+ // screenshot size
+ var clip_x_option = vscode.workspace.getConfiguration('markdown-pdf')['clip']['x'] || null;
+ var clip_y_option = vscode.workspace.getConfiguration('markdown-pdf')['clip']['y'] || null;
+ var clip_width_option = vscode.workspace.getConfiguration('markdown-pdf')['clip']['width'] || null;
+ var clip_height_option = vscode.workspace.getConfiguration('markdown-pdf')['clip']['height'] || null;
+ var options;
+ if (clip_x_option !== null && clip_y_option !== null && clip_width_option !== null && clip_height_option !== null) {
+ options = {
+ path: exportFilename,
+ quality: quality_option,
+ fullPage: false,
+ clip: {
+ x: clip_x_option,
+ y: clip_y_option,
+ width: clip_width_option,
+ height: clip_height_option,
+ },
+ omitBackground: vscode.workspace.getConfiguration('markdown-pdf')['omitBackground'],
+ }
+ } else {
+ options = {
+ path: exportFilename,
+ quality: quality_option,
+ fullPage: true,
+ omitBackground: vscode.workspace.getConfiguration('markdown-pdf')['omitBackground'],
+ }
+ }
+ await page.screenshot(options);
+ }
+
+ await browser.close();
+
+ // delete temporary file
+ var debug = vscode.workspace.getConfiguration('markdown-pdf')['debug'] || false;
+ if (!debug) {
+ if (isExistsPath(tmpfilename)) {
+ deleteFile(tmpfilename);
+ }
+ }
+
+ vscode.window.setStatusBarMessage('$(markdown) ' + exportFilename, StatusbarMessageTimeout);
+ } catch (error) {
+ showErrorMessage('exportPdf()', error);
+ }
+ } // async
+ ); // vscode.window.withProgress
+}
+
+function isExistsPath(path) {
+ if (path.length === 0) {
+ return false;
+ }
+ try {
+ fs.accessSync(path);
+ return true;
+ } catch (error) {
+ console.warn(error.message);
+ return false;
+ }
+}
+
+function isExistsDir(dirname) {
+ if (dirname.length === 0) {
+ return false;
+ }
+ try {
+ if (fs.statSync(dirname).isDirectory()) {
+ return true;
+ } else {
+ console.warn('Directory does not exist!') ;
+ return false;
+ }
+ } catch (error) {
+ console.warn(error.message);
+ return false;
+ }
+}
+
+function deleteFile (path) {
+ var rimraf = require('rimraf')
+ rimraf.sync(path);
+}
+
+function getOutputDir(filename, resource) {
+ try {
+ var outputDir;
+ if (resource === undefined) {
+ return filename;
+ }
+ var outputDirectory = vscode.workspace.getConfiguration('markdown-pdf')['outputDirectory'] || '';
+ if (outputDirectory.length === 0) {
+ return filename;
+ }
+
+ // Use a home directory relative path If it starts with ~.
+ if (outputDirectory.indexOf('~') === 0) {
+ outputDir = outputDirectory.replace(/^~/, os.homedir());
+ mkdir(outputDir);
+ return path.join(outputDir, path.basename(filename));
+ }
+
+ // Use path if it is absolute
+ if (path.isAbsolute(outputDirectory)) {
+ if (!isExistsDir(outputDirectory)) {
+ showErrorMessage(`The output directory specified by the markdown-pdf.outputDirectory option does not exist.\
+ Check the markdown-pdf.outputDirectory option. ` + outputDirectory);
+ return;
+ }
+ return path.join(outputDirectory, path.basename(filename));
+ }
+
+ // Use a workspace relative path if there is a workspace and markdown-pdf.outputDirectoryRootPath = workspace
+ var outputDirectoryRelativePathFile = vscode.workspace.getConfiguration('markdown-pdf')['outputDirectoryRelativePathFile'];
+ let root = vscode.workspace.getWorkspaceFolder(resource);
+ if (outputDirectoryRelativePathFile === false && root) {
+ outputDir = path.join(root.uri.fsPath, outputDirectory);
+ mkdir(outputDir);
+ return path.join(outputDir, path.basename(filename));
+ }
+
+ // Otherwise look relative to the markdown file
+ outputDir = path.join(path.dirname(resource.fsPath), outputDirectory);
+ mkdir(outputDir);
+ return path.join(outputDir, path.basename(filename));
+ } catch (error) {
+ showErrorMessage('getOutputDir()', error);
+ }
+}
+
+function mkdir(path) {
+ if (isExistsDir(path)) {
+ return;
+ }
+ var mkdirp = require('mkdirp');
+ return mkdirp.sync(path);
+}
+
+function readFile(filename, encode) {
+ if (filename.length === 0) {
+ return '';
+ }
+ if (!encode && encode !== null) {
+ encode = 'utf-8';
+ }
+ if (filename.indexOf('file://') === 0) {
+ if (process.platform === 'win32') {
+ filename = filename.replace(/^file:\/\/\//, '')
+ .replace(/^file:\/\//, '');
+ } else {
+ filename = filename.replace(/^file:\/\//, '');
+ }
+ }
+ if (isExistsPath(filename)) {
+ return fs.readFileSync(filename, encode);
+ } else {
+ return '';
+ }
+}
+
+function convertImgPath(src, filename) {
+ try {
+ var href = decodeURIComponent(src);
+ href = href.replace(/("|')/g, '')
+ .replace(/\\/g, '/')
+ .replace(/#/g, '%23');
+ var protocol = url.parse(href).protocol;
+ if (protocol === 'file:' && href.indexOf('file:///') !==0) {
+ return href.replace(/^file:\/\//, 'file:///');
+ } else if (protocol === 'file:') {
+ return href;
+ } else if (!protocol || path.isAbsolute(href)) {
+ href = path.resolve(path.dirname(filename), href).replace(/\\/g, '/')
+ .replace(/#/g, '%23');
+ if (href.indexOf('//') === 0) {
+ return 'file:' + href;
+ } else if (href.indexOf('/') === 0) {
+ return 'file://' + href;
+ } else {
+ return 'file:///' + href;
+ }
+ } else {
+ return src;
+ }
+ } catch (error) {
+ showErrorMessage('convertImgPath()', error);
+ }
+}
+
+function makeCss(filename) {
+ try {
+ var css = readFile(filename);
+ if (css) {
+ return '\n\n';
+ } else {
+ return '';
+ }
+ } catch (error) {
+ showErrorMessage('makeCss()', error);
+ }
+}
+
+function readStyles(uri) {
+ try {
+ var includeDefaultStyles;
+ var style = '';
+ var styles = '';
+ var filename = '';
+ var i;
+
+ includeDefaultStyles = vscode.workspace.getConfiguration('markdown-pdf')['includeDefaultStyles'];
+ var includeStylesAsStyletag = vscode.workspace.getConfiguration('markdown-pdf')['importStylesheetAsStyletag'] || '';
+
+ // 1. read the style of the vscode.
+ if (includeDefaultStyles) {
+ filename = path.join(__dirname, 'styles', 'markdown.css');
+ style += makeCss(filename);
+ }
+
+ // 2. read the style of the markdown.styles setting.
+ if (includeDefaultStyles) {
+ styles = vscode.workspace.getConfiguration('markdown')['styles'];
+ if (styles && Array.isArray(styles) && styles.length > 0) {
+ for (i = 0; i < styles.length; i++) {
+ var href = fixHref(uri, styles[i]);
+ style += '';
+ }
+ }
+ }
+
+ // 3. read the style of the highlight.js.
+ var highlightStyle = vscode.workspace.getConfiguration('markdown-pdf')['highlightStyle'] || '';
+ var ishighlight = vscode.workspace.getConfiguration('markdown-pdf')['highlight'];
+ if (ishighlight) {
+ if (highlightStyle) {
+ var css = vscode.workspace.getConfiguration('markdown-pdf')['highlightStyle'] || 'github.css';
+ filename = path.join(__dirname, 'node_modules', 'highlight.js', 'styles', css);
+ style += makeCss(filename);
+ } else {
+ filename = path.join(__dirname, 'styles', 'tomorrow.css');
+ style += makeCss(filename);
+ }
+ }
+
+ // 4. read the style of the markdown-pdf.
+ if (includeDefaultStyles) {
+ filename = path.join(__dirname, 'styles', 'markdown-pdf.css');
+ style += makeCss(filename);
+ }
+
+ // 5. read the style of the markdown-pdf.styles settings.
+ styles = vscode.workspace.getConfiguration('markdown-pdf')['styles'] || '';
+ if (styles && Array.isArray(styles) && styles.length > 0) {
+ for (i = 0; i < styles.length; i++) {
+ var href = fixHref(uri, styles[i]);
+ if (includeStylesAsStyletag) {
+ var filename = href.slice(7);
+ style += makeCss(filename);
+ } else {
+ style += '';
+ }
+ }
+ }
+
+ return style;
+ } catch (error) {
+ showErrorMessage('readStyles()', error);
+ }
+}
+
+/*
+ * vscode/extensions/markdown-language-features/src/features/previewContentProvider.ts fixHref()
+ * https://github.com/Microsoft/vscode/blob/0c47c04e85bc604288a288422f0a7db69302a323/extensions/markdown-language-features/src/features/previewContentProvider.ts#L95
+ *
+ * Extension Authoring: Adopting Multi Root Workspace APIs ?E Microsoft/vscode Wiki
+ * https://github.com/Microsoft/vscode/wiki/Extension-Authoring:-Adopting-Multi-Root-Workspace-APIs
+ */
+function fixHref(resource, href) {
+ try {
+ if (!href) {
+ return href;
+ }
+
+ // Use href if it is already an URL
+ const hrefUri = vscode.Uri.parse(href);
+ if (['http', 'https'].indexOf(hrefUri.scheme) >= 0) {
+ return hrefUri.toString();
+ }
+
+ // Use a home directory relative path If it starts with ^.
+ if (href.indexOf('~') === 0) {
+ return vscode.Uri.file(href.replace(/^~/, os.homedir())).toString();
+ }
+
+ // Use href as file URI if it is absolute
+ if (path.isAbsolute(href)) {
+ return vscode.Uri.file(href).toString();
+ }
+
+ // Use a workspace relative path if there is a workspace and markdown-pdf.stylesRelativePathFile is false
+ var stylesRelativePathFile = vscode.workspace.getConfiguration('markdown-pdf')['stylesRelativePathFile'];
+ let root = vscode.workspace.getWorkspaceFolder(resource);
+ if (stylesRelativePathFile === false && root) {
+ return vscode.Uri.file(path.join(root.uri.fsPath, href)).toString();
+ }
+
+ // Otherwise look relative to the markdown file
+ return vscode.Uri.file(path.join(path.dirname(resource.fsPath), href)).toString();
+ } catch (error) {
+ showErrorMessage('fixHref()', error);
+ }
+}
+
+function checkPuppeteerBinary() {
+ try {
+ // settings.json
+ var executablePath = vscode.workspace.getConfiguration('markdown-pdf')['executablePath'] || ''
+ if (isExistsPath(executablePath)) {
+ INSTALL_CHECK = true;
+ return true;
+ }
+
+ // bundled Chromium
+ const puppeteer = require('puppeteer-core');
+ executablePath = puppeteer.executablePath();
+ if (isExistsPath(executablePath)) {
+ return true;
+ } else {
+ return false;
+ }
+ } catch (error) {
+ showErrorMessage('checkPuppeteerBinary()', error);
+ }
+}
+
+/*
+ * puppeteer install.js
+ * https://github.com/GoogleChrome/puppeteer/blob/master/install.js
+ */
+function installChromium() {
+ try {
+ vscode.window.showInformationMessage('[Markdown PDF] Installing Chromium ...');
+ var statusbarmessage = vscode.window.setStatusBarMessage('$(markdown) Installing Chromium ...');
+
+ // proxy setting
+ setProxy();
+
+ var StatusbarMessageTimeout = vscode.workspace.getConfiguration('markdown-pdf')['StatusbarMessageTimeout'];
+ const puppeteer = require('puppeteer-core');
+ const browserFetcher = puppeteer.createBrowserFetcher();
+ const revision = require(path.join(__dirname, 'node_modules', 'puppeteer-core', 'package.json')).puppeteer.chromium_revision;
+ const revisionInfo = browserFetcher.revisionInfo(revision);
+
+ // download Chromium
+ browserFetcher.download(revisionInfo.revision, onProgress)
+ .then(() => browserFetcher.localRevisions())
+ .then(onSuccess)
+ .catch(onError);
+
+ function onSuccess(localRevisions) {
+ console.log('Chromium downloaded to ' + revisionInfo.folderPath);
+ localRevisions = localRevisions.filter(revision => revision !== revisionInfo.revision);
+ // Remove previous chromium revisions.
+ const cleanupOldVersions = localRevisions.map(revision => browserFetcher.remove(revision));
+
+ if (checkPuppeteerBinary()) {
+ INSTALL_CHECK = true;
+ statusbarmessage.dispose();
+ vscode.window.setStatusBarMessage('$(markdown) Chromium installation succeeded!', StatusbarMessageTimeout);
+ vscode.window.showInformationMessage('[Markdown PDF] Chromium installation succeeded.');
+ return Promise.all(cleanupOldVersions);
+ }
+ }
+
+ function onError(error) {
+ statusbarmessage.dispose();
+ vscode.window.setStatusBarMessage('$(markdown) ERROR: Failed to download Chromium!', StatusbarMessageTimeout);
+ showErrorMessage('Failed to download Chromium! \
+ If you are behind a proxy, set the http.proxy option to settings.json and restart Visual Studio Code. \
+ See https://github.com/yzane/vscode-markdown-pdf#install', error);
+ }
+
+ function onProgress(downloadedBytes, totalBytes) {
+ var progress = parseInt(downloadedBytes / totalBytes * 100);
+ vscode.window.setStatusBarMessage('$(markdown) Installing Chromium ' + progress + '%' , StatusbarMessageTimeout);
+ }
+ } catch (error) {
+ showErrorMessage('installChromium()', error);
+ }
+}
+
+function showErrorMessage(msg, error) {
+ vscode.window.showErrorMessage('ERROR: ' + msg);
+ console.log('ERROR: ' + msg);
+ if (error) {
+ vscode.window.showErrorMessage(error.toString());
+ console.log(error);
+ }
+}
+
+function setProxy() {
+ var https_proxy = vscode.workspace.getConfiguration('http')['proxy'] || '';
+ if (https_proxy) {
+ process.env.HTTPS_PROXY = https_proxy;
+ process.env.HTTP_PROXY = https_proxy;
+ }
+}
+
+function setBooleanValue(a, b) {
+ if (a === false) {
+ return false
+ } else {
+ return a || b
+ }
+}
+
+function init() {
+ try {
+ if (checkPuppeteerBinary()) {
+ INSTALL_CHECK = true;
+ } else {
+ installChromium();
+ }
+ } catch (error) {
+ showErrorMessage('init()', error);
+ }
+}
diff --git a/package-lock.json b/package-lock.json
index b75d63e..a94f705 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,405 +1,501 @@
{
"name": "markdown-pdf",
"version": "1.4.4",
- "lockfileVersion": 1,
+ "lockfileVersion": 3,
"requires": true,
- "dependencies": {
- "@types/mime-types": {
+ "packages": {
+ "": {
+ "name": "markdown-pdf",
+ "version": "1.4.4",
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "dependencies": {
+ "cheerio": "^0.20.0",
+ "d3": "^4.13.0",
+ "emoji-images": "^0.1.1",
+ "gray-matter": "^4.0.2",
+ "highlight.js": "^9.18.1",
+ "markdown-it": "^10.0.0",
+ "markdown-it-checkbox": "^1.1.0",
+ "markdown-it-container": "^2.0.0",
+ "markdown-it-emoji": "^1.4.0",
+ "markdown-it-include": "^1.1.0",
+ "markdown-it-named-headers": "0.0.4",
+ "markdown-it-plantuml": "^1.4.1",
+ "mkdirp": "^1.0.3",
+ "mustache": "^4.0.1",
+ "puppeteer-core": "^2.1.1",
+ "rimraf": "^3.0.2"
+ },
+ "devDependencies": {
+ "glob": "^7.1.6",
+ "mocha": "^7.1.1",
+ "removeNPMAbsolutePaths": "^2.0.0",
+ "vscode-test": "^1.3.0"
+ },
+ "engines": {
+ "vscode": "^1.0.0"
+ }
+ },
+ "node_modules/@types/mime-types": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.0.tgz",
"integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM="
},
- "abab": {
+ "node_modules/abab": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
"integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
"optional": true
},
- "acorn": {
+ "node_modules/acorn": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
"integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
- "optional": true
+ "optional": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "acorn-globals": {
+ "node_modules/acorn-globals": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
"integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
"optional": true,
- "requires": {
+ "dependencies": {
"acorn": "^2.1.0"
}
},
- "agent-base": {
+ "node_modules/agent-base": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
- "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g=="
+ "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
+ "engines": {
+ "node": ">= 6.0.0"
+ }
},
- "ajv": {
+ "node_modules/ajv": {
"version": "6.12.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
"integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
"optional": true,
- "requires": {
+ "dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
- "ansi-colors": {
+ "node_modules/ansi-colors": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
"integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
},
- "ansi-regex": {
+ "node_modules/ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
},
- "ansi-styles": {
+ "node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
- "requires": {
+ "dependencies": {
"color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "anymatch": {
+ "node_modules/anymatch": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true,
- "requires": {
+ "dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "argparse": {
+ "node_modules/argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
+ "dependencies": {
"sprintf-js": "~1.0.2"
}
},
- "asn1": {
+ "node_modules/asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"optional": true,
- "requires": {
+ "dependencies": {
"safer-buffer": "~2.1.0"
}
},
- "assert-plus": {
+ "node_modules/assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=0.8"
+ }
},
- "async-limiter": {
+ "node_modules/async-limiter": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
},
- "asynckit": {
+ "node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"optional": true
},
- "aws-sign2": {
+ "node_modules/aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": "*"
+ }
},
- "aws4": {
+ "node_modules/aws4": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
"integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==",
"optional": true
},
- "balanced-match": {
+ "node_modules/balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
- "bcrypt-pbkdf": {
+ "node_modules/bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"optional": true,
- "requires": {
+ "dependencies": {
"tweetnacl": "^0.14.3"
}
},
- "binary-extensions": {
+ "node_modules/binary-extensions": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
"integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
},
- "boolbase": {
+ "node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
- "brace-expansion": {
+ "node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
+ "dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
- "braces": {
+ "node_modules/braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
- "requires": {
+ "dependencies": {
"fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "browser-stdout": {
+ "node_modules/browser-stdout": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
"dev": true
},
- "buffer-from": {
+ "node_modules/buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
- "camelcase": {
+ "node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
},
- "caseless": {
+ "node_modules/caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"optional": true
},
- "chalk": {
+ "node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
"dependencies": {
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "cheerio": {
+ "node_modules/cheerio": {
"version": "0.20.0",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
"integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=",
- "requires": {
+ "dependencies": {
"css-select": "~1.2.0",
"dom-serializer": "~0.1.0",
"entities": "~1.1.1",
"htmlparser2": "~3.8.1",
- "jsdom": "^7.0.2",
"lodash": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ },
+ "optionalDependencies": {
+ "jsdom": "^7.0.2"
}
},
- "chokidar": {
+ "node_modules/chokidar": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz",
"integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==",
"dev": true,
- "requires": {
+ "dependencies": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
- "fsevents": "~2.1.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.2.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.1.1"
}
},
- "cliui": {
+ "node_modules/cliui": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"dev": true,
- "requires": {
+ "dependencies": {
"string-width": "^3.1.0",
"strip-ansi": "^5.2.0",
"wrap-ansi": "^5.1.0"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
},
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
- }
- },
- "color-convert": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
- "requires": {
+ "dependencies": {
"color-name": "1.1.3"
}
},
- "color-name": {
+ "node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
- "combined-stream": {
+ "node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"optional": true,
- "requires": {
+ "dependencies": {
"delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
}
},
- "commander": {
+ "node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
- "concat-map": {
+ "node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
- "concat-stream": {
+ "node_modules/concat-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "requires": {
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
- },
+ }
+ },
+ "node_modules/concat-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "node_modules/concat-stream/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/concat-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/concat-stream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "core-util-is": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
- "css-select": {
+ "node_modules/css-select": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
- "requires": {
+ "dependencies": {
"boolbase": "~1.0.0",
"css-what": "2.1",
"domutils": "1.5.1",
"nth-check": "~1.0.1"
}
},
- "css-what": {
+ "node_modules/css-what": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
- "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+ "engines": {
+ "node": "*"
+ }
},
- "cssom": {
+ "node_modules/cssom": {
"version": "0.3.8",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
"optional": true
},
- "cssstyle": {
+ "node_modules/cssstyle": {
"version": "0.2.37",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
"integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
"optional": true,
- "requires": {
+ "dependencies": {
"cssom": "0.3.x"
}
},
- "d3": {
+ "node_modules/d3": {
"version": "4.13.0",
"resolved": "https://registry.npmjs.org/d3/-/d3-4.13.0.tgz",
"integrity": "sha512-l8c4+0SldjVKLaE2WG++EQlqD7mh/dmQjvi2L2lKPadAVC+TbJC4ci7Uk9bRi+To0+ansgsS0iWfPjD7DBy+FQ==",
- "requires": {
+ "dependencies": {
"d3-array": "1.2.1",
"d3-axis": "1.0.8",
"d3-brush": "1.0.4",
@@ -432,21 +528,21 @@
"d3-zoom": "1.7.1"
}
},
- "d3-array": {
+ "node_modules/d3-array": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.1.tgz",
"integrity": "sha512-CyINJQ0SOUHojDdFDH4JEM0552vCR1utGyLHegJHyYH0JyCpSeTPxi4OBqHMA2jJZq4NH782LtaJWBImqI/HBw=="
},
- "d3-axis": {
+ "node_modules/d3-axis": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.8.tgz",
"integrity": "sha1-MacFoLU15ldZ3hQXOjGTMTfxjvo="
},
- "d3-brush": {
+ "node_modules/d3-brush": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.0.4.tgz",
"integrity": "sha1-AMLyOAGfJPbAoZSibUGhUw/+e8Q=",
- "requires": {
+ "dependencies": {
"d3-dispatch": "1",
"d3-drag": "1",
"d3-interpolate": "1",
@@ -454,132 +550,143 @@
"d3-transition": "1"
}
},
- "d3-chord": {
+ "node_modules/d3-chord": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.4.tgz",
"integrity": "sha1-fexPC6iG9xP+ERxF92NBT290yiw=",
- "requires": {
+ "dependencies": {
"d3-array": "1",
"d3-path": "1"
}
},
- "d3-collection": {
+ "node_modules/d3-collection": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.4.tgz",
"integrity": "sha1-NC39EoN8kJdPM/HMCnha6lcNzcI="
},
- "d3-color": {
+ "node_modules/d3-color": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.0.3.tgz",
"integrity": "sha1-vHZD/KjlOoNH4vva/6I2eWtYUJs="
},
- "d3-dispatch": {
+ "node_modules/d3-dispatch": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.3.tgz",
"integrity": "sha1-RuFJHqqbWMNY/OW+TovtYm54cfg="
},
- "d3-drag": {
+ "node_modules/d3-drag": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.1.tgz",
"integrity": "sha512-Cg8/K2rTtzxzrb0fmnYOUeZHvwa4PHzwXOLZZPwtEs2SKLLKLXeYwZKBB+DlOxUvFmarOnmt//cU4+3US2lyyQ==",
- "requires": {
+ "dependencies": {
"d3-dispatch": "1",
"d3-selection": "1"
}
},
- "d3-dsv": {
+ "node_modules/d3-dsv": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.8.tgz",
"integrity": "sha512-IVCJpQ+YGe3qu6odkPQI0KPqfxkhbP/oM1XhhE/DFiYmcXKfCRub4KXyiuehV1d4drjWVXHUWx4gHqhdZb6n/A==",
- "requires": {
+ "dependencies": {
"commander": "2",
"iconv-lite": "0.4",
"rw": "1"
- }
- },
- "d3-ease": {
+ },
+ "bin": {
+ "csv2json": "bin/dsv2json",
+ "csv2tsv": "bin/dsv2dsv",
+ "dsv2dsv": "bin/dsv2dsv",
+ "dsv2json": "bin/dsv2json",
+ "json2csv": "bin/json2dsv",
+ "json2dsv": "bin/json2dsv",
+ "json2tsv": "bin/json2dsv",
+ "tsv2csv": "bin/dsv2dsv",
+ "tsv2json": "bin/dsv2json"
+ }
+ },
+ "node_modules/d3-ease": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.3.tgz",
"integrity": "sha1-aL+8NJM4o4DETYrMT7wzBKotjA4="
},
- "d3-force": {
+ "node_modules/d3-force": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.1.0.tgz",
"integrity": "sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==",
- "requires": {
+ "dependencies": {
"d3-collection": "1",
"d3-dispatch": "1",
"d3-quadtree": "1",
"d3-timer": "1"
}
},
- "d3-format": {
+ "node_modules/d3-format": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.2.2.tgz",
"integrity": "sha512-zH9CfF/3C8zUI47nsiKfD0+AGDEuM8LwBIP7pBVpyR4l/sKkZqITmMtxRp04rwBrlshIZ17XeFAaovN3++wzkw=="
},
- "d3-geo": {
+ "node_modules/d3-geo": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.9.1.tgz",
"integrity": "sha512-l9wL/cEQkyZQYXw3xbmLsH3eQ5ij+icNfo4r0GrLa5rOCZR/e/3am45IQ0FvQ5uMsv+77zBRunLc9ufTWSQYFA==",
- "requires": {
+ "dependencies": {
"d3-array": "1"
}
},
- "d3-hierarchy": {
+ "node_modules/d3-hierarchy": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz",
"integrity": "sha1-ochFxC+Eoga88cAcAQmOpN2qeiY="
},
- "d3-interpolate": {
+ "node_modules/d3-interpolate": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.6.tgz",
"integrity": "sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==",
- "requires": {
+ "dependencies": {
"d3-color": "1"
}
},
- "d3-path": {
+ "node_modules/d3-path": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.5.tgz",
"integrity": "sha1-JB6xhJvZ6egCHA0KeZ+KDo5EF2Q="
},
- "d3-polygon": {
+ "node_modules/d3-polygon": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.3.tgz",
"integrity": "sha1-FoiOkCZGCTPysXllKtN4Ik04LGI="
},
- "d3-quadtree": {
+ "node_modules/d3-quadtree": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.3.tgz",
"integrity": "sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg="
},
- "d3-queue": {
+ "node_modules/d3-queue": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-3.0.7.tgz",
"integrity": "sha1-yTouVLQXwJWRKdfXP2z31Ckudhg="
},
- "d3-random": {
+ "node_modules/d3-random": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.0.tgz",
"integrity": "sha1-ZkLlBsb6OmSFldKyRpeIqNElKdM="
},
- "d3-request": {
+ "node_modules/d3-request": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/d3-request/-/d3-request-1.0.6.tgz",
"integrity": "sha512-FJj8ySY6GYuAJHZMaCQ83xEYE4KbkPkmxZ3Hu6zA1xxG2GD+z6P+Lyp+zjdsHf0xEbp2xcluDI50rCS855EQ6w==",
- "requires": {
+ "dependencies": {
"d3-collection": "1",
"d3-dispatch": "1",
"d3-dsv": "1",
"xmlhttprequest": "1"
}
},
- "d3-scale": {
+ "node_modules/d3-scale": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz",
"integrity": "sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==",
- "requires": {
+ "dependencies": {
"d3-array": "^1.2.0",
"d3-collection": "1",
"d3-color": "1",
@@ -589,42 +696,42 @@
"d3-time-format": "2"
}
},
- "d3-selection": {
+ "node_modules/d3-selection": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.3.0.tgz",
"integrity": "sha512-qgpUOg9tl5CirdqESUAu0t9MU/t3O9klYfGfyKsXEmhyxyzLpzpeh08gaxBUTQw1uXIOkr/30Ut2YRjSSxlmHA=="
},
- "d3-shape": {
+ "node_modules/d3-shape": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.2.0.tgz",
"integrity": "sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=",
- "requires": {
+ "dependencies": {
"d3-path": "1"
}
},
- "d3-time": {
+ "node_modules/d3-time": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.8.tgz",
"integrity": "sha512-YRZkNhphZh3KcnBfitvF3c6E0JOFGikHZ4YqD+Lzv83ZHn1/u6yGenRU1m+KAk9J1GnZMnKcrtfvSktlA1DXNQ=="
},
- "d3-time-format": {
+ "node_modules/d3-time-format": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.1.tgz",
"integrity": "sha512-8kAkymq2WMfzW7e+s/IUNAtN/y3gZXGRrdGfo6R8NKPAA85UBTxZg5E61bR6nLwjPjj4d3zywSQe1CkYLPFyrw==",
- "requires": {
+ "dependencies": {
"d3-time": "1"
}
},
- "d3-timer": {
+ "node_modules/d3-timer": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.7.tgz",
"integrity": "sha512-vMZXR88XujmG/L5oB96NNKH5lCWwiLM/S2HyyAQLcjWJCloK5shxta4CwOFYLZoY3AWX73v8Lgv4cCAdWtRmOA=="
},
- "d3-transition": {
+ "node_modules/d3-transition": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.1.1.tgz",
"integrity": "sha512-xeg8oggyQ+y5eb4J13iDgKIjUcEfIOZs2BqV/eEmXm2twx80wTzJ4tB4vaZ5BKfz7XsI/DFmQL5me6O27/5ykQ==",
- "requires": {
+ "dependencies": {
"d3-color": "1",
"d3-dispatch": "1",
"d3-ease": "1",
@@ -633,16 +740,16 @@
"d3-timer": "1"
}
},
- "d3-voronoi": {
+ "node_modules/d3-voronoi": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz",
"integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw="
},
- "d3-zoom": {
+ "node_modules/d3-zoom": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.7.1.tgz",
"integrity": "sha512-sZHQ55DGq5BZBFGnRshUT8tm2sfhPHFnOlmPbbwTkAoPeVdRTkB4Xsf9GCY0TSHrTD8PeJPZGmP/TpGicwJDJQ==",
- "requires": {
+ "dependencies": {
"d3-dispatch": "1",
"d3-drag": "1",
"d3-interpolate": "1",
@@ -650,120 +757,136 @@
"d3-transition": "1"
}
},
- "dashdash": {
+ "node_modules/dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"optional": true,
- "requires": {
+ "dependencies": {
"assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
}
},
- "debug": {
+ "node_modules/debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)",
"dev": true,
- "requires": {
+ "dependencies": {
"ms": "^2.1.1"
}
},
- "decamelize": {
+ "node_modules/decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "deep-is": {
+ "node_modules/deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
"optional": true
},
- "define-properties": {
+ "node_modules/define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"object-keys": "^1.0.12"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "delayed-stream": {
+ "node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "diff": {
+ "node_modules/diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
},
- "dom-serializer": {
+ "node_modules/dom-serializer": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
"integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
- "requires": {
+ "dependencies": {
"domelementtype": "^1.3.0",
"entities": "^1.1.1"
}
},
- "domelementtype": {
+ "node_modules/domelementtype": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
"integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
},
- "domhandler": {
+ "node_modules/domhandler": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
"integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
- "requires": {
+ "dependencies": {
"domelementtype": "1"
}
},
- "domutils": {
+ "node_modules/domutils": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "requires": {
+ "dependencies": {
"dom-serializer": "0",
"domelementtype": "1"
}
},
- "ecc-jsbn": {
+ "node_modules/ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"optional": true,
- "requires": {
+ "dependencies": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
}
},
- "emoji-images": {
+ "node_modules/emoji-images": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/emoji-images/-/emoji-images-0.1.1.tgz",
"integrity": "sha1-+ZLccgksA/vgkoJ2MZh+s7Exm2c="
},
- "emoji-regex": {
+ "node_modules/emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
"dev": true
},
- "entities": {
+ "node_modules/entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
},
- "es-abstract": {
+ "node_modules/es-abstract": {
"version": "1.17.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
"integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
"has": "^1.0.3",
@@ -775,547 +898,722 @@
"object.assign": "^4.1.0",
"string.prototype.trimleft": "^2.1.1",
"string.prototype.trimright": "^2.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "es-to-primitive": {
+ "node_modules/es-to-primitive": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
"integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
"dev": true,
- "requires": {
+ "dependencies": {
"is-callable": "^1.1.4",
"is-date-object": "^1.0.1",
"is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "es6-promise": {
+ "node_modules/es6-promise": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
"dev": true
},
- "es6-promisify": {
+ "node_modules/es6-promisify": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
"dev": true,
- "requires": {
+ "dependencies": {
"es6-promise": "^4.0.3"
}
},
- "escape-string-regexp": {
+ "node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
},
- "escodegen": {
+ "node_modules/escodegen": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
"integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
"optional": true,
- "requires": {
+ "dependencies": {
"esprima": "^4.0.1",
"estraverse": "^4.2.0",
"esutils": "^2.0.2",
- "optionator": "^0.8.1",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "optionalDependencies": {
"source-map": "~0.6.1"
}
},
- "esprima": {
+ "node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "estraverse": {
+ "node_modules/estraverse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=4.0"
+ }
},
- "esutils": {
+ "node_modules/esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "extend": {
+ "node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"optional": true
},
- "extend-shallow": {
+ "node_modules/extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
+ "dependencies": {
"is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "extract-zip": {
+ "node_modules/extract-zip": {
"version": "1.6.7",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
"integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
- "requires": {
+ "dependencies": {
"concat-stream": "1.6.2",
"debug": "2.6.9",
"mkdirp": "0.5.1",
"yauzl": "2.4.1"
},
+ "bin": {
+ "extract-zip": "cli.js"
+ }
+ },
+ "node_modules/extract-zip/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "extsprintf": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/extract-zip/node_modules/minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "node_modules/extract-zip/node_modules/mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
+ "dependencies": {
+ "minimist": "0.0.8"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/extract-zip/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "engines": [
+ "node >=0.6.0"
+ ],
"optional": true
},
- "fast-deep-equal": {
+ "node_modules/fast-deep-equal": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
"integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
"optional": true
},
- "fast-json-stable-stringify": {
+ "node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"optional": true
},
- "fast-levenshtein": {
+ "node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"optional": true
},
- "fd-slicer": {
+ "node_modules/fd-slicer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
"integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
- "requires": {
+ "dependencies": {
"pend": "~1.2.0"
}
},
- "fill-range": {
+ "node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "find-up": {
+ "node_modules/find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
- "requires": {
+ "dependencies": {
"locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "flat": {
+ "node_modules/flat": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
"integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
+ "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.",
"dev": true,
- "requires": {
+ "dependencies": {
"is-buffer": "~2.0.3"
+ },
+ "bin": {
+ "flat": "cli.js"
}
},
- "forever-agent": {
+ "node_modules/forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": "*"
+ }
},
- "form-data": {
+ "node_modules/form-data": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"optional": true,
- "requires": {
+ "dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
}
},
- "fs.realpath": {
+ "node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
- "fsevents": {
+ "node_modules/fsevents": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
"integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+ "deprecated": "\"Please update to latest v2.3 or v2.2\"",
"dev": true,
- "optional": true
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
},
- "function-bind": {
+ "node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
- "get-caller-file": {
+ "node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
},
- "getpass": {
+ "node_modules/getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"optional": true,
- "requires": {
+ "dependencies": {
"assert-plus": "^1.0.0"
}
},
- "glob": {
+ "node_modules/glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "requires": {
+ "dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "glob-parent": {
+ "node_modules/glob-parent": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
"integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
"dev": true,
- "requires": {
+ "dependencies": {
"is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "gray-matter": {
+ "node_modules/gray-matter": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz",
"integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==",
- "requires": {
+ "dependencies": {
"js-yaml": "^3.11.0",
"kind-of": "^6.0.2",
"section-matter": "^1.0.0",
"strip-bom-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.0"
}
},
- "growl": {
+ "node_modules/growl": {
"version": "1.10.5",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=4.x"
+ }
},
- "har-schema": {
+ "node_modules/har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=4"
+ }
},
- "har-validator": {
+ "node_modules/har-validator": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "deprecated": "this library is no longer supported",
"optional": true,
- "requires": {
+ "dependencies": {
"ajv": "^6.5.5",
"har-schema": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "has": {
+ "node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dev": true,
- "requires": {
+ "dependencies": {
"function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
}
},
- "has-flag": {
+ "node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
},
- "has-symbols": {
+ "node_modules/has-symbols": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "he": {
+ "node_modules/he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
},
- "highlight.js": {
+ "node_modules/highlight.js": {
"version": "9.18.1",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz",
- "integrity": "sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg=="
+ "integrity": "sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==",
+ "deprecated": "Version no longer supported. Upgrade to @latest",
+ "engines": {
+ "node": "*"
+ }
},
- "htmlparser2": {
+ "node_modules/htmlparser2": {
"version": "3.8.3",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
"integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
- "requires": {
+ "dependencies": {
"domelementtype": "1",
"domhandler": "2.3",
"domutils": "1.5",
"entities": "1.0",
"readable-stream": "1.1"
- },
- "dependencies": {
- "entities": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
- "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
- }
}
},
- "http-proxy-agent": {
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
+ },
+ "node_modules/http-proxy-agent": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
"integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
"dev": true,
- "requires": {
+ "dependencies": {
"agent-base": "4",
"debug": "3.1.0"
},
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/http-proxy-agent/node_modules/agent-base": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+ "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+ "dev": true,
+ "dependencies": {
+ "es6-promisify": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/http-proxy-agent/node_modules/debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
"dependencies": {
- "agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
- "dev": true,
- "requires": {
- "es6-promisify": "^5.0.0"
- }
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
- }
- },
- "http-signature": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/http-proxy-agent/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "node_modules/http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"optional": true,
- "requires": {
+ "dependencies": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.3.7"
}
},
- "https-proxy-agent": {
+ "node_modules/https-proxy-agent": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
"integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
- "requires": {
+ "dependencies": {
"agent-base": "5",
"debug": "4"
},
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/https-proxy-agent/node_modules/debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)",
"dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "requires": {
- "ms": "^2.1.1"
- }
- }
+ "ms": "^2.1.1"
}
},
- "iconv-lite": {
+ "node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
+ "dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "inflight": {
+ "node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
+ "dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
- "inherits": {
+ "node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
- "is-binary-path": {
+ "node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
- "requires": {
+ "dependencies": {
"binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "is-buffer": {
+ "node_modules/is-buffer": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
},
- "is-callable": {
+ "node_modules/is-callable": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "is-date-object": {
+ "node_modules/is-date-object": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "is-extendable": {
+ "node_modules/is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "is-extglob": {
+ "node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "is-fullwidth-code-point": {
+ "node_modules/is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
},
- "is-glob": {
+ "node_modules/is-glob": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
- "requires": {
+ "dependencies": {
"is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-number": {
+ "node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
},
- "is-regex": {
+ "node_modules/is-regex": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"has": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-symbol": {
+ "node_modules/is-symbol": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
"integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"has-symbols": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-typedarray": {
+ "node_modules/is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"optional": true
},
- "isarray": {
+ "node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
- "isexe": {
+ "node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
},
- "isstream": {
+ "node_modules/isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"optional": true
},
- "js-yaml": {
+ "node_modules/js-yaml": {
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
- "requires": {
+ "dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "jsbn": {
+ "node_modules/jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"optional": true
},
- "jsdom": {
+ "node_modules/jsdom": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
"integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
"optional": true,
- "requires": {
+ "dependencies": {
"abab": "^1.0.0",
"acorn": "^2.4.0",
"acorn-globals": "^1.0.4",
@@ -1333,186 +1631,223 @@
"xml-name-validator": ">= 2.0.1 < 3.0.0"
}
},
- "json-schema": {
+ "node_modules/json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"optional": true
},
- "json-schema-traverse": {
+ "node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"optional": true
},
- "json-stringify-safe": {
+ "node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"optional": true
},
- "jsprim": {
+ "node_modules/jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "engines": [
+ "node >=0.6.0"
+ ],
"optional": true,
- "requires": {
+ "dependencies": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
}
},
- "kind-of": {
+ "node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "levn": {
+ "node_modules/levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"optional": true,
- "requires": {
+ "dependencies": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "linkify-it": {
+ "node_modules/linkify-it": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
"integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
- "requires": {
+ "dependencies": {
"uc.micro": "^1.0.1"
}
},
- "locate-path": {
+ "node_modules/locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
- "requires": {
+ "dependencies": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "lodash": {
+ "node_modules/lodash": {
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
- "log-symbols": {
+ "node_modules/log-symbols": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
"integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "markdown-it": {
+ "node_modules/markdown-it": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz",
"integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==",
- "requires": {
+ "dependencies": {
"argparse": "^1.0.7",
"entities": "~2.0.0",
"linkify-it": "^2.0.0",
"mdurl": "^1.0.1",
"uc.micro": "^1.0.5"
},
- "dependencies": {
- "entities": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
- "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw=="
- }
+ "bin": {
+ "markdown-it": "bin/markdown-it.js"
}
},
- "markdown-it-checkbox": {
+ "node_modules/markdown-it-checkbox": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/markdown-it-checkbox/-/markdown-it-checkbox-1.1.0.tgz",
"integrity": "sha1-IM/5fzPXfRcvnc8bz8ks7MUzD6w=",
- "requires": {
+ "dependencies": {
"underscore": "^1.8.2"
}
},
- "markdown-it-container": {
+ "node_modules/markdown-it-container": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-2.0.0.tgz",
"integrity": "sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU="
},
- "markdown-it-emoji": {
+ "node_modules/markdown-it-emoji": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz",
"integrity": "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw="
},
- "markdown-it-include": {
+ "node_modules/markdown-it-include": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/markdown-it-include/-/markdown-it-include-1.1.0.tgz",
"integrity": "sha512-OeXvJHfEHrnXWH8+eqMeIX0aFJz4W2ULzfbEVGXBEXab7i3cqLWUxtiHUokZ0/A2uZvLXSaFns/BEVN/mINaCQ=="
},
- "markdown-it-named-headers": {
+ "node_modules/markdown-it-named-headers": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/markdown-it-named-headers/-/markdown-it-named-headers-0.0.4.tgz",
"integrity": "sha1-gu/CgyQkCmsed7mq5QF3HV81HB8=",
- "requires": {
+ "dependencies": {
"string": "^3.0.1"
}
},
- "markdown-it-plantuml": {
+ "node_modules/markdown-it-plantuml": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/markdown-it-plantuml/-/markdown-it-plantuml-1.4.1.tgz",
"integrity": "sha512-13KgnZaGYTHBp4iUmGofzZSBz+Zj6cyqfR0SXUIc9wgWTto5Xhn7NjaXYxY0z7uBeTUMlc9LMQq5uP4OM5xCHg=="
},
- "mdurl": {
+ "node_modules/markdown-it/node_modules/entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
+ "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw=="
+ },
+ "node_modules/mdurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
},
- "mime": {
+ "node_modules/mime": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
- "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
},
- "mime-db": {
+ "node_modules/mime-db": {
"version": "1.43.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
- "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "mime-types": {
+ "node_modules/mime-types": {
"version": "2.1.26",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
"integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
- "requires": {
+ "dependencies": {
"mime-db": "1.43.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "minimatch": {
+ "node_modules/minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
+ "dependencies": {
"brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "minimist": {
+ "node_modules/minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
- "mkdirp": {
+ "node_modules/mkdirp": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz",
- "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g=="
+ "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
},
- "mocha": {
+ "node_modules/mocha": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz",
"integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==",
"dev": true,
- "requires": {
+ "dependencies": {
"ansi-colors": "3.2.3",
"browser-stdout": "1.3.1",
"chokidar": "3.3.0",
@@ -1538,230 +1873,309 @@
"yargs-parser": "13.1.2",
"yargs-unparser": "1.6.0"
},
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mochajs"
+ }
+ },
+ "node_modules/mocha/node_modules/glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mocha/node_modules/mkdirp": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz",
+ "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==",
+ "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
+ "dev": true,
"dependencies": {
- "glob": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "mkdirp": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz",
- "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5"
- }
- }
- }
- },
- "ms": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
- "mustache": {
+ "node_modules/mustache": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz",
- "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA=="
+ "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==",
+ "bin": {
+ "mustache": "bin/mustache"
+ },
+ "engines": {
+ "npm": ">=1.4.0"
+ }
},
- "node-environment-flags": {
+ "node_modules/node-environment-flags": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz",
"integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==",
"dev": true,
- "requires": {
+ "dependencies": {
"object.getownpropertydescriptors": "^2.0.3",
"semver": "^5.7.0"
}
},
- "normalize-path": {
+ "node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "nth-check": {
+ "node_modules/nth-check": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
"integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
- "requires": {
+ "dependencies": {
"boolbase": "~1.0.0"
}
},
- "nwmatcher": {
+ "node_modules/nwmatcher": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
"integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==",
"optional": true
},
- "oauth-sign": {
+ "node_modules/oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": "*"
+ }
},
- "object-inspect": {
+ "node_modules/object-inspect": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
- "dev": true
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "object-keys": {
+ "node_modules/object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "object.assign": {
+ "node_modules/object.assign": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"dev": true,
- "requires": {
+ "dependencies": {
"define-properties": "^1.1.2",
"function-bind": "^1.1.1",
"has-symbols": "^1.0.0",
"object-keys": "^1.0.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "object.getownpropertydescriptors": {
+ "node_modules/object.getownpropertydescriptors": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
"integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
"dev": true,
- "requires": {
+ "dependencies": {
"define-properties": "^1.1.3",
"es-abstract": "^1.17.0-next.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "once": {
+ "node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
+ "dependencies": {
"wrappy": "1"
}
},
- "optionator": {
+ "node_modules/optionator": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
"integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
"optional": true,
- "requires": {
+ "dependencies": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.6",
"levn": "~0.3.0",
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2",
"word-wrap": "~1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "p-limit": {
+ "node_modules/p-limit": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
"integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "p-locate": {
+ "node_modules/p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "p-try": {
+ "node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
},
- "parse5": {
+ "node_modules/parse5": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
"integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
"optional": true
},
- "path-exists": {
+ "node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
},
- "path-is-absolute": {
+ "node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "pend": {
+ "node_modules/pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
},
- "performance-now": {
+ "node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"optional": true
},
- "picomatch": {
+ "node_modules/picomatch": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz",
"integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
},
- "prelude-ls": {
+ "node_modules/prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "process-nextick-args": {
+ "node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
- "progress": {
+ "node_modules/progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "proxy-from-env": {
+ "node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
- "psl": {
+ "node_modules/psl": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
"integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==",
"optional": true
},
- "punycode": {
+ "node_modules/punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=6"
+ }
},
- "puppeteer-core": {
+ "node_modules/puppeteer-core": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-2.1.1.tgz",
"integrity": "sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w==",
- "requires": {
+ "dependencies": {
"@types/mime-types": "^2.1.0",
"debug": "^4.1.0",
"extract-zip": "^1.6.6",
@@ -1773,63 +2187,81 @@
"rimraf": "^2.6.1",
"ws": "^6.1.0"
},
+ "engines": {
+ "node": ">=8.16.0"
+ }
+ },
+ "node_modules/puppeteer-core/node_modules/debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/puppeteer-core/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "qs": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=0.6"
+ }
},
- "readable-stream": {
+ "node_modules/readable-stream": {
"version": "1.1.14",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "requires": {
+ "dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
"isarray": "0.0.1",
"string_decoder": "~0.10.x"
}
},
- "readdirp": {
+ "node_modules/readdirp": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz",
"integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "removeNPMAbsolutePaths": {
+ "node_modules/removeNPMAbsolutePaths": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/removeNPMAbsolutePaths/-/removeNPMAbsolutePaths-2.0.0.tgz",
"integrity": "sha512-Hea7U6iJcD0NE/aqBqxBMPKeKaxjqMNyTTajmH2dH9hhafJ9Tem5r4UeJK8+BdE1MK9lqoOYqNM0Sq9rl1OIbQ==",
- "dev": true
+ "dev": true,
+ "bin": {
+ "removeNPMAbsolutePaths": "bin/removeNPMAbsolutePaths"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
},
- "request": {
+ "node_modules/request": {
"version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
"optional": true,
- "requires": {
+ "dependencies": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
"caseless": "~0.12.0",
@@ -1850,88 +2282,109 @@
"tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "require-directory": {
+ "node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "require-main-filename": {
+ "node_modules/require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
- "rimraf": {
+ "node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "requires": {
+ "dependencies": {
"glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "rw": {
+ "node_modules/rw": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
"integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
},
- "safe-buffer": {
+ "node_modules/safe-buffer": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
"optional": true
},
- "safer-buffer": {
+ "node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
- "sax": {
+ "node_modules/sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"optional": true
},
- "section-matter": {
+ "node_modules/section-matter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
"integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
- "requires": {
+ "dependencies": {
"extend-shallow": "^2.0.1",
"kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "semver": {
+ "node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
},
- "set-blocking": {
+ "node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true
},
- "source-map": {
+ "node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "sprintf-js": {
+ "node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
- "sshpk": {
+ "node_modules/sshpk": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
"optional": true,
- "requires": {
+ "dependencies": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
"bcrypt-pbkdf": "^1.0.0",
@@ -1941,339 +2394,423 @@
"jsbn": "~0.1.0",
"safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "string": {
+ "node_modules/string": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz",
"integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA="
},
- "string-width": {
+ "node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "node_modules/string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
- "requires": {
+ "dependencies": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "string.prototype.trimleft": {
+ "node_modules/string.prototype.trimleft": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
"integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
"dev": true,
- "requires": {
+ "dependencies": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "string.prototype.trimright": {
+ "node_modules/string.prototype.trimright": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
"integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
"dev": true,
- "requires": {
+ "dependencies": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "strip-ansi": {
+ "node_modules/strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
- "requires": {
+ "dependencies": {
"ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "strip-bom-string": {
+ "node_modules/strip-bom-string": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
- "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI="
+ "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "strip-json-comments": {
+ "node_modules/strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "supports-color": {
+ "node_modules/supports-color": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
"integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
"dev": true,
- "requires": {
+ "dependencies": {
"has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "symbol-tree": {
+ "node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"optional": true
},
- "to-regex-range": {
+ "node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
}
},
- "tough-cookie": {
+ "node_modules/tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"optional": true,
- "requires": {
+ "dependencies": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.8"
}
},
- "tr46": {
+ "node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
"optional": true
},
- "tunnel-agent": {
+ "node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"optional": true,
- "requires": {
+ "dependencies": {
"safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
}
},
- "tweetnacl": {
+ "node_modules/tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"optional": true
},
- "type-check": {
+ "node_modules/type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"optional": true,
- "requires": {
+ "dependencies": {
"prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "typedarray": {
+ "node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
- "uc.micro": {
+ "node_modules/uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
},
- "underscore": {
+ "node_modules/underscore": {
"version": "1.9.2",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz",
"integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ=="
},
- "uri-js": {
+ "node_modules/uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"optional": true,
- "requires": {
+ "dependencies": {
"punycode": "^2.1.0"
}
},
- "util-deprecate": {
+ "node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
- "uuid": {
+ "node_modules/uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "optional": true
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "optional": true,
+ "bin": {
+ "uuid": "bin/uuid"
+ }
},
- "verror": {
+ "node_modules/verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "engines": [
+ "node >=0.6.0"
+ ],
"optional": true,
- "requires": {
+ "dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
- "vscode-test": {
+ "node_modules/vscode-test": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.3.0.tgz",
"integrity": "sha512-LddukcBiSU2FVTDr3c1D8lwkiOvwlJdDL2hqVbn6gIz+rpTqUCkMZSKYm94Y1v0WXlHSDQBsXyY+tchWQgGVsw==",
+ "deprecated": "This package has been renamed to @vscode/test-electron, please update to the new name",
"dev": true,
- "requires": {
+ "dependencies": {
"http-proxy-agent": "^2.1.0",
"https-proxy-agent": "^2.2.4",
"rimraf": "^2.6.3"
},
+ "engines": {
+ "node": ">=8.9.3"
+ }
+ },
+ "node_modules/vscode-test/node_modules/agent-base": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+ "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+ "dev": true,
"dependencies": {
- "agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
- "dev": true,
- "requires": {
- "es6-promisify": "^5.0.0"
- }
- },
- "https-proxy-agent": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
- "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
- "dev": true,
- "requires": {
- "agent-base": "^4.3.0",
- "debug": "^3.1.0"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "webidl-conversions": {
+ "es6-promisify": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/vscode-test/node_modules/https-proxy-agent": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
+ "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^4.3.0",
+ "debug": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/vscode-test/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/webidl-conversions": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz",
"integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=",
"optional": true
},
- "whatwg-url-compat": {
+ "node_modules/whatwg-url-compat": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz",
"integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=",
"optional": true,
- "requires": {
+ "dependencies": {
"tr46": "~0.0.1"
}
},
- "which": {
+ "node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
}
},
- "which-module": {
+ "node_modules/which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
- "wide-align": {
+ "node_modules/wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"dev": true,
- "requires": {
+ "dependencies": {
"string-width": "^1.0.2 || 2"
}
},
- "word-wrap": {
+ "node_modules/word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "optional": true
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "wrap-ansi": {
+ "node_modules/wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
"dev": true,
- "requires": {
+ "dependencies": {
"ansi-styles": "^3.2.0",
"string-width": "^3.0.0",
"strip-ansi": "^5.0.0"
},
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
- }
- },
- "wrappy": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
- "ws": {
+ "node_modules/ws": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
"integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
- "requires": {
+ "dependencies": {
"async-limiter": "~1.0.0"
}
},
- "xml-name-validator": {
+ "node_modules/xml-name-validator": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
"integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
"optional": true
},
- "xmlhttprequest": {
+ "node_modules/xmlhttprequest": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
- "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw="
+ "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "y18n": {
+ "node_modules/y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
"dev": true
},
- "yargs": {
+ "node_modules/yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
"dev": true,
- "requires": {
+ "dependencies": {
"cliui": "^5.0.0",
"find-up": "^3.0.0",
"get-caller-file": "^2.0.1",
@@ -2284,62 +2821,72 @@
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^13.1.2"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
- }
- },
- "yargs-parser": {
+ }
+ },
+ "node_modules/yargs-parser": {
"version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
"dev": true,
- "requires": {
+ "dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
},
- "yargs-unparser": {
+ "node_modules/yargs-unparser": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
"integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
"dev": true,
- "requires": {
+ "dependencies": {
"flat": "^4.1.0",
"lodash": "^4.17.15",
"yargs": "^13.3.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "yauzl": {
+ "node_modules/yargs/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yauzl": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
"integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
- "requires": {
+ "dependencies": {
"fd-slicer": "~1.0.1"
}
}
diff --git a/package.json b/package.json
index 3cbebb0..aec5b5a 100644
--- a/package.json
+++ b/package.json
@@ -177,6 +177,11 @@
"default": false,
"description": "If markdown-pdf.stylesRelativePathFile option is set to true, the relative path set with markdown-pdf.styles is interpreted as relative from the file"
},
+ "markdown-pdf.importStylesheetAsStyletag": {
+ "type": "boolean",
+ "default": false,
+ "description": "If markdown-pdf.importStylesheetAsStyletag option is set to true, any contents of local stylesheets imported from the external stylesheet list will be included in the HTML file in a seperate