From dc8a098ce9c946e10dd4d1ed85694d498ee682ee Mon Sep 17 00:00:00 2001
From: Yiyi Wang
Date: Tue, 5 Sep 2023 20:42:52 +0800
Subject: [PATCH] Crossnote integration (#1739)
* feat: Started migrating to crossnote
* feat: Basically finished the integration
* feat: Added commands to open local crossnote config files
* fix: Fixed some webview bugs
* fix: Fixed less in vscode web extension
* refactor: Removed all unnecessary console.log
* feat: Updated to crossnote 0.8.3
* fix: Removed some commands
* feat: Updated crossnote to 0.8.6
* ci: Fixed check:all
---
.eslintignore | 3 +-
.gitignore | 3 +-
.prettierignore | 6 +-
README.md | 8 +-
build.js | 83 +-
copy-files.js | 39 -
gulpfile.js | 31 +
package.json | 59 +-
package.nls.json | 11 +-
package.nls.zh.json | 11 +-
src/config.ts | 229 +-
src/extension-common.ts | 1017 +++++
src/extension-web.ts | 9 +
src/extension.ts | 894 +----
src/image-helper.ts | 27 +-
...ontent-provider.ts => preview-provider.ts} | 636 ++--
src/utils.ts | 126 +
src/utils/path-resolver.ts | 85 -
src/vscode-fs.ts | 60 +
test/markdown/README.md | 9 +
test/markdown/basics.md | 70 +
test/markdown/code-chunks.md | 184 +
test/markdown/data/sp500.csv | 124 +
test/markdown/diagrams.md | 371 ++
test/markdown/file-imports.md | 24 +
test/markdown/interactive-diagrams.md | 372 ++
test/markdown/math.md | 41 +
tsconfig.json | 22 +-
yarn.lock | 3318 ++++++++++++++++-
29 files changed, 6207 insertions(+), 1665 deletions(-)
delete mode 100644 copy-files.js
create mode 100644 gulpfile.js
create mode 100644 src/extension-common.ts
create mode 100644 src/extension-web.ts
rename src/{preview-content-provider.ts => preview-provider.ts} (58%)
create mode 100644 src/utils.ts
delete mode 100644 src/utils/path-resolver.ts
create mode 100644 src/vscode-fs.ts
create mode 100644 test/markdown/README.md
create mode 100644 test/markdown/basics.md
create mode 100644 test/markdown/code-chunks.md
create mode 100644 test/markdown/data/sp500.csv
create mode 100644 test/markdown/diagrams.md
create mode 100644 test/markdown/file-imports.md
create mode 100644 test/markdown/interactive-diagrams.md
create mode 100644 test/markdown/math.md
diff --git a/.eslintignore b/.eslintignore
index 80b5bdf..18cc19b 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -13,4 +13,5 @@ out
## special cases
-mume
\ No newline at end of file
+mume
+crossnote
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index ce4f23b..50883f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@ node_modules
out
.direnv
mume
-crossnote
\ No newline at end of file
+crossnote
+.vscode-test-web
diff --git a/.prettierignore b/.prettierignore
index 148bc4f..dd68428 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -5,13 +5,13 @@
!*.md
!*.ts
-
## same as in .gitignore
.vscode-test
*.vsix
node_modules
out
-
+tsconfig.json
## special cases
-mume
\ No newline at end of file
+mume
+crossnote
diff --git a/README.md b/README.md
index a636cf6..82f9999 100644
--- a/README.md
+++ b/README.md
@@ -10,16 +10,16 @@
-atom
+Atom
&
-vscode
+VSCode
+&
+VSCode for the Web
-If you are interested, please try out our new prototype web app: [0xGG/crossnote](https://github.com/0xGG/crossnote)
-
## Supporting this project
Markdown Preview Enhanced is an open source project released under the [University of Illinois/NCSA Open Source License](LICENSE.md). Its ongoing development is made possible thanks to the support by these awesome [backers](https://shd101wyy.github.io/markdown-preview-enhanced/#/backers). You can help make this project better by [supporting us on GitHub Sponsors](https://github.com/sponsors/shd101wyy), [PayPal](https://shd101wyy.github.io/markdown-preview-enhanced/#/paypal), or [微信支付 Wechat Pay](https://shd101wyy.github.io/markdown-preview-enhanced/#/wechat). Thank you!
diff --git a/build.js b/build.js
index 01a4b87..91a1785 100644
--- a/build.js
+++ b/build.js
@@ -1,43 +1,102 @@
const { context, build } = require('esbuild');
+const { polyfillNode } = require('esbuild-plugin-polyfill-node');
/**
* @type {import('esbuild').BuildOptions}
*/
-const sharedConfig = {
+const nativeConfig = {
entryPoints: ['./src/extension.ts'],
bundle: true,
minify: true,
+ platform: 'node', // For CJS
+ outfile: './out/native/extension.js',
+ target: 'node16',
+ format: 'cjs',
+ external: ['vscode'],
+};
+
+// FIX:
+const defaultDocument = {
+ readyState: 'ready',
+};
+const defaultWindow = {
+ document: {
+ currentScript: {
+ dataset: {},
+ },
+ },
+ location: {
+ protocol: 'https:',
+ },
+ less: {
+ onReady: false,
+ async: false,
+ },
};
/**
* @type {import('esbuild').BuildOptions}
*/
-const cjsConfig = {
- ...sharedConfig,
- platform: 'node', // For CJS
- outfile: './out/native/extension.js',
- target: 'node16',
+const webConfig = {
+ entryPoints: ['./src/extension-web.ts'],
+ bundle: true,
+ minify: true,
+ platform: 'browser', // For ESM
+ outfile: './out/web/extension.js',
+ target: 'es2020',
format: 'cjs',
external: ['vscode'],
+ plugins: [
+ polyfillNode({
+ polyfills: {
+ fs: true,
+ },
+ globals: {
+ // global: true,
+ },
+ }),
+ ],
+ define: {
+ // eslint-disable-next-line @typescript-eslint/naming-convention
+ // window: 'globalThis',
+ // global: 'globalThis',
+ // window: "globalThis",
+ window: JSON.stringify(defaultWindow),
+ // document: JSON.stringify(defaultDocument),
+ 'process.env.IS_VSCODE_WEB_EXTENSION': '"true"',
+ },
};
async function main() {
try {
// Watch mode
if (process.argv.includes('--watch')) {
- // CommonJS
- const cjsContext = await context({
- ...cjsConfig,
+ // Native
+ const nativeContext = await context({
+ ...nativeConfig,
sourcemap: true,
minify: false,
// bundle: false,
// external: undefined,
});
- await cjsContext.watch();
+
+ // Web
+ const webContext = await context({
+ ...webConfig,
+ sourcemap: true,
+ minify: false,
+ define: {
+ ...(webConfig.define ?? {}),
+ ...{
+ 'process.env.IS_VSCODE_WEB_EXTENSION_DEV_MODE': '"true"',
+ },
+ },
+ });
+
+ await Promise.all([nativeContext.watch(), webContext.watch()]);
} else {
// Build mode
- // CommonJS
- await build(cjsConfig);
+ await Promise.all([build(nativeConfig), build(webConfig)]);
}
} catch (error) {
console.error(error);
diff --git a/copy-files.js b/copy-files.js
deleted file mode 100644
index a37c797..0000000
--- a/copy-files.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Copy files from
- * - ./node_modules/@shd101wyy/mume/out/dependencies/. to ./mume/dependencies/
- * - ./node_modules/@shd101wyy/mume/out/styles/. to ./mume/styles/
- * - ./node_modules/@shd101wyy/mume/out/webview/. to ./mume/webview/
- */
-const fs = require('fs');
-
-const copyData = [
- {
- source: './node_modules/@shd101wyy/mume/out/dependencies/',
- target: './mume/dependencies/',
- },
- {
- source: './node_modules/@shd101wyy/mume/out/styles/',
- target: './mume/styles/',
- },
- {
- source: './node_modules/@shd101wyy/mume/out/webview/',
- target: './mume/webview/',
- },
-];
-
-// Delete ./mume directory
-if (fs.existsSync('./mume')) {
- fs.rmdirSync('./mume', { recursive: true });
-}
-
-// Make source directories
-copyData.forEach(data => {
- fs.mkdirSync(data.target, { recursive: true });
-});
-
-// Copy directories
-copyData.forEach(data => {
- fs.cpSync(data.source, data.target, { recursive: true });
-});
-
-console.log('Copy files done.');
diff --git a/gulpfile.js b/gulpfile.js
new file mode 100644
index 0000000..a9995a7
--- /dev/null
+++ b/gulpfile.js
@@ -0,0 +1,31 @@
+/**
+ * Delete ./crossnote directory
+ * Then copy files from
+ * - ./node_modules/crossnote/out/dependencies/. to ./crossnote/dependencies/
+ * - ./node_modules/crossnote/out/styles/. to ./crossnote/styles/
+ * - ./node_modules/crossnote/out/webview/. to ./crossnote/webview/
+ */
+const gulp = require('gulp');
+const fs = require('fs');
+
+gulp.task('copy-files', cb => {
+ // Delete ./crossnote directory
+ if (fs.existsSync('./crossnote')) {
+ fs.rmSync('./crossnote', { recursive: true });
+ }
+
+ // Copy files
+ gulp
+ .src('./node_modules/crossnote/out/dependencies/**/*')
+ .pipe(gulp.dest('./crossnote/dependencies/'));
+ gulp
+ .src('./node_modules/crossnote/out/styles/**/*')
+ .pipe(gulp.dest('./crossnote/styles/'));
+ gulp
+ .src('./node_modules/crossnote/out/webview/**/*')
+ .pipe(gulp.dest('./crossnote/webview/'));
+
+ console.log('Copy files done.');
+
+ cb();
+});
diff --git a/package.json b/package.json
index 950ee4c..0ec7dcc 100644
--- a/package.json
+++ b/package.json
@@ -21,18 +21,20 @@
],
"publisher": "shd101wyy",
"main": "./out/native/extension.js",
+ "browser": "./out/web/extension.js",
"scripts": {
"build": "yarn copy:files && rm -rf ./out && node build.js",
- "check:all": "yarn check:eslint && yarn check:prettier && yarn check:tsc",
+ "check:all": "yarn check:eslint && yarn check:prettier",
"check:eslint": "eslint \"**/*\"",
"check:prettier": "prettier --check \"**/*.*\"",
- "check:tsc": "tsc --project . --noEmit",
- "copy:files": "node copy-files.js",
+ "copy:files": "gulp copy-files",
"fix:all": "yarn fix:eslint && yarn fix:eslint && yarn fix:prettier",
"fix:eslint": "eslint --fix \"**/*\"",
"fix:prettier": "prettier --write \"**/*.*\"",
+ "run-in-browser": "concurrently \"vscode-test-web --browserType=chromium --extensionDevelopmentPath=. .\" \"npx http-server ./crossnote -p 6789 --cors\"",
+ "run-in-vscode-dev": "npx serve --cors -l 5000 --ssl-cert $HOME/certs/localhost.pem --ssl-key $HOME/certs/localhost-key.pem",
"test": "yarn build && node ./node_modules/vscode/bin/test",
- "vscode:prepublish": "yarn build",
+ "vscode:prepublish": "yarn install && yarn build",
"watch": "yarn copy:files && rm -rf ./out && node build.js --watch"
},
"contributes": {
@@ -85,7 +87,12 @@
},
{
"command": "markdown-preview-enhanced.customizeCss",
- "title": "%markdown-preview-enhanced.customizeCss.title%"
+ "title": "%markdown-preview-enhanced.customizeCss.title%",
+ "enablement": "!isWeb"
+ },
+ {
+ "command": "markdown-preview-enhanced.customizeCssInWorkspace",
+ "title": "%markdown-preview-enhanced.customizeCssInWorkspace.title%"
},
{
"command": "markdown-preview-enhanced.insertNewSlide",
@@ -101,27 +108,31 @@
},
{
"command": "markdown-preview-enhanced.createTOC",
- "title": "%markdown-preview-enhanced.createTOC.title%"
+ "title": "%markdown-preview-enhanced.createTOC.title%",
+ "enablement": "!isWeb"
},
{
- "command": "markdown-preview-enhanced.openMermaidConfig",
- "title": "%markdown-preview-enhanced.openMermaidConfig.title%"
+ "command": "markdown-preview-enhanced.openConfigScript",
+ "title": "%markdown-preview-enhanced.openConfigScript.title%",
+ "enablement": "!isWeb"
},
{
- "command": "markdown-preview-enhanced.openMathJaxConfig",
- "title": "%markdown-preview-enhanced.openMathJaxConfig.title%"
+ "command": "markdown-preview-enhanced.extendParser",
+ "title": "%markdown-preview-enhanced.extendParser.title%",
+ "enablement": "!isWeb"
},
{
- "command": "markdown-preview-enhanced.openKaTeXConfig",
- "title": "%markdown-preview-enhanced.openKaTeXConfig.title%"
+ "command": "markdown-preview-enhanced.openConfigScriptInWorkspace",
+ "title": "%markdown-preview-enhanced.openConfigScriptInWorkspace.title%"
},
{
- "command": "markdown-preview-enhanced.extendParser",
- "title": "%markdown-preview-enhanced.extendParser.title%"
+ "command": "markdown-preview-enhanced.extendParserInWorkspace",
+ "title": "%markdown-preview-enhanced.extendParserInWorkspace.title%"
},
{
"command": "markdown-preview-enhanced.showUploadedImages",
- "title": "%markdown-preview-enhanced.showUploadedImages.title%"
+ "title": "%markdown-preview-enhanced.showUploadedImages.title%",
+ "enablement": "!isWeb"
}
],
"configuration": {
@@ -129,7 +140,7 @@
"title": "Markdown Preview Enhanced",
"properties": {
"markdown-preview-enhanced.configPath": {
- "description": "The configuration directory path. Leave it empty to use '~/.mume' as the config path. Please reload vscode to take effect.",
+ "markdownDescription": "Restart is required after changes. The configuration directory path. Leave it empty to use `$HOME/.crossnote` for Windows or `$XDG_CONFIG_HOME/.crossnote` or `$HOME/.local/state/crossnote` as the config path.",
"default": "",
"type": "string"
},
@@ -247,14 +258,9 @@
},
"markdown-preview-enhanced.useGitHubStylePipedLink": {
"description": "If checked, we use GitHub style piped wiki links, i.e. [[linkText|wikiLink]]. Otherwise, we use [[wikiLink|linkText]] as the original Wikipedia style.",
- "default": true,
+ "default": false,
"type": "boolean"
},
- "markdown-preview-enhanced.wikiLinkFileExtension": {
- "description": "By default, the extension for wikilink is `.md`. For example: [[test]] will direct to file path `test.md`.",
- "default": ".md",
- "type": "string"
- },
"markdown-preview-enhanced.enableEmojiSyntax": {
"description": "Enable emoji & font-awesome plugin. This only works for markdown-it parser, but not pandoc parser.",
"default": true,
@@ -591,8 +597,8 @@
]
},
"dependencies": {
- "@shd101wyy/mume": "0.7.9",
- "@types/vfile": "^3.0.2"
+ "@types/vfile": "^3.0.2",
+ "crossnote": "^0.8.6"
},
"devDependencies": {
"@types/cheerio": "0.22.11",
@@ -601,8 +607,13 @@
"@types/vscode": "1.80.0",
"@typescript-eslint/eslint-plugin": "^6.5.0",
"@typescript-eslint/parser": "^6.5.0",
+ "@vscode/test-web": "^0.0.45",
+ "concurrently": "^8.2.1",
"esbuild": "^0.19.2",
+ "esbuild-plugin-polyfill-node": "^0.3.0",
"eslint": "^8.48.0",
+ "gulp": "^4.0.2",
+ "http-server": "^14.1.1",
"husky": "^3.0.9",
"lint-staged": "^9.4.2",
"mocha": "^6.1.4",
diff --git a/package.nls.json b/package.nls.json
index 706d0c8..66cc0e1 100644
--- a/package.nls.json
+++ b/package.nls.json
@@ -10,14 +10,15 @@
"markdown-preview-enhanced.runAllCodeChunks.title": "Markdown Preview Enhanced: Run All Code Chunks",
"markdown-preview-enhanced.runCodeChunk.title": "Markdown Preview Enhanced: Run Code Chunk",
"markdown-preview-enhanced.syncPreview.title": "Markdown Preview Enhanced: Sync Preview",
- "markdown-preview-enhanced.customizeCss.title": "Markdown Preview Enhanced: Customize CSS",
+ "markdown-preview-enhanced.customizeCss.title": "Markdown Preview Enhanced: Customize CSS (Global)",
+ "markdown-preview-enhanced.customizeCssInWorkspace.title": "Markdown Preview Enhanced: Customize CSS (Workspace)",
"markdown-preview-enhanced.insertNewSlide.title": "Markdown Preview Enhanced: Insert New Slide",
"markdown-preview-enhanced.insertTable.title": "Markdown Preview Enhanced: Insert Table",
"markdown-preview-enhanced.insertPagebreak.title": "Markdown Preview Enhanced: Insert Page Break",
"markdown-preview-enhanced.createTOC.title": "Markdown Preview Enhanced: Create TOC",
- "markdown-preview-enhanced.openMermaidConfig.title": "Markdown Preview Enhanced: Open Mermaid Config",
- "markdown-preview-enhanced.openMathJaxConfig.title": "Markdown Preview Enhanced: Open MathJax Config",
- "markdown-preview-enhanced.openKaTeXConfig.title": "Markdown Preview Enhanced: Open KaTeX Config",
- "markdown-preview-enhanced.extendParser.title": "Markdown Preview Enhanced: Extend Parser",
+ "markdown-preview-enhanced.openConfigScript.title": "Markdown Preview Enhanced: Open Config Script (Global)",
+ "markdown-preview-enhanced.openConfigScriptInWorkspace.title": "Markdown Preview Enhanced: Open Config Script (Workspace)",
+ "markdown-preview-enhanced.extendParser.title": "Markdown Preview Enhanced: Extend Parser (Global)",
+ "markdown-preview-enhanced.extendParserInWorkspace.title": "Markdown Preview Enhanced: Extend Parser (Workspace)",
"markdown-preview-enhanced.showUploadedImages.title": "Markdown Preview Enhanced: Show Uploaded Images"
}
diff --git a/package.nls.zh.json b/package.nls.zh.json
index 1e648aa..20db3ac 100644
--- a/package.nls.zh.json
+++ b/package.nls.zh.json
@@ -10,14 +10,15 @@
"markdown-preview-enhanced.runAllCodeChunks.title": "MPE:运行所有代码块",
"markdown-preview-enhanced.runCodeChunk.title": "MPE:运行代码块",
"markdown-preview-enhanced.syncPreview.title": "MPE:同步预览",
- "markdown-preview-enhanced.customizeCss.title": "MPE:自定义样式",
+ "markdown-preview-enhanced.customizeCss.title": "MPE:自定义样式(全局)",
+ "markdown-preview-enhanced.customizeCssInWorkspace.title": "MPE:自定义样式(工作区)",
"markdown-preview-enhanced.insertNewSlide.title": "MPE:插入新的幻灯片",
"markdown-preview-enhanced.insertTable.title": "MPE:插入表格",
"markdown-preview-enhanced.insertPagebreak.title": "MPE:插入断页符",
"markdown-preview-enhanced.createTOC.title": "MPE:创建目录列表",
- "markdown-preview-enhanced.openMermaidConfig.title": "MPE:打开 mermaid 设置文件",
- "markdown-preview-enhanced.openMathJaxConfig.title": "MPE:打开 MathJax 设置文件",
- "markdown-preview-enhanced.openKaTeXConfig.title": "MPE:打开 KaTeX 设置文件",
- "markdown-preview-enhanced.extendParser.title": "MPE:扩展 Parser",
+ "markdown-preview-enhanced.openConfigScript.title": "MPE:打开配置脚本(全局)",
+ "markdown-preview-enhanced.openConfigScriptInWorkspace.title": "MPE:打开配置脚本(工作区)",
+ "markdown-preview-enhanced.extendParser.title": "MPE:扩展 Parser(全局)",
+ "markdown-preview-enhanced.extendParserInWorkspace.title": "MPE:扩展 Parser(工作区)",
"markdown-preview-enhanced.showUploadedImages.title": "MPE:显示图片上传历史"
}
diff --git a/src/config.ts b/src/config.ts
index 4dedf25..79a1bc6 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -1,14 +1,16 @@
import {
CodeBlockTheme,
- MarkdownEngineConfig,
+ FrontMatterRenderingOption,
MathRenderingOption,
MermaidTheme,
+ NotebookConfig,
+ ParserConfig,
PreviewTheme,
RevealJsTheme,
- utility,
-} from '@shd101wyy/mume';
+ getDefaultNotebookConfig,
+} from 'crossnote';
import * as vscode from 'vscode';
-import { PathResolver } from './utils/path-resolver.js';
+import { isVSCodeWebExtension } from './utils';
export enum PreviewColorScheme {
selectedPreviewTheme = 'selectedPreviewTheme',
@@ -16,7 +18,7 @@ export enum PreviewColorScheme {
editorColorScheme = 'editorColorScheme',
}
-export class MarkdownPreviewEnhancedConfig implements MarkdownEngineConfig {
+export class MarkdownPreviewEnhancedConfig implements NotebookConfig {
public static getCurrentConfig() {
return new MarkdownPreviewEnhancedConfig();
}
@@ -28,11 +30,10 @@ export class MarkdownPreviewEnhancedConfig implements MarkdownEngineConfig {
public readonly enableWikiLinkSyntax: boolean;
public readonly enableLinkify: boolean;
public readonly useGitHubStylePipedLink: boolean;
- public readonly wikiLinkFileExtension: string;
public readonly enableEmojiSyntax: boolean;
public readonly enableExtendedTableSyntax: boolean;
public readonly enableCriticMarkupSyntax: boolean;
- public readonly frontMatterRenderingOption: string;
+ public readonly frontMatterRenderingOption: FrontMatterRenderingOption;
public readonly mathRenderingOption: MathRenderingOption;
public readonly mathInlineDelimiters: string[][];
public readonly mathBlockDelimiters: string[][];
@@ -78,94 +79,138 @@ export class MarkdownPreviewEnhancedConfig implements MarkdownEngineConfig {
const config = vscode.workspace.getConfiguration(
'markdown-preview-enhanced',
);
+ const defaultConfig = getDefaultNotebookConfig();
- this.configPath = (
- config.get('configPath') || utility.getConfigPath()
- ).trim();
- this.configPath = PathResolver.resolvePath(this.configPath);
+ this.configPath = config.get('configPath') ?? '';
+ this.usePandocParser = isVSCodeWebExtension()
+ ? false // pandoc is not supported in web extension
+ : config.get('usePandocParser') ?? defaultConfig.usePandocParser;
+ this.breakOnSingleNewLine =
+ config.get('breakOnSingleNewLine') ??
+ defaultConfig.breakOnSingleNewLine;
+ this.enableTypographer =
+ config.get('enableTypographer') ??
+ defaultConfig.enableTypographer;
+ this.enableWikiLinkSyntax =
+ config.get('enableWikiLinkSyntax') ??
+ defaultConfig.enableWikiLinkSyntax;
+ this.enableLinkify =
+ config.get('enableLinkify') ?? defaultConfig.enableLinkify;
+ this.useGitHubStylePipedLink =
+ config.get('useGitHubStylePipedLink') ??
+ defaultConfig.useGitHubStylePipedLink;
+ this.enableEmojiSyntax =
+ config.get('enableEmojiSyntax') ??
+ defaultConfig.enableEmojiSyntax;
+ this.enableExtendedTableSyntax =
+ config.get('enableExtendedTableSyntax') ??
+ defaultConfig.enableExtendedTableSyntax;
+ this.enableCriticMarkupSyntax =
+ config.get('enableCriticMarkupSyntax') ??
+ defaultConfig.enableCriticMarkupSyntax;
+ this.frontMatterRenderingOption =
+ config.get('frontMatterRenderingOption') ??
+ defaultConfig.frontMatterRenderingOption;
+ this.mermaidTheme =
+ config.get('mermaidTheme') ?? defaultConfig.mermaidTheme;
+ this.mathRenderingOption =
+ (config.get('mathRenderingOption') as MathRenderingOption) ??
+ defaultConfig.mathRenderingOption;
+ this.mathInlineDelimiters =
+ config.get('mathInlineDelimiters') ??
+ defaultConfig.mathInlineDelimiters;
+ this.mathBlockDelimiters =
+ config.get('mathBlockDelimiters') ??
+ defaultConfig.mathBlockDelimiters;
+ this.mathRenderingOnlineService =
+ config.get('mathRenderingOnlineService') ??
+ defaultConfig.mathRenderingOnlineService;
+ this.mathjaxV3ScriptSrc =
+ config.get('mathjaxV3ScriptSrc') ??
+ defaultConfig.mathjaxV3ScriptSrc;
+ this.codeBlockTheme =
+ config.get('codeBlockTheme') ??
+ defaultConfig.codeBlockTheme;
+ this.previewTheme =
+ config.get('previewTheme') ?? defaultConfig.previewTheme;
+ this.revealjsTheme =
+ config.get('revealjsTheme') ?? defaultConfig.revealjsTheme;
+ this.protocolsWhiteList =
+ config.get('protocolsWhiteList') ??
+ defaultConfig.protocolsWhiteList;
+ this.imageFolderPath =
+ config.get('imageFolderPath') ?? defaultConfig.imageFolderPath;
+ this.imageUploader = config.get('imageUploader') ?? 'imgur';
+ this.printBackground =
+ config.get('printBackground') ?? defaultConfig.printBackground;
+ this.chromePath =
+ config.get('chromePath') ?? defaultConfig.chromePath;
+ this.imageMagickPath =
+ config.get('imageMagickPath') ?? defaultConfig.imageMagickPath;
+ this.pandocPath =
+ config.get('pandocPath') ?? defaultConfig.pandocPath;
+ this.pandocMarkdownFlavor =
+ config.get('pandocMarkdownFlavor') ??
+ defaultConfig.pandocMarkdownFlavor;
+ this.pandocArguments =
+ config.get('pandocArguments') ?? defaultConfig.pandocArguments;
+ this.latexEngine =
+ config.get('latexEngine') ?? defaultConfig.latexEngine;
+ this.enableScriptExecution =
+ config.get('enableScriptExecution') ??
+ defaultConfig.enableScriptExecution;
- this.usePandocParser = config.get('usePandocParser');
- this.breakOnSingleNewLine = config.get('breakOnSingleNewLine');
- this.enableTypographer = config.get('enableTypographer');
- this.enableWikiLinkSyntax = config.get('enableWikiLinkSyntax');
- this.enableLinkify = config.get('enableLinkify');
- this.useGitHubStylePipedLink = config.get(
- 'useGitHubStylePipedLink',
- );
- this.wikiLinkFileExtension = config.get('wikiLinkFileExtension');
- this.enableEmojiSyntax = config.get('enableEmojiSyntax');
- this.enableExtendedTableSyntax = config.get(
- 'enableExtendedTableSyntax',
- );
- this.enableCriticMarkupSyntax = config.get(
- 'enableCriticMarkupSyntax',
- );
- this.frontMatterRenderingOption = config.get(
- 'frontMatterRenderingOption',
- );
- this.mermaidTheme = config.get('mermaidTheme');
- this.mathRenderingOption = config.get(
- 'mathRenderingOption',
- ) as MathRenderingOption;
- this.mathInlineDelimiters = config.get('mathInlineDelimiters');
- this.mathBlockDelimiters = config.get('mathBlockDelimiters');
- this.mathRenderingOnlineService = config.get(
- 'mathRenderingOnlineService',
- );
- this.mathjaxV3ScriptSrc = config.get('mathjaxV3ScriptSrc');
- this.codeBlockTheme = config.get('codeBlockTheme');
- this.previewTheme = config.get('previewTheme');
- this.revealjsTheme = config.get('revealjsTheme');
- this.protocolsWhiteList = config.get('protocolsWhiteList');
- this.imageFolderPath = config.get('imageFolderPath');
- this.imageUploader = config.get('imageUploader');
- this.printBackground = config.get('printBackground');
- this.chromePath = config.get('chromePath');
- this.imageMagickPath = config.get('imageMagickPath');
- this.pandocPath = config.get('pandocPath');
- this.pandocMarkdownFlavor = config.get('pandocMarkdownFlavor');
- this.pandocArguments = config.get('pandocArguments');
- this.latexEngine = config.get('latexEngine');
- this.enableScriptExecution = config.get('enableScriptExecution');
-
- this.scrollSync = config.get('scrollSync');
- this.liveUpdate = config.get('liveUpdate');
- this.singlePreview = config.get('singlePreview');
- this.automaticallyShowPreviewOfMarkdownBeingEdited = config.get(
- 'automaticallyShowPreviewOfMarkdownBeingEdited',
- );
- this.previewColorScheme = config.get(
- 'previewColorScheme',
- );
-
- this.enableHTML5Embed = config.get('enableHTML5Embed');
- this.HTML5EmbedUseImageSyntax = config.get(
- 'HTML5EmbedUseImageSyntax',
- );
- this.HTML5EmbedUseLinkSyntax = config.get(
- 'HTML5EmbedUseLinkSyntax',
- );
- this.HTML5EmbedIsAllowedHttp = config.get(
- 'HTML5EmbedIsAllowedHttp',
- );
- this.HTML5EmbedAudioAttributes = config.get(
- 'HTML5EmbedAudioAttributes',
- );
- this.HTML5EmbedVideoAttributes = config.get(
- 'HTML5EmbedVideoAttributes',
- );
- this.puppeteerWaitForTimeout = config.get(
- 'puppeteerWaitForTimeout',
- );
- this.puppeteerArgs = config.get('puppeteerArgs');
- this.plantumlJarPath = config.get('plantumlJarPath');
- this.plantumlServer = config.get('plantumlServer');
- this.hideDefaultVSCodeMarkdownPreviewButtons = config.get(
- 'hideDefaultVSCodeMarkdownPreviewButtons',
- );
- this.jsdelivrCdnHost = config.get('jsdelivrCdnHost');
- this.krokiServer = config.get('krokiServer');
+ this.scrollSync = config.get('scrollSync') ?? true;
+ this.liveUpdate = config.get('liveUpdate') ?? true;
+ this.singlePreview = config.get('singlePreview') ?? true;
+ this.automaticallyShowPreviewOfMarkdownBeingEdited =
+ config.get('automaticallyShowPreviewOfMarkdownBeingEdited') ??
+ false;
+ this.previewColorScheme =
+ config.get('previewColorScheme') ??
+ PreviewColorScheme.selectedPreviewTheme;
+ this.enableHTML5Embed =
+ config.get('enableHTML5Embed') ?? defaultConfig.enableHTML5Embed;
+ this.HTML5EmbedUseImageSyntax =
+ config.get('HTML5EmbedUseImageSyntax') ??
+ defaultConfig.HTML5EmbedUseImageSyntax;
+ this.HTML5EmbedUseLinkSyntax =
+ config.get('HTML5EmbedUseLinkSyntax') ??
+ defaultConfig.HTML5EmbedUseLinkSyntax;
+ this.HTML5EmbedIsAllowedHttp =
+ config.get('HTML5EmbedIsAllowedHttp') ??
+ defaultConfig.HTML5EmbedIsAllowedHttp;
+ this.HTML5EmbedAudioAttributes =
+ config.get('HTML5EmbedAudioAttributes') ??
+ defaultConfig.HTML5EmbedAudioAttributes;
+ this.HTML5EmbedVideoAttributes =
+ config.get('HTML5EmbedVideoAttributes') ??
+ defaultConfig.HTML5EmbedVideoAttributes;
+ this.puppeteerWaitForTimeout =
+ config.get('puppeteerWaitForTimeout') ??
+ defaultConfig.puppeteerWaitForTimeout;
+ this.puppeteerArgs =
+ config.get('puppeteerArgs') ?? defaultConfig.puppeteerArgs;
+ this.plantumlJarPath =
+ config.get('plantumlJarPath') ?? defaultConfig.plantumlJarPath;
+ this.plantumlServer =
+ config.get('plantumlServer') ?? defaultConfig.plantumlServer;
+ if (!this.plantumlServer && isVSCodeWebExtension()) {
+ this.plantumlServer = 'https://kroki.io/plantuml/svg/';
+ }
+ this.hideDefaultVSCodeMarkdownPreviewButtons =
+ config.get('hideDefaultVSCodeMarkdownPreviewButtons') ?? true;
+ this.jsdelivrCdnHost =
+ config.get('jsdelivrCdnHost') ?? defaultConfig.jsdelivrCdnHost;
+ this.krokiServer =
+ config.get('krokiServer') ?? defaultConfig.krokiServer;
}
+ globalCss: string;
+ mermaidConfig;
+ mathjaxConfig;
+ katexConfig;
+ parserConfig: ParserConfig;
+ isVSCode: boolean;
public isEqualTo(otherConfig: MarkdownPreviewEnhancedConfig) {
const json1 = JSON.stringify(this);
diff --git a/src/extension-common.ts b/src/extension-common.ts
new file mode 100644
index 0000000..5f68117
--- /dev/null
+++ b/src/extension-common.ts
@@ -0,0 +1,1017 @@
+// For both node.js and browser environments
+import { utility } from 'crossnote';
+import * as vscode from 'vscode';
+import { PreviewColorScheme } from './config';
+import { pasteImageFile, uploadImageFile } from './image-helper';
+import {
+ PreviewProvider,
+ getAllPreviewProviders,
+ getPreviewUri,
+} from './preview-provider';
+import {
+ getBottomVisibleLine,
+ getTopVisibleLine,
+ getWorkspaceFolderUri,
+ isMarkdownFile,
+} from './utils';
+import path = require('path');
+
+let editorScrollDelay = Date.now();
+
+// hide default vscode markdown preview buttons if necessary
+const hideDefaultVSCodeMarkdownPreviewButtons = vscode.workspace
+ .getConfiguration('markdown-preview-enhanced')
+ .get('hideDefaultVSCodeMarkdownPreviewButtons');
+if (hideDefaultVSCodeMarkdownPreviewButtons) {
+ vscode.commands.executeCommand(
+ 'setContext',
+ 'hasCustomMarkdownPreview',
+ true,
+ );
+}
+
+export function initExtensionCommon(context: vscode.ExtensionContext) {
+ function getCurrentWorkingDirectory() {
+ const activeEditor = vscode.window.activeTextEditor;
+ if (activeEditor) {
+ return getWorkspaceFolderUri(activeEditor.document.uri);
+ } else {
+ const workspaceFolders = vscode.workspace.workspaceFolders ?? [];
+ const workspaceFolderUri = workspaceFolders[0]?.uri;
+ return workspaceFolderUri;
+ }
+ }
+
+ async function getPreviewContentProvider(uri: vscode.Uri) {
+ return await PreviewProvider.getPreviewContentProvider(uri, context);
+ }
+
+ async function openPreviewToTheSide(uri?: vscode.Uri) {
+ const editor = vscode.window.activeTextEditor;
+ if (!editor) {
+ return;
+ }
+ if (!uri) {
+ uri = editor.document.uri;
+ }
+
+ const previewProvider = await getPreviewContentProvider(uri);
+ previewProvider.initPreview(uri, editor, {
+ viewColumn: vscode.ViewColumn.Two,
+ preserveFocus: true,
+ });
+ }
+
+ async function openPreview(uri?: vscode.Uri) {
+ const editor = vscode.window.activeTextEditor;
+ if (!editor) {
+ return;
+ }
+ if (!uri) {
+ uri = editor.document.uri;
+ }
+
+ const previewProvider = await getPreviewContentProvider(uri);
+ previewProvider.initPreview(uri, editor, {
+ viewColumn: vscode.ViewColumn.One,
+ preserveFocus: false,
+ });
+ }
+
+ function toggleScrollSync() {
+ const config = vscode.workspace.getConfiguration(
+ 'markdown-preview-enhanced',
+ );
+ const scrollSync = !config.get('scrollSync');
+ config.update('scrollSync', scrollSync, true).then(() => {
+ const providers = getAllPreviewProviders();
+ providers.forEach(provider => {
+ provider.updateConfiguration();
+ });
+ if (scrollSync) {
+ vscode.window.showInformationMessage('Scroll Sync is enabled');
+ } else {
+ vscode.window.showInformationMessage('Scroll Sync is disabled');
+ }
+ });
+ }
+
+ function toggleLiveUpdate() {
+ const config = vscode.workspace.getConfiguration(
+ 'markdown-preview-enhanced',
+ );
+ const liveUpdate = !config.get('liveUpdate');
+ config.update('liveUpdate', liveUpdate, true).then(() => {
+ const providers = getAllPreviewProviders();
+ providers.forEach(provider => {
+ provider.updateConfiguration();
+ });
+ if (liveUpdate) {
+ vscode.window.showInformationMessage('Live Update is enabled');
+ } else {
+ vscode.window.showInformationMessage('Live Update is disabled');
+ }
+ });
+ }
+
+ function toggleBreakOnSingleNewLine() {
+ const config = vscode.workspace.getConfiguration(
+ 'markdown-preview-enhanced',
+ );
+ const breakOnSingleNewLine = !config.get('breakOnSingleNewLine');
+ config
+ .update('breakOnSingleNewLine', breakOnSingleNewLine, true)
+ .then(() => {
+ const providers = getAllPreviewProviders();
+ providers.forEach(provider => {
+ provider.updateConfiguration();
+ });
+ if (breakOnSingleNewLine) {
+ vscode.window.showInformationMessage(
+ 'Break On Single New Line is enabled',
+ );
+ } else {
+ vscode.window.showInformationMessage(
+ 'Break On Single New Line is disabled',
+ );
+ }
+ });
+ }
+
+ function insertNewSlide() {
+ const editor = vscode.window.activeTextEditor;
+ if (editor && editor.document && editor.edit) {
+ editor.edit(textEdit => {
+ textEdit.insert(editor.selection.active, '\n');
+ });
+ }
+ }
+
+ function insertPagebreak() {
+ const editor = vscode.window.activeTextEditor;
+ if (editor && editor.document && editor.edit) {
+ editor.edit(textEdit => {
+ textEdit.insert(editor.selection.active, '\n');
+ });
+ }
+ }
+
+ function createTOC() {
+ const editor = vscode.window.activeTextEditor;
+ if (editor && editor.document && editor.edit) {
+ editor.edit(textEdit => {
+ textEdit.insert(
+ editor.selection.active,
+ '\n\n',
+ );
+ });
+ }
+ }
+
+ function insertTable() {
+ const editor = vscode.window.activeTextEditor;
+ if (editor && editor.document && editor.edit) {
+ editor.edit(textEdit => {
+ textEdit.insert(
+ editor.selection.active,
+ `| | |
+|---|---|
+| | |
+`,
+ );
+ });
+ }
+ }
+
+ async function openImageHelper() {
+ const editor = vscode.window.activeTextEditor;
+ if (!editor) {
+ return;
+ }
+ const uri = editor.document.uri;
+ const previewProvider = await getPreviewContentProvider(uri);
+ previewProvider.openImageHelper(uri);
+ }
+
+ async function webviewFinishLoading({
+ uri,
+ systemColorScheme,
+ }: {
+ uri: string;
+ systemColorScheme: 'light' | 'dark';
+ }) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.setSystemColorScheme(systemColorScheme);
+ previewProvider.updateMarkdown(sourceUri);
+ }
+
+ /**
+ * Insert imageUrl to markdown file
+ * @param uri: markdown source uri
+ * @param imageUrl: url of image to be inserted
+ */
+ function insertImageUrl(uri: string, imageUrl: string) {
+ const sourceUri = vscode.Uri.parse(uri);
+ vscode.window.visibleTextEditors
+ .filter(
+ editor =>
+ isMarkdownFile(editor.document) &&
+ editor.document.uri.fsPath === sourceUri.fsPath,
+ )
+ .forEach(editor => {
+ // const line = editor.selection.active.line
+ editor.edit(textEditorEdit => {
+ textEditorEdit.insert(
+ editor.selection.active,
+ `![enter image description here](${imageUrl})`,
+ );
+ });
+ });
+ }
+
+ async function refreshPreview(uri: string) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.refreshPreview(sourceUri);
+ }
+
+ async function openInBrowser(uri) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.openInBrowser(sourceUri);
+ }
+
+ async function htmlExport(uri, offline) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.htmlExport(sourceUri, offline);
+ }
+
+ async function chromeExport(uri, type) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.chromeExport(sourceUri, type);
+ }
+
+ async function princeExport(uri) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.princeExport(sourceUri);
+ }
+
+ async function eBookExport(uri, fileType) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.eBookExport(sourceUri, fileType);
+ }
+
+ async function pandocExport(uri) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.pandocExport(sourceUri);
+ }
+
+ async function markdownExport(uri) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.markdownExport(sourceUri);
+ }
+
+ /*
+ function cacheSVG(uri, code, svg) {
+ const sourceUri = vscode.Uri.parse(uri);
+ contentProvider.cacheSVG(sourceUri, code, svg)
+ }
+ */
+
+ async function cacheCodeChunkResult(uri, id, result) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.cacheCodeChunkResult(sourceUri, id, result);
+ }
+
+ async function runCodeChunk(uri, codeChunkId) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.runCodeChunk(sourceUri, codeChunkId);
+ }
+
+ async function runAllCodeChunks(uri) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.runAllCodeChunks(sourceUri);
+ }
+
+ async function runAllCodeChunksCommand() {
+ const textEditor = vscode.window.activeTextEditor;
+ if (!textEditor?.document) {
+ return;
+ }
+ if (!isMarkdownFile(textEditor.document)) {
+ return;
+ }
+
+ const sourceUri = textEditor.document.uri;
+ const previewUri = getPreviewUri(sourceUri);
+ if (!previewUri) {
+ return;
+ }
+
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.previewPostMessage(sourceUri, {
+ command: 'runAllCodeChunks',
+ });
+ }
+
+ async function runCodeChunkCommand() {
+ const textEditor = vscode.window.activeTextEditor;
+ if (!textEditor?.document) {
+ return;
+ }
+ if (!isMarkdownFile(textEditor.document)) {
+ return;
+ }
+
+ const sourceUri = textEditor.document.uri;
+ const previewUri = getPreviewUri(sourceUri);
+ if (!previewUri) {
+ return;
+ }
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.previewPostMessage(sourceUri, {
+ command: 'runCodeChunk',
+ });
+ }
+
+ async function syncPreview() {
+ const textEditor = vscode.window.activeTextEditor;
+ if (!textEditor?.document) {
+ return;
+ }
+ if (!isMarkdownFile(textEditor.document)) {
+ return;
+ }
+
+ const sourceUri = textEditor.document.uri;
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.previewPostMessage(sourceUri, {
+ command: 'changeTextEditorSelection',
+ line: textEditor.selections[0].active.line,
+ forced: true,
+ });
+ }
+
+ function clickTaskListCheckbox(uri, dataLine) {
+ const sourceUri = vscode.Uri.parse(uri);
+ const visibleTextEditors = vscode.window.visibleTextEditors;
+ for (let i = 0; i < visibleTextEditors.length; i++) {
+ const editor = visibleTextEditors[i];
+ if (editor.document.uri.fsPath === sourceUri.fsPath) {
+ dataLine = parseInt(dataLine, 10);
+ editor.edit(edit => {
+ let line = editor.document.lineAt(dataLine).text;
+ if (line.match(/\[ \]/)) {
+ line = line.replace('[ ]', '[x]');
+ } else {
+ line = line.replace(/\[[xX]\]/, '[ ]');
+ }
+ edit.replace(
+ new vscode.Range(
+ new vscode.Position(dataLine, 0),
+ new vscode.Position(dataLine, line.length),
+ ),
+ line,
+ );
+ });
+ break;
+ }
+ }
+ }
+
+ function setPreviewTheme(uri, theme) {
+ const config = vscode.workspace.getConfiguration(
+ 'markdown-preview-enhanced',
+ );
+ config.update('previewTheme', theme, true);
+ }
+
+ function openConfigFileInWorkspace(
+ workspaceUri: vscode.Uri,
+ filePath: vscode.Uri,
+ ) {
+ vscode.workspace.fs.stat(filePath).then(
+ () => {
+ vscode.commands.executeCommand('vscode.open', filePath);
+ },
+ async () => {
+ const provider = await getPreviewContentProvider(workspaceUri);
+ await provider.updateCrossnoteConfig(
+ path.join(workspaceUri.fsPath, '.crossnote'),
+ true,
+ );
+ vscode.commands.executeCommand('vscode.open', filePath);
+ },
+ );
+ }
+
+ function customizeCSSInWorkspace() {
+ const currentWorkingDirectory = getCurrentWorkingDirectory();
+ if (!currentWorkingDirectory) {
+ return vscode.window.showErrorMessage(
+ 'Please open a folder before customizing CSS',
+ );
+ }
+ const styleLessFile = vscode.Uri.joinPath(
+ currentWorkingDirectory,
+ './.crossnote/style.less',
+ );
+
+ openConfigFileInWorkspace(currentWorkingDirectory, styleLessFile);
+ }
+
+ function openConfigScriptInWorkspace() {
+ const currentWorkingDirectory = getCurrentWorkingDirectory();
+ if (!currentWorkingDirectory) {
+ return vscode.window.showErrorMessage(
+ 'Please open a folder before customizing config script',
+ );
+ }
+
+ const configScriptPath = vscode.Uri.joinPath(
+ currentWorkingDirectory,
+ './.crossnote/config.js',
+ );
+
+ openConfigFileInWorkspace(currentWorkingDirectory, configScriptPath);
+ }
+
+ function extendParserInWorkspace() {
+ const currentWorkingDirectory = getCurrentWorkingDirectory();
+ if (!currentWorkingDirectory) {
+ return vscode.window.showErrorMessage(
+ 'Please open a folder before extending parser',
+ );
+ }
+
+ const parserConfigPath = vscode.Uri.joinPath(
+ currentWorkingDirectory,
+ './.crossnote/parser.js',
+ );
+
+ openConfigFileInWorkspace(currentWorkingDirectory, parserConfigPath);
+ }
+
+ async function clickTagA({
+ uri,
+ href,
+ scheme,
+ }: {
+ uri: string;
+ href: string;
+ scheme: string;
+ }) {
+ href = decodeURIComponent(href);
+ href = href
+ .replace(/^vscode\-resource:\/\//, '')
+ .replace(/^vscode\-webview\-resource:\/\/(.+?)\//, '')
+ .replace(/^file\/\/\//, '${scheme}:///')
+ .replace(
+ /^https:\/\/file\+\.vscode-resource.vscode-cdn.net\//,
+ `${scheme}:///`,
+ )
+ .replace(
+ /^https?:\/\/(.+?)\.vscode-webview-test.com\/vscode-resource\/file\/+/,
+ `${scheme}:///`,
+ )
+ .replace(
+ /^https?:\/\/file(.+?)\.vscode-webview\.net\/+/,
+ `${scheme}:///`,
+ );
+ if (
+ ['.pdf', '.xls', '.xlsx', '.doc', '.ppt', '.docx', '.pptx'].indexOf(
+ path.extname(href),
+ ) >= 0
+ ) {
+ try {
+ utility.openFile(href);
+ } catch (error) {
+ vscode.window.showErrorMessage(error);
+ }
+ } else if (href.startsWith(`${scheme}:///`)) {
+ // openFilePath = href.slice(8) # remove protocol
+ const openFilePath = decodeURI(href);
+ const fileUri = vscode.Uri.parse(openFilePath);
+
+ // determine from link fragment to which line to jump
+ let line = -1;
+ const found = fileUri.fragment.match(/^L(\d+)/);
+ if (found) {
+ line = parseInt(found[1], 10);
+ if (line > 0) {
+ line = line - 1;
+ }
+ }
+
+ // find if there is already opened such file
+ // and remember in which view column it is
+ let col = vscode.ViewColumn.One;
+ tgrLoop: for (const tabGroup of vscode.window.tabGroups.all) {
+ for (const tab of tabGroup.tabs) {
+ if (tab.input instanceof vscode.TabInputText) {
+ if (tab.input.uri.path === fileUri.path) {
+ col = tabGroup.viewColumn;
+ break tgrLoop;
+ }
+ }
+ }
+ }
+
+ // open file if needed, if not we will use already opened editor
+ // (by specifying view column in which it is already shown)
+
+ let fileExists = false;
+ try {
+ fileExists = !!(await vscode.workspace.fs.stat(fileUri));
+ } catch (error) {
+ fileExists = false;
+ }
+
+ if (fileExists) {
+ // Open fileUri
+ /*
+ vscode.workspace.openTextDocument(fileUri.path).then(doc => {
+ vscode.window.showTextDocument(doc, col).then(editor => {
+ // if there was line fragment, jump to line
+ if (line >= 0) {
+ let viewPos = vscode.TextEditorRevealType.InCenter;
+ if (editor.selection.active.line === line) {
+ viewPos = vscode.TextEditorRevealType.InCenterIfOutsideViewport;
+ }
+ const sel = new vscode.Selection(line, 0, line, 0);
+ editor.selection = sel;
+ editor.revealRange(sel, viewPos);
+ }
+ });
+ });
+ */
+ vscode.commands.executeCommand(
+ 'vscode.open',
+ fileUri,
+ col,
+ line >= 0 ? new vscode.Position(line, 0) : undefined,
+ );
+ } else {
+ vscode.commands.executeCommand(
+ 'vscode.open',
+ fileUri,
+ vscode.ViewColumn.One,
+ );
+ }
+ } else {
+ utility.openFile(href);
+ }
+ }
+
+ context.subscriptions.push(
+ vscode.workspace.onDidSaveTextDocument(async document => {
+ if (isMarkdownFile(document)) {
+ const previewProvider = await getPreviewContentProvider(document.uri);
+ previewProvider.updateMarkdown(document.uri, true);
+ } else {
+ // Check if there is change under `${workspaceDir}/.crossnote` directory
+ // and the filename is in one of below
+ // - style.less
+ // - config.js
+ // - parser.js
+ // If so, refresh the preview of the workspace.
+ const workspaceUri = getWorkspaceFolderUri(document.uri);
+ const workspaceDir = workspaceUri.fsPath;
+ const relativePath = path.relative(workspaceDir, document.uri.fsPath);
+ if (
+ relativePath.startsWith('.crossnote') &&
+ ['style.less', 'config.js', 'parser.js'].includes(
+ path.basename(relativePath),
+ )
+ ) {
+ const provider = await getPreviewContentProvider(document.uri);
+ await provider.updateCrossnoteConfig(
+ path.join(workspaceDir, '.crossnote'),
+ );
+ provider.refreshAllPreviews();
+ }
+ }
+ }),
+ );
+
+ context.subscriptions.push(
+ vscode.workspace.onDidChangeTextDocument(async event => {
+ if (isMarkdownFile(event.document)) {
+ const previewProvider = await getPreviewContentProvider(
+ event.document.uri,
+ );
+ previewProvider.update(event.document.uri);
+ }
+ }),
+ );
+
+ context.subscriptions.push(
+ vscode.workspace.onDidChangeConfiguration(() => {
+ const providers = getAllPreviewProviders();
+ providers.forEach(provider => {
+ provider.updateConfiguration();
+ });
+ }),
+ );
+
+ context.subscriptions.push(
+ vscode.window.onDidChangeTextEditorSelection(async event => {
+ if (isMarkdownFile(event.textEditor.document)) {
+ const firstVisibleScreenRow = getTopVisibleLine(event.textEditor);
+ const lastVisibleScreenRow = getBottomVisibleLine(event.textEditor);
+
+ if (
+ typeof firstVisibleScreenRow === 'undefined' ||
+ typeof lastVisibleScreenRow === 'undefined'
+ ) {
+ return;
+ }
+
+ const topRatio =
+ (event.selections[0].active.line - firstVisibleScreenRow) /
+ (lastVisibleScreenRow - firstVisibleScreenRow);
+
+ const previewProvider = await getPreviewContentProvider(
+ event.textEditor.document.uri,
+ );
+ previewProvider.previewPostMessage(event.textEditor.document.uri, {
+ command: 'changeTextEditorSelection',
+ line: event.selections[0].active.line,
+ topRatio,
+ });
+ }
+ }),
+ );
+
+ context.subscriptions.push(
+ vscode.window.onDidChangeTextEditorVisibleRanges(async event => {
+ const textEditor = event.textEditor as vscode.TextEditor;
+ if (Date.now() < editorScrollDelay) {
+ return;
+ }
+ if (isMarkdownFile(textEditor.document)) {
+ const sourceUri = textEditor.document.uri;
+ if (!event.textEditor.visibleRanges.length) {
+ return undefined;
+ } else {
+ const topLine = getTopVisibleLine(textEditor);
+ const bottomLine = getBottomVisibleLine(textEditor);
+
+ if (
+ typeof topLine === 'undefined' ||
+ typeof bottomLine === 'undefined'
+ ) {
+ return;
+ }
+
+ let midLine;
+ if (topLine === 0) {
+ midLine = 0;
+ } else if (
+ Math.floor(bottomLine) ===
+ textEditor.document.lineCount - 1
+ ) {
+ midLine = bottomLine;
+ } else {
+ midLine = Math.floor((topLine + bottomLine) / 2);
+ }
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ previewProvider.previewPostMessage(sourceUri, {
+ command: 'changeTextEditorSelection',
+ line: midLine,
+ });
+ }
+ }
+ }),
+ );
+
+ /**
+ * Open preview automatically if the `automaticallyShowPreviewOfMarkdownBeingEdited` is on.
+ * @param textEditor
+ */
+ context.subscriptions.push(
+ vscode.window.onDidChangeActiveTextEditor(async textEditor => {
+ if (textEditor && textEditor.document && textEditor.document.uri) {
+ if (isMarkdownFile(textEditor.document)) {
+ const config = vscode.workspace.getConfiguration(
+ 'markdown-preview-enhanced',
+ );
+ const sourceUri = textEditor.document.uri;
+ const automaticallyShowPreviewOfMarkdownBeingEdited = config.get<
+ boolean
+ >('automaticallyShowPreviewOfMarkdownBeingEdited');
+ const isUsingSinglePreview = config.get('singlePreview');
+ /**
+ * Is using single preview and the preview is on.
+ * When we switched text ed()tor, update preview to that text editor.
+ */
+ const previewProvider = await getPreviewContentProvider(sourceUri);
+ if (previewProvider.isPreviewOn(sourceUri)) {
+ if (
+ isUsingSinglePreview &&
+ !previewProvider.previewHasTheSameSingleSourceUri(sourceUri)
+ ) {
+ previewProvider.initPreview(sourceUri, textEditor, {
+ viewColumn:
+ previewProvider.getPreview(sourceUri)?.viewColumn ??
+ vscode.ViewColumn.One,
+ preserveFocus: true,
+ });
+ } else if (!isUsingSinglePreview) {
+ const previewPanel = previewProvider.getPreview(sourceUri);
+ if (previewPanel) {
+ previewPanel.reveal(vscode.ViewColumn.Two, true);
+ }
+ }
+ } else if (automaticallyShowPreviewOfMarkdownBeingEdited) {
+ openPreviewToTheSide(sourceUri);
+ }
+ }
+ }
+ }),
+ );
+
+ // Changed editor color theme
+ context.subscriptions.push(
+ vscode.window.onDidChangeActiveColorTheme(theme => {
+ const config = vscode.workspace.getConfiguration(
+ 'markdown-preview-enhanced',
+ );
+ if (
+ config.get('previewColorScheme') ===
+ PreviewColorScheme.editorColorScheme
+ ) {
+ const providers = getAllPreviewProviders();
+ providers.forEach(provider => {
+ provider.updateConfiguration(true);
+ });
+ }
+ }),
+ );
+
+ /*
+ context.subscriptions.push(vscode.workspace.onDidOpenTextDocument((textDocument)=> {
+ // console.log('onDidOpenTextDocument', textDocument.uri)
+ }))
+ */
+
+ /*
+ context.subscriptions.push(vscode.window.onDidChangeVisibleTextEditors(textEditors=> {
+ // console.log('onDidChangeonDidChangeVisibleTextEditors ', textEditors)
+ }))
+ */
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.openPreviewToTheSide',
+ openPreviewToTheSide,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.openPreview',
+ openPreview,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.toggleScrollSync',
+ toggleScrollSync,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.toggleLiveUpdate',
+ toggleLiveUpdate,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.toggleBreakOnSingleNewLine',
+ toggleBreakOnSingleNewLine,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.openImageHelper',
+ openImageHelper,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.runAllCodeChunks',
+ runAllCodeChunksCommand,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.runCodeChunk',
+ runCodeChunkCommand,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.syncPreview',
+ syncPreview,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.insertNewSlide',
+ insertNewSlide,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.insertTable',
+ insertTable,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.insertPagebreak',
+ insertPagebreak,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.createTOC',
+ createTOC,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.revealLine', revealLine),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.insertImageUrl',
+ insertImageUrl,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.pasteImageFile',
+ pasteImageFile,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.uploadImageFile',
+ uploadImageFile,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.refreshPreview',
+ refreshPreview,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.openInBrowser', openInBrowser),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.htmlExport', htmlExport),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.chromeExport', chromeExport),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.princeExport', princeExport),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.eBookExport', eBookExport),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.pandocExport', pandocExport),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.markdownExport',
+ markdownExport,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.webviewFinishLoading',
+ webviewFinishLoading,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.cacheCodeChunkResult',
+ cacheCodeChunkResult,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.runCodeChunk', runCodeChunk),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.runAllCodeChunks',
+ runAllCodeChunks,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.clickTaskListCheckbox',
+ clickTaskListCheckbox,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ '_crossnote.setPreviewTheme',
+ setPreviewTheme,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.customizeCssInWorkspace',
+ customizeCSSInWorkspace,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.openConfigScriptInWorkspace',
+ openConfigScriptInWorkspace,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'markdown-preview-enhanced.extendParserInWorkspace',
+ extendParserInWorkspace,
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('_crossnote.clickTagA', clickTagA),
+ );
+}
+
+function revealLine(uri, line) {
+ const sourceUri = vscode.Uri.parse(uri);
+
+ vscode.window.visibleTextEditors
+ .filter(
+ editor =>
+ isMarkdownFile(editor.document) &&
+ editor.document.uri.fsPath === sourceUri.fsPath,
+ )
+ .forEach(editor => {
+ const sourceLine = Math.min(
+ Math.floor(line),
+ editor.document.lineCount - 1,
+ );
+ const fraction = line - sourceLine;
+ const text = editor.document.lineAt(sourceLine).text;
+ const start = Math.floor(fraction * text.length);
+ editorScrollDelay = Date.now() + 500;
+ editor.revealRange(
+ new vscode.Range(sourceLine, start, sourceLine + 1, 0),
+ vscode.TextEditorRevealType.InCenter,
+ );
+ editorScrollDelay = Date.now() + 500;
+ });
+}
diff --git a/src/extension-web.ts b/src/extension-web.ts
new file mode 100644
index 0000000..8b5c5e8
--- /dev/null
+++ b/src/extension-web.ts
@@ -0,0 +1,9 @@
+import * as vscode from 'vscode';
+import { initExtensionCommon } from './extension-common';
+
+export function activate(context: vscode.ExtensionContext) {
+ // Init the extension-common module
+ initExtensionCommon(context);
+}
+// This method is called when your extension is deactivated
+export function deactivate() {}
diff --git a/src/extension.ts b/src/extension.ts
index c1a91a5..837b183 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -1,119 +1,43 @@
// The module 'vscode' contains the VS Code extensibility API
// Import the module and reference it with the alias vscode in your code below
-import { getExtensionConfigPath, utility } from '@shd101wyy/mume';
+import { utility } from 'crossnote';
import * as fs from 'fs';
import * as path from 'path';
import * as vscode from 'vscode';
-import { PreviewColorScheme } from './config';
-import { pasteImageFile, uploadImageFile } from './image-helper';
-import {
- MarkdownPreviewEnhancedView,
- getPreviewUri,
- isMarkdownFile,
-} from './preview-content-provider';
-
-let editorScrollDelay = Date.now();
-
-// hide default vscode markdown preview buttons if necessary
-const hideDefaultVSCodeMarkdownPreviewButtons = vscode.workspace
- .getConfiguration('markdown-preview-enhanced')
- .get('hideDefaultVSCodeMarkdownPreviewButtons');
-if (hideDefaultVSCodeMarkdownPreviewButtons) {
- vscode.commands.executeCommand(
- 'setContext',
- 'hasCustomMarkdownPreview',
- true,
- );
-}
+import { initExtensionCommon } from './extension-common';
+import { getAllPreviewProviders } from './preview-provider';
+import { globalConfigPath } from './utils';
// this method is called when your extension iopenTextDocuments activated
// your extension is activated the very first time the command is executed
export function activate(context: vscode.ExtensionContext) {
- // assume only one preview supported.
- const contentProvider = new MarkdownPreviewEnhancedView(context);
-
- function openPreviewToTheSide(uri?: vscode.Uri) {
- let resource = uri;
- if (!(resource instanceof vscode.Uri)) {
- if (vscode.window.activeTextEditor) {
- // we are relaxed and don't check for markdown files
- resource = vscode.window.activeTextEditor.document.uri;
- }
- }
- contentProvider.initPreview(resource, vscode.window.activeTextEditor, {
- viewColumn: vscode.ViewColumn.Two,
- preserveFocus: true,
- });
- }
-
- function openPreview(uri?: vscode.Uri) {
- let resource = uri;
- if (!(resource instanceof vscode.Uri)) {
- if (vscode.window.activeTextEditor) {
- // we are relaxed and don't check for markdown files
- resource = vscode.window.activeTextEditor.document.uri;
- }
+ try {
+ if (!fs.existsSync(globalConfigPath)) {
+ fs.mkdirSync(globalConfigPath, { recursive: true });
}
- contentProvider.initPreview(resource, vscode.window.activeTextEditor, {
- viewColumn: vscode.ViewColumn.One,
- preserveFocus: false,
- });
- }
-
- function toggleScrollSync() {
- const config = vscode.workspace.getConfiguration(
- 'markdown-preview-enhanced',
- );
- const scrollSync = !config.get('scrollSync');
- config.update('scrollSync', scrollSync, true).then(() => {
- contentProvider.updateConfiguration();
- if (scrollSync) {
- vscode.window.showInformationMessage('Scroll Sync is enabled');
- } else {
- vscode.window.showInformationMessage('Scroll Sync is disabled');
- }
- });
- }
-
- function toggleLiveUpdate() {
- const config = vscode.workspace.getConfiguration(
- 'markdown-preview-enhanced',
- );
- const liveUpdate = !config.get('liveUpdate');
- config.update('liveUpdate', liveUpdate, true).then(() => {
- contentProvider.updateConfiguration();
- if (liveUpdate) {
- vscode.window.showInformationMessage('Live Update is enabled');
- } else {
- vscode.window.showInformationMessage('Live Update is disabled');
+ // Watch the file changes in global config directory.
+ fs.watch(globalConfigPath, async (eventType, fileName) => {
+ if (
+ eventType === 'change' &&
+ ['style.less', 'config.js', 'parser.js'].includes(fileName ?? '')
+ ) {
+ const providers = getAllPreviewProviders();
+ providers.forEach(async provider => {
+ await provider.updateCrossnoteConfig(globalConfigPath);
+ provider.refreshAllPreviews();
+ });
}
});
+ } catch (error) {
+ console.error(error);
}
- function toggleBreakOnSingleNewLine() {
- const config = vscode.workspace.getConfiguration(
- 'markdown-preview-enhanced',
- );
- const breakOnSingleNewLine = !config.get('breakOnSingleNewLine');
- config
- .update('breakOnSingleNewLine', breakOnSingleNewLine, true)
- .then(() => {
- contentProvider.updateConfiguration();
- if (breakOnSingleNewLine) {
- vscode.window.showInformationMessage(
- 'Break On Single New Line is enabled',
- );
- } else {
- vscode.window.showInformationMessage(
- 'Break On Single New Line is disabled',
- );
- }
- });
- }
+ // Init the extension-common module
+ initExtensionCommon(context);
function customizeCSS() {
const globalStyleLessFile = utility.addFileProtocol(
- path.resolve(getExtensionConfigPath(), './style.less'),
+ path.resolve(globalConfigPath, './style.less'),
);
vscode.commands.executeCommand(
'vscode.open',
@@ -121,39 +45,19 @@ export function activate(context: vscode.ExtensionContext) {
);
}
- function openMermaidConfig() {
- const mermaidConfigFilePath = utility.addFileProtocol(
- path.resolve(getExtensionConfigPath(), './mermaid_config.js'),
+ function openConfigScript() {
+ const configScriptPath = utility.addFileProtocol(
+ path.resolve(globalConfigPath, './config.js'),
);
vscode.commands.executeCommand(
'vscode.open',
- vscode.Uri.parse(mermaidConfigFilePath),
- );
- }
-
- function openMathJaxConfig() {
- const mathjaxConfigFilePath = utility.addFileProtocol(
- path.resolve(getExtensionConfigPath(), './mathjax_config_v3.js'),
- );
- vscode.commands.executeCommand(
- 'vscode.open',
- vscode.Uri.parse(mathjaxConfigFilePath),
- );
- }
-
- function openKaTeXConfig() {
- const katexConfigFilePath = utility.addFileProtocol(
- path.resolve(getExtensionConfigPath(), './katex_config.js'),
- );
- vscode.commands.executeCommand(
- 'vscode.open',
- vscode.Uri.parse(katexConfigFilePath),
+ vscode.Uri.parse(configScriptPath),
);
}
function extendParser() {
const parserConfigPath = utility.addFileProtocol(
- path.resolve(getExtensionConfigPath(), './parser.js'),
+ path.resolve(globalConfigPath, './parser.js'),
);
vscode.commands.executeCommand(
'vscode.open',
@@ -163,7 +67,7 @@ export function activate(context: vscode.ExtensionContext) {
function showUploadedImages() {
const imageHistoryFilePath = utility.addFileProtocol(
- path.resolve(getExtensionConfigPath(), './image_history.md'),
+ path.resolve(globalConfigPath, './image_history.md'),
);
vscode.commands.executeCommand(
'vscode.open',
@@ -171,537 +75,6 @@ export function activate(context: vscode.ExtensionContext) {
);
}
- function insertNewSlide() {
- const editor = vscode.window.activeTextEditor;
- if (editor && editor.document && editor.edit) {
- editor.edit(textEdit => {
- textEdit.insert(editor.selection.active, '\n');
- });
- }
- }
-
- function insertPagebreak() {
- const editor = vscode.window.activeTextEditor;
- if (editor && editor.document && editor.edit) {
- editor.edit(textEdit => {
- textEdit.insert(editor.selection.active, '\n');
- });
- }
- }
-
- function createTOC() {
- const editor = vscode.window.activeTextEditor;
- if (editor && editor.document && editor.edit) {
- editor.edit(textEdit => {
- textEdit.insert(
- editor.selection.active,
- '\n\n',
- );
- });
- }
- }
-
- function insertTable() {
- const editor = vscode.window.activeTextEditor;
- if (editor && editor.document && editor.edit) {
- editor.edit(textEdit => {
- textEdit.insert(
- editor.selection.active,
- `| | |
-|---|---|
-| | |
-`,
- );
- });
- }
- }
-
- function openImageHelper() {
- contentProvider.openImageHelper(
- vscode.window.activeTextEditor.document.uri,
- );
- }
-
- function webviewFinishLoading(
- uri: string,
- {
- systemColorScheme,
- }: {
- systemColorScheme: 'light' | 'dark';
- },
- ) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.setSystemColorScheme(systemColorScheme);
- contentProvider.updateMarkdown(sourceUri);
- }
-
- /**
- * Insert imageUrl to markdown file
- * @param uri: markdown source uri
- * @param imageUrl: url of image to be inserted
- */
- function insertImageUrl(uri, imageUrl) {
- const sourceUri = vscode.Uri.parse(uri);
-
- vscode.window.visibleTextEditors
- .filter(
- editor =>
- isMarkdownFile(editor.document) &&
- editor.document.uri.fsPath === sourceUri.fsPath,
- )
- .forEach(editor => {
- // const line = editor.selection.active.line
- editor.edit(textEditorEdit => {
- textEditorEdit.insert(
- editor.selection.active,
- `![enter image description here](${imageUrl})`,
- );
- });
- });
- }
-
- function refreshPreview(uri) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.refreshPreview(sourceUri);
- }
-
- function openInBrowser(uri) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.openInBrowser(sourceUri);
- }
-
- function htmlExport(uri, offline) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.htmlExport(sourceUri, offline);
- }
-
- function chromeExport(uri, type) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.chromeExport(sourceUri, type);
- }
-
- function princeExport(uri) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.princeExport(sourceUri);
- }
-
- function eBookExport(uri, fileType) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.eBookExport(sourceUri, fileType);
- }
-
- function pandocExport(uri) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.pandocExport(sourceUri);
- }
-
- function markdownExport(uri) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.markdownExport(sourceUri);
- }
-
- /*
- function cacheSVG(uri, code, svg) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.cacheSVG(sourceUri, code, svg)
- }
- */
-
- function cacheCodeChunkResult(uri, id, result) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.cacheCodeChunkResult(sourceUri, id, result);
- }
-
- function runCodeChunk(uri, codeChunkId) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.runCodeChunk(sourceUri, codeChunkId);
- }
-
- function runAllCodeChunks(uri) {
- const sourceUri = vscode.Uri.parse(uri);
- contentProvider.runAllCodeChunks(sourceUri);
- }
-
- function runAllCodeChunksCommand() {
- const textEditor = vscode.window.activeTextEditor;
- if (!textEditor.document) {
- return;
- }
- if (!isMarkdownFile(textEditor.document)) {
- return;
- }
-
- const sourceUri = textEditor.document.uri;
- const previewUri = getPreviewUri(sourceUri);
- if (!previewUri) {
- return;
- }
-
- contentProvider.previewPostMessage(sourceUri, {
- command: 'runAllCodeChunks',
- });
- }
-
- function runCodeChunkCommand() {
- const textEditor = vscode.window.activeTextEditor;
- if (!textEditor.document) {
- return;
- }
- if (!isMarkdownFile(textEditor.document)) {
- return;
- }
-
- const sourceUri = textEditor.document.uri;
- const previewUri = getPreviewUri(sourceUri);
- if (!previewUri) {
- return;
- }
- contentProvider.previewPostMessage(sourceUri, {
- command: 'runCodeChunk',
- });
- }
-
- function syncPreview() {
- const textEditor = vscode.window.activeTextEditor;
- if (!textEditor.document) {
- return;
- }
- if (!isMarkdownFile(textEditor.document)) {
- return;
- }
-
- const sourceUri = textEditor.document.uri;
- contentProvider.previewPostMessage(sourceUri, {
- command: 'changeTextEditorSelection',
- line: textEditor.selections[0].active.line,
- forced: true,
- });
- }
-
- function clickTagA(uri, href) {
- href = decodeURIComponent(href);
- href = href
- .replace(/^vscode\-resource:\/\//, '')
- .replace(/^vscode\-webview\-resource:\/\/(.+?)\//, '')
- .replace(/^file\/\/\//, 'file:///')
- .replace(
- /^https:\/\/file\+\.vscode-resource.vscode-cdn.net\//,
- 'file:///',
- )
- .replace(
- /^https?:\/\/(.+?)\.vscode-webview-test.com\/vscode-resource\/file\/+/,
- 'file:///',
- )
- .replace(/^https?:\/\/file(.+?)\.vscode-webview\.net\/+/, 'file:///');
- if (
- ['.pdf', '.xls', '.xlsx', '.doc', '.ppt', '.docx', '.pptx'].indexOf(
- path.extname(href),
- ) >= 0
- ) {
- utility.openFile(href);
- } else if (href.match(/^file:\/\/\//)) {
- // openFilePath = href.slice(8) # remove protocol
- let openFilePath = utility.addFileProtocol(
- href, // .replace(/(\s*)[\#\?](.+)$/, ""),
- );
- openFilePath = decodeURI(openFilePath);
- const fileUri = vscode.Uri.parse(openFilePath);
-
- // determine from link fragment to which line to jump
- let line = -1;
- const found = fileUri.fragment.match(/^L(\d+)/);
- if (found) {
- line = parseInt(found[1], 10);
- if (line > 0) {
- line = line - 1;
- }
- }
-
- // find if there is already opened such file
- // and remember in which view column it is
- let col = vscode.ViewColumn.One;
- tgrLoop: for (const tabGroup of vscode.window.tabGroups.all) {
- for (const tab of tabGroup.tabs) {
- if (tab.input instanceof vscode.TabInputText) {
- if (tab.input.uri.path === fileUri.path) {
- col = tabGroup.viewColumn;
- break tgrLoop;
- }
- }
- }
- }
-
- // open file if needed, if not we will use already opened editor
- // (by specifying view column in which it is already shown)
-
- if (fs.existsSync(fileUri.fsPath)) {
- vscode.workspace.openTextDocument(fileUri.path).then(doc => {
- vscode.window.showTextDocument(doc, col).then(editor => {
- // if there was line fragment, jump to line
- if (line >= 0) {
- let viewPos = vscode.TextEditorRevealType.InCenter;
- if (editor.selection.active.line === line) {
- viewPos = vscode.TextEditorRevealType.InCenterIfOutsideViewport;
- }
- const sel = new vscode.Selection(line, 0, line, 0);
- editor.selection = sel;
- editor.revealRange(sel, viewPos);
- }
- });
- });
- } else {
- vscode.commands.executeCommand(
- 'vscode.open',
- fileUri,
- vscode.ViewColumn.One,
- );
- }
- } else {
- utility.openFile(href);
- }
- }
-
- function clickTaskListCheckbox(uri, dataLine) {
- const sourceUri = vscode.Uri.parse(uri);
- const visibleTextEditors = vscode.window.visibleTextEditors;
- for (let i = 0; i < visibleTextEditors.length; i++) {
- const editor = visibleTextEditors[i];
- if (editor.document.uri.fsPath === sourceUri.fsPath) {
- dataLine = parseInt(dataLine, 10);
- editor.edit(edit => {
- let line = editor.document.lineAt(dataLine).text;
- if (line.match(/\[ \]/)) {
- line = line.replace('[ ]', '[x]');
- } else {
- line = line.replace(/\[[xX]\]/, '[ ]');
- }
- edit.replace(
- new vscode.Range(
- new vscode.Position(dataLine, 0),
- new vscode.Position(dataLine, line.length),
- ),
- line,
- );
- });
- break;
- }
- }
- }
-
- function setPreviewTheme(uri, theme) {
- const config = vscode.workspace.getConfiguration(
- 'markdown-preview-enhanced',
- );
- config.update('previewTheme', theme, true);
- }
-
- context.subscriptions.push(
- vscode.workspace.onDidSaveTextDocument(document => {
- if (isMarkdownFile(document)) {
- contentProvider.updateMarkdown(document.uri, true);
- }
- }),
- );
-
- context.subscriptions.push(
- vscode.workspace.onDidChangeTextDocument(event => {
- if (isMarkdownFile(event.document)) {
- contentProvider.update(event.document.uri);
- }
- }),
- );
-
- context.subscriptions.push(
- vscode.workspace.onDidChangeConfiguration(() => {
- contentProvider.updateConfiguration();
- }),
- );
-
- context.subscriptions.push(
- vscode.window.onDidChangeTextEditorSelection(event => {
- if (isMarkdownFile(event.textEditor.document)) {
- const firstVisibleScreenRow = getTopVisibleLine(event.textEditor);
- const lastVisibleScreenRow = getBottomVisibleLine(event.textEditor);
- const topRatio =
- (event.selections[0].active.line - firstVisibleScreenRow) /
- (lastVisibleScreenRow - firstVisibleScreenRow);
-
- contentProvider.previewPostMessage(event.textEditor.document.uri, {
- command: 'changeTextEditorSelection',
- line: event.selections[0].active.line,
- topRatio,
- });
- }
- }),
- );
-
- context.subscriptions.push(
- vscode.window.onDidChangeTextEditorVisibleRanges(event => {
- const textEditor = event.textEditor as vscode.TextEditor;
- if (Date.now() < editorScrollDelay) {
- return;
- }
- if (isMarkdownFile(textEditor.document)) {
- const sourceUri = textEditor.document.uri;
- if (!event.textEditor.visibleRanges.length) {
- return undefined;
- } else {
- const topLine = getTopVisibleLine(textEditor);
- const bottomLine = getBottomVisibleLine(textEditor);
- let midLine;
- if (topLine === 0) {
- midLine = 0;
- } else if (
- Math.floor(bottomLine) ===
- textEditor.document.lineCount - 1
- ) {
- midLine = bottomLine;
- } else {
- midLine = Math.floor((topLine + bottomLine) / 2);
- }
- contentProvider.previewPostMessage(sourceUri, {
- command: 'changeTextEditorSelection',
- line: midLine,
- });
- }
- }
- }),
- );
-
- /**
- * Open preview automatically if the `automaticallyShowPreviewOfMarkdownBeingEdited` is on.
- * @param textEditor
- */
- context.subscriptions.push(
- vscode.window.onDidChangeActiveTextEditor(textEditor => {
- if (textEditor && textEditor.document && textEditor.document.uri) {
- if (isMarkdownFile(textEditor.document)) {
- const config = vscode.workspace.getConfiguration(
- 'markdown-preview-enhanced',
- );
- const sourceUri = textEditor.document.uri;
- const automaticallyShowPreviewOfMarkdownBeingEdited = config.get<
- boolean
- >('automaticallyShowPreviewOfMarkdownBeingEdited');
- const isUsingSinglePreview = config.get('singlePreview');
- /**
- * Is using single preview and the preview is on.
- * When we switched text ed()tor, update preview to that text editor.
- */
-
- if (contentProvider.isPreviewOn(sourceUri)) {
- if (
- isUsingSinglePreview &&
- !contentProvider.previewHasTheSameSingleSourceUri(sourceUri)
- ) {
- contentProvider.initPreview(sourceUri, textEditor, {
- viewColumn: contentProvider.getPreview(sourceUri).viewColumn,
- preserveFocus: true,
- });
- } else if (!isUsingSinglePreview) {
- const previewPanel = contentProvider.getPreview(sourceUri);
- if (previewPanel) {
- previewPanel.reveal(vscode.ViewColumn.Two, true);
- }
- }
- } else if (automaticallyShowPreviewOfMarkdownBeingEdited) {
- openPreviewToTheSide(sourceUri);
- }
- }
- }
- }),
- );
-
- // Changed editor color theme
- context.subscriptions.push(
- vscode.window.onDidChangeActiveColorTheme(theme => {
- const config = vscode.workspace.getConfiguration(
- 'markdown-preview-enhanced',
- );
- if (
- config.get('previewColorScheme') ===
- PreviewColorScheme.editorColorScheme
- ) {
- contentProvider.updateConfiguration(true);
- }
- }),
- );
-
- /*
- context.subscriptions.push(vscode.workspace.onDidOpenTextDocument((textDocument)=> {
- // console.log('onDidOpenTextDocument', textDocument.uri)
- }))
- */
-
- /*
- context.subscriptions.push(vscode.window.onDidChangeVisibleTextEditors(textEditors=> {
- // console.log('onDidChangeonDidChangeVisibleTextEditors ', textEditors)
- }))
- */
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.openPreviewToTheSide',
- openPreviewToTheSide,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.openPreview',
- openPreview,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.toggleScrollSync',
- toggleScrollSync,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.toggleLiveUpdate',
- toggleLiveUpdate,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.toggleBreakOnSingleNewLine',
- toggleBreakOnSingleNewLine,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.openImageHelper',
- openImageHelper,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.runAllCodeChunks',
- runAllCodeChunksCommand,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.runCodeChunk',
- runCodeChunkCommand,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.syncPreview',
- syncPreview,
- ),
- );
-
context.subscriptions.push(
vscode.commands.registerCommand(
'markdown-preview-enhanced.customizeCss',
@@ -711,22 +84,8 @@ export function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(
vscode.commands.registerCommand(
- 'markdown-preview-enhanced.openMermaidConfig',
- openMermaidConfig,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.openMathJaxConfig',
- openMathJaxConfig,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.openKaTeXConfig',
- openKaTeXConfig,
+ 'markdown-preview-enhanced.openConfigScript',
+ openConfigScript,
),
);
@@ -744,199 +103,12 @@ export function activate(context: vscode.ExtensionContext) {
),
);
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.insertNewSlide',
- insertNewSlide,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.insertTable',
- insertTable,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.insertPagebreak',
- insertPagebreak,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- 'markdown-preview-enhanced.createTOC',
- createTOC,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.revealLine', revealLine),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.insertImageUrl', insertImageUrl),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.pasteImageFile', pasteImageFile),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.uploadImageFile', uploadImageFile),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.refreshPreview', refreshPreview),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.openInBrowser', openInBrowser),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.htmlExport', htmlExport),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.chromeExport', chromeExport),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.princeExport', princeExport),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.eBookExport', eBookExport),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.pandocExport', pandocExport),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.markdownExport', markdownExport),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- '_mume.webviewFinishLoading',
- webviewFinishLoading,
- ),
- );
-
- // context.subscriptions.push(vscode.commands.registerCommand('_mume.cacheSVG', cacheSVG))
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- '_mume.cacheCodeChunkResult',
- cacheCodeChunkResult,
- ),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.runCodeChunk', runCodeChunk),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.runAllCodeChunks', runAllCodeChunks),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.clickTagA', clickTagA),
- );
-
- context.subscriptions.push(
- vscode.commands.registerCommand(
- '_mume.clickTaskListCheckbox',
- clickTaskListCheckbox,
- ),
- );
+ // context.subscriptions.push(vscode.commands.registerCommand('_crossnote.cacheSVG', cacheSVG))
context.subscriptions.push(
vscode.commands.registerCommand(
- '_mume.showUploadedImageHistory',
+ '_crossnote.showUploadedImageHistory',
showUploadedImages,
),
);
-
- context.subscriptions.push(
- vscode.commands.registerCommand('_mume.setPreviewTheme', setPreviewTheme),
- );
-}
-
-function revealLine(uri, line) {
- const sourceUri = vscode.Uri.parse(uri);
-
- vscode.window.visibleTextEditors
- .filter(
- editor =>
- isMarkdownFile(editor.document) &&
- editor.document.uri.fsPath === sourceUri.fsPath,
- )
- .forEach(editor => {
- const sourceLine = Math.min(
- Math.floor(line),
- editor.document.lineCount - 1,
- );
- const fraction = line - sourceLine;
- const text = editor.document.lineAt(sourceLine).text;
- const start = Math.floor(fraction * text.length);
- editorScrollDelay = Date.now() + 500;
- editor.revealRange(
- new vscode.Range(sourceLine, start, sourceLine + 1, 0),
- vscode.TextEditorRevealType.InCenter,
- );
- editorScrollDelay = Date.now() + 500;
- });
-}
-
-/**
- * Get the top-most visible range of `editor`.
- *
- * Returns a fractional line number based the visible character within the line.
- * Floor to get real line number
- */
-export function getTopVisibleLine(
- editor: vscode.TextEditor,
-): number | undefined {
- if (!editor['visibleRanges'].length) {
- return undefined;
- }
-
- const firstVisiblePosition = editor['visibleRanges'][0].start;
- const lineNumber = firstVisiblePosition.line;
- const line = editor.document.lineAt(lineNumber);
- const progress = firstVisiblePosition.character / (line.text.length + 2);
- return lineNumber + progress;
-}
-
-/**
- * Get the bottom-most visible range of `editor`.
- *
- * Returns a fractional line number based the visible character within the line.
- * Floor to get real line number
- */
-export function getBottomVisibleLine(
- editor: vscode.TextEditor,
-): number | undefined {
- if (!editor['visibleRanges'].length) {
- return undefined;
- }
-
- const firstVisiblePosition = editor['visibleRanges'][0].end;
- const lineNumber = firstVisiblePosition.line;
- let text = '';
- if (lineNumber < editor.document.lineCount) {
- text = editor.document.lineAt(lineNumber).text;
- }
- const progress = firstVisiblePosition.character / (text.length + 2);
- return lineNumber + progress;
-}
-
-// this method is called when your extension is deactivated
-export function deactivate() {
- //
}
diff --git a/src/image-helper.ts b/src/image-helper.ts
index 3675f6b..68ffef7 100644
--- a/src/image-helper.ts
+++ b/src/image-helper.ts
@@ -1,8 +1,8 @@
-import { utility } from '@shd101wyy/mume';
+import { utility } from 'crossnote';
import * as fs from 'fs';
import * as path from 'path';
import * as vscode from 'vscode';
-import { isMarkdownFile } from './preview-content-provider';
+import { getWorkspaceFolderUri, isMarkdownFile } from './utils';
/**
* Copy ans paste image at imageFilePath to config.imageForlderPath.
@@ -10,16 +10,19 @@ import { isMarkdownFile } from './preview-content-provider';
* @param uri
* @param imageFilePath
*/
-export function pasteImageFile(sourceUri: any, imageFilePath: string) {
- if (typeof sourceUri === 'string') {
- sourceUri = vscode.Uri.parse(sourceUri);
- }
+export function pasteImageFile(sourceUri: string, imageFilePath: string) {
+ const uri = vscode.Uri.parse(sourceUri);
- const imageFolderPath = vscode.workspace
- .getConfiguration('markdown-preview-enhanced')
- .get('imageFolderPath');
+ const imageFolderPath =
+ vscode.workspace
+ .getConfiguration('markdown-preview-enhanced')
+ .get('imageFolderPath') ?? '';
let imageFileName = path.basename(imageFilePath);
- const projectDirectoryPath = vscode.workspace.rootPath;
+ const projectDirectoryPath = getWorkspaceFolderUri(uri).fsPath;
+ if (!projectDirectoryPath) {
+ return vscode.window.showErrorMessage('Cannot find workspace');
+ }
+
let assetDirectoryPath;
let description;
if (imageFolderPath[0] === '/') {
@@ -29,7 +32,7 @@ export function pasteImageFile(sourceUri: any, imageFilePath: string) {
);
} else {
assetDirectoryPath = path.resolve(
- path.dirname(sourceUri.fsPath),
+ path.dirname(uri.fsPath),
imageFolderPath,
);
}
@@ -43,7 +46,7 @@ export function pasteImageFile(sourceUri: any, imageFilePath: string) {
.filter(
editor =>
isMarkdownFile(editor.document) &&
- editor.document.uri.fsPath === sourceUri.fsPath,
+ editor.document.uri.fsPath === uri.fsPath,
)
.forEach(editor => {
fs.mkdir(assetDirectoryPath, error => {
diff --git a/src/preview-content-provider.ts b/src/preview-provider.ts
similarity index 58%
rename from src/preview-content-provider.ts
rename to src/preview-provider.ts
index a952da2..c23fa93 100644
--- a/src/preview-content-provider.ts
+++ b/src/preview-provider.ts
@@ -1,30 +1,102 @@
-import * as mume from '@shd101wyy/mume';
-import { CodeChunkData, MarkdownEngine, PreviewTheme } from '@shd101wyy/mume';
-import * as fs from 'fs';
+import {
+ Notebook,
+ PreviewTheme,
+ loadConfigsInDirectory,
+ utility,
+} from 'crossnote';
import { tmpdir } from 'os';
import * as path from 'path';
import * as vscode from 'vscode';
-import { TextEditor, Uri } from 'vscode';
+import { Uri } from 'vscode';
import { MarkdownPreviewEnhancedConfig, PreviewColorScheme } from './config';
+import {
+ getCrossnoteVersion,
+ getWorkspaceFolderUri,
+ globalConfigPath,
+ isMarkdownFile,
+ isVSCodeWebExtension,
+ isVSCodewebExtensionDevMode,
+} from './utils';
+import { wrapVSCodeFSAsApi } from './vscode-fs';
+
+if (isVSCodeWebExtension()) {
+ console.debug('* Using crossnote version: ', getCrossnoteVersion());
+ if (isVSCodewebExtensionDevMode()) {
+ console.debug('* Now under the dev mode');
+ console.debug('* Loading /crossnote directory at http://localhost:6789/');
+ utility.setCrossnoteBuildDirectory('http://localhost:6789/');
+ } else {
+ const config = vscode.workspace.getConfiguration(
+ 'markdown-preview-enhanced',
+ );
+ const jsdelivrCdnHost =
+ config.get('jsdelivrCdnHost') ?? 'cdn.jsdelivr.net';
+ utility.setCrossnoteBuildDirectory(
+ `https://${jsdelivrCdnHost}/npm/crossnote@${getCrossnoteVersion()}/out/`,
+ );
+ }
+} else {
+ // NOTE: The __dirname is actually the out/native folder
+ utility.setCrossnoteBuildDirectory(
+ path.resolve(__dirname, '../../crossnote/'),
+ );
+}
-// NOTE: The __dirname is actually the out/native folder
-mume.utility.setExtentensionDirectoryPath(
- path.resolve(__dirname, '../../mume/'),
-);
+utility.useExternalAddFileProtocolFunction((filePath, preview) => {
+ if (preview) {
+ if (filePath.startsWith('/http:/localhost:6789/')) {
+ return filePath.replace(
+ '/http:/localhost:6789/',
+ 'http://localhost:6789/',
+ );
+ } else if (filePath.startsWith('/https:/')) {
+ return filePath.replace('/https:/', 'https://');
+ } else {
+ return preview.webview
+ .asWebviewUri(vscode.Uri.file(filePath))
+ .toString(true)
+ .replace(/%3F/gi, '?')
+ .replace(/%23/g, '#');
+ }
+ } else {
+ if (!filePath.startsWith('file://')) {
+ filePath = 'file:///' + filePath;
+ }
+ filePath = filePath.replace(/^file\:\/+/, 'file:///');
+ return filePath;
+ }
+});
+
+/**
+ * key is `workspaceDir`
+ * value is the `PreviewProvider`
+ */
+const WORKSPACE_PREVIEW_PROVIDER_MAP: Map<
+ string, // workspaceDir fsPath
+ PreviewProvider
+> = new Map();
+
+export function getAllPreviewProviders(): PreviewProvider[] {
+ return Array.from(WORKSPACE_PREVIEW_PROVIDER_MAP.values());
+}
// http://www.typescriptlang.org/play/
// https://github.com/Microsoft/vscode/blob/master/extensions/markdown/media/main.js
// https://github.com/Microsoft/vscode/tree/master/extensions/markdown/src
// https://github.com/tomoki1207/gfm-preview/blob/master/src/gfmProvider.ts
// https://github.com/cbreeden/vscode-markdownit
-export class MarkdownPreviewEnhancedView {
+export class PreviewProvider {
private waiting: boolean = false;
/**
- * The key is markdown file fsPath
- * value is MarkdownEngine
+ * Each PreviewProvider has a one notebook.
+ */
+ private notebook: Notebook;
+
+ /**
+ * VSCode extension context
*/
- private engineMaps: { [key: string]: MarkdownEngine } = {};
+ private context: vscode.ExtensionContext;
/**
* The key is markdown file fspath
@@ -37,8 +109,8 @@ export class MarkdownPreviewEnhancedView {
vscode.TextEditor
> = new Map();
- private singlePreviewPanel: vscode.WebviewPanel;
- private singlePreviewPanelSourceUriTarget: Uri;
+ private singlePreviewPanel: vscode.WebviewPanel | null;
+ private singlePreviewPanelSourceUriTarget: Uri | null;
/**
* The key is markdown file fsPath
@@ -50,64 +122,88 @@ export class MarkdownPreviewEnhancedView {
private systemColorScheme: 'light' | 'dark' = 'light';
- public constructor(private context: vscode.ExtensionContext) {
+ public constructor() {
+ // Please use `init` method to initialize this class.
+ }
+
+ private async init(
+ context: vscode.ExtensionContext,
+ workspaceDir: vscode.Uri,
+ ) {
+ this.context = context;
this.config = MarkdownPreviewEnhancedConfig.getCurrentConfig();
+ this.notebook = await Notebook.init({
+ notebookPath: workspaceDir.fsPath,
+ config: { ...this.config },
+ fs: wrapVSCodeFSAsApi(workspaceDir.scheme),
+ });
- mume
- .init(this.config.configPath) // init markdown-preview-enhanced
- .then(() => {
- mume.onDidChangeConfigFile(this.refreshAllPreviews.bind(this));
- MarkdownEngine.onModifySource(this.modifySource.bind(this));
- mume.utility.useExternalAddFileProtocolFunction(
- (filePath: string, preview: vscode.WebviewPanel) => {
- if (preview) {
- return preview.webview
- .asWebviewUri(vscode.Uri.file(filePath))
- .toString(true)
- .replace(/%3F/gi, '?')
- .replace(/%23/g, '#');
- } else {
- if (!filePath.startsWith('file://')) {
- filePath = 'file:///' + filePath;
- }
- filePath = filePath.replace(/^file\:\/+/, 'file:///');
- return filePath;
- }
- },
+ // Check if ${workspaceDir}/.crossnote directory exists
+ // If not, then use the global config.
+ const crossnoteDir = vscode.Uri.joinPath(workspaceDir, './.crossnote');
+ if (
+ !(await this.notebook.fs.exists(crossnoteDir.fsPath)) &&
+ !isVSCodeWebExtension()
+ ) {
+ try {
+ const globalConfig = await loadConfigsInDirectory(
+ globalConfigPath,
+ this.notebook.fs,
+ true,
);
+ this.notebook.updateConfig(globalConfig);
+ } catch (error) {
+ console.error(error);
+ }
+ }
- const extensionVersion = require(path.resolve(
- this.context.extensionPath,
- './package.json',
- ))['version'];
- if (extensionVersion !== mume.configs.config['vscode_mpe_version']) {
- const config = Object.assign({}, mume.configs.config, {
- vscode_mpe_version: extensionVersion,
- });
- fs.writeFileSync(
- path.resolve(mume.getExtensionConfigPath(), 'config.json'),
- JSON.stringify(config),
- );
- }
- })
- .catch(error => {
- vscode.window.showErrorMessage(error.toString());
- });
+ return this;
}
- private refreshAllPreviews() {
- // clear caches
- for (const key in this.engineMaps) {
- if (this.engineMaps.hasOwnProperty(key)) {
- const engine = this.engineMaps[key];
- if (engine) {
- // No need to resetConfig.
- // Otherwiser when user change settings like `previewTheme`, the preview won't change immediately.
- // engine.resetConfig();
- engine.clearCaches();
- }
+ public async updateCrossnoteConfig(directory: string, forceUpdate = false) {
+ // If directory is globalConfigDirectory && ${workspaceDir}/.crossnote directory exists
+ // then return without updating.
+ if (
+ directory === globalConfigPath &&
+ (await this.notebook.fs.exists(
+ path.join(this.notebook.notebookPath, '.crossnote'),
+ ))
+ ) {
+ return;
+ }
+
+ if ((await this.notebook.fs.exists(directory)) || forceUpdate) {
+ const configs = await loadConfigsInDirectory(
+ directory,
+ this.notebook.fs,
+ true,
+ );
+ this.notebook.updateConfig(configs);
+ }
+ }
+
+ public static async getPreviewContentProvider(
+ uri: vscode.Uri,
+ context: vscode.ExtensionContext,
+ ) {
+ const workspaceUri = getWorkspaceFolderUri(uri);
+ if (WORKSPACE_PREVIEW_PROVIDER_MAP.has(workspaceUri.fsPath)) {
+ const provider = WORKSPACE_PREVIEW_PROVIDER_MAP.get(workspaceUri.fsPath);
+ if (!provider) {
+ throw new Error('Cannot find preview provider');
}
+ return provider;
+ } else {
+ const provider = new PreviewProvider();
+ await provider.init(context, workspaceUri);
+ WORKSPACE_PREVIEW_PROVIDER_MAP.set(workspaceUri.fsPath, provider);
+ return provider;
}
+ }
+
+ public refreshAllPreviews() {
+ // clear caches
+ this.notebook.clearAllNoteMarkdownEngineCaches();
// refresh iframes
if (useSinglePreview()) {
@@ -121,127 +217,11 @@ export class MarkdownPreviewEnhancedView {
}
}
- /**
- * modify markdown source, append `result` after corresponding code chunk.
- * @param codeChunkData
- * @param result
- * @param filePath
- */
- private async modifySource(
- codeChunkData: CodeChunkData,
- result: string,
- filePath: string,
- ): Promise {
- function insertResult(i: number, editor: TextEditor) {
- const lineCount = editor.document.lineCount;
- let start = 0;
- // find
- for (let j = i + 1; j < i + 6 && j < lineCount; j++) {
- if (
- editor.document
- .lineAt(j)
- .text.startsWith('')
- ) {
- start = j;
- break;
- }
- }
- if (start) {
- // found
- // TODO: modify exited output
- let end = start + 1;
- while (end < lineCount) {
- if (
- editor.document
- .lineAt(end)
- .text.startsWith('')
- ) {
- break;
- }
- end += 1;
- }
-
- // if output not changed, then no need to modify editor buffer
- let r = '';
- for (let i2 = start + 2; i2 < end - 1; i2++) {
- r += editor.document.lineAt(i2).text + '\n';
- }
- if (r === result + '\n') {
- return '';
- } // no need to modify output
-
- editor.edit(edit => {
- edit.replace(
- new vscode.Range(
- new vscode.Position(start + 2, 0),
- new vscode.Position(end - 1, 0),
- ),
- result + '\n',
- );
- });
- return '';
- } else {
- editor.edit(edit => {
- edit.insert(
- new vscode.Position(i + 1, 0),
- `\n\n\n${result}\n\n\n`,
- );
- });
- return '';
- }
- }
-
- const visibleTextEditors = vscode.window.visibleTextEditors;
- for (let i = 0; i < visibleTextEditors.length; i++) {
- const editor = visibleTextEditors[i];
- if (this.formatPathIfNecessary(editor.document.uri.fsPath) === filePath) {
- let codeChunkOffset = 0;
- const targetCodeChunkOffset =
- codeChunkData.normalizedInfo.attributes['code_chunk_offset'];
-
- const lineCount = editor.document.lineCount;
- for (let i2 = 0; i2 < lineCount; i2++) {
- const line = editor.document.lineAt(i2);
- if (line.text.match(/^```(.+)\"?cmd\"?\s*[=\s}]/)) {
- if (codeChunkOffset === targetCodeChunkOffset) {
- i2 = i2 + 1;
- while (i2 < lineCount) {
- if (editor.document.lineAt(i2).text.match(/^\`\`\`\s*/)) {
- break;
- }
- i2 += 1;
- }
- return insertResult(i2, editor);
- } else {
- codeChunkOffset++;
- }
- } else if (line.text.match(/\@import\s+(.+)\"?cmd\"?\s*[=\s}]/)) {
- if (codeChunkOffset === targetCodeChunkOffset) {
- return insertResult(i2, editor);
- } else {
- codeChunkOffset++;
- }
- }
- }
- break;
- }
- }
- return '';
- }
-
- /**
- * return markdown engine of sourceUri
- * @param sourceUri
- */
- public getEngine(sourceUri: Uri): MarkdownEngine {
- return this.engineMaps[sourceUri.fsPath];
- }
-
/**
* return markdown preview of sourceUri
* @param sourceUri
*/
- public getPreview(sourceUri: Uri): vscode.WebviewPanel {
+ public getPreview(sourceUri: Uri): vscode.WebviewPanel | null {
if (useSinglePreview()) {
return this.singlePreviewPanel;
} else {
@@ -277,87 +257,12 @@ export class MarkdownPreviewEnhancedView {
}
/**
- * remove engine from this.engineMaps
- * @param sourceUri
- */
- public destroyEngine(sourceUri: Uri) {
- if (useSinglePreview()) {
- return (this.engineMaps = {});
- }
- const engine = this.getEngine(sourceUri);
- if (engine) {
- delete this.engineMaps[sourceUri.fsPath]; // destroy engine
- }
- }
-
- /**
- * Format pathString if it is on Windows. Convert `c:\` like string to `C:\`
- * @param pathString
+ * TODO: Free memory
*/
- private formatPathIfNecessary(pathString: string) {
- if (process.platform === 'win32') {
- pathString = pathString.replace(
- /^([a-zA-Z])\:\\/,
- (_, $1) => `${$1.toUpperCase()}:\\`,
- );
- }
- return pathString;
- }
+ public destroyEngine(sourceUri: vscode.Uri) {}
- private getProjectDirectoryPath(
- sourceUri: Uri,
- workspaceFolders: readonly vscode.WorkspaceFolder[] = [],
- ) {
- const possibleWorkspaceFolders = workspaceFolders.filter(
- workspaceFolder => {
- return (
- path
- .dirname(sourceUri.path.toUpperCase())
- .indexOf(workspaceFolder.uri.path.toUpperCase()) >= 0
- );
- },
- );
-
- let projectDirectoryPath;
- if (possibleWorkspaceFolders.length) {
- // We pick the workspaceUri that has the longest path
- const workspaceFolder = possibleWorkspaceFolders.sort(
- (x, y) => y.uri.fsPath.length - x.uri.fsPath.length,
- )[0];
- projectDirectoryPath = workspaceFolder.uri.fsPath;
- } else {
- projectDirectoryPath = '';
- }
-
- return this.formatPathIfNecessary(projectDirectoryPath);
- }
-
- private getFilePath(sourceUri: Uri) {
- return this.formatPathIfNecessary(sourceUri.fsPath);
- }
-
- /**
- * Initialize MarkdownEngine for this markdown file
- */
- public initMarkdownEngine(sourceUri: Uri): MarkdownEngine {
- let engine = this.getEngine(sourceUri);
- if (!engine) {
- const previewTheme = this.getPreviewTheme(
- this.config.previewTheme,
- this.config.previewColorScheme,
- );
- engine = new MarkdownEngine({
- filePath: this.getFilePath(sourceUri),
- projectDirectoryPath: this.getProjectDirectoryPath(
- sourceUri,
- vscode.workspace.workspaceFolders,
- ),
- config: { ...this.config, previewTheme },
- });
- this.engineMaps[sourceUri.fsPath] = engine;
- this.jsAndCssFilesMaps[sourceUri.fsPath] = [];
- }
- return engine;
+ private getEngine(sourceUri: Uri) {
+ return this.notebook.getNoteMarkdownEngine(sourceUri.fsPath);
}
public async initPreview(
@@ -368,17 +273,11 @@ export class MarkdownPreviewEnhancedView {
const isUsingSinglePreview = useSinglePreview();
let previewPanel: vscode.WebviewPanel;
if (isUsingSinglePreview && this.singlePreviewPanel) {
- const oldResourceRoot =
- this.getProjectDirectoryPath(
- this.singlePreviewPanelSourceUriTarget,
- vscode.workspace.workspaceFolders,
- ) || path.dirname(this.singlePreviewPanelSourceUriTarget.fsPath);
- const newResourceRoot =
- this.getProjectDirectoryPath(
- sourceUri,
- vscode.workspace.workspaceFolders,
- ) || path.dirname(sourceUri.fsPath);
- if (oldResourceRoot !== newResourceRoot) {
+ const oldResourceRoot = this.singlePreviewPanelSourceUriTarget
+ ? getWorkspaceFolderUri(this.singlePreviewPanelSourceUriTarget)
+ : undefined;
+ const newResourceRoot = getWorkspaceFolderUri(sourceUri);
+ if (oldResourceRoot?.fsPath !== newResourceRoot.fsPath) {
this.singlePreviewPanel.dispose();
return this.initPreview(sourceUri, editor, viewOptions);
} else {
@@ -390,16 +289,14 @@ export class MarkdownPreviewEnhancedView {
} else {
const localResourceRoots = [
vscode.Uri.file(this.context.extensionPath),
- vscode.Uri.file(mume.utility.getExtensionDirectoryPath()),
- vscode.Uri.file(mume.getExtensionConfigPath()),
+ vscode.Uri.file(utility.getCrossnoteBuildDirectory()),
+ vscode.Uri.file(globalConfigPath),
vscode.Uri.file(tmpdir()),
- vscode.Uri.file(
- this.getProjectDirectoryPath(
- sourceUri,
- vscode.workspace.workspaceFolders,
- ) || path.dirname(sourceUri.fsPath),
- ),
];
+ const workspaceUri = getWorkspaceFolderUri(sourceUri);
+ if (workspaceUri) {
+ localResourceRoots.push(workspaceUri);
+ }
previewPanel = vscode.window.createWebviewPanel(
'markdown-preview-enhanced',
@@ -419,7 +316,7 @@ export class MarkdownPreviewEnhancedView {
previewPanel.webview.onDidReceiveMessage(
message => {
vscode.commands.executeCommand(
- `_mume.${message.command}`,
+ `_crossnote.${message.command}`,
...message.args,
);
},
@@ -454,7 +351,7 @@ export class MarkdownPreviewEnhancedView {
let initialLine: number | undefined;
if (editor && editor.document.uri.fsPath === sourceUri.fsPath) {
initialLine = await new Promise((resolve, reject) => {
- // Hack: sometimes we only get 0. I couldn't find API to wait for editor getting loaded.
+ // HACK: sometimes we only get 0. I couldn't find API to wait for editor getting loaded.
setTimeout(() => {
return resolve(editor.selections[0].active.line || 0);
}, 100);
@@ -462,21 +359,18 @@ export class MarkdownPreviewEnhancedView {
}
const text = editor.document.getText();
- let engine = this.getEngine(sourceUri);
- if (!engine) {
- engine = this.initMarkdownEngine(sourceUri);
- }
-
+ const engine = this.getEngine(sourceUri);
engine
.generateHTMLTemplateForPreview({
inputString: text,
config: {
sourceUri: sourceUri.toString(),
- initialLine,
+ initialLine: initialLine as number,
vscode: true,
},
contentSecurityPolicy: '',
vscodePreviewPanel: previewPanel,
+ isVSCodeWebExtension: isVSCodeWebExtension(),
})
.then(html => {
previewPanel.webview.html = html;
@@ -492,7 +386,7 @@ export class MarkdownPreviewEnhancedView {
this.singlePreviewPanel.dispose();
}
} else {
- const previewPanels = [];
+ const previewPanels: vscode.WebviewPanel[] = [];
for (const key in this.previewMaps) {
if (this.previewMaps.hasOwnProperty(key)) {
const previewPanel = this.previewMaps[key];
@@ -507,7 +401,7 @@ export class MarkdownPreviewEnhancedView {
this.previewMaps = {};
this.preview2EditorMap = new Map();
- this.engineMaps = {};
+ // this.engineMaps = {};
this.singlePreviewPanel = null;
this.singlePreviewPanelSourceUriTarget = null;
}
@@ -529,10 +423,6 @@ export class MarkdownPreviewEnhancedView {
public updateMarkdown(sourceUri: Uri, triggeredBySave?: boolean) {
const engine = this.getEngine(sourceUri);
- if (!engine) {
- return;
- }
-
const previewPanel = this.getPreview(sourceUri);
if (!previewPanel) {
return;
@@ -577,6 +467,7 @@ export class MarkdownPreviewEnhancedView {
tocHTML,
totalLineCount: document.lineCount,
sourceUri: sourceUri.toString(),
+ sourceScheme: sourceUri.scheme,
id: yamlConfig.id || '',
class:
(yamlConfig.class || '') +
@@ -588,14 +479,18 @@ export class MarkdownPreviewEnhancedView {
this.getEditorColorScheme() === 'dark'
? 'editor-dark'
: 'editor-light'
- }`,
+ } ${isVSCodeWebExtension() ? 'vscode-web-extension' : ''}`,
});
}
});
});
}
- public refreshPreviewPanel(sourceUri: Uri) {
+ public refreshPreviewPanel(sourceUri: Uri | null) {
+ if (!sourceUri) {
+ return;
+ }
+
this.preview2EditorMap.forEach((editor, previewPanel) => {
if (
previewPanel &&
@@ -606,7 +501,7 @@ export class MarkdownPreviewEnhancedView {
editor.document.uri.fsPath === sourceUri.fsPath
) {
this.initPreview(sourceUri, editor, {
- viewColumn: previewPanel.viewColumn,
+ viewColumn: previewPanel.viewColumn ?? vscode.ViewColumn.One,
preserveFocus: true,
});
}
@@ -625,9 +520,13 @@ export class MarkdownPreviewEnhancedView {
public openInBrowser(sourceUri: Uri) {
const engine = this.getEngine(sourceUri);
if (engine) {
- engine.openInBrowser({}).catch(error => {
- vscode.window.showErrorMessage(error.toString());
- });
+ if (isVSCodeWebExtension()) {
+ vscode.window.showErrorMessage(`Not supported in MPE web extension.`);
+ } else {
+ engine.openInBrowser({}).catch(error => {
+ vscode.window.showErrorMessage(error.toString());
+ });
+ }
}
}
@@ -650,74 +549,90 @@ export class MarkdownPreviewEnhancedView {
public chromeExport(sourceUri: Uri, type: string) {
const engine = this.getEngine(sourceUri);
if (engine) {
- engine
- .chromeExport({ fileType: type, openFileAfterGeneration: true })
- .then(dest => {
- vscode.window.showInformationMessage(
- `File ${path.basename(dest)} was created at path: ${dest}`,
- );
- })
- .catch(error => {
- vscode.window.showErrorMessage(error.toString());
- });
+ if (isVSCodeWebExtension()) {
+ vscode.window.showErrorMessage(`Not supported in MPE web extension.`);
+ } else {
+ engine
+ .chromeExport({ fileType: type, openFileAfterGeneration: true })
+ .then(dest => {
+ vscode.window.showInformationMessage(
+ `File ${path.basename(dest)} was created at path: ${dest}`,
+ );
+ })
+ .catch(error => {
+ vscode.window.showErrorMessage(error.toString());
+ });
+ }
}
}
public princeExport(sourceUri: Uri) {
const engine = this.getEngine(sourceUri);
if (engine) {
- engine
- .princeExport({ openFileAfterGeneration: true })
- .then(dest => {
- if (dest.endsWith('?print-pdf')) {
- // presentation pdf
- vscode.window.showInformationMessage(
- `Please copy and open the link: { ${dest.replace(
- /\_/g,
- '\\_',
- )} } in Chrome then Print as Pdf.`,
- );
- } else {
- vscode.window.showInformationMessage(
- `File ${path.basename(dest)} was created at path: ${dest}`,
- );
- }
- })
- .catch(error => {
- vscode.window.showErrorMessage(error.toString());
- });
+ if (isVSCodeWebExtension()) {
+ vscode.window.showErrorMessage(`Not supported in MPE web extension.`);
+ } else {
+ engine
+ .princeExport({ openFileAfterGeneration: true })
+ .then(dest => {
+ if (dest.endsWith('?print-pdf')) {
+ // presentation pdf
+ vscode.window.showInformationMessage(
+ `Please copy and open the link: { ${dest.replace(
+ /\_/g,
+ '\\_',
+ )} } in Chrome then Print as Pdf.`,
+ );
+ } else {
+ vscode.window.showInformationMessage(
+ `File ${path.basename(dest)} was created at path: ${dest}`,
+ );
+ }
+ })
+ .catch(error => {
+ vscode.window.showErrorMessage(error.toString());
+ });
+ }
}
}
public eBookExport(sourceUri: Uri, fileType: string) {
const engine = this.getEngine(sourceUri);
if (engine) {
- engine
- .eBookExport({ fileType, runAllCodeChunks: false })
- .then(dest => {
- vscode.window.showInformationMessage(
- `eBook ${path.basename(dest)} was created as path: ${dest}`,
- );
- })
- .catch(error => {
- vscode.window.showErrorMessage(error.toString());
- });
+ if (isVSCodeWebExtension()) {
+ vscode.window.showErrorMessage(`Not supported in MPE web extension.`);
+ } else {
+ engine
+ .eBookExport({ fileType, runAllCodeChunks: false })
+ .then(dest => {
+ vscode.window.showInformationMessage(
+ `eBook ${path.basename(dest)} was created as path: ${dest}`,
+ );
+ })
+ .catch(error => {
+ vscode.window.showErrorMessage(error.toString());
+ });
+ }
}
}
public pandocExport(sourceUri) {
const engine = this.getEngine(sourceUri);
if (engine) {
- engine
- .pandocExport({ openFileAfterGeneration: true })
- .then(dest => {
- vscode.window.showInformationMessage(
- `Document ${path.basename(dest)} was created as path: ${dest}`,
- );
- })
- .catch(error => {
- vscode.window.showErrorMessage(error.toString());
- });
+ if (isVSCodeWebExtension()) {
+ vscode.window.showErrorMessage(`Not supported in MPE web extension.`);
+ } else {
+ engine
+ .pandocExport({ openFileAfterGeneration: true })
+ .then(dest => {
+ vscode.window.showInformationMessage(
+ `Document ${path.basename(dest)} was created as path: ${dest}`,
+ );
+ })
+ .catch(error => {
+ vscode.window.showErrorMessage(error.toString());
+ });
+ }
}
}
@@ -821,18 +736,12 @@ export class MarkdownPreviewEnhancedView {
this.config = newConfig;
} else {
this.config = newConfig;
- for (const fsPath in this.engineMaps) {
- if (this.engineMaps.hasOwnProperty(fsPath)) {
- const engine = this.engineMaps[fsPath];
- const previewTheme = this.getPreviewTheme(
- newConfig.previewTheme,
- newConfig.previewColorScheme,
- );
- // Update markdown engine configuration
- engine.updateConfiguration({ ...newConfig, previewTheme });
- }
- }
+ const previewTheme = this.getPreviewTheme(
+ newConfig.previewTheme,
+ newConfig.previewColorScheme,
+ );
+ this.notebook.updateConfig({ ...newConfig, previewTheme });
// update all generated md documents
this.refreshAllPreviews();
}
@@ -923,10 +832,3 @@ export function getPreviewUri(uri: vscode.Uri) {
}
return previewUri;
}
-
-export function isMarkdownFile(document: vscode.TextDocument) {
- return (
- document.languageId === 'markdown' &&
- document.uri.scheme !== 'markdown-preview-enhanced'
- ); // prevent processing of own documents
-}
diff --git a/src/utils.ts b/src/utils.ts
new file mode 100644
index 0000000..fe22ff0
--- /dev/null
+++ b/src/utils.ts
@@ -0,0 +1,126 @@
+import path = require('path');
+import * as os from 'os';
+import * as vscode from 'vscode';
+import * as packageJSON from '../package.json';
+
+/**
+ * Format pathString if it is on Windows. Convert `c:\` like string to `C:\`
+ * @param pathString
+ */
+function formatPathIfNecessary(pathString: string) {
+ if (process.platform === 'win32') {
+ pathString = pathString.replace(
+ /^([a-zA-Z])\:\\/,
+ (_, $1) => `${$1.toUpperCase()}:\\`,
+ );
+ }
+ return pathString;
+}
+
+/**
+ * Get the workspace folder uri of the given uri
+ * @param uri
+ */
+export function getWorkspaceFolderUri(uri: vscode.Uri) {
+ const workspace = vscode.workspace.getWorkspaceFolder(uri);
+ if (workspace) {
+ return workspace.uri;
+ }
+
+ const workspaces = vscode.workspace.workspaceFolders;
+ if (workspaces) {
+ for (let i = 0; i < workspaces.length; i++) {
+ const workspace = workspaces[i];
+ if (uri.fsPath.startsWith(workspace.uri.fsPath)) {
+ return workspace.uri;
+ }
+ }
+ }
+
+ // Return the folder of uri
+ return vscode.Uri.file(path.dirname(uri.fsPath));
+}
+
+function getGlobalConfigPath(): string {
+ const config = vscode.workspace.getConfiguration('markdown-preview-enhanced');
+ const configPath = config.get('configPath');
+ if (configPath && configPath !== '') {
+ return configPath.replace(/^~/, os.homedir());
+ }
+
+ if (process.platform === 'win32') {
+ return path.join(os.homedir(), './.crossnote');
+ } else {
+ if (
+ typeof process.env.XDG_CONFIG_HOME === 'string' &&
+ process.env.XDG_CONFIG_HOME !== ''
+ ) {
+ return path.resolve(process.env.XDG_CONFIG_HOME, './crossnote');
+ } else {
+ return path.resolve(os.homedir(), './.local/state/crossnote');
+ }
+ }
+}
+export const globalConfigPath = getGlobalConfigPath();
+
+export function isMarkdownFile(document: vscode.TextDocument) {
+ return (
+ document.languageId === 'markdown' &&
+ document.uri.scheme !== 'markdown-preview-enhanced'
+ ); // prevent processing of own documents
+}
+
+/**
+ * Get the top-most visible range of `editor`.
+ *
+ * Returns a fractional line number based the visible character within the line.
+ * Floor to get real line number
+ */
+export function getTopVisibleLine(
+ editor: vscode.TextEditor,
+): number | undefined {
+ if (!editor['visibleRanges'].length) {
+ return undefined;
+ }
+
+ const firstVisiblePosition = editor['visibleRanges'][0].start;
+ const lineNumber = firstVisiblePosition.line;
+ const line = editor.document.lineAt(lineNumber);
+ const progress = firstVisiblePosition.character / (line.text.length + 2);
+ return lineNumber + progress;
+}
+
+/**
+ * Get the bottom-most visible range of `editor`.
+ *
+ * Returns a fractional line number based the visible character within the line.
+ * Floor to get real line number
+ */
+export function getBottomVisibleLine(
+ editor: vscode.TextEditor,
+): number | undefined {
+ if (!editor['visibleRanges'].length) {
+ return undefined;
+ }
+
+ const firstVisiblePosition = editor['visibleRanges'][0].end;
+ const lineNumber = firstVisiblePosition.line;
+ let text = '';
+ if (lineNumber < editor.document.lineCount) {
+ text = editor.document.lineAt(lineNumber).text;
+ }
+ const progress = firstVisiblePosition.character / (text.length + 2);
+ return lineNumber + progress;
+}
+
+export function isVSCodeWebExtension() {
+ return process.env.IS_VSCODE_WEB_EXTENSION === 'true';
+}
+
+export function isVSCodewebExtensionDevMode() {
+ return process.env.IS_VSCODE_WEB_EXTENSION_DEV_MODE === 'true';
+}
+
+export function getCrossnoteVersion() {
+ return packageJSON.dependencies['crossnote'];
+}
diff --git a/src/utils/path-resolver.ts b/src/utils/path-resolver.ts
deleted file mode 100644
index 45d8bb2..0000000
--- a/src/utils/path-resolver.ts
+++ /dev/null
@@ -1,85 +0,0 @@
-import * as vscode from 'vscode';
-
-export class PathResolver {
- /**
- * resolve placeholder in string
- */
- public static resolvePath(path: string) {
- let result = path;
-
- // guard: empty
- if (result.trim() === '') {
- return path;
- }
-
- // resolve VS Code predefined variables
- result = this.resolveVscodePredefinedVariables(result);
-
- // resolve environment variables
- result = this.resolveEnvironmentVariable(result);
-
- // done
- return result;
- }
-
- /**
- * resolve vscode predefined variables in string
- */
- public static resolveVscodePredefinedVariables(path: string) {
- let result = path;
-
- // ... workspaceFolder
- result = this.resolveVscodePredefinedVariableWorkspaceFolder(result);
-
- // done
- return result;
- }
-
- /**
- * resolve vscode predefined variables in string
- */
- public static resolveVscodePredefinedVariableWorkspaceFolder(path: string) {
- let result = path;
-
- // guard: nothing to do
- if (!path.includes('${workspaceFolder}')) {
- return path;
- }
-
- // guard: error
- if (vscode.workspace.workspaceFolders === undefined) {
- vscode.window.showErrorMessage(
- 'Working folder not found, open a folder an try again',
- );
-
- return path;
- }
-
- // determine workspace folder
- // let workspaceFolder = vscode.workspace.workspaceFolders[0].uri.path ;
- const workspaceFolder = vscode.workspace.workspaceFolders[0].uri.fsPath;
-
- // replace in configPath
- result = path.replace('${workspaceFolder}', workspaceFolder);
-
- // log
- // vscode.window.showInformationMessage(
- // `Resolved '${this}' to '${result}'`
- // );
-
- // done
- return result;
- }
-
- /**
- * resolve environment variables in string
- */
- public static resolveEnvironmentVariable(path: string) {
- // try to replace environment variables for windows (%ENV_VAR%) and bash (${ENV_VAR} as well as $ENV_VAR)
- // line as suggested in https://stackoverflow.com/questions/21363912/how-to-resolve-a-path-that-includes-an-environment-variable-in-nodejs
- return path.replace(
- /%([A-Z_]+[A-Z0-9_]*)%|\$([A-Z_]+[A-Z0-9_]*)|\${([A-Z0-9_]*)}/gi,
- (_, windows, bash1, bash2) => process.env[windows || bash1 || bash2],
- );
- }
-}
diff --git a/src/vscode-fs.ts b/src/vscode-fs.ts
new file mode 100644
index 0000000..df705ac
--- /dev/null
+++ b/src/vscode-fs.ts
@@ -0,0 +1,60 @@
+import { FileSystemApi, FileSystemStats } from 'crossnote';
+import * as vscode from 'vscode';
+
+function getUri(path: string, scheme: string): vscode.Uri {
+ const uri = vscode.Uri.file(path);
+ return vscode.Uri.from({
+ ...uri,
+ scheme,
+ });
+}
+
+export function wrapVSCodeFSAsApi(scheme: string): FileSystemApi {
+ return {
+ exists: async (path: string): Promise => {
+ const uri = getUri(path, scheme);
+ // Check if the uri exists
+ try {
+ await vscode.workspace.fs.stat(uri);
+ return true;
+ } catch (error) {
+ return false;
+ }
+ },
+ readFile: async (path: string): Promise => {
+ path = path.replace(/^\//, '');
+ const uri = getUri(path, scheme);
+ const data = await vscode.workspace.fs.readFile(uri);
+ return new TextDecoder('utf-8').decode(data);
+ },
+ writeFile: async (path: string, data: string): Promise => {
+ const uri = getUri(path, scheme);
+ await vscode.workspace.fs.writeFile(uri, new TextEncoder().encode(data));
+ },
+ mkdir: async (path: string): Promise => {
+ await vscode.workspace.fs.createDirectory(getUri(path, scheme));
+ },
+ readdir: async (path: string): Promise => {
+ const uri = getUri(path, scheme);
+ const files = await vscode.workspace.fs.readDirectory(uri);
+ return files.map(file => file[0]);
+ },
+ stat: async (path: string): Promise => {
+ const uri = getUri(path, scheme);
+ const stat = await vscode.workspace.fs.stat(uri);
+ return {
+ isDirectory: () => stat.type === vscode.FileType.Directory,
+ isFile: () => stat.type === vscode.FileType.File,
+ isSymbolicLink: () => stat.type === vscode.FileType.SymbolicLink,
+ size: stat.size,
+ mtimeMs: stat.mtime,
+ ctimeMs: stat.ctime,
+ };
+ },
+ unlink: async (path: string): Promise => {
+ await vscode.workspace.fs.delete(getUri(path, scheme), {
+ recursive: true,
+ });
+ },
+ };
+}
diff --git a/test/markdown/README.md b/test/markdown/README.md
new file mode 100644
index 0000000..3c148d4
--- /dev/null
+++ b/test/markdown/README.md
@@ -0,0 +1,9 @@
+# Test Markdown
+
+- [basics](/test/markdown/basics.md)
+- [[ code-chunks ]]
+- [[ diagrams ]]
+- [[ file-imports ]]
+- [[ interactive-diagrams ]]
+- [math](./math.md)
+- [google](https://google.com)
diff --git a/test/markdown/basics.md b/test/markdown/basics.md
new file mode 100644
index 0000000..0858a9c
--- /dev/null
+++ b/test/markdown/basics.md
@@ -0,0 +1,70 @@
+Here is some `inline` code!
+
+---
+
+spaced code block
+
+ var greeting = 'Hello world!';
+ console.log(greeting);
+
+---
+
+fenced code block
+
+```
+var greeting = 'Hello world!';
+console.log(greeting);
+```
+
+---
+
+fenced plus language `js`
+
+```js
+var greeting = 'Hello world!';
+console.log(greeting);
+```
+
+---
+
+`js .line-numbers`
+
+```js .line-numbers
+var greeting = 'Hello world!';
+console.log(greeting);
+
+var greeting2 = 'Hello world2!';
+console.log(greeting2);
+
+var greeting3 = 'Hello world3!';
+console.log(greeting3);
+
+var greeting4 = 'Hello world4!';
+console.log(greeting4);
+```
+
+---
+
+`js {hide=true}`
+
+```js {hide=true}
+this should not be seen
+```
+
+---
+
+`js {cmd=false}`
+
+```js {cmd=false}
+var greeting = 'Hello world!';
+console.log(greeting);
+```
+
+---
+
+`js {literate=false}`
+
+```js {literate=false}
+var greeting = 'Hello world!';
+console.log(greeting);
+```
diff --git a/test/markdown/code-chunks.md b/test/markdown/code-chunks.md
new file mode 100644
index 0000000..6881e86
--- /dev/null
+++ b/test/markdown/code-chunks.md
@@ -0,0 +1,184 @@
+## Table of contents with TOC {ignore=true}
+
+The above header should not appear in TOC
+
+[TOC]
+
+## Table of contents with code chunk {ignore=true}
+
+The above header should not appear in TOC
+
+
+
+
+
+
+
+## Bash
+
+`bash {cmd=true}`
+
+```bash {cmd=true}
+ls .
+```
+
+---
+
+## JavaScript
+
+`js {cmd=node output=html}`
+
+```js {cmd=node output=html}
+const date = Date.now();
+console.log(date.toString());
+```
+
+---
+
+`js {cmd=node output=markdown}`
+
+```js {cmd=node output=markdown}
+var greeting = 'Hello _world_';
+console.log(greeting);
+```
+
+---
+
+`js {cmd=node output=markdown output_first}`
+
+```js {cmd=node output=markdown output_first}
+var greeting = 'Hello _world_';
+console.log(greeting);
+```
+
+---
+
+`js {cmd=node output=none}`
+
+```js {cmd=node output=none}
+var greeting = 'Hello world!';
+console.log(greeting);
+```
+
+---
+
+`js {cmd=node output=txt modify_source}`
+
+```js {cmd=node output=txt modify_source}
+var greeting = 'Hello world!';
+console.log(greeting);
+```
+
+---
+
+`js {cmd=node output=txt modify_source run_on_save}`
+
+```js {cmd=node output=txt modify_source run_on_save}
+var greeting = 'Hello world!!!';
+console.log(greeting);
+```
+
+---
+
+## Python
+
+`gnuplot {cmd=true output="html"}`
+
+```gnuplot {cmd=true output="html"}
+set terminal svg
+set title "Simple Plots" font ",20"
+set key left box
+set samples 50
+set style data points
+
+plot [-10:10] sin(x),atan(x),cos(atan(x))
+```
+
+---
+
+`python {cmd=true args=["-v"]}`
+
+```python {cmd=true args=["-v"]}
+print("Verbose will be printed first")
+```
+
+---
+
+`python {hide=true}`
+
+```python {hide=true}
+print('you can see this output message, but not this code')
+```
+
+---
+
+`python {cmd=true id="izdlk700"}`
+
+```python {cmd=true id="izdlk700"}
+x = 1
+```
+
+`python {cmd=true id="izdlkdim"}`
+
+```python {cmd=true id="izdlkdim"}
+x = 2
+```
+
+`python {cmd=true continue="izdlk700" id="izdlkhso"}`
+
+```python {cmd=true continue="izdlk700" id="izdlkhso"}
+print(x) # will print 1
+```
+
+---
+
+`js {cmd=node output=text .line-numbers}`
+
+```js {cmd=node output=text .line-numbers}
+const date = Date.now();
+console.log(date.toString());
+```
+
+---
+
+## LaTeX
+
+`latex {cmd=true}`
+
+```latex {cmd=true}
+\documentclass{standalone}
+\begin{document}
+ Hello world!
+\end{document}
+```
+
+---
+
+`latex {cmd latex_zoom=2}`
+
+```latex {cmd latex_zoom=2}
+\documentclass{standalone}
+\begin{document}
+ Hello world!
+\end{document}
+```
+
+---
+
+`erd {cmd=true output="html" args=["-i", "$input_file" "-f", "svg"]}`
+
+```erd {cmd=true output="html" args=["-i", "$input_file" "-f", "svg"]}
+[Person]
+*name
+height
+weight
++birth_location_id
+
+[Location]
+*id
+city
+state
+country
+
+Person *--1 Location
+```
diff --git a/test/markdown/data/sp500.csv b/test/markdown/data/sp500.csv
new file mode 100644
index 0000000..0eb287f
--- /dev/null
+++ b/test/markdown/data/sp500.csv
@@ -0,0 +1,124 @@
+date,price
+Jan 1 2000,1394.46
+Feb 1 2000,1366.42
+Mar 1 2000,1498.58
+Apr 1 2000,1452.43
+May 1 2000,1420.6
+Jun 1 2000,1454.6
+Jul 1 2000,1430.83
+Aug 1 2000,1517.68
+Sep 1 2000,1436.51
+Oct 1 2000,1429.4
+Nov 1 2000,1314.95
+Dec 1 2000,1320.28
+Jan 1 2001,1366.01
+Feb 1 2001,1239.94
+Mar 1 2001,1160.33
+Apr 1 2001,1249.46
+May 1 2001,1255.82
+Jun 1 2001,1224.38
+Jul 1 2001,1211.23
+Aug 1 2001,1133.58
+Sep 1 2001,1040.94
+Oct 1 2001,1059.78
+Nov 1 2001,1139.45
+Dec 1 2001,1148.08
+Jan 1 2002,1130.2
+Feb 1 2002,1106.73
+Mar 1 2002,1147.39
+Apr 1 2002,1076.92
+May 1 2002,1067.14
+Jun 1 2002,989.82
+Jul 1 2002,911.62
+Aug 1 2002,916.07
+Sep 1 2002,815.28
+Oct 1 2002,885.76
+Nov 1 2002,936.31
+Dec 1 2002,879.82
+Jan 1 2003,855.7
+Feb 1 2003,841.15
+Mar 1 2003,848.18
+Apr 1 2003,916.92
+May 1 2003,963.59
+Jun 1 2003,974.5
+Jul 1 2003,990.31
+Aug 1 2003,1008.01
+Sep 1 2003,995.97
+Oct 1 2003,1050.71
+Nov 1 2003,1058.2
+Dec 1 2003,1111.92
+Jan 1 2004,1131.13
+Feb 1 2004,1144.94
+Mar 1 2004,1126.21
+Apr 1 2004,1107.3
+May 1 2004,1120.68
+Jun 1 2004,1140.84
+Jul 1 2004,1101.72
+Aug 1 2004,1104.24
+Sep 1 2004,1114.58
+Oct 1 2004,1130.2
+Nov 1 2004,1173.82
+Dec 1 2004,1211.92
+Jan 1 2005,1181.27
+Feb 1 2005,1203.6
+Mar 1 2005,1180.59
+Apr 1 2005,1156.85
+May 1 2005,1191.5
+Jun 1 2005,1191.33
+Jul 1 2005,1234.18
+Aug 1 2005,1220.33
+Sep 1 2005,1228.81
+Oct 1 2005,1207.01
+Nov 1 2005,1249.48
+Dec 1 2005,1248.29
+Jan 1 2006,1280.08
+Feb 1 2006,1280.66
+Mar 1 2006,1294.87
+Apr 1 2006,1310.61
+May 1 2006,1270.09
+Jun 1 2006,1270.2
+Jul 1 2006,1276.66
+Aug 1 2006,1303.82
+Sep 1 2006,1335.85
+Oct 1 2006,1377.94
+Nov 1 2006,1400.63
+Dec 1 2006,1418.3
+Jan 1 2007,1438.24
+Feb 1 2007,1406.82
+Mar 1 2007,1420.86
+Apr 1 2007,1482.37
+May 1 2007,1530.62
+Jun 1 2007,1503.35
+Jul 1 2007,1455.27
+Aug 1 2007,1473.99
+Sep 1 2007,1526.75
+Oct 1 2007,1549.38
+Nov 1 2007,1481.14
+Dec 1 2007,1468.36
+Jan 1 2008,1378.55
+Feb 1 2008,1330.63
+Mar 1 2008,1322.7
+Apr 1 2008,1385.59
+May 1 2008,1400.38
+Jun 1 2008,1280
+Jul 1 2008,1267.38
+Aug 1 2008,1282.83
+Sep 1 2008,1166.36
+Oct 1 2008,968.75
+Nov 1 2008,896.24
+Dec 1 2008,903.25
+Jan 1 2009,825.88
+Feb 1 2009,735.09
+Mar 1 2009,797.87
+Apr 1 2009,872.81
+May 1 2009,919.14
+Jun 1 2009,919.32
+Jul 1 2009,987.48
+Aug 1 2009,1020.62
+Sep 1 2009,1057.08
+Oct 1 2009,1036.19
+Nov 1 2009,1095.63
+Dec 1 2009,1115.1
+Jan 1 2010,1073.87
+Feb 1 2010,1104.49
+Mar 1 2010,1140.45
diff --git a/test/markdown/diagrams.md b/test/markdown/diagrams.md
new file mode 100644
index 0000000..9a3659c
--- /dev/null
+++ b/test/markdown/diagrams.md
@@ -0,0 +1,371 @@
+# Diagrams
+
+## [Mermaid](https://shd101wyy.github.io/markdown-preview-enhanced/#/diagrams?id=mermaid)
+
+`mermaid`
+
+```mermaid
+graph TD;
+ A-->B;
+ A-->C;
+ B-->D;
+ C-->D;
+```
+
+---
+
+`mermaid {code_block=true}`
+
+```mermaid {code_block=true}
+graph TD;
+ A-->B;
+ A-->C;
+ B-->D;
+ C-->D;
+```
+
+## [PlantUML](https://shd101wyy.github.io/markdown-preview-enhanced/#/diagrams?id=plantuml)
+
+`puml`
+
+```puml
+@startuml
+Alice -> Bob: Authentication Request
+Bob --> Alice: Authentication Response
+
+Alice -> Bob: Another authentication Request
+Alice <-- Bob: another authentication Response
+@enduml
+```
+
+---
+
+`puml {align="center"}`
+
+```puml {align="center"}
+a->b
+```
+
+---
+
+`plantuml`
+
+```plantuml
+@startuml
+Alice -> Bob: Authentication Request
+Bob --> Alice: Authentication Response
+
+Alice -> Bob: Another authentication Request
+Alice <-- Bob: another authentication Response
+@enduml
+```
+
+## [WaveDrom](https://shd101wyy.github.io/markdown-preview-enhanced/#/diagrams?id=sequence-diagrams)
+
+`wavedrom`
+
+```wavedrom
+{ signal : [
+ { name: "clk", wave: "p......" },
+ { name: "bus", wave: "x.34.5x", data: "head body tail" },
+ { name: "wire", wave: "0.1..0." },
+]}
+```
+
+## [GraphViz](https://shd101wyy.github.io/markdown-preview-enhanced/#/diagrams?id=graphviz)
+
+`viz`
+
+```viz
+digraph G {
+ A -> B
+ B -> C
+ B -> D
+}
+```
+
+---
+
+`dot {engine=circo}`
+
+```dot {engine=circo}
+digraph G {
+ A -> B
+ B -> C
+ B -> D
+}
+```
+
+## Vega
+
+`vega` + json
+
+```vega
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "width": 400,
+ "height": 200,
+ "padding": 5,
+
+ "data": [
+ {
+ "name": "table",
+ "values": [
+ {"category": "A", "amount": 28},
+ {"category": "B", "amount": 55},
+ {"category": "C", "amount": 43},
+ {"category": "D", "amount": 91},
+ {"category": "E", "amount": 81},
+ {"category": "F", "amount": 53},
+ {"category": "G", "amount": 19},
+ {"category": "H", "amount": 87}
+ ]
+ }
+ ],
+
+ "signals": [
+ {
+ "name": "tooltip",
+ "value": {},
+ "on": [
+ {"events": "rect:mouseover", "update": "datum"},
+ {"events": "rect:mouseout", "update": "{}"}
+ ]
+ }
+ ],
+
+ "scales": [
+ {
+ "name": "xscale",
+ "type": "band",
+ "domain": {"data": "table", "field": "category"},
+ "range": "width",
+ "padding": 0.05,
+ "round": true
+ },
+ {
+ "name": "yscale",
+ "domain": {"data": "table", "field": "amount"},
+ "nice": true,
+ "range": "height"
+ }
+ ],
+
+ "axes": [
+ { "orient": "bottom", "scale": "xscale" },
+ { "orient": "left", "scale": "yscale" }
+ ],
+
+ "marks": [
+ {
+ "type": "rect",
+ "from": {"data":"table"},
+ "encode": {
+ "enter": {
+ "x": {"scale": "xscale", "field": "category"},
+ "width": {"scale": "xscale", "band": 1},
+ "y": {"scale": "yscale", "field": "amount"},
+ "y2": {"scale": "yscale", "value": 0}
+ },
+ "update": {
+ "fill": {"value": "steelblue"}
+ },
+ "hover": {
+ "fill": {"value": "red"}
+ }
+ }
+ },
+ {
+ "type": "text",
+ "encode": {
+ "enter": {
+ "align": {"value": "center"},
+ "baseline": {"value": "bottom"},
+ "fill": {"value": "#333"}
+ },
+ "update": {
+ "x": {"scale": "xscale", "signal": "tooltip.category", "band": 0.5},
+ "y": {"scale": "yscale", "signal": "tooltip.amount", "offset": -2},
+ "text": {"signal": "tooltip.amount"},
+ "fillOpacity": [
+ {"test": "datum === tooltip", "value": 0},
+ {"value": 1}
+ ]
+ }
+ }
+ }
+ ]
+}
+```
+
+## Vega lite
+
+`vega-lite` + json
+
+```vega-lite
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v3.json",
+ "description": "A simple bar chart with embedded data.",
+ "data": {
+ "values": [
+ {"a": "A","b": 28}, {"a": "B","b": 55}, {"a": "C","b": 43},
+ {"a": "D","b": 91}, {"a": "E","b": 81}, {"a": "F","b": 53},
+ {"a": "G","b": 19}, {"a": "H","b": 87}, {"a": "I","b": 52}
+ ]
+ },
+ "mark": "bar",
+ "encoding": {
+ "x": {"field": "a", "type": "ordinal"},
+ "y": {"field": "b", "type": "quantitative"}
+ }
+}
+```
+
+---
+
+`vega-lite` + yaml
+
+```vega-lite
+"$schema": https://vega.github.io/schema/vega-lite/v3.json
+description: A simple bar chart with embedded data.
+data:
+ values: [
+ {"a": "A","b": 28}, {"a": "B","b": 55}, {"a": "C","b": 43},
+ {"a": "D","b": 91}, {"a": "E","b": 81}, {"a": "F","b": 53},
+ {"a": "G","b": 19}, {"a": "H","b": 87}, {"a": "I","b": 52}
+ ]
+mark: bar
+encoding:
+ x:
+ field: a
+ type: ordinal
+ y:
+ field: b
+ type: quantitative
+```
+
+---
+
+`vega-lite {hide=false}` + json
+
+```vega-lite {hide=false}
+"$schema": https://vega.github.io/schema/vega-lite/v3.json
+description: A simple bar chart with embedded data.
+data:
+ values: [
+ {"a": "A","b": 28}, {"a": "B","b": 55}, {"a": "C","b": 43},
+ {"a": "D","b": 91}, {"a": "E","b": 81}, {"a": "F","b": 53},
+ {"a": "G","b": 19}, {"a": "H","b": 87}, {"a": "I","b": 52}
+ ]
+mark: bar
+encoding:
+ x:
+ field: a
+ type: ordinal
+ y:
+ field: b
+ type: quantitative
+```
+
+---
+
+`vega-lite {cmd=false}`
+
+```vega-lite {cmd=false}
+"$schema": https://vega.github.io/schema/vega-lite/v3.json
+description: A simple bar chart with embedded data.
+data:
+ values: [
+ {"a": "A","b": 28}, {"a": "B","b": 55}, {"a": "C","b": 43},
+ {"a": "D","b": 91}, {"a": "E","b": 81}, {"a": "F","b": 53},
+ {"a": "G","b": 19}, {"a": "H","b": 87}, {"a": "I","b": 52}
+ ]
+mark: bar
+encoding:
+ x:
+ field: a
+ type: ordinal
+ y:
+ field: b
+ type: quantitative
+```
+
+---
+
+`vega-lite` + json (geo)
+
+```vega-lite
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v2.1.json",
+ "width": 500,
+ "height": 300,
+ "data": {
+ "url": "data/us-10m.json",
+ "format": {
+ "type": "topojson",
+ "feature": "counties"
+ }
+ },
+ "transform": [{
+ "lookup": "id",
+ "from": {
+ "data": {
+ "url": "data/unemployment.tsv"
+ },
+ "key": "id",
+ "fields": ["rate"]
+ }
+ }],
+ "projection": {
+ "type": "albersUsa"
+ },
+ "mark": "geoshape",
+ "encoding": {
+ "color": {
+ "field": "rate",
+ "type": "quantitative"
+ }
+ }
+}
+```
+
+---
+
+`vega-embed`
+
+```vega-lite
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
+ "description": "A simple bar chart with embedded data.",
+ "width": 360,
+ "data": {
+ "values": [
+ {"a": "A","b": 28}, {"a": "B","b": 55}, {"a": "C","b": 43},
+ {"a": "D","b": 91}, {"a": "E","b": 81}, {"a": "F","b": 53},
+ {"a": "G","b": 19}, {"a": "H","b": 87}, {"a": "I","b": 52}
+ ]
+ },
+ "mark": "bar",
+ "encoding": {
+ "x": {"field": "a", "type": "ordinal"},
+ "y": {"field": "b", "type": "quantitative"},
+ "tooltip": {"field": "b", "type": "quantitative"}
+ }
+}
+```
+
+## Kroki
+
+`ditaa {kroki=true}`
+
+```ditaa {kroki=true}
++--------+ +-------+ +-------+
+| | --+ ditaa +--> | |
+| Text | +-------+ |diagram|
+|Document| |!magic!| | |
+| {d}| | | | |
++---+----+ +-------+ +-------+
+ : ^
+ | Lots of work |
+ +-------------------------+
+```
diff --git a/test/markdown/file-imports.md b/test/markdown/file-imports.md
new file mode 100644
index 0000000..5e23469
--- /dev/null
+++ b/test/markdown/file-imports.md
@@ -0,0 +1,24 @@
+# [File imports](https://shd101wyy.github.io/markdown-preview-enhanced/#/file-imports)
+
+`@import "file-imports/markdown-logo.jpg"`
+@import "file-imports/markdown-logo.jpg"
+
+---
+
+`@import "file-imports/markdown-logo.png"`
+@import "file-imports/markdown-logo.png"
+
+---
+
+`@import "file-imports/markdown-logo.png" {width="100px" height="62px" title="my title" alt="my alt"}`
+@import "file-imports/markdown-logo.png" {width="100px" height="62px" title="my title" alt="my alt"}
+
+---
+
+`@import "file-imports/diagram.mermaid"`
+@import "file-imports/diagram.mermaid"
+
+---
+
+`@import "file-imports/diagram.mermaid" {hide=false}`
+@import "file-imports/diagram.mermaid" {hide=false}
diff --git a/test/markdown/interactive-diagrams.md b/test/markdown/interactive-diagrams.md
new file mode 100644
index 0000000..c0b79a0
--- /dev/null
+++ b/test/markdown/interactive-diagrams.md
@@ -0,0 +1,372 @@
+## Interactive Vega
+
+---
+
+`vega-lite {interactive}` simple
+
+```vega-lite {interactive}
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v3.json",
+ "description": "A simple bar chart with embedded data.",
+ "data": {
+ "values": [
+ {"a": "A","b": 28}, {"a": "B","b": 55}, {"a": "C","b": 43},
+ {"a": "D","b": 91}, {"a": "E","b": 81}, {"a": "F","b": 53},
+ {"a": "G","b": 19}, {"a": "H","b": 87}, {"a": "I","b": 52}
+ ]
+ },
+ "selection": {
+ "bars": {"type": "single"}
+ },
+ "mark": "bar",
+ "encoding": {
+ "x": {"field": "a", "type": "ordinal"},
+ "y": {"field": "b", "type": "quantitative"},
+ "color": {
+ "condition": {
+ "selection": "bars",
+ "value": "rgb(76, 120, 168)"
+ },
+ "value": "black"
+ }
+ }
+}
+```
+
+`vega-lite {interactive}` yaml
+
+```vega-lite {interactive}
+$schema: https://vega.github.io/schema/vega-lite/v3.json
+description: A simple bar chart with embedded data.
+data:
+ values: [
+ {"a": "A","b": 28}, {"a": "B","b": 55}, {"a": "C","b": 43},
+ {"a": "D","b": 91}, {"a": "E","b": 81}, {"a": "F","b": 53},
+ {"a": "G","b": 19}, {"a": "H","b": 87}, {"a": "I","b": 52}
+ ]
+selection:
+ bars:
+ type: single
+mark: bar
+encoding:
+ x:
+ field: a
+ type: ordinal
+ y:
+ field: b
+ type: quantitative
+ color:
+ condition:
+ selection: bars
+ value: rgb(76, 120, 168)
+ value: black
+```
+
+`vega-lite {interactive}` with local data file (`data/sp500.csv`)
+
+```vega-lite {interactive}
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v3.json",
+ "data": {"url": "data/sp500.csv"},
+ "vconcat": [{
+ "width": 480,
+ "mark": "area",
+ "encoding": {
+ "x": {
+ "field": "date",
+ "type": "temporal",
+ "scale": {"domain": {"selection": "brush"}},
+ "axis": {"title": ""}
+ },
+ "y": {"field": "price","type": "quantitative"}
+ }
+ }, {
+ "width": 480,
+ "height": 60,
+ "mark": "area",
+ "selection": {
+ "brush": {"type": "interval", "encodings": ["x"]}
+ },
+ "encoding": {
+ "x": {
+ "field": "date",
+ "type": "temporal",
+ "axis": {"format": "%Y"}
+ },
+ "y": {
+ "field": "price",
+ "type": "quantitative",
+ "axis": {"tickCount": 3, "grid": false}
+ }
+ }
+ }]
+}
+```
+
+---
+
+`vega-lite {interactive hide=false}` with remote data file (`https://vega.github.io/vega-lite/data/sp500.csv`) + don't hide source
+
+```vega-lite {interactive hide=false}
+{
+ "$schema": "https://vega.github.io/schema/vega-lite/v3.json",
+ "data": {"url": "https://vega.github.io/vega-lite/data/sp500.csv"},
+ "vconcat": [{
+ "width": 480,
+ "mark": "area",
+ "encoding": {
+ "x": {
+ "field": "date",
+ "type": "temporal",
+ "scale": {"domain": {"selection": "brush"}},
+ "axis": {"title": ""}
+ },
+ "y": {"field": "price","type": "quantitative"}
+ }
+ }, {
+ "width": 480,
+ "height": 60,
+ "mark": "area",
+ "selection": {
+ "brush": {"type": "interval", "encodings": ["x"]}
+ },
+ "encoding": {
+ "x": {
+ "field": "date",
+ "type": "temporal",
+ "axis": {"format": "%Y"}
+ },
+ "y": {
+ "field": "price",
+ "type": "quantitative",
+ "axis": {"tickCount": 3, "grid": false}
+ }
+ }
+ }]
+}
+```
+
+---
+
+`vega {interactive}` with remote data file
+
+```vega {interactive}
+{
+ "$schema": "https://vega.github.io/schema/vega/v5.json",
+ "width": 720,
+ "height": 480,
+ "padding": 5,
+
+ "data": [
+ {
+ "name": "sp500",
+ "url": "https://vega.github.io/vega-lite/data/sp500.csv",
+ "format": {"type": "csv", "parse": {"price": "number", "date": "date"}}
+ }
+ ],
+
+ "signals": [
+ {
+ "name": "detailDomain"
+ }
+ ],
+
+ "marks": [
+ {
+ "type": "group",
+ "name": "detail",
+ "encode": {
+ "enter": {
+ "height": {"value": 390},
+ "width": {"value": 720}
+ }
+ },
+ "scales": [
+ {
+ "name": "xDetail",
+ "type": "time",
+ "range": "width",
+ "domain": {"data": "sp500", "field": "date"},
+ "domainRaw": {"signal": "detailDomain"}
+ },
+ {
+ "name": "yDetail",
+ "type": "linear",
+ "range": [390, 0],
+ "domain": {"data": "sp500", "field": "price"},
+ "nice": true, "zero": true
+ }
+ ],
+ "axes": [
+ {"orient": "bottom", "scale": "xDetail"},
+ {"orient": "left", "scale": "yDetail"}
+ ],
+ "marks": [
+ {
+ "type": "group",
+ "encode": {
+ "enter": {
+ "height": {"field": {"group": "height"}},
+ "width": {"field": {"group": "width"}},
+ "clip": {"value": true}
+ }
+ },
+ "marks": [
+ {
+ "type": "area",
+ "from": {"data": "sp500"},
+ "encode": {
+ "update": {
+ "x": {"scale": "xDetail", "field": "date"},
+ "y": {"scale": "yDetail", "field": "price"},
+ "y2": {"scale": "yDetail", "value": 0},
+ "fill": {"value": "steelblue"}
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+
+ {
+ "type": "group",
+ "name": "overview",
+ "encode": {
+ "enter": {
+ "x": {"value": 0},
+ "y": {"value": 430},
+ "height": {"value": 70},
+ "width": {"value": 720},
+ "fill": {"value": "transparent"}
+ }
+ },
+ "signals": [
+ {
+ "name": "brush", "value": 0,
+ "on": [
+ {
+ "events": "@overview:mousedown",
+ "update": "[x(), x()]"
+ },
+ {
+ "events": "[@overview:mousedown, window:mouseup] > window:mousemove!",
+ "update": "[brush[0], clamp(x(), 0, width)]"
+ },
+ {
+ "events": {"signal": "delta"},
+ "update": "clampRange([anchor[0] + delta, anchor[1] + delta], 0, width)"
+ }
+ ]
+ },
+ {
+ "name": "anchor", "value": null,
+ "on": [{"events": "@brush:mousedown", "update": "slice(brush)"}]
+ },
+ {
+ "name": "xdown", "value": 0,
+ "on": [{"events": "@brush:mousedown", "update": "x()"}]
+ },
+ {
+ "name": "delta", "value": 0,
+ "on": [
+ {
+ "events": "[@brush:mousedown, window:mouseup] > window:mousemove!",
+ "update": "x() - xdown"
+ }
+ ]
+ },
+ {
+ "name": "detailDomain",
+ "push": "outer",
+ "on": [
+ {
+ "events": {"signal": "brush"},
+ "update": "span(brush) ? invert('xOverview', brush) : null"
+ }
+ ]
+ }
+ ],
+ "scales": [
+ {
+ "name": "xOverview",
+ "type": "time",
+ "range": "width",
+ "domain": {"data": "sp500", "field": "date"}
+ },
+ {
+ "name": "yOverview",
+ "type": "linear",
+ "range": [70, 0],
+ "domain": {"data": "sp500", "field": "price"},
+ "nice": true, "zero": true
+ }
+ ],
+ "axes": [
+ {"orient": "bottom", "scale": "xOverview"}
+ ],
+ "marks": [
+ {
+ "type": "area",
+ "interactive": false,
+ "from": {"data": "sp500"},
+ "encode": {
+ "update": {
+ "x": {"scale": "xOverview", "field": "date"},
+ "y": {"scale": "yOverview", "field": "price"},
+ "y2": {"scale": "yOverview", "value": 0},
+ "fill": {"value": "steelblue"}
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "name": "brush",
+ "encode": {
+ "enter": {
+ "y": {"value": 0},
+ "height": {"value": 70},
+ "fill": {"value": "#333"},
+ "fillOpacity": {"value": 0.2}
+ },
+ "update": {
+ "x": {"signal": "brush[0]"},
+ "x2": {"signal": "brush[1]"}
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "interactive": false,
+ "encode": {
+ "enter": {
+ "y": {"value": 0},
+ "height": {"value": 70},
+ "width": {"value": 1},
+ "fill": {"value": "firebrick"}
+ },
+ "update": {
+ "x": {"signal": "brush[0]"}
+ }
+ }
+ },
+ {
+ "type": "rect",
+ "interactive": false,
+ "encode": {
+ "enter": {
+ "y": {"value": 0},
+ "height": {"value": 70},
+ "width": {"value": 1},
+ "fill": {"value": "firebrick"}
+ },
+ "update": {
+ "x": {"signal": "brush[1]"}
+ }
+ }
+ }
+ ]
+ }
+ ]
+}
+```
diff --git a/test/markdown/math.md b/test/markdown/math.md
new file mode 100644
index 0000000..097a46a
--- /dev/null
+++ b/test/markdown/math.md
@@ -0,0 +1,41 @@
+## [Math](https://shd101wyy.github.io/markdown-preview-enhanced/#/math)
+
+`hello $inline$ math`
+hello $inline$ math
+
+---
+
+`$$ E = mc^22 $$`
+$$ E = mc^22 $$
+
+---
+
+`math`
+
+```math
+E = mc^2
+```
+
+---
+
+`math hide=false`
+
+```math hide=false
+E = mc^2
+```
+
+---
+
+`math hide=false output_first`
+
+```math hide=false output_first
+E = mc^2
+```
+
+---
+
+`math literate=false`
+
+```math literate=false
+E = mc^2
+```
diff --git a/tsconfig.json b/tsconfig.json
index fbb8dc6..1da9451 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -5,9 +5,21 @@
"noUnusedLocals": true,
"sourceMap": true,
"outDir": "out",
- "lib": ["ES2020", "WebWorker"],
- "rootDir": "src"
+ "lib": [
+ "ES2020",
+ "WebWorker"
+ ],
+ "rootDir": ".",
+ "strictNullChecks": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true
},
- "include": ["src/**/*", "test/**/*"],
- "exclude": ["node_modules", "out"]
-}
+ "include": [
+ "src/**/*",
+ "test/**/*"
+ ],
+ "exclude": [
+ "node_modules",
+ "out"
+ ]
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index ade622f..f401a66 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -29,6 +29,18 @@
chalk "^2.4.2"
js-tokens "^4.0.0"
+"@babel/runtime@^7.21.0":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4"
+ integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
+"@braintree/sanitize-url@^6.0.1":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz#923ca57e173c6b232bbbb07347b1be982f03e783"
+ integrity sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==
+
"@discoveryjs/json-ext@^0.5.0":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
@@ -235,6 +247,28 @@
"@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14"
+"@jspm/core@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@jspm/core/-/core-2.0.1.tgz#3f08c59c60a5f5e994523ed6b0b665ec80adc94e"
+ integrity sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw==
+
+"@koa/cors@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-4.0.0.tgz#b2d300d7368d2e0ad6faa1d918eff6d0cde0859a"
+ integrity sha512-Y4RrbvGTlAaa04DBoPBWJqDR5gPj32OOz827ULXfgB1F7piD1MB/zwn8JR2LAnvdILhxUbXbkXGWuNVsFuVFCQ==
+ dependencies:
+ vary "^1.1.2"
+
+"@koa/router@^12.0.0":
+ version "12.0.0"
+ resolved "https://registry.yarnpkg.com/@koa/router/-/router-12.0.0.tgz#2ae7937093fd392761c0e5833c368379d4a35737"
+ integrity sha512-cnnxeKHXlt7XARJptflGURdJaO+ITpNkOHmQu7NHmCoRinPbyvFzce/EG/E8Zy81yQ1W9MoSdtklc3nyaDReUw==
+ dependencies:
+ http-errors "^2.0.0"
+ koa-compose "^4.1.0"
+ methods "^1.1.2"
+ path-to-regexp "^6.2.1"
+
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -288,50 +322,6 @@
dependencies:
any-observable "^0.3.0"
-"@shd101wyy/mume@0.7.9":
- version "0.7.9"
- resolved "https://registry.yarnpkg.com/@shd101wyy/mume/-/mume-0.7.9.tgz#7beb58d5b5ba4c0cebd6da0ac49739b35a2efd13"
- integrity sha512-3zS4y5ljXyWglo0gH7l3b9P6jJpPS9dt0GpWnoQQo015GkvbFJwsuYlXFrTDqbP+yNE2oZ+w8+FlMyR1stisow==
- dependencies:
- "@viz-js/viz" "^3.1.0"
- async-mutex "^0.4.0"
- cheerio "^1.0.0-rc.12"
- chrome-paths "^1.0.1"
- crypto-js "^4.1.1"
- html-escaper "^3.0.3"
- imagemagick-cli "^0.5.0"
- katex "^0.16.8"
- less "^4.2.0"
- markdown-it "^13.0.1"
- markdown-it-abbr "^1.0.4"
- markdown-it-deflist "^2.1.0"
- markdown-it-emoji "^2.0.2"
- markdown-it-footnote "^3.0.3"
- markdown-it-html5-embed "^1.0.0"
- markdown-it-mark "^3.0.1"
- markdown-it-sub "^1.0.0"
- markdown-it-sup "^1.0.0"
- md5 "^2.3.0"
- minisearch "^6.1.0"
- mkdirp "^3.0.1"
- node-fetch "^2.6.1"
- object-hash "^3.0.0"
- pako "^2.1.0"
- papaparse "^5.4.1"
- puppeteer-core "^21.1.0"
- qiniu "^7.9.0"
- request "^2.88.0"
- slash "^5.1.0"
- snake-case "^3.0.4"
- temp "^0.9.0"
- twemoji "^13.1.0"
- type-fest "^4.3.1"
- uslug "^1.0.4"
- vega "^5.25.0"
- vega-lite "^5.14.1"
- vega-loader "^4.5.1"
- yaml "^2.3.2"
-
"@tootallnate/quickjs-emscripten@^0.23.0":
version "0.23.0"
resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c"
@@ -349,6 +339,30 @@
resolved "https://registry.yarnpkg.com/@types/clone/-/clone-2.1.1.tgz#9b880d0ce9b1f209b5e0bd6d9caa38209db34024"
integrity sha512-BZIU34bSYye0j/BFcPraiDZ5ka6MJADjcDVELGf7glr9K+iE8NYVjFslJFVWzskSxkLLyCrSPScE82/UUoBSvg==
+"@types/d3-scale-chromatic@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#103124777e8cdec85b20b51fd3397c682ee1e954"
+ integrity sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==
+
+"@types/d3-scale@^4.0.3":
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.4.tgz#3c5e2263eea5a3670cd91043b9f4d150a94c43f1"
+ integrity sha512-eq1ZeTj0yr72L8MQk6N6heP603ubnywSDRfNpi5enouR112HzGLS6RIvExCzZTraFF4HdzNpJMwA/zGiMoHUUw==
+ dependencies:
+ "@types/d3-time" "*"
+
+"@types/d3-time@*":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.0.tgz#e1ac0f3e9e195135361fa1a1d62f795d87e6e819"
+ integrity sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==
+
+"@types/debug@^4.0.0":
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317"
+ integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==
+ dependencies:
+ "@types/ms" "*"
+
"@types/eslint-scope@^3.7.3":
version "3.7.4"
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16"
@@ -388,6 +402,13 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb"
integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==
+"@types/mdast@^3.0.0":
+ version "3.0.12"
+ resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.12.tgz#beeb511b977c875a5b0cc92eab6fcac2f0895514"
+ integrity sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==
+ dependencies:
+ "@types/unist" "^2"
+
"@types/minimatch@*":
version "5.1.2"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca"
@@ -398,6 +419,11 @@
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea"
integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==
+"@types/ms@*":
+ version "0.7.31"
+ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197"
+ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
+
"@types/node@*":
version "20.5.7"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377"
@@ -423,6 +449,11 @@
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.0.tgz#988ae8af1e5239e89f9fbb1ade4c935f4eeedf9a"
integrity sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==
+"@types/unist@^2", "@types/unist@^2.0.0":
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.8.tgz#bb197b9639aa1a04cf464a617fe800cccd92ad5c"
+ integrity sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==
+
"@types/vfile-message@*":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-2.0.0.tgz#690e46af0fdfc1f9faae00cd049cc888957927d5"
@@ -541,6 +572,25 @@
resolved "https://registry.yarnpkg.com/@viz-js/viz/-/viz-3.1.0.tgz#f192a4f98f1fa187b959f2f54d169531677a0d99"
integrity sha512-rQi2PL9HoqTpE5DVodGgSLRdRVkDVgTG36AdcUR8EWxHL45KoUw7PAzZLm70vgK+QbUN6nCraTtqgxyqeJzxBA==
+"@vscode/test-web@^0.0.45":
+ version "0.0.45"
+ resolved "https://registry.yarnpkg.com/@vscode/test-web/-/test-web-0.0.45.tgz#e0b23a67ec0081f69173565db93847ab3aec0a8e"
+ integrity sha512-yPJgxEbbxDlKGGpLzNQ8PDPOOUKUVo7Epg/3o+y7mKtjbg3nktIReJ/pPtOHrZxsNC8FkzTNBoTh5DMBHX/LGg==
+ dependencies:
+ "@koa/cors" "^4.0.0"
+ "@koa/router" "^12.0.0"
+ gunzip-maybe "^1.4.2"
+ http-proxy-agent "^7.0.0"
+ https-proxy-agent "^7.0.1"
+ koa "^2.14.2"
+ koa-morgan "^1.0.1"
+ koa-mount "^4.0.0"
+ koa-static "^5.0.0"
+ minimist "^1.2.8"
+ playwright "^1.37.1"
+ tar-fs "^3.0.4"
+ vscode-uri "^3.0.7"
+
"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5":
version "1.11.6"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24"
@@ -687,6 +737,14 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+accepts@^1.3.5:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+ dependencies:
+ mime-types "~2.1.34"
+ negotiator "0.6.3"
+
acorn-import-assertions@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
@@ -697,6 +755,11 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+acorn@^6.4.1:
+ version "6.4.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
+ integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
+
acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
version "8.10.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
@@ -744,11 +807,25 @@ ansi-colors@3.2.3:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==
+ansi-colors@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9"
+ integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==
+ dependencies:
+ ansi-wrap "^0.1.0"
+
ansi-escapes@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+ansi-gray@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
+ integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==
+ dependencies:
+ ansi-wrap "0.1.0"
+
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -788,6 +865,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
+ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
+ integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==
+
any-observable@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
@@ -798,6 +880,26 @@ any-promise@^1.0.0, any-promise@^1.3.0:
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
+anymatch@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
+ dependencies:
+ micromatch "^3.1.4"
+ normalize-path "^2.1.1"
+
+append-buffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1"
+ integrity sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==
+ dependencies:
+ buffer-equal "^1.0.0"
+
+archy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
+ integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==
+
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -810,6 +912,35 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==
+
+arr-filter@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee"
+ integrity sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==
+ dependencies:
+ make-iterator "^1.0.0"
+
+arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-map@^2.0.0, arr-map@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4"
+ integrity sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==
+ dependencies:
+ make-iterator "^1.0.0"
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==
+
array-buffer-byte-length@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead"
@@ -818,11 +949,50 @@ array-buffer-byte-length@^1.0.0:
call-bind "^1.0.2"
is-array-buffer "^3.0.1"
+array-each@^1.0.0, array-each@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f"
+ integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==
+
+array-initial@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795"
+ integrity sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==
+ dependencies:
+ array-slice "^1.0.0"
+ is-number "^4.0.0"
+
+array-last@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336"
+ integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==
+ dependencies:
+ is-number "^4.0.0"
+
+array-slice@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4"
+ integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==
+
+array-sort@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
+ integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==
+ dependencies:
+ default-compare "^1.0.0"
+ get-value "^2.0.6"
+ kind-of "^5.0.2"
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+ integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==
+
array.prototype.reduce@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5"
@@ -858,6 +1028,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0:
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
+assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+ integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==
+
ast-types@^0.13.4:
version "0.13.4"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782"
@@ -865,6 +1040,21 @@ ast-types@^0.13.4:
dependencies:
tslib "^2.0.1"
+async-done@^1.2.0, async-done@^1.2.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2"
+ integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.2"
+ process-nextick-args "^2.0.0"
+ stream-exhaust "^1.0.1"
+
+async-each@^1.0.1:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77"
+ integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==
+
async-mutex@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.0.tgz#ae8048cd4d04ace94347507504b3cf15e631c25f"
@@ -872,11 +1062,30 @@ async-mutex@^0.4.0:
dependencies:
tslib "^2.4.0"
+async-settle@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b"
+ integrity sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==
+ dependencies:
+ async-done "^1.2.2"
+
+async@^2.6.4:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
+ integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
+ dependencies:
+ lodash "^4.17.14"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+atob@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
available-typed-arrays@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
@@ -897,6 +1106,21 @@ b4a@^1.6.4:
resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9"
integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==
+bach@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880"
+ integrity sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==
+ dependencies:
+ arr-filter "^1.1.1"
+ arr-flatten "^1.0.1"
+ arr-map "^2.0.0"
+ array-each "^1.0.0"
+ array-initial "^1.0.0"
+ array-last "^1.1.1"
+ async-done "^1.2.2"
+ async-settle "^1.0.0"
+ now-and-later "^2.0.0"
+
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -907,6 +1131,26 @@ base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+basic-auth@^2.0.1, basic-auth@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a"
+ integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==
+ dependencies:
+ safe-buffer "5.1.2"
+
basic-ftp@^5.0.2:
version "5.0.3"
resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228"
@@ -929,6 +1173,18 @@ big-integer@^1.6.44:
resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
+binary-extensions@^1.0.0:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
+ integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+
+bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+ dependencies:
+ file-uri-to-path "1.0.0"
+
block-stream2@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/block-stream2/-/block-stream2-2.1.0.tgz#ac0c5ef4298b3857796e05be8ebed72196fa054b"
@@ -956,6 +1212,22 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
+braces@^2.3.1, braces@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
braces@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
@@ -968,6 +1240,13 @@ browser-stdout@1.3.1:
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
+browserify-zlib@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
+ integrity sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==
+ dependencies:
+ pako "~0.2.0"
+
browserslist@^4.14.5:
version "4.21.10"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
@@ -983,6 +1262,11 @@ buffer-crc32@~0.2.3:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
+buffer-equal@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90"
+ integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==
+
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
@@ -1003,6 +1287,29 @@ bundle-name@^3.0.0:
dependencies:
run-applescript "^5.0.0"
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+cache-content-type@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
+ integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
+ dependencies:
+ mime-types "^2.1.18"
+ ylru "^1.2.0"
+
call-bind@^1.0.0, call-bind@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@@ -1035,6 +1342,11 @@ callsites@^3.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+camelcase@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+ integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==
+
camelcase@^5.0.0:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@@ -1070,7 +1382,7 @@ chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.0.0, chalk@^4.1.0:
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -1078,6 +1390,11 @@ chalk@^4.0.0, chalk@^4.1.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+character-entities@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22"
+ integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==
+
charenc@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
@@ -1108,6 +1425,25 @@ cheerio@^1.0.0-rc.12:
parse5 "^7.0.0"
parse5-htmlparser2-tree-adapter "^7.0.0"
+chokidar@^2.0.0:
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
+ integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
+ dependencies:
+ anymatch "^2.0.0"
+ async-each "^1.0.1"
+ braces "^2.3.2"
+ glob-parent "^3.1.0"
+ inherits "^2.0.3"
+ is-binary-path "^1.0.0"
+ is-glob "^4.0.0"
+ normalize-path "^3.0.0"
+ path-is-absolute "^1.0.0"
+ readdirp "^2.2.1"
+ upath "^1.1.1"
+ optionalDependencies:
+ fsevents "^1.2.7"
+
chrome-paths@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/chrome-paths/-/chrome-paths-1.0.1.tgz#9a5f5e158cc7a6a620ddad56968a9cf226018cb7"
@@ -1132,6 +1468,16 @@ ci-info@^2.0.0:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
clean-stack@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
@@ -1152,6 +1498,15 @@ cli-truncate@^0.2.1:
slice-ansi "0.0.4"
string-width "^1.0.1"
+cliui@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wrap-ansi "^2.0.0"
+
cliui@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
@@ -1170,6 +1525,11 @@ cliui@^8.0.1:
strip-ansi "^6.0.1"
wrap-ansi "^7.0.0"
+clone-buffer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
+ integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==
+
clone-deep@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
@@ -1179,16 +1539,52 @@ clone-deep@^4.0.1:
kind-of "^6.0.2"
shallow-clone "^3.0.0"
-clone@~2.1.2:
+clone-stats@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
+ integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==
+
+clone@^2.1.1, clone@~2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
+cloneable-readable@^1.0.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec"
+ integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==
+ dependencies:
+ inherits "^2.0.1"
+ process-nextick-args "^2.0.0"
+ readable-stream "^2.3.5"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
+
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==
+collection-map@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c"
+ integrity sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==
+ dependencies:
+ arr-map "^2.0.2"
+ for-own "^1.0.0"
+ make-iterator "^1.0.0"
+
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
color-convert@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@@ -1213,6 +1609,11 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-support@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
+ integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
+
colorette@^2.0.14:
version "2.0.20"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
@@ -1245,16 +1646,66 @@ commander@^8.3.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+component-emitter@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+ integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-content-type@^1.0.2:
+concat-stream@^1.6.0:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+concurrently@^8.2.1:
+ version "8.2.1"
+ resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.2.1.tgz#bcab9cacc38c23c503839583151e0fa96fd5b584"
+ integrity sha512-nVraf3aXOpIcNud5pB9M82p1tynmZkrSGQ1p6X/VY8cJ+2LMVqAgXsJxYYefACSHbTYlm92O1xuhdGTjwoEvbQ==
+ dependencies:
+ chalk "^4.1.2"
+ date-fns "^2.30.0"
+ lodash "^4.17.21"
+ rxjs "^7.8.1"
+ shell-quote "^1.8.1"
+ spawn-command "0.0.2"
+ supports-color "^8.1.1"
+ tree-kill "^1.2.2"
+ yargs "^17.7.2"
+
+content-disposition@~0.5.2:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ dependencies:
+ safe-buffer "5.2.1"
+
+content-type@^1.0.2, content-type@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
+convert-source-map@^1.5.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
+ integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
+
+cookies@~0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
+ integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
+ dependencies:
+ depd "~2.0.0"
+ keygrip "~1.1.0"
+
copy-anything@^2.0.1:
version "2.0.6"
resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480"
@@ -1262,6 +1713,26 @@ copy-anything@^2.0.1:
dependencies:
is-what "^3.14.1"
+copy-anything@^3.0.5:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0"
+ integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==
+ dependencies:
+ is-what "^4.1.8"
+
+copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+ integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==
+
+copy-props@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2"
+ integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==
+ dependencies:
+ each-props "^1.3.2"
+ is-plain-object "^5.0.0"
+
copy-to@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5"
@@ -1272,6 +1743,30 @@ core-util-is@1.0.2:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
+corser@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87"
+ integrity sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==
+
+cose-base@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a"
+ integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==
+ dependencies:
+ layout-base "^1.0.0"
+
+cose-base@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01"
+ integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==
+ dependencies:
+ layout-base "^2.0.0"
+
cosmiconfig@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
@@ -1287,7 +1782,7 @@ crc32@^0.2.2:
resolved "https://registry.yarnpkg.com/crc32/-/crc32-0.2.2.tgz#7ad220d6ffdcd119f9fc127a7772cacea390a4ba"
integrity sha512-PFZEGbDUeoNbL2GHIEpJRQGheXReDody/9axKTxhXtQqIL443wnNigtVZO9iuCIMPApKZRv7k2xr8euXHqNxQQ==
-cross-fetch@4.0.0:
+cross-fetch@4.0.0, cross-fetch@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983"
integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==
@@ -1314,64 +1809,179 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
shebang-command "^2.0.0"
which "^2.0.1"
-crypt@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
- integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==
-
-crypto-js@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
- integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
-
-css-select@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
- integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
- dependencies:
- boolbase "^1.0.0"
- css-what "^6.1.0"
- domhandler "^5.0.2"
- domutils "^3.0.1"
- nth-check "^2.0.1"
-
-css-what@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
- integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
-
-"d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@^3.2.2:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5"
- integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
- dependencies:
- internmap "1 - 2"
-
-d3-array@3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.2.tgz#f8ac4705c5b06914a7e0025bbf8d5f1513f6a86e"
- integrity sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ==
+crossnote@^0.8.6:
+ version "0.8.6"
+ resolved "https://registry.yarnpkg.com/crossnote/-/crossnote-0.8.6.tgz#b2bd05c7cc223044c5faddf9c5a6b81a1f2c3e72"
+ integrity sha512-Vl8bFmuqAq3kkfeJT46MMA3uc7Qb9tlG+9dg//sEMq2mWdF3tZVcLTma9ZaFClCRL7rN+o3/pCBSRuVr0VlMrg==
+ dependencies:
+ "@viz-js/viz" "^3.1.0"
+ async-mutex "^0.4.0"
+ cheerio "^1.0.0-rc.12"
+ chrome-paths "^1.0.1"
+ copy-anything "^3.0.5"
+ cross-fetch "^4.0.0"
+ crypto-js "^4.1.1"
+ html-escaper "^3.0.3"
+ imagemagick-cli "^0.5.0"
+ katex "^0.16.8"
+ less "^4.2.0"
+ markdown-it "^13.0.1"
+ markdown-it-abbr "^1.0.4"
+ markdown-it-deflist "^2.1.0"
+ markdown-it-emoji "^2.0.2"
+ markdown-it-footnote "^3.0.3"
+ markdown-it-html5-embed "^1.0.0"
+ markdown-it-mark "^3.0.1"
+ markdown-it-sub "^1.0.0"
+ markdown-it-sup "^1.0.0"
+ md5 "^2.3.0"
+ mermaid "^10.4.0"
+ minisearch "^6.1.0"
+ mkdirp "^3.0.1"
+ object-hash "^3.0.0"
+ pako "^2.1.0"
+ papaparse "^5.4.1"
+ plantuml-encoder "^1.4.0"
+ puppeteer-core "^21.1.0"
+ qiniu "^7.9.0"
+ request "^2.88.0"
+ slash "^5.1.0"
+ snake-case "^3.0.4"
+ sval "^0.4.8"
+ temp "^0.9.0"
+ twemoji "^13.1.0"
+ type-fest "^4.3.1"
+ uslug "^1.0.4"
+ vega "^5.25.0"
+ vega-lite "^5.14.1"
+ vega-loader "^4.5.1"
+ yaml "^2.3.2"
+
+crypt@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
+ integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==
+
+crypto-js@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
+ integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
+
+css-select@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^6.1.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
+ nth-check "^2.0.1"
+
+css-what@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+
+cytoscape-cose-bilkent@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b"
+ integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==
+ dependencies:
+ cose-base "^1.0.0"
+
+cytoscape-fcose@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471"
+ integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==
+ dependencies:
+ cose-base "^2.2.0"
+
+cytoscape@^3.23.0:
+ version "3.26.0"
+ resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.26.0.tgz#b4c6961445fd51e1fd3cca83c3ffe924d9a8abc9"
+ integrity sha512-IV+crL+KBcrCnVVUCZW+zRRRFUZQcrtdOPXki+o4CFUWLdAEYvuZLcBSJC9EBK++suamERKzeY7roq2hdovV3w==
+ dependencies:
+ heap "^0.2.6"
+ lodash "^4.17.21"
+
+"d3-array@1 - 2":
+ version "2.12.1"
+ resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81"
+ integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==
+ dependencies:
+ internmap "^1.0.0"
+
+"d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0, d3-array@^3.2.2:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5"
+ integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
+ dependencies:
+ internmap "1 - 2"
+
+d3-array@3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.2.tgz#f8ac4705c5b06914a7e0025bbf8d5f1513f6a86e"
+ integrity sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ==
dependencies:
internmap "1 - 2"
-"d3-color@1 - 3", d3-color@^3.1.0:
+d3-axis@3:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322"
+ integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==
+
+d3-brush@3:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c"
+ integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==
+ dependencies:
+ d3-dispatch "1 - 3"
+ d3-drag "2 - 3"
+ d3-interpolate "1 - 3"
+ d3-selection "3"
+ d3-transition "3"
+
+d3-chord@3:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966"
+ integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==
+ dependencies:
+ d3-path "1 - 3"
+
+"d3-color@1 - 3", d3-color@3, d3-color@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2"
integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
-d3-delaunay@^6.0.2:
+d3-contour@4:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc"
+ integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==
+ dependencies:
+ d3-array "^3.2.0"
+
+d3-delaunay@6, d3-delaunay@^6.0.2:
version "6.0.4"
resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b"
integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==
dependencies:
delaunator "5"
-"d3-dispatch@1 - 3":
+"d3-dispatch@1 - 3", d3-dispatch@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e"
integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
-d3-dsv@^3.0.1:
+"d3-drag@2 - 3", d3-drag@3:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba"
+ integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==
+ dependencies:
+ d3-dispatch "1 - 3"
+ d3-selection "3"
+
+"d3-dsv@1 - 3", d3-dsv@3, d3-dsv@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73"
integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==
@@ -1380,7 +1990,19 @@ d3-dsv@^3.0.1:
iconv-lite "0.6"
rw "1"
-d3-force@^3.0.0:
+"d3-ease@1 - 3", d3-ease@3:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4"
+ integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
+
+d3-fetch@3:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22"
+ integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==
+ dependencies:
+ d3-dsv "1 - 3"
+
+d3-force@3, d3-force@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4"
integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==
@@ -1389,7 +2011,7 @@ d3-force@^3.0.0:
d3-quadtree "1 - 3"
d3-timer "1 - 3"
-"d3-format@1 - 3", d3-format@^3.1.0:
+"d3-format@1 - 3", d3-format@3, d3-format@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641"
integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==
@@ -1403,36 +2025,67 @@ d3-geo-projection@^4.0.0:
d3-array "1 - 3"
d3-geo "1.12.0 - 3"
-"d3-geo@1.12.0 - 3", d3-geo@^3.1.0:
+"d3-geo@1.12.0 - 3", d3-geo@3, d3-geo@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e"
integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==
dependencies:
d3-array "2.5.0 - 3"
-d3-hierarchy@^3.1.2:
+d3-hierarchy@3, d3-hierarchy@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6"
integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==
-"d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1:
+"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3, d3-interpolate@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d"
integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
dependencies:
d3-color "1 - 3"
-d3-path@^3.1.0:
+d3-path@1:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf"
+ integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==
+
+"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526"
integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
-"d3-quadtree@1 - 3":
+d3-polygon@3:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398"
+ integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==
+
+"d3-quadtree@1 - 3", d3-quadtree@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f"
integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==
-d3-scale@^4.0.2:
+d3-random@3:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4"
+ integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==
+
+d3-sankey@^0.12.3:
+ version "0.12.3"
+ resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz#b3c268627bd72e5d80336e8de6acbfec9d15d01d"
+ integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==
+ dependencies:
+ d3-array "1 - 2"
+ d3-shape "^1.2.0"
+
+d3-scale-chromatic@3:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a"
+ integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==
+ dependencies:
+ d3-color "1 - 3"
+ d3-interpolate "1 - 3"
+
+d3-scale@4, d3-scale@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396"
integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
@@ -1443,32 +2096,118 @@ d3-scale@^4.0.2:
d3-time "2.1.1 - 3"
d3-time-format "2 - 4"
-d3-shape@^3.2.0:
+"d3-selection@2 - 3", d3-selection@3:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31"
+ integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
+
+d3-shape@3, d3-shape@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5"
integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==
dependencies:
d3-path "^3.1.0"
-"d3-time-format@2 - 4", d3-time-format@^4.1.0:
+d3-shape@^1.2.0:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7"
+ integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==
+ dependencies:
+ d3-path "1"
+
+"d3-time-format@2 - 4", d3-time-format@4, d3-time-format@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a"
integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
dependencies:
d3-time "1 - 3"
-"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@^3.1.0:
+"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3, d3-time@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7"
integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
dependencies:
d3-array "2 - 3"
-"d3-timer@1 - 3", d3-timer@^3.0.1:
+"d3-timer@1 - 3", d3-timer@3, d3-timer@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0"
integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
+"d3-transition@2 - 3", d3-transition@3:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f"
+ integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==
+ dependencies:
+ d3-color "1 - 3"
+ d3-dispatch "1 - 3"
+ d3-ease "1 - 3"
+ d3-interpolate "1 - 3"
+ d3-timer "1 - 3"
+
+d3-zoom@3:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3"
+ integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==
+ dependencies:
+ d3-dispatch "1 - 3"
+ d3-drag "2 - 3"
+ d3-interpolate "1 - 3"
+ d3-selection "2 - 3"
+ d3-transition "2 - 3"
+
+d3@^7.4.0, d3@^7.8.2:
+ version "7.8.5"
+ resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c"
+ integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==
+ dependencies:
+ d3-array "3"
+ d3-axis "3"
+ d3-brush "3"
+ d3-chord "3"
+ d3-color "3"
+ d3-contour "4"
+ d3-delaunay "6"
+ d3-dispatch "3"
+ d3-drag "3"
+ d3-dsv "3"
+ d3-ease "3"
+ d3-fetch "3"
+ d3-force "3"
+ d3-format "3"
+ d3-geo "3"
+ d3-hierarchy "3"
+ d3-interpolate "3"
+ d3-path "3"
+ d3-polygon "3"
+ d3-quadtree "3"
+ d3-random "3"
+ d3-scale "4"
+ d3-scale-chromatic "3"
+ d3-selection "3"
+ d3-shape "3"
+ d3-time "3"
+ d3-time-format "4"
+ d3-timer "3"
+ d3-transition "3"
+ d3-zoom "3"
+
+d@1, d@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
+ integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
+ dependencies:
+ es5-ext "^0.10.50"
+ type "^1.0.1"
+
+dagre-d3-es@7.0.10:
+ version "7.0.10"
+ resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz#19800d4be674379a3cd8c86a8216a2ac6827cadc"
+ integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==
+ dependencies:
+ d3 "^7.8.2"
+ lodash-es "^4.17.21"
+
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -1486,6 +2225,25 @@ date-fns@^1.27.2:
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
+date-fns@^2.30.0:
+ version "2.30.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
+ integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==
+ dependencies:
+ "@babel/runtime" "^7.21.0"
+
+dayjs@^1.11.7:
+ version "1.11.9"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a"
+ integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==
+
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
debug@3.2.6:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
@@ -1493,37 +2251,47 @@ debug@3.2.6:
dependencies:
ms "^2.1.1"
-debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
+debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
-debug@^2.6.9:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-debug@^3.2.6:
+debug@^3.1.0, debug@^3.2.6, debug@^3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
dependencies:
ms "^2.1.1"
-decamelize@^1.2.0:
+decamelize@^1.1.1, decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
+decode-named-character-reference@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e"
+ integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==
+ dependencies:
+ character-entities "^2.0.0"
+
+decode-uri-component@^0.2.0:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
+ integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
+
dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
+deep-equal@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+ integrity sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==
+
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
@@ -1547,6 +2315,18 @@ default-browser@^4.0.0:
execa "^7.1.1"
titleize "^3.0.0"
+default-compare@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
+ integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==
+ dependencies:
+ kind-of "^5.0.2"
+
+default-resolution@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684"
+ integrity sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==
+
default-user-agent@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/default-user-agent/-/default-user-agent-1.0.0.tgz#16c46efdcaba3edc45f24f2bd4868b01b7c2adc6"
@@ -1567,6 +2347,28 @@ define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, de
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
+define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==
+ dependencies:
+ is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==
+ dependencies:
+ is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
degenerator@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5"
@@ -1602,11 +2404,36 @@ delayed-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
+
+depd@2.0.0, depd@^2.0.0, depd@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
+depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
+
+dequal@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
+ integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
+
destroy@^1.0.4:
version "1.2.0"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
+detect-file@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
+ integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==
+
detect-indent@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.1.tgz#cbb060a12842b9c4d333f1cac4aa4da1bb66bc25"
@@ -1627,6 +2454,11 @@ diff@3.5.0:
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
+diff@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40"
+ integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
+
digest-header@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/digest-header/-/digest-header-1.1.0.tgz#e16ab6cf4545bc4eea878c8c35acd1b89664d800"
@@ -1667,6 +2499,11 @@ domhandler@^5.0.2, domhandler@^5.0.3:
dependencies:
domelementtype "^2.3.0"
+dompurify@^3.0.5:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.5.tgz#eb3d9cfa10037b6e73f32c586682c4b2ab01fbed"
+ integrity sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==
+
domutils@^3.0.1:
version "3.1.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e"
@@ -1684,6 +2521,24 @@ dot-case@^3.0.4:
no-case "^3.0.4"
tslib "^2.0.3"
+duplexify@^3.5.0, duplexify@^3.6.0:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+ integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
+ dependencies:
+ end-of-stream "^1.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+ stream-shift "^1.0.0"
+
+each-props@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333"
+ integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==
+ dependencies:
+ is-plain-object "^2.0.1"
+ object.defaults "^1.1.0"
+
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
@@ -1692,7 +2547,7 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-ee-first@~1.1.1:
+ee-first@1.1.1, ee-first@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
@@ -1707,6 +2562,11 @@ elegant-spinner@^1.0.1:
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==
+elkjs@^0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e"
+ integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==
+
emoji-regex@^7.0.1:
version "7.0.3"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
@@ -1717,12 +2577,12 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-encodeurl@^1.0.1:
+encodeurl@^1.0.1, encodeurl@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
-end-of-stream@^1.1.0:
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@@ -1764,7 +2624,7 @@ errno@^0.1.1:
dependencies:
prr "~1.0.1"
-error-ex@^1.3.1:
+error-ex@^1.2.0, error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
@@ -1844,6 +2704,50 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50:
+ version "0.10.62"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5"
+ integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==
+ dependencies:
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.3"
+ next-tick "^1.1.0"
+
+es6-iterator@^2.0.1, es6-iterator@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.35"
+ es6-symbol "^3.1.1"
+
+es6-symbol@^3.1.1, es6-symbol@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
+ integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
+ dependencies:
+ d "^1.0.1"
+ ext "^1.1.2"
+
+es6-weak-map@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
+ integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.46"
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.1"
+
+esbuild-plugin-polyfill-node@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/esbuild-plugin-polyfill-node/-/esbuild-plugin-polyfill-node-0.3.0.tgz#e7e3804b8272df51ae4f8ebfb7445a03712504cb"
+ integrity sha512-SHG6CKUfWfYyYXGpW143NEZtcVVn8S/WHcEOxk62LuDXnY4Zpmc+WmxJKN6GMTgTClXJXhEM5KQlxKY6YjbucQ==
+ dependencies:
+ "@jspm/core" "^2.0.1"
+ import-meta-resolve "^3.0.0"
+
esbuild@^0.19.2:
version "0.19.2"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.2.tgz#b1541828a89dfb6f840d38538767c6130dca2aac"
@@ -2010,6 +2914,11 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+eventemitter3@^4.0.0:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+
events@^3.2.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
@@ -2073,6 +2982,33 @@ execa@^7.1.1:
signal-exit "^3.0.7"
strip-final-newline "^3.0.0"
+expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+expand-tilde@^2.0.0, expand-tilde@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
+ integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==
+ dependencies:
+ homedir-polyfill "^1.0.1"
+
+ext@^1.1.2:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
+ integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==
+ dependencies:
+ type "^2.7.2"
+
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
@@ -2080,11 +3016,33 @@ extend-shallow@^2.0.1:
dependencies:
is-extendable "^0.1.0"
-extend@~3.0.2:
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+extend@^3.0.0, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
extract-zip@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
@@ -2106,6 +3064,16 @@ extsprintf@^1.2.0:
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
+fancy-log@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7"
+ integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==
+ dependencies:
+ ansi-gray "^0.1.1"
+ color-support "^1.1.3"
+ parse-node-version "^1.0.0"
+ time-stamp "^1.0.0"
+
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3, fast-deep-equal@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -2132,6 +3100,11 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@~2.1.0:
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+fast-levenshtein@^1.0.0:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9"
+ integrity sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==
+
fast-levenshtein@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
@@ -2178,6 +3151,21 @@ file-entry-cache@^6.0.1:
dependencies:
flat-cache "^3.0.4"
+file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
+fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -2192,6 +3180,14 @@ find-up@3.0.0, find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
find-up@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
@@ -2208,6 +3204,42 @@ find-up@^5.0.0:
locate-path "^6.0.0"
path-exists "^4.0.0"
+findup-sync@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
+ integrity sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==
+ dependencies:
+ detect-file "^1.0.0"
+ is-glob "^3.1.0"
+ micromatch "^3.0.4"
+ resolve-dir "^1.0.1"
+
+findup-sync@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
+ integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==
+ dependencies:
+ detect-file "^1.0.0"
+ is-glob "^4.0.0"
+ micromatch "^3.0.4"
+ resolve-dir "^1.0.1"
+
+fined@^1.0.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b"
+ integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==
+ dependencies:
+ expand-tilde "^2.0.2"
+ is-plain-object "^2.0.3"
+ object.defaults "^1.1.0"
+ object.pick "^1.2.0"
+ parse-filepath "^1.0.1"
+
+flagged-respawn@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41"
+ integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==
+
flat-cache@^3.0.4:
version "3.1.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f"
@@ -2229,6 +3261,19 @@ flatted@^3.2.7:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
+flush-write-stream@^1.0.2:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
+ integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
+ dependencies:
+ inherits "^2.0.3"
+ readable-stream "^2.3.6"
+
+follow-redirects@^1.0.0:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
+ integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
@@ -2236,6 +3281,18 @@ for-each@^0.3.3:
dependencies:
is-callable "^1.1.3"
+for-in@^1.0.1, for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
+
+for-own@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
+ integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==
+ dependencies:
+ for-in "^1.0.1"
+
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -2259,6 +3316,18 @@ formstream@^1.1.0:
mime "^2.5.2"
pause-stream "~0.0.11"
+fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==
+ dependencies:
+ map-cache "^0.2.2"
+
+fresh@~0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
+
fs-access@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a"
@@ -2275,11 +3344,27 @@ fs-extra@^8.0.1, fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-mkdirp-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb"
+ integrity sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ through2 "^2.0.3"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+fsevents@^1.2.7:
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
+ integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
+ dependencies:
+ bindings "^1.5.0"
+ nan "^2.12.1"
+
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -2300,6 +3385,11 @@ functions-have-names@^1.2.3:
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
+get-caller-file@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+
get-caller-file@^2.0.1, get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
@@ -2367,6 +3457,11 @@ get-uri@^6.0.1:
debug "^4.3.4"
fs-extra "^8.1.0"
+get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+ integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==
+
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
@@ -2379,6 +3474,14 @@ git-hooks-list@^3.0.0:
resolved "https://registry.yarnpkg.com/git-hooks-list/-/git-hooks-list-3.1.0.tgz#386dc531dcc17474cf094743ff30987a3d3e70fc"
integrity sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==
+glob-parent@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+ integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==
+ dependencies:
+ is-glob "^3.1.0"
+ path-dirname "^1.0.0"
+
glob-parent@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
@@ -2393,11 +3496,40 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
+glob-stream@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4"
+ integrity sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==
+ dependencies:
+ extend "^3.0.0"
+ glob "^7.1.1"
+ glob-parent "^3.1.0"
+ is-negated-glob "^1.0.0"
+ ordered-read-streams "^1.0.0"
+ pumpify "^1.3.5"
+ readable-stream "^2.1.5"
+ remove-trailing-separator "^1.0.1"
+ to-absolute-glob "^2.0.0"
+ unique-stream "^2.0.2"
+
glob-to-regexp@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+glob-watcher@^5.0.3:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.5.tgz#aa6bce648332924d9a8489be41e3e5c52d4186dc"
+ integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==
+ dependencies:
+ anymatch "^2.0.0"
+ async-done "^1.2.0"
+ chokidar "^2.0.0"
+ is-negated-glob "^1.0.0"
+ just-debounce "^1.0.0"
+ normalize-path "^3.0.0"
+ object.defaults "^1.1.0"
+
glob@7.1.3:
version "7.1.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
@@ -2410,7 +3542,7 @@ glob@7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.1.3:
+glob@^7.1.1, glob@^7.1.3:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -2422,6 +3554,26 @@ glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
+global-modules@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
+ integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==
+ dependencies:
+ global-prefix "^1.0.1"
+ is-windows "^1.0.1"
+ resolve-dir "^1.0.0"
+
+global-prefix@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
+ integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==
+ dependencies:
+ expand-tilde "^2.0.2"
+ homedir-polyfill "^1.0.1"
+ ini "^1.3.4"
+ is-windows "^1.0.1"
+ which "^1.2.14"
+
globals@^13.19.0:
version "13.21.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571"
@@ -2473,6 +3625,13 @@ globby@^13.1.2:
merge2 "^1.4.1"
slash "^4.0.0"
+glogg@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f"
+ integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==
+ dependencies:
+ sparkles "^1.0.0"
+
gopd@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
@@ -2480,7 +3639,7 @@ gopd@^1.0.1:
dependencies:
get-intrinsic "^1.1.3"
-graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
+graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -2495,6 +3654,59 @@ growl@1.10.5:
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
+gulp-cli@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f"
+ integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==
+ dependencies:
+ ansi-colors "^1.0.1"
+ archy "^1.0.0"
+ array-sort "^1.0.0"
+ color-support "^1.1.3"
+ concat-stream "^1.6.0"
+ copy-props "^2.0.1"
+ fancy-log "^1.3.2"
+ gulplog "^1.0.0"
+ interpret "^1.4.0"
+ isobject "^3.0.1"
+ liftoff "^3.1.0"
+ matchdep "^2.0.0"
+ mute-stdout "^1.0.0"
+ pretty-hrtime "^1.0.0"
+ replace-homedir "^1.0.0"
+ semver-greatest-satisfied-range "^1.1.0"
+ v8flags "^3.2.0"
+ yargs "^7.1.0"
+
+gulp@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa"
+ integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==
+ dependencies:
+ glob-watcher "^5.0.3"
+ gulp-cli "^2.2.0"
+ undertaker "^1.2.1"
+ vinyl-fs "^3.0.0"
+
+gulplog@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
+ integrity sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==
+ dependencies:
+ glogg "^1.0.0"
+
+gunzip-maybe@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz#b913564ae3be0eda6f3de36464837a9cd94b98ac"
+ integrity sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==
+ dependencies:
+ browserify-zlib "^0.1.4"
+ is-deflate "^1.0.0"
+ is-gzip "^1.0.0"
+ peek-stream "^1.1.0"
+ pumpify "^1.3.3"
+ through2 "^2.0.3"
+
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
@@ -2554,6 +3766,37 @@ has-tostringtag@^1.0.0:
dependencies:
has-symbols "^1.0.2"
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==
+
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
@@ -2561,16 +3804,35 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
-he@1.2.0:
+he@1.2.0, he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+heap@^0.2.6:
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc"
+ integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==
+
+homedir-polyfill@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
+ integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
+ dependencies:
+ parse-passwd "^1.0.0"
+
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+html-encoding-sniffer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
+ integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
+ dependencies:
+ whatwg-encoding "^2.0.0"
+
html-escaper@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-3.0.3.tgz#4d336674652beb1dcbc29ef6b6ba7f6be6fdfed6"
@@ -2586,6 +3848,46 @@ htmlparser2@^8.0.1:
domutils "^3.0.1"
entities "^4.4.0"
+http-assert@^1.3.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
+ integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==
+ dependencies:
+ deep-equal "~1.0.1"
+ http-errors "~1.8.0"
+
+http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
+ integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.1"
+
+http-errors@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
+ dependencies:
+ depd "2.0.0"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ toidentifier "1.0.1"
+
+http-errors@~1.6.2:
+ version "1.6.3"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+ integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.0"
+ statuses ">= 1.4.0 < 2"
+
http-proxy-agent@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673"
@@ -2594,6 +3896,34 @@ http-proxy-agent@^7.0.0:
agent-base "^7.1.0"
debug "^4.3.4"
+http-proxy@^1.18.1:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
+ integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
+ dependencies:
+ eventemitter3 "^4.0.0"
+ follow-redirects "^1.0.0"
+ requires-port "^1.0.0"
+
+http-server@^14.1.1:
+ version "14.1.1"
+ resolved "https://registry.yarnpkg.com/http-server/-/http-server-14.1.1.tgz#d60fbb37d7c2fdff0f0fbff0d0ee6670bd285e2e"
+ integrity sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==
+ dependencies:
+ basic-auth "^2.0.1"
+ chalk "^4.1.2"
+ corser "^2.0.1"
+ he "^1.2.0"
+ html-encoding-sniffer "^3.0.0"
+ http-proxy "^1.18.1"
+ mime "^1.6.0"
+ minimist "^1.2.6"
+ opener "^1.5.1"
+ portfinder "^1.0.28"
+ secure-compare "3.0.1"
+ union "~0.5.0"
+ url-join "^4.0.1"
+
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
@@ -2603,7 +3933,7 @@ http-signature@~1.2.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
-https-proxy-agent@^7.0.0:
+https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz#0277e28f13a07d45c663633841e20a40aaafe0ab"
integrity sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==
@@ -2645,7 +3975,7 @@ husky@^3.0.9:
run-node "^1.0.0"
slash "^3.0.0"
-iconv-lite@0.6, iconv-lite@^0.6.3:
+iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
@@ -2705,6 +4035,11 @@ import-local@^3.0.2:
pkg-dir "^4.2.0"
resolve-cwd "^3.0.0"
+import-meta-resolve@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz#94a6aabc623874fbc2f3525ec1300db71c6cbc11"
+ integrity sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==
+
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
@@ -2728,11 +4063,21 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.3:
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
+
+ini@^1.3.4:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+ integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
internal-slot@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
@@ -2747,11 +4092,26 @@ internal-slot@^1.0.5:
resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009"
integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
+internmap@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95"
+ integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
+
+interpret@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
+
interpret@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4"
integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==
+
ip@^1.1.5, ip@^1.1.8:
version "1.1.8"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48"
@@ -2762,6 +4122,28 @@ ip@^2.0.0:
resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"
integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==
+is-absolute@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576"
+ integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==
+ dependencies:
+ is-relative "^1.0.0"
+ is-windows "^1.0.1"
+
+is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==
+ dependencies:
+ kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+ dependencies:
+ kind-of "^6.0.0"
+
is-array-buffer@^3.0.1, is-array-buffer@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe"
@@ -2783,6 +4165,13 @@ is-bigint@^1.0.1:
dependencies:
has-bigints "^1.0.1"
+is-binary-path@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+ integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==
+ dependencies:
+ binary-extensions "^1.0.0"
+
is-boolean-object@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
@@ -2791,7 +4180,7 @@ is-boolean-object@^1.1.0:
call-bind "^1.0.2"
has-tostringtag "^1.0.0"
-is-buffer@~1.1.6:
+is-buffer@^1.1.5, is-buffer@~1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
@@ -2813,6 +4202,20 @@ is-core-module@^2.13.0:
dependencies:
has "^1.0.3"
+is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==
+ dependencies:
+ kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+ dependencies:
+ kind-of "^6.0.0"
+
is-date-object@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
@@ -2820,6 +4223,29 @@ is-date-object@^1.0.1:
dependencies:
has-tostringtag "^1.0.0"
+is-deflate@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-deflate/-/is-deflate-1.0.0.tgz#c862901c3c161fb09dac7cdc7e784f80e98f2f14"
+ integrity sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==
+
+is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
is-directory@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
@@ -2835,12 +4261,19 @@ is-docker@^3.0.0:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200"
integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==
-is-extendable@^0.1.0:
+is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
-is-extglob@^2.1.1:
+is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
@@ -2862,6 +4295,20 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+is-generator-function@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
+ integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-glob@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+ integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==
+ dependencies:
+ is-extglob "^2.1.0"
+
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
@@ -2869,6 +4316,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
dependencies:
is-extglob "^2.1.1"
+is-gzip@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83"
+ integrity sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==
+
is-inside-container@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4"
@@ -2876,6 +4328,11 @@ is-inside-container@^1.0.0:
dependencies:
is-docker "^3.0.0"
+is-negated-glob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2"
+ integrity sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==
+
is-negative-zero@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
@@ -2888,6 +4345,18 @@ is-number-object@^1.0.4:
dependencies:
has-tostringtag "^1.0.0"
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+ integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
+
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -2920,13 +4389,18 @@ is-plain-obj@^4.1.0:
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0"
integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==
-is-plain-object@^2.0.4:
+is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
+is-plain-object@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
+ integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
+
is-promise@^2.1.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
@@ -2945,6 +4419,13 @@ is-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==
+is-relative@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d"
+ integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==
+ dependencies:
+ is-unc-path "^1.0.0"
+
is-shared-array-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
@@ -2993,6 +4474,23 @@ is-typedarray@~1.0.0:
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
+is-unc-path@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d"
+ integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==
+ dependencies:
+ unc-path-regex "^0.1.2"
+
+is-utf8@^0.2.0, is-utf8@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+ integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==
+
+is-valid-glob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa"
+ integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==
+
is-weakref@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
@@ -3005,6 +4503,16 @@ is-what@^3.14.1:
resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
+is-what@^4.1.8:
+ version "4.1.15"
+ resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.15.tgz#de43a81090417a425942d67b1ae86e7fae2eee0e"
+ integrity sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==
+
+is-windows@^1.0.1, is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
@@ -3012,6 +4520,11 @@ is-wsl@^2.2.0:
dependencies:
is-docker "^2.0.0"
+isarray@1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+
isarray@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
@@ -3022,7 +4535,14 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-isobject@^3.0.1:
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
@@ -3140,6 +4660,11 @@ jsprim@^1.2.2:
json-schema "0.4.0"
verror "1.10.0"
+just-debounce@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf"
+ integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==
+
karma-chrome-launcher@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf"
@@ -3155,6 +4680,13 @@ katex@^0.16.8:
dependencies:
commander "^8.3.0"
+keygrip@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
+ integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
+ dependencies:
+ tsscmp "1.0.6"
+
keyv@^4.5.3:
version "4.5.3"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25"
@@ -3162,11 +4694,153 @@ keyv@^4.5.3:
dependencies:
json-buffer "3.0.1"
-kind-of@^6.0.2:
+khroma@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b"
+ integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0, kind-of@^5.0.2:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+kleur@^4.0.3:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
+ integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
+
+koa-compose@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
+ integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
+
+koa-convert@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5"
+ integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==
+ dependencies:
+ co "^4.6.0"
+ koa-compose "^4.1.0"
+
+koa-morgan@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/koa-morgan/-/koa-morgan-1.0.1.tgz#08052e0ce0d839d3c43178b90a5bb3424bef1f99"
+ integrity sha512-JOUdCNlc21G50afBXfErUrr1RKymbgzlrO5KURY+wmDG1Uvd2jmxUJcHgylb/mYXy2SjiNZyYim/ptUBGsIi3A==
+ dependencies:
+ morgan "^1.6.1"
+
+koa-mount@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c"
+ integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ==
+ dependencies:
+ debug "^4.0.1"
+ koa-compose "^4.1.0"
+
+koa-send@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
+ integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
+ dependencies:
+ debug "^4.1.1"
+ http-errors "^1.7.3"
+ resolve-path "^1.4.0"
+
+koa-static@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943"
+ integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==
+ dependencies:
+ debug "^3.1.0"
+ koa-send "^5.0.0"
+
+koa@^2.14.2:
+ version "2.14.2"
+ resolved "https://registry.yarnpkg.com/koa/-/koa-2.14.2.tgz#a57f925c03931c2b4d94b19d2ebf76d3244863fc"
+ integrity sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==
+ dependencies:
+ accepts "^1.3.5"
+ cache-content-type "^1.0.0"
+ content-disposition "~0.5.2"
+ content-type "^1.0.4"
+ cookies "~0.8.0"
+ debug "^4.3.2"
+ delegates "^1.0.0"
+ depd "^2.0.0"
+ destroy "^1.0.4"
+ encodeurl "^1.0.2"
+ escape-html "^1.0.3"
+ fresh "~0.5.2"
+ http-assert "^1.3.0"
+ http-errors "^1.6.3"
+ is-generator-function "^1.0.7"
+ koa-compose "^4.1.0"
+ koa-convert "^2.0.0"
+ on-finished "^2.3.0"
+ only "~0.0.2"
+ parseurl "^1.3.2"
+ statuses "^1.5.0"
+ type-is "^1.6.16"
+ vary "^1.1.2"
+
+last-run@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b"
+ integrity sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==
+ dependencies:
+ default-resolution "^2.0.0"
+ es6-weak-map "^2.0.1"
+
+layout-base@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2"
+ integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==
+
+layout-base@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285"
+ integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==
+
+lazystream@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638"
+ integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
+ dependencies:
+ readable-stream "^2.0.5"
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==
+ dependencies:
+ invert-kv "^1.0.0"
+
+lead@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42"
+ integrity sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==
+ dependencies:
+ flush-write-stream "^1.0.2"
+
less@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450"
@@ -3192,6 +4866,20 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
+liftoff@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3"
+ integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==
+ dependencies:
+ extend "^3.0.0"
+ findup-sync "^3.0.0"
+ fined "^1.0.1"
+ flagged-respawn "^1.0.0"
+ is-plain-object "^2.0.4"
+ object.map "^1.0.0"
+ rechoir "^0.6.2"
+ resolve "^1.1.7"
+
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@@ -3275,6 +4963,17 @@ listr@^0.14.3:
p-map "^2.0.0"
rxjs "^6.3.3"
+load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
loader-runner@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
@@ -3302,12 +5001,17 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
+lodash-es@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-lodash@^4.17.15:
+lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -3369,6 +5073,25 @@ make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
+make-iterator@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6"
+ integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==
+ dependencies:
+ kind-of "^6.0.2"
+
+map-cache@^0.2.0, map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+ integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==
+
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==
+ dependencies:
+ object-visit "^1.0.0"
+
markdown-it-abbr@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/markdown-it-abbr/-/markdown-it-abbr-1.0.4.tgz#d66b5364521cbb3dd8aa59dadfba2fb6865c8fd8"
@@ -3434,6 +5157,16 @@ markdown-it@^8.4.0:
mdurl "^1.0.1"
uc.micro "^1.0.5"
+matchdep@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e"
+ integrity sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==
+ dependencies:
+ findup-sync "^2.0.0"
+ micromatch "^3.0.4"
+ resolve "^1.4.0"
+ stack-trace "0.0.10"
+
md5@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
@@ -3443,11 +5176,41 @@ md5@^2.3.0:
crypt "0.0.2"
is-buffer "~1.1.6"
+mdast-util-from-markdown@^1.3.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0"
+ integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==
+ dependencies:
+ "@types/mdast" "^3.0.0"
+ "@types/unist" "^2.0.0"
+ decode-named-character-reference "^1.0.0"
+ mdast-util-to-string "^3.1.0"
+ micromark "^3.0.0"
+ micromark-util-decode-numeric-character-reference "^1.0.0"
+ micromark-util-decode-string "^1.0.0"
+ micromark-util-normalize-identifier "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.0"
+ unist-util-stringify-position "^3.0.0"
+ uvu "^0.5.0"
+
+mdast-util-to-string@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789"
+ integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==
+ dependencies:
+ "@types/mdast" "^3.0.0"
+
mdurl@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==
+media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
+
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -3458,6 +5221,250 @@ merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+mermaid@^10.4.0:
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-10.4.0.tgz#f89bf0ada161cbbe4dba2776e805119f7245a102"
+ integrity sha512-4QCQLp79lvz7UZxow5HUX7uWTPJOaQBVExduo91tliXC7v78i6kssZOPHxLL+Xs30KU72cpPn3g3imw/xm/gaw==
+ dependencies:
+ "@braintree/sanitize-url" "^6.0.1"
+ "@types/d3-scale" "^4.0.3"
+ "@types/d3-scale-chromatic" "^3.0.0"
+ cytoscape "^3.23.0"
+ cytoscape-cose-bilkent "^4.1.0"
+ cytoscape-fcose "^2.1.0"
+ d3 "^7.4.0"
+ d3-sankey "^0.12.3"
+ dagre-d3-es "7.0.10"
+ dayjs "^1.11.7"
+ dompurify "^3.0.5"
+ elkjs "^0.8.2"
+ khroma "^2.0.0"
+ lodash-es "^4.17.21"
+ mdast-util-from-markdown "^1.3.0"
+ non-layered-tidy-tree-layout "^2.0.2"
+ stylis "^4.1.3"
+ ts-dedent "^2.2.0"
+ uuid "^9.0.0"
+ web-worker "^1.2.0"
+
+methods@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
+
+micromark-core-commonmark@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8"
+ integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==
+ dependencies:
+ decode-named-character-reference "^1.0.0"
+ micromark-factory-destination "^1.0.0"
+ micromark-factory-label "^1.0.0"
+ micromark-factory-space "^1.0.0"
+ micromark-factory-title "^1.0.0"
+ micromark-factory-whitespace "^1.0.0"
+ micromark-util-character "^1.0.0"
+ micromark-util-chunked "^1.0.0"
+ micromark-util-classify-character "^1.0.0"
+ micromark-util-html-tag-name "^1.0.0"
+ micromark-util-normalize-identifier "^1.0.0"
+ micromark-util-resolve-all "^1.0.0"
+ micromark-util-subtokenize "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.1"
+ uvu "^0.5.0"
+
+micromark-factory-destination@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f"
+ integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==
+ dependencies:
+ micromark-util-character "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.0"
+
+micromark-factory-label@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68"
+ integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==
+ dependencies:
+ micromark-util-character "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.0"
+ uvu "^0.5.0"
+
+micromark-factory-space@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf"
+ integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==
+ dependencies:
+ micromark-util-character "^1.0.0"
+ micromark-util-types "^1.0.0"
+
+micromark-factory-title@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1"
+ integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==
+ dependencies:
+ micromark-factory-space "^1.0.0"
+ micromark-util-character "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.0"
+
+micromark-factory-whitespace@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705"
+ integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==
+ dependencies:
+ micromark-factory-space "^1.0.0"
+ micromark-util-character "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.0"
+
+micromark-util-character@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc"
+ integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==
+ dependencies:
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.0"
+
+micromark-util-chunked@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b"
+ integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==
+ dependencies:
+ micromark-util-symbol "^1.0.0"
+
+micromark-util-classify-character@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d"
+ integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==
+ dependencies:
+ micromark-util-character "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.0"
+
+micromark-util-combine-extensions@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84"
+ integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==
+ dependencies:
+ micromark-util-chunked "^1.0.0"
+ micromark-util-types "^1.0.0"
+
+micromark-util-decode-numeric-character-reference@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6"
+ integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==
+ dependencies:
+ micromark-util-symbol "^1.0.0"
+
+micromark-util-decode-string@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c"
+ integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==
+ dependencies:
+ decode-named-character-reference "^1.0.0"
+ micromark-util-character "^1.0.0"
+ micromark-util-decode-numeric-character-reference "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+
+micromark-util-encode@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5"
+ integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==
+
+micromark-util-html-tag-name@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588"
+ integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==
+
+micromark-util-normalize-identifier@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7"
+ integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==
+ dependencies:
+ micromark-util-symbol "^1.0.0"
+
+micromark-util-resolve-all@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188"
+ integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==
+ dependencies:
+ micromark-util-types "^1.0.0"
+
+micromark-util-sanitize-uri@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d"
+ integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==
+ dependencies:
+ micromark-util-character "^1.0.0"
+ micromark-util-encode "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+
+micromark-util-subtokenize@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1"
+ integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==
+ dependencies:
+ micromark-util-chunked "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.0"
+ uvu "^0.5.0"
+
+micromark-util-symbol@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142"
+ integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==
+
+micromark-util-types@^1.0.0, micromark-util-types@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283"
+ integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==
+
+micromark@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9"
+ integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==
+ dependencies:
+ "@types/debug" "^4.0.0"
+ debug "^4.0.0"
+ decode-named-character-reference "^1.0.0"
+ micromark-core-commonmark "^1.0.1"
+ micromark-factory-space "^1.0.0"
+ micromark-util-character "^1.0.0"
+ micromark-util-chunked "^1.0.0"
+ micromark-util-combine-extensions "^1.0.0"
+ micromark-util-decode-numeric-character-reference "^1.0.0"
+ micromark-util-encode "^1.0.0"
+ micromark-util-normalize-identifier "^1.0.0"
+ micromark-util-resolve-all "^1.0.0"
+ micromark-util-sanitize-uri "^1.0.0"
+ micromark-util-subtokenize "^1.0.0"
+ micromark-util-symbol "^1.0.0"
+ micromark-util-types "^1.0.1"
+ uvu "^0.5.0"
+
+micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
@@ -3471,14 +5478,14 @@ mime-db@1.52.0, mime-db@^1.6.0:
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19:
+mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
-mime@^1.4.1:
+mime@^1.4.1, mime@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
@@ -3524,7 +5531,7 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
dependencies:
brace-expansion "^1.1.7"
-minimist@^1.1.0, minimist@^1.2.5, minimist@^1.2.6:
+minimist@^1.1.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
@@ -3539,6 +5546,14 @@ mitt@3.0.1:
resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
+mixin-deep@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
mkdirp-classic@^0.5.2:
version "0.5.3"
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
@@ -3551,7 +5566,7 @@ mkdirp@0.5.4:
dependencies:
minimist "^1.2.5"
-mkdirp@^0.5.1:
+mkdirp@^0.5.1, mkdirp@^0.5.6:
version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
@@ -3597,6 +5612,22 @@ mockdate@^3.0.5:
resolved "https://registry.yarnpkg.com/mockdate/-/mockdate-3.0.5.tgz#789be686deb3149e7df2b663d2bc4392bc3284fb"
integrity sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==
+morgan@^1.6.1:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"
+ integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==
+ dependencies:
+ basic-auth "~2.0.1"
+ debug "2.6.9"
+ depd "~2.0.0"
+ on-finished "~2.3.0"
+ on-headers "~1.0.2"
+
+mri@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
+ integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -3617,6 +5648,11 @@ ms@^2.0.0, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+mute-stdout@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331"
+ integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==
+
mz@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@@ -3626,6 +5662,28 @@ mz@^2.7.0:
object-assign "^4.0.1"
thenify-all "^1.0.0"
+nan@^2.12.1:
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb"
+ integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
+
+nanomatch@^1.2.9:
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -3640,6 +5698,11 @@ needle@^3.1.0:
iconv-lite "^0.6.3"
sax "^1.2.4"
+negotiator@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
neo-async@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
@@ -3650,6 +5713,11 @@ netmask@^2.0.2:
resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7"
integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==
+next-tick@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
+ integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -3671,7 +5739,7 @@ node-environment-flags@1.0.5:
object.getownpropertydescriptors "^2.0.3"
semver "^5.7.0"
-node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7:
+node-fetch@^2.6.12, node-fetch@^2.6.7:
version "2.7.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
@@ -3683,7 +5751,12 @@ node-releases@^2.0.13:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
-normalize-package-data@^2.5.0:
+non-layered-tidy-tree-layout@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804"
+ integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==
+
+normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
@@ -3693,11 +5766,25 @@ normalize-package-data@^2.5.0:
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
+normalize-path@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
normalize-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+now-and-later@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c"
+ integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==
+ dependencies:
+ once "^1.3.2"
+
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -3753,6 +5840,15 @@ object-assign@^4.0.1, object-assign@^4.1.0:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
object-hash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
@@ -3768,6 +5864,13 @@ object-keys@^1.0.11, object-keys@^1.1.1:
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==
+ dependencies:
+ isobject "^3.0.0"
+
object.assign@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
@@ -3778,7 +5881,7 @@ object.assign@4.1.0:
has-symbols "^1.0.0"
object-keys "^1.0.11"
-object.assign@^4.1.4:
+object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.4:
version "4.1.4"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
@@ -3788,6 +5891,16 @@ object.assign@^4.1.4:
has-symbols "^1.0.3"
object-keys "^1.1.1"
+object.defaults@^1.0.0, object.defaults@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf"
+ integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==
+ dependencies:
+ array-each "^1.0.1"
+ array-slice "^1.0.0"
+ for-own "^1.0.0"
+ isobject "^3.0.0"
+
object.getownpropertydescriptors@^2.0.3:
version "2.1.7"
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a"
@@ -3799,7 +5912,49 @@ object.getownpropertydescriptors@^2.0.3:
es-abstract "^1.22.1"
safe-array-concat "^1.0.0"
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
+object.map@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37"
+ integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==
+ dependencies:
+ for-own "^1.0.0"
+ make-iterator "^1.0.0"
+
+object.pick@^1.2.0, object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==
+ dependencies:
+ isobject "^3.0.1"
+
+object.reduce@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad"
+ integrity sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==
+ dependencies:
+ for-own "^1.0.0"
+ make-iterator "^1.0.0"
+
+on-finished@^2.3.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
+ dependencies:
+ ee-first "1.1.1"
+
+on-finished@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
+ dependencies:
+ ee-first "1.1.1"
+
+on-headers@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
+ integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
+
+once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
@@ -3827,6 +5982,11 @@ onetime@^6.0.0:
dependencies:
mimic-fn "^4.0.0"
+only@~0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
+ integrity sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==
+
open@^9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6"
@@ -3842,6 +6002,11 @@ opencollective-postinstall@^2.0.2:
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
+opener@^1.5.1:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
+ integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
+
optionator@^0.9.3:
version "0.9.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
@@ -3854,6 +6019,20 @@ optionator@^0.9.3:
prelude-ls "^1.2.1"
type-check "^0.4.0"
+ordered-read-streams@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e"
+ integrity sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==
+ dependencies:
+ readable-stream "^2.0.1"
+
+os-locale@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
+ integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==
+ dependencies:
+ lcid "^1.0.0"
+
os-name@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/os-name/-/os-name-1.0.3.tgz#1b379f64835af7c5a7f498b357cb95215c159edf"
@@ -3959,6 +6138,11 @@ pako@^2.1.0:
resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86"
integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==
+pako@~0.2.0:
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
+ integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==
+
papaparse@^5.4.1:
version "5.4.1"
resolved "https://registry.yarnpkg.com/papaparse/-/papaparse-5.4.1.tgz#f45c0f871853578bd3a30f92d96fdcfb6ebea127"
@@ -3971,6 +6155,22 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
+parse-filepath@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891"
+ integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==
+ dependencies:
+ is-absolute "^1.0.0"
+ map-cache "^0.2.0"
+ path-root "^0.1.1"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==
+ dependencies:
+ error-ex "^1.2.0"
+
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -3989,11 +6189,16 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
-parse-node-version@^1.0.1:
+parse-node-version@^1.0.0, parse-node-version@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
+parse-passwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
+ integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==
+
parse5-htmlparser2-tree-adapter@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1"
@@ -4009,6 +6214,28 @@ parse5@^7.0.0:
dependencies:
entities "^4.4.0"
+parseurl@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+ integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==
+
+path-dirname@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+ integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==
+ dependencies:
+ pinkie-promise "^2.0.0"
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -4019,7 +6246,7 @@ path-exists@^4.0.0:
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-path-is-absolute@^1.0.0:
+path-is-absolute@1.0.1, path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
@@ -4044,6 +6271,32 @@ path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+path-root-regex@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
+ integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==
+
+path-root@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
+ integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==
+ dependencies:
+ path-root-regex "^0.1.0"
+
+path-to-regexp@^6.2.1:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5"
+ integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==
+
+path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
path-type@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
@@ -4056,6 +6309,15 @@ pause-stream@~0.0.11:
dependencies:
through "~2.3"
+peek-stream@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67"
+ integrity sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==
+ dependencies:
+ buffer-from "^1.0.0"
+ duplexify "^3.5.0"
+ through2 "^2.0.3"
+
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -4076,11 +6338,28 @@ picomatch@^2.3.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
pify@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+ integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
+
pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
@@ -4088,6 +6367,23 @@ pkg-dir@^4.2.0:
dependencies:
find-up "^4.0.0"
+plantuml-encoder@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/plantuml-encoder/-/plantuml-encoder-1.4.0.tgz#7899302cf785de956bf1a167e15420feee5975f7"
+ integrity sha512-sxMwpDw/ySY1WB2CE3+IdMuEcWibJ72DDOsXLkSmEaSzwEUaYBT6DWgOfBiHGCux4q433X6+OEFWjlVqp7gL6g==
+
+playwright-core@1.37.1:
+ version "1.37.1"
+ resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.37.1.tgz#cb517d52e2e8cb4fa71957639f1cd105d1683126"
+ integrity sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==
+
+playwright@^1.37.1:
+ version "1.37.1"
+ resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.37.1.tgz#6e488d82d7d98b9127c5db9c701f9c956ab47e76"
+ integrity sha512-bgUXRrQKhT48zHdxDYQTpf//0xDfDd5hLeEhjuSw8rXEGoT9YeElpfvs/izonTNY21IQZ7d3s22jLxYaAnubbQ==
+ dependencies:
+ playwright-core "1.37.1"
+
please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
@@ -4095,6 +6391,20 @@ please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0:
dependencies:
semver-compare "^1.0.0"
+portfinder@^1.0.28:
+ version "1.0.32"
+ resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81"
+ integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==
+ dependencies:
+ async "^2.6.4"
+ debug "^3.2.7"
+ mkdirp "^0.5.6"
+
+posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+ integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -4113,6 +6423,16 @@ prettier@^1.18.2:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
+pretty-hrtime@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
+ integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==
+
+process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
progress@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
@@ -4147,6 +6467,14 @@ psl@^1.1.28:
resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
+pump@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -4155,6 +6483,15 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
+pumpify@^1.3.3, pumpify@^1.3.5:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
+ dependencies:
+ duplexify "^3.6.0"
+ inherits "^2.0.3"
+ pump "^2.0.0"
+
punycode@^2.1.0, punycode@^2.1.1:
version "2.3.0"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
@@ -4218,6 +6555,23 @@ randombytes@^2.1.0:
dependencies:
safe-buffer "^5.1.0"
+read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+read-pkg@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
read-pkg@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
@@ -4228,6 +6582,19 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
+readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
+ integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
+ 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"
+
readable-stream@^3.4.0:
version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
@@ -4237,6 +6604,22 @@ readable-stream@^3.4.0:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
+readdirp@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+ integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ readable-stream "^2.0.2"
+
+rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==
+ dependencies:
+ resolve "^1.1.6"
+
rechoir@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22"
@@ -4244,6 +6627,19 @@ rechoir@^0.8.0:
dependencies:
resolve "^1.20.0"
+regenerator-runtime@^0.14.0:
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
+ integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
regexp.prototype.flags@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb"
@@ -4253,6 +6649,52 @@ regexp.prototype.flags@^1.5.0:
define-properties "^1.2.0"
functions-have-names "^1.2.3"
+remove-bom-buffer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53"
+ integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==
+ dependencies:
+ is-buffer "^1.1.5"
+ is-utf8 "^0.2.1"
+
+remove-bom-stream@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523"
+ integrity sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==
+ dependencies:
+ remove-bom-buffer "^3.0.0"
+ safe-buffer "^5.1.0"
+ through2 "^2.0.3"
+
+remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+ integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==
+
+repeat-element@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
+ integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
+
+repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==
+
+replace-ext@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a"
+ integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
+
+replace-homedir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c"
+ integrity sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==
+ dependencies:
+ homedir-polyfill "^1.0.1"
+ is-absolute "^1.0.0"
+ remove-trailing-separator "^1.1.0"
+
request@^2.88.0:
version "2.88.2"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
@@ -4284,11 +6726,21 @@ require-directory@^2.1.1:
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+ integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==
+
require-main-filename@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
+
resolve-cwd@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
@@ -4296,6 +6748,14 @@ resolve-cwd@^3.0.0:
dependencies:
resolve-from "^5.0.0"
+resolve-dir@^1.0.0, resolve-dir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
+ integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==
+ dependencies:
+ expand-tilde "^2.0.0"
+ global-modules "^1.0.0"
+
resolve-from@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
@@ -4311,7 +6771,27 @@ resolve-from@^5.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-resolve@^1.10.0, resolve@^1.20.0:
+resolve-options@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131"
+ integrity sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==
+ dependencies:
+ value-or-function "^3.0.0"
+
+resolve-path@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7"
+ integrity sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==
+ dependencies:
+ http-errors "~1.6.2"
+ path-is-absolute "1.0.1"
+
+resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+ integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
+
+resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.4.0:
version "1.22.4"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34"
integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==
@@ -4328,6 +6808,11 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
reusify@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@@ -4383,6 +6868,20 @@ rxjs@^6.3.3:
dependencies:
tslib "^1.9.0"
+rxjs@^7.8.1:
+ version "7.8.1"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
+ integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
+ dependencies:
+ tslib "^2.1.0"
+
+sade@^1.7.3:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701"
+ integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==
+ dependencies:
+ mri "^1.1.0"
+
safe-array-concat@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060"
@@ -4393,7 +6892,12 @@ safe-array-concat@^1.0.0:
has-symbols "^1.0.3"
isarray "^2.0.5"
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -4407,6 +6911,13 @@ safe-regex-test@^1.0.0:
get-intrinsic "^1.1.3"
is-regex "^1.1.4"
+safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==
+ dependencies:
+ ret "~0.1.10"
+
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@@ -4426,11 +6937,23 @@ schema-utils@^3.1.1, schema-utils@^3.2.0:
ajv "^6.12.5"
ajv-keywords "^3.5.2"
+secure-compare@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3"
+ integrity sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==
+
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==
+semver-greatest-satisfied-range@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b"
+ integrity sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==
+ dependencies:
+ sver-compat "^1.5.0"
+
"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0:
version "5.7.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
@@ -4455,6 +6978,26 @@ set-blocking@^2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
+set-value@^2.0.0, set-value@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+ integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+setprototypeof@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+ integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
+
+setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
shallow-clone@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
@@ -4486,6 +7029,11 @@ shebang-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+shell-quote@^1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
+ integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
+
side-channel@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
@@ -4533,6 +7081,36 @@ snake-case@^3.0.4:
dot-case "^3.0.4"
tslib "^2.0.3"
+snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+ dependencies:
+ kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
socks-proxy-agent@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.1.tgz#ffc5859a66dac89b0c4dab90253b96705f3e7120"
@@ -4568,6 +7146,17 @@ sort-package-json@2.5.1:
is-plain-obj "^4.1.0"
sort-object-keys "^1.1.3"
+source-map-resolve@^0.5.0:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+ integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+ dependencies:
+ atob "^2.1.2"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
source-map-support@~0.5.20:
version "0.5.21"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
@@ -4576,11 +7165,31 @@ source-map-support@~0.5.20:
buffer-from "^1.0.0"
source-map "^0.6.0"
+source-map-url@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+ integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
+
+source-map@^0.5.6:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
+
source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+sparkles@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c"
+ integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==
+
+spawn-command@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e"
+ integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==
+
spdx-correct@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c"
@@ -4607,6 +7216,13 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5"
integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+ dependencies:
+ extend-shallow "^3.0.0"
+
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -4627,11 +7243,39 @@ sshpk@^1.7.0:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
-statuses@^1.3.1:
+stack-trace@0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+ integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
+
+static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+statuses@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
+
+"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.3.1, statuses@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
+stream-exhaust@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d"
+ integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==
+
+stream-shift@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+
streamx@^2.15.0:
version "2.15.1"
resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.1.tgz#396ad286d8bc3eeef8f5cea3f029e81237c024c6"
@@ -4645,7 +7289,7 @@ string-argv@^0.3.0:
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
-string-width@^1.0.1:
+string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==
@@ -4714,6 +7358,13 @@ string_decoder@^1.1.1:
dependencies:
safe-buffer "~5.2.0"
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
stringify-object@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
@@ -4751,6 +7402,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
dependencies:
ansi-regex "^5.0.1"
+strip-bom@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==
+ dependencies:
+ is-utf8 "^0.2.0"
+
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
@@ -4776,6 +7434,11 @@ strip-json-comments@^3.1.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+stylis@^4.1.3:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.0.tgz#abe305a669fc3d8777e10eefcfc73ad861c5588c"
+ integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==
+
supports-color@6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a"
@@ -4802,7 +7465,7 @@ supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"
-supports-color@^8.0.0:
+supports-color@^8.0.0, supports-color@^8.1.1:
version "8.1.1"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
@@ -4814,6 +7477,21 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+sval@^0.4.8:
+ version "0.4.8"
+ resolved "https://registry.yarnpkg.com/sval/-/sval-0.4.8.tgz#e7de37bed520f5537fe9e368b871880266c99a12"
+ integrity sha512-YoJztDXNW5tho3xlR4vHVq3Caqk5aqC6Z862ICoFX1bVbWxQ6OPxD7SE1mjfj13oaek5l4whykWNUO1TX0oIhg==
+ dependencies:
+ acorn "^6.4.1"
+
+sver-compat@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8"
+ integrity sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==
+ dependencies:
+ es6-iterator "^2.0.1"
+ es6-symbol "^3.1.1"
+
symbol-observable@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
@@ -4832,7 +7510,7 @@ tapable@^2.1.1, tapable@^2.2.0:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
-tar-fs@3.0.4:
+tar-fs@3.0.4, tar-fs@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf"
integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==
@@ -4898,16 +7576,60 @@ thenify-all@^1.0.0:
dependencies:
any-promise "^1.0.0"
+through2-filter@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254"
+ integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==
+ dependencies:
+ through2 "~2.0.0"
+ xtend "~4.0.0"
+
+through2@^2.0.0, through2@^2.0.3, through2@~2.0.0:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
through@^2.3.8, through@~2.3:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
+time-stamp@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
+ integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==
+
titleize@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53"
integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==
+to-absolute-glob@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b"
+ integrity sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==
+ dependencies:
+ is-absolute "^1.0.0"
+ is-negated-glob "^1.0.0"
+
+to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==
+ dependencies:
+ kind-of "^3.0.2"
+
+to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -4915,6 +7637,28 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
+to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+to-through@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6"
+ integrity sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==
+ dependencies:
+ through2 "^2.0.3"
+
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
topojson-client@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99"
@@ -4935,11 +7679,21 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+tree-kill@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
+ integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
+
ts-api-utils@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.2.tgz#7c094f753b6705ee4faee25c3c684ade52d66d99"
integrity sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==
+ts-dedent@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5"
+ integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==
+
ts-loader@^9.4.4:
version "9.4.4"
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.4.tgz#6ceaf4d58dcc6979f84125335904920884b7cee4"
@@ -4955,7 +7709,7 @@ tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.0.1, tslib@^2.0.3, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.0:
+tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.0:
version "2.6.2"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
@@ -4965,6 +7719,11 @@ tslib@~2.5.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913"
integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==
+tsscmp@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
+ integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -5014,6 +7773,24 @@ type-fest@^4.3.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.3.1.tgz#5cb58cdab5120f7ab0b40cfdc35073fb9adb651d"
integrity sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==
+type-is@^1.6.16:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+type@^1.0.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
+ integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
+
+type@^2.7.2:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
+ integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
+
typed-array-buffer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60"
@@ -5053,6 +7830,11 @@ typed-array-length@^1.0.4:
for-each "^0.3.3"
is-typed-array "^1.1.9"
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+
typescript@^5.2.2:
version "5.2.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78"
@@ -5081,6 +7863,32 @@ unbzip2-stream@1.4.3:
buffer "^5.2.1"
through "^2.3.8"
+unc-path-regex@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
+ integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==
+
+undertaker-registry@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50"
+ integrity sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==
+
+undertaker@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.3.0.tgz#363a6e541f27954d5791d6fa3c1d321666f86d18"
+ integrity sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==
+ dependencies:
+ arr-flatten "^1.0.1"
+ arr-map "^2.0.0"
+ bach "^1.0.0"
+ collection-map "^1.0.0"
+ es6-weak-map "^2.0.1"
+ fast-levenshtein "^1.0.0"
+ last-run "^1.1.0"
+ object.defaults "^1.0.0"
+ object.reduce "^1.0.0"
+ undertaker-registry "^1.0.0"
+
unescape@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/unescape/-/unescape-1.0.1.tgz#956e430f61cad8a4d57d82c518f5e6cc5d0dda96"
@@ -5088,6 +7896,38 @@ unescape@^1.0.1:
dependencies:
extend-shallow "^2.0.1"
+union-value@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+ integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^2.0.1"
+
+union@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075"
+ integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==
+ dependencies:
+ qs "^6.4.0"
+
+unique-stream@^2.0.2:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac"
+ integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==
+ dependencies:
+ json-stable-stringify-without-jsonify "^1.0.1"
+ through2-filter "^3.0.0"
+
+unist-util-stringify-position@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d"
+ integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==
+ dependencies:
+ "@types/unist" "^2.0.0"
+
unist-util-stringify-position@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2"
@@ -5105,11 +7945,24 @@ universalify@^0.1.0, universalify@^0.1.2:
resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af"
integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
untildify@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
+upath@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
+ integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+
update-browserslist-db@^1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
@@ -5125,6 +7978,16 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
+urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+ integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==
+
+url-join@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7"
+ integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==
+
urllib@^2.34.1:
version "2.41.0"
resolved "https://registry.yarnpkg.com/urllib/-/urllib-2.41.0.tgz#be15705e62af4eadcafcfeadda1014b526ae2d0d"
@@ -5145,6 +8008,11 @@ urllib@^2.34.1:
statuses "^1.3.1"
utility "^1.16.1"
+use@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
uslug@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/uslug/-/uslug-1.0.4.tgz#b9a22f0914e0a86140633dacc302e5f4fa450677"
@@ -5152,7 +8020,7 @@ uslug@^1.0.4:
dependencies:
unorm ">= 1.0.0"
-util-deprecate@^1.0.1:
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
@@ -5173,6 +8041,28 @@ uuid@^3.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+uuid@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
+ integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
+
+uvu@^0.5.0:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df"
+ integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==
+ dependencies:
+ dequal "^2.0.0"
+ diff "^5.0.0"
+ kleur "^4.0.3"
+ sade "^1.7.3"
+
+v8flags@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656"
+ integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==
+ dependencies:
+ homedir-polyfill "^1.0.1"
+
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -5181,6 +8071,16 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
+value-or-function@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813"
+ integrity sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==
+
+vary@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+
vega-canvas@^1.2.6, vega-canvas@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/vega-canvas/-/vega-canvas-1.2.7.tgz#cf62169518f5dcd91d24ad352998c2248f8974fb"
@@ -5530,6 +8430,59 @@ vfile-message@*:
"@types/unist" "^3.0.0"
unist-util-stringify-position "^4.0.0"
+vinyl-fs@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7"
+ integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==
+ dependencies:
+ fs-mkdirp-stream "^1.0.0"
+ glob-stream "^6.1.0"
+ graceful-fs "^4.0.0"
+ is-valid-glob "^1.0.0"
+ lazystream "^1.0.0"
+ lead "^1.0.0"
+ object.assign "^4.0.4"
+ pumpify "^1.3.5"
+ readable-stream "^2.3.3"
+ remove-bom-buffer "^3.0.0"
+ remove-bom-stream "^1.2.0"
+ resolve-options "^1.1.0"
+ through2 "^2.0.0"
+ to-through "^2.0.0"
+ value-or-function "^3.0.0"
+ vinyl "^2.0.0"
+ vinyl-sourcemap "^1.1.0"
+
+vinyl-sourcemap@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16"
+ integrity sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==
+ dependencies:
+ append-buffer "^1.0.2"
+ convert-source-map "^1.5.0"
+ graceful-fs "^4.1.6"
+ normalize-path "^2.1.1"
+ now-and-later "^2.0.0"
+ remove-bom-buffer "^3.0.0"
+ vinyl "^2.0.0"
+
+vinyl@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974"
+ integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==
+ dependencies:
+ clone "^2.1.1"
+ clone-buffer "^1.0.0"
+ clone-stats "^1.0.0"
+ cloneable-readable "^1.0.0"
+ remove-trailing-separator "^1.0.1"
+ replace-ext "^1.0.0"
+
+vscode-uri@^3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8"
+ integrity sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==
+
watchpack@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
@@ -5538,6 +8491,11 @@ watchpack@^2.4.0:
glob-to-regexp "^0.4.1"
graceful-fs "^4.1.2"
+web-worker@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da"
+ integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==
+
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -5605,6 +8563,13 @@ webpack@^5.88.2:
watchpack "^2.4.0"
webpack-sources "^3.2.3"
+whatwg-encoding@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
+ integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
+ dependencies:
+ iconv-lite "0.6.3"
+
whatwg-url@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
@@ -5624,6 +8589,11 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5"
is-symbol "^1.0.3"
+which-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
+ integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==
+
which-module@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
@@ -5640,7 +8610,7 @@ which-typed-array@^1.1.10, which-typed-array@^1.1.11:
gopd "^1.0.1"
has-tostringtag "^1.0.0"
-which@1.3.1, which@^1.2.1, which@^1.2.9:
+which@1.3.1, which@^1.2.1, which@^1.2.14, which@^1.2.9:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -5673,6 +8643,14 @@ win-release@^1.0.0:
dependencies:
semver "^5.0.1"
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
wrap-ansi@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
@@ -5709,6 +8687,16 @@ ws@8.13.0:
resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
+xtend@~4.0.0, xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^3.2.1:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
+ integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
+
y18n@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
@@ -5742,6 +8730,14 @@ yargs-parser@^21.1.1:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+yargs-parser@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394"
+ integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==
+ dependencies:
+ camelcase "^3.0.0"
+ object.assign "^4.1.0"
+
yargs-unparser@1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f"
@@ -5780,7 +8776,7 @@ yargs@17.7.1:
y18n "^5.0.5"
yargs-parser "^21.1.1"
-yargs@~17.7.2:
+yargs@^17.7.2, yargs@~17.7.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
@@ -5793,6 +8789,25 @@ yargs@~17.7.2:
y18n "^5.0.5"
yargs-parser "^21.1.1"
+yargs@^7.1.0:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db"
+ integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==
+ dependencies:
+ camelcase "^3.0.0"
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ get-caller-file "^1.0.1"
+ os-locale "^1.4.0"
+ read-pkg-up "^1.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^1.0.2"
+ which-module "^1.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^5.0.1"
+
yauzl@^2.10.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
@@ -5801,6 +8816,11 @@ yauzl@^2.10.0:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
+ylru@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.3.2.tgz#0de48017473275a4cbdfc83a1eaf67c01af8a785"
+ integrity sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"